md_getstring
This commit is contained in:
parent
5cd6ad8060
commit
099abdcbf1
27
MD_Getc.c
27
MD_Getc.c
@ -20,7 +20,32 @@ char md_getc() {
|
|||||||
sleep(1);
|
sleep(1);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
md_putchar(c);
|
|
||||||
return 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;
|
||||||
|
}
|
@ -21,4 +21,5 @@ extern void md_exit(int exitcode);
|
|||||||
extern void md_putchar(char c);
|
extern void md_putchar(char c);
|
||||||
extern void md_printf(const char *fmt, ...);
|
extern void md_printf(const char *fmt, ...);
|
||||||
extern char md_getc();
|
extern char md_getc();
|
||||||
|
extern int md_getstring(char *ptr, int maxlen);
|
||||||
#endif
|
#endif
|
Loading…
x
Reference in New Issue
Block a user