From: Leo C Date: Wed, 26 Nov 2014 18:19:36 +0000 (+0100) Subject: command line editing generally works X-Git-Tag: hexrel-6.4~4 X-Git-Url: http://cloudbase.mooo.com/gitweb/z180-stamp.git/commitdiff_plain/8591c65b4c987852c76ebdea35498295969068e1 command line editing generally works --- diff --git a/avr/cli_readline.c b/avr/cli_readline.c index 1a0aaf2..08d2c4b 100644 --- a/avr/cli_readline.c +++ b/avr/cli_readline.c @@ -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;