summaryrefslogtreecommitdiff
path: root/avr/cli_readline.c
diff options
context:
space:
mode:
authorLeo C2014-11-26 19:19:36 +0100
committerLeo C2014-11-26 19:19:36 +0100
commit8591c65b4c987852c76ebdea35498295969068e1 (patch)
tree1381b5007ff50bb5314b773e6a19824de9a53e53 /avr/cli_readline.c
parente1a50c19eb3734d414cd4f1d13ca57761a4d9e18 (diff)
downloadz180-stamp-8591c65b4c987852c76ebdea35498295969068e1.zip
command line editing generally works
Diffstat (limited to 'avr/cli_readline.c')
-rw-r--r--avr/cli_readline.c19
1 files changed, 10 insertions, 9 deletions
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;