(command-line-1): Display startup screen even if there are command line args.
Add a note about how to go to editing your files. (fancy-splash-head): Add a note about how to go to your files. (fancy-splash-outer-buffer): New variable. (fancy-splash-screens): Bind variable fancy-splash-outer-buffer.
This commit is contained in:
parent
6f2426dca6
commit
eae91b6075
2 changed files with 65 additions and 49 deletions
|
@ -1,5 +1,12 @@
|
|||
2001-12-16 Richard M. Stallman <rms@gnu.org>
|
||||
|
||||
* startup.el (command-line-1): Display startup screen
|
||||
even if there are command line args.
|
||||
Add a note about how to go to editing your files.
|
||||
(fancy-splash-head): Add a note about how to go to your files.
|
||||
(fancy-splash-outer-buffer): New variable.
|
||||
(fancy-splash-screens): Bind variable fancy-splash-outer-buffer.
|
||||
|
||||
* subr.el (with-temp-message): At the end, always discard
|
||||
the temp message, even by clearing the echo area.
|
||||
|
||||
|
|
107
lisp/startup.el
107
lisp/startup.el
|
@ -1089,7 +1089,7 @@ Values less than 60 seconds are ignored."
|
|||
(defvar fancy-current-text nil)
|
||||
(defvar fancy-splash-help-echo nil)
|
||||
(defvar fancy-splash-stop-time nil)
|
||||
|
||||
(defvar fancy-splash-outer-buffer nil)
|
||||
|
||||
(defun fancy-splash-insert (&rest args)
|
||||
"Insert text into the current buffer, with faces.
|
||||
|
@ -1152,7 +1152,11 @@ where FACE is a valid face specification, as it can be used with
|
|||
(fancy-splash-insert
|
||||
:face '(variable-pitch :foreground "red")
|
||||
"GNU Emacs is one component of the GNU operating system."))
|
||||
(insert "\n"))
|
||||
(insert "\n")
|
||||
(unless (equal (buffer-name fancy-splash-outer-buffer) "*scratch*")
|
||||
(fancy-splash-insert :face 'variable-pitch
|
||||
(substitute-command-keys
|
||||
"Type \\[recenter] to begin editing your file.\n"))))
|
||||
|
||||
|
||||
(defun fancy-splash-tail ()
|
||||
|
@ -1213,12 +1217,14 @@ where FACE is a valid face specification, as it can be used with
|
|||
(defun fancy-splash-screens ()
|
||||
"Display fancy splash screens when Emacs starts."
|
||||
(setq fancy-splash-help-echo (startup-echo-area-message))
|
||||
(switch-to-buffer "GNU Emacs")
|
||||
(setq tab-width 20)
|
||||
(let ((old-hourglass display-hourglass)
|
||||
(splash-buffer (current-buffer))
|
||||
(fancy-splash-outer-buffer (current-buffer))
|
||||
splash-buffer
|
||||
(old-minor-mode-map-alist minor-mode-map-alist)
|
||||
timer)
|
||||
(switch-to-buffer "GNU Emacs")
|
||||
(setq splash-buffer (current-buffer))
|
||||
(catch 'stop-splashing
|
||||
(unwind-protect
|
||||
(let ((map (make-sparse-keymap)))
|
||||
|
@ -1494,57 +1500,56 @@ where FACE is a valid face specification, as it can be used with
|
|||
(not noninteractive)
|
||||
(not inhibit-startup-buffer-menu)
|
||||
(or (get-buffer-window first-file-buffer)
|
||||
(list-buffers))))
|
||||
(list-buffers)))))
|
||||
|
||||
;; No command args: maybe display a startup screen.
|
||||
(when (and (not inhibit-startup-message) (not noninteractive)
|
||||
;; Don't display startup screen if init file
|
||||
;; has selected another buffer.
|
||||
(string= (buffer-name) "*scratch*")
|
||||
;; Don't display startup screen if init file
|
||||
;; has started some sort of server.
|
||||
(not (and (fboundp 'process-list)
|
||||
(process-list)))
|
||||
;; Don't display startup screen if init file
|
||||
;; has inserted some text in *scratch*.
|
||||
(= 0 (buffer-size)))
|
||||
;; Display a startup screen, after some preparations.
|
||||
;; Maybe display a startup screen.
|
||||
(when (and (not inhibit-startup-message) (not noninteractive)
|
||||
;; Don't display startup screen if init file
|
||||
;; has started some sort of server.
|
||||
(not (and (fboundp 'process-list)
|
||||
(process-list))))
|
||||
;; Display a startup screen, after some preparations.
|
||||
|
||||
;; If there are no switches to process, we might as well
|
||||
;; run this hook now, and there may be some need to do it
|
||||
;; before doing any output.
|
||||
(and term-setup-hook
|
||||
(run-hooks 'term-setup-hook))
|
||||
;; If there are no switches to process, we might as well
|
||||
;; run this hook now, and there may be some need to do it
|
||||
;; before doing any output.
|
||||
(and term-setup-hook
|
||||
(run-hooks 'term-setup-hook))
|
||||
;; Don't let the hook be run twice.
|
||||
(setq term-setup-hook nil)
|
||||
|
||||
;; It's important to notice the user settings before we
|
||||
;; display the startup message; otherwise, the settings
|
||||
;; won't take effect until the user gives the first
|
||||
;; keystroke, and that's distracting.
|
||||
(when (fboundp 'frame-notice-user-settings)
|
||||
(frame-notice-user-settings))
|
||||
|
||||
;; If there are no switches to process, we might as well
|
||||
;; run this hook now, and there may be some need to do it
|
||||
;; before doing any output.
|
||||
(when window-setup-hook
|
||||
(run-hooks 'window-setup-hook)
|
||||
;; Don't let the hook be run twice.
|
||||
(setq term-setup-hook nil)
|
||||
(setq window-setup-hook nil))
|
||||
|
||||
;; It's important to notice the user settings before we
|
||||
;; display the startup message; otherwise, the settings
|
||||
;; won't take effect until the user gives the first
|
||||
;; keystroke, and that's distracting.
|
||||
(when (fboundp 'frame-notice-user-settings)
|
||||
(frame-notice-user-settings))
|
||||
;; Do this now to avoid an annoying delay if the user
|
||||
;; clicks the menu bar during the sit-for.
|
||||
(when (display-popup-menus-p)
|
||||
(precompute-menubar-bindings))
|
||||
(setq menubar-bindings-done t)
|
||||
|
||||
;; If there are no switches to process, we might as well
|
||||
;; run this hook now, and there may be some need to do it
|
||||
;; before doing any output.
|
||||
(when window-setup-hook
|
||||
(run-hooks 'window-setup-hook)
|
||||
;; Don't let the hook be run twice.
|
||||
(setq window-setup-hook nil))
|
||||
;; If *scratch* is selected and it is empty, insert an
|
||||
;; initial message saying not to create a file there.
|
||||
(when (and initial-scratch-message
|
||||
(string= (buffer-name) "*scratch*")
|
||||
(= 0 (buffer-size)))
|
||||
(insert initial-scratch-message)
|
||||
(set-buffer-modified-p nil))
|
||||
|
||||
;; Do this now to avoid an annoying delay if the user
|
||||
;; clicks the menu bar during the sit-for.
|
||||
(when (display-popup-menus-p)
|
||||
(precompute-menubar-bindings))
|
||||
(setq menubar-bindings-done t)
|
||||
|
||||
(when initial-scratch-message
|
||||
(insert initial-scratch-message))
|
||||
(set-buffer-modified-p nil)
|
||||
|
||||
;; If user typed input during all that work,
|
||||
;; abort the startup screen. Otherwise, display it now.
|
||||
;; If user typed input during all that work,
|
||||
;; abort the startup screen. Otherwise, display it now.
|
||||
(let ((buffer (current-buffer)))
|
||||
(when (not (input-pending-p))
|
||||
(if (and (display-graphic-p)
|
||||
(use-fancy-splash-screens-p))
|
||||
|
@ -1562,6 +1567,10 @@ where FACE is a valid face specification, as it can be used with
|
|||
(insert ", one component of a Linux-based GNU system."))
|
||||
(insert "\n")
|
||||
|
||||
(unless (equal (buffer-name buffer) "*scratch*")
|
||||
(insert (substitute-command-keys
|
||||
"\nType \\[recenter] to begin editing your file.\n")))
|
||||
|
||||
(if (display-mouse-p)
|
||||
;; The user can use the mouse to activate menus
|
||||
;; so give help in terms of menu items.
|
||||
|
|
Loading…
Add table
Reference in a new issue