FOR_SHELL = DO_HISTORY | SAVE_HISTORY | TAB_COMPLETION | USERNAME_COMPLETION,
};
line_input_t *new_line_input_t(int flags) FAST_FUNC;
-/* so far static: void free_line_input_t(line_input_t *n) FAST_FUNC; */
-/* Returns:
+/* So far static: void free_line_input_t(line_input_t *n) FAST_FUNC; */
+/* maxsize must be >= 2.
+ * Returns:
* -1 on read errors or EOF, or on bare Ctrl-D,
* 0 on ctrl-C (the line entered is still returned in 'command'),
* >0 length of input string, including terminating '\n'
#define int_buf (S.find_match__int_buf)
#define pos_buf (S.find_match__pos_buf)
-
+/* is must be <= in */
static void collapse_pos(int is, int in)
{
- memmove(int_buf+is, int_buf+in, (MAX_LINELEN+1 - is - in) * sizeof(int_buf[0]));
- memmove(pos_buf+is, pos_buf+in, (MAX_LINELEN+1 - is - in) * sizeof(pos_buf[0]));
+ memmove(int_buf+is, int_buf+in, (MAX_LINELEN+1-in)*sizeof(int_buf[0]));
+ memmove(pos_buf+is, pos_buf+in, (MAX_LINELEN+1-in)*sizeof(pos_buf[0]));
}
-
static NOINLINE int find_match(char *matchBuf, int *len_with_quotes)
{
int i, j;
*len_with_quotes = j ? j - pos_buf[0] : 0;
return command_mode;
+}
#undef int_buf
#undef pos_buf
-}
/*
* display by column (original idea from ls applet,
char *s = xzalloc((strlen(found) + 1) * 2);
while (*found) {
- if (strchr(" `\"#$%^&*()=+{}[]:;\'|\\<>", *found))
+ if (strchr(" `\"#$%^&*()=+{}[]:;'|\\<>", *found))
s[l++] = '\\';
s[l++] = *found++;
}
#undef CTRL
#define CTRL(a) ((a) & ~0x40)
-/* Returns:
+/* maxsize must be >= 2.
+ * Returns:
* -1 on read errors or EOF, or on bare Ctrl-D,
* 0 on ctrl-C (the line entered is still returned in 'command'),
* >0 length of input string, including terminating '\n'