--- Src/Zle/zle_main.c 1 Jul 2004 14:55:58 -0000 1.46 +++ Src/Zle/zle_main.c 1 Jul 2004 16:42:30 -0000 @@ -1311,14 +1311,20 @@ recursiveedit(UNUSED(char **args)) } /**/ -int -resetprompt(UNUSED(char **args)) +void +reexpandprompt(void) { free(lpromptbuf); lpromptbuf = promptexpand(raw_lp, 1, NULL, NULL); free(rpromptbuf); rpromptbuf = promptexpand(raw_rp, 1, NULL, NULL); +} +/**/ +int +resetprompt(UNUSED(char **args)) +{ + reexpandprompt(); return redisplay(NULL); } --- Src/Zle/zle_refresh.c 2 Jun 2004 22:15:02 -0000 1.12 +++ Src/Zle/zle_refresh.c 1 Jul 2004 16:42:30 -0000 @@ -291,7 +291,8 @@ zrefresh(void) unsigned char *tmpline; /* line with added pre/post text */ int tmpcs, tmpll; /* ditto cursor position and line length */ int tmpalloced; /* flag to free tmpline when finished */ - + + reexpandprompt(); /* If this is called from listmatches() (indirectly via trashzle()), and * * that was called from the end of zrefresh(), then we don't need to do *