commit ee4b1cfdb77b67d8e9ca491c3f2f11d9e3805851
parent 600166571bf2a893896e1fa37e1e134296b857b4
Author: Jan Klemkow <j.klemkow@wemelug.de>
Date: Sun, 25 Oct 2015 01:55:15 +0200
fix lenght hanling
Diffstat:
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/slackline.c b/slackline.c
@@ -13,7 +13,11 @@ sl_init(void)
return NULL;
sl->bufsize = BUFSIZ;
- sl->buf = malloc(sl->bufsize);
+ if ((sl->buf = malloc(sl->bufsize)) == NULL) {
+ free(sl);
+ return NULL;
+ }
+
sl->buf[0] = '\0';
sl->len = 0;
sl->cur = 0;
@@ -44,14 +48,17 @@ sl_keystroke(struct slackline *sl, int key)
sl->buf[sl->cur++] = key;
sl->buf[sl->cur] = '\0';
}
-
+ sl->len++;
return 0;
}
/* handle ctl keys */
switch (key) {
case 8: /* backspace */
+ if (sl->cur == 0)
+ break;
sl->cur--;
+ sl->len--;
sl->buf[sl->cur] = '\0';
break;
}