zsh-workers
 help / color / mirror / code / Atom feed
* PATCH: 3.0.6-pre-4: Sneaky history bug
@ 1999-06-16  6:47 Bart Schaefer
  0 siblings, 0 replies; only message in thread
From: Bart Schaefer @ 1999-06-16  6:47 UTC (permalink / raw)
  To: zsh-workers

Start with an empty history, as with "zsh -f" or a non-login shell, and
then try to do a "quick substitution" on the nonexistent previous command
using the second character in $histchars (usually '^').  I found myself
in hend() with chwordpos == -2, which did all sorts of fun things when
memcpy was called with chwordpos * sizeof(short) as its third parameter.

I think only Wayne really knows what's going on in the code below, but
this patch at least seems to prevent zsh committing hara-kiri.  You end
up with an empty entry in the history, though.

Index: Src/hist.c
===================================================================
@@ -719,7 +719,7 @@
 	}
 #endif
 	/* get rid of pesky \n which we've already nulled out */
-	if (!chline[chwords[chwordpos-2]])
+	if (chwordpos > 1 && !chline[chwords[chwordpos-2]])
 	    chwordpos -= 2;
 	/* strip superfluous blanks, if desired */
 	if (isset(HISTREDUCEBLANKS))

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~1999-06-16  6:48 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-06-16  6:47 PATCH: 3.0.6-pre-4: Sneaky history bug Bart Schaefer

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).