Quellcode durchsuchen

Rework readmore(), replace goto with a switch

master
lostd vor 10 Jahren
Ursprung
Commit
3c45733f47
1 geänderte Dateien mit 15 neuen und 14 gelöschten Zeilen
  1. +15
    -14
      noice.c

+ 15
- 14
noice.c Datei anzeigen

@@ -367,26 +367,26 @@ readln(void)
int
readmore(char **str)
{
int c;
int i;
int c, ret = 0;
size_t i;
char *ln = *str;
int ret = 0;

if (ln != NULL)
i = strlen(ln);
else
i = 0;

DPRINTF_D(i);

curs_set(TRUE);

c = getch();
if (c == KEY_ENTER || c == '\r') {
switch (c) {
case KEY_ENTER:
case '\r':
ret = 1;
goto out;
}
if (c == KEY_BACKSPACE || c == CONTROL('H')) {
break;
case KEY_BACKSPACE:
case CONTROL('H'):
i--;
if (i > 0) {
ln = xrealloc(ln, (i + 1) * sizeof(*ln));
@@ -395,13 +395,14 @@ readmore(char **str)
free(ln);
ln = NULL;
}
goto out;
break;
default:
i++;
ln = xrealloc(ln, (i + 1) * sizeof(*ln));
ln[i - 1] = c;
ln[i] = '\0';
}
ln = xrealloc(ln, (i + 2) * sizeof(*ln));
ln[i] = c;
i++;
ln[i] = '\0';
out:

curs_set(FALSE);

*str = ln;


Laden…
Abbrechen
Speichern