Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: spaceflag question; remhist() going away



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   



Messages sorted by: Reverse Date, Date, Thread, Author