1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-04 02:51:31 -08:00

(easy-mmode-pretty-mode-name): Explain

more about the LIGHTER arg's usage in the doc string.  Add
commentary to clarify what the code does.  Fix the regexp that
strips whitespace from LIGHTER.  Quote LIGHTER before using it,
since it could have characters special to regular expressions.
This commit is contained in:
Eli Zaretskii 2005-05-07 15:06:42 +00:00
parent 06df7f877b
commit e6469973d4
2 changed files with 24 additions and 3 deletions

View file

@ -1,3 +1,11 @@
2005-05-07 Eli Zaretskii <eliz@gnu.org>
* emacs-lisp/easy-mmode.el (easy-mmode-pretty-mode-name): Explain
more about the LIGHTER arg's usage in the doc string. Add
commentary to clarify what the code does. Fix the regexp that
strips whitespace from LIGHTER. Quote LIGHTER before using it,
since it could have characters special to regular expressions.
2005-05-07 Matt Hodges <MPHodges@member.fsf.org> (tiny change) 2005-05-07 Matt Hodges <MPHodges@member.fsf.org> (tiny change)
* replace.el (occur-1): Bind inhibit-read-only so that * replace.el (occur-1): Bind inhibit-read-only so that

View file

@ -58,16 +58,29 @@
(defun easy-mmode-pretty-mode-name (mode &optional lighter) (defun easy-mmode-pretty-mode-name (mode &optional lighter)
"Turn the symbol MODE into a string intended for the user. "Turn the symbol MODE into a string intended for the user.
If provided LIGHTER will be used to help choose capitalization." If provided, LIGHTER will be used to help choose capitalization by,
replacing its case-insensitive matches with the literal string in LIGHTER."
(let* ((case-fold-search t) (let* ((case-fold-search t)
;; Produce "Foo-Bar Minor mode" from foo-bar-minor-mode.
(name (concat (replace-regexp-in-string (name (concat (replace-regexp-in-string
;; "Foo-Bar-Minor" -> "Foo-Bar minor"
"-Minor" " minor" "-Minor" " minor"
;; "foo-bar-minor" -> "Foo-Bar-Minor"
(capitalize (replace-regexp-in-string (capitalize (replace-regexp-in-string
;; "foo-bar-minor-mode" -> "foo-bar-minor"
"-mode\\'" "" (symbol-name mode)))) "-mode\\'" "" (symbol-name mode))))
" mode"))) " mode")))
(if (not (stringp lighter)) name (if (not (stringp lighter)) name
(setq lighter (replace-regexp-in-string "\\`\\s-+\\|\\-s+\\'" "" lighter)) ;; Strip leading and trailing whitespace from LIGHTER.
(replace-regexp-in-string lighter lighter name t t)))) (setq lighter (replace-regexp-in-string "\\`\\s-+\\|\\s-+\\'" ""
lighter))
;; Replace any (case-insensitive) matches for LIGHTER in NAME
;; with a literal LIGHTER. E.g., if NAME is "Iimage mode" and
;; LIGHTER is " iImag", then this will produce "iImage mode".
;; (LIGHTER normally comes from the mode-line string passed to
;; define-minor-mode, and normally includes at least one leading
;; space.)
(replace-regexp-in-string (regexp-quote lighter) lighter name t t))))
;;;###autoload ;;;###autoload
(defalias 'easy-mmode-define-minor-mode 'define-minor-mode) (defalias 'easy-mmode-define-minor-mode 'define-minor-mode)