21#define LINE_LENGTH 256
48 fputs(prompt, stdout);
53 fputs(prompt, stdout);
70 if (
c >=
' ' &&
c <
CH_EXT && escape_flag) {
79 for (
j = strlen(line);
j >=
i;
j--)
80 line[
j + 1] = line[
j];
85 for (
j =
i;
j < (
INT) strlen(line);
j++)
86 fputc(line[
j], stdout);
87 for (
j =
i;
j < (
INT) strlen(line);
j++)
96 for (
j =
i;
j <= (
INT) strlen(line);
j++) {
97 line[
j] = line[
j + 1];
99 fputc(line[
j], stdout);
103 for (
k = 0;
k <
j -
i;
k++)
109 for (
j =
i;
j <= (
INT) strlen(line);
j++) {
110 line[
j] = line[
j + 1];
112 fputc(line[
j], stdout);
116 for (
k = 0;
k <
j -
i;
k++)
121 if (
c == 23 ||
c == 21) {
123 memset(line, 0,
sizeof(line));
124 printf(
"\r%s", prompt);
125 for (
j = 0;
j <
i;
j++)
127 for (
j = 0;
j <
i;
j++)
134 for (
j =
i;
j < (
INT) strlen(line);
j++)
136 for (
j =
i;
j < (
INT) strlen(line);
j++)
138 for (
j = strlen(line);
j >=
i;
j--)
150 fputc(line[
i++], stdout);
154 for (
j = 0;
j <
i;
j++)
160 if ((
c ==
CH_END ||
c == 5) &&
i < (
INT) strlen(line)) {
161 for (
j =
i;
j < (
INT) strlen(line);
j++)
162 fputc(line[
i++], stdout);
172 fputs(prompt, stdout);
173 for (
j = 0;
j <
i;
j++)
175 for (
j = 0;
j <
i;
j++)
177 memcpy(line,
history[hi], 256);
179 for (
j = 0;
j <
i;
j++)
180 fputc(line[
j], stdout);
190 fputs(prompt, stdout);
191 for (
j = 0;
j <
i;
j++)
193 for (
j = 0;
j <
i;
j++)
195 memcpy(line,
history[hi], 256);
197 for (
j = 0;
j <
i;
j++)
198 fputc(line[
j], stdout);
208 fputs(line +
i, stdout);
217 if (
c == 9 && dir != NULL) {
222 fputs(prompt, stdout);
225 for (
j = 0;
j < (
INT) strlen(line) -
i;
j++)
239 fputs(prompt, stdout);
242 for (
j = 0;
j < (
INT) strlen(line) -
i;
j++)
INT cmd_edit(const char *prompt, char *cmd, INT(*dir)(char *, INT *), INT(*idle)())
char history[MAX_HISTORY][LINE_LENGTH]
INT ss_getchar(BOOL reset)
char * ss_gets(char *string, int size)