destroy bug [0000404]
author"Vladimir N. Oleynik" <dzo@simtreas.ru>
Mon, 5 Sep 2005 15:46:26 +0000 (15:46 -0000)
committer"Vladimir N. Oleynik" <dzo@simtreas.ru>
Mon, 5 Sep 2005 15:46:26 +0000 (15:46 -0000)
shell/cmdedit.c

index c67283f4adae50c35c0e0232f3832e6bbc042d8f..6e3ae07f9af2446cdc23d156d8c85e6c64261d9d 100644 (file)
@@ -310,7 +310,7 @@ static void parse_prompt(const char *prmt_ptr)
 static void parse_prompt(const char *prmt_ptr)
 {
        int prmt_len = 0;
-       int sub_len = 0;
+       size_t cur_prmt_len = 0;
        char  flg_not_length = '[';
        char *prmt_mem_ptr = xcalloc(1, 1);
        char *pwd_buf = xgetcwd(0);
@@ -415,15 +415,15 @@ static void parse_prompt(const char *prmt_ptr)
                }
                if(pbuf == buf)
                        *pbuf = c;
-               prmt_len += strlen(pbuf);
+               cur_prmt_len = strlen(pbuf);
+               prmt_len += cur_prmt_len;
+               if (flg_not_length != ']')
+                       cmdedit_prmt_len += cur_prmt_len;
                prmt_mem_ptr = strcat(xrealloc(prmt_mem_ptr, prmt_len+1), pbuf);
-               if (flg_not_length == ']')
-                       sub_len++;
        }
        if(pwd_buf!=(char *)bb_msg_unknown)
                free(pwd_buf);
        cmdedit_prompt = prmt_mem_ptr;
-       cmdedit_prmt_len = prmt_len - sub_len;
        put_prompt();
 }
 #endif