]> cloudbase.mooo.com Git - z180-stamp.git/commitdiff
command line editing generally works
authorLeo C <erbl259-lmu@yahoo.de>
Wed, 26 Nov 2014 18:19:36 +0000 (19:19 +0100)
committerLeo C <erbl259-lmu@yahoo.de>
Wed, 26 Nov 2014 18:19:36 +0000 (19:19 +0100)
avr/cli_readline.c

index 1a0aaf2f22736c91c865fa2eb7b354339d8f0f12..08d2c4bf78674b15c2fdf03a5a14c0b9057cf4af 100644 (file)
@@ -16,6 +16,7 @@
 
 #include "config.h"
 #include "con-utils.h"
+#include "print-utils.h"
 #include "command.h"
 #include "cli_readline.h"
 
@@ -67,7 +68,7 @@ static char *delete_char (char *buffer, char *p, int *colp, int *np, int plen)
 static void putnstr(char *str, int n)
 {
        /* printf_P(PSTR("%.*s"), (int)n, str) */
-       while (n--)
+       while (n-- && *str)
                putchar(*str++);
 }
 
@@ -212,10 +213,10 @@ static void cread_print_hist_list(void)
        }                                                                          \
 }
 
-static void cread_add_char(char ichar, int insert, unsigned long *num,
-              unsigned long *eol_num, char *buf, unsigned long len)
+static void cread_add_char(char ichar, int insert, unsigned int *num,
+              unsigned int *eol_num, char *buf, unsigned int len)
 {
-       unsigned long wlen;
+       unsigned int wlen;
 
        /* room ??? */
        if (insert || *num == *eol_num) {
@@ -246,8 +247,8 @@ static void cread_add_char(char ichar, int insert, unsigned long *num,
 }
 
 static void cread_add_str(char *str, int strsize, int insert,
-                         unsigned long *num, unsigned long *eol_num,
-                         char *buf, unsigned long len)
+                         unsigned int *num, unsigned int *eol_num,
+                         char *buf, unsigned int len)
 {
        while (strsize--) {
                cread_add_char(*str, insert, num, eol_num, buf, len);
@@ -257,9 +258,9 @@ static void cread_add_str(char *str, int strsize, int insert,
 
 static int cread_line(const FLASH char *const prompt, char *buf, unsigned int *len)
 {
-       unsigned long num = 0;
-       unsigned long eol_num = 0;
-       unsigned long wlen;
+       unsigned int num = 0;
+       unsigned int eol_num = 0;
+       unsigned int wlen;
        char ichar;
        int insert = 1;
        int esc_len = 0;