Lines Matching +full:- +full:- +full:-

4  * Copyright (c) 2003-2004 Fabrice Bellard
37 rs->printf_func(rs->opaque, "%s", rs->prompt); in readline_show_prompt()
38 rs->flush_func(rs->opaque); in readline_show_prompt()
39 rs->last_cmd_buf_index = 0; in readline_show_prompt()
40 rs->last_cmd_buf_size = 0; in readline_show_prompt()
41 rs->esc_state = IS_NORM; in readline_show_prompt()
49 if (rs->cmd_buf_size != rs->last_cmd_buf_size || in readline_update()
50 memcmp(rs->cmd_buf, rs->last_cmd_buf, rs->cmd_buf_size) != 0) { in readline_update()
51 for (i = 0; i < rs->last_cmd_buf_index; i++) { in readline_update()
52 rs->printf_func(rs->opaque, "\033[D"); in readline_update()
54 rs->cmd_buf[rs->cmd_buf_size] = '\0'; in readline_update()
55 if (rs->read_password) { in readline_update()
56 len = strlen(rs->cmd_buf); in readline_update()
58 rs->printf_func(rs->opaque, "*"); in readline_update()
61 rs->printf_func(rs->opaque, "%s", rs->cmd_buf); in readline_update()
63 rs->printf_func(rs->opaque, "\033[K"); in readline_update()
64 memcpy(rs->last_cmd_buf, rs->cmd_buf, rs->cmd_buf_size); in readline_update()
65 rs->last_cmd_buf_size = rs->cmd_buf_size; in readline_update()
66 rs->last_cmd_buf_index = rs->cmd_buf_size; in readline_update()
68 if (rs->cmd_buf_index != rs->last_cmd_buf_index) { in readline_update()
69 delta = rs->cmd_buf_index - rs->last_cmd_buf_index; in readline_update()
72 rs->printf_func(rs->opaque, "\033[C"); in readline_update()
75 delta = -delta; in readline_update()
77 rs->printf_func(rs->opaque, "\033[D"); in readline_update()
80 rs->last_cmd_buf_index = rs->cmd_buf_index; in readline_update()
82 rs->flush_func(rs->opaque); in readline_update()
87 if (rs->cmd_buf_index < READLINE_CMD_BUF_SIZE) { in readline_insert_char()
88 memmove(rs->cmd_buf + rs->cmd_buf_index + 1, in readline_insert_char()
89 rs->cmd_buf + rs->cmd_buf_index, in readline_insert_char()
90 rs->cmd_buf_size - rs->cmd_buf_index); in readline_insert_char()
91 rs->cmd_buf[rs->cmd_buf_index] = ch; in readline_insert_char()
92 rs->cmd_buf_size++; in readline_insert_char()
93 rs->cmd_buf_index++; in readline_insert_char()
99 if (rs->cmd_buf_index > 0) { in readline_backward_char()
100 rs->cmd_buf_index--; in readline_backward_char()
106 if (rs->cmd_buf_index < rs->cmd_buf_size) { in readline_forward_char()
107 rs->cmd_buf_index++; in readline_forward_char()
113 if (rs->cmd_buf_index < rs->cmd_buf_size) { in readline_delete_char()
114 memmove(rs->cmd_buf + rs->cmd_buf_index, in readline_delete_char()
115 rs->cmd_buf + rs->cmd_buf_index + 1, in readline_delete_char()
116 rs->cmd_buf_size - rs->cmd_buf_index - 1); in readline_delete_char()
117 rs->cmd_buf_size--; in readline_delete_char()
123 if (rs->cmd_buf_index > 0) { in readline_backspace()
133 if (rs->cmd_buf_index == 0 || rs->cmd_buf_index > rs->cmd_buf_size) { in readline_backword()
137 start = rs->cmd_buf_index - 1; in readline_backword()
141 if (!qemu_isspace(rs->cmd_buf[start])) { in readline_backword()
145 --start; in readline_backword()
150 if (qemu_isspace(rs->cmd_buf[start])) { in readline_backword()
155 --start; in readline_backword()
159 if (start < rs->cmd_buf_index) { in readline_backword()
160 memmove(rs->cmd_buf + start, in readline_backword()
161 rs->cmd_buf + rs->cmd_buf_index, in readline_backword()
162 rs->cmd_buf_size - rs->cmd_buf_index); in readline_backword()
163 rs->cmd_buf_size -= rs->cmd_buf_index - start; in readline_backword()
164 rs->cmd_buf_index = start; in readline_backword()
170 rs->cmd_buf_index = 0; in readline_bol()
175 rs->cmd_buf_index = rs->cmd_buf_size; in readline_eol()
182 if (rs->hist_entry == 0) { in readline_up_char()
185 if (rs->hist_entry == -1) { in readline_up_char()
188 if (rs->history[idx] == NULL) { in readline_up_char()
192 rs->hist_entry = idx; in readline_up_char()
194 rs->hist_entry--; in readline_up_char()
195 if (rs->hist_entry >= 0) { in readline_up_char()
196 pstrcpy(rs->cmd_buf, sizeof(rs->cmd_buf), in readline_up_char()
197 rs->history[rs->hist_entry]); in readline_up_char()
198 rs->cmd_buf_index = rs->cmd_buf_size = strlen(rs->cmd_buf); in readline_up_char()
204 if (rs->hist_entry == -1) { in readline_down_char()
207 if (rs->hist_entry < READLINE_MAX_CMDS - 1 && in readline_down_char()
208 rs->history[++rs->hist_entry] != NULL) { in readline_down_char()
209 pstrcpy(rs->cmd_buf, sizeof(rs->cmd_buf), in readline_down_char()
210 rs->history[rs->hist_entry]); in readline_down_char()
212 rs->cmd_buf[0] = 0; in readline_down_char()
213 rs->hist_entry = -1; in readline_down_char()
215 rs->cmd_buf_index = rs->cmd_buf_size = strlen(rs->cmd_buf); in readline_down_char()
227 if (rs->hist_entry != -1) { in readline_hist_add()
229 hist_entry = rs->history[rs->hist_entry]; in readline_hist_add()
230 idx = rs->hist_entry; in readline_hist_add()
237 hist_entry = rs->history[idx]; in readline_hist_add()
243 if (idx == READLINE_MAX_CMDS - 1) { in readline_hist_add()
248 memmove(&rs->history[idx], &rs->history[idx + 1], in readline_hist_add()
249 (READLINE_MAX_CMDS - (idx + 1)) * sizeof(char *)); in readline_hist_add()
250 rs->history[READLINE_MAX_CMDS - 1] = NULL; in readline_hist_add()
252 if (rs->history[idx] == NULL) { in readline_hist_add()
261 g_free(rs->history[0]); in readline_hist_add()
262 memmove(rs->history, &rs->history[1], in readline_hist_add()
263 (READLINE_MAX_CMDS - 1) * sizeof(char *)); in readline_hist_add()
264 rs->history[READLINE_MAX_CMDS - 1] = NULL; in readline_hist_add()
265 idx = READLINE_MAX_CMDS - 1; in readline_hist_add()
270 rs->history[idx] = new_entry; in readline_hist_add()
271 rs->hist_entry = -1; in readline_hist_add()
276 while (rs->cmd_buf_index > 0) { in readline_kill_line()
286 if (rs->nb_completions < READLINE_MAX_COMPLETIONS) { in readline_add_completion()
288 for (i = 0; i < rs->nb_completions; i++) { in readline_add_completion()
289 if (!strcmp(rs->completions[i], str)) { in readline_add_completion()
293 rs->completions[rs->nb_completions++] = g_strdup(str); in readline_add_completion()
307 rs->completion_index = index; in readline_set_completion_index()
320 rs->nb_completions = 0; in readline_completion()
322 cmdline = g_strndup(rs->cmd_buf, rs->cmd_buf_index); in readline_completion()
323 rs->completion_finder(rs->opaque, cmdline); in readline_completion()
327 if (rs->nb_completions <= 0) { in readline_completion()
330 if (rs->nb_completions == 1) { in readline_completion()
331 len = strlen(rs->completions[0]); in readline_completion()
332 for (i = rs->completion_index; i < len; i++) { in readline_completion()
333 readline_insert_char(rs, rs->completions[0][i]); in readline_completion()
336 if (len > 0 && rs->completions[0][len - 1] != '/') { in readline_completion()
340 qsort(rs->completions, rs->nb_completions, sizeof(char *), in readline_completion()
342 rs->printf_func(rs->opaque, "\n"); in readline_completion()
345 for (i = 0; i < rs->nb_completions; i++) { in readline_completion()
346 len = strlen(rs->completions[i]); in readline_completion()
354 if (rs->completions[i][j] != rs->completions[0][j]) { in readline_completion()
364 for (i = rs->completion_index; i < max_prefix; i++) { in readline_completion()
365 readline_insert_char(rs, rs->completions[0][i]); in readline_completion()
375 for (i = 0; i < rs->nb_completions; i++) { in readline_completion()
376 rs->printf_func(rs->opaque, "%-*s", max_width, rs->completions[i]); in readline_completion()
377 if (++j == nb_cols || i == (rs->nb_completions - 1)) { in readline_completion()
378 rs->printf_func(rs->opaque, "\n"); in readline_completion()
384 for (i = 0; i < rs->nb_completions; i++) { in readline_completion()
385 g_free(rs->completions[i]); in readline_completion()
391 rs->printf_func(rs->opaque, "\033[2J\033[1;1H"); in readline_clear_screen()
398 switch (rs->esc_state) { in readline_handle_byte()
418 rs->cmd_buf[rs->cmd_buf_size] = '\0'; in readline_handle_byte()
419 if (!rs->read_password) { in readline_handle_byte()
420 readline_hist_add(rs, rs->cmd_buf); in readline_handle_byte()
422 rs->printf_func(rs->opaque, "\n"); in readline_handle_byte()
423 rs->cmd_buf_index = 0; in readline_handle_byte()
424 rs->cmd_buf_size = 0; in readline_handle_byte()
425 rs->last_cmd_buf_index = 0; in readline_handle_byte()
426 rs->last_cmd_buf_size = 0; in readline_handle_byte()
427 rs->readline_func(rs->opaque, rs->cmd_buf, rs->readline_opaque); in readline_handle_byte()
446 rs->esc_state = IS_ESC; in readline_handle_byte()
453 rs->esc_state = IS_CSI; in readline_handle_byte()
464 rs->esc_state = IS_CSI; in readline_handle_byte()
465 rs->esc_param = 0; in readline_handle_byte()
467 rs->esc_state = IS_SS3; in readline_handle_byte()
468 rs->esc_param = 0; in readline_handle_byte()
470 rs->esc_state = IS_NORM; in readline_handle_byte()
490 rs->esc_param = rs->esc_param * 10 + (ch - '0'); in readline_handle_byte()
493 switch (rs->esc_param) { in readline_handle_byte()
510 rs->esc_state = IS_NORM; in readline_handle_byte()
525 rs->esc_state = IS_NORM; in readline_handle_byte()
536 pstrcpy(rs->prompt, sizeof(rs->prompt), prompt); in readline_start()
537 rs->readline_func = readline_func; in readline_start()
538 rs->readline_opaque = opaque; in readline_start()
539 rs->read_password = read_password; in readline_start()
545 rs->cmd_buf_index = 0; in readline_restart()
546 rs->cmd_buf_size = 0; in readline_restart()
554 return rs->history[index]; in readline_get_history()
565 g_free(rs->history[i]); in readline_free()
577 rs->hist_entry = -1; in readline_init()
578 rs->opaque = opaque; in readline_init()
579 rs->printf_func = printf_func; in readline_init()
580 rs->flush_func = flush_func; in readline_init()
581 rs->completion_finder = completion_finder; in readline_init()