Remove some code duplication in startup.el
[bpt/emacs.git] / lisp / startup.el
index ad31a7a..b7b4c15 100644 (file)
@@ -1856,11 +1856,8 @@ To quit a partially entered command, type Control-g.\n")
   (insert "\n" (emacs-version)
          "\n" emacs-copyright))
 
-;; No mouse menus, so give help using kbd commands.
 (defun normal-no-mouse-startup-screen ()
-
-  ;; If keys have their default meanings,
-  ;; use precomputed string to save lots of time.
+  "Show a splash screen suitable for displays without mouse support."
   (let* ((c-h-accessible
           ;; If normal-erase-is-backspace is used on a tty, there's
           ;; no way to invoke C-h and you have to use F1 instead.
@@ -1938,47 +1935,24 @@ If you have no Meta key, you may instead type ESC followed by the character.)")
                 'follow-link t)
   (insert "\n")
   (insert "\n" (emacs-version) "\n" emacs-copyright "\n")
-
-  (if (and (eq (key-binding "\C-h\C-c") 'describe-copying)
-          (eq (key-binding "\C-h\C-d") 'describe-distribution)
-          (eq (key-binding "\C-h\C-w") 'describe-no-warranty))
-      (progn
-       (insert
-        "
-GNU Emacs comes with ABSOLUTELY NO WARRANTY; type C-h C-w for ")
-       (insert-button "full details"
-                      'action (lambda (_button) (describe-no-warranty))
-                      'follow-link t)
-       (insert ".
-Emacs is Free Software--Free as in Freedom--so you can redistribute copies
-of Emacs and modify it; type C-h C-c to see ")
-       (insert-button "the conditions"
-                      'action (lambda (_button) (describe-copying))
-                      'follow-link t)
-       (insert ".
-Type C-h C-d for information on ")
-       (insert-button "getting the latest version"
-                      'action (lambda (_button) (describe-distribution))
-                      'follow-link t)
-       (insert "."))
-    (insert (substitute-command-keys
-            "
+  (insert (substitute-command-keys
+          "
 GNU Emacs comes with ABSOLUTELY NO WARRANTY; type \\[describe-no-warranty] for "))
-    (insert-button "full details"
-                  'action (lambda (_button) (describe-no-warranty))
-                  'follow-link t)
-    (insert (substitute-command-keys ".
+  (insert-button "full details"
+                'action (lambda (_button) (describe-no-warranty))
+                'follow-link t)
+  (insert (substitute-command-keys ".
 Emacs is Free Software--Free as in Freedom--so you can redistribute copies
 of Emacs and modify it; type \\[describe-copying] to see "))
-    (insert-button "the conditions"
-                  'action (lambda (_button) (describe-copying))
-                  'follow-link t)
-    (insert (substitute-command-keys".
+  (insert-button "the conditions"
+                'action (lambda (_button) (describe-copying))
+                'follow-link t)
+  (insert (substitute-command-keys".
 Type \\[describe-distribution] for information on "))
-    (insert-button "getting the latest version"
-                  'action (lambda (_button) (describe-distribution))
-                  'follow-link t)
-    (insert ".")))
+  (insert-button "getting the latest version"
+                'action (lambda (_button) (describe-distribution))
+                'follow-link t)
+  (insert "."))
 
 (defun normal-about-screen ()
   (insert "\n" (emacs-version) "\n" emacs-copyright "\n\n")
@@ -2027,14 +2001,11 @@ Type \\[describe-distribution] for information on "))
   (insert "\tBuying printed manuals from the FSF\n"))
 
 (defun startup-echo-area-message ()
-  (cond ((daemonp)
-        "Starting Emacs daemon.")
-       ((eq (key-binding "\C-h\C-a") 'about-emacs)
-        "For information about GNU Emacs and the GNU system, type C-h C-a.")
-       (t
-        (substitute-command-keys
-         "For information about GNU Emacs and the GNU system, type \
-\\[about-emacs]."))))
+  (if (daemonp)
+      "Starting Emacs daemon."
+    (substitute-command-keys
+     "For information about GNU Emacs and the GNU system, type \
+\\[about-emacs].")))
 
 (defun display-startup-echo-area-message ()
   (let ((resize-mini-windows t))
@@ -2399,13 +2370,17 @@ A fancy display is used on graphic displays, normal otherwise."
     ;; Use arg 1 so that we don't collapse // at the start of the file name.
     ;; That is significant on some systems.
     ;; However, /// at the beginning is supposed to mean just /, not //.
-    (if (string-match "^///+" file)
+    (if (string-match
+        (if (memq system-type '(ms-dos windows-nt))
+            "^\\([\\/][\\/][\\/]\\)+"
+          "^///+")
+        file)
        (setq file (replace-match "/" t t file)))
-    (and (memq system-type '(ms-dos windows-nt))
-        (string-match "^[A-Za-z]:\\(\\\\[\\\\/]\\)" file) ; C:\/ or C:\\
-        (setq file (replace-match "/" t t file 1)))
-    (while (string-match "//+" file 1)
-      (setq file (replace-match "/" t t file)))
+    (if (memq system-type '(ms-dos windows-nt))
+       (while (string-match "\\([\\/][\\/]\\)+" file 1)
+         (setq file (replace-match "/" t t file)))
+      (while (string-match "//+" file 1)
+       (setq file (replace-match "/" t t file))))
     file))
 
 ;;; startup.el ends here