about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--Doc/Zsh/params.yo23
2 files changed, 21 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 98c103e0c..8071ae703 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,8 @@
 
 2015-02-03  Peter Stephenson  <p.stephenson@samsung.com>
 
+	* users/19800: Doc/Zsh/params.yo: more help on $HISTORY_IGNORE.
+
 	* 34455: Src/Modules/db_gdbm.c: some further parameter bug fixes
 	including memory leak and unsetting old parameter too late.
 
diff --git a/Doc/Zsh/params.yo b/Doc/Zsh/params.yo
index 391a5fb0a..ee7c05412 100644
--- a/Doc/Zsh/params.yo
+++ b/Doc/Zsh/params.yo
@@ -1052,10 +1052,25 @@ item(tt(HISTORY_IGNORE))(
 If set, is treated as a pattern at the time history files are written.
 Any potential history entry that matches the pattern is skipped.  For
 example, if the value is `tt(fc *)' then commands that invoke the
-interactive history editor are never written to the history file (compare
-the tt(HIST_NO_STORE) option or the tt(zshaddhistory) hook, either of
-which would prevent such commands from being added to the interactive
-history at all).
+interactive history editor are never written to the history file.
+
+Note that tt(HISTORY_IGNORE) defines a single pattern: to
+specify alternatives use the `tt(+LPAR()first|second|...+RPAR())'
+syntax.
+
+Compare the tt(HIST_NO_STORE) option or the tt(zshaddhistory) hook,
+either of which would prevent such commands from being added to the
+interactive history at all.  If you wish to use tt(HISTORY_IGNORE) to
+stop history being added in the first place, you can define the
+following hook:
+
+example(zshaddhistory+LPAR()RPAR() {
+  emulate -L zsh
+  ## uncomment if HISTORY_IGNORE
+  ## should use EXTENDED_GLOB syntax
+  # setopt extendedglob
+  [[ $1 != ${~HISTORY_IGNORE} ]]
+})
 )
 vindex(HISTSIZE)
 item(tt(HISTSIZE) <S>)(