altos: Expose ao_put_string function
authorKeith Packard <keithp@keithp.com>
Mon, 11 Mar 2013 04:05:34 +0000 (21:05 -0700)
committerKeith Packard <keithp@keithp.com>
Wed, 8 May 2013 03:07:08 +0000 (20:07 -0700)
This works like puts, except it doesn't add a trailing newline.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/core/ao.h
src/core/ao_cmd.c

index 977e10b87d2716d5a2817b4d51dcbd3215f8bd14..548e87381525161692844c03b476defe1bf7e1e4 100644 (file)
@@ -144,6 +144,9 @@ extern __pdata uint32_t ao_cmd_lex_u32;
 extern __pdata char    ao_cmd_lex_c;
 extern __pdata enum ao_cmd_status ao_cmd_status;
 
+void
+ao_put_string(__code char *s);
+
 void
 ao_cmd_lex(void);
 
index 3d086a57e106d8f0110e0da6ad8a309fe985552d..6eed08d91931a401da9d4c325e9f3f34b247eb1a 100644 (file)
@@ -28,8 +28,8 @@ static __xdata char   cmd_line[CMD_LEN];
 static __pdata uint8_t cmd_len;
 static __pdata uint8_t cmd_i;
 
-static void
-put_string(__code char *s)
+void
+ao_put_string(__code char *s)
 {
        char    c;
        while ((c = *s++))
@@ -39,7 +39,7 @@ put_string(__code char *s)
 static void
 backspace(void)
 {
-       put_string ("\010 \010");
+       ao_put_string ("\010 \010");
 }
 
 static void
@@ -47,7 +47,7 @@ readline(void)
 {
        char c;
        if (ao_echo())
-               put_string("> ");
+               ao_put_string("> ");
        cmd_len = 0;
        for (;;) {
                flush();
@@ -303,13 +303,21 @@ help(void)
        __pdata uint8_t cmds;
        __pdata uint8_t cmd;
        __code struct ao_cmds * __pdata cs;
-       const char *h;
+       __code const char *h;
+       uint8_t e;
 
        for (cmds = 0; cmds < ao_ncmds; cmds++) {
                cs = ao_cmds[cmds];
                for (cmd = 0; cs[cmd].func; cmd++) {
                        h = cs[cmd].help;
-                       printf("%-45s %s\n", h, h + 1 + strlen(h));
+                       ao_put_string(h);
+                       e = strlen(h);
+                       h += e + 1;
+                       e = 45 - e;
+                       while (e--)
+                               putchar(' ');
+                       ao_put_string(h);
+                       putchar('\n');
                }
        }
 }