1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-13 10:20:59 -07:00

(initialization): Change parent group from `internal'

to `environment'.
(initial-buffer-choice): New variable.
(command-line): Revert 2007-07-02 change that sets
buffer-offer-save in *scratch* and enables auto-save in it.
(fancy-splash-text): Add links to existing items.  Add new items
with links for useful tasks.  Move information about Control-g to
fancy-splash-head.  Move "Emacs Guided Tour" to the end.
(fancy-splash-keymap): New variable.
(fancy-splash-last-input-event): Remove variable.
(fancy-splash-insert): Add processing of `:link' element.
(fancy-splash-head): Replace "Type Control-l to begin editing"
with "Type `q' to exit".
(fancy-splash-screens-1): Let-bind inhibit-read-only to t.
(fancy-splash-default-action, fancy-splash-special-event-action):
Remove functions.
(fancy-splash-quit): New function.
(fancy-splash-screens): Rename input arg from `hide-on-input' to
`static' and reverse the condition of its usage.  Don't preserve
original values of `minor-mode-map-alist',
`emulation-mode-map-alists', `special-event-map'.
Rename startup-buffer from "*About GNU Emacs*" to " GNU Emacs".
Rename about-buffer from " GNU Emacs" to " About GNU Emacs".
Remove processing of special events.  Use local key map
`fancy-splash-keymap'.  Set buffer to read-only.
(normal-splash-screen): Rename input arg from `hide-on-input' to
`static' and reverse the condition of its usage.
Rename startup-buffer from "*About GNU Emacs*" to " GNU Emacs".
Rename about-buffer from " GNU Emacs" to " About GNU Emacs".
Add links to existing items.  Add new items with links for useful
tasks.  Use local key map `fancy-splash-keymap'.
(display-splash-screen): Rename input arg from `hide-on-input' to
`static'.
(about-emacs): Add alias to display-splash-screen.
(command-line-1): Use `initial-buffer-choice'.
This commit is contained in:
Juri Linkov 2007-08-15 23:24:17 +00:00
parent 67a537e688
commit 26cdce2387
2 changed files with 260 additions and 150 deletions

View file

@ -1,3 +1,41 @@
2007-08-15 Juri Linkov <juri@jurta.org>
* startup.el (initialization): Change parent group from `internal'
to `environment'.
(initial-buffer-choice): New variable.
(command-line): Revert 2007-07-02 change that sets
buffer-offer-save in *scratch* and enables auto-save in it.
(fancy-splash-text): Add links to existing items. Add new items
with links for useful tasks. Move information about Control-g to
fancy-splash-head. Move "Emacs Guided Tour" to the end.
(fancy-splash-keymap): New variable.
(fancy-splash-last-input-event): Remove variable.
(fancy-splash-insert): Add processing of `:link' element.
(fancy-splash-head): Replace "Type Control-l to begin editing"
with "Type `q' to exit".
(fancy-splash-screens-1): Let-bind inhibit-read-only to t.
(fancy-splash-default-action, fancy-splash-special-event-action):
Remove functions.
(fancy-splash-quit): New function.
(fancy-splash-screens): Rename input arg from `hide-on-input' to
`static' and reverse the condition of its usage. Don't preserve
original values of `minor-mode-map-alist',
`emulation-mode-map-alists', `special-event-map'.
Rename startup-buffer from "*About GNU Emacs*" to " GNU Emacs".
Rename about-buffer from " GNU Emacs" to " About GNU Emacs".
Remove processing of special events. Use local key map
`fancy-splash-keymap'. Set buffer to read-only.
(normal-splash-screen): Rename input arg from `hide-on-input' to
`static' and reverse the condition of its usage.
Rename startup-buffer from "*About GNU Emacs*" to " GNU Emacs".
Rename about-buffer from " GNU Emacs" to " About GNU Emacs".
Add links to existing items. Add new items with links for useful
tasks. Use local key map `fancy-splash-keymap'.
(display-splash-screen): Rename input arg from `hide-on-input' to
`static'.
(about-emacs): Add alias to display-splash-screen.
(command-line-1): Use `initial-buffer-choice'.
2007-08-15 Jay Belanger <jay.p.belanger@gmail.com>
* calc/calc-units.el (math-standard-units): Update values.

View file

@ -38,7 +38,20 @@
(defgroup initialization nil
"Emacs start-up procedure."
:group 'internal)
:group 'environment)
(defcustom initial-buffer-choice nil
"Buffer to show after starting Emacs.
If the value is nil and `inhibit-splash-screen' is nil, show the
startup screen. If the value is string, visit the specified file or
directory using `find-file'. If t, open the `*scratch*' buffer."
:type '(choice
(const :tag "Splash screen" nil)
(directory :tag "Directory" :value "~/")
(file :tag "File" :value "~/file.txt")
(const :tag "Lisp scratch buffer" t))
:version "23.1"
:group 'initialization)
(defcustom inhibit-splash-screen nil
"Non-nil inhibits the startup screen.
@ -1055,10 +1068,7 @@ or `CVS', and any subdirectory that contains a file named `.nosearch'."
(if (get-buffer "*scratch*")
(with-current-buffer "*scratch*"
(if (eq major-mode 'fundamental-mode)
(funcall initial-major-mode))
;; Don't lose text that users type in *scratch*.
(setq buffer-offer-save t)
(auto-save-mode 1)))
(funcall initial-major-mode))))
;; Load library for our terminal type.
;; User init file can set term-file-prefix to nil to prevent this.
@ -1131,6 +1141,8 @@ regardless of the value of this variable."
'((:face (variable-pitch :weight bold)
"Important Help menu items:\n"
:face variable-pitch
:link ("Emacs Tutorial" (lambda (button) (help-with-tutorial)))
"\t\tLearn how to use Emacs efficiently"
(lambda ()
(let* ((en "TUTORIAL")
(tut (or (get-language-info current-language-environment
@ -1144,37 +1156,31 @@ regardless of the value of this variable."
(buffer-substring (point-min) (1- (point))))))
;; If there is a specific tutorial for the current language
;; environment and it is not English, append its title.
(concat
"Emacs Tutorial\t\tLearn how to use Emacs efficiently"
(if (string= en tut)
""
(concat " (" title ")"))
"\n")))
:face variable-pitch "\
Emacs FAQ\t\tFrequently asked questions and answers
View Emacs Manual\t\tView the Emacs manual using Info
Absence of Warranty\tGNU Emacs comes with "
(if (string= en tut)
""
(concat " (" title ")"))))
"\n"
:face variable-pitch
:link ("Emacs FAQ" (lambda (button) (view-emacs-FAQ)))
"\t\tFrequently asked questions and answers\n"
:link ("View Emacs Manual" (lambda (button) (info-emacs-manual)))
"\t\tView the Emacs manual using Info\n"
:link ("Absence of Warranty" (lambda (button) (describe-no-warranty)))
"\tGNU Emacs comes with "
:face (variable-pitch :slant oblique)
"ABSOLUTELY NO WARRANTY\n"
:face variable-pitch
"\
Copying Conditions\t\tConditions for redistributing and changing Emacs
Getting New Versions\tHow to obtain the latest version of Emacs
More Manuals / Ordering Manuals Buying printed manuals from the FSF\n")
(:face variable-pitch
"\nTo quit a partially entered command, type "
:face default
"Control-g"
:face variable-pitch
".
Emacs Guided Tour\t\tSee http://www.gnu.org/software/emacs/tour/
"
:face (variable-pitch :weight bold)
:link ("Copying Conditions" (lambda (button) (describe-copying)))
"\t\tConditions for redistributing and changing Emacs\n"
:link ("Getting New Versions" (lambda (button) (describe-distribution)))
"\tHow to obtain the latest version of Emacs\n"
:link ("More Manuals / Ordering Manuals" (lambda (button) (view-order-manuals)))
" Buying printed manuals from the FSF\n")
(:face (variable-pitch :weight bold)
"Useful File menu items:\n"
:face variable-pitch
"Exit Emacs\t\t(Or type "
:link ("Exit Emacs" (lambda (button) (save-buffers-kill-emacs)))
"\t\t(Or type "
:face default
"Control-x"
:face variable-pitch
@ -1182,9 +1188,31 @@ Emacs Guided Tour\t\tSee http://www.gnu.org/software/emacs/tour/
:face default
"Control-c"
:face variable-pitch
")
Recover Crashed Session\tRecover files you were editing before a crash\n"
))
")\n"
:link ("Recover Crashed Session" (lambda (button) (recover-session)))
"\tRecover files you were editing before a crash\n\n"
:face (variable-pitch :weight bold)
"Useful tasks:\n"
:face variable-pitch
:link ("Visit New File"
(lambda (button) (call-interactively 'find-file)))
" Specify a new file's name, to edit the file\n"
:link ("Open Home Directory"
(lambda (button) (dired "~")))
" Open your home directory, to operate on its files\n"
:link ("Open *scratch* buffer"
(lambda (button) (switch-to-buffer (get-buffer-create "*scratch*"))))
" Open buffer for notes you don't want to save\n"
:link ("Customize Startup"
(lambda (button) (customize-group 'initialization)))
" Change initialization settings including this screen\n"
"\nEmacs Guided Tour\t\tSee "
:link ("http://www.gnu.org/software/emacs/tour/"
(lambda (button) (browse-url "http://www.gnu.org/software/emacs/tour/")))
))
"A list of texts to show in the middle part of splash screens.
Each element in the list should be a list of strings or pairs
`:face FACE', like `fancy-splash-insert' accepts them.")
@ -1216,13 +1244,22 @@ Values less than twice `fancy-splash-delay' are ignored."
(file :tag "File")))
(defvar fancy-splash-keymap
(let ((map (make-sparse-keymap)))
(suppress-keymap map)
(set-keymap-parent map button-buffer-map)
(define-key map " " 'fancy-splash-quit)
(define-key map "q" 'fancy-splash-quit)
map)
"Keymap for splash screen buffer.")
;; These are temporary storage areas for the splash screen display.
(defvar fancy-current-text nil)
(defvar fancy-splash-help-echo nil)
(defvar fancy-splash-stop-time nil)
(defvar fancy-splash-outer-buffer nil)
(defvar fancy-splash-last-input-event nil)
(defun fancy-splash-insert (&rest args)
"Insert text into the current buffer, with faces.
@ -1232,14 +1269,21 @@ where FACE is a valid face specification, as it can be used with
`put-text-property'."
(let ((current-face nil))
(while args
(if (eq (car args) :face)
(setq args (cdr args) current-face (car args))
(insert (propertize (let ((it (car args)))
(if (functionp it)
(funcall it)
it))
'face current-face
'help-echo fancy-splash-help-echo)))
(cond ((eq (car args) :face)
(setq args (cdr args) current-face (car args)))
((eq (car args) :link)
(setq args (cdr args))
(let ((spec (car args)))
(insert-button (car spec)
'face (list 'link current-face)
'action (cadr spec)
'follow-link t)))
(t (insert (propertize (let ((it (car args)))
(if (functionp it)
(funcall it)
it))
'face current-face
'help-echo fancy-splash-help-echo))))
(setq args (cdr args)))))
@ -1279,7 +1323,7 @@ where FACE is a valid face specification, as it can be used with
(throw 'exit nil)))
(define-key map [down-mouse-2] 'ignore)
(define-key map [up-mouse-2] 'ignore)
(insert-image img (propertize "xxx" 'help-echo help-echo
(insert-image img (propertize "[image]" 'help-echo help-echo
'keymap map)))
(insert "\n"))))
(fancy-splash-insert
@ -1291,19 +1335,22 @@ where FACE is a valid face specification, as it can be used with
(fancy-splash-insert
:face 'variable-pitch
"You can do basic editing with the menu bar and scroll bar \
using the mouse.\n\n")
using the mouse.\n"
:face 'variable-pitch
"To quit a partially entered command, type "
:face 'default
"Control-g"
:face 'variable-pitch
"."
"\n\n")
(when fancy-splash-outer-buffer
(fancy-splash-insert
:face 'variable-pitch
"Type "
:face 'default
"Control-l"
"`q'"
:face 'variable-pitch
" to begin editing"
(if (equal (buffer-name fancy-splash-outer-buffer)
"*scratch*")
".\n"
" your file.\n"))))
" to exit from this screen.\n")))
(defun fancy-splash-tail ()
"Insert the tail part of the splash screen into the current buffer."
@ -1343,7 +1390,8 @@ using the mouse.\n\n")
(throw 'stop-splashing nil))
(unless fancy-current-text
(setq fancy-current-text fancy-splash-text))
(let ((text (car fancy-current-text)))
(let ((text (car fancy-current-text))
(inhibit-read-only t))
(set-buffer buffer)
(erase-buffer)
(if pure-space-overflow
@ -1360,73 +1408,30 @@ Warning Warning!!! Pure space overflow !!!Warning Warning
(force-mode-line-update)
(setq fancy-current-text (cdr fancy-current-text))))
(defun fancy-splash-default-action ()
"Stop displaying the splash screen buffer.
This is an internal function used to turn off the splash screen after
the user caused an input event by hitting a key or clicking with the
mouse."
(defun fancy-splash-quit ()
"Stop displaying the splash screen buffer."
(interactive)
(if (and (memq 'down (event-modifiers last-command-event))
(eq (posn-window (event-start last-command-event))
(selected-window)))
;; This is a mouse-down event in the spash screen window.
;; Ignore it and consume the corresponding mouse-up event.
(read-event)
(push last-command-event unread-command-events))
(throw 'exit nil))
(if fancy-splash-outer-buffer
(throw 'exit nil)
(kill-buffer (current-buffer))))
(defun fancy-splash-special-event-action ()
"Save the last event and stop displaying the splash screen buffer.
This is an internal function used to turn off the splash screen after
the user caused an input event that is bound in `special-event-map'"
(interactive)
(setq fancy-splash-last-input-event last-input-event)
(throw 'exit nil))
(defun fancy-splash-screens (&optional hide-on-input)
(defun fancy-splash-screens (&optional static)
"Display fancy splash screens when Emacs starts."
(if hide-on-input
(if (not static)
(let ((old-hourglass display-hourglass)
(fancy-splash-outer-buffer (current-buffer))
splash-buffer
(old-minor-mode-map-alist minor-mode-map-alist)
(old-emulation-mode-map-alists emulation-mode-map-alists)
(old-special-event-map special-event-map)
(frame (fancy-splash-frame))
timer)
(save-selected-window
(select-frame frame)
(switch-to-buffer " GNU Emacs")
(switch-to-buffer " About GNU Emacs")
(make-local-variable 'cursor-type)
(setq splash-buffer (current-buffer))
(catch 'stop-splashing
(unwind-protect
(let ((map (make-sparse-keymap))
(cursor-type nil))
(use-local-map map)
(define-key map [switch-frame] 'ignore)
(define-key map [t] 'fancy-splash-default-action)
(define-key map [mouse-movement] 'ignore)
(define-key map [mode-line t] 'ignore)
;; Temporarily bind special events to
;; fancy-splash-special-event-action so as to stop
;; displaying splash screens with such events.
;; Otherwise, drag-n-drop into splash screens may
;; leave us in recursive editing with invisible
;; cursors for a while.
(setq special-event-map (make-sparse-keymap))
(map-keymap
(lambda (key def)
(define-key special-event-map (vector key)
(if (eq def 'ignore)
'ignore
'fancy-splash-special-event-action)))
old-special-event-map)
(let ((cursor-type nil))
(setq display-hourglass nil
minor-mode-map-alist nil
emulation-mode-map-alists nil
buffer-undo-list t
mode-line-format (propertize "---- %b %-"
'face 'mode-line-buffer-id)
@ -1435,25 +1440,18 @@ the user caused an input event that is bound in `special-event-map'"
timer (run-with-timer 0 fancy-splash-delay
#'fancy-splash-screens-1
splash-buffer))
(use-local-map fancy-splash-keymap)
(message "%s" (startup-echo-area-message))
(setq buffer-read-only t)
(recursive-edit))
(cancel-timer timer)
(setq display-hourglass old-hourglass
minor-mode-map-alist old-minor-mode-map-alist
emulation-mode-map-alists old-emulation-mode-map-alists
special-event-map old-special-event-map)
(kill-buffer splash-buffer)
(when fancy-splash-last-input-event
(setq last-input-event fancy-splash-last-input-event
fancy-splash-last-input-event nil)
(command-execute (lookup-key special-event-map
(vector last-input-event))
nil (vector last-input-event) t))))))
;; If hide-on-input is nil, don't hide the buffer on input.
(setq display-hourglass old-hourglass)
(kill-buffer splash-buffer)))))
;; If static is non-nil, don't show fancy splash screen.
(if (or (window-minibuffer-p)
(window-dedicated-p (selected-window)))
(pop-to-buffer (current-buffer))
(switch-to-buffer "*About GNU Emacs*"))
(switch-to-buffer " GNU Emacs"))
(setq buffer-read-only nil)
(erase-buffer)
(if pure-space-overflow
@ -1469,6 +1467,7 @@ Warning Warning!!! Pure space overflow !!!Warning Warning
(delete-region (point) (point-max))
(insert "\n")
(fancy-splash-tail)
(use-local-map fancy-splash-keymap)
(set-buffer-modified-p nil)
(setq buffer-read-only t)
(if (and view-read-only (not view-mode))
@ -1507,15 +1506,15 @@ we put it on this frame."
(> frame-height (+ image-height 19)))))))
(defun normal-splash-screen (&optional hide-on-input)
(defun normal-splash-screen (&optional static)
"Display splash screen when Emacs starts."
(let ((prev-buffer (current-buffer)))
(unwind-protect
(with-current-buffer (get-buffer-create "GNU Emacs")
(with-current-buffer (get-buffer-create " About GNU Emacs")
(setq buffer-read-only nil)
(erase-buffer)
(set (make-local-variable 'tab-width) 8)
(if hide-on-input
(if (not static)
(set (make-local-variable 'mode-line-format)
(propertize "---- %b %-" 'face 'mode-line-buffer-id)))
@ -1533,13 +1532,10 @@ Warning Warning!!! Pure space overflow !!!Warning Warning
", one component of the GNU/Linux operating system.\n"
", a part of the GNU operating system.\n"))
(if hide-on-input
(if (not static)
(insert (substitute-command-keys
(concat
"\nType \\[recenter] to begin editing"
(if (equal (buffer-name prev-buffer) "*scratch*")
".\n"
" your file.\n")))))
"\nType \\[recenter] to quit from this screen.\n"))))
(if (display-mouse-p)
;; The user can use the mouse to activate menus
@ -1547,22 +1543,68 @@ Warning Warning!!! Pure space overflow !!!Warning Warning
(progn
(insert "\
You can do basic editing with the menu bar and scroll bar using the mouse.
To quit a partially entered command, type Control-g.
To quit a partially entered command, type Control-g.\n")
Useful File menu items:
Exit Emacs (or type Control-x followed by Control-c)
Recover Crashed Session Recover files you were editing before a crash
(insert "\nImportant Help menu items:\n")
(insert-button "Emacs Tutorial"
'action (lambda (button) (help-with-tutorial))
'follow-link t)
(insert " Learn how to use Emacs efficiently\n")
(insert-button "Emacs FAQ"
'action (lambda (button) (view-emacs-FAQ))
'follow-link t)
(insert " Frequently asked questions and answers\n")
(insert-button "Read the Emacs Manual"
'action (lambda (button) (info-emacs-manual))
'follow-link t)
(insert " View the Emacs manual using Info\n")
(insert-button "\(Non)Warranty"
'action (lambda (button) (describe-no-warranty))
'follow-link t)
(insert " GNU Emacs comes with ABSOLUTELY NO WARRANTY\n")
(insert-button "Copying Conditions"
'action (lambda (button) (describe-copying))
'follow-link t)
(insert " Conditions for redistributing and changing Emacs\n")
(insert-button "Getting New Versions"
'action (lambda (button) (describe-distribution))
'follow-link t)
(insert " How to obtain the latest version of Emacs\n")
(insert-button "More Manuals / Ordering Manuals"
'action (lambda (button) (view-order-manuals))
'follow-link t)
(insert " How to order printed manuals from the FSF\n")
Important Help menu items:
Emacs Tutorial Learn how to use Emacs efficiently
Emacs FAQ Frequently asked questions and answers
Read the Emacs Manual View the Emacs manual using Info
\(Non)Warranty GNU Emacs comes with ABSOLUTELY NO WARRANTY
Copying Conditions Conditions for redistributing and changing Emacs
Getting New Versions How to obtain the latest version of Emacs
More Manuals / Ordering Manuals How to order printed manuals from the FSF
")
(insert "\n\n" (emacs-version)
(insert "\nUseful File menu items:\n")
(insert-button "Exit Emacs"
'action (lambda (button) (save-buffers-kill-emacs))
'follow-link t)
(insert " (or type Control-x followed by Control-c)\n")
(insert-button "Recover Crashed Session"
'action (lambda (button) (recover-session))
'follow-link t)
(insert " Recover files you were editing before a crash\n")
(insert "\nUseful tasks:\n")
(insert-button "Visit New File"
'action (lambda (button) (call-interactively 'find-file))
'follow-link t)
(insert " Specify a new file's name, to edit the file\n")
(insert-button "Open Home Directory"
'action (lambda (button) (dired "~"))
'follow-link t)
(insert " Open your home directory, to operate on its files\n")
(insert-button "Open *scratch* buffer"
'action (lambda (button) (switch-to-buffer
(get-buffer-create "*scratch*")))
'follow-link t)
(insert " Open buffer for notes you don't want to save\n")
(insert-button "Customize Startup"
'action (lambda (button) (customize-group 'initialization))
'follow-link t)
(insert " Change initialization settings including this screen\n")
(insert "\n" (emacs-version)
"\n" emacs-copyright))
;; No mouse menus, so give help using kbd commands.
@ -1609,7 +1651,27 @@ Activate menubar \\[tmm-menubar]")))
\(`C-' means use the CTRL key. `M-' means use the Meta (or Alt) key.
If you have no Meta key, you may instead type ESC followed by the character.)")
(insert "\n\n" (emacs-version)
;; Insert links to useful tasks
(insert "\n\nUseful tasks (move point to the link and press RET):\n")
(insert-button "Visit New File"
'action (lambda (button) (call-interactively 'find-file))
'follow-link t)
(insert " Specify a new file's name, to edit the file\n")
(insert-button "Open Home Directory"
'action (lambda (button) (dired "~"))
'follow-link t)
(insert " Open your home directory, to operate on its files\n")
(insert-button "Open *scratch* buffer"
'action (lambda (button) (switch-to-buffer
(get-buffer-create "*scratch*")))
'follow-link t)
(insert " Open buffer for notes you don't want to save\n")
(insert-button "Customize Startup"
'action (lambda (button) (customize-group 'initialization))
'follow-link t)
(insert " Change initialization settings including this screen\n")
(insert "\n" (emacs-version)
"\n" emacs-copyright)
(if (and (eq (key-binding "\C-h\C-c") 'describe-copying)
@ -1647,7 +1709,9 @@ Type \\[describe-distribution] for information on getting the latest version."))
t)
(insert "\n\nIf an Emacs session crashed recently, "
"type Meta-x recover-session RET\nto recover"
" the files you were editing."))
" the files you were editing.\n"))
(use-local-map button-buffer-map)
;; Display the input that we set up in the buffer.
(set-buffer-modified-p nil)
@ -1655,10 +1719,10 @@ Type \\[describe-distribution] for information on getting the latest version."))
(if (and view-read-only (not view-mode))
(view-mode-enter nil 'kill-buffer))
(goto-char (point-min))
(if hide-on-input
(if (not static)
(if (or (window-minibuffer-p)
(window-dedicated-p (selected-window)))
;; If hide-on-input is nil, creating a new frame will
;; If static is nil, creating a new frame will
;; generate enough events that the subsequent `sit-for'
;; will immediately return anyway.
nil ;; (pop-to-buffer (current-buffer))
@ -1670,10 +1734,10 @@ Type \\[describe-distribution] for information on getting the latest version."))
;; In case the window is dedicated or something.
(error (pop-to-buffer (current-buffer))))))
;; Unwind ... ensure splash buffer is killed
(if hide-on-input
(kill-buffer "GNU Emacs")
(switch-to-buffer "GNU Emacs")
(rename-buffer "*About GNU Emacs*" t)))))
(if (not static)
(kill-buffer " About GNU Emacs")
(switch-to-buffer " About GNU Emacs")
(rename-buffer " GNU Emacs" t)))))
(defun startup-echo-area-message ()
@ -1689,16 +1753,17 @@ Type \\[describe-distribution] for information on getting the latest version."))
(message "%s" (startup-echo-area-message))))
(defun display-splash-screen (&optional hide-on-input)
(defun display-splash-screen (&optional static)
"Display splash screen according to display.
Fancy splash screens are used on graphic displays,
normal otherwise.
With a prefix argument, any user input hides the splash screen."
(interactive "P")
(if (use-fancy-splash-screens-p)
(fancy-splash-screens hide-on-input)
(normal-splash-screen hide-on-input)))
(fancy-splash-screens static)
(normal-splash-screen static)))
(defalias 'about-emacs 'display-splash-screen)
(defun command-line-1 (command-line-args-left)
(or noninteractive (input-pending-p) init-file-had-error
@ -1958,8 +2023,15 @@ With a prefix argument, any user input hides the splash screen."
(or (get-buffer-window first-file-buffer)
(list-buffers)))))
(when initial-buffer-choice
(cond ((eq initial-buffer-choice t)
(switch-to-buffer (get-buffer-create "*scratch*")))
((stringp initial-buffer-choice)
(find-file initial-buffer-choice))))
;; Maybe display a startup screen.
(unless (or inhibit-startup-message
initial-buffer-choice
noninteractive
emacs-quick-startup)
;; Display a startup screen, after some preparations.