]> git.eshelyaron.com Git - emacs.git/commitdiff
(easy-mmode-pretty-mode-name): Explain
authorEli Zaretskii <eliz@gnu.org>
Sat, 7 May 2005 15:06:42 +0000 (15:06 +0000)
committerEli Zaretskii <eliz@gnu.org>
Sat, 7 May 2005 15:06:42 +0000 (15:06 +0000)
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.

lisp/ChangeLog
lisp/emacs-lisp/easy-mmode.el

index 48253061bfa1d48d7044d32995b335a39f259e92..da4e1c8997626f67ffa2a0fcf305b47cc4b9ee9a 100644 (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)
 
        * replace.el (occur-1): Bind inhibit-read-only so that
index 831ffb2d5763a6e7636a8c35bd950e7de2111451..94db7cc586f25b13acac46830e0585b9618a1be0 100644 (file)
 
 (defun easy-mmode-pretty-mode-name (mode &optional lighter)
   "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)
+        ;; Produce "Foo-Bar Minor mode" from foo-bar-minor-mode.
         (name (concat (replace-regexp-in-string
+                       ;; "Foo-Bar-Minor" -> "Foo-Bar minor"
                        "-Minor" " minor"
+                       ;; "foo-bar-minor" -> "Foo-Bar-Minor"
                        (capitalize (replace-regexp-in-string
+                                    ;; "foo-bar-minor-mode" -> "foo-bar-minor"
                                     "-mode\\'" "" (symbol-name mode))))
                       " mode")))
     (if (not (stringp lighter)) name
-      (setq lighter (replace-regexp-in-string "\\`\\s-+\\|\\-s+\\'" "" lighter))
-      (replace-regexp-in-string lighter lighter name t t))))
+      ;; Strip leading and trailing whitespace from LIGHTER.
+      (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
 (defalias 'easy-mmode-define-minor-mode 'define-minor-mode)