zsh-workers
 help / color / mirror / code / Atom feed
* spaceflag question; remhist() going away
@ 2000-07-17  1:54 Wayne Davison
  2000-07-17  8:57 ` Peter Stephenson
  0 siblings, 1 reply; 7+ messages in thread
From: Wayne Davison @ 2000-07-17  1:54 UTC (permalink / raw)
  To: Zsh Workers

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?  I've removed
this variable from my local source, and everything appears to be
working just fine without it.

In a related area, I've dumped the function remhist() in my local
source.  This function is a constant source of bugs, and I found
yet another bug today:  if you have HIST_IGNORE_SPACE set along
with HIST_NO_STORE, you lose a line of history every time you type
" history" (note the leading 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'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.

Comments are welcomed.

..wayne..


^ permalink raw reply	[flat|nested] 7+ messages in thread
* Re: spaceflag question; remhist() going away
@ 2000-07-18  5:23 Felix Rosencrantz
  0 siblings, 0 replies; 7+ messages in thread
From: Felix Rosencrantz @ 2000-07-18  5:23 UTC (permalink / raw)
  To: zsh-workers

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=us-ascii, Size: 1682 bytes --]

 Wayne Davison wrote:
>The matching rule would allow more general command-name rules, plus
>line-oriented rules that name-oriented support don't allow.  For
>instance:  ignoring lines that are just 1 or 2 chars long; ignoring
>the make command unless it had an argument or was a part of a compound
>statement; ignoring the history command, but only if it is not a part
>of a compound statement (such as having its output piped into a
>script); ignoring lines that begin with whitespace (including tab)
>without having any extra alias-checking rules done; ignoring a lynx
>command that uses the -auth option; etc.
>
>The plus side is that a line-matching rule is much more flexible.  The
>down side is that a user has to understand complex patterns to be able
>to use it effectively.  Some good examples would get the casual user
>going, though.

Yeah, I was talking about something similar that could be used with
Bart's new smart-insert-last-word widget.  Seems like some common ability
to match and filter history would be useful in several situations.  Sort of
a regex for command history... 8)

Another thing I would use is a "soft" or "fuzzy" history mechanism.  For
example, I would really like to be able to intercept a "!$" history option
and replace it with a call to smart-insert-last-word (w/command line matching).
Or the ability to intercept other history calls like !* or !!.  It seems like
it would be useful to have an option that would allow us to play with this
history mechanism, so it's a little more DWIM.

-FR

__________________________________________________
Do You Yahoo!?
Get Yahoo! Mail – Free email you can access from anywhere!
http://mail.yahoo.com/


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2000-07-18  5:23 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-07-17  1:54 spaceflag question; remhist() going away Wayne Davison
2000-07-17  8:57 ` Peter Stephenson
2000-07-17 10:04   ` Wayne Davison
2000-07-17 16:46     ` Bart Schaefer
2000-07-17 18:29       ` Wayne Davison
2000-07-17 19:44         ` Wayne Davison
2000-07-18  5:23 Felix Rosencrantz

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).