CALLER_OWN char *owl_keybinding_stack_tostring(int *j, int len) { GString *string; int i; string = g_string_new(""); for (i = 0; i < len; i++) { char *keypress = owl_keypress_tostring(j[i], 0); g_string_append(string, keypress ? keypress : "INVALID"); g_free(keypress); if (i < len - 1) g_string_append_c(string, ' '); } return g_string_free(string, false); }
/* returns 0 on success */ int owl_keybinding_stack_tostring(int *j, int len, char *buff, int bufflen) { char *pos = buff; int rem = bufflen; int i, n; for (i=0; i < len; i++) { owl_keypress_tostring(j[i], 0, pos, rem-1); if (i < len - 1) strcat(pos, " "); n = strlen(pos); pos += n; rem -= n; } return 0; }