md_getstring

This commit is contained in:
Andrew Pamment 2019-12-01 08:08:59 +10:00
parent 5cd6ad8060
commit 099abdcbf1
2 changed files with 27 additions and 1 deletions

View File

@ -20,7 +20,32 @@ char md_getc() {
sleep(1);
continue;
}
md_putchar(c);
return c;
}
}
int md_getstring(char *ptr, int maxlen) {
char c;
int len = 0;
while (len < maxlen) {
c = md_getc();
if (c == '\n' || c == '\0') {
continue;
}
if (c == '\r') {
return len;
} else if (c == '\b' || c == 127) {
if (len > 0) {
md_printf("\027[D \027[D");
len--;
ptr[len] = '\0';
}
continue;
}
ptr[len++] = c;
ptr[len] = '\0';
md_putchar(c);
}
return len;
}

View File

@ -21,4 +21,5 @@ extern void md_exit(int exitcode);
extern void md_putchar(char c);
extern void md_printf(const char *fmt, ...);
extern char md_getc();
extern int md_getstring(char *ptr, int maxlen);
#endif