Now on revision 107625. ------------------------------------------------------------ revno: 107625 committer: Leo Liu branch nick: trunk timestamp: Sun 2012-03-18 11:27:28 +0800 message: * lisp/net/rcirc.el (rcirc-cmd-quit): Allow quiting all servers with prefix. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-03-17 19:46:52 +0000 +++ lisp/ChangeLog 2012-03-18 03:27:28 +0000 @@ -1,3 +1,8 @@ +2012-03-18 Leo Liu + + * net/rcirc.el (rcirc-cmd-quit): Allow quiting all servers with + prefix. + 2012-03-17 Eli Zaretskii * textmodes/ispell.el (ispell-skip-tib, ispell-keep-choices-win) === modified file 'lisp/net/rcirc.el' --- lisp/net/rcirc.el 2012-02-13 07:54:47 +0000 +++ lisp/net/rcirc.el 2012-03-18 03:27:28 +0000 @@ -2165,13 +2165,17 @@ (let ((channel (if (> (length channel) 0) channel target))) (rcirc-send-string process (concat "PART " channel " :" rcirc-id-string)))) -(defun-rcirc-command quit (reason) - "Send a quit message to server with REASON." - (interactive "sQuit reason: ") - (rcirc-send-string process (concat "QUIT :" - (if (not (zerop (length reason))) - reason - rcirc-id-string)))) +(defun-rcirc-command quit (reason all) + "Send a quit message to server with REASON. +When called with prefix, quit all servers." + (interactive "sQuit reason: \nP") + (dolist (p (if all + (rcirc-process-list) + (list process))) + (rcirc-send-string p (concat "QUIT :" + (if (not (zerop (length reason))) + reason + rcirc-id-string))))) (defun-rcirc-command nick (nick) "Change nick to NICK." ------------------------------------------------------------ revno: 107624 committer: Glenn Morris branch nick: trunk timestamp: Sat 2012-03-17 17:23:20 -0700 message: lispref/os.texi edits * doc/lispref/os.texi (System Interface): Flow control was removed. (Startup Summary): General update. (Init File): Don't mention compiling it. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-03-17 11:11:08 +0000 +++ doc/lispref/ChangeLog 2012-03-18 00:23:20 +0000 @@ -1,3 +1,9 @@ +2012-03-18 Glenn Morris + + * os.texi (System Interface): Flow control was removed. + (Startup Summary): General update. + (Init File): Don't mention compiling it. + 2012-03-17 Chong Yidong * os.texi (Startup Summary): Mention package loading. === modified file 'doc/lispref/os.texi' --- doc/lispref/os.texi 2012-03-17 11:11:08 +0000 +++ doc/lispref/os.texi 2012-03-18 00:23:20 +0000 @@ -8,8 +8,7 @@ @chapter Operating System Interface This chapter is about starting and getting out of Emacs, access to -values in the operating system environment, and terminal input, output, -and flow control. +values in the operating system environment, and terminal input, output. @xref{Building Emacs}, for related information. @xref{Display}, for additional operating system status information pertaining to the @@ -60,7 +59,7 @@ @cindex @file{startup.el} When Emacs is started up, it performs the following operations -(which are defined in @file{startup.el}): +(see @code{normal-top-level} in @file{startup.el}): @enumerate @item @@ -70,6 +69,15 @@ in their turn. The files @file{subdirs.el} are normally generated automatically when Emacs is installed. +@item +It registers input methods by loading any @file{leim-list.el} file +found in the @code{load-path}. + +@c It removes PWD from the environment if it is not accurate. +@c It abbreviates default-directory. + +@c Now normal-top-level calls command-line. + @vindex before-init-time @item It sets the variable @code{before-init-time} to the value of @@ -77,32 +85,49 @@ @code{after-init-time} to @code{nil}, which signals to Lisp programs that Emacs is being initialized. +@c set-locale-environment +@item +It sets the language environment and the terminal coding system, +if requested by environment variables such as @code{LANG}. + +@item +It does some basic parsing of the command-line arguments. + @vindex initial-window-system@r{, and startup} @vindex window-system-initialization-alist @item -It loads the initialization library for the window system specified by -the variable @code{initial-window-system} (@pxref{Window Systems, -initial-window-system}). This library's name is -@file{term/@var{windowsystem}-win.el}, where @var{windowsystem} is the -value of @code{initial-window-system}. From that library, it calls -the appropriate initialization function. The initialization function -for each supported window system is specified by -@code{window-system-initialization-alist}. - -@item -It sets the language environment and the terminal coding system, -if requested by environment variables such as @code{LANG}. - -@item -It processes the initial options. (Some of them are handled -even earlier than this.) +If not running in batch mode, it initializes the window system that +the variable @code{initial-window-system} specifies (@pxref{Window +Systems, initial-window-system}). The initialization function for +each supported window system is specified by +@code{window-system-initialization-alist}. If the value +of @code{initial-window-system} is @var{windowsystem}, then the +appropriate initialization function is defined in the file +@file{term/@var{windowsystem}-win.el}. This file should have been +compiled into the Emacs executable when it was built. @item It runs the normal hook @code{before-init-hook}. @item -It initializes the initial frame's faces, and turns on the menu bar -and tool bar if needed. +If appropriate (e.g., not in batch mode or started as a daemon), it +creates a graphical frame. + +@item +It initializes the initial frame's faces, and sets up the menu bar +and tool bar if needed. If graphical frames are supported, it sets up +the tool bar even if the current frame is not a graphical one, since a +graphical frame may be created later on. + +@item +It use @code{custom-reevaluate-setting} to re-initialize the members +of the list @code{custom-delayed-init-variables}. These are any +pre-loaded user options whose default value depends on the run-time, +rather than build-time, context. +@xref{Building Emacs, custom-initialize-delay}. + +@c @item +@c It registers the colors available for tty frames. @item It loads the library @file{site-start}, if it exists. This is not @@ -154,13 +179,17 @@ @code{term-file-prefix} (@pxref{Terminal-Specific}). This is not done in @code{--batch} mode, nor if @code{term-file-prefix} is @code{nil}. +@c Now command-line calls command-line-1. + @item It displays the initial echo area message, unless you have suppressed that with @code{inhibit-startup-echo-area-message}. @item -It processes the action arguments from the command line. +It processes any command-line options that were not handled earlier. +@c This next one is back in command-line, but the remaining bits of +@c command-line-1 are not done if noninteractive. @item It now exits if the option @code{--batch} was specified. @@ -169,6 +198,15 @@ that name. Furthermore, if the @samp{*scratch*} buffer exists and is empty, it inserts @code{initial-scratch-message} into that buffer. +@c To make things nice and confusing, the next three items can be +@c called from two places. If displaying a startup screen, they are +@c called in command-line-1 before the startup screen is shown. +@c inhibit-startup-hooks is then set and window-setup-hook set to nil. +@c If not displaying a startup screen, they are are called in +@c normal-top-level. +@c FIXME? So it seems they can be called before or after the +@c daemon/session restore step? + @item It runs @code{emacs-startup-hook} and then @code{term-setup-hook}. @@ -181,21 +219,33 @@ It runs @code{window-setup-hook}. @xref{Window Systems}. @item -If the option @code{--daemon} was specified, it calls -@code{server-start} and detaches from the controlling terminal. -@xref{Emacs Server,,, emacs, The GNU Emacs Manual}. - -@item It displays the @dfn{startup screen}, which is a special buffer that contains information about copyleft and basic Emacs usage. This is not done if @code{initial-buffer-choice} or @code{inhibit-startup-screen} are @code{nil}, nor if the @samp{--no-splash} or @samp{-Q} command-line options were specified. +@c End of command-line-1. + +@c Back to command-line from command-line-1. + +@c This is the point at which we actually exit in batch mode, but the +@c last few bits of command-line-1 are not done in batch mode. + +@item +If the option @code{--daemon} was specified, it calls +@code{server-start} and detaches from the controlling terminal. +@xref{Emacs Server,,, emacs, The GNU Emacs Manual}. + @item If started by the X session manager, it calls @code{emacs-session-restore} passing it as argument the ID of the previous session. @xref{Session Management}. + +@c End of command-line. + +@c Back to normal-top-level from command-line. + @end enumerate @defopt inhibit-startup-screen @@ -255,10 +305,12 @@ When you start Emacs, it normally attempts to load your @dfn{init file}. This is either a file named @file{.emacs} or @file{.emacs.el} in your home directory, or a file named @file{init.el} in a -subdirectory named @file{.emacs.d} in your home directory. Whichever -place you use, you can also compile the file (@pxref{Byte +subdirectory named @file{.emacs.d} in your home directory. +@ignore +Whichever place you use, you can also compile the file (@pxref{Byte Compilation}); then the actual file loaded will be @file{.emacs.elc} or @file{init.elc}. +@end ignore The command-line switches @samp{-q}, @samp{-Q}, and @samp{-u} control whether and where to find the init file; @samp{-q} (and the ------------------------------------------------------------ revno: 107623 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2012-03-17 21:46:52 +0200 message: Fix doc strings in ispell.el/. lisp/textmodes/ispell.el (ispell-skip-tib, ispell-keep-choices-win) (ispell-choices-win-default-height, ispell-silently-savep) (ispell-dictionary-alist, ispell-encoding8-command) (ispell-check-version, ispell-aspell-find-dictionary) (ispell-valid-dictionary-list, ispell-words-keyword) (ispell-get-word, ispell-internal-change-dictionary) (ispell-region, ispell-skip-region-list) (ispell-begin-skip-region-regexp, ispell-ignore-fcc) (ispell-process-line, ispell-minor-mode, ispell-minor-check) (ispell-message-text-end, ispell-message) (ispell-buffer-local-parsing): Doc fix. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-03-17 14:03:54 +0000 +++ lisp/ChangeLog 2012-03-17 19:46:52 +0000 @@ -1,3 +1,17 @@ +2012-03-17 Eli Zaretskii + + * textmodes/ispell.el (ispell-skip-tib, ispell-keep-choices-win) + (ispell-choices-win-default-height, ispell-silently-savep) + (ispell-dictionary-alist, ispell-encoding8-command) + (ispell-check-version, ispell-aspell-find-dictionary) + (ispell-valid-dictionary-list, ispell-words-keyword) + (ispell-get-word, ispell-internal-change-dictionary) + (ispell-region, ispell-skip-region-list) + (ispell-begin-skip-region-regexp, ispell-ignore-fcc) + (ispell-process-line, ispell-minor-mode, ispell-minor-check) + (ispell-message-text-end, ispell-message) + (ispell-buffer-local-parsing): Doc fix. + 2012-03-13 Jambunathan K * htmlfontify.el: Add support for code block fontification for ODT === modified file 'lisp/textmodes/ispell.el' --- lisp/textmodes/ispell.el 2012-03-17 09:13:19 +0000 +++ lisp/textmodes/ispell.el 2012-03-17 19:46:52 +0000 @@ -324,9 +324,9 @@ Skips any text between strings matching regular expressions `ispell-tib-ref-beginning' and `ispell-tib-ref-end'. -TeX users beware: Any field starting with [. will skip until a .] -- even -your whole buffer -- unless you set `ispell-skip-tib' to nil. That includes -a [.5mm] type of number...." +TeX users beware: Any text between [. and .] will be skipped -- even if +that's your whole buffer -- unless you set `ispell-skip-tib' to nil. +That includes the [.5mm] type of number..." :type 'boolean :group 'ispell) @@ -337,13 +337,13 @@ "Regexp matching the end of a Tib reference.") (defcustom ispell-keep-choices-win t - "*When non-nil, the `*Choices*' window remains for spelling session. + "*If non-nil, keep the `*Choices*' window for the entire spelling session. This minimizes redisplay thrashing." :type 'boolean :group 'ispell) (defcustom ispell-choices-win-default-height 2 - "*The default size of the `*Choices*' window, including mode line. + "*The default size of the `*Choices*' window, including the mode line. Must be greater than 1." :type 'integer :group 'ispell) @@ -493,7 +493,7 @@ :group 'ispell) (defcustom ispell-silently-savep nil - "*When non-nil, save the personal dictionary without confirmation." + "*When non-nil, save personal dictionary without asking for confirmation." :type 'boolean :group 'ispell) @@ -714,7 +714,7 @@ CASECHARS, NOT-CASECHARS, and OTHERCHARS must be unibyte strings containing bytes of CHARACTER-SET. In addition, if they contain -a non-ASCII byte, the regular expression must be a single +non-ASCII bytes, the regular expression must be a single `character set' construct that doesn't specify a character range for non-ASCII bytes. @@ -734,27 +734,31 @@ Both defaults can be overruled in a buffer-local fashion. See `ispell-parsing-keyword' for details on this. -CHARACTER-SET used for languages with multibyte characters. +CHARACTER-SET used to encode text sent to the ispell subprocess +when the language uses non-ASCII characters. -Note that the CASECHARS and OTHERCHARS slots of the alist should -contain the same character set as casechars and otherchars in the -LANGUAGE.aff file \(e.g., english.aff\).") +Note that with \"ispell\" as the speller, the CASECHARS and +OTHERCHARS slots of the alist should contain the same character +set as casechars and otherchars in the LANGUAGE.aff file \(e.g., +english.aff\). apsell and hunspell don't have this limitation.") (defvar ispell-really-aspell nil) ; Non-nil if we can use aspell extensions. (defvar ispell-really-hunspell nil) ; Non-nil if we can use hunspell extensions. (defvar ispell-encoding8-command nil - "Command line option prefix to select UTF-8 if supported, nil otherwise. -If UTF-8 if supported by spellchecker and is selectable from the command line -this variable will contain \"--encoding=\" for aspell and \"-i \" for hunspell, -so UTF-8 or other mime charsets can be selected. That will be set for hunspell ->=1.1.6 or aspell >= 0.60 in `ispell-check-version'. - -For aspell non-nil means to try to automatically find aspell dictionaries. -Earlier aspell versions do not consistently support UTF-8. Handling + "Command line option prefix to select encoding if supported, nil otherwise. +If setting the encoding is supported by spellchecker and is selectable from +the command line, this variable will contain \"--encoding=\" for aspell +and \"-i \" for hunspell, so the appropriate mime charset can be selected. +That will be set in `ispell-check-version' for hunspell >= 1.1.6 and +aspell >= 0.60. + +For aspell, non-nil also means to try to automatically find its dictionaries. + +Earlier aspell versions do not consistently support charset encoding. Handling this would require some extra guessing in `ispell-aspell-find-dictionary'.") (defvar ispell-aspell-supports-utf8 nil - "Non nil if aspell has consistent command line UTF-8 support. Obsolete. + "Non-nil if aspell has consistent command line UTF-8 support. Obsolete. ispell.el and flyspell.el will use for this purpose the more generic variable `ispell-encoding8-command' for both aspell and hunspell. Is left here just for backwards compatibility.") @@ -780,7 +784,7 @@ (defun ispell-check-version (&optional interactivep) - "Ensure that `ispell-program-name' is valid and the correct version. + "Ensure that `ispell-program-name' is valid and has the correct version. Returns version number if called interactively. Otherwise returns the library directory name, if that is defined." ;; This is a little wasteful as we actually launch ispell twice: once @@ -983,8 +987,8 @@ (defun ispell-aspell-find-dictionary (dict-name) "For aspell dictionary DICT-NAME, return a list of parameters if an - associated data file is found or nil otherwise. List format is - that of `ispell-dictionary-base-alist' elements." +associated data file is found or nil otherwise. List format is that +of `ispell-dictionary-base-alist' elements." ;; Make sure `ispell-aspell-data-dir' is defined (or ispell-aspell-data-dir (setq ispell-aspell-data-dir @@ -1117,7 +1121,7 @@ (defun ispell-valid-dictionary-list () "Return a list of valid dictionaries. -The variable `ispell-library-directory' defines the library location." +The variable `ispell-library-directory' defines their location." ;; Initialize variables and dictionaries alists for desired spellchecker. ;; Make sure ispell.el is loaded to avoid some autoload loops in XEmacs ;; (and may be others) @@ -1382,7 +1386,7 @@ (defconst ispell-words-keyword "LocalWords: " "The keyword for local oddly-spelled words to accept. The keyword will be followed by any number of local word spellings. -There can be multiple of these keywords in the file.") +There can be multiple instances of this keyword in the file.") (defconst ispell-dictionary-keyword "Local IspellDict: " "The keyword for a local dictionary to use. @@ -1787,7 +1791,8 @@ is non-nil when called interactively, then the following word \(rather than preceding\) is checked when the cursor is not over a word. Optional second argument contains otherchars that can be included in word -many times. +many times (see the doc string of `ispell-dictionary-alist' for details +about otherchars). Word syntax is controlled by the definition of the chosen dictionary, which is in `ispell-local-dictionary-alist' or `ispell-dictionary-alist'." @@ -2818,8 +2823,8 @@ (defun ispell-internal-change-dictionary () "Update the dictionary and the personal dictionary used by Ispell. -This may kill the Ispell process; if so, -a new one will be started when needed." +This may kill the Ispell process; if so, a new one will be started +when needed." (let ((dict (or ispell-local-dictionary ispell-dictionary)) (pdict (or ispell-local-pdict ispell-personal-dictionary))) (unless (and (equal ispell-current-dictionary dict) @@ -2837,8 +2842,8 @@ ;;;###autoload (defun ispell-region (reg-start reg-end &optional recheckp shift) "Interactively check a region for spelling errors. -Return nil if spell session is quit, - otherwise returns shift offset amount for last line processed." +Return nil if spell session was terminated, otherwise returns shift offset +amount for last line processed." (interactive "r") ; Don't flag errors on read-only bufs. (ispell-set-spellchecker-params) ; Initialize variables and dicts alists (if (not recheckp) @@ -2957,7 +2962,7 @@ (defun ispell-begin-skip-region-regexp () "Return a regexp of the search keys for region skipping. Includes `ispell-skip-region-alist' plus tex, tib, html, and comment keys. -Must call after `ispell-buffer-local-parsing' due to dependence on mode." +Must be called after `ispell-buffer-local-parsing' due to dependence on mode." (mapconcat 'identity (delq nil @@ -3017,7 +3022,7 @@ `ispell-html-skip-alists', and `ispell-checking-message'. Manual checking must include comments and tib references. The list is of the form described by variable `ispell-skip-region-alist'. -Must call after `ispell-buffer-local-parsing' due to dependence on mode." +Must be called after `ispell-buffer-local-parsing' due to dependence on mode." (let ((skip-alist ispell-skip-region-alist)) ;; only additional explicit region definition is tex. (if (eq ispell-parser 'tex) @@ -3047,7 +3052,7 @@ (defun ispell-ignore-fcc (start end) "Delete the Fcc: message header when large attachments are included. -Return value `nil' if file with large attachments are saved. +Return value `nil' if file with large attachments is saved. This can be used to avoid multiple questions for multiple large attachments. Returns point to starting location afterwards." (let ((result t)) @@ -3154,7 +3159,7 @@ coding))))) (defun ispell-process-line (string shift) - "Send STRING, a line of text, to ispell and processes the result. + "Send STRING, a line of text, to ispell and process the result. This will modify the buffer for spelling errors. Requires variables ISPELL-START and ISPELL-END to be defined in its dynamic scope. @@ -3469,7 +3474,7 @@ positive, and disable it otherwise. If called from Lisp, enable the mode if ARG is omitted or nil. -Ispell minor mode is a buffer-local mior mode. When enabled, +Ispell minor mode is a buffer-local minor mode. When enabled, typing SPC or RET warns you if the previous word is incorrectly spelled. @@ -3482,7 +3487,7 @@ nil " Spell" ispell-minor-keymap) (defun ispell-minor-check () - "Check previous word then continue with the normal binding of this key. + "Check previous word, then continue with the normal binding of this key. Don't check previous word when character before point is a space or newline. Don't read buffer-local settings or word lists." (interactive "*") @@ -3520,8 +3525,8 @@ ;; Matches commonly used "cut" boundaries "^\\(- \\)?[-=_]+\\s ?\\(cut here\\|Environment Follows\\)") "\\|") - "*End of text which will be checked in `ispell-message'. -If it is a string, limit at first occurrence of that regular expression. + "*Text beyond which `ispell-message' will not spell-check. +If it is a string, limit is the first occurrence of that regular expression. Otherwise, it must be a function which is called to get the limit.") (put 'ispell-message-text-end 'risky-local-variable t) @@ -3626,7 +3631,7 @@ To abort spell checking of a message region and send the message anyway, use the `x' command. (Any subsequent regions will be checked.) -The `X' command aborts the message send so that you can edit the buffer. +The `X' command aborts sending the message so that you can edit the buffer. To spell-check whenever a message is sent, include the appropriate lines in your .emacs file: @@ -3789,7 +3794,7 @@ (defun ispell-buffer-local-parsing () "Place Ispell into parsing mode for this buffer. Overrides the default parsing mode. -Includes Latex/Nroff modes and extended character mode." +Includes LaTeX/Nroff modes and extended character mode." ;; (ispell-init-process) must already be called. (ispell-send-string "!\n") ; Put process in terse mode. ;; We assume all major modes with "tex-mode" in them should use latex parsing @@ -3839,7 +3844,7 @@ (defun ispell-buffer-local-dict (&optional no-reload) "Initializes local dictionary and local personal dictionary. -If optional NO-RELOAD is non-nil, do not make any dictionary reloading. +If optional NO-RELOAD is non-nil, do not reload any dictionary. When a dictionary is defined in the buffer (see variable `ispell-dictionary-keyword'), it will override the local setting from \\[ispell-change-dictionary]. ------------------------------------------------------------ revno: 107622 fixes bug(s): http://debbugs.gnu.org/9914 author: Jambunathan K committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-03-17 22:03:54 +0800 message: * htmlfontify.el: Add support for code block fontification for ODT export. (hfy-optimisations): Define new option `body-text-only' (hfy-fontify-buffer): Honor above setting. (hfy-begin-span, hfy-end-span): New routines factored out form `hfy-fontify-buffer'. (hfy-begin-span-handler, hfy-end-span-handler): New variables that permit insertion of custom tags. (hfy-fontify-buffer): Use above handlers. (hfy-face-to-css-default): Same as the earlier `hfy-face-to-css'. (hfy-face-to-css): Re-defined to be a variable. (hfy-compile-stylesheet): Modified. Allow stylesheet to be built over multiple runs. This is made possible by having the caller let bind a special variable `hfy-user-sheet-assoc'. (htmlfontify-string): New defun. (hfy-compile-face-map): Make sure that the last char in the buffer is correctly fontified. (hfy-face-resolve-face): Whitespace only change. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-03-17 09:13:19 +0000 +++ lisp/ChangeLog 2012-03-17 14:03:54 +0000 @@ -1,3 +1,25 @@ +2012-03-13 Jambunathan K + + * htmlfontify.el: Add support for code block fontification for ODT + export (Bug #9914). + (hfy-optimisations): Define new option + `body-text-only' + (hfy-fontify-buffer): Honor above setting. + (hfy-begin-span, hfy-end-span): New routines factored out form + `hfy-fontify-buffer'. + (hfy-begin-span-handler, hfy-end-span-handler): New variables + that permit insertion of custom tags. + (hfy-fontify-buffer): Use above handlers. + (hfy-face-to-css-default): Same as the earlier `hfy-face-to-css'. + (hfy-face-to-css): Re-defined to be a variable. + (hfy-compile-stylesheet): Modified. Allow stylesheet to be built + over multiple runs. This is made possible by having the caller let + bind a special variable `hfy-user-sheet-assoc'. + (htmlfontify-string): New defun. + (hfy-compile-face-map): Make sure that the last char in the + buffer is correctly fontified. + (hfy-face-resolve-face): Whitespace only change. + 2012-03-17 Eli Zaretskii * textmodes/ispell.el (ispell-get-decoded-string): Make the error === modified file 'lisp/htmlfontify.el' --- lisp/htmlfontify.el 2012-02-28 08:17:21 +0000 +++ lisp/htmlfontify.el 2012-03-17 14:03:54 +0000 @@ -450,6 +450,12 @@ keep-overlays : More of a bell (or possibly whistle) than an optimization - If on, preserve overlay highlighting (cf ediff or goo-font-lock) as well as basic faces.\n + body-text-only : Emit only body-text. In concrete terms, + 1. Suppress calls to `hfy-page-header'and + `hfy-page-footer' + 2. Pretend that `div-wrapper' option above is + turned off + 3. Don't enclose output in
 
tags And the following are planned but not yet available:\n kill-context-leak : Suppress hyperlinking between files highlighted by different modes.\n @@ -463,7 +469,8 @@ (const :tag "skip-refontification" skip-refontification) (const :tag "kill-context-leak" kill-context-leak ) (const :tag "div-wrapper" div-wrapper ) - (const :tag "keep-overlays" keep-overlays )) + (const :tag "keep-overlays" keep-overlays ) + (const :tag "body-text-only" body-text-only )) :group 'htmlfontify :tag "optimizations") @@ -1044,7 +1051,7 @@ ((facep fn) (hfy-face-attr-for-class fn hfy-display-class)) ((and (symbolp fn) - (facep (symbol-value fn))) + (facep (symbol-value fn))) ;; Obsolete faces like `font-lock-reference-face' are defined as ;; aliases for another face. (hfy-face-attr-for-class (symbol-value fn) hfy-display-class)) @@ -1108,10 +1115,9 @@ ;; construct an assoc of (stripped-name . "{ css-stuff-here }") pairs ;; from a face: -(defun hfy-face-to-css (fn) - "Take FN, a font or `defface' specification (cf `face-attr-construct') -and return a CSS style specification.\n -See also `hfy-face-to-style'." +(defun hfy-face-to-css-default (fn) + "Default handler for mapping faces to styles. +See also `hfy-face-to-css'." ;;(message "hfy-face-to-css");;DBUG (let* ((css-list (hfy-face-to-style fn)) (seen nil) @@ -1125,6 +1131,17 @@ css-list))) (cons (hfy-css-name fn) (format "{%s}" (apply 'concat css-text)))) ) +(defvar hfy-face-to-css 'hfy-face-to-css-default + "Handler for mapping faces to styles. +The signature of the handler is of the form \(lambda (FN) ...\). +FN is a font or `defface' specification (cf +`face-attr-construct'). The handler should return a cons cell of +the form (STYLE-NAME . STYLE-SPEC). + +The default handler is `hfy-face-to-css-default'. + +See also `hfy-face-to-style'.") + (defalias 'hfy-prop-invisible-p (if (fboundp 'invisible-p) #'invisible-p (lambda (prop) @@ -1311,20 +1328,27 @@ ;; construct an assoc of (face-name . (css-name . "{ css-style }")) elements: (defun hfy-compile-stylesheet () - "Trawl the current buffer, construct and return a `hfy-sheet-assoc'." + "Trawl the current buffer, construct and return a `hfy-sheet-assoc'. +If `hfy-user-sheet-assoc' is currently bound then use it to +collect new styles discovered during this run. Otherwise create +a new assoc." ;;(message "hfy-compile-stylesheet");;DBUG (let ((pt (point-min)) ;; Make the font stack stay: ;;(hfy-tmpfont-stack nil) (fn nil) - (style nil)) + (style (and (boundp 'hfy-user-sheet-assoc) hfy-user-sheet-assoc))) (save-excursion (goto-char pt) (while (< pt (point-max)) (if (and (setq fn (hfy-face-at pt)) (not (assoc fn style))) - (push (cons fn (hfy-face-to-css fn)) style)) - (setq pt (next-char-property-change pt))) ) - (push (cons 'default (hfy-face-to-css 'default)) style))) + (push (cons fn (funcall hfy-face-to-css fn)) style)) + (setq pt (next-char-property-change pt)))) + (unless (assoc 'default style) + (push (cons 'default (funcall hfy-face-to-css 'default)) style)) + (when (boundp 'hfy-user-sheet-assoc) + (setq hfy-user-sheet-assoc style)) + style)) (defun hfy-fontified-p () "`font-lock' doesn't like to say it's been fontified when in batch @@ -1425,7 +1449,7 @@ (setq pt (next-char-property-change pt)) (setq pt-narrow (+ offset pt))) (if (and map (not (eq 'end (cdar map)))) - (push (cons (- (point-max) (point-min)) 'end) map))) + (push (cons (1+ (- (point-max) (point-min))) 'end) map))) (if (hfy-opt 'merge-adjacent-tags) (hfy-merge-adjacent-spans map) map))) (defun hfy-buffer () @@ -1547,6 +1571,61 @@ (remove-text-properties (point-min) (point-max) '(hfy-show-trailing-whitespace))))) +(defun hfy-begin-span (style text-block text-id text-begins-block-p) + "Default handler to begin a span of text. +Insert \"\". See +`hfy-begin-span-handler' for more information." + (when text-begins-block-p + (insert + (format "" text-block))) + + (insert + (if text-block + (format "" style text-block text-id) + (format "" style)))) + +(defun hfy-end-span () + "Default handler to end a span of text. +Insert \"\". See `hfy-end-span-handler' for more +information." + (insert "")) + +(defvar hfy-begin-span-handler 'hfy-begin-span + "Handler to begin a span of text. +The signature of the handler is \(lambda (STYLE TEXT-BLOCK +TEXT-ID TEXT-BEGINS-BLOCK-P) ...\). The handler must insert +appropriate tags to begin a span of text. + +STYLE is the name of the style that begins at point. It is +derived from the face attributes as part of `hfy-face-to-css' +callback. The other arguments TEXT-BLOCK, TEXT-ID, +TEXT-BEGINS-BLOCK-P are non-nil only if the buffer contains +invisible text. + +TEXT-BLOCK is a string that identifies a single chunk of visible +or invisible text of which the current position is a part. For +visible portions, it's value is \"nil\". For invisible portions, +it's value is computed as part of `hfy-invisible-name'. + +TEXT-ID marks a unique position within a block. It is set to +value of `point' at the current buffer position. + +TEXT-BEGINS-BLOCK-P is a boolean and is non-nil if the current +span also begins a invisible portion of text. + +An implementation can use TEXT-BLOCK, TEXT-ID, +TEXT-BEGINS-BLOCK-P to implement fold/unfold-on-mouse-click like +behaviour. + +The default handler is `hfy-begin-span'.") + +(defvar hfy-end-span-handler 'hfy-end-span + "Handler to end a span of text. +The signature of the handler is \(lambda () ...\). The handler +must insert appropriate tags to end a span of text. + +The default handler is `hfy-end-span'.") + (defun hfy-fontify-buffer (&optional srcdir file) "Implement the guts of `htmlfontify-buffer'. SRCDIR, if set, is the directory being htmlfontified. @@ -1634,23 +1713,19 @@ (or (get-text-property pt 'hfy-linkp) (get-text-property pt 'hfy-endl ))) (if (eq 'end fn) - (insert "") + (funcall hfy-end-span-handler) (if (not (and srcdir file)) nil (when move-link (remove-text-properties (point) (1+ (point)) '(hfy-endl nil)) (put-text-property pt (1+ pt) 'hfy-endl t) )) ;; if we have invisible blocks, we need to do some extra magic: - (if invis-ranges - (let ((iname (hfy-invisible-name pt invis-ranges)) - (fname (hfy-lookup fn css-sheet ))) - (when (assq pt invis-ranges) - (insert - (format "" iname)) - (insert "…")) - (insert - (format "" fname iname pt))) - (insert (format "" (hfy-lookup fn css-sheet)))) + (funcall hfy-begin-span-handler + (hfy-lookup fn css-sheet) + (and invis-ranges + (format "%s" (hfy-invisible-name pt invis-ranges))) + (and invis-ranges pt) + (and invis-ranges (assq pt invis-ranges))) (if (not move-link) nil ;;(message "removing prop2 @ %d" (point)) (if (remove-text-properties (point) (1+ (point)) '(hfy-endl nil)) @@ -1698,23 +1773,39 @@ ;; so we have to do this after we use said properties: ;; (message "munging dangerous characters") (hfy-html-dekludge-buffer) - ;; insert the stylesheet at the top: - (goto-char (point-min)) - ;;(message "inserting stylesheet") - (insert (hfy-sprintf-stylesheet css-sheet file)) - (if (hfy-opt 'div-wrapper) (insert "
")) - (insert "\n
")
-    (goto-char (point-max))
-    (insert "
\n") - (if (hfy-opt 'div-wrapper) (insert "
")) - ;;(message "inserting footer") - (insert (funcall hfy-page-footer file)) + (unless (hfy-opt 'body-text-only) + ;; insert the stylesheet at the top: + (goto-char (point-min)) + + ;;(message "inserting stylesheet") + (insert (hfy-sprintf-stylesheet css-sheet file)) + + (if (hfy-opt 'div-wrapper) (insert "
")) + (insert "\n
")
+      (goto-char (point-max))
+      (insert "
\n") + (if (hfy-opt 'div-wrapper) (insert "
")) + ;;(message "inserting footer") + (insert (funcall hfy-page-footer file))) ;; call any post html-generation hooks: (run-hooks 'hfy-post-html-hooks) ;; return the html buffer (set-buffer-modified-p nil) html-buffer)) +(defun htmlfontify-string (string) + "Take a STRING and return a fontified version of it. +It is assumed that STRING has text properties that allow it to be +fontified. This is a simple convenience wrapper around +`htmlfontify-buffer'." + (let* ((hfy-optimisations-1 (copy-sequence hfy-optimisations)) + (hfy-optimisations (add-to-list 'hfy-optimisations-1 + 'skip-refontification))) + (with-temp-buffer + (insert string) + (htmlfontify-buffer) + (buffer-string)))) + (defun hfy-force-fontification () "Try to force font-locking even when it is optimized away." (run-hooks 'hfy-init-kludge-hook) ------------------------------------------------------------ revno: 107621 committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-03-17 19:11:08 +0800 message: Misc manual updates. * doc/emacs/package.texi (Package Installation): Document use of package-initialize in init file. * doc/lispref/os.texi (Startup Summary): Mention package loading. (Init File): Don't refer to .emacs in section title. Copyedits. (Terminal-Specific): Give a realistic example. (Command-Line Arguments): Reference Entering Emacs instead of repeating the spiel about not restarting Emacs. (Time of Day): Discuss time representation at beginning of node. (Sound Output): Copyedits. * doc/lispref/package.texi (Packaging Basics): Document package-initialize. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2012-03-16 23:20:37 +0000 +++ doc/emacs/ChangeLog 2012-03-17 11:11:08 +0000 @@ -1,3 +1,8 @@ +2012-03-17 Chong Yidong + + * package.texi (Package Installation): Document use of + package-initialize in init file. + 2012-03-16 Glenn Morris * help.texi (Language Help): === modified file 'doc/emacs/package.texi' --- doc/emacs/package.texi 2012-01-05 11:09:27 +0000 +++ doc/emacs/package.texi 2012-03-17 11:11:08 +0000 @@ -157,25 +157,38 @@ wish to use third party package archives---but do so at your own risk, and use only third parties that you think you can trust! - Once a package is downloaded and installed, it takes effect in the -current Emacs session. What ``taking effect'' means depends on the -package; most packages just make some new commands available, while -others have more wide-ranging effects on the Emacs session. For such -information, consult the package's help buffer. + Once a package is downloaded and installed, it is @dfn{loaded} into +the current Emacs session. Loading a package is not quite the same as +loading a Lisp library (@pxref{Lisp Libraries}); its effect varies +from package to package. Most packages just make some new commands +available, while others have more wide-ranging effects on the Emacs +session. For such information, consult the package's help buffer. - By default, Emacs also automatically loads all installed packages -(causing them to ``take effect'') in subsequent Emacs sessions. This -happens at startup, after processing the init file (@pxref{Init -File}). As an exception, Emacs does not load packages at startup if -invoked with the @samp{-q} or @samp{--no-init-file} options -(@pxref{Initial Options}). + By default, Emacs also automatically loads all installed packages in +subsequent Emacs sessions. This happens at startup, after processing +the init file (@pxref{Init File}). As an exception, Emacs does not +load packages at startup if invoked with the @samp{-q} or +@samp{--no-init-file} options (@pxref{Initial Options}). @vindex package-enable-at-startup + To disable automatic package loading, change the variable +@code{package-enable-at-startup} to @code{nil}. + @findex package-initialize - To disable automatic package loading, change the variable -@code{package-enable-at-startup} to @code{nil}. If you do this, you -can use the command @kbd{M-x package-initialize} to load your -packages. + The reason automatic package loading occurs after loading the init +file is that user options only receive their customized values after +loading the init file, including user options which affect the +packaging system. In some circumstances, you may want to load +packages explicitly in your init file (usually because some other code +in your init file depends on a package). In that case, your init file +should call the function @code{package-initialize}. It is up to you +to ensure that relevant user options, such as @code{package-load-list} +(see below), are set up prior to the @code{package-initialize} call. +You should also set @code{package-enable-at-startup} to @code{nil}, to +avoid loading the packages again after processing the init file. +Alternatively, you may choose to completely inhibit package loading at +startup, and invoke the command @kbd{M-x package-initialize} to load +your packages manually. @vindex package-load-list For finer control over package loading, you can use the variable === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-03-17 09:19:02 +0000 +++ doc/lispref/ChangeLog 2012-03-17 11:11:08 +0000 @@ -1,3 +1,15 @@ +2012-03-17 Chong Yidong + + * os.texi (Startup Summary): Mention package loading. + (Init File): Don't refer to .emacs in section title. Copyedits. + (Terminal-Specific): Give a realistic example. + (Command-Line Arguments): Reference Entering Emacs instead of + repeating the spiel about not restarting Emacs. + (Time of Day): Discuss time representation at beginning of node. + (Sound Output): Copyedits. + + * package.texi (Packaging Basics): Document package-initialize. + 2012-03-17 Eli Zaretskii * frames.texi (Initial Parameters): Add an index entry for === modified file 'doc/lispref/os.texi' --- doc/lispref/os.texi 2012-03-04 06:50:18 +0000 +++ doc/lispref/os.texi 2012-03-17 11:11:08 +0000 @@ -127,6 +127,11 @@ (@pxref{Abbrev Files, abbrev-file-name}). This is not done if the option @samp{--batch} was specified. +@item +If @code{package-enable-at-startup} is non-@code{nil}, it calls the +function @code{package-initialize} to activate any optional Emacs Lisp +package that has been installed. @xref{Packaging Basics}. + @vindex after-init-time @item It sets the variable @code{after-init-time} to the value of @@ -242,9 +247,10 @@ @end defopt @node Init File -@subsection The Init File, @file{.emacs} +@subsection The Init File @cindex init file @cindex @file{.emacs} +@cindex @file{init.el} When you start Emacs, it normally attempts to load your @dfn{init file}. This is either a file named @file{.emacs} or @file{.emacs.el} @@ -267,13 +273,13 @@ your user-id to find your home directory. @cindex default init file - A site may have a @dfn{default init file}, which is the library -named @file{default.el}. Emacs finds the @file{default.el} file -through the standard search path for libraries (@pxref{How Programs Do -Loading}). The Emacs distribution does not come with this file; sites -may provide one for local customizations. If the default init file -exists, it is loaded whenever you start Emacs, except in batch mode or -if @samp{-q} (or @samp{-Q}) is specified. But your own personal init + An Emacs installation may have a @dfn{default init file}, which is a +Lisp library named @file{default.el}. Emacs finds this file through +the standard search path for libraries (@pxref{How Programs Do +Loading}). The Emacs distribution does not come with this file; it is +intended for local customizations. If the default init file exists, +it is loaded whenever you start Emacs, except in batch mode or if +@samp{-q} (or @samp{-Q}) is specified. But your own personal init file, if any, is loaded first; if it sets @code{inhibit-default-init} to a non-@code{nil} value, then Emacs does not subsequently load the @file{default.el} file. @@ -343,23 +349,22 @@ trying the @samp{.elc} and @samp{.el} suffixes. @cindex Termcap - The usual function of a terminal-specific library is to enable -special keys to send sequences that Emacs can recognize. It may also -need to set or add to @code{input-decode-map} if the Termcap or -Terminfo entry does not specify all the terminal's function keys. -@xref{Terminal Input}. + The usual role of a terminal-specific library is to enable special +keys to send sequences that Emacs can recognize. It may also need to +set or add to @code{input-decode-map} if the Termcap or Terminfo entry +does not specify all the terminal's function keys. @xref{Terminal +Input}. When the name of the terminal type contains a hyphen, and no library is found whose name is identical to the terminal's name, Emacs strips from the terminal's name the last hyphen and everything that follows it, and tries again. This process is repeated until Emacs finds a -matching library or until there are no more hyphens in the name (the -latter means the terminal doesn't have any library specific to it). -Thus, for example, if there are no @samp{aaa-48} and @samp{aaa-30} -libraries, Emacs will try the same library @file{term/aaa.el} for -terminal types @samp{aaa-48} and @samp{aaa-30-rv}. If necessary, the -library can evaluate @code{(getenv "TERM")} to find the full name of -the terminal type.@refill +matching library, or until there are no more hyphens in the name +(i.g.@: there is no terminal-specific library). For example, if the +terminal name is @samp{xterm-256color} and there is no +@file{term/xterm-256color.el} library, Emacs tries to load +@file{term/xterm.el}. If necessary, the terminal library can evaluate +@code{(getenv "TERM")} to find the full name of the terminal type. Your init file can prevent the loading of the terminal-specific library by setting the variable @@ -376,8 +381,8 @@ @defvar term-file-prefix @cindex @code{TERM} environment variable -If the @code{term-file-prefix} variable is non-@code{nil}, Emacs loads -a terminal-specific initialization file as follows: +If the value of this variable is non-@code{nil}, Emacs loads a +terminal-specific initialization file as follows: @example (load (concat term-file-prefix (getenv "TERM"))) @@ -409,29 +414,14 @@ @subsection Command-Line Arguments @cindex command-line arguments - You can use command-line arguments to request various actions when you -start Emacs. Since you do not need to start Emacs more than once per -day, and will often leave your Emacs session running longer than that, -command-line arguments are hardly ever used. As a practical matter, it -is best to avoid making the habit of using them, since this habit would -encourage you to kill and restart Emacs unnecessarily often. These -options exist for two reasons: to be compatible with other editors (for -invocation by other programs) and to enable shell scripts to run -specific Lisp programs. - - This section describes how Emacs processes command-line arguments, -and how you can customize them. - -@ignore - (Note that some other editors require you to start afresh each time -you want to edit a file. With this kind of editor, you will probably -specify the file as a command-line argument. The recommended way to -use GNU Emacs is to start it only once, just after you log in, and do -all your editing in the same Emacs process. Each time you want to edit -a different file, you visit it with the existing Emacs, which eventually -comes to have many files in it ready for editing. Usually you do not -kill the Emacs until you are about to log out.) -@end ignore + You can use command-line arguments to request various actions when +you start Emacs. Command-line arguments should not be commonly used, +since the recommended way of using Emacs is to start it just once, +after logging in, and do all editing in the same Emacs session +(@pxref{Entering Emacs,,, emacs, The GNU Emacs Manual}); nonetheless, +they can be useful when invoking Emacs from session scripts or +debugging Emacs itself. This section describes how Emacs processes +command-line arguments. @defun command-line This function parses the command line that Emacs was called with, @@ -525,9 +515,7 @@ There are two ways to get out of Emacs: you can kill the Emacs job, which exits permanently, or you can suspend it, which permits you to -reenter the Emacs process later. As a practical matter, you seldom kill -Emacs---only when you are about to log out. Suspending is much more -common. +reenter the Emacs process later. @menu * Killing Emacs:: Exiting Emacs irreversibly. @@ -1105,24 +1093,47 @@ @node Time of Day @section Time of Day - This section explains how to determine the current time and the time + This section explains how to determine the current time and time zone. +@cindex epoch + Most of these functions represent time as a list of either three +integers, @code{(@var{sec-high} @var{sec-low} @var{microsec})}, or of +two integers, @code{(@var{sec-high} @var{sec-low})}. The integers +@var{sec-high} and @var{sec-low} give the high and low bits of an +integer number of seconds. This integer number, +@ifnottex +@var{high} * 2**16 + @var{low}, +@end ifnottex +@tex +$high*2^{16}+low$, +@end tex +is the number of seconds from the @dfn{epoch} (0:00 January 1, 1970 +UTC) to the specified time. The third list element @var{microsec}, if +present, gives the number of microseconds from the start of that +second to the specified time. + + The return value of @code{current-time} represents time using three +integers, while the timestamps in the return value of +@code{file-attributes} use two integers (@pxref{Definition of +file-attributes}). In function arguments, e.g.@: the @var{time-value} +argument to @code{current-time-string}, both two- and three-integer +lists are accepted. You can convert times from the list +representation into standard human-readable strings using +@code{current-time}, or to other forms using the @code{decode-time} +and @code{format-time-string} functions documented in the following +sections. + @defun current-time-string &optional time-value This function returns the current time and date as a human-readable -string. The format of the string is unvarying; the number of characters -used for each part is always the same, so you can reliably use -@code{substring} to extract pieces of it. It is wise to count the -characters from the beginning of the string rather than from the end, as -additional information may some day be added at the end. +string. The format of the string is unvarying; the number of +characters used for each part is always the same, so you can reliably +use @code{substring} to extract pieces of it. You should count +characters from the beginning of the string rather than from the end, +as additional information may some day be added at the end. The argument @var{time-value}, if given, specifies a time to format -instead of the current time. This argument should have the same form -as the times obtained from @code{current-time} (see below) and from -@code{file-attributes} (@pxref{Definition of file-attributes}). It -should be a list whose first two elements are integers; a third -(microsecond) element, if present, is ignored. @var{time-value} can -also be a cons of two integers, but this usage is obsolete. +(represented as a list of integers), instead of the current time. @example @group @@ -1133,33 +1144,16 @@ @end defun @defun current-time -This function returns the system's time value as a list of three -integers: @code{(@var{high} @var{low} @var{microsec})}. The integers -@var{high} and @var{low} combine to give the number of seconds since -0:00 January 1, 1970 UTC (Coordinated Universal Time), which is -@ifnottex -@var{high} * 2**16 + @var{low}. -@end ifnottex -@tex -$high*2^{16}+low$. -@end tex - -The third element, @var{microsec}, gives the microseconds since the -start of the current second (or 0 for systems that return time with -the resolution of only one second). - -The first two elements can be compared with file time values such as you -get with the function @code{file-attributes}. -@xref{Definition of file-attributes}. +This function returns the current time, represented as a list of three +integers @code{(@var{sec-high} @var{sec-low} @var{microsec})}. On +systems with only one-second time resolutions, @var{microsec} is 0. @end defun @defun float-time &optional time-value This function returns the current time as a floating-point number of -seconds since the epoch. The argument @var{time-value}, if given, -specifies a time to convert instead of the current time. The argument -should have the same form as for @code{current-time-string} (see -above). Thus, it accepts the output of @code{current-time} and -@code{file-attributes} (@pxref{Definition of file-attributes}). +seconds since the epoch. The optional argument @var{time-value}, if +given, specifies a time (represented as a list of integers) to convert +instead of the current time. @emph{Warning}: Since the result is floating point, it may not be exact. Do not use this function if precise time stamps are required. @@ -1180,11 +1174,8 @@ If the operating system doesn't supply all the information necessary to compute the value, the unknown elements of the list are @code{nil}. -The argument @var{time-value}, if given, specifies a time to analyze -instead of the current time. The argument should have the same form -as for @code{current-time-string} (see above). Thus, you can use -times obtained from @code{current-time} (see above) and from -@code{file-attributes}. @xref{Definition of file-attributes}. +The argument @var{time-value}, if given, specifies a time (represented +as a list of integers) to analyze instead of the current time. @end defun The current time zone is determined by the @samp{TZ} environment @@ -1196,16 +1187,15 @@ @node Time Conversion @section Time Conversion - These functions convert time values (lists of two or three integers) -to calendrical information and vice versa. You can get time values -from the functions @code{current-time} (@pxref{Time of Day}) and -@code{file-attributes} (@pxref{Definition of file-attributes}). + These functions convert time values (lists of two or three integers, +as explained in the previous section) into calendrical information and +vice versa. - Many 32-bit operating systems are limited to time values that contain 32 bits -of information; these systems typically handle only the times from -1901-12-13 20:45:52 UTC through 2038-01-19 03:14:07 UTC. However, 64-bit -and some 32-bit operating systems have larger time values, and can -represent times far in the past or future. + Many 32-bit operating systems are limited to time values containing +32 bits of information; these systems typically handle only the times +from 1901-12-13 20:45:52 UTC through 2038-01-19 03:14:07 UTC. +However, 64-bit and some 32-bit operating systems have larger time +values, and can represent times far in the past or future. Time conversion functions always use the Gregorian calendar, even for dates before the Gregorian calendar was introduced. Year numbers @@ -2014,9 +2004,8 @@ @cindex sound To play sound using Emacs, use the function @code{play-sound}. Only -certain systems are supported; if you call @code{play-sound} on a system -which cannot really do the job, it gives an error. Emacs version 20 and -earlier did not support sound at all. +certain systems are supported; if you call @code{play-sound} on a +system which cannot really do the job, it gives an error. The sound must be stored as a file in RIFF-WAVE format (@samp{.wav}) or Sun Audio format (@samp{.au}). === modified file 'doc/lispref/package.texi' --- doc/lispref/package.texi 2012-01-05 09:46:05 +0000 +++ doc/lispref/package.texi 2012-03-17 11:11:08 +0000 @@ -15,6 +15,8 @@ The following sections describe how to create a package, and how to put it in a @dfn{package archive} for others to download. +@xref{Packages,,, emacs, The GNU Emacs Manual}, for a description of +user-level features of the packaging system. @menu * Packaging Basics:: The basic concepts of Emacs Lisp packages. @@ -91,17 +93,34 @@ in the content directory. They are typically used to autoload the principal user commands defined in the package, but they can also perform other tasks, such as adding an element to -@code{auto-mode-alist} (@pxref{Auto Major Mode}). During this time, -Emacs will also byte-compile the Lisp files. - - After installation, and (by default) each time Emacs is started, the -installed package is @dfn{activated}. During activation, Emacs adds -the package's content directory to @code{load-path}, and evaluates the -autoload definitions in @file{@var{name}-autoloads.el}. - - Note that a package typically does @emph{not} autoload every -function and variable defined within it---only the handful of commands -typically called to begin using the package. +@code{auto-mode-alist} (@pxref{Auto Major Mode}). Note that a package +typically does @emph{not} autoload every function and variable defined +within it---only the handful of commands typically called to begin +using the package. Emacs then byte-compiles every Lisp file in the +package. + + After installation, the installed package is @dfn{loaded}: Emacs +adds the package's content directory to @code{load-path}, and +evaluates the autoload definitions in @file{@var{name}-autoloads.el}. + + Whenever Emacs starts up, it automatically calls the function +@code{package-initialize} to load installed packages. This is done +after loading the init file and abbrev file (if any) and before +running @code{after-init-hook} (@pxref{Startup Summary}). Automatic +package loading is disabled if the user option +@code{package-enable-at-startup} is @code{nil}. + +@deffn Command package-initialize &optional no-activate +This function initializes Emacs' internal record of which packages are +installed, and loads them. The user option @code{package-load-list} +specifies which packages to load; by default, all installed packages +are loaded. @xref{Package Installation,,, emacs, The GNU Emacs +Manual}. + +The optional argument @var{no-activate}, if non-@code{nil}, causes +Emacs to update its record of installed packages without actually +loading them; it is for internal use only. +@end deffn @node Simple Packages @section Simple Packages ------------------------------------------------------------ revno: 107620 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2012-03-17 11:19:02 +0200 message: Add an index entry for "minibuffer-only frame". doc/lispref/frames.texi (Initial Parameters): Add an index entry for minibuffer-only frame. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-03-16 01:40:20 +0000 +++ doc/lispref/ChangeLog 2012-03-17 09:19:02 +0000 @@ -1,3 +1,8 @@ +2012-03-17 Eli Zaretskii + + * frames.texi (Initial Parameters): Add an index entry for + minibuffer-only frame. + 2012-03-16 Glenn Morris * modes.texi (Major Mode Conventions): Mention the strange === modified file 'doc/lispref/frames.texi' --- doc/lispref/frames.texi 2012-03-04 06:50:18 +0000 +++ doc/lispref/frames.texi 2012-03-17 09:19:02 +0000 @@ -420,10 +420,11 @@ @code{initial-frame-alist} with values that match the X resources. @end defopt -If these parameters specify a separate minibuffer-only frame with +If these parameters specify a separate @dfn{minibuffer-only frame} with @code{(minibuffer . nil)}, and you have not created one, Emacs creates one for you. +@cindex minibuffer-only frame @defopt minibuffer-frame-alist This variable's value is an alist of parameter values used when creating an initial minibuffer-only frame. This is the ------------------------------------------------------------ revno: 107619 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2012-03-17 11:13:19 +0200 message: Improve error message in ispell-get-decoded-string. lisp/textmodes/ispell.el (ispell-get-decoded-string): Make the error message mention the alists that need to be fixed. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-03-16 16:36:27 +0000 +++ lisp/ChangeLog 2012-03-17 09:13:19 +0000 @@ -1,3 +1,8 @@ +2012-03-17 Eli Zaretskii + + * textmodes/ispell.el (ispell-get-decoded-string): Make the error + message more clear. + 2012-03-16 Leo Liu * emacs-lisp/copyright.el (copyright-year-ranges): Fix typo. === modified file 'lisp/textmodes/ispell.el' --- lisp/textmodes/ispell.el 2012-01-19 07:21:25 +0000 +++ lisp/textmodes/ispell.el 2012-03-17 09:13:19 +0000 @@ -1307,7 +1307,8 @@ (let* ((slot (or (assoc ispell-current-dictionary ispell-local-dictionary-alist) (assoc ispell-current-dictionary ispell-dictionary-alist) - (error "No match for the current dictionary"))) + (error "No data for dictionary \"%s\", neither in `ispell-local-dictionary-alist' nor in `ispell-dictionary-alist'" + ispell-current-dictionary))) (str (nth n slot))) (when (and (> (length str) 0) (not (multibyte-string-p str))) ------------------------------------------------------------ revno: 107618 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-03-16 19:20:37 -0400 message: Small fixes related to etc/HELLO * doc/emacs/help.texi (Language Help): * doc/emacs/mule.texi (International Chars): etc/HELLO is for character demonstration. * etc/HELLO: Say that this is not a comprehensive list. Remove "duplicate" entry. (Bug#11024) diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2012-03-15 08:33:42 +0000 +++ doc/emacs/ChangeLog 2012-03-16 23:20:37 +0000 @@ -1,3 +1,9 @@ +2012-03-16 Glenn Morris + + * help.texi (Language Help): + * mule.texi (International Chars): + etc/HELLO is for character demonstration. + 2012-03-15 Dani Moncayo (tiny change) * dired.texi (Shell Commands in Dired): Fix typo. === modified file 'doc/emacs/help.texi' --- doc/emacs/help.texi 2012-02-29 08:11:23 +0000 +++ doc/emacs/help.texi 2012-03-16 23:20:37 +0000 @@ -464,7 +464,8 @@ methods, as well as some sample text for that language environment. The command @kbd{C-h h} (@code{view-hello-file}) displays the file -@file{etc/HELLO}, which shows how to say ``hello'' in many languages. +@file{etc/HELLO}, which demonstrates various character sets by showing +how to say ``hello'' in many languages. The command @kbd{C-h I} (@code{describe-input-method}) describes an input method---either a specified input method, or by default the === modified file 'doc/emacs/mule.texi' --- doc/emacs/mule.texi 2012-01-19 07:21:25 +0000 +++ doc/emacs/mule.texi 2012-03-16 23:20:37 +0000 @@ -1,5 +1,5 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1997, 1999-2012 Free Software Foundation, Inc. +@c Copyright (C) 1997, 1999-2012 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node International, Modes, Frames, Top @chapter International Character Set Support @@ -137,8 +137,8 @@ @cindex undisplayable characters @cindex @samp{?} in display The command @kbd{C-h h} (@code{view-hello-file}) displays the file -@file{etc/HELLO}, which shows how to say ``hello'' in many languages. -This illustrates various scripts. If some characters can't be +@file{etc/HELLO}, which illustrates various scripts by showing +how to say ``hello'' in many languages. If some characters can't be displayed on your terminal, they appear as @samp{?} or as hollow boxes (@pxref{Undisplayable Characters}). === modified file 'etc/ChangeLog' --- etc/ChangeLog 2012-02-23 01:31:39 +0000 +++ etc/ChangeLog 2012-03-16 23:20:37 +0000 @@ -1,3 +1,8 @@ +2012-03-16 Glenn Morris + + * HELLO: Say that this is not a comprehensive list. + Remove "duplicate" entry. (Bug#11024) + 2012-02-20 Paul Eggert * emacs-buffer.gdb ($valmask): Don't assume EMACS_INT fits in 'long'. === modified file 'etc/HELLO' --- etc/HELLO 2012-03-16 22:40:10 +0000 +++ etc/HELLO 2012-03-16 23:20:37 +0000 @@ -1,4 +1,6 @@ This is a list of ways to say hello in various languages. +It is not intended to be comprehensive, but to demonstrate +some of the character sets that Emacs supports. Non-ASCII examples: Europe: ,A!(BHola!, Gr,A|_(B Gott, Hyv,Add(B p,Ad(Biv,Add(B, Tere ,Au(Bhtust, Bon,Cu(Bu @@ -46,7 +48,6 @@ Malayalam ($,1@N@R@O@^@S@"(B) $,1@H@N@X@m@5@^@P@"(B Maltese (il-Malti) Bon,Cu(Bu / Sa,C11(Ba Mathematics $,1x (B p $,1x((B world $,1s"(B hello p $,2!a(B -Nederlands, Vlaams Hallo / Dag Norwegian (norsk) Hei / God dag Oriya ($,1:s;\;?:f(B) $,1;6;A;#;?;,;G(B Polish (j,Bj(Bzyk polski) Dzie,Bq(B dobry! / Cze,B6f(B!