Lines Matching refs:cmd

47 cmdbuf_shiftr(mdb_cmdbuf_t *cmd, size_t nbytes)  in cmdbuf_shiftr()  argument
49 bcopy(&cmd->cmd_buf[cmd->cmd_bufidx], in cmdbuf_shiftr()
50 &cmd->cmd_buf[cmd->cmd_bufidx + nbytes], in cmdbuf_shiftr()
51 cmd->cmd_buflen - cmd->cmd_bufidx); in cmdbuf_shiftr()
55 mdb_cmdbuf_allocchunk(mdb_cmdbuf_t *cmd) in mdb_cmdbuf_allocchunk() argument
59 ssize_t newhalloc = cmd->cmd_halloc + MDB_DEF_HISTLEN; in mdb_cmdbuf_allocchunk()
61 if (newhalloc > cmd->cmd_histlen) in mdb_cmdbuf_allocchunk()
62 newhalloc = cmd->cmd_histlen; in mdb_cmdbuf_allocchunk()
64 bcopy(cmd->cmd_history, newhistory, cmd->cmd_halloc * sizeof (char *)); in mdb_cmdbuf_allocchunk()
65 mdb_free(cmd->cmd_history, cmd->cmd_halloc * sizeof (char *)); in mdb_cmdbuf_allocchunk()
66 for (i = cmd->cmd_halloc; i < newhalloc; i++) in mdb_cmdbuf_allocchunk()
68 cmd->cmd_history = newhistory; in mdb_cmdbuf_allocchunk()
69 cmd->cmd_halloc = newhalloc; in mdb_cmdbuf_allocchunk()
73 mdb_cmdbuf_create(mdb_cmdbuf_t *cmd) in mdb_cmdbuf_create() argument
77 cmd->cmd_halloc = MDB_DEF_HISTLEN < mdb.m_histlen ? in mdb_cmdbuf_create()
80 cmd->cmd_history = mdb_alloc(cmd->cmd_halloc * sizeof (char *), in mdb_cmdbuf_create()
82 cmd->cmd_linebuf = mdb_alloc(CMDBUF_LINELEN, UM_SLEEP); in mdb_cmdbuf_create()
84 for (i = 0; i < cmd->cmd_halloc; i++) in mdb_cmdbuf_create()
85 cmd->cmd_history[i] = mdb_alloc(CMDBUF_LINELEN, UM_SLEEP); in mdb_cmdbuf_create()
87 cmd->cmd_buf = cmd->cmd_history[0]; in mdb_cmdbuf_create()
88 cmd->cmd_linelen = CMDBUF_LINELEN; in mdb_cmdbuf_create()
89 cmd->cmd_histlen = mdb.m_histlen; in mdb_cmdbuf_create()
90 cmd->cmd_buflen = 0; in mdb_cmdbuf_create()
91 cmd->cmd_bufidx = 0; in mdb_cmdbuf_create()
92 cmd->cmd_hold = 0; in mdb_cmdbuf_create()
93 cmd->cmd_hnew = 0; in mdb_cmdbuf_create()
94 cmd->cmd_hcur = 0; in mdb_cmdbuf_create()
95 cmd->cmd_hlen = 0; in mdb_cmdbuf_create()
99 mdb_cmdbuf_destroy(mdb_cmdbuf_t *cmd) in mdb_cmdbuf_destroy() argument
103 for (i = 0; i < cmd->cmd_halloc; i++) in mdb_cmdbuf_destroy()
104 mdb_free(cmd->cmd_history[i], CMDBUF_LINELEN); in mdb_cmdbuf_destroy()
106 mdb_free(cmd->cmd_linebuf, CMDBUF_LINELEN); in mdb_cmdbuf_destroy()
107 mdb_free(cmd->cmd_history, cmd->cmd_halloc * sizeof (char *)); in mdb_cmdbuf_destroy()
111 mdb_cmdbuf_caninsert(mdb_cmdbuf_t *cmd, size_t nbytes) in mdb_cmdbuf_caninsert() argument
113 return (cmd->cmd_buflen + nbytes < cmd->cmd_linelen); in mdb_cmdbuf_caninsert()
117 mdb_cmdbuf_atstart(mdb_cmdbuf_t *cmd) in mdb_cmdbuf_atstart() argument
119 return (cmd->cmd_bufidx == 0); in mdb_cmdbuf_atstart()
123 mdb_cmdbuf_atend(mdb_cmdbuf_t *cmd) in mdb_cmdbuf_atend() argument
125 return (cmd->cmd_bufidx == cmd->cmd_buflen); in mdb_cmdbuf_atend()
129 mdb_cmdbuf_insert(mdb_cmdbuf_t *cmd, int c) in mdb_cmdbuf_insert() argument
132 if (cmd->cmd_buflen + CMDBUF_TABLEN < cmd->cmd_linelen) { in mdb_cmdbuf_insert()
135 if (cmd->cmd_buflen != cmd->cmd_bufidx) in mdb_cmdbuf_insert()
136 cmdbuf_shiftr(cmd, CMDBUF_TABLEN); in mdb_cmdbuf_insert()
139 cmd->cmd_buf[cmd->cmd_bufidx++] = ' '; in mdb_cmdbuf_insert()
141 cmd->cmd_buflen += CMDBUF_TABLEN; in mdb_cmdbuf_insert()
151 if (cmd->cmd_buflen < cmd->cmd_linelen) { in mdb_cmdbuf_insert()
152 if (cmd->cmd_buflen != cmd->cmd_bufidx) in mdb_cmdbuf_insert()
153 cmdbuf_shiftr(cmd, 1); in mdb_cmdbuf_insert()
155 cmd->cmd_buf[cmd->cmd_bufidx++] = (char)c; in mdb_cmdbuf_insert()
156 cmd->cmd_buflen++; in mdb_cmdbuf_insert()
165 mdb_cmdbuf_accept(mdb_cmdbuf_t *cmd) in mdb_cmdbuf_accept() argument
167 if (cmd->cmd_bufidx < cmd->cmd_linelen) { in mdb_cmdbuf_accept()
170 cmd->cmd_buf[cmd->cmd_buflen++] = '\0'; in mdb_cmdbuf_accept()
171 (void) strcpy(cmd->cmd_linebuf, cmd->cmd_buf); in mdb_cmdbuf_accept()
173 if (cmd->cmd_hold != cmd->cmd_hnew) { in mdb_cmdbuf_accept()
174 int lastidx = cmd->cmd_hnew == 0 ? cmd->cmd_halloc - 1 : in mdb_cmdbuf_accept()
175 cmd->cmd_hnew - 1; in mdb_cmdbuf_accept()
177 is_repeating = strcmp(cmd->cmd_buf, in mdb_cmdbuf_accept()
178 cmd->cmd_history[lastidx]) == 0; in mdb_cmdbuf_accept()
185 if (cmd->cmd_buflen > 1 && !is_repeating) { in mdb_cmdbuf_accept()
186 cmd->cmd_hnew = (cmd->cmd_hnew + 1) % cmd->cmd_histlen; in mdb_cmdbuf_accept()
187 if (cmd->cmd_hnew >= cmd->cmd_halloc) in mdb_cmdbuf_accept()
188 mdb_cmdbuf_allocchunk(cmd); in mdb_cmdbuf_accept()
190 cmd->cmd_buf = cmd->cmd_history[cmd->cmd_hnew]; in mdb_cmdbuf_accept()
191 cmd->cmd_hcur = cmd->cmd_hnew; in mdb_cmdbuf_accept()
193 if (cmd->cmd_hlen + 1 == cmd->cmd_histlen) in mdb_cmdbuf_accept()
194 cmd->cmd_hold = in mdb_cmdbuf_accept()
195 (cmd->cmd_hold + 1) % cmd->cmd_histlen; in mdb_cmdbuf_accept()
197 cmd->cmd_hlen++; in mdb_cmdbuf_accept()
199 cmd->cmd_hcur = cmd->cmd_hnew; in mdb_cmdbuf_accept()
202 cmd->cmd_bufidx = 0; in mdb_cmdbuf_accept()
203 cmd->cmd_buflen = 0; in mdb_cmdbuf_accept()
205 return ((const char *)cmd->cmd_linebuf); in mdb_cmdbuf_accept()
213 mdb_cmdbuf_backspace(mdb_cmdbuf_t *cmd, int c) in mdb_cmdbuf_backspace() argument
215 if (cmd->cmd_bufidx > 0) { in mdb_cmdbuf_backspace()
216 if (cmd->cmd_buflen != cmd->cmd_bufidx) { in mdb_cmdbuf_backspace()
217 bcopy(&cmd->cmd_buf[cmd->cmd_bufidx], in mdb_cmdbuf_backspace()
218 &cmd->cmd_buf[cmd->cmd_bufidx - 1], in mdb_cmdbuf_backspace()
219 cmd->cmd_buflen - cmd->cmd_bufidx); in mdb_cmdbuf_backspace()
222 cmd->cmd_bufidx--; in mdb_cmdbuf_backspace()
223 cmd->cmd_buflen--; in mdb_cmdbuf_backspace()
233 mdb_cmdbuf_delchar(mdb_cmdbuf_t *cmd, int c) in mdb_cmdbuf_delchar() argument
235 if (cmd->cmd_bufidx < cmd->cmd_buflen) { in mdb_cmdbuf_delchar()
236 if (cmd->cmd_bufidx < --cmd->cmd_buflen) { in mdb_cmdbuf_delchar()
237 bcopy(&cmd->cmd_buf[cmd->cmd_bufidx + 1], in mdb_cmdbuf_delchar()
238 &cmd->cmd_buf[cmd->cmd_bufidx], in mdb_cmdbuf_delchar()
239 cmd->cmd_buflen - cmd->cmd_bufidx); in mdb_cmdbuf_delchar()
250 mdb_cmdbuf_fwdchar(mdb_cmdbuf_t *cmd, int c) in mdb_cmdbuf_fwdchar() argument
252 if (cmd->cmd_bufidx < cmd->cmd_buflen) { in mdb_cmdbuf_fwdchar()
253 cmd->cmd_bufidx++; in mdb_cmdbuf_fwdchar()
262 mdb_cmdbuf_backchar(mdb_cmdbuf_t *cmd, int c) in mdb_cmdbuf_backchar() argument
264 if (cmd->cmd_bufidx > 0) { in mdb_cmdbuf_backchar()
265 cmd->cmd_bufidx--; in mdb_cmdbuf_backchar()
273 mdb_cmdbuf_transpose(mdb_cmdbuf_t *cmd, int c) in mdb_cmdbuf_transpose() argument
275 if (cmd->cmd_bufidx > 0 && cmd->cmd_buflen > 1) { in mdb_cmdbuf_transpose()
276 c = cmd->cmd_buf[cmd->cmd_bufidx - 1]; in mdb_cmdbuf_transpose()
278 if (cmd->cmd_bufidx == cmd->cmd_buflen) { in mdb_cmdbuf_transpose()
279 cmd->cmd_buf[cmd->cmd_bufidx - 1] = in mdb_cmdbuf_transpose()
280 cmd->cmd_buf[cmd->cmd_bufidx - 2]; in mdb_cmdbuf_transpose()
281 cmd->cmd_buf[cmd->cmd_bufidx - 2] = (char)c; in mdb_cmdbuf_transpose()
283 cmd->cmd_buf[cmd->cmd_bufidx - 1] = in mdb_cmdbuf_transpose()
284 cmd->cmd_buf[cmd->cmd_bufidx]; in mdb_cmdbuf_transpose()
285 cmd->cmd_buf[cmd->cmd_bufidx++] = (char)c; in mdb_cmdbuf_transpose()
296 mdb_cmdbuf_home(mdb_cmdbuf_t *cmd, int c) in mdb_cmdbuf_home() argument
298 cmd->cmd_bufidx = 0; in mdb_cmdbuf_home()
304 mdb_cmdbuf_end(mdb_cmdbuf_t *cmd, int c) in mdb_cmdbuf_end() argument
306 cmd->cmd_bufidx = cmd->cmd_buflen; in mdb_cmdbuf_end()
311 fwdword_index(mdb_cmdbuf_t *cmd) in fwdword_index() argument
313 size_t i = cmd->cmd_bufidx + 1; in fwdword_index()
315 ASSERT(cmd->cmd_bufidx < cmd->cmd_buflen); in fwdword_index()
317 while (i < cmd->cmd_buflen && isspace(cmd->cmd_buf[i])) in fwdword_index()
320 while (i < cmd->cmd_buflen && !isspace(cmd->cmd_buf[i]) && in fwdword_index()
321 !isalnum(cmd->cmd_buf[i]) && cmd->cmd_buf[i] != '_') in fwdword_index()
324 while (i < cmd->cmd_buflen && in fwdword_index()
325 (isalnum(cmd->cmd_buf[i]) || cmd->cmd_buf[i] == '_')) in fwdword_index()
333 mdb_cmdbuf_fwdword(mdb_cmdbuf_t *cmd, int c) in mdb_cmdbuf_fwdword() argument
335 if (cmd->cmd_bufidx == cmd->cmd_buflen) in mdb_cmdbuf_fwdword()
338 cmd->cmd_bufidx = fwdword_index(cmd); in mdb_cmdbuf_fwdword()
345 mdb_cmdbuf_killfwdword(mdb_cmdbuf_t *cmd, int c) in mdb_cmdbuf_killfwdword() argument
349 if (cmd->cmd_bufidx == cmd->cmd_buflen) in mdb_cmdbuf_killfwdword()
352 i = fwdword_index(cmd); in mdb_cmdbuf_killfwdword()
354 bcopy(&cmd->cmd_buf[i], &cmd->cmd_buf[cmd->cmd_bufidx], in mdb_cmdbuf_killfwdword()
355 cmd->cmd_buflen - i); in mdb_cmdbuf_killfwdword()
357 cmd->cmd_buflen -= i - cmd->cmd_bufidx; in mdb_cmdbuf_killfwdword()
363 backword_index(mdb_cmdbuf_t *cmd) in backword_index() argument
365 size_t i = cmd->cmd_bufidx - 1; in backword_index()
367 ASSERT(cmd->cmd_bufidx != 0); in backword_index()
369 while (i != 0 && isspace(cmd->cmd_buf[i])) in backword_index()
372 while (i != 0 && !isspace(cmd->cmd_buf[i]) && in backword_index()
373 !isalnum(cmd->cmd_buf[i]) && cmd->cmd_buf[i] != '_') in backword_index()
376 while (i != 0 && (isalnum(cmd->cmd_buf[i]) || cmd->cmd_buf[i] == '_')) in backword_index()
387 mdb_cmdbuf_backword(mdb_cmdbuf_t *cmd, int c) in mdb_cmdbuf_backword() argument
389 if (cmd->cmd_bufidx == 0) in mdb_cmdbuf_backword()
392 cmd->cmd_bufidx = backword_index(cmd); in mdb_cmdbuf_backword()
399 mdb_cmdbuf_killbackword(mdb_cmdbuf_t *cmd, int c) in mdb_cmdbuf_killbackword() argument
403 if (cmd->cmd_bufidx == 0) in mdb_cmdbuf_killbackword()
406 i = backword_index(cmd); in mdb_cmdbuf_killbackword()
408 bcopy(&cmd->cmd_buf[cmd->cmd_bufidx], &cmd->cmd_buf[i], in mdb_cmdbuf_killbackword()
409 cmd->cmd_buflen - cmd->cmd_bufidx); in mdb_cmdbuf_killbackword()
411 cmd->cmd_buflen -= cmd->cmd_bufidx - i; in mdb_cmdbuf_killbackword()
412 cmd->cmd_bufidx = i; in mdb_cmdbuf_killbackword()
419 mdb_cmdbuf_kill(mdb_cmdbuf_t *cmd, int c) in mdb_cmdbuf_kill() argument
421 cmd->cmd_buflen = cmd->cmd_bufidx; in mdb_cmdbuf_kill()
427 mdb_cmdbuf_reset(mdb_cmdbuf_t *cmd, int c) in mdb_cmdbuf_reset() argument
429 cmd->cmd_buflen = 0; in mdb_cmdbuf_reset()
430 cmd->cmd_bufidx = 0; in mdb_cmdbuf_reset()
436 mdb_cmdbuf_prevhist(mdb_cmdbuf_t *cmd, int c) in mdb_cmdbuf_prevhist() argument
438 if (cmd->cmd_hcur != cmd->cmd_hold) { in mdb_cmdbuf_prevhist()
439 if (cmd->cmd_hcur-- == cmd->cmd_hnew) { in mdb_cmdbuf_prevhist()
440 cmd->cmd_buf[cmd->cmd_buflen] = 0; in mdb_cmdbuf_prevhist()
441 (void) strcpy(cmd->cmd_linebuf, cmd->cmd_buf); in mdb_cmdbuf_prevhist()
444 if (cmd->cmd_hcur < 0) in mdb_cmdbuf_prevhist()
445 cmd->cmd_hcur = cmd->cmd_halloc - 1; in mdb_cmdbuf_prevhist()
447 (void) strcpy(cmd->cmd_buf, cmd->cmd_history[cmd->cmd_hcur]); in mdb_cmdbuf_prevhist()
448 cmd->cmd_bufidx = strlen(cmd->cmd_buf); in mdb_cmdbuf_prevhist()
449 cmd->cmd_buflen = cmd->cmd_bufidx; in mdb_cmdbuf_prevhist()
459 mdb_cmdbuf_nexthist(mdb_cmdbuf_t *cmd, int c) in mdb_cmdbuf_nexthist() argument
461 if (cmd->cmd_hcur != cmd->cmd_hnew) { in mdb_cmdbuf_nexthist()
462 cmd->cmd_hcur = (cmd->cmd_hcur + 1) % cmd->cmd_halloc; in mdb_cmdbuf_nexthist()
464 if (cmd->cmd_hcur == cmd->cmd_hnew) { in mdb_cmdbuf_nexthist()
465 (void) strcpy(cmd->cmd_buf, cmd->cmd_linebuf); in mdb_cmdbuf_nexthist()
467 (void) strcpy(cmd->cmd_buf, in mdb_cmdbuf_nexthist()
468 cmd->cmd_history[cmd->cmd_hcur]); in mdb_cmdbuf_nexthist()
471 cmd->cmd_bufidx = strlen(cmd->cmd_buf); in mdb_cmdbuf_nexthist()
472 cmd->cmd_buflen = cmd->cmd_bufidx; in mdb_cmdbuf_nexthist()
482 mdb_cmdbuf_findhist(mdb_cmdbuf_t *cmd, int c) in mdb_cmdbuf_findhist() argument
486 if (cmd->cmd_buflen != 0) { in mdb_cmdbuf_findhist()
487 cmd->cmd_hcur = cmd->cmd_hnew; in mdb_cmdbuf_findhist()
488 cmd->cmd_buf[cmd->cmd_buflen] = 0; in mdb_cmdbuf_findhist()
489 (void) strcpy(cmd->cmd_linebuf, cmd->cmd_buf); in mdb_cmdbuf_findhist()
492 for (i = cmd->cmd_hcur, n = 0; n < cmd->cmd_hlen; n++) { in mdb_cmdbuf_findhist()
494 i = cmd->cmd_halloc - 1; in mdb_cmdbuf_findhist()
496 if (strstr(cmd->cmd_history[i], cmd->cmd_linebuf) != NULL) { in mdb_cmdbuf_findhist()
497 (void) strcpy(cmd->cmd_buf, cmd->cmd_history[i]); in mdb_cmdbuf_findhist()
498 cmd->cmd_bufidx = strlen(cmd->cmd_buf); in mdb_cmdbuf_findhist()
499 cmd->cmd_buflen = cmd->cmd_bufidx; in mdb_cmdbuf_findhist()
500 cmd->cmd_hcur = i; in mdb_cmdbuf_findhist()
506 cmd->cmd_hcur = cmd->cmd_hnew; in mdb_cmdbuf_findhist()
508 cmd->cmd_bufidx = 0; in mdb_cmdbuf_findhist()
509 cmd->cmd_buflen = 0; in mdb_cmdbuf_findhist()