------------------------------------------------------------ revno: 115793 committer: Glenn Morris branch nick: trunk timestamp: Sat 2013-12-28 00:33:44 -0800 message: * admin/admin.el (cusver-scan): Warn about missing :types. (cusver-check): Interactively, require existing directories. * admin/cus-test.el: Comment. diff: === modified file 'admin/ChangeLog' --- admin/ChangeLog 2013-12-27 10:21:47 +0000 +++ admin/ChangeLog 2013-12-28 08:33:44 +0000 @@ -1,3 +1,8 @@ +2013-12-28 Glenn Morris + + * admin.el (cusver-scan): Warn about missing :types. + (cusver-check): Interactively, require existing directories. + 2013-12-27 Xue Fuqiao * admin.el (manual-misc-manuals, make-manuals): === modified file 'admin/admin.el' --- admin/admin.el 2013-12-27 10:21:47 +0000 +++ admin/admin.el 2013-12-28 08:33:44 +0000 @@ -540,6 +540,12 @@ ;; Exclude macros, eg (defcustom ,varname ...). (symbolp var)) (progn + ;; FIXME It should be cus-test-apropos that does this. + (and (not old) + (equal "custom" (match-string 2)) + (not (memq :type form)) + (display-warning 'custom + (format "Missing type in: `%s'" form))) (setq ver (car (cdr-safe (memq :version form)))) (if (equal "group" (match-string 2)) ;; Group :version could be old. @@ -601,8 +607,8 @@ Note that a :version tag should also be added if the value of a defcustom changes (in a non-trivial way). This function does not check for that." - (interactive (list (read-directory-name "New Lisp directory: ") - (read-directory-name "Old Lisp directory: ") + (interactive (list (read-directory-name "New Lisp directory: " nil nil t) + (read-directory-name "Old Lisp directory: " nil nil t) (number-to-string (read-number "New version number: " (string-to-number cusver-new-version))))) === modified file 'admin/cus-test.el' --- admin/cus-test.el 2013-08-13 07:42:51 +0000 +++ admin/cus-test.el 2013-12-28 08:33:44 +0000 @@ -187,6 +187,9 @@ (message "Cus Test running...%s %s" (length cus-test-tested-variables) symbol) (condition-case alpha + ;; FIXME This defaults to 'sexp if no type was specified. + ;; Always report such instances as a type mismatch. + ;; Currently abusing cusver-scan to do that. (let* ((type (custom-variable-type symbol)) (conv (widget-convert type)) (get (or (get symbol 'custom-get) 'default-value)) ------------------------------------------------------------ revno: 115792 committer: Glenn Morris branch nick: trunk timestamp: Sat 2013-12-28 00:27:34 -0800 message: Revert earlier erc-button change diff: === modified file 'lisp/erc/ChangeLog' --- lisp/erc/ChangeLog 2013-12-28 08:21:33 +0000 +++ lisp/erc/ChangeLog 2013-12-28 08:27:34 +0000 @@ -2,8 +2,6 @@ * erc-log.el (erc-log-file-coding-system): Specify custom type. - * erc-button.el (erc-button-alist): Fix custom type. - 2013-11-25 Glenn Morris * erc-button.el (erc-nick-popup): Make `nick' available in the === modified file 'lisp/erc/erc-button.el' --- lisp/erc/erc-button.el 2013-12-28 01:24:15 +0000 +++ lisp/erc/erc-button.el 2013-12-28 08:27:34 +0000 @@ -189,7 +189,9 @@ (choice :tag "Matches" regexp (variable :tag "Variable containing regexp") - (const :tag "Nicknames" nicknames)) + ;; FIXME It really does mean 'nicknames + ;; rather than just nicknames. + (const :tag "Nicknames" 'nicknames)) (integer :tag "Number of the regexp section that matches") (choice :tag "When to buttonize" (const :tag "Always" t) ------------------------------------------------------------ revno: 115791 committer: Glenn Morris branch nick: trunk timestamp: Sat 2013-12-28 00:21:33 -0800 message: Every defcustom should specify its type * apropos.el (apropos-match-face): * calculator.el (calculator-displayer): * dabbrev.el (dabbrev-search-these-buffers-only): * face-remap.el (buffer-face-mode-face): * simple.el (yank-handled-properties): * emacs-lisp/testcover.el (testcover-potentially-1value-functions): * mail/footnote.el (footnote-mode-line-string, footnote-prefix): * mail/hashcash.el (hashcash-accept-resources, hashcash-program) (hashcash-double-spend-database): * progmodes/ruby-mode.el (ruby-deep-indent-paren) (ruby-deep-indent-paren-style): * textmodes/flyspell.el (flyspell-auto-correct-binding): * textmodes/rst.el (rst-toc-indent, rst-toc-insert-style) (rst-toc-insert-number-separator, rst-toc-insert-max-level): * vc/pcvs-defs.el (cvs-minor-mode-prefix): * erc/erc-log.el (erc-log-file-coding-system): * gnus/gnus-sieve.el (gnus-sieve-select-method): * gnus/gravatar.el (gravatar-automatic-caching, gravatar-cache-ttl) (gravatar-rating, gravatar-size): * gnus/message.el (message-minibuffer-local-map): * gnus/sieve-manage.el (sieve-manage-authenticators) (sieve-manage-authenticator-alist): Specify custom types. * mail/hashcash.el (hashcash-program): Rename from hashcash-path. Update callers. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-28 02:16:05 +0000 +++ lisp/ChangeLog 2013-12-28 08:21:33 +0000 @@ -1,5 +1,25 @@ 2013-12-28 Glenn Morris + * mail/hashcash.el (hashcash-program): Rename from hashcash-path. + Update callers. + + * apropos.el (apropos-match-face): + * calculator.el (calculator-displayer): + * dabbrev.el (dabbrev-search-these-buffers-only): + * face-remap.el (buffer-face-mode-face): + * simple.el (yank-handled-properties): + * emacs-lisp/testcover.el (testcover-potentially-1value-functions): + * mail/footnote.el (footnote-mode-line-string, footnote-prefix): + * mail/hashcash.el (hashcash-accept-resources, hashcash-program) + (hashcash-double-spend-database): + * progmodes/ruby-mode.el (ruby-deep-indent-paren) + (ruby-deep-indent-paren-style): + * textmodes/flyspell.el (flyspell-auto-correct-binding): + * textmodes/rst.el (rst-toc-indent, rst-toc-insert-style) + (rst-toc-insert-number-separator, rst-toc-insert-max-level): + * vc/pcvs-defs.el (cvs-minor-mode-prefix): + Specify custom types. + * emacs-lisp/smie.el (smie-config): Add type, version, initialize. * bookmark.el (bookmark-bmenu-use-header-line): * doc-view.el (doc-view-scale-internally): === modified file 'lisp/apropos.el' --- lisp/apropos.el 2013-12-18 04:46:49 +0000 +++ lisp/apropos.el 2013-12-28 08:21:33 +0000 @@ -131,6 +131,7 @@ "Face for matching text in Apropos documentation/value, or nil for none. This applies when you look for matches in the documentation or variable value for the pattern; the part that matches gets displayed in this font." + :type '(choice (const nil) face) :group 'apropos :version "24.3") === modified file 'lisp/calculator.el' --- lisp/calculator.el 2013-09-03 19:44:02 +0000 +++ lisp/calculator.el 2013-12-28 08:21:33 +0000 @@ -139,6 +139,7 @@ An exception to the above is the case of the list (std C) where C is a character, in this case the `calculator-standard-displayer' function will be used with this character for a format string." + :type '(choice (function) (string) (list (const std) character) (sexp)) :group 'calculator) (defcustom calculator-displayers === modified file 'lisp/dabbrev.el' --- lisp/dabbrev.el 2013-08-05 14:26:57 +0000 +++ lisp/dabbrev.el 2013-12-28 08:21:33 +0000 @@ -285,6 +285,7 @@ If this variable is non-nil, dabbrev will only look in these buffers. It will not even look in the current buffer if it is not a member of this list." + :type '(choice (const nil) (repeat :tag "List of buffers" string)) :group 'dabbrev) ;;---------------------------------------------------------------- === modified file 'lisp/emacs-lisp/testcover.el' --- lisp/emacs-lisp/testcover.el 2013-05-11 02:21:29 +0000 +++ lisp/emacs-lisp/testcover.el 2013-12-28 08:21:33 +0000 @@ -146,7 +146,8 @@ '(add-hook and beep or remove-hook unless when) "Functions that are potentially 1-valued. No brown splotch if actually 1-valued, no error if actually multi-valued." - :group 'testcover) + :group 'testcover + :type '(repeat symbol)) (defface testcover-nohits '((t (:background "DeepPink2"))) === modified file 'lisp/erc/ChangeLog' --- lisp/erc/ChangeLog 2013-12-28 01:24:15 +0000 +++ lisp/erc/ChangeLog 2013-12-28 08:21:33 +0000 @@ -1,5 +1,7 @@ 2013-12-28 Glenn Morris + * erc-log.el (erc-log-file-coding-system): Specify custom type. + * erc-button.el (erc-button-alist): Fix custom type. 2013-11-25 Glenn Morris === modified file 'lisp/erc/erc-log.el' --- lisp/erc/erc-log.el 2013-05-21 07:25:14 +0000 +++ lisp/erc/erc-log.el 2013-12-28 08:21:33 +0000 @@ -202,6 +202,7 @@ This should ideally, be a \"catch-all\" coding system, like `emacs-mule', or `iso-2022-7bit'." + :type 'coding-system :group 'erc-log) (defcustom erc-log-filter-function nil === modified file 'lisp/face-remap.el' --- lisp/face-remap.el 2013-12-23 03:59:10 +0000 +++ lisp/face-remap.el 2013-12-28 08:21:33 +0000 @@ -343,6 +343,9 @@ It may contain any value suitable for a `face' text property, including a face name, a list of face names, a face-attribute plist, etc." + :type '(choice (face) + (repeat :tag "List of faces" face) + (plist :tag "Face property list")) :group 'display :version "23.1") === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-12-28 02:16:05 +0000 +++ lisp/gnus/ChangeLog 2013-12-28 08:21:33 +0000 @@ -1,5 +1,12 @@ 2013-12-28 Glenn Morris + * gnus-sieve.el (gnus-sieve-select-method): + * gravatar.el (gravatar-automatic-caching, gravatar-cache-ttl) + (gravatar-rating, gravatar-size): + * message.el (message-minibuffer-local-map): + * sieve-manage.el (sieve-manage-authenticators) + (sieve-manage-authenticator-alist): Specify custom types. + * gnus-icalendar.el (gnus-icalendar-org, gnus-icalendar): * gnus-sum.el (gnus-subthread-sort-functions): Add version. * gnus-sync.el (gnus-sync-file-encrypt-to): Add type and version. === modified file 'lisp/gnus/gnus-sieve.el' --- lisp/gnus/gnus-sieve.el 2013-01-01 09:11:05 +0000 +++ lisp/gnus/gnus-sieve.el 2013-12-28 08:21:33 +0000 @@ -46,21 +46,20 @@ :group 'gnus-sieve) (defcustom gnus-sieve-region-start "\n## Begin Gnus Sieve Script\n" - "Line indicating the start of the autogenerated region in -your Sieve script." + "Line indicating the start of the autogenerated region in your Sieve script." :type 'string :group 'gnus-sieve) (defcustom gnus-sieve-region-end "\n## End Gnus Sieve Script\n" - "Line indicating the end of the autogenerated region in -your Sieve script." + "Line indicating the end of the autogenerated region in your Sieve script." :type 'string :group 'gnus-sieve) (defcustom gnus-sieve-select-method nil "Which select method we generate the Sieve script for. - For example: \"nnimap:mailbox\"" + ;; FIXME? gnus-select-method? + :type '(choice (const nil) string) :group 'gnus-sieve) (defcustom gnus-sieve-crosspost t === modified file 'lisp/gnus/gravatar.el' --- lisp/gnus/gravatar.el 2013-05-29 02:40:43 +0000 +++ lisp/gnus/gravatar.el 2013-12-28 08:21:33 +0000 @@ -33,19 +33,25 @@ :group 'comm) (defcustom gravatar-automatic-caching t - "Whether cache retrieved gravatar." + "Whether to cache retrieved gravatars." + :type 'boolean :group 'gravatar) +;; FIXME a time value is not the nicest format for a custom variable. (defcustom gravatar-cache-ttl (days-to-time 30) "Time to live for gravatar cache entries." + :type '(repeat integer) :group 'gravatar) +;; FIXME Doc is tautological. What are the options? (defcustom gravatar-rating "g" "Default rating for gravatar." + :type 'string :group 'gravatar) (defcustom gravatar-size 32 "Default size in pixels for gravatars." + :type 'integer :group 'gravatar) (defconst gravatar-base-url === modified file 'lisp/gnus/message.el' --- lisp/gnus/message.el 2013-12-03 01:06:12 +0000 +++ lisp/gnus/message.el 2013-12-28 08:21:33 +0000 @@ -944,6 +944,8 @@ (set-keymap-parent map minibuffer-local-map) map) "Keymap for `message-read-from-minibuffer'." + ;; FIXME improve type. + :type '(restricted-sexp :match-alternatives (symbolp keymapp)) :version "22.1" :group 'message-various) === modified file 'lisp/gnus/sieve-manage.el' --- lisp/gnus/sieve-manage.el 2013-06-18 07:13:18 +0000 +++ lisp/gnus/sieve-manage.el 2013-12-28 08:21:33 +0000 @@ -115,6 +115,10 @@ plain login) "Priority of authenticators to consider when authenticating to server." + ;; FIXME Improve this. It's not `set'. + ;; It's like (repeat (choice (const ...))), where each choice can + ;; only appear once. + :type '(repeat symbol) :group 'sieve-manage) (defcustom sieve-manage-authenticator-alist @@ -131,6 +135,8 @@ NAME names the authenticator. CHECK is a function returning non-nil if the server support the authenticator and AUTHENTICATE is a function for doing the actual authentication." + :type '(repeat (list (symbol :tag "Name") (function :tag "Check function") + (function :tag "Authentication function"))) :group 'sieve-manage) (defcustom sieve-manage-default-port "sieve" === modified file 'lisp/mail/footnote.el' --- lisp/mail/footnote.el 2013-01-01 09:11:05 +0000 +++ lisp/mail/footnote.el 2013-12-28 08:21:33 +0000 @@ -45,6 +45,7 @@ (defcustom footnote-mode-line-string " FN" "String to display in modes section of the mode-line." + :type 'string :group 'footnote) (defcustom footnote-mode-hook nil @@ -86,10 +87,8 @@ "Prefix key to use for Footnote command in Footnote minor mode. The value of this variable is checked as part of loading Footnote mode. After that, changing the prefix key requires manipulating keymaps." - ;; FIXME: the type should be a key-sequence, but it seems Custom - ;; doesn't support that yet. - ;; :type 'string - ) + :type 'key-sequence + :group 'footnote) ;;; Interface variables that probably shouldn't be changed === modified file 'lisp/mail/hashcash.el' --- lisp/mail/hashcash.el 2013-01-01 09:11:05 +0000 +++ lisp/mail/hashcash.el 2013-12-28 08:21:33 +0000 @@ -89,20 +89,25 @@ Resources named here are to be accepted in incoming payments. If the corresponding AMOUNT is NIL, the value of `hashcash-default-accept-payment' is used instead." + :type 'alist :group 'hashcash) -(defcustom hashcash-path (executable-find "hashcash") - "The path to the hashcash binary." +(define-obsolete-variable-alias 'hashcash-path 'hashcash-program "24.4") +(defcustom hashcash-program "hashcash" + "The name of the hashcash executable. +If this is not in your PATH, specify an absolute file name." + :type '(choice (const nil) file) :group 'hashcash) (defcustom hashcash-extra-generate-parameters nil - "A list of parameter strings passed to `hashcash-path' when minting. + "A list of parameter strings passed to `hashcash-program' when minting. For example, you may want to set this to '(\"-Z2\") to reduce header length." :type '(repeat string) :group 'hashcash) (defcustom hashcash-double-spend-database "hashcash.db" - "The path to the double-spending database." + "The name of the double-spending database file." + :type 'file :group 'hashcash) (defcustom hashcash-in-news nil @@ -159,10 +164,10 @@ (defun hashcash-generate-payment (str val) "Generate a hashcash payment by finding a VAL-bit collison on STR." (if (and (> val 0) - hashcash-path) + hashcash-program) (with-current-buffer (get-buffer-create " *hashcash*") (erase-buffer) - (apply 'call-process hashcash-path nil t nil + (apply 'call-process hashcash-program nil t nil "-m" "-q" "-b" (number-to-string val) str hashcash-extra-generate-parameters) (goto-char (point-min)) @@ -173,9 +178,9 @@ "Generate a hashcash payment by finding a VAL-bit collison on STR. Return immediately. Call CALLBACK with process and result when ready." (if (and (> val 0) - hashcash-path) + hashcash-program) (let ((process (apply 'start-process "hashcash" nil - hashcash-path "-m" "-q" + hashcash-program "-m" "-q" "-b" (number-to-string val) str hashcash-extra-generate-parameters))) (setq hashcash-process-alist (cons @@ -187,8 +192,8 @@ (defun hashcash-check-payment (token str val) "Check the validity of a hashcash payment." - (if hashcash-path - (zerop (call-process hashcash-path nil nil nil "-c" + (if hashcash-program + (zerop (call-process hashcash-program nil nil nil "-c" "-d" "-f" hashcash-double-spend-database "-b" (number-to-string val) "-r" str === modified file 'lisp/progmodes/ruby-mode.el' --- lisp/progmodes/ruby-mode.el 2013-12-22 20:38:26 +0000 +++ lisp/progmodes/ruby-mode.el 2013-12-28 08:21:33 +0000 @@ -273,17 +273,26 @@ :group 'ruby :safe 'booleanp) +;; FIXME Woefully under documented. What is the point of the last `t'?. (defcustom ruby-deep-indent-paren '(?\( ?\[ ?\] t) "Deep indent lists in parenthesis when non-nil. The value t means continuous line. Also ignores spaces after parenthesis when `space'. Only has effect when `ruby-use-smie' is nil." + :type '(choice (const nil) + character + (repeat (choice character + (cons character (choice (const nil) + (const t))) + (const t) ; why? + ))) :group 'ruby) (defcustom ruby-deep-indent-paren-style 'space "Default deep indent style. Only has effect when `ruby-use-smie' is nil." - :options '(t nil space) :group 'ruby) + :type '(choice (const t) (const nil) (const space)) + :group 'ruby) (defcustom ruby-encoding-map '((us-ascii . nil) ;; Do not put coding: us-ascii === modified file 'lisp/simple.el' --- lisp/simple.el 2013-12-26 22:02:49 +0000 +++ lisp/simple.el 2013-12-28 08:21:33 +0000 @@ -3812,6 +3812,8 @@ This is done prior to removing the properties specified by `yank-excluded-properties'." :group 'killing + :type '(repeat (cons (symbol :tag "property symbol") + function)) :version "24.3") ;; This is actually used in subr.el but defcustom does not work there. === modified file 'lisp/textmodes/flyspell.el' --- lisp/textmodes/flyspell.el 2013-04-17 18:03:46 +0000 +++ lisp/textmodes/flyspell.el 2013-12-28 08:21:33 +0000 @@ -283,6 +283,7 @@ (defcustom flyspell-auto-correct-binding [(control ?\;)] "The key binding for flyspell auto correction." + :type 'key-sequence :group 'flyspell) ;;*---------------------------------------------------------------------*/ === modified file 'lisp/textmodes/rst.el' --- lisp/textmodes/rst.el 2013-06-20 14:15:42 +0000 +++ lisp/textmodes/rst.el 2013-12-28 08:21:33 +0000 @@ -2296,6 +2296,7 @@ (defcustom rst-toc-indent 2 "Indentation for table-of-contents display. Also used for formatting insertion, when numbering is disabled." + :type 'integer :group 'rst-toc) (rst-testcover-defcustom) @@ -2307,11 +2308,16 @@ - fixed: numbering, but fixed indentation - aligned: numbering, titles aligned under each other - listed: numbering, with dashes like list items (EXPERIMENTAL)" + :type '(choice (const plain) + (const fixed) + (const aligned) + (const listed)) :group 'rst-toc) (rst-testcover-defcustom) (defcustom rst-toc-insert-number-separator " " "Separator that goes between the TOC number and the title." + :type 'string :group 'rst-toc) (rst-testcover-defcustom) @@ -2324,6 +2330,7 @@ (defcustom rst-toc-insert-max-level nil "If non-nil, maximum depth of the inserted TOC." + :type '(choice (const nil) integer) :group 'rst-toc) (rst-testcover-defcustom) === modified file 'lisp/vc/pcvs-defs.el' --- lisp/vc/pcvs-defs.el 2013-10-08 03:47:24 +0000 +++ lisp/vc/pcvs-defs.el 2013-12-28 08:21:33 +0000 @@ -424,6 +424,7 @@ (defcustom cvs-minor-mode-prefix "\C-xc" "Prefix key for the `cvs-mode' bindings in `cvs-minor-mode'." + :type 'string :group 'pcl-cvs) (easy-mmode-defmap cvs-minor-mode-map ------------------------------------------------------------ revno: 115790 committer: Paul Eggert branch nick: trunk timestamp: Fri 2013-12-27 22:37:35 -0800 message: Spelling and typo fixes. diff: === modified file 'lisp/abbrev.el' --- lisp/abbrev.el 2013-09-17 07:26:07 +0000 +++ lisp/abbrev.el 2013-12-28 06:37:35 +0000 @@ -421,7 +421,7 @@ \(fn ABBREV PROP)") (defalias 'abbrev-put 'put - "Set the property PROP of abbrev ABREV to value VAL. + "Set the property PROP of abbrev ABBREV to value VAL. See `define-abbrev' for the effect of some special properties. \(fn ABBREV PROP VAL)") === modified file 'lisp/elec-pair.el' --- lisp/elec-pair.el 2013-12-28 01:24:15 +0000 +++ lisp/elec-pair.el 2013-12-28 06:37:35 +0000 @@ -92,8 +92,8 @@ The default values of `electric-pair-inhibit-predicate' and `electric-pair-skip-self' check this variable before delegating to other -predicates reponsible for making decisions on whether to pair/skip some -characters based on the actual state of the buffer's parenthesis and +predicates responsible for making decisions on whether to pair/skip some +characters based on the actual state of the buffer's parentheses and quotes." :version "24.4" :group 'electricity @@ -274,17 +274,17 @@ ;; doesn't keep `electric-pair-mode' from balancing your ()'s and your ;; []'s. (defun electric-pair--balance-info (direction string-or-comment) - "Examine lists forward or backward according to DIRECTIONS's sign. + "Examine lists forward or backward according to DIRECTION's sign. STRING-OR-COMMENT is info suitable for running `parse-partial-sexp'. -Return a cons of two descritions (MATCHED-P . PAIR) for the +Return a cons of two descriptions (MATCHED-P . PAIR) for the innermost and outermost lists that enclose point. The outermost list enclosing point is either the first top-level or first -mismatched list found by uplisting. +mismatched list found by listing up. If the outermost list is matched, don't rely on its PAIR. If -point is not enclosed by any lists, return ((T) (T))." +point is not enclosed by any lists, return ((T) . (T))." (let* (innermost outermost (table (if string-or-comment === modified file 'test/automated/electric-tests.el' --- test/automated/electric-tests.el 2013-12-28 00:04:56 +0000 +++ test/automated/electric-tests.el 2013-12-28 06:37:35 +0000 @@ -186,7 +186,7 @@ bindings fixture-fn)))))) -;;; Basic pairings and skippings +;;; Basic pairs and skips ;;; (define-electric-pair-test balanced-situation " (()) " "(((((((" :skip-pair-string "ppppppp" @@ -237,7 +237,7 @@ (define-electric-pair-test find-matching-different-paren-type-inside-list "( ()]) " "-[-----" :skip-pair-string "-------") -(define-electric-pair-test ignore-different-unmatching-paren-type +(define-electric-pair-test ignore-different-nonmatching-paren-type "( ()]) " "-(-----" :skip-pair-string "-p-----") (define-electric-pair-test autopair-keep-least-amount-of-mixed-unbalance ------------------------------------------------------------ revno: 115789 committer: Chong Yidong branch nick: trunk timestamp: Sat 2013-12-28 12:30:19 +0800 message: Doc updates * buffers.texi (Modification Time): Document visited-file-modtime change. * modes.texi (Auto Major Mode): Document interpreter-mode-alist change. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-12-28 00:47:15 +0000 +++ doc/lispref/ChangeLog 2013-12-28 04:30:19 +0000 @@ -1,3 +1,11 @@ +2013-12-28 Chong Yidong + + * modes.texi (Auto Major Mode): Document interpreter-mode-alist + change. + + * buffers.texi (Modification Time): Document visited-file-modtime + change. + 2013-12-28 Glenn Morris * control.texi (Pattern matching case statement): Brevity. === modified file 'doc/lispref/buffers.texi' --- doc/lispref/buffers.texi 2013-06-30 22:29:23 +0000 +++ doc/lispref/buffers.texi 2013-12-28 04:30:19 +0000 @@ -632,13 +632,12 @@ file should not be done. @end defun -@c Emacs 19 feature @defun visited-file-modtime This function returns the current buffer's recorded last file modification time, as a list of the form @code{(@var{high} @var{low} -@var{microsec} @var{picosec})}. -(This is the same format that @code{file-attributes} uses to return -time values; see @ref{File Attributes}.) +@var{microsec} @var{picosec})}. (This is the same format that +@code{file-attributes} uses to return time values; @pxref{File +Attributes}.) If the buffer has no recorded last modification time, this function returns zero. This case occurs, for instance, if the buffer is not @@ -648,17 +647,9 @@ too. For instance, in a Dired buffer listing a directory, it returns the last modification time of that directory, as recorded by Dired. -For a new buffer visiting a not yet existing file, @var{high} is -@minus{}1 and @var{low} is 65535, that is, -@ifnottex -@w{2**16 @minus{} 1.} -@end ifnottex -@tex -@math{2^{16}-1}. -@end tex +If the buffer is not visiting a file, this function returns -1. @end defun -@c Emacs 19 feature @defun set-visited-file-modtime &optional time This function updates the buffer's record of the last modification time of the visited file, to the value specified by @var{time} if @var{time} === modified file 'doc/lispref/modes.texi' --- doc/lispref/modes.texi 2013-12-18 05:31:11 +0000 +++ doc/lispref/modes.texi 2013-12-28 04:30:19 +0000 @@ -646,10 +646,10 @@ @defvar interpreter-mode-alist This variable specifies major modes to use for scripts that specify a command interpreter in a @samp{#!} line. Its value is an alist with -elements of the form @code{(@var{interpreter} . @var{mode})}; for -example, @code{("perl" . perl-mode)} is one element present by -default. The element says to use mode @var{mode} if the file -specifies an interpreter which matches @var{interpreter}. +elements of the form @code{(@var{regexp} . @var{mode})}; this says to +use mode @var{mode} if the file specifies an interpreter which matches +@code{\\`@var{regexp}\\'}. For example, one of the default elements +is @code{("python[0-9.]*" . python-mode)}. @end defvar @defvar magic-mode-alist === modified file 'etc/NEWS' --- etc/NEWS 2013-12-27 10:43:11 +0000 +++ etc/NEWS 2013-12-28 04:30:19 +0000 @@ -952,14 +952,14 @@ `file-extended-attributes'. The attributes can be applied to another file using `set-file-extended-attributes'. ++++ ** `visited-file-modtime' now returns -1 for nonexistent files. Formerly it returned a list (-1 LOW USEC PSEC), but this was ambiguous in the presence of files with negative time stamps. ++++ ** The cars of the elements in `interpreter-mode-alist' are now -treated as regexps rather than literal strings. This change should -not affect you unless you are using `interpreter-mode-alist' for -something (not just adding elements to it). +treated as regexps rather than literal strings. * Lisp Changes in Emacs 24.4 ------------------------------------------------------------ revno: 115788 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-12-27 18:17:54 -0800 message: ChangeLog fixes for font-locking diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-12-28 00:36:00 +0000 +++ src/ChangeLog 2013-12-28 02:17:54 +0000 @@ -633,8 +633,8 @@ use MAX_UTF8_PATH for size of file-name strings. (emacs_readlinkat): Build an explicitly unibyte string for file names. - (syms_of_fileio) - default-file-name-coding-system>: Mention MS-Windows peculiarities. + (syms_of_fileio) : + : Mention MS-Windows peculiarities. * emacs.c (init_cmdargs) [WINDOWSNT]: Convert argv[0] to UTF-8. (main) [WINDOWSNT]: Convert the argv[] elements that are files or @@ -8126,7 +8126,7 @@ 2013-04-14 Eli Zaretskii - * buffer.c (syms_of_buffer) + * buffer.c (syms_of_buffer) : : Mention in the doc string that setting these variables takes effect only after a call to set-window-buffer. (Bug#14200) ------------------------------------------------------------ revno: 115787 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-12-27 18:16:05 -0800 message: Add missing custom :versions, plus small fixes * emacs-lisp/smie.el (smie-config): Add type, version, initialize. * bookmark.el (bookmark-bmenu-use-header-line): * doc-view.el (doc-view-scale-internally): * pcmpl-x.el (pcmpl-x-tlmgr-program, pcmpl-x-ack-program): * register.el (register-preview-delay): * net/shr.el (shr-bullet): * progmodes/cfengine.el (cfengine-cf-promises) (cfengine-parameters-indent): * progmodes/octave.el (inferior-octave-error-regexp-alist): * textmodes/reftex-vars.el (reftex-label-regexps): * vc/log-edit.el (log-edit-setup-add-author): Add version. * cedet/ede/linux.el (project-linux-build-directory-default) (project-linux-architecture-default): Fix custom types. Add version. * gnus/gnus-icalendar.el (gnus-icalendar-org, gnus-icalendar): * gnus/gnus-sum.el (gnus-subthread-sort-functions): Add version. * gnus/gnus-sync.el (gnus-sync-file-encrypt-to): Add type and version. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-28 01:24:15 +0000 +++ lisp/ChangeLog 2013-12-28 02:16:05 +0000 @@ -1,5 +1,17 @@ 2013-12-28 Glenn Morris + * emacs-lisp/smie.el (smie-config): Add type, version, initialize. + * bookmark.el (bookmark-bmenu-use-header-line): + * doc-view.el (doc-view-scale-internally): + * pcmpl-x.el (pcmpl-x-tlmgr-program, pcmpl-x-ack-program): + * register.el (register-preview-delay): + * net/shr.el (shr-bullet): + * progmodes/cfengine.el (cfengine-cf-promises) + (cfengine-parameters-indent): + * progmodes/octave.el (inferior-octave-error-regexp-alist): + * textmodes/reftex-vars.el (reftex-label-regexps): + * vc/log-edit.el (log-edit-setup-add-author): Add version. + * net/tls.el (tls-certtool-program): Fix default value. * desktop.el (desktop-restore-in-current-display): === modified file 'lisp/bookmark.el' --- lisp/bookmark.el 2013-09-11 03:31:56 +0000 +++ lisp/bookmark.el 2013-12-28 02:16:05 +0000 @@ -130,8 +130,9 @@ :group 'bookmark) (defcustom bookmark-bmenu-use-header-line t - "Non-nil means to use an immovable header line, as opposed to inline -text at the top of the buffer." + "Non-nil means to use an immovable header line. +This is as opposed to inline text at the top of the buffer." + :version "24.4" :type 'boolean :group 'bookmark) === modified file 'lisp/cedet/ChangeLog' --- lisp/cedet/ChangeLog 2013-12-28 01:24:15 +0000 +++ lisp/cedet/ChangeLog 2013-12-28 02:16:05 +0000 @@ -1,7 +1,7 @@ 2013-12-28 Glenn Morris * ede/linux.el (project-linux-build-directory-default) - (project-linux-architecture-default): Fix custom types. + (project-linux-architecture-default): Fix custom types. Add version. 2013-12-12 David Engster === modified file 'lisp/cedet/ede/linux.el' --- lisp/cedet/ede/linux.el 2013-12-28 01:24:15 +0000 +++ lisp/cedet/ede/linux.el 2013-12-28 02:16:05 +0000 @@ -50,12 +50,14 @@ (defcustom project-linux-build-directory-default 'ask "Build directory." + :version "24.4" :group 'project-linux :type '(choice (const :tag "Same as source directory" same) (const :tag "Ask the user" ask))) (defcustom project-linux-architecture-default 'ask "Target architecture to assume when not auto-detected." + :version "24.4" :group 'project-linux :type '(choice (string :tag "Architecture name") (const :tag "Ask the user" ask))) === modified file 'lisp/doc-view.el' --- lisp/doc-view.el 2013-11-28 22:43:09 +0000 +++ lisp/doc-view.el 2013-12-28 02:16:05 +0000 @@ -198,6 +198,7 @@ If nil, the document is re-rendered every time the scaling factor is modified. This only has an effect if the image libraries linked with Emacs support scaling." + :version "24.4" :type 'boolean) (defcustom doc-view-image-width 850 === modified file 'lisp/emacs-lisp/smie.el' --- lisp/emacs-lisp/smie.el 2013-12-17 01:31:55 +0000 +++ lisp/emacs-lisp/smie.el 2013-12-28 02:16:05 +0000 @@ -1923,6 +1923,11 @@ where KIND and TOKEN are the elements passed to `smie-rules-function', NORMAL is the value returned by `smie-rules-function' and NEW is the value with which to replace it." + :version "24.4" + ;; FIXME improve value-type. + :type '(choice (const nil) + (alist :key-type symbol)) + :initialize 'custom-initialize-default :set #'smie-config--setter) (defun smie-config-local (rules) === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-12-28 01:24:15 +0000 +++ lisp/gnus/ChangeLog 2013-12-28 02:16:05 +0000 @@ -1,5 +1,9 @@ 2013-12-28 Glenn Morris + * gnus-icalendar.el (gnus-icalendar-org, gnus-icalendar): + * gnus-sum.el (gnus-subthread-sort-functions): Add version. + * gnus-sync.el (gnus-sync-file-encrypt-to): Add type and version. + * auth-source.el (auth-sources): * nnmairix.el (nnmairix-propagate-marks-upon-close): Fix custom types. === modified file 'lisp/gnus/gnus-icalendar.el' --- lisp/gnus/gnus-icalendar.el 2013-12-18 22:11:40 +0000 +++ lisp/gnus/gnus-icalendar.el 2013-12-28 02:16:05 +0000 @@ -1,6 +1,6 @@ ;;; gnus-icalendar.el --- reply to iCalendar meeting requests -;; Copyright (C) 2013 Free Software Foundation, Inc. +;; Copyright (C) 2013 Free Software Foundation, Inc. ;; Author: Jan Tatarik ;; Keywords: mail, icalendar, org @@ -344,6 +344,7 @@ (defgroup gnus-icalendar-org nil "Settings for Calendar Event gnus/org integration." + :version "24.4" :group 'gnus-icalendar :prefix "gnus-icalendar-org-") @@ -644,6 +645,7 @@ (defgroup gnus-icalendar nil "Settings for inline display of iCalendar invitations." + :version "24.4" :group 'gnus-article :prefix "gnus-icalendar-") === modified file 'lisp/gnus/gnus-sum.el' --- lisp/gnus/gnus-sum.el 2013-12-26 22:13:28 +0000 +++ lisp/gnus/gnus-sum.el 2013-12-28 02:16:05 +0000 @@ -897,6 +897,7 @@ "*List of functions used for sorting subthreads in the summary buffer. By default, subthreads are sorted the same as threads, i.e., according to the value of `gnus-thread-sort-functions'." + :version "24.4" :group 'gnus-summary-sort :type '(choice (const :tag "Sort subthreads like threads" gnus-thread-sort-functions) === modified file 'lisp/gnus/gnus-sync.el' --- lisp/gnus/gnus-sync.el 2013-01-02 16:13:04 +0000 +++ lisp/gnus/gnus-sync.el 2013-12-28 02:16:05 +0000 @@ -139,8 +139,9 @@ "Carrier for newsrc data") (defcustom gnus-sync-file-encrypt-to nil - "If non-nil, `epa-file-encrypt-to' is set from this for encrypting the Sync - file." + "If non-nil, set `epa-file-encrypt-to' from this for encrypting the Sync file." + :version "24.4" + :type '(choice string (repeat string)) :group 'gnus-sync) (defcustom gnus-sync-lesync-name (system-name) === modified file 'lisp/net/shr.el' --- lisp/net/shr.el 2013-12-27 15:43:54 +0000 +++ lisp/net/shr.el 2013-12-28 02:16:05 +0000 @@ -90,6 +90,7 @@ Alternative suggestions are: - \" \" - \" \"" + :version "24.4" :type 'string :group 'shr) === modified file 'lisp/pcmpl-x.el' --- lisp/pcmpl-x.el 2013-11-21 16:30:14 +0000 +++ lisp/pcmpl-x.el 2013-12-28 02:16:05 +0000 @@ -31,6 +31,7 @@ (defcustom pcmpl-x-tlmgr-program "tlmgr" "Name of the tlmgr program." + :version "24.4" :type 'file :group 'pcomplete) @@ -154,6 +155,7 @@ (executable-find "ack") "ack")) "Name of the ack program." + :version "24.4" :type 'file :group 'pcomplete) === modified file 'lisp/progmodes/cfengine.el' --- lisp/progmodes/cfengine.el 2013-12-28 01:24:15 +0000 +++ lisp/progmodes/cfengine.el 2013-12-28 02:16:05 +0000 @@ -80,6 +80,7 @@ Used for syntax discovery and checking. Set to nil to disable the `compile-command' override. In that case, the ElDoc support will use a fallback syntax definition." + :version "24.4" :group 'cfengine :type '(choice file (const nil))) @@ -138,7 +139,7 @@ perms => mog(\"600\", \"tzz\", \"tzz\"); } " - + :version "24.4" :group 'cfengine :type '(list (choice (const :tag "Anchor at beginning of promise" promise) === modified file 'lisp/progmodes/octave.el' --- lisp/progmodes/octave.el 2013-12-20 01:50:46 +0000 +++ lisp/progmodes/octave.el 2013-12-28 02:16:05 +0000 @@ -651,6 +651,7 @@ ("warning:\\s-*\\([^:\n]+\\):.*at line \\([0-9]+\\), column \\([0-9]+\\)" 1 2 3 1 1)) "Value for `compilation-error-regexp-alist' in inferior octave." + :version "24.4" :type '(repeat (choice (symbol :tag "Predefined symbol") (sexp :tag "Error specification"))) :group 'octave) === modified file 'lisp/register.el' --- lisp/register.el 2013-12-17 17:29:11 +0000 +++ lisp/register.el 2013-12-28 02:16:05 +0000 @@ -1,7 +1,6 @@ ;;; register.el --- register commands for Emacs -*- lexical-binding: t; -*- -;; Copyright (C) 1985, 1993-1994, 2001-2013 Free Software Foundation, -;; Inc. +;; Copyright (C) 1985, 1993-1994, 2001-2013 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal @@ -91,6 +90,7 @@ (defcustom register-preview-delay 1 "If non-nil delay in seconds to pop up the preview window." + :version "24.4" :type '(choice number (const :tag "Indefinitely" nil)) :group 'register) === modified file 'lisp/textmodes/reftex-vars.el' --- lisp/textmodes/reftex-vars.el 2013-12-28 01:24:15 +0000 +++ lisp/textmodes/reftex-vars.el 2013-12-28 02:16:05 +0000 @@ -878,6 +878,7 @@ When changed from Lisp, make sure to call `reftex-compile-variables' afterwards to make the change effective." + :version "24.4" :set (lambda (symbol value) (set symbol value) (when (fboundp 'reftex-compile-variables) === modified file 'lisp/vc/log-edit.el' --- lisp/vc/log-edit.el 2013-12-19 21:10:41 +0000 +++ lisp/vc/log-edit.el 2013-12-28 02:16:05 +0000 @@ -120,8 +120,9 @@ :type 'boolean) (defcustom log-edit-setup-add-author nil - "Non-nil means `log-edit' should add the `Author:' header when -its SETUP argument is non-nil." + "Non-nil means `log-edit' may add the `Author:' header. +This applies when its SETUP argument is non-nil." + :version "24.4" :group 'log-edit :type 'boolean :safe 'booleanp) ------------------------------------------------------------ revno: 115786 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-12-27 17:24:15 -0800 message: Misc small custom fixes The value of defcustom's const should not be quoted! * lisp/desktop.el (desktop-restore-in-current-display): * lisp/newcomment.el (comment-empty-lines): * lisp/progmodes/idlwave.el (idlwave-scan-all-buffers-for-routine-info) (idlwave-pad-keyword): * lisp/progmodes/tcl.el (tcl-tab-always-indent): * lisp/textmodes/reftex-vars.el (reftex-index-default-tag): * lisp/elec-pair.el (electric-pair-skip-whitespace): * lisp/progmodes/cfengine.el (cfengine-cf-promises): * lisp/cedet/ede/linux.el (project-linux-build-directory-default) (project-linux-architecture-default): * lisp/erc/erc-button.el (erc-button-alist): * lisp/gnus/auth-source.el (auth-sources): * lisp/gnus/nnmairix.el (nnmairix-propagate-marks-upon-close): * lisp/url/url-history.el (url-history-track): * lisp/url/url-vars.el (url-honor-refresh-requests): Fix custom types. * lisp/net/tls.el (tls-certtool-program): Fix default value. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-28 00:36:00 +0000 +++ lisp/ChangeLog 2013-12-28 01:24:15 +0000 @@ -1,5 +1,16 @@ 2013-12-28 Glenn Morris + * net/tls.el (tls-certtool-program): Fix default value. + + * desktop.el (desktop-restore-in-current-display): + * newcomment.el (comment-empty-lines): + * progmodes/idlwave.el (idlwave-scan-all-buffers-for-routine-info) + (idlwave-pad-keyword): + * progmodes/tcl.el (tcl-tab-always-indent): + * textmodes/reftex-vars.el (reftex-index-default-tag): + * elec-pair.el (electric-pair-skip-whitespace): + * progmodes/cfengine.el (cfengine-cf-promises): Fix custom types. + * emacs-lisp/authors.el (authors-ignored-files) (authors-valid-file-names, authors-renamed-files-alist): Additions. === modified file 'lisp/cedet/ChangeLog' --- lisp/cedet/ChangeLog 2013-12-12 21:33:06 +0000 +++ lisp/cedet/ChangeLog 2013-12-28 01:24:15 +0000 @@ -1,10 +1,14 @@ +2013-12-28 Glenn Morris + + * ede/linux.el (project-linux-build-directory-default) + (project-linux-architecture-default): Fix custom types. + 2013-12-12 David Engster - * semantic/analyze.el - (semantic-analyze-find-tag-sequence-default): Always add scope to - the local miniscope for each type. Otherwise, structure tags are - not analyzed correctly. Also, always search the extended - miniscope even when not dealing with types. + * semantic/analyze.el (semantic-analyze-find-tag-sequence-default): + Always add scope to the local miniscope for each type. Otherwise, + structure tags are not analyzed correctly. Also, always search + the extended miniscope even when not dealing with types. * semantic/ctxt.el (semantic-get-local-variables-default): Also try to parse local variables for buffers which are currently === modified file 'lisp/cedet/ede/linux.el' --- lisp/cedet/ede/linux.el 2013-12-12 21:33:06 +0000 +++ lisp/cedet/ede/linux.el 2013-12-28 01:24:15 +0000 @@ -51,14 +51,14 @@ (defcustom project-linux-build-directory-default 'ask "Build directory." :group 'project-linux - :type '(choice (const :tag "Same as source directory" 'same) - (const :tag "Ask the user" 'ask))) + :type '(choice (const :tag "Same as source directory" same) + (const :tag "Ask the user" ask))) (defcustom project-linux-architecture-default 'ask "Target architecture to assume when not auto-detected." :group 'project-linux :type '(choice (string :tag "Architecture name") - (const :tag "Ask the user" 'ask))) + (const :tag "Ask the user" ask))) (defcustom project-linux-compile-target-command (concat ede-make-command " -k -C %s SUBDIRS=%s") === modified file 'lisp/desktop.el' --- lisp/desktop.el 2013-12-16 21:48:51 +0000 +++ lisp/desktop.el 2013-12-28 01:24:15 +0000 @@ -383,7 +383,7 @@ If `delete', frames on other displays are deleted instead of restored." :type '(choice (const :tag "Restore in current display" t) (const :tag "Restore in original display" nil) - (const :tag "Delete frames in other displays" 'delete)) + (const :tag "Delete frames in other displays" delete)) :group 'desktop :version "24.4") === modified file 'lisp/elec-pair.el' --- lisp/elec-pair.el 2013-12-27 12:53:57 +0000 +++ lisp/elec-pair.el 2013-12-28 01:24:15 +0000 @@ -138,7 +138,7 @@ :group 'electricity :type '(choice (const :tag "Yes, jump over whitespace" t) - (const :tag "Yes, and delete whitespace" 'chomp) + (const :tag "Yes, and delete whitespace" chomp) (const :tag "No, no whitespace skipping" nil) function)) === modified file 'lisp/erc/ChangeLog' --- lisp/erc/ChangeLog 2013-11-25 03:25:13 +0000 +++ lisp/erc/ChangeLog 2013-12-28 01:24:15 +0000 @@ -1,3 +1,7 @@ +2013-12-28 Glenn Morris + + * erc-button.el (erc-button-alist): Fix custom type. + 2013-11-25 Glenn Morris * erc-button.el (erc-nick-popup): Make `nick' available in the === modified file 'lisp/erc/erc-button.el' --- lisp/erc/erc-button.el 2013-11-25 03:25:13 +0000 +++ lisp/erc/erc-button.el 2013-12-28 01:24:15 +0000 @@ -189,7 +189,7 @@ (choice :tag "Matches" regexp (variable :tag "Variable containing regexp") - (const :tag "Nicknames" 'nicknames)) + (const :tag "Nicknames" nicknames)) (integer :tag "Number of the regexp section that matches") (choice :tag "When to buttonize" (const :tag "Always" t) === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-12-26 22:13:28 +0000 +++ lisp/gnus/ChangeLog 2013-12-28 01:24:15 +0000 @@ -1,3 +1,9 @@ +2013-12-28 Glenn Morris + + * auth-source.el (auth-sources): + * nnmairix.el (nnmairix-propagate-marks-upon-close): + Fix custom types. + 2013-12-26 Lars Ingebrigtsen * gnus-sum.el (gnus-summary-respool-query): Special-case nnimap so that === modified file 'lisp/gnus/auth-source.el' --- lisp/gnus/auth-source.el 2013-07-06 12:49:38 +0000 +++ lisp/gnus/auth-source.el 2013-12-28 01:24:15 +0000 @@ -251,7 +251,7 @@ :type `(repeat :tag "Authentication Sources" (choice (string :tag "Just a file") - (const :tag "Default Secrets API Collection" 'default) + (const :tag "Default Secrets API Collection" default) (const :tag "Login Secrets API Collection" "secrets:Login") (const :tag "Temp Secrets API Collection" "secrets:session") @@ -270,7 +270,7 @@ (const :format "" :value :secrets) (choice :tag "Collection to use" (string :tag "Collection name") - (const :tag "Default" 'default) + (const :tag "Default" default) (const :tag "Login" "Login") (const :tag "Temporary" "session"))) @@ -280,14 +280,14 @@ :value :macos-keychain-internet) (choice :tag "Collection to use" (string :tag "internet Keychain path") - (const :tag "default" 'default))) + (const :tag "default" default))) (list :tag "Mac OS generic Keychain" (const :format "" :value :macos-keychain-generic) (choice :tag "Collection to use" (string :tag "generic Keychain path") - (const :tag "default" 'default)))) + (const :tag "default" default)))) (repeat :tag "Extra Parameters" :inline t (choice :tag "Extra parameter" (list === modified file 'lisp/gnus/nnmairix.el' --- lisp/gnus/nnmairix.el 2013-01-01 09:11:05 +0000 +++ lisp/gnus/nnmairix.el 2013-12-28 01:24:15 +0000 @@ -308,13 +308,13 @@ (defcustom nnmairix-propagate-marks-upon-close t "Flag if marks should be propagated upon closing a group. -The default of this variable is t. If set to 'ask, the +The default of this variable is t. If set to 'ask, the user will be asked if the flags should be propagated when the group is closed. If set to nil, the user will have to manually call 'nnmairix-propagate-marks'." :version "23.1" :type '(choice (const :tag "always" t) - (const :tag "ask" 'ask) + (const :tag "ask" ask) (const :tag "never" nil)) :group 'nnmairix) === modified file 'lisp/net/tls.el' --- lisp/net/tls.el 2013-06-05 15:03:37 +0000 +++ lisp/net/tls.el 2013-12-28 01:24:15 +0000 @@ -168,8 +168,8 @@ :version "23.1" ;; No Gnus :group 'tls) -(defcustom tls-certtool-program (executable-find "certtool") - "Name of GnuTLS certtool. +(defcustom tls-certtool-program "certtool" + "Name of GnuTLS certtool. Used by `tls-certificate-information'." :version "22.1" :type 'string === modified file 'lisp/newcomment.el' --- lisp/newcomment.el 2013-10-05 23:40:16 +0000 +++ lisp/newcomment.el 2013-12-28 01:24:15 +0000 @@ -312,7 +312,7 @@ terminated by the end of line (i.e. `comment-end' is empty)." :type '(choice (const :tag "Never" nil) (const :tag "Always" t) - (const :tag "EOl-terminated" 'eol)) + (const :tag "EOl-terminated" eol)) :group 'comment) ;;;; === modified file 'lisp/play/bubbles.el' --- lisp/play/bubbles.el 2013-09-12 05:32:57 +0000 +++ lisp/play/bubbles.el 2013-12-28 01:24:15 +0000 @@ -211,7 +211,7 @@ Available modes are `shift-default' and `shift-always'." :type '(radio (const :tag "Default" default) (const :tag "Shifter" always) - ;;(const :tag "Mega Shifter" 'mega) + ;;(const :tag "Mega Shifter" mega) ) :group 'bubbles) === modified file 'lisp/progmodes/cfengine.el' --- lisp/progmodes/cfengine.el 2013-12-16 15:49:25 +0000 +++ lisp/progmodes/cfengine.el 2013-12-28 01:24:15 +0000 @@ -81,10 +81,10 @@ the `compile-command' override. In that case, the ElDoc support will use a fallback syntax definition." :group 'cfengine - :type 'file) + :type '(choice file (const nil))) (defcustom cfengine-parameters-indent '(promise pname 0) - "*Indentation of CFEngine3 promise parameters (hanging indent). + "Indentation of CFEngine3 promise parameters (hanging indent). For example, say you have this code: === modified file 'lisp/progmodes/idlwave.el' --- lisp/progmodes/idlwave.el 2013-06-19 07:21:59 +0000 +++ lisp/progmodes/idlwave.el 2013-12-28 01:24:15 +0000 @@ -381,7 +381,7 @@ :type '(choice (const :tag "No buffer" nil) (const :tag "All buffers" t) - (const :tag "Current buffer only" 'current))) + (const :tag "Current buffer only" current))) (defcustom idlwave-query-shell-for-routine-info t "Non-nil means query the shell for info about compiled routines. @@ -776,7 +776,7 @@ :type '(choice (const :tag "Pad like assignments" t) (const :tag "Remove space near `='" nil) - (const :tag "Keep space near `='" 'keep))) + (other :tag "Keep space near `='" keep))) (defcustom idlwave-show-block t "Non-nil means point blinks to block beginning for `idlwave-show-begin'." === modified file 'lisp/progmodes/tcl.el' --- lisp/progmodes/tcl.el 2013-05-30 03:20:56 +0000 +++ lisp/progmodes/tcl.el 2013-12-28 01:24:15 +0000 @@ -151,7 +151,7 @@ 6. Move backward to start of comment, indenting if necessary." :type '(choice (const :tag "Always" t) (const :tag "Beginning only" nil) - (const :tag "Maybe move or make or delete comment" 'tcl)) + (other :tag "Maybe move or make or delete comment" tcl)) :group 'tcl) === modified file 'lisp/textmodes/reftex-vars.el' --- lisp/textmodes/reftex-vars.el 2013-12-18 11:52:49 +0000 +++ lisp/textmodes/reftex-vars.el 2013-12-28 01:24:15 +0000 @@ -1442,7 +1442,7 @@ :group 'reftex-index-support :type '(choice (const :tag "no default" nil) - (const :tag "last used " 'last) + (const :tag "last used " last) (string :tag "index tag " "idx"))) (defcustom reftex-index-math-format "$%s$" === modified file 'lisp/url/ChangeLog' --- lisp/url/ChangeLog 2013-12-20 10:12:17 +0000 +++ lisp/url/ChangeLog 2013-12-28 01:24:15 +0000 @@ -1,3 +1,8 @@ +2013-12-28 Glenn Morris + + * url-history.el (url-history-track): + * url-vars.el (url-honor-refresh-requests): Fix custom types. + 2013-12-20 Leo Liu * url.el (url-retrieve-synchronously): Add optional arg SILENT and === modified file 'lisp/url/url-history.el' --- lisp/url/url-history.el 2013-01-01 09:11:05 +0000 +++ lisp/url/url-history.el 2013-12-28 01:24:15 +0000 @@ -44,7 +44,7 @@ (url-history-setup-save-timer))) :type '(choice (const :tag "off" nil) (const :tag "on" t) - (const :tag "within session" 'session)) + (other :tag "within session" session)) :group 'url-history) (defcustom url-history-file nil === modified file 'lisp/url/url-vars.el' --- lisp/url/url-vars.el 2013-09-13 07:01:55 +0000 +++ lisp/url/url-vars.el 2013-12-28 01:24:15 +0000 @@ -1,7 +1,6 @@ ;;; url-vars.el --- Variables for Uniform Resource Locator tool -;; Copyright (C) 1996-1999, 2001, 2004-2013 Free Software Foundation, -;; Inc. +;; Copyright (C) 1996-1999, 2001, 2004-2013 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia @@ -72,7 +71,7 @@ If non-nil and not t, the user will be asked for each refresh request." :type '(choice (const :tag "off" nil) (const :tag "on" t) - (const :tag "ask" 'ask)) + (other :tag "ask" ask)) :group 'url-hairy) (defcustom url-automatic-caching nil ------------------------------------------------------------ revno: 115785 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-12-27 16:48:28 -0800 message: Tweak previos change diff: === modified file 'doc/lispref/control.texi' --- doc/lispref/control.texi 2013-12-28 00:47:15 +0000 +++ doc/lispref/control.texi 2013-12-28 00:48:28 +0000 @@ -323,7 +323,7 @@ To give a more complex example, a simple interpreter for a little expression language could look like (note that this example requires -lexical-binding): +lexical binding): @example (defun evaluate (exp env) ------------------------------------------------------------ revno: 115784 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-12-27 16:47:15 -0800 message: * doc/lispref/control.texi (Pattern matching case statement): Brevity. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-12-27 03:38:26 +0000 +++ doc/lispref/ChangeLog 2013-12-28 00:47:15 +0000 @@ -1,3 +1,7 @@ +2013-12-28 Glenn Morris + + * control.texi (Pattern matching case statement): Brevity. + 2013-12-27 Chong Yidong * functions.texi (Function Cells): === modified file 'doc/lispref/control.texi' --- doc/lispref/control.texi 2013-12-25 09:12:24 +0000 +++ doc/lispref/control.texi 2013-12-28 00:47:15 +0000 @@ -322,7 +322,8 @@ was returned by @code{(get-return-code x)}. To give a more complex example, a simple interpreter for a little -expression language could look like: +expression language could look like (note that this example requires +lexical-binding): @example (defun evaluate (exp env) @@ -342,11 +343,6 @@ @code{(pred numberp)} is a pattern that simply checks that @code{exp} is a number, and @code{_} is the catch-all pattern that matches anything. -Note that the the lambda being the result of the @code{fn} clause is a -closure (@pxref{Closures}), so the file defining @code{evaluate} must -have lexical binding enabled (@pxref{Using Lexical Binding}, for how -to enable it). - Here are some sample programs including their evaluation results: @example ------------------------------------------------------------ revno: 115783 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-12-27 16:42:59 -0800 message: * doc/emacs/trouble.texi (Understanding Bug Reporting): Brevity. ChangeLog fix. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2013-12-27 20:58:21 +0000 +++ doc/emacs/ChangeLog 2013-12-28 00:42:59 +0000 @@ -1,3 +1,7 @@ +2013-12-28 Glenn Morris + + * trouble.texi (Understanding Bug Reporting): Brevity. + 2013-12-27 Jarek Czekalski * mini.texi (Completion Options): Add a link to Shell Options. @@ -5,8 +9,8 @@ shell-completion-fignore from Shell Mode to Shell Options. 2013-12-26 João Távora - * emacs.texi (Matching): Describe new features of Electric Pair - mode. + + * emacs.texi (Matching): Describe new features of Electric Pair mode. 2013-12-25 Chong Yidong === modified file 'doc/emacs/trouble.texi' --- doc/emacs/trouble.texi 2013-12-24 08:33:02 +0000 +++ doc/emacs/trouble.texi 2013-12-28 00:42:59 +0000 @@ -631,12 +631,8 @@ have---but, as before, please stick to the raw facts about what you did to trigger the bug the first time. - Please do not stack multiple issues into one report unless it is -really necessary. For example, jamming @code{electric-indent-mode} -and @code{electric-pair-mode} into one report, reporting multiple key -binding problems into one report (e.g., @kbd{C-i} doesn't indent the -current line, @code{M-h} doesn't set mark, etc.). Please make one -report for each individual problem. + If you have multiple issues that you want to report, please make a +separate bug report for each. @node Checklist @subsection Checklist for Bug Reports === modified file 'etc/ChangeLog' --- etc/ChangeLog 2013-12-26 22:02:49 +0000 +++ etc/ChangeLog 2013-12-28 00:42:59 +0000 @@ -1,4 +1,5 @@ -2013-12-26 João Távora +2013-12-26 João Távora + * NEWS: Describe new features of Electric Pair mode. 2013-12-23 Teodor Zlatanov ------------------------------------------------------------ revno: 115782 committer: Paul Eggert branch nick: trunk timestamp: Fri 2013-12-27 16:40:58 -0800 message: Fix problem with MAKE and xcrun configuration. * configure.ac: Don't set MAKE unless 'make' doesn't work. Set it only in the environment, not in the makefile. Problem reported by Glenn Morris in: http://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00969.html diff: === modified file 'ChangeLog' --- ChangeLog 2013-12-28 00:31:33 +0000 +++ ChangeLog 2013-12-28 00:40:58 +0000 @@ -1,3 +1,11 @@ +2013-12-28 Paul Eggert + + Fix problem with MAKE and xcrun configuration. + * configure.ac: Don't set MAKE unless 'make' doesn't work. + Set it only in the environment, not in the makefile. + Problem reported by Glenn Morris in: + http://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00969.html + 2013-12-27 Paul Eggert Port xcrun configuration to GNU/Linux. === modified file 'configure.ac' --- configure.ac 2013-12-27 19:14:10 +0000 +++ configure.ac 2013-12-28 00:40:58 +0000 @@ -85,8 +85,15 @@ xcsdkdir= AC_CHECK_PROGS(XCRUN, [xcrun]) if test -n "$XCRUN"; then - AC_CHECK_PROGS(MAKE, [make "$XCRUN make"]) - test -n "$MAKE" && export MAKE + if test -z "$MAKE"; then + dnl Call the variable MAKE_PROG, not MAKE, to avoid confusion with + dnl SET_MAKE and with the usual MAKE variable that 'make' itself uses. + AC_CHECK_PROG([MAKE_PROG], [make], [yes]) + if test -z "$MAKE_PROG"; then + MAKE="$XCRUN MAKE" + export MAKE + fi + fi xcsdkdir=`$XCRUN --show-sdk-path 2>/dev/null` fi ------------------------------------------------------------ revno: 115781 committer: Juanma Barranquero branch nick: trunk timestamp: Sat 2013-12-28 01:36:00 +0100 message: Fix ChangeLog typos. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-28 00:31:33 +0000 +++ lisp/ChangeLog 2013-12-28 00:36:00 +0000 @@ -167,7 +167,7 @@ * net/eww.el (eww-tag-select): Add text-property to jump to next select field. - (eww) : Add non-supported ftp error. + (eww): Add non-supported ftp error. 2013-12-22 Dmitry Gutov @@ -207,13 +207,13 @@ 2013-12-21 Kenjiro NAKAYAMA - * net/eww.el (eww-list-histories, eww-list-histories) + * net/eww.el (eww-list-histories, eww-list-histories) (eww-history-browse, eww-history-quit, eww-history-kill) (eww-history-mode-map, eww-history-mode): New command and functions to list browser histories. - (eww-form-text): Support text form with disabled - and readonly attributes. - (eww-checkbox-map): Fix wrong key bind to `eww-toggle-checkbox'. + (eww-form-text): Support text form with disabled + and readonly attributes. + (eww-checkbox-map): Fix wrong key bind to `eww-toggle-checkbox'. 2013-12-21 Rüdiger Sonderfeld @@ -550,7 +550,8 @@ 2013-12-18 Leo Liu - * eshell/em-prompt.el (eshell-emit-prompt): Fix last change. (Bug#16186) + * eshell/em-prompt.el (eshell-emit-prompt): Fix last change. + (Bug#16186) 2013-12-18 Eli Zaretskii @@ -872,7 +873,7 @@ * progmodes/python.el (python-pdbtrack-stacktrace-info-regexp): Also match after beginning of line. (python-pdbtrack-set-tracked-buffer): Fix logic for remote - files. Thanks to Russell Sim. (Bug#15378) + files. Thanks to Russell Sim. (Bug#15378) 2013-12-13 Juri Linkov @@ -887,7 +888,7 @@ 2013-12-12 Fabián Ezequiel Gallina * progmodes/python.el (python-indent-calculate-indentation): - Fix de-denters cornercase. (Bug#15731) + Fix de-denters cornercase. (Bug#15731) 2013-12-12 Stefan Monnier @@ -913,7 +914,7 @@ * progmodes/python.el (python-indent-context) (python-indent-calculate-indentation): Fix auto-identation - behavior for comment blocks. (Bug#15916) + behavior for comment blocks. (Bug#15916) 2013-12-12 Nathan Trapuzzano (tiny change) @@ -1726,8 +1727,8 @@ 2013-11-24 Jorgen Schaefer - * minibuffer.el (completion--in-region-1): Scroll the correct - window. (Bug#13898) + * minibuffer.el (completion--in-region-1): Scroll the correct window. + (Bug#13898) 2013-11-24 Bozhidar Batsov @@ -1810,7 +1811,7 @@ Add completion for command `ag'. * pcmpl-x.el (pcmpl-x-ag-options): New variable. (pcomplete/ag): New function. - (pcmpl-x-ag-options): New function. Handle `[no]' in long options. + (pcmpl-x-ag-options): New function. Handle `[no]' in long options. 2013-11-21 Stefan Monnier @@ -2200,7 +2201,7 @@ 2013-11-06 Leo Liu * thingatpt.el (thing-at-point-looking-at): Add optional arg - DISTANCE to bound the search. All uses changed. (Bug#15808) + DISTANCE to bound the search. All uses changed. (Bug#15808) 2013-11-06 Glenn Morris @@ -2873,7 +2874,8 @@ 2013-10-21 Dmitry Gutov - * progmodes/ruby-mode.el (ruby-smie-grammar): Add (almost) all infix operators. + * progmodes/ruby-mode.el (ruby-smie-grammar): + Add (almost) all infix operators. (ruby-smie--implicit-semi-p): Add new operator chars. * progmodes/ruby-mode.el (ruby-mode-map): Add binding for === modified file 'src/ChangeLog' --- src/ChangeLog 2013-12-27 20:58:21 +0000 +++ src/ChangeLog 2013-12-28 00:36:00 +0000 @@ -178,7 +178,7 @@ Remove font and color handling. (syms_of_nsterm): Defsym Qfile and Qurl. -2013-12-19 Anders Lindgren +2013-12-19 Anders Lindgren * nsterm.m (NSTRACE_SIZE, NSTRACE_RECT): New macros. (ns_constrain_all_frames, x_set_offset): Remove assignment to @@ -189,7 +189,7 @@ * nsterm.h (ns_output): Remove dont_constrain. -2013-12-19 Anders Lindgren +2013-12-19 Anders Lindgren * nsterm.m (mouseDown:): Generate HORIZ_WHEEL_EVENT. @@ -540,7 +540,7 @@ Avoid undefined behavior with huge regexp interval counts. * regex.c (GET_INTERVAL_COUNT): Rename from 'GET_UNSIGNED_NUMBER', - since it's now specialized to interval counts. All uses changed. + since it's now specialized to interval counts. All uses changed. Do not assume wrapraound on signed integer overflow. (regex_compile): Simplify based on the above changes. @@ -737,7 +737,7 @@ change_frame_size should already have done it. (x_new_font): Assign new tool- and menu-bar heights. (x_set_window_size_1): Account for tool- and menu-bar heights - (Bug#16013). Don't set pixel sizes since change_frame_size + (Bug#16013). Don't set pixel sizes since change_frame_size should already have done it. 2013-12-11 Paul Eggert @@ -1534,7 +1534,7 @@ 2013-11-20 Jan Djärv - * nsterm.m (init, run, stop:): Enable again. stop calls super stop + * nsterm.m (init, run, stop:): Enable again. stop calls super stop to handle dialogs. * nsterm.m (init, run, stop:): Comment out for now, does not work @@ -2319,7 +2319,7 @@ 2013-10-17 Barry O'Reilly Don't run timers in input-pending-p. Its new check-timers param - provides the prior behavior. (Bug#15045). + provides the prior behavior. (Bug#15045). * src/keyboard.c (Finput_pending_p): Accept optional check-timers param. @@ -3561,7 +3561,7 @@ (nsfont_open): Set font driver type. Set font->ascent and font->descent. Figure out font instead of ns_tmp_font, and flags instead of ns_tmp_flags. - Fix indentation. Remove call to ns_draw_text_decoration, + Fix indentation. Remove call to ns_draw_text_decoration, moved to nsterm. * nsfns.m: Include macfont.h. @@ -4168,7 +4168,7 @@ * nsterm.m (last_window): New variable. (EV_TRAILER2): New macro. (EV_TRAILER): Call EV_TRAILER2. - (mouseMoved:): Add support for mouse-autoselect-window + (mouseMoved:): Add support for mouse-autoselect-window on nextstep (Bug#6888). 2013-08-28 Andreas Schwab @@ -5486,7 +5486,7 @@ (handle_one_xevent, syms_of_xterm): Adjust users. (x_flush): Call XFlush once per each X display, not frame. This is better because this code always unconditionally skips - non-X frames in Vframe_list and issues the only XFlush if we + non-X frames in Vframe_list and issues the only XFlush if we have more than one X frame on the same X display. (any_help_event_p, x_draw_glyph_string_background, x_display_ok): Use bool for booleans. ------------------------------------------------------------ revno: 115780 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-12-27 16:31:33 -0800 message: authors.el updates and ChangeLog fixes * lisp/emacs-lisp/authors.el (authors-ignored-files) (authors-valid-file-names, authors-renamed-files-alist): Additions. diff: === modified file 'ChangeLog' --- ChangeLog 2013-12-27 19:14:10 +0000 +++ ChangeLog 2013-12-28 00:31:33 +0000 @@ -289,7 +289,7 @@ config.status computes it. * Makefile.in (epaths-force-w32): Move srcdir tweak here. - * autogen: Remove directory. Move update_autogen to admin/. + * autogen/: Remove directory. Move update_autogen to admin/. * autogen.sh: Remove reference to copy_autogen. * GNUmakefile (configure): * Makefile.in (bootstrap): Do not try to run copy_autogen. === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2013-12-23 12:50:47 +0000 +++ doc/misc/ChangeLog 2013-12-28 00:31:33 +0000 @@ -459,7 +459,7 @@ 2013-11-12 Kodi Arfer (tiny change) - * org.text (CSS support): Mention .figure-number, .listing-number, + * org.texi (CSS support): Mention .figure-number, .listing-number, and .table-number. 2013-11-12 Michael Brand === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-28 00:08:54 +0000 +++ lisp/ChangeLog 2013-12-28 00:31:33 +0000 @@ -1,3 +1,8 @@ +2013-12-28 Glenn Morris + + * emacs-lisp/authors.el (authors-ignored-files) + (authors-valid-file-names, authors-renamed-files-alist): Additions. + 2013-12-27 Jarek Czekalski * shell.el (shell-dynamic-complete-command): Doc fix. @@ -2415,7 +2420,7 @@ 2013-11-02 Dmitry Gutov - * progmodes/ruby-mode.el Use `syntax-propertize-function' + * progmodes/ruby-mode.el: Use `syntax-propertize-function' unconditionally. Remove now unnecessary forward declarations. Remove XEmacs-specific setup. (ruby-here-doc-end-re, ruby-here-doc-beg-match) === modified file 'lisp/emacs-lisp/authors.el' --- lisp/emacs-lisp/authors.el 2013-11-23 02:21:51 +0000 +++ lisp/emacs-lisp/authors.el 2013-12-28 00:31:33 +0000 @@ -288,6 +288,11 @@ ;; Autogen: "cus-load.el" "finder-inf.el" "ldefs-boot.el" "compile" "config.guess" "config.sub" "depcomp" + "autogen/compile" "autogen/config.guess" "autogen/config.in" + "autogen/config.sub" "autogen/depcomp" "autogen/install-sh" + "autogen/missing" "autogen" + "autogen/copy_autogen" ; not generated, but trivial and now removed + "dir_top" ;; Only existed briefly, then renamed: "images/icons/allout-widgets-dark-bg" "images/icons/allout-widgets-light-bg" @@ -572,6 +577,7 @@ "alloca.s" "make-delta" "config.w95" + "msysconfig.sh" "emacstool.1" "align.umax" "cxux-crt0.s" @@ -675,6 +681,12 @@ ("emacs.1" . "emacs.1") ("emacsclient.1" . "emacsclient.1") ("icons/emacs21.ico" . "emacs21.ico") + ("ja-dic" . "leim/ja-dic") + ("quail" . "leim/quail") + ;; Moved from autogen/ to admin/. + ("autogen/update_autogen" . "update_autogen") + ;; Moved from etc/ to admin/. + ("grammars" . "grammars") ;; Moved from admin/nt/ to nt/. ("nt/README.W32" . "README.W32") ) === modified file 'lisp/org/ChangeLog' --- lisp/org/ChangeLog 2013-12-23 03:59:10 +0000 +++ lisp/org/ChangeLog 2013-12-28 00:31:33 +0000 @@ -2826,7 +2826,7 @@ 2013-11-12 Craig Tanis (tiny change) - * ox-latex (org-latex-src-block): Change format string to position + * ox-latex.el (org-latex-src-block): Change format string to position caption after figure content. 2013-11-12 Eric Abrahamsen @@ -3276,7 +3276,7 @@ 2013-11-12 Ilya Zonov (tiny change) - * org-mode (org-mouse-context-menu): Add a correct newtext + * org-mouse.el (org-mouse-context-menu): Add a correct newtext parameter for "All Set" and "All Clear" menu items. 2013-11-12 Ingo Lohmar (tiny change) ------------------------------------------------------------ revno: 115779 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-12-27 16:08:54 -0800 message: ChangeLog fixes diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-28 00:03:17 +0000 +++ lisp/ChangeLog 2013-12-28 00:08:54 +0000 @@ -1,8 +1,9 @@ 2013-12-27 Jarek Czekalski - * shell.el Shell completion now matches executable filenames from - the current buffer's directory, on systems in which this behaviour - is the default (windows-nt, ms-dos). + * shell.el (shell-dynamic-complete-command): Doc fix. + (shell--command-completion-data): Shell completion now matches + executable filenames from the current buffer's directory, on + systems in which this behaviour is the default (windows-nt, ms-dos). 2013-12-27 Lars Ingebrigtsen @@ -157,7 +158,7 @@ * indent.el (indent-rigidly): Use substitute-command-keys. -2013-12-22 Kenjiro NAKAYAMA +2013-12-22 Kenjiro NAKAYAMA * net/eww.el (eww-tag-select): Add text-property to jump to next select field. @@ -199,7 +200,7 @@ * simple.el (newline): Doc fix. -2013-12-21 Kenjiro NAKAYAMA +2013-12-21 Kenjiro NAKAYAMA * net/eww.el (eww-list-histories, eww-list-histories) (eww-history-browse, eww-history-quit, eww-history-kill) ------------------------------------------------------------ revno: 115778 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-12-27 16:04:56 -0800 message: * test/automated/electric-tests.el: Require 'elec-pair. Set copyright holder to FSF. diff: === modified file 'test/ChangeLog' --- test/ChangeLog 2013-12-27 18:05:03 +0000 +++ test/ChangeLog 2013-12-28 00:04:56 +0000 @@ -1,10 +1,14 @@ +2013-12-28 Glenn Morris + + * automated/electric-tests.el: Require 'elec-pair. + 2013-12-26 João Távora - * automated/electric-tests.el (electric-pair-test-for): Fix - autowrapping tests in batch-mode by running with + + * automated/electric-tests.el (electric-pair-test-for): + Fix autowrapping tests in batch-mode by running with `transient-mark-mode' set to `lambda'. -2013-12-26 João Távora - * automated/electric-tests.el: Add tests for Electric Pair mode. + * automated/electric-tests.el: New file. 2013-12-25 Fabián Ezequiel Gallina === modified file 'test/automated/electric-tests.el' --- test/automated/electric-tests.el 2013-12-27 18:05:03 +0000 +++ test/automated/electric-tests.el 2013-12-28 00:04:56 +0000 @@ -1,6 +1,6 @@ ;;; electric-tests.el --- tests for electric.el -;; Copyright (C) 2013 João Távora +;; Copyright (C) 2013 Free Software Foundation, Inc. ;; Author: João Távora ;; Keywords: @@ -18,15 +18,16 @@ ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . -;;; Commentary: Tests for Electric Pair mode. -;;; TODO: Add tests for other Electric-* functionality +;;; Commentary: -;; +;; Tests for Electric Pair mode. +;; TODO: Add tests for other Electric-* functionality ;;; Code: (require 'ert) (require 'ert-x) (require 'electric) +(require 'elec-pair) (require 'cl-lib) (defun call-with-saved-electric-modes (fn) ------------------------------------------------------------ revno: 115777 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-12-27 16:03:17 -0800 message: Revert unnecessary earlier change diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-27 20:58:21 +0000 +++ lisp/ChangeLog 2013-12-28 00:03:17 +0000 @@ -4,10 +4,6 @@ the current buffer's directory, on systems in which this behaviour is the default (windows-nt, ms-dos). -2013-12-27 Glenn Morris - - * emacs-lisp/lisp-mode.el (lisp-mode-variables): Unbreak bootstrap. - 2013-12-27 Lars Ingebrigtsen * net/shr.el (shr-insert): Don't infloop if the width is zero. === modified file 'lisp/emacs-lisp/lisp-mode.el' --- lisp/emacs-lisp/lisp-mode.el 2013-12-27 20:24:25 +0000 +++ lisp/emacs-lisp/lisp-mode.el 2013-12-28 00:03:17 +0000 @@ -474,10 +474,9 @@ . lisp-font-lock-syntactic-face-function))) (setq-local prettify-symbols-alist lisp--prettify-symbols-alist) ;; electric - (and elisp - (boundp 'electric-pair-text-pairs) - (setq-local electric-pair-text-pairs - (cons '(?\` . ?\') electric-pair-text-pairs))) + (when elisp + (setq-local electric-pair-text-pairs + (cons '(?\` . ?\') electric-pair-text-pairs))) (setq-local electric-pair-skip-whitespace 'chomp) (setq-local electric-pair-open-newline-between-pairs nil)) ------------------------------------------------------------ revno: 115776 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-12-27 19:00:54 -0500 message: Auto-commit of loaddefs files. diff: === modified file 'lisp/ldefs-boot.el' --- lisp/ldefs-boot.el 2013-12-01 11:22:43 +0000 +++ lisp/ldefs-boot.el 2013-12-28 00:00:54 +0000 @@ -238,8 +238,8 @@ ;;;*** -;;;### (autoloads nil "advice" "emacs-lisp/advice.el" (21032 23080 -;;;;;; 765139 0)) +;;;### (autoloads nil "advice" "emacs-lisp/advice.el" (21180 4150 +;;;;;; 280102 0)) ;;; Generated autoloads from emacs-lisp/advice.el (defvar ad-redefinition-action 'warn "\ @@ -1040,7 +1040,7 @@ ;;;*** -;;;### (autoloads nil "apropos" "apropos.el" (20991 31656 363459 +;;;### (autoloads nil "apropos" "apropos.el" (21169 33848 692645 ;;;;;; 0)) ;;; Generated autoloads from apropos.el @@ -1156,8 +1156,8 @@ ;;;*** -;;;### (autoloads nil "arc-mode" "arc-mode.el" (21123 58191 550148 -;;;;;; 88000)) +;;;### (autoloads nil "arc-mode" "arc-mode.el" (21168 62144 266424 +;;;;;; 0)) ;;; Generated autoloads from arc-mode.el (autoload 'archive-mode "arc-mode" "\ @@ -1656,7 +1656,7 @@ ;;;*** -;;;### (autoloads nil "autorevert" "autorevert.el" (21041 38058 75002 +;;;### (autoloads nil "autorevert" "autorevert.el" (21158 63543 410490 ;;;;;; 0)) ;;; Generated autoloads from autorevert.el @@ -2318,8 +2318,8 @@ ;;;*** -;;;### (autoloads nil "browse-url" "net/browse-url.el" (21032 23080 -;;;;;; 765139 0)) +;;;### (autoloads nil "browse-url" "net/browse-url.el" (21168 62144 +;;;;;; 266424 0)) ;;; Generated autoloads from net/browse-url.el (defvar browse-url-browser-function 'browse-url-default-browser "\ @@ -2876,7 +2876,7 @@ ;;;*** -;;;### (autoloads nil "calc" "calc/calc.el" (21128 42425 434886 0)) +;;;### (autoloads nil "calc" "calc/calc.el" (21172 10041 427978 0)) ;;; Generated autoloads from calc/calc.el (define-key ctl-x-map "*" 'calc-dispatch) @@ -3709,8 +3709,8 @@ ;;;*** -;;;### (autoloads nil "cfengine" "progmodes/cfengine.el" (21128 42425 -;;;;;; 434886 0)) +;;;### (autoloads nil "cfengine" "progmodes/cfengine.el" (21168 12983 +;;;;;; 828381 0)) ;;; Generated autoloads from progmodes/cfengine.el (push (purecopy '(cfengine 1 3)) package--builtin-versions) @@ -4215,7 +4215,7 @@ ;;;*** -;;;### (autoloads nil "comint" "comint.el" (21145 51520 109004 0)) +;;;### (autoloads nil "comint" "comint.el" (21172 10041 427978 0)) ;;; Generated autoloads from comint.el (defvar comint-output-filter-functions '(ansi-color-process-output comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt) "\ @@ -4348,8 +4348,8 @@ ;;;*** -;;;### (autoloads nil "compile" "progmodes/compile.el" (21131 18620 -;;;;;; 480626 0)) +;;;### (autoloads nil "compile" "progmodes/compile.el" (21166 57660 +;;;;;; 911600 0)) ;;; Generated autoloads from progmodes/compile.el (defvar compilation-mode-hook nil "\ @@ -5069,8 +5069,8 @@ ;;;*** -;;;### (autoloads nil "cua-base" "emulation/cua-base.el" (20992 52525 -;;;;;; 458637 0)) +;;;### (autoloads nil "cua-base" "emulation/cua-base.el" (21166 57660 +;;;;;; 911600 0)) ;;; Generated autoloads from emulation/cua-base.el (defvar cua-mode nil "\ @@ -5120,7 +5120,19 @@ ;;;*** -;;;### (autoloads nil "cus-edit" "cus-edit.el" (21024 28968 738399 +;;;### (autoloads nil "cua-rect" "emulation/cua-rect.el" (21166 57660 +;;;;;; 911600 0)) +;;; Generated autoloads from emulation/cua-rect.el + +(autoload 'cua-rectangle-mark-mode "cua-rect" "\ +Toggle the region as rectangular. +Activates the region if needed. Only lasts until the region is deactivated. + +\(fn &optional ARG)" t nil) + +;;;*** + +;;;### (autoloads nil "cus-edit" "cus-edit.el" (21169 33848 692645 ;;;;;; 0)) ;;; Generated autoloads from cus-edit.el @@ -5432,7 +5444,7 @@ ;;;*** -;;;### (autoloads nil "cus-theme" "cus-theme.el" (20841 12463 538770 +;;;### (autoloads nil "cus-theme" "cus-theme.el" (21169 33848 692645 ;;;;;; 0)) ;;; Generated autoloads from cus-theme.el @@ -5609,7 +5621,7 @@ ;;;*** -;;;### (autoloads nil "dbus" "net/dbus.el" (21032 23080 765139 0)) +;;;### (autoloads nil "dbus" "net/dbus.el" (21153 45624 746041 0)) ;;; Generated autoloads from net/dbus.el (autoload 'dbus-handle-event "dbus" "\ @@ -5749,8 +5761,8 @@ ;;;*** -;;;### (autoloads nil "debug" "emacs-lisp/debug.el" (21145 51520 -;;;;;; 109004 0)) +;;;### (autoloads nil "debug" "emacs-lisp/debug.el" (21162 14870 +;;;;;; 257953 0)) ;;; Generated autoloads from emacs-lisp/debug.el (setq debugger 'debug) @@ -5848,7 +5860,7 @@ ;;;*** -;;;### (autoloads nil "delsel" "delsel.el" (21104 56491 538513 0)) +;;;### (autoloads nil "delsel" "delsel.el" (21160 54638 30774 0)) ;;; Generated autoloads from delsel.el (defalias 'pending-delete-mode 'delete-selection-mode) @@ -5979,7 +5991,7 @@ ;;;*** -;;;### (autoloads nil "desktop" "desktop.el" (21082 29482 330637 +;;;### (autoloads nil "desktop" "desktop.el" (21168 12983 828381 ;;;;;; 0)) ;;; Generated autoloads from desktop.el @@ -6338,7 +6350,7 @@ ;;;*** -;;;### (autoloads nil "dired" "dired.el" (21105 26139 752484 0)) +;;;### (autoloads nil "dired" "dired.el" (21173 31085 798700 0)) ;;; Generated autoloads from dired.el (defvar dired-listing-switches (purecopy "-al") "\ @@ -6648,7 +6660,7 @@ ;;;*** -;;;### (autoloads nil "dnd" "dnd.el" (20709 26818 907104 0)) +;;;### (autoloads nil "dnd" "dnd.el" (21162 14870 257953 0)) ;;; Generated autoloads from dnd.el (defvar dnd-protocol-alist `((,(purecopy "^file:///") . dnd-open-local-file) (,(purecopy "^file://") . dnd-open-file) (,(purecopy "^file:") . dnd-open-local-file) (,(purecopy "^\\(https?\\|ftp\\|file\\|nfs\\)://") . dnd-open-file)) "\ @@ -7568,8 +7580,8 @@ ;;;*** -;;;### (autoloads nil "edebug" "emacs-lisp/edebug.el" (20996 49577 -;;;;;; 892030 0)) +;;;### (autoloads nil "edebug" "emacs-lisp/edebug.el" (21172 10041 +;;;;;; 427978 0)) ;;; Generated autoloads from emacs-lisp/edebug.el (defvar edebug-all-defs nil "\ @@ -8123,8 +8135,8 @@ ;;;*** -;;;### (autoloads nil "eldoc" "emacs-lisp/eldoc.el" (21041 38058 -;;;;;; 75002 0)) +;;;### (autoloads nil "eldoc" "emacs-lisp/eldoc.el" (21151 3895 80024 +;;;;;; 0)) ;;; Generated autoloads from emacs-lisp/eldoc.el (defvar eldoc-minor-mode-string (purecopy " ElDoc") "\ @@ -8179,6 +8191,42 @@ ;;;*** +;;;### (autoloads nil "elec-pair" "elec-pair.el" (21182 3308 974772 +;;;;;; 0)) +;;; Generated autoloads from elec-pair.el + +(defvar electric-pair-text-pairs '((34 . 34)) "\ +Alist of pairs that should always be used in comments and strings. + +Pairs of delimiters in this list are a fallback in case they have +no syntax relevant to `electric-pair-mode' in the syntax table +defined in `electric-pair-text-syntax-table'") + +(custom-autoload 'electric-pair-text-pairs "elec-pair" t) + +(defvar electric-pair-mode nil "\ +Non-nil if Electric-Pair mode is enabled. +See the command `electric-pair-mode' for a description of this minor mode. +Setting this variable directly does not take effect; +either customize it (see the info node `Easy Customization') +or call the function `electric-pair-mode'.") + +(custom-autoload 'electric-pair-mode "elec-pair" nil) + +(autoload 'electric-pair-mode "elec-pair" "\ +Toggle automatic parens pairing (Electric Pair mode). +With a prefix argument ARG, enable Electric Pair mode if ARG is +positive, and disable it otherwise. If called from Lisp, enable +the mode if ARG is omitted or nil. + +Electric Pair mode is a global minor mode. When enabled, typing +an open parenthesis automatically inserts the corresponding +closing parenthesis. (Likewise for brackets, etc.). + +\(fn &optional ARG)" t nil) + +;;;*** + ;;;### (autoloads nil "elide-head" "elide-head.el" (20709 26818 907104 ;;;;;; 0)) ;;; Generated autoloads from elide-head.el @@ -8231,7 +8279,7 @@ ;;;*** -;;;### (autoloads nil "elp" "emacs-lisp/elp.el" (20709 26818 907104 +;;;### (autoloads nil "elp" "emacs-lisp/elp.el" (21162 14870 257953 ;;;;;; 0)) ;;; Generated autoloads from emacs-lisp/elp.el @@ -8266,7 +8314,7 @@ ;;;*** -;;;### (autoloads nil "emacs-lock" "emacs-lock.el" (20933 31141 450159 +;;;### (autoloads nil "emacs-lock" "emacs-lock.el" (21148 27704 136341 ;;;;;; 0)) ;;; Generated autoloads from emacs-lock.el @@ -8294,8 +8342,8 @@ ;;;*** -;;;### (autoloads nil "emacsbug" "mail/emacsbug.el" (21048 11307 -;;;;;; 937592 0)) +;;;### (autoloads nil "emacsbug" "mail/emacsbug.el" (21168 62143 +;;;;;; 582255 88000)) ;;; Generated autoloads from mail/emacsbug.el (autoload 'report-emacs-bug "emacsbug" "\ @@ -8607,7 +8655,7 @@ ;;;*** -;;;### (autoloads nil "epa-file" "epa-file.el" (21102 14759 136845 +;;;### (autoloads nil "epa-file" "epa-file.el" (21149 48568 226247 ;;;;;; 0)) ;;; Generated autoloads from epa-file.el @@ -9253,7 +9301,7 @@ ;;;*** -;;;### (autoloads nil "ert" "emacs-lisp/ert.el" (21112 43970 768678 +;;;### (autoloads nil "ert" "emacs-lisp/ert.el" (21170 54711 780344 ;;;;;; 0)) ;;; Generated autoloads from emacs-lisp/ert.el @@ -10002,7 +10050,7 @@ ;;;*** -;;;### (autoloads nil "eww" "net/eww.el" (21141 54458 609734 0)) +;;;### (autoloads nil "eww" "net/eww.el" (21180 4150 280102 0)) ;;; Generated autoloads from net/eww.el (autoload 'eww "eww" "\ @@ -10011,6 +10059,7 @@ word(s) will be searched for via `eww-search-prefix'. \(fn URL)" t nil) + (defalias 'browse-web 'eww) (autoload 'eww-open-file "eww" "\ Render a file using EWW. @@ -10115,7 +10164,7 @@ ;;;*** -;;;### (autoloads nil "f90" "progmodes/f90.el" (20992 52525 458637 +;;;### (autoloads nil "f90" "progmodes/f90.el" (21176 7093 848315 ;;;;;; 0)) ;;; Generated autoloads from progmodes/f90.el @@ -10183,7 +10232,7 @@ ;;;*** -;;;### (autoloads nil "face-remap" "face-remap.el" (21082 29482 330637 +;;;### (autoloads nil "face-remap" "face-remap.el" (21176 7093 848315 ;;;;;; 0)) ;;; Generated autoloads from face-remap.el @@ -11001,16 +11050,17 @@ ;;;*** -;;;### (autoloads nil "flymake" "progmodes/flymake.el" (21019 11047 -;;;;;; 84796 0)) +;;;### (autoloads nil "flymake" "progmodes/flymake.el" (21156 21817 +;;;;;; 133919 0)) ;;; Generated autoloads from progmodes/flymake.el (push (purecopy '(flymake 0 3)) package--builtin-versions) (autoload 'flymake-mode "flymake" "\ -Toggle on-the-fly syntax checking. -With a prefix argument ARG, enable the mode if ARG is positive, -and disable it otherwise. If called from Lisp, enable the mode -if ARG is omitted or nil. +Toggle Flymake mode on or off. +With a prefix argument ARG, enable Flymake mode if ARG is +positive, and disable it otherwise. If called from Lisp, enable +the mode if ARG is omitted or nil, and toggle it if ARG is `toggle'. +\\{flymake-mode-map} \(fn &optional ARG)" t nil) @@ -11528,8 +11578,8 @@ ;;;*** -;;;### (autoloads nil "gdb-mi" "progmodes/gdb-mi.el" (21129 63287 -;;;;;; 644820 0)) +;;;### (autoloads nil "gdb-mi" "progmodes/gdb-mi.el" (21148 27704 +;;;;;; 136341 0)) ;;; Generated autoloads from progmodes/gdb-mi.el (defvar gdb-enable-debug nil "\ @@ -11757,7 +11807,7 @@ ;;;*** -;;;### (autoloads nil "gnus" "gnus/gnus.el" (21002 1963 769129 0)) +;;;### (autoloads nil "gnus" "gnus/gnus.el" (21180 4150 280102 0)) ;;; Generated autoloads from gnus/gnus.el (push (purecopy '(gnus 5 13)) package--builtin-versions) (when (fboundp 'custom-autoload) @@ -11898,8 +11948,8 @@ ;;;*** -;;;### (autoloads nil "gnus-art" "gnus/gnus-art.el" (21141 54458 -;;;;;; 609734 0)) +;;;### (autoloads nil "gnus-art" "gnus/gnus-art.el" (21172 10041 +;;;;;; 427978 0)) ;;; Generated autoloads from gnus/gnus-art.el (autoload 'gnus-article-prepare-display "gnus-art" "\ @@ -12112,8 +12162,8 @@ ;;;*** -;;;### (autoloads nil "gnus-group" "gnus/gnus-group.el" (21104 56491 -;;;;;; 538513 0)) +;;;### (autoloads nil "gnus-group" "gnus/gnus-group.el" (21172 10041 +;;;;;; 427978 0)) ;;; Generated autoloads from gnus/gnus-group.el (autoload 'gnus-fetch-group "gnus-group" "\ @@ -12285,8 +12335,8 @@ ;;;*** -;;;### (autoloads nil "gnus-msg" "gnus/gnus-msg.el" (20974 22577 -;;;;;; 548213 0)) +;;;### (autoloads nil "gnus-msg" "gnus/gnus-msg.el" (21157 42680 +;;;;;; 708839 0)) ;;; Generated autoloads from gnus/gnus-msg.el (autoload 'gnus-msg-mail "gnus-msg" "\ @@ -12465,8 +12515,8 @@ ;;;*** -;;;### (autoloads nil "gnus-spec" "gnus/gnus-spec.el" (21042 58928 -;;;;;; 39127 0)) +;;;### (autoloads nil "gnus-spec" "gnus/gnus-spec.el" (21172 10041 +;;;;;; 427978 0)) ;;; Generated autoloads from gnus/gnus-spec.el (autoload 'gnus-update-format "gnus-spec" "\ @@ -12487,8 +12537,8 @@ ;;;*** -;;;### (autoloads nil "gnus-sum" "gnus/gnus-sum.el" (21048 47760 -;;;;;; 436258 0)) +;;;### (autoloads nil "gnus-sum" "gnus/gnus-sum.el" (21181 25015 +;;;;;; 517479 0)) ;;; Generated autoloads from gnus/gnus-sum.el (autoload 'gnus-summary-bookmark-jump "gnus-sum" "\ @@ -12526,7 +12576,7 @@ ;;;*** -;;;### (autoloads nil "gnutls" "net/gnutls.el" (21049 14338 391345 +;;;### (autoloads nil "gnutls" "net/gnutls.el" (21177 27957 288172 ;;;;;; 0)) ;;; Generated autoloads from net/gnutls.el @@ -12629,7 +12679,7 @@ ;;;*** -;;;### (autoloads nil "grep" "progmodes/grep.el" (20896 36774 886399 +;;;### (autoloads nil "grep" "progmodes/grep.el" (21173 31085 798700 ;;;;;; 0)) ;;; Generated autoloads from progmodes/grep.el @@ -12895,7 +12945,8 @@ ;;;*** -;;;### (autoloads nil "gv" "emacs-lisp/gv.el" (21114 9531 52922 0)) +;;;### (autoloads nil "gv" "emacs-lisp/gv.el" (21168 12983 828381 +;;;;;; 0)) ;;; Generated autoloads from emacs-lisp/gv.el (autoload 'gv-get "gv" "\ @@ -12989,6 +13040,9 @@ (autoload 'gv-ref "gv" "\ Return a reference to PLACE. This is like the `&' operator of the C language. +Note: this only works reliably with lexical binding mode, except for very +simple PLACEs such as (function-symbol 'foo) which will also work in dynamic +binding mode. \(fn PLACE)" nil t) @@ -13211,7 +13265,7 @@ ;;;*** -;;;### (autoloads nil "help-fns" "help-fns.el" (20924 16196 967284 +;;;### (autoloads nil "help-fns" "help-fns.el" (21156 21817 133919 ;;;;;; 0)) ;;; Generated autoloads from help-fns.el @@ -13306,7 +13360,7 @@ ;;;*** -;;;### (autoloads nil "help-mode" "help-mode.el" (21048 47760 436258 +;;;### (autoloads nil "help-mode" "help-mode.el" (21170 54711 780344 ;;;;;; 0)) ;;; Generated autoloads from help-mode.el @@ -13516,7 +13570,7 @@ ;;;*** -;;;### (autoloads nil "hi-lock" "hi-lock.el" (20908 27948 216644 +;;;### (autoloads nil "hi-lock" "hi-lock.el" (21173 31085 798700 ;;;;;; 0)) ;;; Generated autoloads from hi-lock.el @@ -13611,7 +13665,7 @@ (autoload 'hi-lock-line-face-buffer "hi-lock" "\ Set face of all lines containing a match of REGEXP to FACE. Interactively, prompt for REGEXP then FACE. Use -`hi-lock-read-regexp-defaults-function' to retrieve default +`read-regexp-defaults-function' to customize default value(s) of REGEXP. Use the global history list for FACE. Use Font lock mode, if enabled, to highlight REGEXP. Otherwise, @@ -13625,8 +13679,8 @@ (autoload 'hi-lock-face-buffer "hi-lock" "\ Set face of each match of REGEXP to FACE. Interactively, prompt for REGEXP then FACE. Use -`hi-lock-read-regexp-defaults-function' to retrieve default -value(s) REGEXP. Use the global history list for FACE. +`read-regexp-defaults-function' to customize default +value(s) of REGEXP. Use the global history list for FACE. Use Font lock mode, if enabled, to highlight REGEXP. Otherwise, use overlays for highlighting. If overlays are used, the @@ -13639,7 +13693,7 @@ (autoload 'hi-lock-face-phrase-buffer "hi-lock" "\ Set face of each match of phrase REGEXP to FACE. Interactively, prompt for REGEXP then FACE. Use -`hi-lock-read-regexp-defaults-function' to retrieve default +`read-regexp-defaults-function' to customize default value(s) of REGEXP. Use the global history list for FACE. When called interactively, replace whitespace in user provided regexp with arbitrary whitespace and make initial lower-case letters @@ -13655,7 +13709,7 @@ (autoload 'hi-lock-face-symbol-at-point "hi-lock" "\ Set face of each match of the symbol at point. -Use `find-tag-default-as-regexp' to retrieve the symbol at point. +Use `find-tag-default-as-symbol-regexp' to retrieve the symbol at point. Use non-nil `hi-lock-auto-select-face' to retrieve the next face from `hi-lock-face-defaults' automatically. @@ -13959,7 +14013,7 @@ ;;;*** -;;;### (autoloads nil "hl-line" "hl-line.el" (20992 52525 458637 +;;;### (autoloads nil "hl-line" "hl-line.el" (21172 10041 427978 ;;;;;; 0)) ;;; Generated autoloads from hl-line.el @@ -14386,7 +14440,7 @@ ;;;*** -;;;### (autoloads nil "icomplete" "icomplete.el" (21091 44456 774347 +;;;### (autoloads nil "icomplete" "icomplete.el" (21182 3308 974772 ;;;;;; 0)) ;;; Generated autoloads from icomplete.el @@ -14864,7 +14918,7 @@ ;;;*** -;;;### (autoloads nil "ielm" "ielm.el" (21089 2732 351717 0)) +;;;### (autoloads nil "ielm" "ielm.el" (21172 10041 427978 0)) ;;; Generated autoloads from ielm.el (autoload 'ielm "ielm" "\ @@ -15945,7 +15999,7 @@ ;;;*** -;;;### (autoloads nil "isearchb" "isearchb.el" (20709 26818 907104 +;;;### (autoloads nil "isearchb" "isearchb.el" (21172 10041 427978 ;;;;;; 0)) ;;; Generated autoloads from isearchb.el (push (purecopy '(isearchb 1 5)) package--builtin-versions) @@ -16293,7 +16347,7 @@ ;;;*** -;;;### (autoloads nil "iswitchb" "iswitchb.el" (21120 48308 922449 +;;;### (autoloads nil "iswitchb" "iswitchb.el" (21162 14870 257953 ;;;;;; 0)) ;;; Generated autoloads from iswitchb.el @@ -16421,7 +16475,7 @@ ;;;*** -;;;### (autoloads nil "js" "progmodes/js.el" (21139 12727 345232 +;;;### (autoloads nil "js" "progmodes/js.el" (21157 42680 708839 ;;;;;; 0)) ;;; Generated autoloads from progmodes/js.el (push (purecopy '(js 9)) package--builtin-versions) @@ -16541,7 +16595,7 @@ ;;;*** -;;;### (autoloads nil "kmacro" "kmacro.el" (21056 5418 85093 0)) +;;;### (autoloads nil "kmacro" "kmacro.el" (21176 7093 848315 0)) ;;; Generated autoloads from kmacro.el (global-set-key "\C-x(" 'kmacro-start-macro) (global-set-key "\C-x)" 'kmacro-end-macro) @@ -16955,7 +17009,7 @@ ;;;*** -;;;### (autoloads nil "log-edit" "vc/log-edit.el" (21147 6837 926168 +;;;### (autoloads nil "log-edit" "vc/log-edit.el" (21172 10041 427978 ;;;;;; 0)) ;;; Generated autoloads from vc/log-edit.el @@ -17093,7 +17147,7 @@ ;;;*** -;;;### (autoloads nil "ls-lisp" "ls-lisp.el" (21048 11307 937592 +;;;### (autoloads nil "ls-lisp" "ls-lisp.el" (21170 54711 780344 ;;;;;; 0)) ;;; Generated autoloads from ls-lisp.el @@ -17472,8 +17526,8 @@ ;;;*** -;;;### (autoloads nil "make-mode" "progmodes/make-mode.el" (20924 -;;;;;; 16196 967284 0)) +;;;### (autoloads nil "make-mode" "progmodes/make-mode.el" (21169 +;;;;;; 33848 692645 0)) ;;; Generated autoloads from progmodes/make-mode.el (autoload 'makefile-mode "make-mode" "\ @@ -17713,7 +17767,7 @@ ;;;*** -;;;### (autoloads nil "message" "gnus/message.el" (21132 39477 543900 +;;;### (autoloads nil "message" "gnus/message.el" (21149 48568 226247 ;;;;;; 0)) ;;; Generated autoloads from gnus/message.el @@ -18215,7 +18269,7 @@ ;;;*** -;;;### (autoloads nil "misearch" "misearch.el" (20721 17977 14204 +;;;### (autoloads nil "misearch" "misearch.el" (21160 18870 883359 ;;;;;; 0)) ;;; Generated autoloads from misearch.el (add-hook 'isearch-mode-hook 'multi-isearch-setup) @@ -19379,8 +19433,8 @@ ;;;*** -;;;### (autoloads nil "octave" "progmodes/octave.el" (21135 48053 -;;;;;; 151871 0)) +;;;### (autoloads nil "octave" "progmodes/octave.el" (21172 10041 +;;;;;; 427978 0)) ;;; Generated autoloads from progmodes/octave.el (autoload 'octave-mode "octave" "\ @@ -19391,6 +19445,11 @@ for solving linear and nonlinear problems numerically. Function definitions can also be stored in files and used in batch mode. +See Info node `(octave-mode) Using Octave Mode' for more details. + +Key bindings: +\\{octave-mode-map} + \(fn)" t nil) (autoload 'inferior-octave "octave" "\ @@ -19454,7 +19513,7 @@ ;;;*** -;;;### (autoloads nil "org" "org/org.el" (21128 42425 434886 0)) +;;;### (autoloads nil "org" "org/org.el" (21176 7093 848315 0)) ;;; Generated autoloads from org/org.el (autoload 'org-babel-do-load-languages "org" "\ @@ -19675,8 +19734,8 @@ ;;;*** -;;;### (autoloads nil "org-agenda" "org/org-agenda.el" (21128 42425 -;;;;;; 434886 0)) +;;;### (autoloads nil "org-agenda" "org/org-agenda.el" (21153 57242 +;;;;;; 533082 0)) ;;; Generated autoloads from org/org-agenda.el (autoload 'org-toggle-sticky-agenda "org-agenda" "\ @@ -19893,6 +19952,11 @@ \(fn &rest ARGS)" nil nil) +(autoload 'org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item "org-agenda" "\ +Do we have a reason to ignore this TODO entry because it has a time stamp? + +\(fn &optional END)" nil nil) + (autoload 'org-agenda-set-restriction-lock "org-agenda" "\ Set restriction lock for agenda, to current subtree or file. Restriction will be the file if TYPE is `file', or if type is the @@ -19987,16 +20051,36 @@ ;;;*** -;;;### (autoloads nil "org-colview" "org/org-colview.el" (21123 24503 -;;;;;; 570934 0)) +;;;### (autoloads nil "org-colview" "org/org-colview.el" (21153 57242 +;;;;;; 533082 0)) ;;; Generated autoloads from org/org-colview.el +(autoload 'org-columns-remove-overlays "org-colview" "\ +Remove all currently active column overlays. + +\(fn)" t nil) + +(autoload 'org-columns-get-format-and-top-level "org-colview" "\ + + +\(fn)" nil nil) + (autoload 'org-columns "org-colview" "\ Turn on column view on an org-mode file. When COLUMNS-FMT-STRING is non-nil, use it as the column format. \(fn &optional COLUMNS-FMT-STRING)" t nil) +(autoload 'org-columns-compute "org-colview" "\ +Sum the values of property PROPERTY hierarchically, for the entire buffer. + +\(fn PROPERTY)" t nil) + +(autoload 'org-columns-number-to-string "org-colview" "\ +Convert a computed column number to a string value, according to FMT. + +\(fn N FMT &optional PRINTF)" nil nil) + (autoload 'org-dblock-write:columnview "org-colview" "\ Write the column view table. PARAMS is a property list of parameters: @@ -20031,8 +20115,8 @@ ;;;*** -;;;### (autoloads nil "org-compat" "org/org-compat.el" (21123 24503 -;;;;;; 570934 0)) +;;;### (autoloads nil "org-compat" "org/org-compat.el" (21153 57242 +;;;;;; 533082 0)) ;;; Generated autoloads from org/org-compat.el (autoload 'org-check-version "org-compat" "\ @@ -20042,7 +20126,7 @@ ;;;*** -;;;### (autoloads nil "org-macs" "org/org-macs.el" (21123 24503 570934 +;;;### (autoloads nil "org-macs" "org/org-macs.el" (21153 57242 533082 ;;;;;; 0)) ;;; Generated autoloads from org/org-macs.el @@ -20136,8 +20220,8 @@ ;;;*** -;;;### (autoloads nil "package" "emacs-lisp/package.el" (21133 20713 -;;;;;; 577800 0)) +;;;### (autoloads nil "package" "emacs-lisp/package.el" (21165 36792 +;;;;;; 444792 0)) ;;; Generated autoloads from emacs-lisp/package.el (push (purecopy '(package 1 0 1)) package--builtin-versions) @@ -20209,7 +20293,7 @@ ;;;*** -;;;### (autoloads nil "paren" "paren.el" (20903 56815 695483 0)) +;;;### (autoloads nil "paren" "paren.el" (21162 60599 136523 0)) ;;; Generated autoloads from paren.el (defvar show-paren-mode nil "\ @@ -21861,8 +21945,8 @@ ;;;*** -;;;### (autoloads nil "python" "progmodes/python.el" (21144 30651 -;;;;;; 337793 0)) +;;;### (autoloads nil "python" "progmodes/python.el" (21181 25015 +;;;;;; 517479 0)) ;;; Generated autoloads from progmodes/python.el (push (purecopy '(python 0 24 2)) package--builtin-versions) @@ -22245,7 +22329,7 @@ ;;;*** -;;;### (autoloads nil "rcirc" "net/rcirc.el" (21113 26590 654875 +;;;### (autoloads nil "rcirc" "net/rcirc.el" (21168 62144 266424 ;;;;;; 0)) ;;; Generated autoloads from net/rcirc.el @@ -22330,7 +22414,7 @@ ;;;*** -;;;### (autoloads nil "rect" "rect.el" (21120 48308 922449 0)) +;;;### (autoloads nil "rect" "rect.el" (21166 57660 911600 0)) ;;; Generated autoloads from rect.el (autoload 'delete-rectangle "rect" "\ @@ -22634,8 +22718,8 @@ ;;;*** -;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (20895 -;;;;;; 15912 444844 0)) +;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (21170 +;;;;;; 54711 780344 0)) ;;; Generated autoloads from textmodes/reftex-vars.el (put 'reftex-vref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) (put 'reftex-fref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) @@ -22644,8 +22728,8 @@ ;;;*** -;;;### (autoloads nil "regexp-opt" "emacs-lisp/regexp-opt.el" (20709 -;;;;;; 26818 907104 0)) +;;;### (autoloads nil "regexp-opt" "emacs-lisp/regexp-opt.el" (21153 +;;;;;; 45624 746041 0)) ;;; Generated autoloads from emacs-lisp/regexp-opt.el (autoload 'regexp-opt "regexp-opt" "\ @@ -22740,7 +22824,7 @@ ;;;*** -;;;### (autoloads nil "repeat" "repeat.el" (20709 26818 907104 0)) +;;;### (autoloads nil "repeat" "repeat.el" (21176 7093 848315 0)) ;;; Generated autoloads from repeat.el (push (purecopy '(repeat 0 51)) package--builtin-versions) @@ -23366,8 +23450,8 @@ ;;;*** -;;;### (autoloads nil "ruby-mode" "progmodes/ruby-mode.el" (21135 -;;;;;; 48053 151871 0)) +;;;### (autoloads nil "ruby-mode" "progmodes/ruby-mode.el" (21176 +;;;;;; 7093 848315 0)) ;;; Generated autoloads from progmodes/ruby-mode.el (push (purecopy '(ruby-mode 1 2)) package--builtin-versions) @@ -23403,7 +23487,7 @@ ;;;*** -;;;### (autoloads nil "rx" "emacs-lisp/rx.el" (20709 26818 907104 +;;;### (autoloads nil "rx" "emacs-lisp/rx.el" (21177 27957 288172 ;;;;;; 0)) ;;; Generated autoloads from emacs-lisp/rx.el @@ -23419,7 +23503,7 @@ REGEXPS is a non-empty sequence of forms of the sort listed below. Note that `rx' is a Lisp macro; when used in a Lisp program being - compiled, the translation is performed by the compiler. +compiled, the translation is performed by the compiler. See `rx-to-string' for how to do such a translation at run-time. The following are valid subforms of regular expressions in sexp @@ -24399,8 +24483,8 @@ ;;;*** -;;;### (autoloads nil "sh-script" "progmodes/sh-script.el" (21118 -;;;;;; 6587 141205 0)) +;;;### (autoloads nil "sh-script" "progmodes/sh-script.el" (21173 +;;;;;; 31085 798700 0)) ;;; Generated autoloads from progmodes/sh-script.el (push (purecopy '(sh-script 2 0 6)) package--builtin-versions) (put 'sh-shell 'safe-local-variable 'symbolp) @@ -24553,7 +24637,7 @@ ;;;*** -;;;### (autoloads nil "shell" "shell.el" (21041 38058 75002 0)) +;;;### (autoloads nil "shell" "shell.el" (21182 3308 974772 0)) ;;; Generated autoloads from shell.el (defvar shell-dumb-shell-regexp (purecopy "cmd\\(proxy\\)?\\.exe") "\ @@ -24601,7 +24685,7 @@ ;;;*** -;;;### (autoloads nil "shr" "net/shr.el" (21049 14338 391345 0)) +;;;### (autoloads nil "shr" "net/shr.el" (21182 3308 974772 0)) ;;; Generated autoloads from net/shr.el (autoload 'shr-insert-document "shr" "\ @@ -24704,7 +24788,7 @@ ;;;*** -;;;### (autoloads nil "skeleton" "skeleton.el" (21087 47399 892476 +;;;### (autoloads nil "skeleton" "skeleton.el" (21172 10041 427978 ;;;;;; 0)) ;;; Generated autoloads from skeleton.el @@ -27956,8 +28040,8 @@ ;;;*** -;;;### (autoloads nil "todo-mode" "calendar/todo-mode.el" (20982 -;;;;;; 16679 447285 0)) +;;;### (autoloads nil "todo-mode" "calendar/todo-mode.el" (21176 +;;;;;; 7093 848315 0)) ;;; Generated autoloads from calendar/todo-mode.el (autoload 'todo-show "todo-mode" "\ @@ -28001,6 +28085,33 @@ \(fn &optional SOLICIT-FILE INTERACTIVE)" t nil) +(autoload 'todo-mode "todo-mode" "\ +Major mode for displaying, navigating and editing todo lists. + +\\{todo-mode-map} + +\(fn)" t nil) + +(autoload 'todo-archive-mode "todo-mode" "\ +Major mode for archived todo categories. + +\\{todo-archive-mode-map} + +\(fn)" t nil) + +(autoload 'todo-filtered-items-mode "todo-mode" "\ +Mode for displaying and reprioritizing top priority Todo. + +\\{todo-filtered-items-mode-map} + +\(fn)" t nil) + +(add-to-list 'auto-mode-alist '("\\.todo\\'" . todo-mode)) + +(add-to-list 'auto-mode-alist '("\\.toda\\'" . todo-archive-mode)) + +(add-to-list 'auto-mode-alist '("\\.tod[tyr]\\'" . todo-filtered-items-mode)) + ;;;*** ;;;### (autoloads nil "tool-bar" "tool-bar.el" (20709 26818 907104 @@ -28154,8 +28265,8 @@ ;;;*** -;;;### (autoloads nil "trace" "emacs-lisp/trace.el" (20903 10024 -;;;;;; 645978 0)) +;;;### (autoloads nil "trace" "emacs-lisp/trace.el" (21162 14870 +;;;;;; 257953 0)) ;;; Generated autoloads from emacs-lisp/trace.el (defvar trace-buffer "*trace-output*" "\ @@ -28679,7 +28790,7 @@ ;;;*** -;;;### (autoloads nil "url" "url/url.el" (20893 60586 188550 0)) +;;;### (autoloads nil "url" "url/url.el" (21172 10041 427978 0)) ;;; Generated autoloads from url/url.el (autoload 'url-retrieve "url" "\ @@ -28722,7 +28833,7 @@ associated with it (the case for dired, info, or mailto URLs that need no further processing). URL is either a string or a parsed URL. -\(fn URL)" nil nil) +\(fn URL &optional SILENT INHIBIT-COOKIES)" nil nil) ;;;*** @@ -29401,7 +29512,7 @@ ;;;*** -;;;### (autoloads nil "vc" "vc/vc.el" (21141 54458 609734 0)) +;;;### (autoloads nil "vc" "vc/vc.el" (21180 4150 280102 0)) ;;; Generated autoloads from vc/vc.el (defvar vc-checkout-hook nil "\ @@ -29809,7 +29920,7 @@ ;;;*** -;;;### (autoloads nil "vc-git" "vc/vc-git.el" (21139 12727 345232 +;;;### (autoloads nil "vc-git" "vc/vc-git.el" (21160 54638 30774 ;;;;;; 0)) ;;; Generated autoloads from vc/vc-git.el (defun vc-git-registered (file) @@ -31666,7 +31777,7 @@ ;;;*** -;;;### (autoloads nil "windmove" "windmove.el" (20709 26818 907104 +;;;### (autoloads nil "windmove" "windmove.el" (21163 20357 763056 ;;;;;; 0)) ;;; Generated autoloads from windmove.el @@ -32016,25 +32127,25 @@ ;;;;;; "emacs-lisp/byte-opt.el" "emacs-lisp/cl-extra.el" "emacs-lisp/cl-macs.el" ;;;;;; "emacs-lisp/cl-seq.el" "emacs-lisp/cl.el" "emacs-lisp/eieio-base.el" ;;;;;; "emacs-lisp/eieio-datadebug.el" "emacs-lisp/eieio-speedbar.el" -;;;;;; "emacs-lisp/find-gc.el" "emacs-lisp/gulp.el" "emacs-lisp/helpers.el" -;;;;;; "emacs-lisp/lisp-mnt.el" "emacs-lisp/package-x.el" "emacs-lisp/smie.el" +;;;;;; "emacs-lisp/find-gc.el" "emacs-lisp/gulp.el" "emacs-lisp/lisp-mnt.el" +;;;;;; "emacs-lisp/package-x.el" "emacs-lisp/smie.el" "emacs-lisp/subr-x.el" ;;;;;; "emacs-lisp/tcover-ses.el" "emacs-lisp/tcover-unsafep.el" -;;;;;; "emulation/cua-gmrk.el" "emulation/cua-rect.el" "emulation/edt-lk201.el" -;;;;;; "emulation/edt-mapper.el" "emulation/edt-pc.el" "emulation/edt-vt100.el" -;;;;;; "emulation/tpu-extras.el" "emulation/viper-cmd.el" "emulation/viper-ex.el" -;;;;;; "emulation/viper-init.el" "emulation/viper-keym.el" "emulation/viper-macs.el" -;;;;;; "emulation/viper-mous.el" "emulation/viper-util.el" "erc/erc-backend.el" -;;;;;; "erc/erc-goodies.el" "erc/erc-ibuffer.el" "eshell/em-alias.el" -;;;;;; "eshell/em-banner.el" "eshell/em-basic.el" "eshell/em-cmpl.el" -;;;;;; "eshell/em-dirs.el" "eshell/em-glob.el" "eshell/em-hist.el" -;;;;;; "eshell/em-ls.el" "eshell/em-pred.el" "eshell/em-prompt.el" -;;;;;; "eshell/em-rebind.el" "eshell/em-script.el" "eshell/em-smart.el" -;;;;;; "eshell/em-term.el" "eshell/em-tramp.el" "eshell/em-unix.el" -;;;;;; "eshell/em-xtra.el" "eshell/esh-arg.el" "eshell/esh-cmd.el" -;;;;;; "eshell/esh-ext.el" "eshell/esh-io.el" "eshell/esh-module.el" -;;;;;; "eshell/esh-opt.el" "eshell/esh-proc.el" "eshell/esh-util.el" -;;;;;; "eshell/esh-var.el" "ezimage.el" "format-spec.el" "fringe.el" -;;;;;; "generic-x.el" "gnus/compface.el" "gnus/gnus-async.el" "gnus/gnus-bcklg.el" +;;;;;; "emulation/cua-gmrk.el" "emulation/edt-lk201.el" "emulation/edt-mapper.el" +;;;;;; "emulation/edt-pc.el" "emulation/edt-vt100.el" "emulation/tpu-extras.el" +;;;;;; "emulation/viper-cmd.el" "emulation/viper-ex.el" "emulation/viper-init.el" +;;;;;; "emulation/viper-keym.el" "emulation/viper-macs.el" "emulation/viper-mous.el" +;;;;;; "emulation/viper-util.el" "erc/erc-backend.el" "erc/erc-goodies.el" +;;;;;; "erc/erc-ibuffer.el" "eshell/em-alias.el" "eshell/em-banner.el" +;;;;;; "eshell/em-basic.el" "eshell/em-cmpl.el" "eshell/em-dirs.el" +;;;;;; "eshell/em-glob.el" "eshell/em-hist.el" "eshell/em-ls.el" +;;;;;; "eshell/em-pred.el" "eshell/em-prompt.el" "eshell/em-rebind.el" +;;;;;; "eshell/em-script.el" "eshell/em-smart.el" "eshell/em-term.el" +;;;;;; "eshell/em-tramp.el" "eshell/em-unix.el" "eshell/em-xtra.el" +;;;;;; "eshell/esh-arg.el" "eshell/esh-cmd.el" "eshell/esh-ext.el" +;;;;;; "eshell/esh-io.el" "eshell/esh-module.el" "eshell/esh-opt.el" +;;;;;; "eshell/esh-proc.el" "eshell/esh-util.el" "eshell/esh-var.el" +;;;;;; "ezimage.el" "format-spec.el" "fringe.el" "generic-x.el" +;;;;;; "gnus/compface.el" "gnus/gnus-async.el" "gnus/gnus-bcklg.el" ;;;;;; "gnus/gnus-cite.el" "gnus/gnus-cus.el" "gnus/gnus-demon.el" ;;;;;; "gnus/gnus-dup.el" "gnus/gnus-eform.el" "gnus/gnus-ems.el" ;;;;;; "gnus/gnus-icalendar.el" "gnus/gnus-int.el" "gnus/gnus-logic.el" @@ -32145,8 +32256,8 @@ ;;;;;; "vc/ediff-ptch.el" "vc/ediff-vers.el" "vc/ediff-wind.el" ;;;;;; "vc/pcvs-info.el" "vc/pcvs-parse.el" "vc/pcvs-util.el" "vc/vc-dav.el" ;;;;;; "vcursor.el" "vt-control.el" "vt100-led.el" "w32-common-fns.el" -;;;;;; "w32-fns.el" "w32-vars.el" "x-dnd.el") (21147 7118 261519 -;;;;;; 169000)) +;;;;;; "w32-fns.el" "w32-vars.el" "x-dnd.el") (21182 5185 941179 +;;;;;; 157000)) ;;;*** ------------------------------------------------------------ revno: 115775 fixes bug: http://debbugs.gnu.org/15461 committer: Jarek Czekalski branch nick: emacs-bzr timestamp: Fri 2013-12-27 21:58:21 +0100 message: Shell completion for filenames from current directory, related docs. * lisp/shell.el Shell completion now matches executable filenames from the current buffer's directory, on systems in which this behaviour is the default (windows-nt, ms-dos). * src/callproc.c (Vexec_path): Document that exec-directory is in it. * doc/emacs/mini.texi (Completion Options): Add a link to Shell Options. * doc/emacs/misc.texi (Shell Mode): Move documentation of shell-completion-fignore from Shell Mode to Shell Options. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2013-12-26 22:02:49 +0000 +++ doc/emacs/ChangeLog 2013-12-27 20:58:21 +0000 @@ -1,3 +1,9 @@ +2013-12-27 Jarek Czekalski + + * mini.texi (Completion Options): Add a link to Shell Options. + * misc.texi (Shell Mode): Move documentation of + shell-completion-fignore from Shell Mode to Shell Options. + 2013-12-26 João Távora * emacs.texi (Matching): Describe new features of Electric Pair mode. === modified file 'doc/emacs/mini.texi' --- doc/emacs/mini.texi 2013-01-01 09:11:05 +0000 +++ doc/emacs/mini.texi 2013-12-27 20:58:21 +0000 @@ -550,6 +550,9 @@ disregards @code{completion-ignored-extensions} when showing completion alternatives in the completion list. + Shell completion is an extended version of filename completion, +@pxref{Shell Options}. + @vindex completion-auto-help If @code{completion-auto-help} is set to @code{nil}, the completion commands never display the completion list buffer; you must type === modified file 'doc/emacs/misc.texi' --- doc/emacs/misc.texi 2013-12-23 13:01:25 +0000 +++ doc/emacs/misc.texi 2013-12-27 20:58:21 +0000 @@ -677,20 +677,13 @@ @item @key{TAB} @kindex TAB @r{(Shell mode)} @findex completion-at-point +@cindex shell completion Complete the command name or file name before point in the shell buffer (@code{completion-at-point}). This uses the usual Emacs completion rules (@pxref{Completion}), with the completion alternatives being file names, environment variable names, the shell command history, and history references (@pxref{History References}). - -@vindex shell-completion-fignore -@vindex comint-completion-fignore -The variable @code{shell-completion-fignore} specifies a list of file -name extensions to ignore in Shell mode completion. The default -setting is @code{nil}, but some users prefer @code{("~" "#" "%")} to -ignore file names ending in @samp{~}, @samp{#} or @samp{%}. Other -related Comint modes use the variable @code{comint-completion-fignore} -instead. +For options controlling the completion, @pxref{Shell Options}. @item M-? @kindex M-? @r{(Shell mode)} @@ -1179,6 +1172,20 @@ If you set @code{shell-completion-execonly} to @code{nil}, it considers nonexecutable files as well. +@vindex shell-completion-fignore +@vindex comint-completion-fignore +The variable @code{shell-completion-fignore} specifies a list of file +name extensions to ignore in Shell mode completion. The default +setting is @code{nil}, but some users prefer @code{("~" "#" "%")} to +ignore file names ending in @samp{~}, @samp{#} or @samp{%}. Other +related Comint modes use the variable @code{comint-completion-fignore} +instead. + +@findex shell-dynamic-complete-command +Some implementation details of the shell command completion may also be found +in the lisp documentation of the @code{shell-dynamic-complete-command} +function. + @findex shell-pushd-tohome @findex shell-pushd-dextract @findex shell-pushd-dunique === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-27 20:24:25 +0000 +++ lisp/ChangeLog 2013-12-27 20:58:21 +0000 @@ -1,3 +1,9 @@ +2013-12-27 Jarek Czekalski + + * shell.el Shell completion now matches executable filenames from + the current buffer's directory, on systems in which this behaviour + is the default (windows-nt, ms-dos). + 2013-12-27 Glenn Morris * emacs-lisp/lisp-mode.el (lisp-mode-variables): Unbreak bootstrap. === modified file 'lisp/shell.el' --- lisp/shell.el 2013-09-12 05:40:50 +0000 +++ lisp/shell.el 2013-12-27 20:58:21 +0000 @@ -1108,12 +1108,13 @@ (defun shell-dynamic-complete-command () "Dynamically complete the command at point. This function is similar to `comint-dynamic-complete-filename', except that it -searches `exec-path' (minus the trailing Emacs library path) for completion +searches `exec-path' (minus trailing `exec-directory') for completion candidates. Note that this may not be the same as the shell's idea of the path. -Completion is dependent on the value of `shell-completion-execonly', plus -those that effect file completion. +Completion is dependent on the value of `shell-completion-execonly', +`shell-completion-fignore', plus those that affect file completion. See Info +node `Shell Options'. Returns t if successful." (interactive) @@ -1138,7 +1139,9 @@ (start (if (zerop (length filename)) (point) (match-beginning 0))) (end (if (zerop (length filename)) (point) (match-end 0))) (filenondir (file-name-nondirectory filename)) - (path-dirs (cdr (reverse exec-path))) ;FIXME: Why `cdr'? + ; why cdr? see `shell-dynamic-complete-command' + (path-dirs (append (cdr (reverse exec-path)) + (if (memq system-type '(windows-nt ms-dos)) '(".")))) (cwd (file-name-as-directory (expand-file-name default-directory))) (ignored-extensions (and comint-completion-fignore === modified file 'src/ChangeLog' --- src/ChangeLog 2013-12-27 10:43:11 +0000 +++ src/ChangeLog 2013-12-27 20:58:21 +0000 @@ -1,3 +1,7 @@ +2013-12-27 Jarek Czekalski + + * callproc.c (Vexec_path): Document that exec-directory is in it. + 2013-12-27 Steve Purcell (tiny change) * nsterm.m (syms_of_nsterm): Enable ns-use-srgb-colorspace by === modified file 'src/callproc.c' --- src/callproc.c 2013-12-18 20:36:50 +0000 +++ src/callproc.c 2013-12-27 20:58:21 +0000 @@ -1686,7 +1686,11 @@ DEFVAR_LISP ("exec-path", Vexec_path, doc: /* List of directories to search programs to run in subprocesses. -Each element is a string (directory name) or nil (try default directory). */); +Each element is a string (directory name) or nil (try default directory). + +By default the last element of this list is `exec-directory'. The +last element is not always used, for example in shell completion +(`shell-dynamic-complete-command'). */); DEFVAR_LISP ("exec-suffixes", Vexec_suffixes, doc: /* List of suffixes to try to find executable file names. ------------------------------------------------------------ revno: 115774 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-12-27 12:24:25 -0800 message: * lisp/emacs-lisp/lisp-mode.el (lisp-mode-variables): Unbreak bootstrap. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-27 15:43:54 +0000 +++ lisp/ChangeLog 2013-12-27 20:24:25 +0000 @@ -1,3 +1,7 @@ +2013-12-27 Glenn Morris + + * emacs-lisp/lisp-mode.el (lisp-mode-variables): Unbreak bootstrap. + 2013-12-27 Lars Ingebrigtsen * net/shr.el (shr-insert): Don't infloop if the width is zero. === modified file 'lisp/emacs-lisp/lisp-mode.el' --- lisp/emacs-lisp/lisp-mode.el 2013-12-26 22:02:49 +0000 +++ lisp/emacs-lisp/lisp-mode.el 2013-12-27 20:24:25 +0000 @@ -474,9 +474,10 @@ . lisp-font-lock-syntactic-face-function))) (setq-local prettify-symbols-alist lisp--prettify-symbols-alist) ;; electric - (when elisp - (setq-local electric-pair-text-pairs - (cons '(?\` . ?\') electric-pair-text-pairs))) + (and elisp + (boundp 'electric-pair-text-pairs) + (setq-local electric-pair-text-pairs + (cons '(?\` . ?\') electric-pair-text-pairs))) (setq-local electric-pair-skip-whitespace 'chomp) (setq-local electric-pair-open-newline-between-pairs nil)) ------------------------------------------------------------ revno: 115773 committer: Paul Eggert branch nick: trunk timestamp: Fri 2013-12-27 11:14:10 -0800 message: Port xcrun configuration to GNU/Linux. * configure.ac (xcsdkdir): Default to empty. (XCRUN): Don't require Darwin for xcrun. Move xcrun checking to just before AM_INIT_AUTOMAKE, to make the dependency between it and automake clearer. (CC): Don't use AC_PROG_CC twice; only the first use expands to the shell code that is wanted, which breaks 'configure' on non-Darwin platforms. Instead, fix CC by hand if it's not found. diff: === modified file 'ChangeLog' --- ChangeLog 2013-12-27 16:57:52 +0000 +++ ChangeLog 2013-12-27 19:14:10 +0000 @@ -1,3 +1,14 @@ +2013-12-27 Paul Eggert + + Port xcrun configuration to GNU/Linux. + * configure.ac (xcsdkdir): Default to empty. + (XCRUN): Don't require Darwin for xcrun. Move xcrun checking to + just before AM_INIT_AUTOMAKE, to make the dependency between it + and automake clearer. + (CC): Don't use AC_PROG_CC twice; only the first use expands to the + shell code that is wanted, which breaks 'configure' on non-Darwin + platforms. Instead, fix CC by hand if it's not found. + 2013-12-27 Jan Djärv * configure.ac: Detect xcrun on OSX and use it for make, gcc and === modified file 'configure.ac' --- configure.ac 2013-12-27 16:57:52 +0000 +++ configure.ac 2013-12-27 19:14:10 +0000 @@ -39,18 +39,6 @@ esac fi -case "`uname 2>/dev/null`" in - *Darwin*) - xcsdkdir= - AC_CHECK_PROGS(XCRUN, [xcrun]) - if test x"$XCRUN" != x; then - AC_CHECK_PROGS(MAKE, [make "$XCRUN make"]) - export MAKE - xcsdkdir="`$XCRUN --show-sdk-path 2>/dev/null`" - fi - ;; -esac - dnl Set emacs_config_options to the options of 'configure', quoted for the shell, dnl and then quoted again for a C string. Separate options with spaces. dnl Add some environment variables, if they were passed via the environment @@ -93,6 +81,15 @@ AC_CONFIG_HEADERS(src/config.h:src/config.in) AC_CONFIG_SRCDIR(src/lisp.h) AC_CONFIG_AUX_DIR(build-aux) + +xcsdkdir= +AC_CHECK_PROGS(XCRUN, [xcrun]) +if test -n "$XCRUN"; then + AC_CHECK_PROGS(MAKE, [make "$XCRUN make"]) + test -n "$MAKE" && export MAKE + xcsdkdir=`$XCRUN --show-sdk-path 2>/dev/null` +fi + dnl Fairly arbitrary, older versions might work too. AM_INIT_AUTOMAKE(1.11) @@ -650,12 +647,17 @@ #### Choose a compiler. dnl Sets GCC=yes if using gcc. -if test x$opsys = xdarwin && test x"$XCRUN" != x; then - AC_PROG_CC([gcc cc cl clang "$XCRUN gcc" "$XCRUN clang"]) +AC_PROG_CC +if test -n "$XCRUN"; then + if test -z "$CC"; then + if $XCRUN gcc --version >/dev/null 2>&1; then + CC="$XCRUN gcc" + elif $XCRUN clang --version >/dev/null 2>&1; then + CC="$XCRUN clang" + fi + fi AC_CHECK_PROGS(AR, [ar "$XCRUN ar"]) - test x"$AR" != x && export AR -else - AC_PROG_CC + test -n "$AR" && export AR fi AM_PROG_CC_C_O @@ -3293,7 +3295,7 @@ # Built-in libxml2 on OS X 10.8 lacks libxml-2.0.pc. if test "${HAVE_LIBXML2}" != "yes" -a "$opsys" = "darwin"; then SAVE_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -I$xcsdkdir/usr/include/libxml2" + CPPFLAGS="$CPPFLAGS -I'$xcsdkdir/usr/include/libxml2'" AC_CHECK_HEADER(libxml/HTMLparser.h, [AC_CHECK_DECL(HTML_PARSE_RECOVER, HAVE_LIBXML2=yes, , [#include ])]) ------------------------------------------------------------ revno: 115772 committer: João Távora branch nick: trunk timestamp: Fri 2013-12-27 18:05:03 +0000 message: Fix Electric Pair mode's autowrapping tests in batch-mode. diff: === modified file 'test/ChangeLog' --- test/ChangeLog 2013-12-26 22:02:49 +0000 +++ test/ChangeLog 2013-12-27 18:05:03 +0000 @@ -1,4 +1,9 @@ -2013-12-26 João Távora +2013-12-26 João Távora + * automated/electric-tests.el (electric-pair-test-for): Fix + autowrapping tests in batch-mode by running with + `transient-mark-mode' set to `lambda'. + +2013-12-26 João Távora * automated/electric-tests.el: Add tests for Electric Pair mode. 2013-12-25 Fabián Ezequiel Gallina === modified file 'test/automated/electric-tests.el' --- test/automated/electric-tests.el 2013-12-26 22:02:49 +0000 +++ test/automated/electric-tests.el 2013-12-27 18:05:03 +0000 @@ -52,7 +52,8 @@ (funcall mode) (insert fixture) (save-electric-modes - (let ((last-command-event char)) + (let ((last-command-event char) + (transient-mark-mode 'lambda)) (goto-char where) (funcall fixture-fn) (cl-progv ------------------------------------------------------------ revno: 115771 committer: Jan D. branch nick: trunk timestamp: Fri 2013-12-27 17:57:52 +0100 message: * configure.ac: Detect xcrun on OSX and use it for make, gcc and libxml. diff: === modified file 'ChangeLog' --- ChangeLog 2013-12-26 08:57:28 +0000 +++ ChangeLog 2013-12-27 16:57:52 +0000 @@ -1,3 +1,8 @@ +2013-12-27 Jan Djärv + + * configure.ac: Detect xcrun on OSX and use it for make, gcc and + libxml. + 2013-12-26 Paul Eggert Fix core dumps with gcc -fsanitize=address and GNU/Linux. === modified file 'configure.ac' --- configure.ac 2013-12-26 08:57:28 +0000 +++ configure.ac 2013-12-27 16:57:52 +0000 @@ -39,6 +39,18 @@ esac fi +case "`uname 2>/dev/null`" in + *Darwin*) + xcsdkdir= + AC_CHECK_PROGS(XCRUN, [xcrun]) + if test x"$XCRUN" != x; then + AC_CHECK_PROGS(MAKE, [make "$XCRUN make"]) + export MAKE + xcsdkdir="`$XCRUN --show-sdk-path 2>/dev/null`" + fi + ;; +esac + dnl Set emacs_config_options to the options of 'configure', quoted for the shell, dnl and then quoted again for a C string. Separate options with spaces. dnl Add some environment variables, if they were passed via the environment @@ -638,7 +650,13 @@ #### Choose a compiler. dnl Sets GCC=yes if using gcc. -AC_PROG_CC +if test x$opsys = xdarwin && test x"$XCRUN" != x; then + AC_PROG_CC([gcc cc cl clang "$XCRUN gcc" "$XCRUN clang"]) + AC_CHECK_PROGS(AR, [ar "$XCRUN ar"]) + test x"$AR" != x && export AR +else + AC_PROG_CC +fi AM_PROG_CC_C_O if test x$GCC = xyes; then @@ -3275,14 +3293,14 @@ # Built-in libxml2 on OS X 10.8 lacks libxml-2.0.pc. if test "${HAVE_LIBXML2}" != "yes" -a "$opsys" = "darwin"; then SAVE_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2" + CPPFLAGS="$CPPFLAGS -I$xcsdkdir/usr/include/libxml2" AC_CHECK_HEADER(libxml/HTMLparser.h, [AC_CHECK_DECL(HTML_PARSE_RECOVER, HAVE_LIBXML2=yes, , [#include ])]) CPPFLAGS="$SAVE_CPPFLAGS" if test "${HAVE_LIBXML2}" = "yes"; then + LIBXML2_CFLAGS="-I'$xcsdkdir/usr/include/libxml2'" LIBXML2_LIBS="-lxml2" - LIBXML2_CFLAGS="-I/usr/include/libxml2" fi fi if test "${HAVE_LIBXML2}" = "yes"; then ------------------------------------------------------------ revno: 115770 committer: Lars Ingebrigtsen branch nick: trunk timestamp: Fri 2013-12-27 16:43:54 +0100 message: * net/shr.el (shr-insert): Don't infloop if the width is zero. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-27 12:55:26 +0000 +++ lisp/ChangeLog 2013-12-27 15:43:54 +0000 @@ -1,3 +1,7 @@ +2013-12-27 Lars Ingebrigtsen + + * net/shr.el (shr-insert): Don't infloop if the width is zero. + 2013-12-27 Stefan Monnier * icomplete.el (icomplete-show-matches-on-no-input): Default to nil === modified file 'lisp/net/shr.el' --- lisp/net/shr.el 2013-12-27 02:58:16 +0000 +++ lisp/net/shr.el 2013-12-27 15:43:54 +0000 @@ -456,6 +456,7 @@ (setq shr-state nil) (let (found) (while (and (> (current-column) shr-width) + (> shr-width 0) (progn (setq found (shr-find-fill-point)) (not (eolp)))) ------------------------------------------------------------ revno: 115769 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16251 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2013-12-27 07:55:26 -0500 message: * lisp/icomplete.el (icomplete-show-matches-on-no-input): Default to nil. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-27 12:53:57 +0000 +++ lisp/ChangeLog 2013-12-27 12:55:26 +0000 @@ -1,5 +1,8 @@ 2013-12-27 Stefan Monnier + * icomplete.el (icomplete-show-matches-on-no-input): Default to nil + (bug#16251). + * electric.el: Move all electric-pair-* to elec-pair.el. * elec-pair.el: New file, split from electric.el. === modified file 'lisp/icomplete.el' --- lisp/icomplete.el 2013-12-24 03:48:55 +0000 +++ lisp/icomplete.el 2013-12-27 12:55:26 +0000 @@ -78,7 +78,7 @@ :type 'boolean :version "24.4") -(defcustom icomplete-show-matches-on-no-input t +(defcustom icomplete-show-matches-on-no-input nil "When non-nil, show completions when first prompting for input." :type 'boolean :version "24.4") ------------------------------------------------------------ revno: 115768 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2013-12-27 07:53:57 -0500 message: * lisp/electric.el: Move all electric-pair-* to elec-pair.el. * lisp/elec-pair.el: New file, split from electric.el. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-27 02:58:16 +0000 +++ lisp/ChangeLog 2013-12-27 12:53:57 +0000 @@ -1,3 +1,8 @@ +2013-12-27 Stefan Monnier + + * electric.el: Move all electric-pair-* to elec-pair.el. + * elec-pair.el: New file, split from electric.el. + 2013-12-27 Lars Ingebrigtsen * net/shr.el (shr-find-fill-point): Don't try to fill if the @@ -8,26 +13,25 @@ (shr-find-fill-point): Off by one error in comparison with the indentation. -2013-12-26 João Távora +2013-12-26 João Távora * electric.el (electric-pair-mode): More flexible engine for skip- - and inhibit predicates, new options for pairing-related - functionality. + and inhibit predicates, new options for pairing-related functionality. (electric-pair-preserve-balance): Pair/skip parentheses and quotes if that keeps or improves their balance in buffers. (electric-pair-delete-adjacent-pairs): Delete the pair when backspacing over adjacent matched delimiters. (electric-pair-open-extra-newline): Open extra newline when inserting newlines between adjacent matched delimiters. - (electric--sort-post-self-insertion-hook): Sort - post-self-insert-hook according to priority values when + (electric--sort-post-self-insertion-hook): + Sort post-self-insert-hook according to priority values when minor-modes are activated. * simple.el (newline-and-indent): Call newline with interactive set to t. (blink-paren-post-self-insert-function): Set priority to 100. - * emacs-lisp/lisp-mode.el (lisp-mode-variables): Use - electric-pair-text-pairs to pair backtick-and-quote in strings and - comments. Locally set electric-pair-skip-whitespace to 'chomp and + * emacs-lisp/lisp-mode.el (lisp-mode-variables): + Use electric-pair-text-pairs to pair backtick-and-quote in strings and + comments. Locally set electric-pair-skip-whitespace to 'chomp and electric-pair-open-newline-between-pairs to nil. 2013-12-26 Fabián Ezequiel Gallina @@ -64,8 +68,8 @@ (Bug#16191). (python-nav-backward-sexp, python-nav-forward-sexp-safe) (python-nav-backward-sexp-safe): New functions. - (python-shell-buffer-substring): Use - `python-nav-forward-sexp-safe'. + (python-shell-buffer-substring): + Use `python-nav-forward-sexp-safe'. 2013-12-25 Lars Ingebrigtsen @@ -73,8 +77,7 @@ quotation mark. (shr-char-kinsoku-bol-p): The quotation mark isn't a kinsoky BOL char. (shr-find-fill-point): Remove the special checks for the quotation - mark, since `shr-char-kinsoku-bol-p' should now return the right - thing. + mark, since `shr-char-kinsoku-bol-p' should now return the right thing. 2013-12-25 Kenjiro NAKAYAMA @@ -84,8 +87,8 @@ 2013-12-24 Fabián Ezequiel Gallina - * progmodes/python.el (python-nav-beginning-of-statement): Speed - up (Bug#15295). + * progmodes/python.el (python-nav-beginning-of-statement): + Speed up (Bug#15295). 2013-12-24 Lars Ingebrigtsen @@ -115,8 +118,7 @@ (icomplete-show-matches-on-no-input): New customizable variable. (icomplete-minibuffer-setup): Call `icomplete-exhibit' on setup if we have something to show. - (icomplete-exhibit): Compute completions even if we have no user - input. + (icomplete-exhibit): Compute completions even if we have no user input. 2013-12-23 Daniel Colascione @@ -146,7 +148,7 @@ * net/eww.el (eww-tag-select): Add text-property to jump to next select field. - (eww) : Add non-supported ftp error. + (eww) : Add non-supported ftp error. 2013-12-22 Dmitry Gutov @@ -156,8 +158,8 @@ 2013-12-22 Chong Yidong * faces.el (face-spec-recalc): If the theme specs are not - applicable to a frame, fall back on the defface spec. This - prevents themes from obliterating faces on low-color terminals. + applicable to a frame, fall back on the defface spec. + This prevents themes from obliterating faces on low-color terminals. 2013-12-22 Dmitry Gutov @@ -774,8 +776,10 @@ * emacs-lisp/package.el (package--prepare-dependencies): New function. (package-buffer-info): Use it (bug#15108). +2013-12-14 Stefan Monnier + * icomplete.el (icomplete-completions): Make sure the prefix is already - displayed elsewhere before hiding it. + displayed elsewhere before hiding it (bug#16219). 2013-12-14 Dmitry Gutov @@ -976,7 +980,7 @@ * bindings.el: Map kp keys to non-kp keys systematically with basic modifiers control, meta and shift. (Bug#14397) -2013-12-11 Kenjiro NAKAYAMA (tiny change) +2013-12-11 Kenjiro NAKAYAMA * net/eww.el (eww-mode-map): Instead of "Quit" show "Exit" and "Close browser" menu items. Fix wrong function of "List @@ -1593,10 +1597,10 @@ * leim/quail/uni-input.el (ucs-input-activate): Add autoload cookie. (generated-autoload-load-name): Set file-local value. -2013-11-26 Kenjiro NAKAYAMA (tiny change) +2013-11-26 Kenjiro NAKAYAMA * net/eww.el (eww-bookmark-browse): Use 'eww-browse-url'. - (eww-add-bookmark): Ask confirmation when add to bookmarks + (eww-add-bookmark): Ask confirmation when add to bookmarks. (eww-quit): Ask confirmation before quitting eww. 2013-11-26 Eli Zaretskii @@ -1777,7 +1781,7 @@ Add `octave-source-file'. (octave-source-file): New function. (Bug#15935) -2013-11-21 Kenjiro Nakayama (tiny change) +2013-11-21 Kenjiro Nakayama * net/eww.el (eww-local-regex): New variable. (eww): Use it to detect localhost and similar. === added file 'lisp/elec-pair.el' --- lisp/elec-pair.el 1970-01-01 00:00:00 +0000 +++ lisp/elec-pair.el 2013-12-27 12:53:57 +0000 @@ -0,0 +1,566 @@ +;;; elec-pair.el --- Automatic parenthesis pairing -*- lexical-binding:t -*- + +;; Copyright (C) 2013 Free Software Foundation, Inc. + +;; Author: João Távora + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . + +;;; Commentary: + +;;; Code: + +(require 'electric) + +;;; Electric pairing. + +(defcustom electric-pair-pairs + '((?\" . ?\")) + "Alist of pairs that should be used regardless of major mode. + +Pairs of delimiters in this list are a fallback in case they have +no syntax relevant to `electric-pair-mode' in the mode's syntax +table. + +See also the variable `electric-pair-text-pairs'." + :version "24.1" + :group 'electricity + :type '(repeat (cons character character))) + +;;;###autoload +(defcustom electric-pair-text-pairs + '((?\" . ?\" )) + "Alist of pairs that should always be used in comments and strings. + +Pairs of delimiters in this list are a fallback in case they have +no syntax relevant to `electric-pair-mode' in the syntax table +defined in `electric-pair-text-syntax-table'" + :version "24.4" + :group 'electricity + :type '(repeat (cons character character))) + +(defcustom electric-pair-skip-self #'electric-pair-default-skip-self + "If non-nil, skip char instead of inserting a second closing paren. + +When inserting a closing paren character right before the same character, +just skip that character instead, so that hitting ( followed by ) results +in \"()\" rather than \"())\". + +This can be convenient for people who find it easier to hit ) than C-f. + +Can also be a function of one argument (the closer char just +inserted), in which case that function's return value is +considered instead." + :version "24.1" + :group 'electricity + :type '(choice + (const :tag "Never skip" nil) + (const :tag "Help balance" electric-pair-default-skip-self) + (const :tag "Always skip" t) + function)) + +(defcustom electric-pair-inhibit-predicate + #'electric-pair-default-inhibit + "Predicate to prevent insertion of a matching pair. + +The function is called with a single char (the opening char just inserted). +If it returns non-nil, then `electric-pair-mode' will not insert a matching +closer." + :version "24.4" + :group 'electricity + :type '(choice + (const :tag "Conservative" electric-pair-conservative-inhibit) + (const :tag "Help balance" electric-pair-default-inhibit) + (const :tag "Always pair" ignore) + function)) + +(defcustom electric-pair-preserve-balance t + "Non-nil if default pairing and skipping should help balance parentheses. + +The default values of `electric-pair-inhibit-predicate' and +`electric-pair-skip-self' check this variable before delegating to other +predicates reponsible for making decisions on whether to pair/skip some +characters based on the actual state of the buffer's parenthesis and +quotes." + :version "24.4" + :group 'electricity + :type 'boolean) + +(defcustom electric-pair-delete-adjacent-pairs t + "If non-nil, backspacing an open paren also deletes adjacent closer. + +Can also be a function of no arguments, in which case that function's +return value is considered instead." + :version "24.4" + :group 'electricity + :type '(choice + (const :tag "Yes" t) + (const :tag "No" nil) + function)) + +(defcustom electric-pair-open-newline-between-pairs t + "If non-nil, a newline between adjacent parentheses opens an extra one. + +Can also be a function of no arguments, in which case that function's +return value is considered instead." + :version "24.4" + :group 'electricity + :type '(choice + (const :tag "Yes" t) + (const :tag "No" nil) + function)) + +(defcustom electric-pair-skip-whitespace t + "If non-nil skip whitespace when skipping over closing parens. + +The specific kind of whitespace skipped is given by the variable +`electric-pair-skip-whitespace-chars'. + +The symbol `chomp' specifies that the skipped-over whitespace +should be deleted. + +Can also be a function of no arguments, in which case that function's +return value is considered instead." + :version "24.4" + :group 'electricity + :type '(choice + (const :tag "Yes, jump over whitespace" t) + (const :tag "Yes, and delete whitespace" 'chomp) + (const :tag "No, no whitespace skipping" nil) + function)) + +(defcustom electric-pair-skip-whitespace-chars (list ?\t ?\s ?\n) + "Whitespace characters considered by `electric-pair-skip-whitespace'." + :version "24.4" + :group 'electricity + :type '(choice (set (const :tag "Space" ?\s) + (const :tag "Tab" ?\t) + (const :tag "Newline" ?\n)) + (list character))) + +(defun electric-pair--skip-whitespace () + "Skip whitespace forward, not crossing comment or string boundaries." + (let ((saved (point)) + (string-or-comment (nth 8 (syntax-ppss)))) + (skip-chars-forward (apply #'string electric-pair-skip-whitespace-chars)) + (unless (eq string-or-comment (nth 8 (syntax-ppss))) + (goto-char saved)))) + +(defvar electric-pair-text-syntax-table prog-mode-syntax-table + "Syntax table used when pairing inside comments and strings. + +`electric-pair-mode' considers this syntax table only when point in inside +quotes or comments. If lookup fails here, `electric-pair-text-pairs' will +be considered.") + +(defun electric-pair-backward-delete-char (n &optional killflag untabify) + "Delete characters backward, and maybe also two adjacent paired delimiters. + +Remaining behaviour is given by `backward-delete-char' or, if UNTABIFY is +non-nil, `backward-delete-char-untabify'." + (interactive "*p\nP") + (let* ((prev (char-before)) + (next (char-after)) + (syntax-info (electric-pair-syntax-info prev)) + (syntax (car syntax-info)) + (pair (cadr syntax-info))) + (when (and (if (functionp electric-pair-delete-adjacent-pairs) + (funcall electric-pair-delete-adjacent-pairs) + electric-pair-delete-adjacent-pairs) + next + (memq syntax '(?\( ?\" ?\$)) + (eq pair next)) + (delete-char 1 killflag)) + (if untabify + (backward-delete-char-untabify n killflag) + (backward-delete-char n killflag)))) + +(defun electric-pair-backward-delete-char-untabify (n &optional killflag) + "Delete characters backward, and maybe also two adjacent paired delimiters. + +Remaining behaviour is given by `backward-delete-char-untabify'." + (interactive "*p\nP") + (electric-pair-backward-delete-char n killflag t)) + +(defun electric-pair-conservative-inhibit (char) + (or + ;; I find it more often preferable not to pair when the + ;; same char is next. + (eq char (char-after)) + ;; Don't pair up when we insert the second of "" or of ((. + (and (eq char (char-before)) + (eq char (char-before (1- (point))))) + ;; I also find it often preferable not to pair next to a word. + (eq (char-syntax (following-char)) ?w))) + +(defun electric-pair-syntax-info (command-event) + "Calculate a list (SYNTAX PAIR UNCONDITIONAL STRING-OR-COMMENT-START). + +SYNTAX is COMMAND-EVENT's syntax character. PAIR is +COMMAND-EVENT's pair. UNCONDITIONAL indicates the variables +`electric-pair-pairs' or `electric-pair-text-pairs' were used to +lookup syntax. STRING-OR-COMMENT-START indicates that point is +inside a comment of string." + (let* ((pre-string-or-comment (nth 8 (save-excursion + (syntax-ppss (1- (point)))))) + (post-string-or-comment (nth 8 (syntax-ppss (point)))) + (string-or-comment (and post-string-or-comment + pre-string-or-comment)) + (table (if string-or-comment + electric-pair-text-syntax-table + (syntax-table))) + (table-syntax-and-pair (with-syntax-table table + (list (char-syntax command-event) + (or (matching-paren command-event) + command-event)))) + (fallback (if string-or-comment + (append electric-pair-text-pairs + electric-pair-pairs) + electric-pair-pairs)) + (direct (assq command-event fallback)) + (reverse (rassq command-event fallback))) + (cond + ((memq (car table-syntax-and-pair) + '(?\" ?\( ?\) ?\$)) + (append table-syntax-and-pair (list nil string-or-comment))) + (direct (if (eq (car direct) (cdr direct)) + (list ?\" command-event t string-or-comment) + (list ?\( (cdr direct) t string-or-comment))) + (reverse (list ?\) (car reverse) t string-or-comment))))) + +(defun electric-pair--insert (char) + (let ((last-command-event char) + (blink-matching-paren nil) + (electric-pair-mode nil)) + (self-insert-command 1))) + +(defun electric-pair--syntax-ppss (&optional pos where) + "Like `syntax-ppss', but sometimes fallback to `parse-partial-sexp'. + +WHERE is list defaulting to '(string comment) and indicates +when to fallback to `parse-partial-sexp'." + (let* ((pos (or pos (point))) + (where (or where '(string comment))) + (quick-ppss (syntax-ppss)) + (quick-ppss-at-pos (syntax-ppss pos))) + (if (or (and (nth 3 quick-ppss) (memq 'string where)) + (and (nth 4 quick-ppss) (memq 'comment where))) + (with-syntax-table electric-pair-text-syntax-table + (parse-partial-sexp (1+ (nth 8 quick-ppss)) pos)) + ;; HACK! cc-mode apparently has some `syntax-ppss' bugs + (if (memq major-mode '(c-mode c++ mode)) + (parse-partial-sexp (point-min) pos) + quick-ppss-at-pos)))) + +;; Balancing means controlling pairing and skipping of parentheses so +;; that, if possible, the buffer ends up at least as balanced as +;; before, if not more. The algorithm is slightly complex because some +;; situations like "()))" need pairing to occur at the end but not at +;; the beginning. Balancing should also happen independently for +;; different types of parentheses, so that having your {}'s unbalanced +;; doesn't keep `electric-pair-mode' from balancing your ()'s and your +;; []'s. +(defun electric-pair--balance-info (direction string-or-comment) + "Examine lists forward or backward according to DIRECTIONS's sign. + +STRING-OR-COMMENT is info suitable for running `parse-partial-sexp'. + +Return a cons of two descritions (MATCHED-P . PAIR) for the +innermost and outermost lists that enclose point. The outermost +list enclosing point is either the first top-level or first +mismatched list found by uplisting. + +If the outermost list is matched, don't rely on its PAIR. If +point is not enclosed by any lists, return ((T) (T))." + (let* (innermost + outermost + (table (if string-or-comment + electric-pair-text-syntax-table + (syntax-table))) + (at-top-level-or-equivalent-fn + ;; called when `scan-sexps' ran perfectly, when when it + ;; found a parenthesis pointing in the direction of + ;; travel. Also when travel started inside a comment and + ;; exited it + #'(lambda () + (setq outermost (list t)) + (unless innermost + (setq innermost (list t))))) + (ended-prematurely-fn + ;; called when `scan-sexps' crashed against a parenthesis + ;; pointing opposite the direction of travel. After + ;; traversing that character, the idea is to travel one sexp + ;; in the opposite direction looking for a matching + ;; delimiter. + #'(lambda () + (let* ((pos (point)) + (matched + (save-excursion + (cond ((< direction 0) + (condition-case nil + (eq (char-after pos) + (with-syntax-table table + (matching-paren + (char-before + (scan-sexps (point) 1))))) + (scan-error nil))) + (t + ;; In this case, no need to use + ;; `scan-sexps', we can use some + ;; `electric-pair--syntax-ppss' in this + ;; case (which uses the quicker + ;; `syntax-ppss' in some cases) + (let* ((ppss (electric-pair--syntax-ppss + (1- (point)))) + (start (car (last (nth 9 ppss)))) + (opener (char-after start))) + (and start + (eq (char-before pos) + (or (with-syntax-table table + (matching-paren opener)) + opener)))))))) + (actual-pair (if (> direction 0) + (char-before (point)) + (char-after (point))))) + (unless innermost + (setq innermost (cons matched actual-pair))) + (unless matched + (setq outermost (cons matched actual-pair))))))) + (save-excursion + (while (not outermost) + (condition-case err + (with-syntax-table table + (scan-sexps (point) (if (> direction 0) + (point-max) + (- (point-max)))) + (funcall at-top-level-or-equivalent-fn)) + (scan-error + (cond ((or + ;; some error happened and it is not of the "ended + ;; prematurely" kind"... + (not (string-match "ends prematurely" (nth 1 err))) + ;; ... or we were in a comment and just came out of + ;; it. + (and string-or-comment + (not (nth 8 (syntax-ppss))))) + (funcall at-top-level-or-equivalent-fn)) + (t + ;; exit the sexp + (goto-char (nth 3 err)) + (funcall ended-prematurely-fn))))))) + (cons innermost outermost))) + +(defun electric-pair--looking-at-unterminated-string-p (char) + "Say if following string starts with CHAR and is unterminated." + ;; FIXME: ugly/naive + (save-excursion + (skip-chars-forward (format "^%c" char)) + (while (not (zerop (% (save-excursion (skip-syntax-backward "\\")) 2))) + (unless (eobp) + (forward-char 1) + (skip-chars-forward (format "^%c" char)))) + (and (not (eobp)) + (condition-case nil + (progn (forward-sexp) nil) + (scan-error t))))) + +(defun electric-pair--inside-string-p (char) + "Say if point is inside a string started by CHAR. + +A comments text is parsed with `electric-pair-text-syntax-table'. +Also consider strings within comments, but not strings within +strings." + ;; FIXME: could also consider strings within strings by examining + ;; delimiters. + (let* ((ppss (electric-pair--syntax-ppss (point) '(comment)))) + (memq (nth 3 ppss) (list t char)))) + +(defun electric-pair-inhibit-if-helps-balance (char) + "Return non-nil if auto-pairing of CHAR would hurt parentheses' balance. + +Works by first removing the character from the buffer, then doing +some list calculations, finally restoring the situation as if nothing +happened." + (pcase (electric-pair-syntax-info char) + (`(,syntax ,pair ,_ ,s-or-c) + (unwind-protect + (progn + (delete-char -1) + (cond ((eq ?\( syntax) + (let* ((pair-data + (electric-pair--balance-info 1 s-or-c)) + (outermost (cdr pair-data))) + (cond ((car outermost) + nil) + (t + (eq (cdr outermost) pair))))) + ((eq syntax ?\") + (electric-pair--looking-at-unterminated-string-p char)))) + (insert-char char))))) + +(defun electric-pair-skip-if-helps-balance (char) + "Return non-nil if skipping CHAR would benefit parentheses' balance. + +Works by first removing the character from the buffer, then doing +some list calculations, finally restoring the situation as if nothing +happened." + (pcase (electric-pair-syntax-info char) + (`(,syntax ,pair ,_ ,s-or-c) + (unwind-protect + (progn + (delete-char -1) + (cond ((eq syntax ?\)) + (let* ((pair-data + (electric-pair--balance-info + -1 s-or-c)) + (innermost (car pair-data)) + (outermost (cdr pair-data))) + (and + (cond ((car outermost) + (car innermost)) + ((car innermost) + (not (eq (cdr outermost) pair))))))) + ((eq syntax ?\") + (electric-pair--inside-string-p char)))) + (insert-char char))))) + +(defun electric-pair-default-skip-self (char) + (if electric-pair-preserve-balance + (electric-pair-skip-if-helps-balance char) + t)) + +(defun electric-pair-default-inhibit (char) + (if electric-pair-preserve-balance + (electric-pair-inhibit-if-helps-balance char) + (electric-pair-conservative-inhibit char))) + +(defun electric-pair-post-self-insert-function () + (let* ((pos (and electric-pair-mode (electric--after-char-pos))) + (skip-whitespace-info)) + (pcase (electric-pair-syntax-info last-command-event) + (`(,syntax ,pair ,unconditional ,_) + (cond + ((null pos) nil) + ;; Wrap a pair around the active region. + ;; + ((and (memq syntax '(?\( ?\) ?\" ?\$)) (use-region-p)) + ;; FIXME: To do this right, we'd need a post-self-insert-function + ;; so we could add-function around it and insert the closer after + ;; all the rest of the hook has run. + (if (or (eq syntax ?\") + (and (eq syntax ?\)) + (>= (point) (mark))) + (and (not (eq syntax ?\))) + (>= (mark) (point)))) + (save-excursion + (goto-char (mark)) + (electric-pair--insert pair)) + (delete-region pos (1- pos)) + (electric-pair--insert pair) + (goto-char (mark)) + (electric-pair--insert last-command-event))) + ;; Backslash-escaped: no pairing, no skipping. + ((save-excursion + (goto-char (1- pos)) + (not (zerop (% (skip-syntax-backward "\\") 2)))) + nil) + ;; Skip self. + ((and (memq syntax '(?\) ?\" ?\$)) + (and (or unconditional + (if (functionp electric-pair-skip-self) + (funcall electric-pair-skip-self last-command-event) + electric-pair-skip-self)) + (save-excursion + (when (setq skip-whitespace-info + (if (functionp electric-pair-skip-whitespace) + (funcall electric-pair-skip-whitespace) + electric-pair-skip-whitespace)) + (electric-pair--skip-whitespace)) + (eq (char-after) last-command-event)))) + ;; This is too late: rather than insert&delete we'd want to only + ;; skip (or insert in overwrite mode). The difference is in what + ;; goes in the undo-log and in the intermediate state which might + ;; be visible to other post-self-insert-hook. We'll just have to + ;; live with it for now. + (when skip-whitespace-info + (electric-pair--skip-whitespace)) + (delete-region (1- pos) (if (eq skip-whitespace-info 'chomp) + (point) + pos)) + (forward-char)) + ;; Insert matching pair. + ((and (memq syntax `(?\( ?\" ?\$)) + (not overwrite-mode) + (or unconditional + (not (funcall electric-pair-inhibit-predicate + last-command-event)))) + (save-excursion (electric-pair--insert pair))))) + (t + (when (and (if (functionp electric-pair-open-newline-between-pairs) + (funcall electric-pair-open-newline-between-pairs) + electric-pair-open-newline-between-pairs) + (eq last-command-event ?\n) + (not (eobp)) + (eq (save-excursion + (skip-chars-backward "\t\s") + (char-before (1- (point)))) + (matching-paren (char-after)))) + (save-excursion (newline 1 t))))))) + +(put 'electric-pair-post-self-insert-function 'priority 20) + +(defun electric-pair-will-use-region () + (and (use-region-p) + (memq (car (electric-pair-syntax-info last-command-event)) + '(?\( ?\) ?\" ?\$)))) + +(defvar electric-pair-mode-map + (let ((map (make-sparse-keymap))) + (define-key map [remap backward-delete-char-untabify] + 'electric-pair-backward-delete-char-untabify) + (define-key map [remap backward-delete-char] + 'electric-pair-backward-delete-char) + (define-key map [remap delete-backward-char] + 'electric-pair-backward-delete-char) + map) + "Keymap used by `electric-pair-mode'.") + +;;;###autoload +(define-minor-mode electric-pair-mode + "Toggle automatic parens pairing (Electric Pair mode). +With a prefix argument ARG, enable Electric Pair mode if ARG is +positive, and disable it otherwise. If called from Lisp, enable +the mode if ARG is omitted or nil. + +Electric Pair mode is a global minor mode. When enabled, typing +an open parenthesis automatically inserts the corresponding +closing parenthesis. \(Likewise for brackets, etc.)." + :global t :group 'electricity + (if electric-pair-mode + (progn + (add-hook 'post-self-insert-hook + #'electric-pair-post-self-insert-function) + (electric--sort-post-self-insertion-hook) + (add-hook 'self-insert-uses-region-functions + #'electric-pair-will-use-region)) + (remove-hook 'post-self-insert-hook + #'electric-pair-post-self-insert-function) + (remove-hook 'self-insert-uses-region-functions + #'electric-pair-will-use-region))) + +(provide 'elec-pair) + +;;; elec-pair.el ends here === modified file 'lisp/electric.el' --- lisp/electric.el 2013-12-26 22:02:49 +0000 +++ lisp/electric.el 2013-12-27 12:53:57 +0000 @@ -325,533 +325,6 @@ (setq-default electric-indent-mode nil) ; But keep it globally disabled. ))) -;;; Electric pairing. - -(defcustom electric-pair-pairs - '((?\" . ?\")) - "Alist of pairs that should be used regardless of major mode. - -Pairs of delimiters in this list are a fallback in case they have -no syntax relevant to `electric-pair-mode' in the mode's syntax -table. - -See also the variable `electric-pair-text-pairs'." - :version "24.1" - :type '(repeat (cons character character))) - -(defcustom electric-pair-text-pairs - '((?\" . ?\" )) - "Alist of pairs that should always be used in comments and strings. - -Pairs of delimiters in this list are a fallback in case they have -no syntax relevant to `electric-pair-mode' in the syntax table -defined in `electric-pair-text-syntax-table'" - :version "24.4" - :type '(repeat (cons character character))) - -(defcustom electric-pair-skip-self #'electric-pair-default-skip-self - "If non-nil, skip char instead of inserting a second closing paren. - -When inserting a closing paren character right before the same character, -just skip that character instead, so that hitting ( followed by ) results -in \"()\" rather than \"())\". - -This can be convenient for people who find it easier to hit ) than C-f. - -Can also be a function of one argument (the closer char just -inserted), in which case that function's return value is -considered instead." - :version "24.1" - :type '(choice - (const :tag "Never skip" nil) - (const :tag "Help balance" electric-pair-default-skip-self) - (const :tag "Always skip" t) - function)) - -(defcustom electric-pair-inhibit-predicate - #'electric-pair-default-inhibit - "Predicate to prevent insertion of a matching pair. - -The function is called with a single char (the opening char just inserted). -If it returns non-nil, then `electric-pair-mode' will not insert a matching -closer." - :version "24.4" - :type '(choice - (const :tag "Conservative" electric-pair-conservative-inhibit) - (const :tag "Help balance" electric-pair-default-inhibit) - (const :tag "Always pair" ignore) - function)) - -(defcustom electric-pair-preserve-balance t - "Non-nil if default pairing and skipping should help balance parentheses. - -The default values of `electric-pair-inhibit-predicate' and -`electric-pair-skip-self' check this variable before delegating to other -predicates reponsible for making decisions on whether to pair/skip some -characters based on the actual state of the buffer's parenthesis and -quotes." - :version "24.4" - :type 'boolean) - -(defcustom electric-pair-delete-adjacent-pairs t - "If non-nil, backspacing an open paren also deletes adjacent closer. - -Can also be a function of no arguments, in which case that function's -return value is considered instead." - :version "24.4" - :type '(choice - (const :tag "Yes" t) - (const :tag "No" nil) - function)) - -(defcustom electric-pair-open-newline-between-pairs t - "If non-nil, a newline between adjacent parentheses opens an extra one. - -Can also be a function of no arguments, in which case that function's -return value is considered instead." - :version "24.4" - :type '(choice - (const :tag "Yes" t) - (const :tag "No" nil) - function)) - -(defcustom electric-pair-skip-whitespace t - "If non-nil skip whitespace when skipping over closing parens. - -The specific kind of whitespace skipped is given by the variable -`electric-pair-skip-whitespace-chars'. - -The symbol `chomp' specifies that the skipped-over whitespace -should be deleted. - -Can also be a function of no arguments, in which case that function's -return value is considered instead." - :version "24.4" - :type '(choice - (const :tag "Yes, jump over whitespace" t) - (const :tag "Yes, and delete whitespace" 'chomp) - (const :tag "No, no whitespace skipping" nil) - function)) - -(defcustom electric-pair-skip-whitespace-chars (list ?\t ?\s ?\n) - "Whitespace characters considered by `electric-pair-skip-whitespace'." - :version "24.4" - :type '(choice (set (const :tag "Space" ?\s) - (const :tag "Tab" ?\t) - (const :tag "Newline" ?\n)) - (list character))) - -(defun electric-pair--skip-whitespace () - "Skip whitespace forward, not crossing comment or string boundaries." - (let ((saved (point)) - (string-or-comment (nth 8 (syntax-ppss)))) - (skip-chars-forward (apply #'string electric-pair-skip-whitespace-chars)) - (unless (eq string-or-comment (nth 8 (syntax-ppss))) - (goto-char saved)))) - -(defvar electric-pair-text-syntax-table prog-mode-syntax-table - "Syntax table used when pairing inside comments and strings. - -`electric-pair-mode' considers this syntax table only when point in inside -quotes or comments. If lookup fails here, `electric-pair-text-pairs' will -be considered.") - -(defun electric-pair-backward-delete-char (n &optional killflag untabify) - "Delete characters backward, and maybe also two adjacent paired delimiters. - -Remaining behaviour is given by `backward-delete-char' or, if UNTABIFY is -non-nil, `backward-delete-char-untabify'." - (interactive "*p\nP") - (let* ((prev (char-before)) - (next (char-after)) - (syntax-info (electric-pair-syntax-info prev)) - (syntax (car syntax-info)) - (pair (cadr syntax-info))) - (when (and (if (functionp electric-pair-delete-adjacent-pairs) - (funcall electric-pair-delete-adjacent-pairs) - electric-pair-delete-adjacent-pairs) - next - (memq syntax '(?\( ?\" ?\$)) - (eq pair next)) - (delete-char 1 killflag)) - (if untabify - (backward-delete-char-untabify n killflag) - (backward-delete-char n killflag)))) - -(defun electric-pair-backward-delete-char-untabify (n &optional killflag) - "Delete characters backward, and maybe also two adjacent paired delimiters. - -Remaining behaviour is given by `backward-delete-char-untabify'." - (interactive "*p\nP") - (electric-pair-backward-delete-char n killflag t)) - -(defun electric-pair-conservative-inhibit (char) - (or - ;; I find it more often preferable not to pair when the - ;; same char is next. - (eq char (char-after)) - ;; Don't pair up when we insert the second of "" or of ((. - (and (eq char (char-before)) - (eq char (char-before (1- (point))))) - ;; I also find it often preferable not to pair next to a word. - (eq (char-syntax (following-char)) ?w))) - -(defun electric-pair-syntax-info (command-event) - "Calculate a list (SYNTAX PAIR UNCONDITIONAL STRING-OR-COMMENT-START). - -SYNTAX is COMMAND-EVENT's syntax character. PAIR is -COMMAND-EVENT's pair. UNCONDITIONAL indicates the variables -`electric-pair-pairs' or `electric-pair-text-pairs' were used to -lookup syntax. STRING-OR-COMMENT-START indicates that point is -inside a comment of string." - (let* ((pre-string-or-comment (nth 8 (save-excursion - (syntax-ppss (1- (point)))))) - (post-string-or-comment (nth 8 (syntax-ppss (point)))) - (string-or-comment (and post-string-or-comment - pre-string-or-comment)) - (table (if string-or-comment - electric-pair-text-syntax-table - (syntax-table))) - (table-syntax-and-pair (with-syntax-table table - (list (char-syntax command-event) - (or (matching-paren command-event) - command-event)))) - (fallback (if string-or-comment - (append electric-pair-text-pairs - electric-pair-pairs) - electric-pair-pairs)) - (direct (assq command-event fallback)) - (reverse (rassq command-event fallback))) - (cond - ((memq (car table-syntax-and-pair) - '(?\" ?\( ?\) ?\$)) - (append table-syntax-and-pair (list nil string-or-comment))) - (direct (if (eq (car direct) (cdr direct)) - (list ?\" command-event t string-or-comment) - (list ?\( (cdr direct) t string-or-comment))) - (reverse (list ?\) (car reverse) t string-or-comment))))) - -(defun electric-pair--insert (char) - (let ((last-command-event char) - (blink-matching-paren nil) - (electric-pair-mode nil)) - (self-insert-command 1))) - -(defun electric-pair--syntax-ppss (&optional pos where) - "Like `syntax-ppss', but sometimes fallback to `parse-partial-sexp'. - -WHERE is list defaulting to '(string comment) and indicates -when to fallback to `parse-partial-sexp'." - (let* ((pos (or pos (point))) - (where (or where '(string comment))) - (quick-ppss (syntax-ppss)) - (quick-ppss-at-pos (syntax-ppss pos))) - (if (or (and (nth 3 quick-ppss) (memq 'string where)) - (and (nth 4 quick-ppss) (memq 'comment where))) - (with-syntax-table electric-pair-text-syntax-table - (parse-partial-sexp (1+ (nth 8 quick-ppss)) pos)) - ;; HACK! cc-mode apparently has some `syntax-ppss' bugs - (if (memq major-mode '(c-mode c++ mode)) - (parse-partial-sexp (point-min) pos) - quick-ppss-at-pos)))) - -;; Balancing means controlling pairing and skipping of parentheses so -;; that, if possible, the buffer ends up at least as balanced as -;; before, if not more. The algorithm is slightly complex because some -;; situations like "()))" need pairing to occur at the end but not at -;; the beginning. Balancing should also happen independently for -;; different types of parentheses, so that having your {}'s unbalanced -;; doesn't keep `electric-pair-mode' from balancing your ()'s and your -;; []'s. -(defun electric-pair--balance-info (direction string-or-comment) - "Examine lists forward or backward according to DIRECTIONS's sign. - -STRING-OR-COMMENT is info suitable for running `parse-partial-sexp'. - -Return a cons of two descritions (MATCHED-P . PAIR) for the -innermost and outermost lists that enclose point. The outermost -list enclosing point is either the first top-level or first -mismatched list found by uplisting. - -If the outermost list is matched, don't rely on its PAIR. If -point is not enclosed by any lists, return ((T) (T))." - (let* (innermost - outermost - (table (if string-or-comment - electric-pair-text-syntax-table - (syntax-table))) - (at-top-level-or-equivalent-fn - ;; called when `scan-sexps' ran perfectly, when when it - ;; found a parenthesis pointing in the direction of - ;; travel. Also when travel started inside a comment and - ;; exited it - #'(lambda () - (setq outermost (list t)) - (unless innermost - (setq innermost (list t))))) - (ended-prematurely-fn - ;; called when `scan-sexps' crashed against a parenthesis - ;; pointing opposite the direction of travel. After - ;; traversing that character, the idea is to travel one sexp - ;; in the opposite direction looking for a matching - ;; delimiter. - #'(lambda () - (let* ((pos (point)) - (matched - (save-excursion - (cond ((< direction 0) - (condition-case nil - (eq (char-after pos) - (with-syntax-table table - (matching-paren - (char-before - (scan-sexps (point) 1))))) - (scan-error nil))) - (t - ;; In this case, no need to use - ;; `scan-sexps', we can use some - ;; `electric-pair--syntax-ppss' in this - ;; case (which uses the quicker - ;; `syntax-ppss' in some cases) - (let* ((ppss (electric-pair--syntax-ppss - (1- (point)))) - (start (car (last (nth 9 ppss)))) - (opener (char-after start))) - (and start - (eq (char-before pos) - (or (with-syntax-table table - (matching-paren opener)) - opener)))))))) - (actual-pair (if (> direction 0) - (char-before (point)) - (char-after (point))))) - (unless innermost - (setq innermost (cons matched actual-pair))) - (unless matched - (setq outermost (cons matched actual-pair))))))) - (save-excursion - (while (not outermost) - (condition-case err - (with-syntax-table table - (scan-sexps (point) (if (> direction 0) - (point-max) - (- (point-max)))) - (funcall at-top-level-or-equivalent-fn)) - (scan-error - (cond ((or - ;; some error happened and it is not of the "ended - ;; prematurely" kind"... - (not (string-match "ends prematurely" (nth 1 err))) - ;; ... or we were in a comment and just came out of - ;; it. - (and string-or-comment - (not (nth 8 (syntax-ppss))))) - (funcall at-top-level-or-equivalent-fn)) - (t - ;; exit the sexp - (goto-char (nth 3 err)) - (funcall ended-prematurely-fn))))))) - (cons innermost outermost))) - -(defun electric-pair--looking-at-unterminated-string-p (char) - "Say if following string starts with CHAR and is unterminated." - ;; FIXME: ugly/naive - (save-excursion - (skip-chars-forward (format "^%c" char)) - (while (not (zerop (% (save-excursion (skip-syntax-backward "\\")) 2))) - (unless (eobp) - (forward-char 1) - (skip-chars-forward (format "^%c" char)))) - (and (not (eobp)) - (condition-case err - (progn (forward-sexp) nil) - (scan-error t))))) - -(defun electric-pair--inside-string-p (char) - "Say if point is inside a string started by CHAR. - -A comments text is parsed with `electric-pair-text-syntax-table'. -Also consider strings within comments, but not strings within -strings." - ;; FIXME: could also consider strings within strings by examining - ;; delimiters. - (let* ((ppss (electric-pair--syntax-ppss (point) '(comment)))) - (memq (nth 3 ppss) (list t char)))) - -(defun electric-pair-inhibit-if-helps-balance (char) - "Return non-nil if auto-pairing of CHAR would hurt parentheses' balance. - -Works by first removing the character from the buffer, then doing -some list calculations, finally restoring the situation as if nothing -happened." - (pcase (electric-pair-syntax-info char) - (`(,syntax ,pair ,_ ,s-or-c) - (unwind-protect - (progn - (delete-char -1) - (cond ((eq ?\( syntax) - (let* ((pair-data - (electric-pair--balance-info 1 s-or-c)) - (innermost (car pair-data)) - (outermost (cdr pair-data))) - (cond ((car outermost) - nil) - (t - (eq (cdr outermost) pair))))) - ((eq syntax ?\") - (electric-pair--looking-at-unterminated-string-p char)))) - (insert-char char))))) - -(defun electric-pair-skip-if-helps-balance (char) - "Return non-nil if skipping CHAR would benefit parentheses' balance. - -Works by first removing the character from the buffer, then doing -some list calculations, finally restoring the situation as if nothing -happened." - (pcase (electric-pair-syntax-info char) - (`(,syntax ,pair ,_ ,s-or-c) - (unwind-protect - (progn - (delete-char -1) - (cond ((eq syntax ?\)) - (let* ((pair-data - (electric-pair--balance-info - -1 s-or-c)) - (innermost (car pair-data)) - (outermost (cdr pair-data))) - (and - (cond ((car outermost) - (car innermost)) - ((car innermost) - (not (eq (cdr outermost) pair))))))) - ((eq syntax ?\") - (electric-pair--inside-string-p char)))) - (insert-char char))))) - -(defun electric-pair-default-skip-self (char) - (if electric-pair-preserve-balance - (electric-pair-skip-if-helps-balance char) - t)) - -(defun electric-pair-default-inhibit (char) - (if electric-pair-preserve-balance - (electric-pair-inhibit-if-helps-balance char) - (electric-pair-conservative-inhibit char))) - -(defun electric-pair-post-self-insert-function () - (let* ((pos (and electric-pair-mode (electric--after-char-pos))) - (skip-whitespace-info)) - (pcase (electric-pair-syntax-info last-command-event) - (`(,syntax ,pair ,unconditional ,_) - (cond - ((null pos) nil) - ;; Wrap a pair around the active region. - ;; - ((and (memq syntax '(?\( ?\) ?\" ?\$)) (use-region-p)) - ;; FIXME: To do this right, we'd need a post-self-insert-function - ;; so we could add-function around it and insert the closer after - ;; all the rest of the hook has run. - (if (or (eq syntax ?\") - (and (eq syntax ?\)) - (>= (point) (mark))) - (and (not (eq syntax ?\))) - (>= (mark) (point)))) - (save-excursion - (goto-char (mark)) - (electric-pair--insert pair)) - (delete-region pos (1- pos)) - (electric-pair--insert pair) - (goto-char (mark)) - (electric-pair--insert last-command-event))) - ;; Backslash-escaped: no pairing, no skipping. - ((save-excursion - (goto-char (1- pos)) - (not (zerop (% (skip-syntax-backward "\\") 2)))) - nil) - ;; Skip self. - ((and (memq syntax '(?\) ?\" ?\$)) - (and (or unconditional - (if (functionp electric-pair-skip-self) - (funcall electric-pair-skip-self last-command-event) - electric-pair-skip-self)) - (save-excursion - (when (setq skip-whitespace-info - (if (functionp electric-pair-skip-whitespace) - (funcall electric-pair-skip-whitespace) - electric-pair-skip-whitespace)) - (electric-pair--skip-whitespace)) - (eq (char-after) last-command-event)))) - ;; This is too late: rather than insert&delete we'd want to only - ;; skip (or insert in overwrite mode). The difference is in what - ;; goes in the undo-log and in the intermediate state which might - ;; be visible to other post-self-insert-hook. We'll just have to - ;; live with it for now. - (when skip-whitespace-info - (electric-pair--skip-whitespace)) - (delete-region (1- pos) (if (eq skip-whitespace-info 'chomp) - (point) - pos)) - (forward-char)) - ;; Insert matching pair. - ((and (memq syntax `(?\( ?\" ?\$)) - (not overwrite-mode) - (or unconditional - (not (funcall electric-pair-inhibit-predicate - last-command-event)))) - (save-excursion (electric-pair--insert pair))))) - (t - (when (and (if (functionp electric-pair-open-newline-between-pairs) - (funcall electric-pair-open-newline-between-pairs) - electric-pair-open-newline-between-pairs) - (eq last-command-event ?\n) - (not (eobp)) - (eq (save-excursion - (skip-chars-backward "\t\s") - (char-before (1- (point)))) - (matching-paren (char-after)))) - (save-excursion (newline 1 t))))))) - -(put 'electric-pair-post-self-insert-function 'priority 20) - -(defun electric-pair-will-use-region () - (and (use-region-p) - (memq (car (electric-pair-syntax-info last-command-event)) - '(?\( ?\) ?\" ?\$)))) - -(defvar electric-pair-mode-map - (let ((map (make-sparse-keymap))) - (define-key map [remap backward-delete-char-untabify] - 'electric-pair-backward-delete-char-untabify) - (define-key map [remap backward-delete-char] - 'electric-pair-backward-delete-char) - (define-key map [remap delete-backward-char] - 'electric-pair-backward-delete-char) - map) - "Keymap used by `electric-pair-mode'.") - -;;;###autoload -(define-minor-mode electric-pair-mode - "Toggle automatic parens pairing (Electric Pair mode). -With a prefix argument ARG, enable Electric Pair mode if ARG is -positive, and disable it otherwise. If called from Lisp, enable -the mode if ARG is omitted or nil. - -Electric Pair mode is a global minor mode. When enabled, typing -an open parenthesis automatically inserts the corresponding -closing parenthesis. \(Likewise for brackets, etc.)." - :global t :group 'electricity - (if electric-pair-mode - (progn - (add-hook 'post-self-insert-hook - #'electric-pair-post-self-insert-function) - (electric--sort-post-self-insertion-hook) - (add-hook 'self-insert-uses-region-functions - #'electric-pair-will-use-region)) - (remove-hook 'post-self-insert-hook - #'electric-pair-post-self-insert-function) - (remove-hook 'self-insert-uses-region-functions - #'electric-pair-will-use-region))) - ;;; Electric newlines after/before/around some chars. (defvar electric-layout-rules nil ------------------------------------------------------------ revno: 115767 committer: Julien Danjou branch nick: master timestamp: Fri 2013-12-27 11:43:11 +0100 message: Enable ns-use-srgb-colorspace by default See thread https://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00706.html * nsterm.m (syms_of_nsterm): Enable ns-use-srgb-colorspace by default. diff: === modified file 'etc/NEWS' --- etc/NEWS 2013-12-27 03:38:26 +0000 +++ etc/NEWS 2013-12-27 10:43:11 +0000 @@ -1288,7 +1288,7 @@ native is the default. ** OSX >= 10.7 can use sRGB colorspace. -Customize `ns-use-srgb-colorspace' to change style. nil is the default. +Customize `ns-use-srgb-colorspace' to change style. t is the default. Note: This does not apply to images. === modified file 'src/ChangeLog' --- src/ChangeLog 2013-12-27 03:38:26 +0000 +++ src/ChangeLog 2013-12-27 10:43:11 +0000 @@ -1,3 +1,8 @@ +2013-12-27 Steve Purcell (tiny change) + + * nsterm.m (syms_of_nsterm): Enable ns-use-srgb-colorspace by + default. + 2013-12-27 Chong Yidong * data.c (Fsymbol_function): Doc fix. === modified file 'src/nsterm.m' --- src/nsterm.m 2013-12-21 16:11:55 +0000 +++ src/nsterm.m 2013-12-27 10:43:11 +0000 @@ -7647,8 +7647,8 @@ DEFVAR_BOOL ("ns-use-srgb-colorspace", ns_use_srgb_colorspace, doc: /*Non-nil means to use sRGB colorspace on OSX >= 10.7. Note that this does not apply to images. -This variable is ignored on OSX < 10.7 and GNUStep. Default is nil. */); - ns_use_srgb_colorspace = NO; +This variable is ignored on OSX < 10.7 and GNUStep. Default is t. */); + ns_use_srgb_colorspace = YES; /* TODO: move to common code */ DEFVAR_LISP ("x-toolkit-scroll-bars", Vx_toolkit_scroll_bars, ------------------------------------------------------------ revno: 115766 committer: Xue Fuqiao branch nick: trunk timestamp: Fri 2013-12-27 18:21:47 +0800 message: * admin/admin.el: Minor cleanups. * admin/admin.el (manual-misc-manuals, make-manuals): (manual-pdf, cusver-find-files): (cusver-new-version, cusver-scan, cusver-goto-xref): (cusver-check): Doc fix. (manual-html-node, cusver-check): Use `user-error'. diff: === modified file 'admin/ChangeLog' --- admin/ChangeLog 2013-12-24 18:27:53 +0000 +++ admin/ChangeLog 2013-12-27 10:21:47 +0000 @@ -1,3 +1,11 @@ +2013-12-27 Xue Fuqiao + + * admin.el (manual-misc-manuals, make-manuals): + (manual-pdf, cusver-find-files): + (cusver-new-version, cusver-scan, cusver-goto-xref): + (cusver-check): Doc fix. + (manual-html-node, cusver-check): Use `user-error'. + 2013-12-24 Paul Eggert Automate the procedure for updating copyright year. === modified file 'admin/admin.el' --- admin/admin.el 2013-12-25 02:18:43 +0000 +++ admin/admin.el 2013-12-27 10:21:47 +0000 @@ -108,7 +108,7 @@ ;; in two places those commas are followed by space, in two other ;; places they are not. (let* ((version-components (append (split-string version "\\.") - '("0" "0"))) + '("0" "0"))) (comma-version (concat (car version-components) "," (cadr version-components) "," @@ -198,7 +198,8 @@ ;;; Various bits of magic for generating the web manuals (defun manual-misc-manuals (root) - "Return doc/misc manuals as list of strings." + "Return doc/misc manuals as list of strings. +ROOT should be the root of an Emacs source tree." ;; Similar to `make -C doc/misc echo-info', but works if unconfigured, ;; and for INFO_TARGETS rather than INFO_INSTALL. (with-temp-buffer @@ -217,6 +218,7 @@ (defun make-manuals (root &optional type) "Generate the web manuals for the Emacs webpage. +ROOT should be the root of an Emacs source tree. Interactively with a prefix argument, prompt for TYPE. Optional argument TYPE is type of output (nil means all)." (interactive (let ((root (read-directory-name "Emacs root directory: " @@ -332,7 +334,7 @@ HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using the @import directive." (unless (file-exists-p texi-file) - (error "Manual file %s not found" texi-file)) + (user-error "Manual file %s not found" texi-file)) (make-directory dir t) (call-process "makeinfo" nil nil nil "-D" "WWW_GNU_ORG" @@ -369,7 +371,7 @@ (save-buffer)))))) (defun manual-pdf (texi-file dest) - "Run texi2pdf on TEXI-FILE, emitting pdf output to DEST." + "Run texi2pdf on TEXI-FILE, emitting PDF output to DEST." (make-directory (or (file-name-directory dest) ".") t) (let ((default-directory (file-name-directory texi-file))) (call-process "texi2pdf" nil nil nil @@ -381,6 +383,7 @@ (make-directory (or (file-name-directory dest) ".") t) (let ((dvi-dest (concat (file-name-sans-extension dest) ".dvi")) (default-directory (file-name-directory texi-file))) + ;; FIXME: Use `texi2dvi --ps'? --xfq (call-process "texi2dvi" nil nil nil "-I" "../emacs" "-I" "../misc" texi-file "-o" dvi-dest) @@ -497,12 +500,12 @@ (forward-line 1)))) -;; Stuff to check new defcustoms got :version tags. +;; Stuff to check new `defcustom's got :version tags. ;; Adapted from check-declare.el. (defun cusver-find-files (root &optional old) - "Find .el files beneath directory ROOT that contain defcustoms. -If optional OLD is non-nil, also include defvars." + "Find .el files beneath directory ROOT that contain `defcustom's. +If optional OLD is non-nil, also include `defvar's." (process-lines find-program root "-name" "*.el" "-exec" grep-program @@ -514,14 +517,14 @@ (defvar cusver-new-version (format "%s.%s" emacs-major-version (1+ emacs-minor-version)) - "Version number that new defcustoms should have.") + "Version number that new `defcustom's should have.") (defun cusver-scan (file &optional old) "Scan FILE for `defcustom' calls. Return a list with elements of the form (VAR . VER), This means that FILE contains a defcustom for variable VAR, with a :version tag having value VER (may be nil). -If optional argument OLD is non-nil, also scan for defvars." +If optional argument OLD is non-nil, also scan for `defvar's." (let ((m (format "Scanning %s..." file)) (re (format "^[ \t]*\\((def%s\\)[ \t\n]" (if old "\\(custom\\|var\\)" "\\(custom\\|group\\)"))) @@ -530,7 +533,7 @@ (with-temp-buffer (insert-file-contents file) ;; FIXME we could theoretically be inside a string. - (while (re-search-forward re nil t) + (while (re-search-forward re nil :noerror) (goto-char (match-beginning 1)) (if (and (setq form (ignore-errors (read (current-buffer)))) (setq var (car-safe (cdr-safe form))) @@ -572,7 +575,7 @@ (define-button-type 'cusver-xref 'action #'cusver-goto-xref) (defun cusver-goto-xref (button) - "Jump to a lisp file for the BUTTON at point." + "Jump to a Lisp file for the BUTTON at point." (let ((file (button-get button 'file)) (var (button-get button 'var))) (if (not (file-readable-p file)) @@ -588,11 +591,13 @@ ;; TODO Check cus-start if something moved from C to Lisp. ;; TODO Handle renamed things with aliases to the old names. (defun cusver-check (newdir olddir version) - "Check that defcustoms have :version tags where needed. -NEWDIR is the current lisp/ directory, OLDDIR is that from the previous -release. A defcustom that is only in NEWDIR should have a :version -tag. We exclude cases where a defvar exists in OLDDIR, since -just converting a defvar to a defcustom does not require a :version bump. + "Check that `defcustom's have :version tags where needed. +NEWDIR is the current lisp/ directory, OLDDIR is that from the +previous release, VERSION is the new version number. A +`defcustom' that is only in NEWDIR should have a :version tag. +We exclude cases where a `defvar' exists in OLDDIR, since just +converting a `defvar' to a `defcustom' does not require +a :version bump. Note that a :version tag should also be added if the value of a defcustom changes (in a non-trivial way). This function does not check for that." @@ -602,20 +607,20 @@ (read-number "New version number: " (string-to-number cusver-new-version))))) (or (file-directory-p (setq newdir (expand-file-name newdir))) - (error "Directory `%s' not found" newdir)) + (user-error "Directory `%s' not found" newdir)) (or (file-directory-p (setq olddir (expand-file-name olddir))) - (error "Directory `%s' not found" olddir)) + (user-error "Directory `%s' not found" olddir)) (setq cusver-new-version version) - (let* ((newfiles (progn (message "Finding new files with defcustoms...") + (let* ((newfiles (progn (message "Finding new files with `defcustom's...") (cusver-find-files newdir))) - (oldfiles (progn (message "Finding old files with defcustoms...") + (oldfiles (progn (message "Finding old files with `defcustom's...") (cusver-find-files olddir t))) - (newcus (progn (message "Reading new defcustoms...") + (newcus (progn (message "Reading new `defcustom's...") (mapcar (lambda (file) (cons file (cusver-scan file))) newfiles))) oldcus result thisfile file) - (message "Reading old defcustoms...") + (message "Reading old `defcustom's...") (dolist (file oldfiles) (setq oldcus (append oldcus (cusver-scan file t)))) (setq oldcus (append oldcus (cusver-scan-cus-start @@ -640,7 +645,7 @@ (message "No missing :version tags") (pop-to-buffer "*cusver*") (erase-buffer) - (insert "These defcustoms might be missing :version tags:\n\n") + (insert "These `defcustom's might be missing :version tags:\n\n") (dolist (elem result) (let* ((str (file-relative-name (car elem) newdir)) (strlen (length str))) ------------------------------------------------------------ revno: 115765 committer: Chong Yidong branch nick: trunk timestamp: Fri 2013-12-27 11:38:26 +0800 message: More doc updates * commands.texi (Reading One Event): Mention keyboard coding. * functions.texi (Function Cells): * eval.texi (Function Indirection): Update for the fact that symbol-function no longer signals an error. * keymaps.texi (Translation Keymaps, Translation Keymaps): * nonascii.texi (Terminal I/O Encoding): Copyedits. * data.c (Fsymbol_function): Doc fix. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-12-26 03:27:45 +0000 +++ doc/lispref/ChangeLog 2013-12-27 03:38:26 +0000 @@ -1,3 +1,14 @@ +2013-12-27 Chong Yidong + + * functions.texi (Function Cells): + * eval.texi (Function Indirection): Update for the fact that + symbol-function no longer signals an error. + + * commands.texi (Reading One Event): Mention keyboard coding. + + * keymaps.texi (Translation Keymaps, Translation Keymaps): + * nonascii.texi (Terminal I/O Encoding): Copyedits. + 2013-12-26 Chong Yidong * advice.texi (Advising Functions, Defining Advice): Special forms === modified file 'doc/lispref/commands.texi' --- doc/lispref/commands.texi 2013-12-25 10:24:52 +0000 +++ doc/lispref/commands.texi 2013-12-27 03:38:26 +0000 @@ -2395,9 +2395,12 @@ @code{read-char}, and @code{read-char-exclusive}. @defun read-event &optional prompt inherit-input-method seconds -This function reads and returns the next event of command input, waiting -if necessary until an event is available. Events can come directly from -the user or from a keyboard macro. +This function reads and returns the next event of command input, +waiting if necessary until an event is available. + +The returned event may come directly from the user, or from a keyboard +macro. It is not decoded by the keyboard's input coding system +(@pxref{Terminal I/O Encoding}). If the optional argument @var{prompt} is non-@code{nil}, it should be a string to display in the echo area as a prompt. Otherwise, === modified file 'doc/lispref/eval.texi' --- doc/lispref/eval.texi 2013-12-25 03:05:11 +0000 +++ doc/lispref/eval.texi 2013-12-27 03:38:26 +0000 @@ -242,11 +242,9 @@ about symbol function indirection. One possible consequence of this process is an infinite loop, in the -event that a symbol's function cell refers to the same symbol. Or a -symbol may have a void function cell, in which case the subroutine -@code{symbol-function} signals a @code{void-function} error. But if -neither of these things happens, we eventually obtain a non-symbol, -which ought to be a function or other suitable object. +event that a symbol's function cell refers to the same symbol. +Otherwise, we eventually obtain a non-symbol, which ought to be a +function or other suitable object. @kindex invalid-function More precisely, we should now have a Lisp function (a lambda @@ -255,12 +253,12 @@ described in one of the following sections. If the object is not one of these types, Emacs signals an @code{invalid-function} error. - The following example illustrates the symbol indirection process. We -use @code{fset} to set the function cell of a symbol and + The following example illustrates the symbol indirection process. +We use @code{fset} to set the function cell of a symbol and @code{symbol-function} to get the function cell contents -(@pxref{Function Cells}). Specifically, we store the symbol @code{car} -into the function cell of @code{first}, and the symbol @code{first} into -the function cell of @code{erste}. +(@pxref{Function Cells}). Specifically, we store the symbol +@code{car} into the function cell of @code{first}, and the symbol +@code{first} into the function cell of @code{erste}. @example @group === modified file 'doc/lispref/functions.texi' --- doc/lispref/functions.texi 2013-09-12 12:22:17 +0000 +++ doc/lispref/functions.texi 2013-12-27 03:38:26 +0000 @@ -1001,12 +1001,12 @@ @defun symbol-function symbol @kindex void-function -This returns the object in the function cell of @var{symbol}. If the -symbol's function cell is void, a @code{void-function} error is -signaled. +This returns the object in the function cell of @var{symbol}. It does +not check that the returned object is a legitimate function. -This function does not check that the returned object is a legitimate -function. +If the function cell is void, the return value is @code{nil}. To +distinguish between a function cell that is void and one set to +@code{nil}, use @code{fboundp} (see below). @example @group @@ -1026,10 +1026,10 @@ @end defun @cindex void function cell - If you have never given a symbol any function definition, we say that -that symbol's function cell is @dfn{void}. In other words, the function -cell does not have any Lisp object in it. If you try to call such a symbol -as a function, it signals a @code{void-function} error. + If you have never given a symbol any function definition, we say +that that symbol's function cell is @dfn{void}. In other words, the +function cell does not have any Lisp object in it. If you try to call +the symbol as a function, Emacs signals a @code{void-function} error. Note that void is not the same as @code{nil} or the symbol @code{void}. The symbols @code{nil} and @code{void} are Lisp objects, === modified file 'doc/lispref/keymaps.texi' --- doc/lispref/keymaps.texi 2013-12-25 10:24:52 +0000 +++ doc/lispref/keymaps.texi 2013-12-27 03:38:26 +0000 @@ -1551,32 +1551,36 @@ @node Translation Keymaps @section Keymaps for Translating Sequences of Events +@cindex translation keymap @cindex keymaps for translating events - This section describes keymaps that are used during reading a key -sequence, to translate certain event sequences into others. -@code{read-key-sequence} checks every subsequence of the key sequence -being read, as it is read, against @code{input-decode-map}, then -@code{local-function-key-map}, and then against @code{key-translation-map}. - -These keymaps have the same structure as other keymaps, but they are used -differently: they specify translations to make while reading key sequences, -rather than bindings for key sequences. - -If one of these keymaps ``binds'' a key sequence @var{k} to a vector -@var{v}, then when @var{k} appears as a subsequence @emph{anywhere} in a -key sequence, it is replaced with the events in @var{v}. - -For example, VT100 terminals send @kbd{@key{ESC} O P} when the -keypad @key{PF1} key is pressed. Therefore, we want Emacs to translate -that sequence of events into the single event @code{pf1}. We accomplish -this by ``binding'' @kbd{@key{ESC} O P} to @code{[pf1]} in -@code{input-decode-map}, when using a VT100. - -Thus, typing @kbd{C-c @key{PF1}} sends the character sequence @kbd{C-c -@key{ESC} O P}; later the function @code{read-key-sequence} translates -this back into @kbd{C-c @key{PF1}}, which it returns as the vector -@code{[?\C-c pf1]}. + When the @code{read-key-sequence} function reads a key sequence +(@pxref{Key Sequence Input}), it uses @dfn{translation keymaps} to +translate certain event sequences into others. The translation +keymaps are @code{input-decode-map}, @code{local-function-key-map}, +and @code{key-translation-map} (in order of priority). + + Translation keymaps have the same structure as other keymaps, but +are used differently: they specify translations to make while reading +key sequences, rather than bindings for complete key sequences. As +each key sequence is read, it is checked against each translation +keymap. If one of the translation keymaps ``binds'' @var{k} to a +vector @var{v}, then whenever @var{k} appears as a sub-sequence +@emph{anywhere} in a key sequence, that sub-sequence is replaced with +the events in @var{v}. + + For example, VT100 terminals send @kbd{@key{ESC} O P} when the +keypad key @key{PF1} is pressed. On such terminals, Emacs must +translate that sequence of events into a single event @code{pf1}. +This is done by ``binding'' @kbd{@key{ESC} O P} to @code{[pf1]} in +@code{input-decode-map}. Thus, when you type @kbd{C-c @key{PF1}} on +the terminal, the terminal emits the character sequence @kbd{C-c +@key{ESC} O P}, and @code{read-key-sequence} translates this back into +@kbd{C-c @key{PF1}} and returns it as the vector @code{[?\C-c pf1]}. + + Translation keymaps take effect only after Emacs has decoded the +keyboard input (via the input coding system specified by +@code{keyboard-coding-system}). @xref{Terminal I/O Encoding}. @defvar input-decode-map This variable holds a keymap that describes the character sequences sent @@ -1664,10 +1668,6 @@ @end group @end example - If you have enabled keyboard character set decoding using -@code{set-keyboard-coding-system}, decoding is done before the -translations listed above. @xref{Terminal I/O Encoding}. - @subsection Interaction with normal keymaps The end of a key sequence is detected when that key sequence either is bound === modified file 'doc/lispref/nonascii.texi' --- doc/lispref/nonascii.texi 2013-12-25 10:24:52 +0000 +++ doc/lispref/nonascii.texi 2013-12-27 03:38:26 +0000 @@ -1807,24 +1807,23 @@ @node Terminal I/O Encoding @subsection Terminal I/O Encoding - Emacs can decode keyboard input using a coding system, and encode + Emacs can use coding systems to decode keyboard input and encode terminal output. This is useful for terminals that transmit or -display text using a particular encoding such as Latin-1. Emacs does -not set @code{last-coding-system-used} for encoding or decoding of +display text using a particular encoding, such as Latin-1. Emacs does +not set @code{last-coding-system-used} when encoding or decoding terminal I/O. @defun keyboard-coding-system &optional terminal -This function returns the coding system that is in use for decoding -keyboard input from @var{terminal}---or @code{nil} if no coding system -is to be used for that terminal. If @var{terminal} is omitted or -@code{nil}, it means the selected frame's terminal. @xref{Multiple -Terminals}. +This function returns the coding system used for decoding keyboard +input from @var{terminal}. A value of @code{no-conversion} means no +decoding is done. If @var{terminal} is omitted or @code{nil}, it +means the selected frame's terminal. @xref{Multiple Terminals}. @end defun @deffn Command set-keyboard-coding-system coding-system &optional terminal This command specifies @var{coding-system} as the coding system to use for decoding keyboard input from @var{terminal}. If -@var{coding-system} is @code{nil}, that means do not decode keyboard +@var{coding-system} is @code{nil}, that means not to decode keyboard input. If @var{terminal} is a frame, it means that frame's terminal; if it is @code{nil}, that means the currently selected frame's terminal. @xref{Multiple Terminals}. @@ -1832,18 +1831,19 @@ @defun terminal-coding-system &optional terminal This function returns the coding system that is in use for encoding -terminal output from @var{terminal}---or @code{nil} if the output is -not encoded. If @var{terminal} is a frame, it means that frame's -terminal; if it is @code{nil}, that means the currently selected -frame's terminal. +terminal output from @var{terminal}. A value of @code{no-conversion} +means no encoding is done. If @var{terminal} is a frame, it means +that frame's terminal; if it is @code{nil}, that means the currently +selected frame's terminal. @end defun @deffn Command set-terminal-coding-system coding-system &optional terminal This command specifies @var{coding-system} as the coding system to use for encoding terminal output from @var{terminal}. If -@var{coding-system} is @code{nil}, terminal output is not encoded. If -@var{terminal} is a frame, it means that frame's terminal; if it is -@code{nil}, that means the currently selected frame's terminal. +@var{coding-system} is @code{nil}, that means not to encode terminal +output. If @var{terminal} is a frame, it means that frame's terminal; +if it is @code{nil}, that means the currently selected frame's +terminal. @end deffn @node Input Methods === modified file 'etc/NEWS' --- etc/NEWS 2013-12-26 22:02:49 +0000 +++ etc/NEWS 2013-12-27 03:38:26 +0000 @@ -917,10 +917,12 @@ ** Default process filters and sentinels are not nil any more. Instead they default to a function which does what the nil value used to do. ++++ ** `read-event' does not return decoded chars in ttys any more. -Just as was the case in Emacs-22 and before, decoding of tty input according to -keyboard-coding-system is not performed in read-event any more. But contrary -to that past, it is still done before input-decode-map/function-key-map/... +As was the case in Emacs 22 and before, the decoding of terminal +input, according to `keyboard-coding-system', is not performed in +`read-event' any more. But unlike in Emacs 22, this decoding is still +done before input-decode-map, function-key-map, etc. --- ** Removed `inhibit-local-menu-bar-menus'. @@ -930,10 +932,12 @@ More specifically, the redisplay does not bother to check for a frame-local value when looking up variables. ++++ ** nil and "unbound" are indistinguishable in `symbol-function'. -`symbol-function' never signals `void-function' any more. -`fboundp' returns non-nil if the symbol was `fset' to nil. +`symbol-function' does not signal a `void-function' error any more. +To determine if a symbol's function definition is void, use `fboundp'. ++++ ** `defadvice' does not honor the `freeze' flag and cannot advise special-forms any more. === modified file 'src/ChangeLog' --- src/ChangeLog 2013-12-26 11:31:42 +0000 +++ src/ChangeLog 2013-12-27 03:38:26 +0000 @@ -1,3 +1,7 @@ +2013-12-27 Chong Yidong + + * data.c (Fsymbol_function): Doc fix. + 2013-12-26 Martin Rudalics Some more tinkering with Bug#16051. @@ -7649,7 +7653,7 @@ * keyboard.c: Apply keyboard decoding only to events that come directly from the tty, not from unread-command-events (bug#14368). - (read_event_from_main_queue): New function, extracted from read_char). + (read_event_from_main_queue): New function, extracted from read_char. (read_decoded_char): Remove. (read_decoded_event_from_main_queue): New function to replace it. (read_char): Use it. === modified file 'src/data.c' --- src/data.c 2013-11-25 23:25:04 +0000 +++ src/data.c 2013-12-27 03:38:26 +0000 @@ -686,7 +686,7 @@ } DEFUN ("symbol-function", Fsymbol_function, Ssymbol_function, 1, 1, 0, - doc: /* Return SYMBOL's function definition. Error if that is void. */) + doc: /* Return SYMBOL's function definition, or nil if that is void. */) (register Lisp_Object symbol) { CHECK_SYMBOL (symbol);