diff options
author | Philip Kaludercic <philipk@posteo.net> | 2022-12-31 15:04:18 +0100 |
---|---|---|
committer | Philip Kaludercic <philipk@posteo.net> | 2022-12-31 15:05:56 +0100 |
commit | f309651b677e3be39a246c02973fd31fc74434d3 (patch) | |
tree | 311781234bb4901f14661433a92e81544ba6d6db | |
parent | 9292f595a71870eec1ffdfd187b859cc990c2f0b (diff) | |
download | emacs-f309651b677e3be39a246c02973fd31fc74434d3.tar.gz |
; Fix handling of 'not' by 'buffer-match-p'
* lisp/subr.el (buffer-match-p): Look up the cadr instead of the cdr
for the negation in 'not'.
* doc/lispref/buffers.texi (Buffer List): Update documentation.
(Bug#58951)
-rw-r--r-- | doc/lispref/buffers.texi | 18 | ||||
-rw-r--r-- | lisp/subr.el | 4 |
2 files changed, 10 insertions, 12 deletions
diff --git a/doc/lispref/buffers.texi b/doc/lispref/buffers.texi index c40e088293e..57d627a4209 100644 --- a/doc/lispref/buffers.texi +++ b/doc/lispref/buffers.texi @@ -977,17 +977,15 @@ first argument is @var{buffer-or-name} and the second is @var{arg} A cons-cell @code{(@var{oper} . @var{expr})} where @var{oper} is one of @table @code -@item not -Satisfied if @var{expr} doesn't satisfy @code{buffer-match-p} with +@item (not @var{cond}) +Satisfied if @var{cond} doesn't satisfy @code{buffer-match-p} with the same buffer and @code{arg}. -@item or -Satisfied if @var{expr} is a list and @emph{any} condition in -@var{expr} satisfies @code{buffer-match-p}, with the same buffer and -@code{arg}. -@item and -Satisfied if @var{expr} is a list and @emph{all} conditions in -@var{expr} satisfy @code{buffer-match-p}, with the same buffer and -@code{arg}. +@item (or @var{conds}@dots{}) +Satisfied if @emph{any} condition in @var{conds} satisfies +@code{buffer-match-p}, with the same buffer and @code{arg}. +@item (and @var{conds}@dots{}) +Satisfied if @emph{all} the conditions in @var{conds} satisfy +@code{buffer-match-p}, with the same buffer and @code{arg}. @item derived-mode Satisfied if the buffer's major mode derives from @var{expr}. @item major-mode diff --git a/lisp/subr.el b/lisp/subr.el index 2fcdc7addf1..af0a208f7be 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -7046,7 +7046,7 @@ CONDITION is either: * `major-mode': the buffer matches if the buffer's major mode is eq to the cons-cell's cdr. Prefer using `derived-mode' instead when both can work. - * `not': the cdr is interpreted as a negation of a condition. + * `not': the cadr is interpreted as a negation of a condition. * `and': the cdr is a list of recursive conditions, that all have to be met. * `or': the cdr is a list of recursive condition, of which at @@ -7073,7 +7073,7 @@ CONDITION is either: (provided-mode-derived-p (buffer-local-value 'major-mode buffer) mode)) - (`(not . ,cond) + (`(not ,cond) (not (funcall match cond))) (`(or . ,args) (funcall match args)) |