Mercurial > emacs
changeset 106066:4b7353091b4a
* emacs-lisp/lisp-mnt.el (lm-keywords): Allow multi-line keywords.
(lm-keywords-list): Allow comma-only separator like "foo,bar".
Ignore trailing spaces by omit-nulls to split-string (fixing
regression from Emacs 21 due to the incompatible split-string
change). (Bug #4928.)
author | Kevin Ryde <user42@zip.com.au> |
---|---|
date | Mon, 16 Nov 2009 22:58:21 +0000 |
parents | b97222e6f7a8 |
children | f5ddc2cbc74b |
files | lisp/emacs-lisp/lisp-mnt.el |
diffstat | 1 files changed, 8 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/emacs-lisp/lisp-mnt.el Mon Nov 16 22:55:14 2009 +0000 +++ b/lisp/emacs-lisp/lisp-mnt.el Mon Nov 16 22:58:21 2009 +0000 @@ -445,16 +445,20 @@ (match-string-no-properties 1))))))) (defun lm-keywords (&optional file) - "Return the keywords given in file FILE, or current buffer if FILE is nil." + "Return the keywords given in file FILE, or current buffer if FILE is nil. +The return is a `downcase'-ed string, or nil if no keywords +header. Multi-line keywords are joined up with a space between +each line." (lm-with-file file - (let ((keywords (lm-header "keywords"))) - (and keywords (downcase keywords))))) + (let ((keywords (lm-header-multiline "keywords"))) + (and keywords + (mapconcat 'downcase keywords " "))))) (defun lm-keywords-list (&optional file) "Return list of keywords given in file FILE." (let ((keywords (lm-keywords file))) (if keywords - (split-string keywords ",?[ \t]")))) + (split-string keywords "[, \t\n]+" t)))) (defvar finder-known-keywords) (defun lm-keywords-finder-p (&optional file)