diff --git a/contrib/lisp/ox-koma-letter.el b/contrib/lisp/ox-koma-letter.el index d82c12553..f1ccc46a8 100644 --- a/contrib/lisp/ox-koma-letter.el +++ b/contrib/lisp/ox-koma-letter.el @@ -439,7 +439,8 @@ e.g. \"title-subject:t\"." (:inbuffer-with-backaddress nil "backaddress" 'koma-letter:empty) (:inbuffer-with-email nil "email" 'koma-letter:empty) (:inbuffer-with-foldmarks nil "foldmarks" 'koma-letter:empty) - (:inbuffer-with-phone nil "phone" 'koma-letter:empty)) + (:inbuffer-with-phone nil "phone" 'koma-letter:empty) + (:inbuffer-with-place nil "place" 'koma-letter:empty)) :translate-alist '((export-block . org-koma-letter-export-block) (export-snippet . org-koma-letter-export-snippet) (headline . org-koma-letter-headline) @@ -745,9 +746,13 @@ a communication channel." (format "\\KOMAoption{backaddress}{%s}\n" (if (plist-get info :with-backaddress) "true" "false"))) ;; Place. - (and (funcall check-scope 'place) - (format "\\setkomavar{place}{%s}\n" - (if (plist-get info :with-place) (plist-get info :place) ""))) + (let ((with-place-set (funcall check-scope 'with-place)) + (place-set (funcall check-scope 'place))) + (and (or (and with-place-set place-set) + (and (eq scope 'buffer) (or with-place-set place-set))) + (format "\\setkomavar{place}{%s}\n" + (if (plist-get info :with-place) (plist-get info :place) + "")))) ;; Folding marks. (and (funcall check-scope 'with-foldmarks) (let ((foldmarks (plist-get info :with-foldmarks))) diff --git a/doc/org.texi b/doc/org.texi index ed808bece..ac7d3a4e5 100644 --- a/doc/org.texi +++ b/doc/org.texi @@ -8620,9 +8620,10 @@ selected. @vindex org-agenda-category-filter-preset Filter the current agenda view with respect to the category of the item at -point. Pressing @code{<} another time will remove this filter. You can add -a filter preset through the option @code{org-agenda-category-filter-preset} -(see below.) +point. Pressing @code{<} another time will remove this filter. When called +with a prefix argument exclude the category of the item at point from the +agenda. You can add a filter preset through the option +@code{org-agenda-category-filter-preset} (see below.) @orgcmd{^,org-agenda-filter-by-top-headline} Filter the current agenda view and only display the siblings and the parent diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index a8661a775..9f85cfa98 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -7352,8 +7352,11 @@ in the agenda." (defvar org-agenda-filtered-by-category nil) (defun org-agenda-filter-by-category (strip) - "Keep only those lines in the agenda buffer that have a specific category. -The category is that of the current line." + "Filter lines in the agenda buffer that have a specific category. +The category is that of the current line. +Without prefix argument, keep only the lines of that category. +With a prefix argument, exclude the lines of that category. +" (interactive "P") (if (and org-agenda-filtered-by-category org-agenda-category-filter) @@ -7363,7 +7366,7 @@ The category is that of the current line." ((and cat strip) (org-agenda-filter-apply (push (concat "-" cat) org-agenda-category-filter) 'category)) - ((and cat) + (cat (org-agenda-filter-apply (setq org-agenda-category-filter (list (concat "+" cat))) 'category))