correct set prompt if CONFIG_ASH_EXPAND_PRMT enabled, small automatic space->tabs...
author"Vladimir N. Oleynik" <dzo@simtreas.ru>
Mon, 26 Sep 2005 13:24:45 +0000 (13:24 -0000)
committer"Vladimir N. Oleynik" <dzo@simtreas.ru>
Mon, 26 Sep 2005 13:24:45 +0000 (13:24 -0000)
shell/ash.c

index 7271535aa14faabeec87a67747c522a655cf7984..559238c3f0e2153bce62bf917ed66ae79a495771 100644 (file)
@@ -6016,10 +6016,19 @@ pfgets(char *line, int len)
 
 
 #ifdef CONFIG_FEATURE_COMMAND_EDITING
+#ifdef CONFIG_ASH_EXPAND_PRMT
+static char *cmdedit_prompt;
+#else
 static const char *cmdedit_prompt;
+#endif
 static inline void putprompt(const char *s)
 {
+#ifdef CONFIG_ASH_EXPAND_PRMT
+       free(cmdedit_prompt);
+       cmdedit_prompt = bb_xstrdup(s);
+#else
        cmdedit_prompt = s;
+#endif
 }
 #else
 static inline void putprompt(const char *s)
@@ -12626,7 +12635,7 @@ readcmd(int argc, char **argv)
        while ((i = nextopt("p:r")) != '\0')
 #endif
        {
-               switch(i) {
+               switch(i) {
                case 'p':
                        prompt = optionarg;
                        break;
@@ -12643,13 +12652,13 @@ readcmd(int argc, char **argv)
 #endif
 #if defined(CONFIG_ASH_READ_TIMEOUT)
                case 't':
-                       ts.tv_sec = strtol(optionarg, &p, 10);
+                       ts.tv_sec = strtol(optionarg, &p, 10);
                        ts.tv_usec = 0;
                        if (*p == '.') {
                                char *p2;
                                if (*++p) {
                                        int scale;
-                                       ts.tv_usec = strtol(p, &p2, 10);
+                                       ts.tv_usec = strtol(p, &p2, 10);
                                        if (*p2)
                                                error("invalid timeout");
                                        scale = p2 - p;