From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12818 invoked from network); 17 Jul 2000 16:46:45 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 17 Jul 2000 16:46:45 -0000 Received: (qmail 17630 invoked by alias); 17 Jul 2000 16:46:33 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 12280 Received: (qmail 17623 invoked from network); 17 Jul 2000 16:46:31 -0000 From: "Bart Schaefer" Message-Id: <1000717164610.ZM22230@candle.brasslantern.com> Date: Mon, 17 Jul 2000 16:46:10 +0000 In-Reply-To: Comments: In reply to Wayne Davison "spaceflag question; remhist() going away" (Jul 16, 6:54pm) References: In-Reply-To: Comments: In reply to Wayne Davison "Re: spaceflag question; remhist() going away" (Jul 17, 3:04am) X-Mailer: Z-Mail (5.0.0 30July97) To: Wayne Davison , Zsh Workers Subject: Re: spaceflag question; remhist() going away MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii On Jul 16, 6:54pm, Wayne Davison wrote: } Subject: spaceflag question; remhist() going away } } There's a variable that gets set in input.c called "spaceflag". It } gets set if the first character of the first line is a space. Later } on, the history code checks this flag when the HIST_IGNORE_SPACE } option is set. Can anyone tell me why the history code doesn't just } check if (*chline == ' ') instead of checking spaceflag? My theory was going to be the same as PWS's, but now I think I recall something different; more in a moment. } I've removed } this variable from my local source, and everything appears to be } working just fine without it. I'll bet it isn't. In an unmodified 3.0.[678] try this: zsh% setopt histignorespace zsh% alias echo=' echo' zsh% echo foo foo zsh% history setopt histignorespace alias echo=' echo' zsh% Note that aliases beginning with a space cause the line to be omitted from the history even if the line itself did not begin with a space. } I've been wanting to dump remhist() for some time now due to how it } does not properly interact with the INC_APPEND_HIST & SHARE_HISTORY } options. My solution is to use string matching of the command line } to determine if this is a command that should not be saved. I don't care about removing remhist() one way or another, but the way you were supposed to implement having an arbitrary command never appear in your history was to create an alias starting with a space for that command's name, as I did above with "echo". I have no idea why this was never documented. } I'm also } considering adding a general-purpose environment variable that would } allow the user to specify an arbitrary pattern that would cause the } current command line not to be stored in the history. I was thinking } about calling it $HISTIGNOREMATCH. I like the existing aliasing solution better; under what circumstances would you want to match more of the command line than the command name? On Jul 17, 3:04am, Wayne Davison wrote: } Subject: Re: spaceflag question; remhist() going away } } My current theory is that the flag used to also be used in another } section of code that checked if any of the expanded aliases began with } a space. I had no idea that this code existed before I removed it } from my local version. Also, the code doesn't seem to work in the } versions of zsh that I have access to (a slightly modified 3.0.6 and } the very latest CVS version) As I pointed out above, if it doesn't work in your modified 3.0.6, it's not my fault. } so I don't plan to re-implement this } space-starting-alias functionality (at least, not right away). I hope you change your mind. -- Bart Schaefer Brass Lantern Enterprises http://www.well.com/user/barts http://www.brasslantern.com Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net