diff options
-rw-r--r-- | src/parser.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/parser.c b/src/parser.c index 444fa08..985b51d 100644 --- a/src/parser.c +++ b/src/parser.c @@ -1601,7 +1601,7 @@ STATIC void setprompt(int which) { struct stackmark smark; - const char *prompt, *rprompt; + const char *prompt, *rprompt, *nl; int show; needprompt = 0; @@ -1641,6 +1641,10 @@ setprompt(int which) free(rpromptcache); promptcache = savestr(expandstr(prompt)); rpromptcache = savestr(expandstr(rprompt)); + + nl = strrchr(promptcache, '\n'); + if (nl) + outmem(promptcache, &nl[1] - promptcache, out2); } popstackmark(&smark); } @@ -1651,7 +1655,14 @@ setprompt(int which) const char * getprompt(void *unused) { - return promptcache; + const char *nl; + + nl = strrchr(promptcache, '\n'); + + if (nl) + return &nl[1]; + else + return promptcache; } const char * |