diff -urb zsh-4.2.5.ORIG/Src/Zle/zle.h zsh-4.2.5/Src/Zle/zle.h --- zsh-4.2.5.ORIG/Src/Zle/zle.h 2003-01-27 08:54:52.000000000 -0600 +++ zsh-4.2.5/Src/Zle/zle.h 2005-08-06 14:17:52.000000000 -0500 @@ -28,6 +28,7 @@ */ #undef trashzle +#undef zle_resetprompt #undef zleread #undef spaceinline #undef zrefresh diff -urb zsh-4.2.5.ORIG/Src/Zle/zle_main.c zsh-4.2.5/Src/Zle/zle_main.c --- zsh-4.2.5.ORIG/Src/Zle/zle_main.c 2005-04-01 04:35:09.000000000 -0600 +++ zsh-4.2.5/Src/Zle/zle_main.c 2005-08-06 14:17:59.000000000 -0500 @@ -1358,6 +1358,16 @@ /**/ mod_export void +zle_resetprompt(void) +{ reexpandprompt(); + if (zleactive) + redisplay(NULL); +} + + + +/**/ +mod_export void trashzle(void) { if (zleactive) { @@ -1435,6 +1445,7 @@ { /* Set up editor entry points */ trashzleptr = trashzle; + zle_resetpromptptr = zle_resetprompt; refreshptr = zrefresh; spaceinlineptr = spaceinline; zlereadptr = zleread; @@ -1519,6 +1530,7 @@ /* editor entry points */ trashzleptr = noop_function; + zle_resetpromptptr = noop_function; refreshptr = noop_function; spaceinlineptr = noop_function_int; zlereadptr = fallback_zleread; diff -urb zsh-4.2.5.ORIG/Src/init.c zsh-4.2.5/Src/init.c --- zsh-4.2.5.ORIG/Src/init.c 2005-04-01 04:20:30.000000000 -0600 +++ zsh-4.2.5/Src/init.c 2005-08-06 14:18:47.000000000 -0500 @@ -1125,6 +1125,8 @@ /**/ mod_export ZleVoidFn trashzleptr = noop_function; /**/ +mod_export ZleVoidFn zle_resetpromptptr = noop_function; +/**/ mod_export ZleVoidFn refreshptr = noop_function; /**/ mod_export ZleVoidIntFn spaceinlineptr = noop_function_int; @@ -1136,6 +1138,7 @@ #else /* !LINKED_XMOD_zshQszle */ mod_export ZleVoidFn trashzleptr = noop_function; +mod_export ZleVoidFn zle_resetpromptptr = noop_function; mod_export ZleVoidFn refreshptr = noop_function; mod_export ZleVoidIntFn spaceinlineptr = noop_function_int; # ifdef UNLINKED_XMOD_zshQszle diff -urb zsh-4.2.5.ORIG/Src/utils.c zsh-4.2.5/Src/utils.c --- zsh-4.2.5.ORIG/Src/utils.c 2005-03-21 12:49:00.000000000 -0600 +++ zsh-4.2.5/Src/utils.c 2005-08-06 14:17:43.000000000 -0500 @@ -1055,6 +1055,7 @@ #endif /* TIOCGWINSZ */ resetneeded = 1; zrefresh(); + zle_resetprompt(); } } diff -urb zsh-4.2.5.ORIG/Src/zsh.h zsh-4.2.5/Src/zsh.h --- zsh-4.2.5.ORIG/Src/zsh.h 2005-01-12 06:19:06.000000000 -0600 +++ zsh-4.2.5/Src/zsh.h 2005-08-06 14:20:19.000000000 -0500 @@ -28,6 +28,7 @@ */ #define trashzle() trashzleptr() +#define zle_resetprompt() zle_resetpromptptr() #define zleread(X,Y,H,C) zlereadptr(X,Y,H,C) #define spaceinline(X) spaceinlineptr(X) #define zrefresh() refreshptr()