Now on revision 112532. ------------------------------------------------------------ revno: 112532 fixes bug: http://debbugs.gnu.org/13456 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-05-08 23:46:51 -0700 message: * lisp/gnus/mml1991.el: Make it loadable. * lisp/gnus/mml2015.el: Comment. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-05-09 01:40:20 +0000 +++ lisp/gnus/ChangeLog 2013-05-09 06:46:51 +0000 @@ -1,5 +1,7 @@ 2013-05-09 Glenn Morris + * mml1991.el: Make it loadable. (Bug#13456) + * gnus-art.el (gnus-article-date-headers, gnus-blocked-images): * gnus-async.el (gnus-async-post-fetch-function): * gnus-gravatar.el (gnus-gravatar-size, gnus-gravatar-properties): === modified file 'lisp/gnus/mml1991.el' --- lisp/gnus/mml1991.el 2013-03-05 17:13:01 +0000 +++ lisp/gnus/mml1991.el 2013-05-09 06:46:51 +0000 @@ -50,6 +50,8 @@ (autoload 'message-options-get "message") (autoload 'message-options-set "message") +(require 'mml2015) + (defvar mml1991-use mml2015-use "The package used for PGP.") === modified file 'lisp/gnus/mml2015.el' --- lisp/gnus/mml2015.el 2013-05-06 07:16:34 +0000 +++ lisp/gnus/mml2015.el 2013-05-09 06:46:51 +0000 @@ -47,6 +47,9 @@ (config &optional minimum-version)) (declare-function epg-configuration "ext:epg-config" ()) +;; Maybe this should be in eg mml-sec.el (and have a different name). +;; Then mml1991 would not need to require mml2015, and mml1991-use +;; could be removed. (defvar mml2015-use (or (condition-case nil (progn ------------------------------------------------------------ revno: 112531 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-05-08 23:09:39 -0700 message: admin/cus-test,el misc updates Mainly for some files listed in loaddefs.el now being in subdirs that are not in load-path. * admin/cus-test.el (cus-test-libs-noloads): Add dunnet in the defvar. (dunnet): Don't always load it. (viper-mode): Only set if interactive. (cus-test-load-custom-loads): Load dunnet if necessary. (cus-test-load-1): New macro, with common code from cus-test-load-libs and cus-test-libs. (cus-test-load-libs, cus-test-libs): Use cus-test-load-1 macro. Update for cus-test-get-autoload-deps changed result. (cus-test-get-autoload-deps): Simplify. Return file names as they appear in loaddefs.el (directory parts are needed now that not all lisp subdirs are in load-path). (cus-test-deps): Explicitly skip dunnet. diff: === modified file 'admin/ChangeLog' --- admin/ChangeLog 2013-05-09 03:17:44 +0000 +++ admin/ChangeLog 2013-05-09 06:09:39 +0000 @@ -1,6 +1,18 @@ 2013-05-09 Glenn Morris * cus-test.el: No need to provide bbdb, bbdb-com any more. + (cus-test-libs-noloads): Add dunnet in the defvar. + (dunnet): Don't always load it. + (viper-mode): Only set if interactive. + (cus-test-load-custom-loads): Load dunnet if necessary. + (cus-test-load-1): New macro, with common code from cus-test-load-libs + and cus-test-libs. + (cus-test-load-libs, cus-test-libs): Use cus-test-load-1 macro. + Update for cus-test-get-autoload-deps changed result. + (cus-test-get-autoload-deps): Simplify. Return file names as they + appear in loaddefs.el (directory parts are needed now that not all + lisp subdirs are in load-path). + (cus-test-deps): Explicitly skip dunnet. 2013-05-07 Paul Eggert === modified file 'admin/cus-test.el' --- admin/cus-test.el 2013-05-09 03:17:44 +0000 +++ admin/cus-test.el 2013-05-09 06:09:39 +0000 @@ -99,18 +99,17 @@ (defvar cus-test-skip-list nil "List of variables to disregard by `cus-test-apropos'.") -(defvar cus-test-libs-noloads nil - "List of libraries not to load by `cus-test-load-libs'.") +;; Loading dunnet in batch mode leads to a Dead end. +(defvar cus-test-libs-noloads '("play/dunnet.el") + "List of files not to load by `cus-test-load-libs'. +Names should be as they appear in loaddefs.el.") ;; This avoids a hang of `cus-test-apropos' in 21.2. ;; (add-to-list 'cus-test-skip-list 'sh-alias-alist) -;; Loading dunnet in batch mode leads to a Dead end. -(let (noninteractive) (load "dunnet")) -(add-to-list 'cus-test-libs-noloads "dunnet") - -;; Never Viperize. -(setq viper-mode nil) +(or noninteractive + ;; Never Viperize. + (setq viper-mode nil)) ;; Don't create a file `save-place-file'. (eval-after-load "saveplace" @@ -259,49 +258,49 @@ (defun cus-test-load-custom-loads () "Call `custom-load-symbol' on all atoms." (interactive) + (if noninteractive (let (noninteractive) (require 'dunnet))) (mapatoms 'custom-load-symbol) (run-hooks 'cus-test-after-load-libs-hook)) +(defmacro cus-test-load-1 (&rest body) + `(progn + (setq cus-test-libs-errors nil + cus-test-libs-loaded nil) + ,@body + (message "%s libraries loaded successfully" + (length cus-test-libs-loaded)) + (if (not cus-test-libs-errors) + (message "No load problems encountered") + (message "The following load problems appeared:") + (cus-test-message cus-test-libs-errors)) + (run-hooks 'cus-test-after-load-libs-hook))) + +;; This is just cus-test-libs, but loading in the current Emacs process. (defun cus-test-load-libs () "Load the libraries with autoloads. Don't load libraries in `cus-test-libs-noloads'." (interactive) - (setq cus-test-libs-errors nil) - (setq cus-test-libs-loaded nil) - (mapc - (lambda (file) - (condition-case alpha - (unless (member file cus-test-libs-noloads) - (load file) - (push file cus-test-libs-loaded)) - (error - (push (cons file alpha) cus-test-libs-errors) - (message "Error for %s: %s" file alpha)))) - (cus-test-get-autoload-deps)) - (message "%s libraries loaded successfully" - (length cus-test-libs-loaded)) - (if (not cus-test-libs-errors) - (message "No load problems encountered") - (message "The following load problems appeared:") - (cus-test-message cus-test-libs-errors)) - (run-hooks 'cus-test-after-load-libs-hook)) + (cus-test-load-1 + (let ((lispdir (file-name-directory (locate-library "loaddefs")))) + (mapc + (lambda (file) + (condition-case alpha + (unless (member file cus-test-libs-noloads) + (load (file-name-sans-extension (expand-file-name file lispdir))) + (push file cus-test-libs-loaded)) + (error + (push (cons file alpha) cus-test-libs-errors) + (message "Error for %s: %s" file alpha)))) + (cus-test-get-autoload-deps))))) (defun cus-test-get-autoload-deps () - "Return the list of libraries with autoloads." + "Return the list of files with autoloads." (with-temp-buffer (insert-file-contents (locate-library "loaddefs")) - ;; This is from `customize-option'. - (let (deps file) - (while - (search-forward "\n;;; Generated autoloads from " nil t) - (goto-char (match-end 0)) - (setq file (buffer-substring (point) - (progn (end-of-line) (point)))) - (setq file (file-name-nondirectory file)) - (string-match "\\.el\\'" file) - (setq file (substring file 0 (match-beginning 0))) - (setq deps (nconc deps (list file)))) - deps))) + (let (files) + (while (search-forward "\n;;; Generated autoloads from " nil t) + (push (buffer-substring (match-end 0) (line-end-position)) files)) + files))) (defun cus-test-message (list) "Print the members of LIST line by line." @@ -349,7 +348,8 @@ ((symbolp load) ;; (condition-case nil (require load) (error nil)) (condition-case alpha - (unless (featurep load) + (unless (or (featurep load) + (and noninteractive (eq load 'dunnet))) (require load) (push (list symbol load) cus-test-deps-required)) (error @@ -406,42 +406,41 @@ This function is useful to detect load problems of libraries. It is suitable for batch mode. E.g., invoke - src/emacs -batch -l admin/cus-test.el -f cus-test-libs + ./src/emacs -batch -l admin/cus-test.el -f cus-test-libs in the Emacs source directory." (interactive) - (with-temp-buffer - (setq cus-test-libs-errors nil) - (setq cus-test-libs-loaded nil) - (cd source-directory) - (if (not (file-executable-p "src/emacs")) - (error "No Emacs executable in %ssrc" default-directory)) - (mapc - (lambda (file) - (condition-case alpha - (let (fn cmd status) - (setq fn (locate-library file)) - (if (not fn) - (error "Library %s not found" file)) - (setq cmd (concat "src/emacs -batch -l " fn)) - (setq status (call-process shell-file-name nil nil nil - shell-command-switch cmd)) - (if (equal status 0) - (message "%s" file) - (error "%s" status)) - (push file cus-test-libs-loaded)) - (error - (push (cons file alpha) cus-test-libs-errors) - (message "Error for %s: %s" file alpha)))) - (cus-test-get-autoload-deps)) - (message "Default Directory: %s" default-directory) - (message "%s libraries had no load errors" - (length cus-test-libs-loaded)) - (if (not cus-test-libs-errors) - (message "No load problems encountered") - (message "The following load problems appeared:") - (cus-test-message cus-test-libs-errors)) - (run-hooks 'cus-test-after-load-libs-hook))) + (cus-test-load-1 + (let ((default-directory source-directory) + (emacs (expand-file-name "src/emacs")) + skipped) + (or (file-executable-p emacs) + (error "No Emacs executable in %ssrc" default-directory)) + (mapc + (lambda (file) + (if (member file cus-test-libs-noloads) + (push file skipped) + (condition-case alpha + (let* ((fn (expand-file-name file "lisp/")) + (elc (concat fn "c")) + status) + (if (file-readable-p elc) ; load compiled if present (faster) + (setq fn elc) + (or (file-readable-p fn) + (error "Library %s not found" file))) + (if (equal 0 (setq status (call-process emacs nil nil nil + "-batch" "-l" fn))) + (message "%s" file) + (error "%s" status)) + (push file cus-test-libs-loaded)) + (error + (push (cons file alpha) cus-test-libs-errors) + (message "Error for %s: %s" file alpha))))) + (cus-test-get-autoload-deps)) + (message "Default directory: %s" default-directory) + (when skipped + (message "The following libraries were skipped:") + (cus-test-message skipped))))) (defun cus-test-noloads () "Find custom options not loaded by `custom-load-symbol'. ------------------------------------------------------------ revno: 112530 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-05-08 20:17:44 -0700 message: * admin/cus-test.el: No need to provide bbdb, bbdb-com any more. Remove some outdated comments. diff: === modified file 'admin/ChangeLog' --- admin/ChangeLog 2013-05-07 21:34:03 +0000 +++ admin/ChangeLog 2013-05-09 03:17:44 +0000 @@ -1,3 +1,7 @@ +2013-05-09 Glenn Morris + + * cus-test.el: No need to provide bbdb, bbdb-com any more. + 2013-05-07 Paul Eggert Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295) === modified file 'admin/cus-test.el' --- admin/cus-test.el 2013-01-01 09:11:05 +0000 +++ admin/cus-test.el 2013-05-09 03:17:44 +0000 @@ -87,43 +87,6 @@ ;; The command `cus-test-noloads' returns a list of variables which ;; are somewhere declared as custom options, but not loaded by ;; `custom-load-symbol'. -;; -;; Some results from October 2002: -;; -;; 4523 options tested -;; The following variables might have problems: -;; ps-mule-font-info-database-default -;; grep-tree-command -;; grep-find-command -;; -;; 288 features required -;; 10 files loaded -;; The following load problems appeared: -;; (killing x-win (file-error Cannot open load file x-win)) -;; Symbol faces has loaddefs as custom dependency -;; (reftex-index-support reftex-vars (void-function reftex-set-dirty)) -;; (eshell-script em-script (void-variable eshell-directory-name)) -;; (pcomplete em-cmpl (void-function eshell-under-windows-p)) -;; (eshell-ext esh-ext (void-function eshell-under-windows-p)) -;; ... -;; -;; 422 libraries had no load errors -;; The following load problems appeared: -;; (eudc-export error 255) -;; (ada-xref error 255) -;; (ada-stmt error 255) -;; -;; The following options were not loaded by custom-load-symbol: -;; edt-bottom-scroll-margin -;; edt-keep-current-page-delimiter -;; edt-top-scroll-margin -;; edt-use-EDT-control-key-bindings -;; edt-word-entities -;; grep-find-use-xargs -;; master-mode-hook -;; outline-level -;; outline-minor-mode-hook -;; refill-mode-hook ;;; Code: @@ -139,12 +102,6 @@ (defvar cus-test-libs-noloads nil "List of libraries not to load by `cus-test-load-libs'.") -;; The file eudc-export.el loads libraries "bbdb" and "bbdb-com" which -;; are not part of GNU Emacs: (locate-library "bbdb") => nil -;; We avoid the resulting errors from loading eudc-export.el: -(provide 'bbdb) -(provide 'bbdb-com) - ;; This avoids a hang of `cus-test-apropos' in 21.2. ;; (add-to-list 'cus-test-skip-list 'sh-alias-alist) @@ -517,11 +474,6 @@ (cus-test-message (sort cus-test-vars-not-cus-loaded 'string<))))) -;; And last but not least a quiz: -;; -;; Evaluation of the form (customize-option 'debug-on-error) yields a -;; *Customize* buffer with a mismatch mess. Why? - (provide 'cus-test) ;;; cus-test.el ends here ------------------------------------------------------------ revno: 112529 [merge] committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-05-08 19:44:12 -0700 message: Merge from emacs-24; up to r111350 diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2013-05-05 00:51:49 +0000 +++ doc/emacs/ChangeLog 2013-05-09 02:44:12 +0000 @@ -1,3 +1,13 @@ +2013-05-09 Glenn Morris + + * sending.texi (Mail Sending): Fix typo. + + * windows.texi (Change Window): Fix typo. + + * custom.texi (Changing a Variable): Fix typo. + + * trouble.texi (Contributing): Remove obsolete info re pretesters. + 2013-05-05 Paul Eggert `write-region-inhibit-fsync' defaults to noninteractive (Bug#14273). === modified file 'doc/emacs/custom.texi' --- doc/emacs/custom.texi 2013-01-18 01:53:34 +0000 +++ doc/emacs/custom.texi 2013-05-07 06:43:34 +0000 @@ -345,7 +345,7 @@ @kindex C-x C-c @r{(customization buffer)} @findex Custom-set @findex Custom-save - The command @kbd{C-c C-c} (@code{Custom-set}) is equivalent using to + The command @kbd{C-c C-c} (@code{Custom-set}) is equivalent to using the @samp{[Set for Current Session]} button. The command @kbd{C-x C-s} (@code{Custom-save}) is like using the @samp{[Save for Future Sessions]} button. === modified file 'doc/emacs/sending.texi' --- doc/emacs/sending.texi 2013-01-01 09:11:05 +0000 +++ doc/emacs/sending.texi 2013-05-08 03:49:29 +0000 @@ -374,7 +374,7 @@ sending mail via @code{smtpmail-send-it} (see below). @item smtpmail-send-it -Send mail using the through an external mail host, such as your +Send mail through an external mail host, such as your Internet service provider's outgoing SMTP mail server. If you have not told Emacs how to contact the SMTP server, it prompts for this information, which is saved in the @code{smtpmail-smtp-server} variable === modified file 'doc/emacs/trouble.texi' --- doc/emacs/trouble.texi 2013-02-10 01:56:25 +0000 +++ doc/emacs/trouble.texi 2013-05-09 02:44:12 +0000 @@ -1138,12 +1138,9 @@ @section Contributing to Emacs Development @cindex contributing to Emacs -If you would like to help pretest Emacs releases to assure they work -well, or if you would like to work on improving Emacs, please contact -the maintainers at @email{emacs-devel@@gnu.org}. A pretester -should be prepared to investigate bugs as well as report them. If you'd -like to work on improving Emacs, please ask for suggested projects or -suggest your own ideas. +If you would like to work on improving Emacs, please contact +the maintainers at @email{emacs-devel@@gnu.org}. You can ask for +suggested projects or suggest your own ideas. If you have already written an improvement, please tell us about it. If you have not yet started work, it is useful to contact === modified file 'doc/emacs/windows.texi' --- doc/emacs/windows.texi 2013-01-01 09:11:05 +0000 +++ doc/emacs/windows.texi 2013-05-08 03:49:29 +0000 @@ -258,7 +258,7 @@ the space that it occupied is given to an adjacent window (but not the minibuffer window, even if that is active at the time). Deleting the window has no effect on the buffer it used to display; the buffer -continues to exist, and you can still switch to with @kbd{C-x b}. +continues to exist, and you can still switch to it with @kbd{C-x b}. @findex kill-buffer-and-window @kindex C-x 4 0 === modified file 'etc/MORE.STUFF' --- etc/MORE.STUFF 2013-02-21 06:05:10 +0000 +++ etc/MORE.STUFF 2013-04-28 17:40:32 +0000 @@ -41,6 +41,9 @@ The Emacs Wiki has an area for storing elisp files . +* WikEmacs + is an alternative wiki for Emacs. + * Emacs slides and tutorials can be found here: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-09 02:42:10 +0000 +++ lisp/ChangeLog 2013-05-09 02:44:12 +0000 @@ -1,3 +1,7 @@ +2013-05-09 Ulrich Mueller + + * descr-text.el (describe-char): Fix %d/%x typo. (Bug#14360) + 2013-05-09 Glenn Morris * international/fontset.el (vertical-centering-font-regexp): === modified file 'lisp/descr-text.el' --- lisp/descr-text.el 2013-02-13 14:54:59 +0000 +++ lisp/descr-text.el 2013-05-09 02:44:12 +0000 @@ -753,7 +753,7 @@ (insert " by these characters:\n") (while (and (<= from to) (setq glyph (lgstring-glyph gstring from))) - (insert (format " %c (#x%d)\n" + (insert (format " %c (#x%x)\n" (lglyph-char glyph) (lglyph-char glyph))) (setq from (1+ from))))) (insert " by the rule:\n\t(") ------------------------------------------------------------ revno: 112528 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-05-08 22:42:10 -0400 message: * fontset.el (vertical-centering-font-regexp): Set standard-value. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-09 01:42:00 +0000 +++ lisp/ChangeLog 2013-05-09 02:42:10 +0000 @@ -1,5 +1,8 @@ 2013-05-09 Glenn Morris + * international/fontset.el (vertical-centering-font-regexp): + Set standard-value. + * tar-mode.el (tar-superior-buffer, tar-superior-descriptor): Add doc. * bookmark.el (bookmark-search-delay): === modified file 'lisp/international/fontset.el' --- lisp/international/fontset.el 2013-01-01 09:11:05 +0000 +++ lisp/international/fontset.el 2013-05-09 02:42:10 +0000 @@ -805,6 +805,8 @@ ;; These fonts require vertical centering. (setq vertical-centering-font-regexp (purecopy "gb2312\\|gbk\\|gb18030\\|jisx0208\\|jisx0212\\|ksc5601\\|cns11643\\|big5")) +(put 'vertical-centering-font-regexp 'standard-value + (list vertical-centering-font-regexp)) ;; CDAC fonts are actually smaller than their design sizes. (setq face-font-rescale-alist ------------------------------------------------------------ revno: 112527 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-05-08 21:42:00 -0400 message: * lisp/tar-mode.el (tar-superior-buffer, tar-superior-descriptor): Add doc. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-09 01:40:20 +0000 +++ lisp/ChangeLog 2013-05-09 01:42:00 +0000 @@ -1,5 +1,7 @@ 2013-05-09 Glenn Morris + * tar-mode.el (tar-superior-buffer, tar-superior-descriptor): Add doc. + * bookmark.el (bookmark-search-delay): * cus-start.el (vertical-centering-font-regexp): * ps-mule.el (ps-mule-font-info-database-default): === modified file 'lisp/tar-mode.el' --- lisp/tar-mode.el 2013-01-01 09:11:05 +0000 +++ lisp/tar-mode.el 2013-05-09 01:42:00 +0000 @@ -133,8 +133,10 @@ :group 'tar) (defvar tar-parse-info nil) -(defvar tar-superior-buffer nil) -(defvar tar-superior-descriptor nil) +(defvar tar-superior-buffer nil + "Buffer containing the tar archive from which a member was extracted.") +(defvar tar-superior-descriptor nil + "Tar descriptor for a member extracted from an archive.") (defvar tar-file-name-coding-system nil) (put 'tar-superior-buffer 'permanent-local t) ------------------------------------------------------------ revno: 112526 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-05-08 21:40:20 -0400 message: Fix a bunch of custom types (thank you cus-test.el) * lisp/bookmark.el (bookmark-search-delay): * lisp/cus-start.el (vertical-centering-font-regexp): * lisp/ps-mule.el (ps-mule-font-info-database-default): * lisp/ps-print.el (ps-default-fg, ps-default-bg): * lisp/type-break.el (type-break-good-break-interval): * lisp/whitespace.el (whitespace-indentation-regexp) (whitespace-space-after-tab-regexp): * lisp/emacs-lisp/testcover.el (testcover-1value-functions) (testcover-noreturn-functions, testcover-progn-functions) (testcover-prog1-functions): * lisp/emulation/viper-init.el (viper-emacs-state-cursor-color): * lisp/erc/erc-desktop-notifications.el (erc-notifications-icon): * lisp/eshell/em-glob.el (eshell-glob-translate-alist): * lisp/gnus/gnus-art.el (gnus-article-date-headers, gnus-blocked-images): * lisp/gnus/gnus-async.el (gnus-async-post-fetch-function): * lisp/gnus/gnus-gravatar.el (gnus-gravatar-size, gnus-gravatar-properties): * lisp/gnus/gnus-html.el (gnus-html-image-cache-ttl): * lisp/gnus/gnus-notifications.el (gnus-notifications-timeout): * lisp/gnus/gnus-picon.el (gnus-picon-properties): * lisp/gnus/gnus-util.el (gnus-completion-styles): * lisp/gnus/gnus.el (gnus-other-frame-resume-function): * lisp/gnus/message.el (message-user-organization-file) (message-cite-reply-position): * lisp/gnus/nnir.el (nnir-summary-line-format) (nnir-retrieve-headers-override-function): * lisp/gnus/shr-color.el (shr-color-visible-luminance-min): * lisp/gnus/shr.el (shr-blocked-images): * lisp/gnus/spam-report.el (spam-report-resend-to): * lisp/gnus/spam.el (spam-summary-exit-behavior): * lisp/mh-e/mh-e.el (mh-sortm-args, mh-default-folder-for-message-function): * lisp/play/tetris.el (tetris-tty-colors): * lisp/progmodes/cpp.el (cpp-face-default-list): * lisp/progmodes/flymake.el (flymake-allowed-file-name-masks): * lisp/progmodes/idlw-help.el (idlwave-help-browser-generic-program) (idlwave-help-browser-generic-args): * lisp/progmodes/make-mode.el (makefile-special-targets-list): * lisp/progmodes/python.el (python-shell-virtualenv-path): * lisp/progmodes/verilog-mode.el (verilog-active-low-regexp) (verilog-auto-input-ignore-regexp, verilog-auto-inout-ignore-regexp) (verilog-auto-output-ignore-regexp, verilog-auto-tieoff-ignore-regexp) (verilog-auto-unused-ignore-regexp, verilog-typedef-regexp): * lisp/textmodes/reftex-vars.el (reftex-format-label-function): * lisp/textmodes/remember.el (remember-diary-file): Fix custom types. * lisp/cedet/semantic/db-find.el (semanticdb-find-throttle-custom-list): Fix value. * lisp/gnus/gnus-salt.el (gnus-selected-tree-face): Fix default. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-09 01:06:10 +0000 +++ lisp/ChangeLog 2013-05-09 01:40:20 +0000 @@ -1,5 +1,31 @@ 2013-05-09 Glenn Morris + * bookmark.el (bookmark-search-delay): + * cus-start.el (vertical-centering-font-regexp): + * ps-mule.el (ps-mule-font-info-database-default): + * ps-print.el (ps-default-fg, ps-default-bg): + * type-break.el (type-break-good-break-interval): + * whitespace.el (whitespace-indentation-regexp) + (whitespace-space-after-tab-regexp): + * emacs-lisp/testcover.el (testcover-1value-functions) + (testcover-noreturn-functions, testcover-progn-functions) + (testcover-prog1-functions): + * emulation/viper-init.el (viper-emacs-state-cursor-color): + * eshell/em-glob.el (eshell-glob-translate-alist): + * play/tetris.el (tetris-tty-colors): + * progmodes/cpp.el (cpp-face-default-list): + * progmodes/flymake.el (flymake-allowed-file-name-masks): + * progmodes/idlw-help.el (idlwave-help-browser-generic-program) + (idlwave-help-browser-generic-args): + * progmodes/make-mode.el (makefile-special-targets-list): + * progmodes/python.el (python-shell-virtualenv-path): + * progmodes/verilog-mode.el (verilog-active-low-regexp) + (verilog-auto-input-ignore-regexp, verilog-auto-inout-ignore-regexp) + (verilog-auto-output-ignore-regexp, verilog-auto-tieoff-ignore-regexp) + (verilog-auto-unused-ignore-regexp, verilog-typedef-regexp): + * textmodes/reftex-vars.el (reftex-format-label-function): + * textmodes/remember.el (remember-diary-file): Fix custom types. + * jka-cmpr-hook.el (jka-compr-mode-alist-additions): Fix typo. Add :version. === modified file 'lisp/bookmark.el' --- lisp/bookmark.el 2013-04-19 05:11:16 +0000 +++ lisp/bookmark.el 2013-05-09 01:40:20 +0000 @@ -170,7 +170,7 @@ (defcustom bookmark-search-delay 0.2 "Time before `bookmark-bmenu-search' updates the display." :group 'bookmark - :type 'integer) + :type 'number) (defface bookmark-menu-heading '((t (:inherit font-lock-type-face))) === modified file 'lisp/cedet/ChangeLog' --- lisp/cedet/ChangeLog 2013-04-27 21:45:37 +0000 +++ lisp/cedet/ChangeLog 2013-05-09 01:40:20 +0000 @@ -1,3 +1,8 @@ +2013-05-09 Glenn Morris + + * semantic/db-find.el (semanticdb-find-throttle-custom-list): + Fix value. + 2013-04-27 David Engster * semantic/complete.el === modified file 'lisp/cedet/semantic/db-find.el' --- lisp/cedet/semantic/db-find.el 2013-03-21 22:11:03 +0000 +++ lisp/cedet/semantic/db-find.el 2013-05-09 01:40:20 +0000 @@ -130,12 +130,12 @@ (declare-function ede-current-project "ede") (defvar semanticdb-find-throttle-custom-list - '(repeat (radio (const 'local) - (const 'project) - (const 'unloaded) - (const 'system) - (const 'recursive) - (const 'omniscience))) + '(set (const local) + (const project) + (const unloaded) + (const system) + (const recursive) + (const omniscience)) "Customization values for semanticdb find throttle. See `semanticdb-find-throttle' for details.") === modified file 'lisp/cus-start.el' --- lisp/cus-start.el 2013-02-11 19:21:23 +0000 +++ lisp/cus-start.el 2013-05-09 01:40:20 +0000 @@ -252,7 +252,9 @@ (use-file-dialog menu boolean "22.1") (focus-follows-mouse frames boolean "20.3") ;; fontset.c - (vertical-centering-font-regexp display regexp) + ;; FIXME nil is the initial value, fontset.el setqs it. + (vertical-centering-font-regexp display + (choice (const nil) regexp)) ;; frame.c (default-frame-alist frames (repeat (cons :format "%v" === modified file 'lisp/emacs-lisp/testcover.el' --- lisp/emacs-lisp/testcover.el 2013-01-01 09:11:05 +0000 +++ lisp/emacs-lisp/testcover.el 2013-05-09 01:40:20 +0000 @@ -100,14 +100,14 @@ returns the same value (the function it defines may return varying values when called)." :group 'testcover - :type 'hook) + :type '(repeat symbol)) (defcustom testcover-noreturn-functions '(error noreturn throw signal) "Subset of `testcover-1value-functions' -- these never return. We mark them as having returned nil just before calling them." :group 'testcover - :type 'hook) + :type '(repeat symbol)) (defcustom testcover-compose-functions '(+ - * / = append length list make-keymap make-sparse-keymap @@ -132,7 +132,7 @@ call to one of the `testcover-1value-functions'. This list is probably incomplete!" :group 'testcover - :type 'hook) + :type '(repeat symbol)) (defcustom testcover-prog1-functions '(prog1 unwind-protect) @@ -140,7 +140,7 @@ brown splotch is shown for these if the first argument is a constant or a call to one of the `testcover-1value-functions'." :group 'testcover - :type 'hook) + :type '(repeat symbol)) (defcustom testcover-potentially-1value-functions '(add-hook and beep or remove-hook unless when) === modified file 'lisp/emulation/viper-init.el' --- lisp/emulation/viper-init.el 2013-01-01 09:11:05 +0000 +++ lisp/emulation/viper-init.el 2013-05-09 01:40:20 +0000 @@ -424,7 +424,7 @@ ;; (defcustom viper-emacs-state-cursor-color "Magenta" (defcustom viper-emacs-state-cursor-color nil "Cursor color when Viper is in Emacs state." - :type 'string + :type '(choice (const nil) string) :group 'viper) ;; internal var, used to remember the default cursor color of emacs frames === modified file 'lisp/erc/ChangeLog' --- lisp/erc/ChangeLog 2013-03-11 16:31:55 +0000 +++ lisp/erc/ChangeLog 2013-05-09 01:40:20 +0000 @@ -1,3 +1,8 @@ +2013-05-09 Glenn Morris + + * erc-desktop-notifications.el (erc-notifications-icon): + Fix custom type. + 2013-02-13 Aidan Gauland * erc-match.el (erc-match-message): Fix last commit. === modified file 'lisp/erc/erc-desktop-notifications.el' --- lisp/erc/erc-desktop-notifications.el 2013-01-01 09:11:05 +0000 +++ lisp/erc/erc-desktop-notifications.el 2013-05-09 01:40:20 +0000 @@ -44,7 +44,7 @@ (defcustom erc-notifications-icon nil "Icon to use for notification." :group 'erc-notifications - :type 'file) + :type '(choice (const :tag "No icon" nil) file)) (defun erc-notifications-notify (nick msg) "Notify that NICK send some MSG. === modified file 'lisp/eshell/em-glob.el' --- lisp/eshell/em-glob.el 2013-01-01 09:11:05 +0000 +++ lisp/eshell/em-glob.el 2013-05-09 01:40:20 +0000 @@ -119,7 +119,8 @@ "*" "+")) (+ pos 2)) (cons "*" (1+ pos)))))) "An alist for translation of extended globbing characters." - :type '(repeat (cons character (choice regexp function))) + :type '(alist :key-type character + :value-type (choice string function)) :group 'eshell-glob) ;;; Functions: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-05-07 10:24:15 +0000 +++ lisp/gnus/ChangeLog 2013-05-09 01:40:20 +0000 @@ -1,3 +1,24 @@ +2013-05-09 Glenn Morris + + * gnus-art.el (gnus-article-date-headers, gnus-blocked-images): + * gnus-async.el (gnus-async-post-fetch-function): + * gnus-gravatar.el (gnus-gravatar-size, gnus-gravatar-properties): + * gnus-html.el (gnus-html-image-cache-ttl): + * gnus-notifications.el (gnus-notifications-timeout): + * gnus-picon.el (gnus-picon-properties): + * gnus-util.el (gnus-completion-styles): + * gnus.el (gnus-other-frame-resume-function): + * message.el (message-user-organization-file) + (message-cite-reply-position): + * nnir.el (nnir-summary-line-format) + (nnir-retrieve-headers-override-function): + * shr-color.el (shr-color-visible-luminance-min): + * shr.el (shr-blocked-images): + * spam-report.el (spam-report-resend-to): + * spam.el (spam-summary-exit-behavior): Fix custom types. + + * gnus-salt.el (gnus-selected-tree-face): Fix default. + 2013-05-07 Katsumi Yamaoka * gnus-art.el (gnus-article-describe-bindings): Require help-mode === modified file 'lisp/gnus/gnus-art.el' --- lisp/gnus/gnus-art.el 2013-05-07 11:43:38 +0000 +++ lisp/gnus/gnus-art.el 2013-05-09 01:40:20 +0000 @@ -1032,15 +1032,15 @@ `gnus-article-update-date-headers' for details." :version "24.1" :group 'gnus-article-headers - :type '(repeat - (item :tag "Universal time (UT)" :value 'ut) - (item :tag "Local time zone" :value 'local) - (item :tag "Readable English" :value 'english) - (item :tag "Elapsed time" :value 'lapsed) - (item :tag "Original and elapsed time" :value 'combined-lapsed) - (item :tag "Original date header" :value 'original) - (item :tag "ISO8601 format" :value 'iso8601) - (item :tag "User-defined" :value 'user-defined))) + :type '(set + (const :tag "Universal time (UT)" ut) + (const :tag "Local time zone" local) + (const :tag "Readable English" english) + (const :tag "Elapsed time" lapsed) + (const :tag "Original and elapsed time" combined-lapsed) + (const :tag "Original date header" original) + (const :tag "ISO8601 format" iso8601) + (const :tag "User-defined" user-defined))) (defcustom gnus-article-update-date-headers nil "A number that says how often to update the date header (in seconds). @@ -1651,7 +1651,7 @@ regexp." :version "24.1" :group 'gnus-art - :type 'regexp) + :type '(choice regexp function)) ;;; Internal variables === modified file 'lisp/gnus/gnus-async.el' --- lisp/gnus/gnus-async.el 2013-01-11 10:40:54 +0000 +++ lisp/gnus/gnus-async.el 2013-05-09 01:40:20 +0000 @@ -76,7 +76,7 @@ that was fetched." :version "24.1" :group 'gnus-asynchronous - :type 'function) + :type '(choice (const nil) function)) ;;; Internal variables. === modified file 'lisp/gnus/gnus-gravatar.el' --- lisp/gnus/gnus-gravatar.el 2013-01-01 09:11:05 +0000 +++ lisp/gnus/gnus-gravatar.el 2013-05-09 01:40:20 +0000 @@ -35,13 +35,13 @@ (defcustom gnus-gravatar-size nil "How big should gravatars be displayed. If nil, default to `gravatar-size'." - :type 'integer + :type '(choice (const nil) integer) :version "24.1" :group 'gnus-gravatar) (defcustom gnus-gravatar-properties '(:ascent center :relief 1) "List of image properties applied to Gravatar images." - :type 'list + :type 'sexp :version "24.1" :group 'gnus-gravatar) === modified file 'lisp/gnus/gnus-html.el' --- lisp/gnus/gnus-html.el 2013-01-01 09:11:05 +0000 +++ lisp/gnus/gnus-html.el 2013-05-09 01:40:20 +0000 @@ -45,7 +45,10 @@ "Time used to determine if we should use images from the cache." :version "24.1" :group 'gnus-art - :type 'integer) + ;; FIXME hardly the friendliest type. The allowed value is actually + ;; any time value, but we are assuming no-one cares about USEC and + ;; PSEC here. It would be better to eg make it a number of minutes. + :type '(list integer integer)) (defcustom gnus-html-image-automatic-caching t "Whether automatically cache retrieve images." === modified file 'lisp/gnus/gnus-notifications.el' --- lisp/gnus/gnus-notifications.el 2013-01-01 09:11:05 +0000 +++ lisp/gnus/gnus-notifications.el 2013-05-09 01:40:20 +0000 @@ -64,7 +64,8 @@ (defcustom gnus-notifications-timeout nil "Timeout used for notifications sent via `notifications-notify'." - :type 'integer + :type '(choice (const :tag "Server default" nil) + (integer :tag "Milliseconds")) :group 'gnus-notifications) (defvar gnus-notifications-sent nil === modified file 'lisp/gnus/gnus-picon.el' --- lisp/gnus/gnus-picon.el 2013-01-01 09:11:05 +0000 +++ lisp/gnus/gnus-picon.el 2013-05-09 01:40:20 +0000 @@ -77,7 +77,7 @@ (defcustom gnus-picon-properties '(:color-symbols (("None" . "white"))) "List of image properties applied to picons." - :type 'list + :type 'sexp :version "24.3" :group 'gnus-picon) === modified file 'lisp/gnus/gnus-salt.el' --- lisp/gnus/gnus-salt.el 2013-01-02 16:13:04 +0000 +++ lisp/gnus/gnus-salt.el 2013-05-09 01:40:20 +0000 @@ -385,7 +385,7 @@ integer) :group 'gnus-summary-tree) -(defcustom gnus-selected-tree-face 'modeline +(defcustom gnus-selected-tree-face 'mode-line "*Face used for highlighting selected articles in the thread tree." :type 'face :group 'gnus-summary-tree) === modified file 'lisp/gnus/gnus-util.el' --- lisp/gnus/gnus-util.el 2013-05-01 00:29:13 +0000 +++ lisp/gnus/gnus-util.el 2013-05-09 01:40:20 +0000 @@ -68,7 +68,7 @@ "Value of `completion-styles' to use when completing." :version "24.1" :group 'gnus-meta - :type 'list) + :type '(repeat symbol)) ;; Fixme: this should be a gnus variable, not nnmail-. (defvar nnmail-pathname-coding-system) === modified file 'lisp/gnus/gnus.el' --- lisp/gnus/gnus.el 2013-04-27 21:32:17 +0000 +++ lisp/gnus/gnus.el 2013-05-09 01:40:20 +0000 @@ -2507,6 +2507,7 @@ :version "24.4" :group 'gnus-start :type '(choice (function-item gnus) + (function-item gnus-group-get-new-news) (function-item gnus-no-server) (function-item gnus-slave) (function-item gnus-slave-no-server))) === modified file 'lisp/gnus/message.el' --- lisp/gnus/message.el 2013-05-06 22:39:36 +0000 +++ lisp/gnus/message.el 2013-05-09 01:40:20 +0000 @@ -527,7 +527,7 @@ (setq orgfile f))) orgfile) "*Local news organization file." - :type 'file + :type '(choice (const nil) file) :link '(custom-manual "(message)News Headers") :group 'message-headers) @@ -1098,9 +1098,9 @@ (eval (set (make-local-variable 'message-cite-reply-position) 'above))" :version "24.1" - :type '(choice (const :tag "Reply inline" 'traditional) - (const :tag "Reply above" 'above) - (const :tag "Reply below" 'below)) + :type '(choice (const :tag "Reply inline" traditional) + (const :tag "Reply above" above) + (const :tag "Reply below" below)) :group 'message-insertion) (defcustom message-cite-style nil === modified file 'lisp/gnus/nnir.el' --- lisp/gnus/nnir.el 2013-04-24 22:07:21 +0000 +++ lisp/gnus/nnir.el 2013-05-09 01:40:20 +0000 @@ -326,7 +326,7 @@ If nil this will use `gnus-summary-line-format'." :version "24.1" - :type '(string) + :type '(choice (const :tag "gnus-summary-line-format" nil) string) :group 'nnir) (defcustom nnir-retrieve-headers-override-function nil @@ -338,7 +338,7 @@ If this variable is nil, or if the provided function returns nil for a search result, `gnus-retrieve-headers' will be called instead." :version "24.1" - :type '(function) + :type '(choice (const :tag "gnus-retrieve-headers" nil) function) :group 'nnir) (defcustom nnir-imap-default-search-key "whole message" === modified file 'lisp/gnus/shr-color.el' --- lisp/gnus/shr-color.el 2013-01-01 09:11:05 +0000 +++ lisp/gnus/shr-color.el 2013-05-09 01:40:20 +0000 @@ -37,7 +37,7 @@ "Minimum luminance distance between two colors to be considered visible. Must be between 0 and 100." :group 'shr - :type 'float) + :type 'number) (defcustom shr-color-visible-distance-min 5 "Minimum color distance between two colors to be considered visible. === modified file 'lisp/gnus/shr.el' --- lisp/gnus/shr.el 2013-04-16 06:44:35 +0000 +++ lisp/gnus/shr.el 2013-05-09 01:40:20 +0000 @@ -52,7 +52,7 @@ "Images that have URLs matching this regexp will be blocked." :version "24.1" :group 'shr - :type 'regexp) + :type '(choice (const nil) regexp)) (defcustom shr-table-horizontal-line ?\s "Character used to draw horizontal table lines." === modified file 'lisp/gnus/spam-report.el' --- lisp/gnus/spam-report.el 2013-01-01 09:11:05 +0000 +++ lisp/gnus/spam-report.el 2013-05-09 01:40:20 +0000 @@ -81,7 +81,7 @@ "Email address that spam articles are resent to when reporting. If not set, the user will be prompted to enter a value which will be saved for future use." - :type 'string + :type '(choice (const :tag "Prompt" nil) string) :group 'spam-report) (defvar spam-report-url-ping-temp-agent-function nil === modified file 'lisp/gnus/spam.el' --- lisp/gnus/spam.el 2013-01-02 16:13:04 +0000 +++ lisp/gnus/spam.el 2013-05-09 01:40:20 +0000 @@ -94,14 +94,14 @@ a group through group/topic parameters overrides this mechanism." :type '(choice (const - 'default - :tag "Move spam out of all groups and ham out of spam groups.") - (const - 'move-all - :tag "Move spam out of all groups and ham out of all groups.") - (const - 'move-none - :tag "Never move spam or ham out of any groups.")) + :tag "Move spam out of all groups and ham out of spam groups" + default) + (const + :tag "Move spam out of all groups and ham out of all groups" + move-all) + (const + :tag "Never move spam or ham out of any groups" + move-none)) :group 'spam) (defcustom spam-directory (nnheader-concat gnus-directory "spam/") === modified file 'lisp/mh-e/ChangeLog' --- lisp/mh-e/ChangeLog 2013-05-08 16:27:53 +0000 +++ lisp/mh-e/ChangeLog 2013-05-09 01:40:20 +0000 @@ -1,3 +1,8 @@ +2013-05-09 Glenn Morris + + * mh-e.el (mh-sortm-args, mh-default-folder-for-message-function): + Fix custom types. + 2013-05-08 Stefan Monnier * mh-comp.el (mh-regexp-in-field-p): Minor simplification. === modified file 'lisp/mh-e/mh-e.el' --- lisp/mh-e/mh-e.el 2013-03-03 00:04:12 +0000 +++ lisp/mh-e/mh-e.el 2013-05-09 01:40:20 +0000 @@ -1354,7 +1354,7 @@ specified in the MH profile. This option may be used to provide an alternate view. For example, \"'(\"-nolimit\" \"-textfield\" \"subject\")\" is a useful setting." - :type 'string + :type '(repeat string) :group 'mh-folder :package-version '(MH-E . "8.0")) @@ -1368,7 +1368,7 @@ should return the default folder as a string with a leading \"+\" sign. It can also return nil so that the last folder name is used as the default, or an empty string to suppress the default entirely." - :type 'function + :type '(choice (const nil) function) :group 'mh-folder-selection :package-version '(MH-E . "8.0")) === modified file 'lisp/play/tetris.el' --- lisp/play/tetris.el 2013-01-01 09:11:05 +0000 +++ lisp/play/tetris.el 2013-05-09 01:40:20 +0000 @@ -77,20 +77,13 @@ ["blue" "white" "yellow" "magenta" "cyan" "green" "red"] "Vector of colors of the various shapes in text mode." :group 'tetris - :type (let ((names `("Shape 1" "Shape 2" "Shape 3" - "Shape 4" "Shape 5" "Shape 6" "Shape 7")) - (result nil)) - (while names - (add-to-list 'result - (cons 'choice - (cons :tag - (cons (car names) - (mapcar (lambda (color) - (list 'const color)) - (defined-colors))))) - t) - (setq names (cdr names))) - result)) + :type '(vector (color :tag "Shape 1") + (color :tag "Shape 2") + (color :tag "Shape 3") + (color :tag "Shape 4") + (color :tag "Shape 5") + (color :tag "Shape 6") + (color :tag "Shape 7"))) (defcustom tetris-x-colors [[0 0 1] [0.7 0 1] [1 1 0] [1 0 1] [0 1 1] [0 1 0] [1 0 0]] === modified file 'lisp/progmodes/cpp.el' --- lisp/progmodes/cpp.el 2013-02-12 04:46:18 +0000 +++ lisp/progmodes/cpp.el 2013-05-09 01:40:20 +0000 @@ -136,13 +136,18 @@ ("true" . t) ("both" . both))) +;; FIXME Gets clobbered by cpp-choose-face, so why is even it a defcustom? (defcustom cpp-face-default-list nil "Alist of faces you can choose from for cpp conditionals. Each element has the form (STRING . FACE), where STRING serves as a name (for `cpp-highlight-buffer' only) and FACE is either a face (a symbol) or a cons cell (background-color . COLOR)." - :type '(repeat (cons string (choice face (cons (const background-color) string)))) + :type '(alist :key-type (string :tag "Name") + :value-type (choice face + (const invisible) + (cons (const background-color) + (string :tag "Color")))) :group 'cpp) (defcustom cpp-face-light-name-list === modified file 'lisp/progmodes/flymake.el' --- lisp/progmodes/flymake.el 2013-01-08 23:50:40 +0000 +++ lisp/progmodes/flymake.el 2013-05-09 01:40:20 +0000 @@ -279,9 +279,24 @@ ;; ("[ \t]*\\input[ \t]*{\\(.*\\)\\(%s\\)}" 1 2 )) ;; ("\\.tex\\'" 1) ) - "Files syntax checking is allowed for." + "Files syntax checking is allowed for. +This is an alist with elements of the form: + REGEXP INIT [CLEANUP [NAME]] +REGEXP is a regular expression that matches a file name. +INIT is the init function to use. +CLEANUP is the cleanup function to use, default `flymake-simple-cleanup'. +NAME is the file name function to use, default `flymake-get-real-file-name'." :group 'flymake - :type '(repeat (string symbol symbol symbol))) + :type '(alist :key-type (regexp :tag "File regexp") + :value-type + (list :tag "Handler functions" + (function :tag "Init function") + (choice :tag "Cleanup function" + (const :tag "flymake-simple-cleanup" nil) + function) + (choice :tag "Name function" + (const :tag "flymake-get-real-file-name" nil) + function)))) (defun flymake-get-file-name-mode-and-masks (file-name) "Return the corresponding entry from `flymake-allowed-file-name-masks'." === modified file 'lisp/progmodes/idlw-help.el' --- lisp/progmodes/idlw-help.el 2013-02-12 04:46:18 +0000 +++ lisp/progmodes/idlw-help.el 2013-05-09 01:40:20 +0000 @@ -90,16 +90,15 @@ (defcustom idlwave-help-browser-generic-program browse-url-generic-program "Program to run if using `browse-url-generic-program'." :group 'idlwave-online-help - :type 'string) - -(defvar browse-url-generic-args) - + :type '(choice (const nil) string)) + +;; AFAICS, never used since it was introduced in 2004. (defcustom idlwave-help-browser-generic-args (if (boundp 'browse-url-generic-args) browse-url-generic-args "") "Program args to use if using `browse-url-generic-program'." :group 'idlwave-online-help - :type 'string) + :type '(repeat string)) (defcustom idlwave-help-browser-is-local nil "Whether the browser will display locally in an Emacs window. === modified file 'lisp/progmodes/make-mode.el' --- lisp/progmodes/make-mode.el 2013-02-02 06:04:06 +0000 +++ lisp/progmodes/make-mode.el 2013-05-09 01:40:20 +0000 @@ -241,7 +241,7 @@ "List of special targets. You will be offered to complete on one of those in the minibuffer whenever you enter a \".\" at the beginning of a line in `makefile-mode'." - :type '(repeat (list string)) + :type '(repeat string) :group 'makefile) (put 'makefile-special-targets-list 'risky-local-variable t) === modified file 'lisp/progmodes/python.el' --- lisp/progmodes/python.el 2013-04-19 13:29:41 +0000 +++ lisp/progmodes/python.el 2013-05-09 01:40:20 +0000 @@ -1681,7 +1681,7 @@ `python-shell-process-environment' and `python-shell-exec-path' to be modified properly so shells are started with the specified virtualenv." - :type 'string + :type '(choice (const nil) string) :group 'python :safe 'stringp) === modified file 'lisp/progmodes/verilog-mode.el' --- lisp/progmodes/verilog-mode.el 2013-05-08 16:27:53 +0000 +++ lisp/progmodes/verilog-mode.el 2013-05-09 01:40:20 +0000 @@ -964,7 +964,7 @@ This is used for AUTORESET and AUTOTIEOFF. For proper behavior, you will probably also need `verilog-auto-reset-widths' set." :group 'verilog-mode-auto - :type 'string) + :type '(choice (const nil) regexp)) (put 'verilog-active-low-regexp 'safe-local-variable 'stringp) (defcustom verilog-auto-sense-include-inputs nil @@ -1138,21 +1138,21 @@ "If set, when creating AUTOINPUT list, ignore signals matching this regexp. See the \\[verilog-faq] for examples on using this." :group 'verilog-mode-auto - :type 'string) + :type '(choice (const nil) regexp)) (put 'verilog-auto-input-ignore-regexp 'safe-local-variable 'stringp) (defcustom verilog-auto-inout-ignore-regexp nil "If set, when creating AUTOINOUT list, ignore signals matching this regexp. See the \\[verilog-faq] for examples on using this." :group 'verilog-mode-auto - :type 'string) + :type '(choice (const nil) regexp)) (put 'verilog-auto-inout-ignore-regexp 'safe-local-variable 'stringp) (defcustom verilog-auto-output-ignore-regexp nil "If set, when creating AUTOOUTPUT list, ignore signals matching this regexp. See the \\[verilog-faq] for examples on using this." :group 'verilog-mode-auto - :type 'string) + :type '(choice (const nil) regexp)) (put 'verilog-auto-output-ignore-regexp 'safe-local-variable 'stringp) (defcustom verilog-auto-template-warn-unused nil @@ -1176,21 +1176,21 @@ "If set, when creating AUTOTIEOFF list, ignore signals matching this regexp. See the \\[verilog-faq] for examples on using this." :group 'verilog-mode-auto - :type 'string) + :type '(choice (const nil) regexp)) (put 'verilog-auto-tieoff-ignore-regexp 'safe-local-variable 'stringp) (defcustom verilog-auto-unused-ignore-regexp nil "If set, when creating AUTOUNUSED list, ignore signals matching this regexp. See the \\[verilog-faq] for examples on using this." :group 'verilog-mode-auto - :type 'string) + :type '(choice (const nil) regexp)) (put 'verilog-auto-unused-ignore-regexp 'safe-local-variable 'stringp) (defcustom verilog-typedef-regexp nil "If non-nil, regular expression that matches Verilog-2001 typedef names. For example, \"_t$\" matches typedefs named with _t, as in the C language." :group 'verilog-mode-auto - :type 'string) + :type '(choice (const nil) regexp)) (put 'verilog-typedef-regexp 'safe-local-variable 'stringp) (defcustom verilog-mode-hook 'verilog-set-compile-command === modified file 'lisp/ps-mule.el' --- lisp/ps-mule.el 2013-01-01 09:11:05 +0000 +++ lisp/ps-mule.el 2013-05-09 01:40:20 +0000 @@ -188,7 +188,32 @@ (defcustom ps-mule-font-info-database-default ps-mule-font-info-database-latin "The default setting to use when `ps-multibyte-buffer' is nil." - :type '(symbol :tag "Multi-Byte Buffer Database Font Default") + :type '(alist :key-type symbol :tag "Charset" + :value-type + (list (list + (choice :tag "Font type" + (const normal) + (const bold) + (const italic) + (const bold-italic)) + (choice :tag "Font source" + (const builtin) + (const bdf) + (const vflib) + (const nil)) + ;; My guess as to what the doc is trying to say... + (choice :tag "Font name" + (const nil) + string + (repeat :tag "List" string)) + (choice :tag "Encoding" + (const nil) + coding-system + function) + (choice :tag "Bytes" + (const nil) + (const 1) + (const 2))))) :group 'ps-print-font) (defconst ps-mule-font-info-database-ps === modified file 'lisp/ps-print.el' --- lisp/ps-print.el 2013-01-11 23:08:55 +0000 +++ lisp/ps-print.el 2013-05-09 01:40:20 +0000 @@ -3017,7 +3017,6 @@ This variable is used only when `ps-print-color-p' (which see) is neither nil nor black-white." :type '(choice :menu-tag "Default Foreground Gray/Color" - :tag "Default Foreground Gray/Color" (const :tag "Session Foreground" t) (const :tag "Frame Foreground" frame-parameter) (number :tag "Gray Scale" :value 0.0) @@ -3025,7 +3024,8 @@ (list :tag "RGB Color" :value (0.0 0.0 0.0) (number :tag "Red") (number :tag "Green") - (number :tag "Blue"))) + (number :tag "Blue")) + (other :tag "Default Foreground Gray/Color" nil)) :version "20" :group 'ps-print-color) @@ -3063,7 +3063,6 @@ See also `ps-use-face-background'." :type '(choice :menu-tag "Default Background Gray/Color" - :tag "Default Background Gray/Color" (const :tag "Session Background" t) (const :tag "Frame Background" frame-parameter) (number :tag "Gray Scale" :value 1.0) @@ -3071,7 +3070,8 @@ (list :tag "RGB Color" :value (1.0 1.0 1.0) (number :tag "Red") (number :tag "Green") - (number :tag "Blue"))) + (number :tag "Blue")) + (other :tag "Default Background Gray/Color" nil)) :version "20" :group 'ps-print-color) @@ -6658,7 +6658,7 @@ ;; But autoload them here to make the separation invisible. ;;;### (autoloads (ps-mule-end-job ps-mule-begin-job ps-mule-initialize -;;;;;; ps-multibyte-buffer) "ps-mule" "ps-mule.el" "1f436e4d78c7dc983a503dac18298515") +;;;;;; ps-multibyte-buffer) "ps-mule" "ps-mule.el" "b39f881d3a029049994ef6aa3de93c89") ;;; Generated autoloads from ps-mule.el (defvar ps-multibyte-buffer nil "\ === modified file 'lisp/textmodes/reftex-vars.el' --- lisp/textmodes/reftex-vars.el 2013-04-26 07:31:27 +0000 +++ lisp/textmodes/reftex-vars.el 2013-05-09 01:40:20 +0000 @@ -932,7 +932,7 @@ FORMAT, which usually is `\\label{%s}'. The function should return the string to insert into the buffer." :group 'reftex-making-and-inserting-labels - :type 'function) + :type '(choice (const nil) function)) ;; Label referencing === modified file 'lisp/textmodes/remember.el' --- lisp/textmodes/remember.el 2013-04-26 23:55:06 +0000 +++ lisp/textmodes/remember.el 2013-05-09 01:40:20 +0000 @@ -481,7 +481,7 @@ (defcustom remember-diary-file nil "File for extracted diary entries. If this is nil, then `diary-file' will be used instead." - :type 'file + :type '(choice (const :tag "diary-file" nil) file) :group 'remember) (defun remember-diary-convert-entry (entry) === modified file 'lisp/type-break.el' --- lisp/type-break.el 2013-03-12 02:08:21 +0000 +++ lisp/type-break.el 2013-05-09 01:40:20 +0000 @@ -95,7 +95,7 @@ length (in seconds) for a break initiated by the command `type-break', overriding `type-break-good-rest-interval'. This provides querying of break interruptions when `type-break-good-rest-interval' is nil." - :type 'integer + :type '(choice (const nil) integer) :group 'type-break) (defcustom type-break-keystroke-threshold === modified file 'lisp/whitespace.el' --- lisp/whitespace.el 2013-04-05 22:22:12 +0000 +++ lisp/whitespace.el 2013-05-09 01:40:20 +0000 @@ -803,8 +803,8 @@ Used when `whitespace-style' includes `indentation', `indentation::tab' or `indentation::space'." - :type '(cons (regexp :tag "Indentation SPACEs") - (regexp :tag "Indentation TABs")) + :type '(cons (string :tag "Indentation SPACEs") + (string :tag "Indentation TABs")) :group 'whitespace) @@ -834,7 +834,8 @@ Used when `whitespace-style' includes `space-after-tab', `space-after-tab::tab' or `space-after-tab::space'." - :type '(regexp :tag "SPACEs After TAB") + :type '(cons (string :tag "SPACEs After TAB") + string) :group 'whitespace) ------------------------------------------------------------ revno: 112525 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-05-08 21:06:10 -0400 message: * lisp/jka-cmpr-hook.el (jka-compr-mode-alist-additions): Fix typo. Add :version. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-09 00:52:49 +0000 +++ lisp/ChangeLog 2013-05-09 01:06:10 +0000 @@ -1,3 +1,8 @@ +2013-05-09 Glenn Morris + + * jka-cmpr-hook.el (jka-compr-mode-alist-additions): Fix typo. + Add :version. + 2013-05-09 Leo Liu * progmodes/octave.el (inferior-octave-completion-at-point): === modified file 'lisp/jka-cmpr-hook.el' --- lisp/jka-cmpr-hook.el 2013-02-20 14:30:23 +0000 +++ lisp/jka-cmpr-hook.el 2013-05-09 01:06:10 +0000 @@ -308,7 +308,7 @@ (defcustom jka-compr-mode-alist-additions (purecopy '(("\\.tgz\\'" . tar-mode) ("\\.tbz2?\\'" . tar-mode) - ("\\.txz\\'" . 'tar-mode))) + ("\\.txz\\'" . tar-mode))) "List of pairs added to `auto-mode-alist' when installing jka-compr. Uninstalling jka-compr removes all pairs from `auto-mode-alist' that installing added. @@ -318,6 +318,7 @@ `jka-compr-update' after setting it to properly update other variables. Setting this through Custom does that automatically." :type '(repeat (cons string symbol)) + :version "24.4" ; add txz :set 'jka-compr-set :group 'jka-compr) ------------------------------------------------------------ revno: 112524 fixes bug: http://debbugs.gnu.org/14300 committer: Leo Liu branch nick: trunk timestamp: Thu 2013-05-09 08:52:49 +0800 message: * progmodes/octave.el (inferior-octave-completion-at-point): Restore the broken file completion. (inferior-octave-startup): Fix incorrect highlighting for the first prompt. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-08 20:25:57 +0000 +++ lisp/ChangeLog 2013-05-09 00:52:49 +0000 @@ -1,3 +1,10 @@ +2013-05-09 Leo Liu + + * progmodes/octave.el (inferior-octave-completion-at-point): + Restore the broken file completion. (Bug#14300) + (inferior-octave-startup): Fix incorrect highlighting for the + first prompt. + 2013-05-08 Stefan Monnier * progmodes/ruby-mode.el: First cut at SMIE support. === modified file 'lisp/progmodes/octave.el' --- lisp/progmodes/octave.el 2013-05-07 04:53:31 +0000 +++ lisp/progmodes/octave.el 2013-05-09 00:52:49 +0000 @@ -716,7 +716,6 @@ (when (and inferior-octave-startup-file (file-exists-p inferior-octave-startup-file)) (format "source (\"%s\");\n" inferior-octave-startup-file)))) - ;; XXX: the first prompt is incorrectly highlighted (insert-before-markers (concat (if inferior-octave-output-list @@ -729,7 +728,9 @@ (set-process-filter proc 'comint-output-filter) ;; Just in case, to be sure a cd in the startup file ;; won't have detrimental effects. - (inferior-octave-resync-dirs))) + (inferior-octave-resync-dirs) + ;; A trick to get the prompt highlighted. + (comint-send-string proc "\n"))) (defun inferior-octave-completion-table () (completion-table-dynamic @@ -741,13 +742,19 @@ (defun inferior-octave-completion-at-point () "Return the data to complete the Octave symbol at point." - (let* ((end (point)) + ;; http://debbugs.gnu.org/14300 + (let* ((filecomp (string-match-p + "/" (or (comint--match-partial-filename) ""))) + (end (point)) (start - (save-excursion - (skip-syntax-backward "w_" (comint-line-beginning-position)) - (point)))) - (when (> end start) - (list start end (inferior-octave-completion-table))))) + (unless filecomp + (save-excursion + (skip-syntax-backward "w_" (comint-line-beginning-position)) + (point))))) + (when (and start (> end start)) + (list start end (completion-table-in-turn + (inferior-octave-completion-table) + 'comint-completion-file-name-table))))) (define-obsolete-function-alias 'inferior-octave-complete 'completion-at-point "24.1") ------------------------------------------------------------ revno: 112523 committer: Paul Eggert branch nick: trunk timestamp: Wed 2013-05-08 15:56:08 -0700 message: * xterm.h (GTK_PREREQ): New macro. All simple uses of GTK_MAJOR_VERSION and GTK_MINOR_VERSION changed to use this macro instead, for consistency and clarity. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-05-08 17:59:38 +0000 +++ src/ChangeLog 2013-05-08 22:56:08 +0000 @@ -1,3 +1,9 @@ +2013-05-08 Paul Eggert + + * xterm.h (GTK_PREREQ): New macro. + All simple uses of GTK_MAJOR_VERSION and GTK_MINOR_VERSION changed + to use this macro instead, for consistency and clarity. + 2013-05-08 Eli Zaretskii * xdisp.c (row_for_charpos_p): New function, with code of === modified file 'src/gtkutil.c' --- src/gtkutil.c 2013-04-02 01:54:56 +0000 +++ src/gtkutil.c 2013-05-08 22:56:08 +0000 @@ -70,13 +70,13 @@ #define gtk_adjustment_get_step_increment(w) ((w)->step_increment) #define gtk_adjustment_set_step_increment(w, s) ((w)->step_increment = (s)) #endif -#if GTK_MAJOR_VERSION > 2 || GTK_MINOR_VERSION > 11 +#if GTK_PREREQ (2, 12) #define remove_submenu(w) gtk_menu_item_set_submenu ((w), NULL) #else #define remove_submenu(w) gtk_menu_item_remove_submenu ((w)) #endif -#if GTK_MAJOR_VERSION > 3 || (GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2) +#if GTK_PREREQ (3, 2) #define USE_NEW_GTK_FONT_CHOOSER 1 #else #define USE_NEW_GTK_FONT_CHOOSER 0 === modified file 'src/xfns.c' --- src/xfns.c 2013-05-07 19:25:42 +0000 +++ src/xfns.c 2013-05-08 22:56:08 +0000 @@ -3804,7 +3804,7 @@ Return false if and only if the workarea information cannot be obtained via the _NET_WORKAREA root window property. */ -#if !defined USE_GTK || GTK_MAJOR_VERSION < 3 + (GTK_MINOR_VERSION < 4) +#if ! (defined USE_GTK && GTK_PREREQ (3, 4)) static bool x_get_net_workarea (struct x_display_info *dpyinfo, XRectangle *rect) { @@ -4265,7 +4265,7 @@ / x_display_pixel_height (dpyinfo)); gdpy = gdk_x11_lookup_xdisplay (dpyinfo->display); gscreen = gdk_display_get_default_screen (gdpy); -#if GTK_MAJOR_VERSION > 2 || GTK_MINOR_VERSION >= 20 +#if GTK_PREREQ (2, 20) primary_monitor = gdk_screen_get_primary_monitor (gscreen); #endif n_monitors = gdk_screen_get_n_monitors (gscreen); @@ -4300,7 +4300,7 @@ gdk_screen_get_monitor_geometry (gscreen, i, &rec); geometry = list4i (rec.x, rec.y, rec.width, rec.height); -#if GTK_MAJOR_VERSION > 2 || GTK_MINOR_VERSION >= 14 +#if GTK_PREREQ (2, 14) width_mm = gdk_screen_get_monitor_width_mm (gscreen, i); height_mm = gdk_screen_get_monitor_height_mm (gscreen, i); #endif @@ -4312,7 +4312,7 @@ list2i (width_mm, height_mm)), attributes); -#if GTK_MAJOR_VERSION > 3 || (GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 4) +#if GTK_PREREQ (3, 4) gdk_screen_get_monitor_workarea (gscreen, i, &rec); workarea = list4i (rec.x, rec.y, rec.width, rec.height); #else @@ -4339,7 +4339,7 @@ attributes = Fcons (Fcons (Qworkarea, workarea), attributes); attributes = Fcons (Fcons (Qgeometry, geometry), attributes); -#if GTK_MAJOR_VERSION > 2 || (GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION >= 14) +#if GTK_PREREQ (2, 14) { char *name = gdk_screen_get_monitor_plug_name (gscreen, i); if (name) === modified file 'src/xterm.c' --- src/xterm.c 2013-05-07 01:12:22 +0000 +++ src/xterm.c 2013-05-08 22:56:08 +0000 @@ -9921,7 +9921,7 @@ dpy = DEFAULT_GDK_DISPLAY (); -#if GTK_MAJOR_VERSION <= 2 && GTK_MINOR_VERSION <= 90 +#if ! GTK_PREREQ (2, 90) /* Load our own gtkrc if it exists. */ { const char *file = "~/.emacs.d/gtkrc"; === modified file 'src/xterm.h' --- src/xterm.h 2013-05-07 01:12:22 +0000 +++ src/xterm.h 2013-05-08 22:56:08 +0000 @@ -43,6 +43,10 @@ typedef Widget xt_or_gtk_widget; #endif +/* True iff GTK's version is at least MAJOR.MINOR. */ +#define GTK_PREREQ(major, minor) \ + ((major) < GTK_MAJOR_VERSION + ((minor) <= GTK_MINOR_VERSION)) + #ifdef USE_GTK #include #include @@ -55,7 +59,7 @@ XSync (d, b); } while (0) /* The GtkTooltip API came in 2.12, but gtk-enable-tooltips in 2.14. */ -#if GTK_MAJOR_VERSION > 2 || GTK_MINOR_VERSION > 13 +#if GTK_PREREQ (2, 14) #define USE_GTK_TOOLTIP #endif ------------------------------------------------------------ revno: 112522 committer: Stefan Monnier branch nick: trunk timestamp: Wed 2013-05-08 16:25:57 -0400 message: * lisp/progmodes/ruby-mode.el: First cut at SMIE support. (ruby-use-smie): New var. (ruby-smie-grammar): New constant. (ruby-smie--bosp, ruby-smie--implicit-semi-p) (ruby-smie--forward-token, ruby-smie--backward-token) (ruby-smie-rules): New functions. (ruby-mode-variables): Setup SMIE if applicable. * test/indent/ruby.rb: Fix indentation after =; add more cases. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-08 18:05:40 +0000 +++ lisp/ChangeLog 2013-05-08 20:25:57 +0000 @@ -1,3 +1,13 @@ +2013-05-08 Stefan Monnier + + * progmodes/ruby-mode.el: First cut at SMIE support. + (ruby-use-smie): New var. + (ruby-smie-grammar): New constant. + (ruby-smie--bosp, ruby-smie--implicit-semi-p) + (ruby-smie--forward-token, ruby-smie--backward-token) + (ruby-smie-rules): New functions. + (ruby-mode-variables): Setup SMIE if applicable. + 2013-05-08 Eli Zaretskii * simple.el (line-move-visual): Signal beginning/end of buffer === modified file 'lisp/progmodes/ruby-mode.el' --- lisp/progmodes/ruby-mode.el 2013-04-15 23:07:14 +0000 +++ lisp/progmodes/ruby-mode.el 2013-05-08 20:25:57 +0000 @@ -148,13 +148,16 @@ (define-abbrev-table 'ruby-mode-abbrev-table () "Abbrev table in use in Ruby mode buffers.") +(defvar ruby-use-smie nil) + (defvar ruby-mode-map (let ((map (make-sparse-keymap))) - (define-key map (kbd "M-C-b") 'ruby-backward-sexp) - (define-key map (kbd "M-C-f") 'ruby-forward-sexp) + (unless ruby-use-smie + (define-key map (kbd "M-C-b") 'ruby-backward-sexp) + (define-key map (kbd "M-C-f") 'ruby-forward-sexp) + (define-key map (kbd "M-C-q") 'ruby-indent-exp)) (define-key map (kbd "M-C-p") 'ruby-beginning-of-block) (define-key map (kbd "M-C-n") 'ruby-end-of-block) - (define-key map (kbd "M-C-q") 'ruby-indent-exp) (define-key map (kbd "C-c {") 'ruby-toggle-block) map) "Keymap used in Ruby mode.") @@ -236,6 +239,111 @@ (put 'ruby-comment-column 'safe-local-variable 'integerp) (put 'ruby-deep-arglist 'safe-local-variable 'booleanp) +;;; SMIE support + +(require 'smie) + +(defconst ruby-smie-grammar + ;; FIXME: Add support for Cucumber. + (smie-prec2->grammar + (smie-bnf->prec2 + '((id) + (insts (inst) (insts ";" insts)) + (inst (exp) (inst "iuwu-mod" exp)) + (exp (exp1) (exp "," exp)) + (exp1 (exp2) (exp2 "?" exp1 ":" exp1)) + (exp2 ("def" insts "end") + ("begin" insts-rescue-insts "end") + ("do" insts "end") + ("class" insts "end") ("module" insts "end") + ("for" for-body "end") + ("[" expseq "]") + ("{" hashvals "}") + ("while" insts "end") + ("until" insts "end") + ("unless" insts "end") + ("if" if-body "end") + ("case" cases "end")) + (for-body (for-head ";" insts)) + (for-head (id "in" exp)) + (cases (exp "then" insts) ;; FIXME: Ruby also allows (exp ":" insts). + (cases "when" cases) (insts "else" insts)) + (expseq (exp) );;(expseq "," expseq) + (hashvals (id "=>" exp1) (hashvals "," hashvals)) + (insts-rescue-insts (insts) + (insts-rescue-insts "rescue" insts-rescue-insts) + (insts-rescue-insts "ensure" insts-rescue-insts)) + (itheni (insts) (exp "then" insts)) + (ielsei (itheni) (itheni "else" insts)) + (if-body (ielsei) (if-body "elsif" if-body))) + '((nonassoc "in") (assoc ";") (assoc ",")) + '((assoc "when")) + '((assoc "elsif")) + '((assoc "rescue" "ensure")) + '((assoc ","))))) + +(defun ruby-smie--bosp () + (save-excursion (skip-chars-backward " \t") + (or (bolp) (eq (char-before) ?\;)))) + +(defun ruby-smie--implicit-semi-p () + (save-excursion + (skip-chars-backward " \t") + (not (or (bolp) + (memq (char-before) '(?\; ?- ?+ ?* ?/ ?:)) + (and (memq (char-before) '(?\? ?=)) + (not (memq (char-syntax (char-before (1- (point)))) + '(?w ?_)))))))) + +(defun ruby-smie--forward-token () + (skip-chars-forward " \t") + (if (and (looking-at "[\n#]") + ;; Only add implicit ; when needed. + (ruby-smie--implicit-semi-p)) + (progn + (if (eolp) (forward-char 1) (forward-comment 1)) + ";") + (forward-comment (point-max)) + (let ((tok (smie-default-forward-token))) + (cond + ((member tok '("unless" "if" "while" "until")) + (if (save-excursion (forward-word -1) (ruby-smie--bosp)) + tok "iuwu-mod")) + (t tok))))) + +(defun ruby-smie--backward-token () + (let ((pos (point))) + (forward-comment (- (point))) + (if (and (> pos (line-end-position)) + (ruby-smie--implicit-semi-p)) + (progn (skip-chars-forward " \t") + ";") + (let ((tok (smie-default-backward-token))) + (cond + ((member tok '("unless" "if" "while" "until")) + (if (ruby-smie--bosp) + tok "iuwu-mod")) + (t tok)))))) + +(defun ruby-smie-rules (kind token) + (pcase (cons kind token) + (`(:elem . basic) ruby-indent-level) + (`(:after . ";") + (if (smie-rule-parent-p "def" "begin" "do" "class" "module" "for" + "[" "{" "while" "until" "unless" + "if" "then" "elsif" "else" "when" + "rescue" "ensure") + (smie-rule-parent ruby-indent-level) + ;; For (invalid) code between switch and case. + ;; (if (smie-parent-p "switch") 4) + 0)) + (`(:before . ,(or `"else" `"then" `"elsif")) 0) + (`(:before . ,(or `"when")) + (if (not (smie-rule-sibling-p)) 0)) ;; ruby-indent-level + ;; Hack attack: Since newlines are separators, don't try to align args that + ;; appear on a separate line. + (`(:list-intro . ";") t))) + (defun ruby-imenu-create-index-in-block (prefix beg end) "Create an imenu index of methods inside a block." (let ((index-alist '()) (case-fold-search nil) @@ -290,7 +398,11 @@ (set-syntax-table ruby-mode-syntax-table) (setq local-abbrev-table ruby-mode-abbrev-table) (setq indent-tabs-mode ruby-indent-tabs-mode) - (set (make-local-variable 'indent-line-function) 'ruby-indent-line) + (if ruby-use-smie + (smie-setup ruby-smie-grammar #'ruby-smie-rules + :forward-token #'ruby-smie--forward-token + :backward-token #'ruby-smie--backward-token) + (set (make-local-variable 'indent-line-function) 'ruby-indent-line)) (set (make-local-variable 'require-final-newline) t) (set (make-local-variable 'comment-start) "# ") (set (make-local-variable 'comment-end) "") === modified file 'test/ChangeLog' --- test/ChangeLog 2013-05-05 02:26:38 +0000 +++ test/ChangeLog 2013-05-08 20:25:57 +0000 @@ -1,3 +1,7 @@ +2013-05-08 Stefan Monnier + + * indent/ruby.rb: Fix indentation after =; add more cases. + 2013-05-05 Stefan Monnier * indent/pascal.pas: Add test for mis-identified comments. === modified file 'test/indent/ruby.rb' --- test/indent/ruby.rb 2012-08-14 12:38:11 +0000 +++ test/indent/ruby.rb 2013-05-08 20:25:57 +0000 @@ -10,7 +10,7 @@ # Or inside comments. x = # "tot %q/to"; = -y = 2 / 3 + y = 2 / 3 # Regexp after whitelisted method. "abc".sub /b/, 'd' @@ -21,6 +21,40 @@ # Highlight the regexp after "if". x = toto / foo if /do bar/ =~ "dobar" +def test1(arg) + puts "hello" +end + +def test2 (arg) + a = "apple" + + if a == 2 + puts "hello" + else + puts "there" + end + + if a == 2 then + puts "hello" + elsif a == 3 + puts "hello3" + elsif a == 3 then + puts "hello3" + else + puts "there" + end + + case a + when "a" + 6 + # when "b" : + # 7 + # when "c" : 2 + when "d" then 4 + else 5 + end +end + # Some Cucumber code: Given /toto/ do print "hello" ------------------------------------------------------------ revno: 112521 committer: Eli Zaretskii branch nick: trunk timestamp: Wed 2013-05-08 21:05:40 +0300 message: Avoid beginning/end of buffer errors when moving across display strings. lisp/simple.el (line-move-visual): Signal beginning/end of buffer only if vertical-motion moved less than it was requested. Avoids silly incorrect error messages when there are display strings with multiple newlines at EOL. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-08 16:27:53 +0000 +++ lisp/ChangeLog 2013-05-08 18:05:40 +0000 @@ -1,3 +1,10 @@ +2013-05-08 Eli Zaretskii + + * simple.el (line-move-visual): Signal beginning/end of buffer + only if vertical-motion moved less than it was requested. Avoids + silly incorrect error messages when there are display strings with + multiple newlines at EOL. + 2013-05-08 Stefan Monnier * progmodes/vera-mode.el (vera-underscore-is-part-of-word): === modified file 'lisp/simple.el' --- lisp/simple.el 2013-05-06 20:11:40 +0000 +++ lisp/simple.el 2013-05-08 18:05:40 +0000 @@ -4857,13 +4857,25 @@ (frame-char-width)) hscroll)))))) (if target-hscroll (set-window-hscroll (selected-window) target-hscroll)) - (or (and (= (vertical-motion - (cons (or goal-column - (if (consp temporary-goal-column) - (car temporary-goal-column) - temporary-goal-column)) - arg)) - arg) + ;; vertical-motion can move more than it was asked to if it moves + ;; across display strings with newlines. We don't want to ring + ;; the bell and announce beginning/end of buffer in that case. + (or (and (or (and (>= arg 0) + (>= (vertical-motion + (cons (or goal-column + (if (consp temporary-goal-column) + (car temporary-goal-column) + temporary-goal-column)) + arg)) + arg)) + (and (< arg 0) + (<= (vertical-motion + (cons (or goal-column + (if (consp temporary-goal-column) + (car temporary-goal-column) + temporary-goal-column)) + arg)) + arg))) (or (>= arg 0) (/= (point) opoint) ;; If the goal column lies on a display string, ------------------------------------------------------------ revno: 112520 committer: Eli Zaretskii branch nick: trunk timestamp: Wed 2013-05-08 20:59:38 +0300 message: Fix vertical cursor motion when there's a display string with newline at EOL. src/xdisp.c (row_for_charpos_p): New function, with code of cursor_row_p, but accepts an additional argument CHARPOS instead of using a hardcoded PT. (cursor_row_p): Call row_for_charpos_p with 2nd argument PT. (row_containing_pos): Call row_for_charpos_p instead of partially doing the same. Fixes cursor positioning under longlines-mode when longlines-show-effect includes more than one newline, when moving the cursor vertically up. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-05-08 16:21:19 +0000 +++ src/ChangeLog 2013-05-08 17:59:38 +0000 @@ -1,3 +1,14 @@ +2013-05-08 Eli Zaretskii + + * xdisp.c (row_for_charpos_p): New function, with code of + cursor_row_p, but accepts an additional argument CHARPOS instead + of using a hardcoded PT. + (cursor_row_p): Call row_for_charpos_p with 2nd argument PT. + (row_containing_pos): Call row_for_charpos_p instead of partially + doing the same. Fixes cursor positioning under longlines-mode + when longlines-show-effect includes more than one newline, when + moving the cursor vertically up. + 2013-05-08 Juanma Barranquero * makefile.w32-in (ACL_H): New macro. === modified file 'src/xdisp.c' --- src/xdisp.c 2013-05-06 17:11:07 +0000 +++ src/xdisp.c 2013-05-08 17:59:38 +0000 @@ -794,6 +794,7 @@ static void mark_window_display_accurate_1 (struct window *, int); static int single_display_spec_string_p (Lisp_Object, Lisp_Object); static int display_prop_string_p (Lisp_Object, Lisp_Object); +static int row_for_charpos_p (struct glyph_row *, ptrdiff_t); static int cursor_row_p (struct glyph_row *); static int redisplay_mode_lines (Lisp_Object, int); static char *decode_mode_spec_coding (Lisp_Object, char *, int); @@ -16909,10 +16910,9 @@ || (MATRIX_ROW_END_CHARPOS (row) == charpos /* The end position of a row equals the start position of the next row. If CHARPOS is there, we - would rather display it in the next line, except - when this line ends in ZV. */ - && !row->ends_at_zv_p - && !MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P (row))) + would rather consider it displayed in the next + line, except when this line ends in ZV. */ + && !row_for_charpos_p (row, charpos))) && charpos >= MATRIX_ROW_START_CHARPOS (row)) { struct glyph *g; @@ -16920,10 +16920,10 @@ if (NILP (BVAR (XBUFFER (w->contents), bidi_display_reordering)) || (!best_row && !row->continued_p)) return row; - /* In bidi-reordered rows, there could be several rows - occluding point, all of them belonging to the same - continued line. We need to find the row which fits - CHARPOS the best. */ + /* In bidi-reordered rows, there could be several rows whose + edges surround CHARPOS, all of these rows belonging to + the same continued line. We need to find the row which + fits CHARPOS the best. */ for (g = row->glyphs[TEXT_AREA]; g < row->glyphs[TEXT_AREA] + row->used[TEXT_AREA]; g++) @@ -18727,15 +18727,15 @@ /* Value is non-zero if glyph row ROW should be - used to hold the cursor. */ + considered to hold the buffer position CHARPOS. */ static int -cursor_row_p (struct glyph_row *row) +row_for_charpos_p (struct glyph_row *row, ptrdiff_t charpos) { int result = 1; - if (PT == CHARPOS (row->end.pos) - || PT == MATRIX_ROW_END_CHARPOS (row)) + if (charpos == CHARPOS (row->end.pos) + || charpos == MATRIX_ROW_END_CHARPOS (row)) { /* Suppose the row ends on a string. Unless the row is continued, that means it ends on a newline @@ -18761,7 +18761,7 @@ if (STRINGP (glyph->object)) { Lisp_Object prop - = Fget_char_property (make_number (PT), + = Fget_char_property (make_number (charpos), Qdisplay, Qnil); result = (!NILP (prop) @@ -18815,6 +18815,15 @@ return result; } +/* Value is non-zero if glyph row ROW should be + used to hold the cursor. */ + +static int +cursor_row_p (struct glyph_row *row) +{ + return row_for_charpos_p (row, PT); +} + /* Push the property PROP so that it will be rendered at the current ------------------------------------------------------------ revno: 112519 committer: Stefan Monnier branch nick: trunk timestamp: Wed 2013-05-08 12:27:53 -0400 message: * lisp/progmodes/f90.el (f90-mode-syntax-table): Use symbol syntax for "_". Change all regexps to use things like \_< and \_>. * lisp/progmodes/ada-mode.el (ada-mode-abbrev-table): Consolidate declaration. (ada-mode-syntax-table, ada-mode-symbol-syntax-table): Initialize in the declaration. (ada-create-syntax-table): Remove. (ada-capitalize-word): Don't mess with the syntax of "_" since it already has the right syntax nowadays. (ada-goto-next-word): Don't change the syntax of "_". * lisp/progmodes/autoconf.el (autoconf-definition-regexp) (autoconf-font-lock-keywords, autoconf-current-defun-function): Handle a _ with symbol syntax. (autoconf-mode): Don't change the syntax-table for imenu and font-lock. * lisp/progmodes/vera-mode.el (vera-underscore-is-part-of-word): * lisp/progmodes/prolog.el (prolog-underscore-wordchar-flag) (prolog-char-quote-workaround): * lisp/progmodes/cperl-mode.el (cperl-under-as-char): * lisp/progmodes/vhdl-mode.el (vhdl-underscore-is-part-of-word): Mark as obsolete. (vhdl-mode-syntax-table, vhdl-mode-ext-syntax-table): Initialize in their declaration. (vhdl-mode-syntax-table-init): Remove. * lisp/progmodes/ld-script.el (ld-script-mode-syntax-table): Use symbol syntax for "_". (ld-script-font-lock-keywords): Change regexps to use things like \_< and \_>. * lisp/progmodes/m4-mode.el (m4-mode-syntax-table): Add comment on last change. * lisp/font-lock.el (lisp-font-lock-keywords-2): Don't highlight obsolete with-wrapper-hook. * lisp/mh-e/mh-comp.el (mh-regexp-in-field-p): Minor simplification. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-08 15:13:25 +0000 +++ lisp/ChangeLog 2013-05-08 16:27:53 +0000 @@ -1,3 +1,41 @@ +2013-05-08 Stefan Monnier + + * progmodes/vera-mode.el (vera-underscore-is-part-of-word): + * progmodes/prolog.el (prolog-underscore-wordchar-flag) + (prolog-char-quote-workaround): + * progmodes/cperl-mode.el (cperl-under-as-char): + * progmodes/vhdl-mode.el (vhdl-underscore-is-part-of-word): + Mark as obsolete. + (vhdl-mode-syntax-table, vhdl-mode-ext-syntax-table): Initialize in + their declaration. + (vhdl-mode-syntax-table-init): Remove. + + * progmodes/m4-mode.el (m4-mode-syntax-table): Add comment on last change. + + * progmodes/ld-script.el (ld-script-mode-syntax-table): Use symbol + syntax for "_". + (ld-script-font-lock-keywords): + Change regexps to use things like \_< and \_>. + + * progmodes/f90.el (f90-mode-syntax-table): Use symbol syntax for "_". + Change all regexps to use things like \_< and \_>. + + * progmodes/autoconf.el (autoconf-definition-regexp) + (autoconf-font-lock-keywords, autoconf-current-defun-function): + Handle a _ with symbol syntax. + (autoconf-mode): Don't change the syntax-table for imenu and font-lock. + + * progmodes/ada-mode.el (ada-mode-abbrev-table): Consolidate declaration. + (ada-mode-syntax-table, ada-mode-symbol-syntax-table): Initialize in + the declaration. + (ada-create-syntax-table): Remove. + (ada-capitalize-word): Don't mess with the syntax of "_" since it + already has the right syntax nowadays. + (ada-goto-next-word): Don't change the syntax of "_". + + * font-lock.el (lisp-font-lock-keywords-2): Don't highlight obsolete + with-wrapper-hook. + 2013-05-08 Sam Steingold * thingatpt.el (thing-at-point): Accept optional second argument === modified file 'lisp/font-lock.el' --- lisp/font-lock.el 2013-03-25 13:47:32 +0000 +++ lisp/font-lock.el 2013-05-08 16:27:53 +0000 @@ -2298,7 +2298,7 @@ "with-selected-window" "with-selected-frame" "with-silent-modifications" "with-syntax-table" "with-temp-buffer" "with-temp-file" "with-temp-message" - "with-timeout" "with-timeout-handler" "with-wrapper-hook") t) + "with-timeout" "with-timeout-handler") t) "\\_>") . 1) ;; Control structures. Common Lisp forms. === modified file 'lisp/mh-e/ChangeLog' --- lisp/mh-e/ChangeLog 2013-03-11 16:31:55 +0000 +++ lisp/mh-e/ChangeLog 2013-05-08 16:27:53 +0000 @@ -1,3 +1,7 @@ +2013-05-08 Stefan Monnier + + * mh-comp.el (mh-regexp-in-field-p): Minor simplification. + 2013-03-02 Bill Wohler Release MH-E version 8.5. === modified file 'lisp/mh-e/mh-comp.el' --- lisp/mh-e/mh-comp.el 2013-02-18 18:11:43 +0000 +++ lisp/mh-e/mh-comp.el 2013-05-08 16:27:53 +0000 @@ -1205,17 +1205,17 @@ (let ((search-result nil)) (while fields (let ((field (car fields)) - (syntax-table mh-regexp-in-field-syntax-table)) - (if (null syntax-table) - (let ((case-fold-search t)) - (cond - ((string-match field "^To$\\|^[BD]?cc$\\|^From$") - (setq syntax-table mh-addr-syntax-table)) - ((string-match field "^Fcc$") - (setq syntax-table mh-fcc-syntax-table)) - (t - (setq syntax-table (syntax-table))) - ))) + (syntax-table + (or mh-regexp-in-field-syntax-table + (let ((case-fold-search t)) + (cond + ((string-match field "^To$\\|^[BD]?cc$\\|^From$") + mh-addr-syntax-table) + ((string-match field "^Fcc$") + mh-fcc-syntax-table) + (t + (syntax-table))) + )))) (if (and (mh-goto-header-field field) (set-syntax-table syntax-table) (re-search-forward === modified file 'lisp/progmodes/ada-mode.el' --- lisp/progmodes/ada-mode.el 2013-01-01 09:11:05 +0000 +++ lisp/progmodes/ada-mode.el 2013-05-08 16:27:53 +0000 @@ -457,15 +457,8 @@ (defvar ada-mode-extra-prefix "\C-c\C-q" "Prefix key to access `ada-mode-extra-map' functions.") -(defvar ada-mode-abbrev-table nil +(define-abbrev-table 'ada-mode-abbrev-table () "Local abbrev table for Ada mode.") -(define-abbrev-table 'ada-mode-abbrev-table ()) - -(defvar ada-mode-syntax-table nil - "Syntax table to be used for editing Ada source code.") - -(defvar ada-mode-symbol-syntax-table nil - "Syntax table for Ada, where `_' is a word constituent.") (eval-when-compile ;; These values are used in eval-when-compile expressions. @@ -845,61 +838,58 @@ ;; better is available on XEmacs. ;;------------------------------------------------------------------------- -(defun ada-create-syntax-table () - "Create the two syntax tables use in the Ada mode. -The standard table declares `_' as a symbol constituent, the second one -declares it as a word constituent." - (interactive) - (setq ada-mode-syntax-table (make-syntax-table)) - - ;; define string brackets (`%' is alternative string bracket, but - ;; almost never used as such and throws font-lock and indentation - ;; off the track.) - (modify-syntax-entry ?% "$" ada-mode-syntax-table) - (modify-syntax-entry ?\" "\"" ada-mode-syntax-table) - - (modify-syntax-entry ?: "." ada-mode-syntax-table) - (modify-syntax-entry ?\; "." ada-mode-syntax-table) - (modify-syntax-entry ?& "." ada-mode-syntax-table) - (modify-syntax-entry ?\| "." ada-mode-syntax-table) - (modify-syntax-entry ?+ "." ada-mode-syntax-table) - (modify-syntax-entry ?* "." ada-mode-syntax-table) - (modify-syntax-entry ?/ "." ada-mode-syntax-table) - (modify-syntax-entry ?= "." ada-mode-syntax-table) - (modify-syntax-entry ?< "." ada-mode-syntax-table) - (modify-syntax-entry ?> "." ada-mode-syntax-table) - (modify-syntax-entry ?$ "." ada-mode-syntax-table) - (modify-syntax-entry ?\[ "." ada-mode-syntax-table) - (modify-syntax-entry ?\] "." ada-mode-syntax-table) - (modify-syntax-entry ?\{ "." ada-mode-syntax-table) - (modify-syntax-entry ?\} "." ada-mode-syntax-table) - (modify-syntax-entry ?. "." ada-mode-syntax-table) - (modify-syntax-entry ?\\ "." ada-mode-syntax-table) - (modify-syntax-entry ?\' "." ada-mode-syntax-table) - - ;; a single hyphen is punctuation, but a double hyphen starts a comment - (modify-syntax-entry ?- ". 12" ada-mode-syntax-table) - - ;; See the comment above on grammar related function for the special - ;; setup for '#'. - (if (featurep 'xemacs) - (modify-syntax-entry ?# "<" ada-mode-syntax-table) - (modify-syntax-entry ?# "$" ada-mode-syntax-table)) - - ;; and \f and \n end a comment - (modify-syntax-entry ?\f "> " ada-mode-syntax-table) - (modify-syntax-entry ?\n "> " ada-mode-syntax-table) - - ;; define what belongs in Ada symbols - (modify-syntax-entry ?_ "_" ada-mode-syntax-table) - - ;; define parentheses to match - (modify-syntax-entry ?\( "()" ada-mode-syntax-table) - (modify-syntax-entry ?\) ")(" ada-mode-syntax-table) - - (setq ada-mode-symbol-syntax-table (copy-syntax-table ada-mode-syntax-table)) - (modify-syntax-entry ?_ "w" ada-mode-symbol-syntax-table) - ) +(defvar ada-mode-syntax-table + (let ((st (make-syntax-table))) + ;; Define string brackets (`%' is alternative string bracket, but + ;; almost never used as such and throws font-lock and indentation + ;; off the track.) + (modify-syntax-entry ?% "$" st) + (modify-syntax-entry ?\" "\"" st) + + (modify-syntax-entry ?: "." st) + (modify-syntax-entry ?\; "." st) + (modify-syntax-entry ?& "." st) + (modify-syntax-entry ?\| "." st) + (modify-syntax-entry ?+ "." st) + (modify-syntax-entry ?* "." st) + (modify-syntax-entry ?/ "." st) + (modify-syntax-entry ?= "." st) + (modify-syntax-entry ?< "." st) + (modify-syntax-entry ?> "." st) + (modify-syntax-entry ?$ "." st) + (modify-syntax-entry ?\[ "." st) + (modify-syntax-entry ?\] "." st) + (modify-syntax-entry ?\{ "." st) + (modify-syntax-entry ?\} "." st) + (modify-syntax-entry ?. "." st) + (modify-syntax-entry ?\\ "." st) + (modify-syntax-entry ?\' "." st) + + ;; A single hyphen is punctuation, but a double hyphen starts a comment. + (modify-syntax-entry ?- ". 12" st) + + ;; See the comment above on grammar related function for the special + ;; setup for '#'. + (modify-syntax-entry ?# (if (featurep 'xemacs) "<" "$") st) + + ;; And \f and \n end a comment. + (modify-syntax-entry ?\f "> " st) + (modify-syntax-entry ?\n "> " st) + + ;; Define what belongs in Ada symbols. + (modify-syntax-entry ?_ "_" st) + + ;; Define parentheses to match. + (modify-syntax-entry ?\( "()" st) + (modify-syntax-entry ?\) ")(" st) + st) + "Syntax table to be used for editing Ada source code.") + +(defvar ada-mode-symbol-syntax-table + (let ((st (make-syntax-table ada-mode-syntax-table))) + (modify-syntax-entry ?_ "w" st) + st) + "Syntax table for Ada, where `_' is a word constituent.") ;; Support of special characters in XEmacs (see the comments at the beginning ;; of the section on Grammar related functions). @@ -1293,7 +1283,7 @@ (if ada-popup-key (define-key ada-mode-map ada-popup-key 'ada-popup-menu)) - ;; Support for Abbreviations (the user still need to "M-x abbrev-mode" + ;; Support for Abbreviations (the user still needs to "M-x abbrev-mode"). (setq local-abbrev-table ada-mode-abbrev-table) ;; Support for which-function mode @@ -1625,9 +1615,8 @@ (let ((lastk last-command-event)) (with-syntax-table ada-mode-symbol-syntax-table - (cond ((or (eq lastk ?\n) - (eq lastk ?\r)) - ;; horrible kludge + (cond ((memq lastk '(?\n ?\r)) + ;; Horrible kludge. (insert " ") (ada-adjust-case) ;; horrible dekludge @@ -1706,9 +1695,7 @@ (interactive) (let ((end (save-excursion (skip-syntax-forward "w") (point))) (begin (save-excursion (skip-syntax-backward "w") (point)))) - (modify-syntax-entry ?_ "_") - (capitalize-region begin end) - (modify-syntax-entry ?_ "w"))) + (capitalize-region begin end))) (defun ada-adjust-case-region (from to) "Adjust the case of all words in the region between FROM and TO. @@ -2165,7 +2152,7 @@ (unwind-protect (with-syntax-table ada-mode-symbol-syntax-table - ;; This need to be done here so that the advice is not always + ;; This needs to be done here so that the advice is not always ;; activated (this might interact badly with other modes) (if (featurep 'xemacs) (ad-activate 'parse-partial-sexp t)) @@ -3419,27 +3406,23 @@ If BACKWARD is non-nil, jump to the beginning of the previous word. Return the new position of point or nil if not found." (let ((match-cons nil) - (orgpoint (point)) - (old-syntax (char-to-string (char-syntax ?_)))) - (modify-syntax-entry ?_ "w") + (orgpoint (point))) (unless backward - (skip-syntax-forward "w")) + (skip-syntax-forward "w_")) (if (setq match-cons - (ada-search-ignore-string-comment "\\w" backward nil t)) + (ada-search-ignore-string-comment "\\sw\\|\\s_" backward nil t)) ;; ;; move to the beginning of the word found ;; (progn (goto-char (car match-cons)) - (skip-syntax-backward "w") + (skip-syntax-backward "w_") (point)) ;; ;; if not found, restore old position of point ;; (goto-char orgpoint) - 'nil) - (modify-syntax-entry ?_ old-syntax)) - ) + 'nil))) (defun ada-check-matching-start (keyword) @@ -5431,9 +5414,6 @@ (ada-create-keymap) (ada-create-menu) -;; Create the syntax tables, but do not activate them -(ada-create-syntax-table) - ;; Add the default extensions (and set up speedbar) (ada-add-extensions ".ads" ".adb") ;; This two files are generated by GNAT when running with -gnatD === modified file 'lisp/progmodes/autoconf.el' --- lisp/progmodes/autoconf.el 2013-01-02 16:13:04 +0000 +++ lisp/progmodes/autoconf.el 2013-05-08 16:27:53 +0000 @@ -41,10 +41,10 @@ "Hook run by `autoconf-mode'.") (defconst autoconf-definition-regexp - "A\\(?:H_TEMPLATE\\|C_\\(?:SUBST\\|DEFINE\\(?:_UNQUOTED\\)?\\)\\)(\\[*\\(\\sw+\\)\\]*") + "A\\(?:H_TEMPLATE\\|C_\\(?:SUBST\\|DEFINE\\(?:_UNQUOTED\\)?\\)\\)(\\[*\\(\\(?:\\sw\\|\\s_\\)+\\)\\]*") (defvar autoconf-font-lock-keywords - `(("\\_" (0 "<")))) (setq-local font-lock-defaults - `(autoconf-font-lock-keywords nil nil (("_" . "w")))) + `(autoconf-font-lock-keywords nil nil)) (setq-local imenu-generic-expression autoconf-imenu-generic-expression) - (setq-local imenu-syntax-alist '(("_" . "w"))) (setq-local indent-line-function #'indent-relative) (setq-local add-log-current-defun-function #'autoconf-current-defun-function)) === modified file 'lisp/progmodes/cperl-mode.el' --- lisp/progmodes/cperl-mode.el 2013-02-13 04:31:09 +0000 +++ lisp/progmodes/cperl-mode.el 2013-05-08 16:27:53 +0000 @@ -565,6 +565,7 @@ "*Non-nil means that the _ (underline) should be treated as word char." :type 'boolean :group 'cperl) +(make-obsolete-variable 'cperl-under-as-char 'superword-mode "24.4") (defcustom cperl-extra-perl-args "" "*Extra arguments to use when starting Perl. === modified file 'lisp/progmodes/f90.el' --- lisp/progmodes/f90.el 2013-05-07 07:05:21 +0000 +++ lisp/progmodes/f90.el 2013-05-08 16:27:53 +0000 @@ -367,7 +367,7 @@ "Keyword-regexp for font-lock level >= 3.") (defconst f90-procedures-re - (concat "\\<" + (concat "\\_<" (regexp-opt '("abs" "achar" "acos" "adjustl" "adjustr" "aimag" "aint" "all" "allocated" "anint" "any" "asin" "associated" @@ -491,16 +491,16 @@ Set the match data so that subexpression 1,2 are the TYPE, and type-name parts, respectively." (let (found l) - (while (and (re-search-forward "\\<\\(\\(?:end[ \t]*\\)?type\\)\\>[ \t]*" + (while (and (re-search-forward "\\_<\\(\\(?:end[ \t]*\\)?type\\)\\_>[ \t]*" limit t) (not (setq found (progn (setq l (match-data)) - (unless (looking-at "\\(is\\>\\|(\\)") - (when (if (looking-at "\\(\\sw+\\)") + (unless (looking-at "\\(is\\_>\\|(\\)") + (when (if (looking-at "\\(\\(?:\\sw\\|\\s_\\)+\\)") (goto-char (match-end 0)) (re-search-forward - "[ \t]*::[ \t]*\\(\\sw+\\)" + "[ \t]*::[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)" (line-end-position) t)) ;; 0 is wrong, but we don't use it. (set-match-data @@ -512,33 +512,33 @@ (defvar f90-font-lock-keywords-1 (list ;; Special highlighting of "module procedure". - '("\\<\\(module[ \t]*procedure\\)\\>\\([^()\n]*::\\)?[ \t]*\\([^&!\n]*\\)" + '("\\_<\\(module[ \t]*procedure\\)\\_>\\([^()\n]*::\\)?[ \t]*\\([^&!\n]*\\)" (1 font-lock-keyword-face) (3 font-lock-function-name-face nil t)) ;; Highlight definition of derived type. -;;; '("\\<\\(\\(?:end[ \t]*\\)?type\\)\\>\\([^()\n]*::\\)?[ \t]*\\(\\sw+\\)" +;;; '("\\_<\\(\\(?:end[ \t]*\\)?type\\)\\_>\\([^()\n]*::\\)?[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)" ;;; (1 font-lock-keyword-face) (3 font-lock-function-name-face)) '(f90-typedef-matcher (1 font-lock-keyword-face) (2 font-lock-function-name-face)) ;; F2003. Prevent operators being highlighted as functions. - '("\\<\\(\\(?:end[ \t]*\\)?interface[ \t]*\\(?:assignment\\|operator\\|\ + '("\\_<\\(\\(?:end[ \t]*\\)?interface[ \t]*\\(?:assignment\\|operator\\|\ read\\|write\\)\\)[ \t]*(" (1 font-lock-keyword-face t)) ;; Other functions and declarations. Named interfaces = F2003. ;; F2008: end submodule submodule_name. - '("\\<\\(\\(?:end[ \t]*\\)?\\(program\\|\\(?:sub\\)?module\\|\ + '("\\_<\\(\\(?:end[ \t]*\\)?\\(program\\|\\(?:sub\\)?module\\|\ function\\|associate\\|subroutine\\|interface\\)\\|use\\|call\\)\ -\\>[ \t]*\\(\\sw+\\)?" +\\_>[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)?" (1 font-lock-keyword-face) (3 font-lock-function-name-face nil t)) ;; F2008: submodule (parent_name) submodule_name. - '("\\<\\(submodule\\)\\>[ \t]*([^)\n]+)[ \t]*\\(\\sw+\\)?" + '("\\_<\\(submodule\\)\\_>[ \t]*([^)\n]+)[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)?" (1 font-lock-keyword-face) (2 font-lock-function-name-face nil t)) ;; F2003. - '("\\<\\(use\\)[ \t]*,[ \t]*\\(\\(?:non_\\)?intrinsic\\)[ \t]*::[ \t]*\ -\\(\\sw+\\)" + '("\\_<\\(use\\)[ \t]*,[ \t]*\\(\\(?:non_\\)?intrinsic\\)[ \t]*::[ \t]*\ +\\(\\(?:\\sw\\|\\s_\\)+\\)" (1 font-lock-keyword-face) (2 font-lock-keyword-face) (3 font-lock-function-name-face)) - "\\<\\(\\(end[ \t]*\\)?block[ \t]*data\\|contains\\)\\>" + "\\_<\\(\\(end[ \t]*\\)?block[ \t]*data\\|contains\\)\\_>" ;; "abstract interface" is F2003. - '("\\" (0 font-lock-keyword-face t))) + '("\\_" (0 font-lock-keyword-face t))) "This does fairly subdued highlighting of comments and function calls.") ;; NB not explicitly handling this, yet it seems to work. @@ -550,7 +550,7 @@ ;; Matcher functions must return nil only when there are no more ;; matches within the search range. (let (found l) - (while (and (re-search-forward "\\<\\(type\\|class\\)[ \t]*(" limit t) + (while (and (re-search-forward "\\_<\\(type\\|class\\)[ \t]*(" limit t) (not (setq found (condition-case nil @@ -565,7 +565,7 @@ (when (re-search-forward ;; type (foo) bar, qux - (if (looking-at "\\sw+") + (if (looking-at "\\(?:\\sw\\|\\s_\\)+") "\\([^&!\n]+\\)" ;; type (foo), stuff :: bar, qux "::[ \t]*\\([^&!\n]+\\)") @@ -608,53 +608,53 @@ ;; integer( kind=1 ) function foo() ;; thanks to the happy accident described above. ;; Not anchored, so don't need to worry about "pure" etc. - '("\\<\\(\\(real\\|integer\\|c\\(haracter\\|omplex\\)\\|\ + '("\\_<\\(\\(real\\|integer\\|c\\(haracter\\|omplex\\)\\|\ logical\\|double[ \t]*precision\\|\ -\\(?:type\\|class\\)[ \t]*([ \t]*\\sw+[ \t]*)\\)[ \t]*\\)\ -\\(function\\)\\>[ \t]*\\(\\sw+\\)[ \t]*\\(([^&!\n]*)\\)" +\\(?:type\\|class\\)[ \t]*([ \t]*\\(?:\\sw\\|\\s_\\)+[ \t]*)\\)[ \t]*\\)\ +\\(function\\)\\_>[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)[ \t]*\\(([^&!\n]*)\\)" (1 font-lock-type-face t) (4 font-lock-keyword-face t) (5 font-lock-function-name-face t) (6 'default t)) ;; enum (F2003; must be followed by ", bind(C)"). - '("\\<\\(enum\\)[ \t]*," (1 font-lock-keyword-face)) + '("\\_<\\(enum\\)[ \t]*," (1 font-lock-keyword-face)) ;; end do, enum (F2003), if, select, where, and forall constructs. ;; block, critical (F2008). ;; Note that "block data" may get somewhat mixed up with F2008 blocks, ;; but since the former is obsolete I'm not going to worry about it. - '("\\<\\(end[ \t]*\\(do\\|if\\|enum\\|select\\|forall\\|where\\|\ -block\\|critical\\)\\)\\>\ -\\([ \t]+\\(\\sw+\\)\\)?" + '("\\_<\\(end[ \t]*\\(do\\|if\\|enum\\|select\\|forall\\|where\\|\ +block\\|critical\\)\\)\\_>\ +\\([ \t]+\\(\\(?:\\sw\\|\\s_\\)+\\)\\)?" (1 font-lock-keyword-face) (3 font-lock-constant-face nil t)) - '("^[ \t0-9]*\\(\\(\\sw+\\)[ \t]*:[ \t]*\\)?\\(\\(if\\|\ + '("^[ \t0-9]*\\(\\(\\(?:\\sw\\|\\s_\\)+\\)[ \t]*:[ \t]*\\)?\\(\\(if\\|\ do\\([ \t]*while\\)?\\|select[ \t]*\\(?:case\\|type\\)\\|where\\|\ -forall\\|block\\|critical\\)\\)\\>" +forall\\|block\\|critical\\)\\)\\_>" (2 font-lock-constant-face nil t) (3 font-lock-keyword-face)) ;; Implicit declaration. - '("\\<\\(implicit\\)[ \t]*\\(real\\|integer\\|c\\(haracter\\|omplex\\)\ + '("\\_<\\(implicit\\)[ \t]*\\(real\\|integer\\|c\\(haracter\\|omplex\\)\ \\|enumerator\\|procedure\\|\ -logical\\|double[ \t]*precision\\|type[ \t]*(\\sw+)\\|none\\)[ \t]*" +logical\\|double[ \t]*precision\\|type[ \t]*(\\(?:\\sw\\|\\s_\\)+)\\|none\\)[ \t]*" (1 font-lock-keyword-face) (2 font-lock-type-face)) - '("\\<\\(namelist\\|common\\)[ \t]*\/\\(\\sw+\\)?\/" + '("\\_<\\(namelist\\|common\\)[ \t]*\/\\(\\(?:\\sw\\|\\s_\\)+\\)?\/" (1 font-lock-keyword-face) (2 font-lock-constant-face nil t)) - "\\" + "\\_" '("\\(&\\)[ \t]*\\(!\\|$\\)" (1 font-lock-keyword-face)) - "\\<\\(then\\|continue\\|format\\|include\\|stop\\|return\\)\\>" - '("\\<\\(exit\\|cycle\\)[ \t]*\\(\\sw+\\)?\\>" + "\\_<\\(then\\|continue\\|format\\|include\\|stop\\|return\\)\\_>" + '("\\_<\\(exit\\|cycle\\)[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)?\\_>" (1 font-lock-keyword-face) (2 font-lock-constant-face nil t)) - '("\\<\\(case\\)[ \t]*\\(default\\|(\\)" . 1) + '("\\_<\\(case\\)[ \t]*\\(default\\|(\\)" . 1) ;; F2003 "class default". - '("\\<\\(class\\)[ \t]*default" . 1) + '("\\_<\\(class\\)[ \t]*default" . 1) ;; F2003 "type is" in a "select type" block. - '("\\<\\(\\(type\\|class\\)[ \t]*is\\)[ \t]*(" (1 font-lock-keyword-face t)) - '("\\<\\(do\\|go[ \t]*to\\)\\>[ \t]*\\([0-9]+\\)" + '("\\_<\\(\\(type\\|class\\)[ \t]*is\\)[ \t]*(" (1 font-lock-keyword-face t)) + '("\\_<\\(do\\|go[ \t]*to\\)\\_>[ \t]*\\([0-9]+\\)" (1 font-lock-keyword-face) (2 font-lock-constant-face)) ;; Line numbers (lines whose first character after number is letter). '("^[ \t]*\\([0-9]+\\)[ \t]*[a-z]+" (1 font-lock-constant-face t)) ;; Override eg for "#include". - '("^#[ \t]*\\w+" (0 font-lock-preprocessor-face t) - ("\\" nil nil (0 font-lock-preprocessor-face))) + '("^#[ \t]*\\(?:\\sw\\|\\s_\\)+" (0 font-lock-preprocessor-face t) + ("\\_" nil nil (0 font-lock-preprocessor-face))) '("^#" ("\\(&&\\|||\\)" nil nil (0 font-lock-constant-face t))) - '("^#[ \t]*define[ \t]+\\(\\w+\\)(" (1 font-lock-function-name-face)) - '("^#[ \t]*define[ \t]+\\(\\w+\\)" (1 font-lock-variable-name-face)) + '("^#[ \t]*define[ \t]+\\(\\(?:\\sw\\|\\s_\\)+\\)(" (1 font-lock-function-name-face)) + '("^#[ \t]*define[ \t]+\\(\\(?:\\sw\\|\\s_\\)+\\)" (1 font-lock-variable-name-face)) '("^#[ \t]*include[ \t]+\\(<.+>\\)" (1 font-lock-string-face)))) "Highlights declarations, do-loops and other constructs.") @@ -666,9 +666,9 @@ ;; FIXME why isn't this font-lock-builtin-face, which ;; otherwise we hardly use, as in fortran.el? (list f90-procedures-re '(1 font-lock-keyword-face keep)) - "\\" ; avoid overwriting real defs + "\\_" ; avoid overwriting real defs ;; As an attribute, but not as an optional argument. - '("\\<\\(asynchronous\\)[ \t]*[^=]" . 1))) + '("\\_<\\(asynchronous\\)[ \t]*[^=]" . 1))) "Highlights all F90 keywords and intrinsic procedures.") (defvar f90-font-lock-keywords-4 @@ -687,8 +687,7 @@ (let ((table (make-syntax-table))) (modify-syntax-entry ?\! "<" table) ; begin comment (modify-syntax-entry ?\n ">" table) ; end comment - ;; FIXME: This goes against the convention: it should be "_". - (modify-syntax-entry ?_ "w" table) ; underscore in names + (modify-syntax-entry ?_ "_" table) ; underscore in names (modify-syntax-entry ?\' "\"" table) ; string quote (modify-syntax-entry ?\" "\"" table) ; string quote ;; FIXME: We used to set ` to word syntax for the benefit of abbrevs, but @@ -850,7 +849,7 @@ "enum" "associate" ;; F2008. "submodule" "block" "critical")) - "\\)\\>") + "\\)\\_>") "Regexp potentially indicating a \"block\" of F90 code.") (defconst f90-program-block-re @@ -866,15 +865,15 @@ (defconst f90-end-if-re (concat "end[ \t]*" (regexp-opt '("if" "select" "where" "forall") 'paren) - "\\>") + "\\_>") "Regexp matching the end of an IF, SELECT, WHERE, FORALL block.") (defconst f90-end-type-re - "end[ \t]*\\(type\\|enum\\|interface\\|block[ \t]*data\\)\\>" + "end[ \t]*\\(type\\|enum\\|interface\\|block[ \t]*data\\)\\_>" "Regexp matching the end of a TYPE, ENUM, INTERFACE, BLOCK DATA section.") (defconst f90-end-associate-re - "end[ \t]*associate\\>" + "end[ \t]*associate\\_>" "Regexp matching the end of an ASSOCIATE block.") ;; This is for a TYPE block, not a variable of derived TYPE. @@ -885,12 +884,12 @@ ;; type, stuff :: word ;; type, bind(c) :: word ;; NOT "type (" - "\\<\\(type\\)\\>\\(?:\\(?:[^()\n]*\\|\ -.*,[ \t]*bind[ \t]*([ \t]*c[ \t]*)[ \t]*\\)::\\)?[ \t]*\\(\\sw+\\)" + "\\_<\\(type\\)\\_>\\(?:\\(?:[^()\n]*\\|\ +.*,[ \t]*bind[ \t]*([ \t]*c[ \t]*)[ \t]*\\)::\\)?[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)" "Regexp matching the definition of a derived type.") (defconst f90-typeis-re - "\\<\\(class\\|type\\)[ \t]*is[ \t]*(" + "\\_<\\(class\\|type\\)[ \t]*is[ \t]*(" "Regexp matching a CLASS/TYPE IS statement.") (defconst f90-no-break-re @@ -909,12 +908,12 @@ ;; Hideshow support. (defconst f90-end-block-re - (concat "^[ \t0-9]*\\") + "\\_>") "Regexp matching the end of an F90 \"block\", from the line start. Used in the F90 entry in `hs-special-modes-alist'.") @@ -924,11 +923,11 @@ (concat "^[ \t0-9]*" ; statement number "\\(\\(" - "\\(\\sw+[ \t]*:[ \t]*\\)?" ; structure label + "\\(\\(?:\\sw\\|\\s_\\)+[ \t]*:[ \t]*\\)?" ; structure label "\\(do\\|select[ \t]*\\(case\\|type\\)\\|" ;; See comments in fortran-start-block-re for the problems of IF. "if[ \t]*(\\(.*\\|" - ".*\n\\([^if]*\\([^i].\\|.[^f]\\|.\\>\\)\\)\\)\\\\)\\)\\)\\_\\|(\\)") - (or (looking-at "\\(\\sw+\\)") + (unless (looking-at "\\(is\\_>\\|(\\)") + (or (looking-at "\\(\\(?:\\sw\\|\\s_\\)+\\)") (re-search-forward - "[ \t]*::[ \t]*\\(\\sw+\\)" + "[ \t]*::[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)" (line-end-position) t)))))))) found)) @@ -978,36 +977,35 @@ (not-n "[^n!\n\"\& \t]") (not-d "[^d!\n\"\& \t]") ;; (not-ib "[^i(!\n\"\& \t]") (not-s "[^s!\n\"\& \t]") ) - (list - '(nil "^[ \t0-9]*program[ \t]+\\(\\sw+\\)" 1) - '("Submodules" "^[ \t0-9]*submodule[ \t]*([^)\n]+)[ \t]*\ -\\(\\sw+\\)[ \t]*\\(!\\|$\\)" 1) - '("Modules" "^[ \t0-9]*module[ \t]+\\(\\sw+\\)[ \t]*\\(!\\|$\\)" 1) - (list "Types" 'f90-imenu-type-matcher 1) - ;; Does not handle: "type[, stuff] :: foo". -;;; (format "^[ \t0-9]*type[ \t]+\\(\\(%s\\|i%s\\|is\\sw\\)\\sw*\\)" -;;; not-ib not-s) -;;; 1) - ;; Can't get the subexpression numbers to match in the two branches. -;;; (format "^[ \t0-9]*type\\([ \t]*,.*\\(::\\)[ \t]*\\(\\sw+\\)\\|[ \t]+\\(\\(%s\\|i%s\\|is\\sw\\)\\sw*\\)\\)" not-ib not-s) -;;; 3) - (list - "Procedures" - (concat - "^[ \t0-9]*" - "\\(" - ;; At least three non-space characters before function/subroutine. - ;; Check that the last three non-space characters do not spell E N D. - "[^!\"\&\n]*\\(" - not-e good-char good-char "\\|" - good-char not-n good-char "\\|" - good-char good-char not-d "\\)" - "\\|" - ;; Less than three non-space characters before function/subroutine. - good-char "?" good-char "?" - "\\)" - "[ \t]*\\(function\\|subroutine\\)[ \t]+\\(\\sw+\\)") - 4))) + `((nil "^[ \t0-9]*program[ \t]+\\(\\(?:\\sw\\|\\s_\\)+\\)" 1) + ("Submodules" "^[ \t0-9]*submodule[ \t]*([^)\n]+)[ \t]*\ +\\(\\(?:\\sw\\|\\s_\\)+\\)[ \t]*\\(!\\|$\\)" 1) + ("Modules" "^[ \t0-9]*module[ \t]+\\(\\(?:\\sw\\|\\s_\\)+\\)[ \t]*\\(!\\|$\\)" 1) + '("Types" f90-imenu-type-matcher 1) + ;; Does not handle: "type[, stuff] :: foo". + ;;(format "^[ \t0-9]*type[ \t]+\\(\\(%s\\|i%s\\|is\\(?:\\sw\\|\\s_\\)\\)\\(?:\\sw\\|\\s_\\)*\\)" + ;; not-ib not-s) + ;;1) + ;; Can't get the subexpression numbers to match in the two branches. + ;; FIXME: Now with \(?N:..\) we can get the numbers to match! + ;;(format "^[ \t0-9]*type\\([ \t]*,.*\\(::\\)[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)\\|[ \t]+\\(\\(%s\\|i%s\\|is\\(?:\\sw\\|\\s_\\)\\)\\(?:\\sw\\|\\s_\\)*\\)\\)" not-ib not-s) + ;;3) + ("Procedures" + ,(concat + "^[ \t0-9]*" + "\\(" + ;; At least three non-space characters before function/subroutine. + ;; Check that the last three non-space characters do not spell E N D. + "[^!\"\&\n]*\\(" + not-e good-char good-char "\\|" + good-char not-n good-char "\\|" + good-char good-char not-d "\\)" + "\\|" + ;; Less than three non-space characters before function/subroutine. + good-char "?" good-char "?" + "\\)" + "[ \t]*\\(function\\|subroutine\\)[ \t]+\\(\\(?:\\sw\\|\\s_\\)+\\)") + 4))) "Value for `imenu-generic-expression' in F90 mode.") (defun f90-add-imenu-menu () @@ -1144,7 +1142,7 @@ whether to blink the matching beginning (default 'blink). `f90-auto-keyword-case' Automatic change of case of keywords (default nil). - The possibilities are 'downcase-word, 'upcase-word, 'capitalize-word. + The possibilities are `downcase-word', `upcase-word', `capitalize-word'. `f90-leave-line-no' Do not left-justify line numbers (default nil). @@ -1256,13 +1254,13 @@ (defsubst f90-looking-at-do () "Return (\"do\" NAME) if a do statement starts after point. NAME is nil if the statement has no label." - (if (looking-at "\\(\\(\\sw+\\)[ \t]*:\\)?[ \t]*\\(do\\)\\>") + (if (looking-at "\\(\\(\\(?:\\sw\\|\\s_\\)+\\)[ \t]*:\\)?[ \t]*\\(do\\)\\_>") (list (match-string 3) (match-string 2)))) (defsubst f90-looking-at-select-case () "Return (\"select\" NAME) if a select statement starts after point. NAME is nil if the statement has no label." - (if (looking-at "\\(\\(\\sw+\\)[ \t]*:\\)?[ \t]*\ + (if (looking-at "\\(\\(\\(?:\\sw\\|\\s_\\)+\\)[ \t]*:\\)?[ \t]*\ \\(select\\)[ \t]*\\(case\\|type\\)[ \t]*(") (list (match-string 3) (match-string 2)))) @@ -1270,50 +1268,50 @@ "Return (\"if\" NAME) if an if () then statement starts after point. NAME is nil if the statement has no label." (save-excursion - (when (looking-at "\\(\\(\\sw+\\)[ \t]*:\\)?[ \t]*\\(if\\)\\>") + (when (looking-at "\\(\\(\\(?:\\sw\\|\\s_\\)+\\)[ \t]*:\\)?[ \t]*\\(if\\)\\_>") (let ((struct (match-string 3)) (label (match-string 2)) (pos (scan-lists (point) 1 0))) (and pos (goto-char pos)) (skip-chars-forward " \t") - (if (or (looking-at "then\\>") + (if (or (looking-at "then\\_>") (when (f90-line-continued) (f90-next-statement) (skip-chars-forward " \t0-9&") - (looking-at "then\\>"))) + (looking-at "then\\_>"))) (list struct label)))))) ;; FIXME label? (defsubst f90-looking-at-associate () "Return (\"associate\") if an associate block starts after point." - (if (looking-at "\\<\\(associate\\)[ \t]*(") + (if (looking-at "\\_<\\(associate\\)[ \t]*(") (list (match-string 1)))) (defsubst f90-looking-at-critical () "Return (KIND NAME) if a critical or block block starts after point." - (if (looking-at "\\(\\(\\sw+\\)[ \t]*:\\)?[ \t]*\\(critical\\|block\\)\\>") + (if (looking-at "\\(\\(\\(?:\\sw\\|\\s_\\)+\\)[ \t]*:\\)?[ \t]*\\(critical\\|block\\)\\_>") (let ((struct (match-string 3)) (label (match-string 2))) (if (or (not (string-equal "block" struct)) (save-excursion (skip-chars-forward " \t") - (not (looking-at "data\\>")))) + (not (looking-at "data\\_>")))) (list struct label))))) (defsubst f90-looking-at-end-critical () "Return non-nil if a critical or block block ends after point." - (if (looking-at "end[ \t]*\\(critical\\|block\\)\\>") + (if (looking-at "end[ \t]*\\(critical\\|block\\)\\_>") (or (not (string-equal "block" (match-string 1))) (save-excursion (skip-chars-forward " \t") - (not (looking-at "data\\>")))))) + (not (looking-at "data\\_>")))))) (defsubst f90-looking-at-where-or-forall () "Return (KIND NAME) if a where or forall block starts after point. NAME is nil if the statement has no label." (save-excursion - (when (looking-at "\\(\\(\\sw+\\)[ \t]*:\\)?[ \t]*\ -\\(where\\|forall\\)\\>") + (when (looking-at "\\(\\(\\(?:\\sw\\|\\s_\\)+\\)[ \t]*:\\)?[ \t]*\ +\\(where\\|forall\\)\\_>") (let ((struct (match-string 3)) (label (match-string 2)) (pos (scan-lists (point) 1 0))) @@ -1326,43 +1324,43 @@ NAME is non-nil only for type and certain interfaces." (cond ((save-excursion - (and (looking-at "\\[ \t]*") + (and (looking-at "\\_[ \t]*") (goto-char (match-end 0)) - (not (looking-at "\\(is\\>\\|(\\)")) - (or (looking-at "\\(\\sw+\\)") - (re-search-forward "[ \t]*::[ \t]*\\(\\sw+\\)" + (not (looking-at "\\(is\\_>\\|(\\)")) + (or (looking-at "\\(\\(?:\\sw\\|\\s_\\)+\\)") + (re-search-forward "[ \t]*::[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)" (line-end-position) t)))) (list "type" (match-string 1))) ;;; ((and (not (looking-at f90-typeis-re)) ;;; (looking-at f90-type-def-re)) ;;; (list (match-string 1) (match-string 2))) - ((looking-at "\\<\\(interface\\)\\>[ \t]*") + ((looking-at "\\_<\\(interface\\)\\_>[ \t]*") (list (match-string 1) (save-excursion (goto-char (match-end 0)) (if (or (looking-at "\\(operator\\|assignment\\|read\\|\ write\\)[ \t]*([^)\n]*)") - (looking-at "\\sw+")) + (looking-at "\\(?:\\sw\\|\\s_\\)+")) (match-string 0))))) - ((looking-at "\\(enum\\|block[ \t]*data\\)\\>") + ((looking-at "\\(enum\\|block[ \t]*data\\)\\_>") (list (match-string 1) nil)) - ((looking-at "abstract[ \t]*\\(interface\\)\\>") + ((looking-at "abstract[ \t]*\\(interface\\)\\_>") (list (match-string 1) nil)))) (defsubst f90-looking-at-program-block-start () "Return (KIND NAME) if a program block with name NAME starts after point." ;;;NAME is nil for an un-named main PROGRAM block." (cond - ((looking-at "\\(program\\)[ \t]+\\(\\sw+\\)\\>") - (list (match-string 1) (match-string 2))) - ((and (not (looking-at "module[ \t]*procedure\\>")) - (looking-at "\\(module\\)[ \t]+\\(\\sw+\\)\\>")) - (list (match-string 1) (match-string 2))) - ((looking-at "\\(submodule\\)[ \t]*([^)\n]+)[ \t]*\\(\\sw+\\)\\>") + ((looking-at "\\(program\\)[ \t]+\\(\\(?:\\sw\\|\\s_\\)+\\)\\_>") + (list (match-string 1) (match-string 2))) + ((and (not (looking-at "module[ \t]*procedure\\_>")) + (looking-at "\\(module\\)[ \t]+\\(\\(?:\\sw\\|\\s_\\)+\\)\\_>")) + (list (match-string 1) (match-string 2))) + ((looking-at "\\(submodule\\)[ \t]*([^)\n]+)[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)\\_>") (list (match-string 1) (match-string 2))) ((and (not (looking-at "end[ \t]*\\(function\\|subroutine\\)")) (looking-at "[^!'\"\&\n]*\\(function\\|subroutine\\)[ \t]+\ -\\(\\sw+\\)")) +\\(\\(?:\\sw\\|\\s_\\)+\\)")) (list (match-string 1) (match-string 2))))) ;; Following will match an un-named main program block; however ;; one needs to check if there is an actual PROGRAM statement after @@ -1378,7 +1376,7 @@ \\(?:assignment\\|operator\\|read\\|write\\)[ \t]*([^)\n]*)\\)") (list (match-string 1) (match-string 2))) ((looking-at (concat "end[ \t]*" f90-blocks-re - "?\\([ \t]+\\(\\sw+\\)\\)?\\>")) + "?\\([ \t]+\\(\\(?:\\sw\\|\\s_\\)+\\)\\)?\\_>")) (list (match-string 1) (match-string 3))))) (defsubst f90-comment-indent () @@ -1435,10 +1433,10 @@ (not (or (looking-at "end") (looking-at "\\(do\\|if\\|else\\(if\\|where\\)?\ \\|select[ \t]*\\(case\\|type\\)\\|case\\|where\\|forall\\|\ -block\\|critical\\)\\>") +block\\|critical\\)\\_>") (looking-at "\\(program\\|\\(?:sub\\)?module\\|\ -\\(?:abstract[ \t]*\\)?interface\\|block[ \t]*data\\)\\>") - (looking-at "\\(contains\\|\\sw+[ \t]*:\\)") +\\(?:abstract[ \t]*\\)?interface\\|block[ \t]*data\\)\\_>") + (looking-at "\\(contains\\|\\(?:\\sw\\|\\s_\\)+[ \t]*:\\)") (looking-at f90-type-def-re) (re-search-forward "\\(function\\|subroutine\\)" (line-end-position) t))))) @@ -1504,7 +1502,7 @@ (setq icol (- icol f90-associate-indent))) ((f90-looking-at-end-critical) (setq icol (- icol f90-critical-indent))) - ((looking-at "end[ \t]*do\\>") + ((looking-at "end[ \t]*do\\_>") (setq icol (- icol f90-do-indent)))) (end-of-line)) icol))) @@ -1571,7 +1569,7 @@ (cond ((or (looking-at f90-else-like-re) (looking-at f90-end-if-re)) (setq icol (- icol f90-if-indent))) - ((looking-at "end[ \t]*do\\>") + ((looking-at "end[ \t]*do\\_>") (setq icol (- icol f90-do-indent))) ((looking-at f90-end-type-re) (setq icol (- icol f90-type-indent))) @@ -1692,7 +1690,7 @@ (setq start-list (cons start-this start-list) ; not add-to-list! count (1+ count))) ((looking-at (concat "end[ \t]*" f90-blocks-re - "[ \t]*\\(\\sw+\\)?")) + "[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)?")) (setq end-type (match-string 1) end-label (match-string 2) count (1- count)) @@ -1737,7 +1735,7 @@ (skip-chars-forward " \t0-9") (cond ((or (f90-in-string) (f90-in-comment))) ((looking-at (concat "end[ \t]*" f90-blocks-re - "[ \t]*\\(\\sw+\\)?")) + "[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)?")) (setq end-list (cons (list (match-string 1) (match-string 2)) end-list) count (1+ count))) @@ -1983,7 +1981,7 @@ (car end-struct) (cadr end-struct)))) (setq ind-b (cond ((looking-at f90-end-if-re) f90-if-indent) - ((looking-at "end[ \t]*do\\>") f90-do-indent) + ((looking-at "end[ \t]*do\\_>") f90-do-indent) ((looking-at f90-end-type-re) f90-type-indent) ((looking-at f90-end-associate-re) f90-associate-indent) === modified file 'lisp/progmodes/ld-script.el' --- lisp/progmodes/ld-script.el 2013-01-01 09:11:05 +0000 +++ lisp/progmodes/ld-script.el 2013-05-08 16:27:53 +0000 @@ -48,7 +48,7 @@ (modify-syntax-entry ?\) ")(" st) (modify-syntax-entry ?\[ "(]" st) (modify-syntax-entry ?\] ")[" st) - (modify-syntax-entry ?_ "w" st) + (modify-syntax-entry ?_ "_" st) (modify-syntax-entry ?. "_" st) (modify-syntax-entry ?\\ "\\" st) (modify-syntax-entry ?: "." st) @@ -154,10 +154,10 @@ (defvar ld-script-font-lock-keywords (append - `((,(regexp-opt ld-script-keywords 'words) - 1 font-lock-keyword-face) - (,(regexp-opt ld-script-builtins 'words) - 1 font-lock-builtin-face) + `((,(concat "\\_<" (regexp-opt ld-script-keywords) "\\_>") + 0 font-lock-keyword-face) + (,(concat "\\_<" (regexp-opt ld-script-builtins) "\\_>") + 0 font-lock-builtin-face) ;; 3.6.7 Output Section Discarding ;; 3.6.4.1 Input Section Basics ;; 3.6.8.7 Output Section Phdr === modified file 'lisp/progmodes/m4-mode.el' --- lisp/progmodes/m4-mode.el 2013-05-08 06:56:37 +0000 +++ lisp/progmodes/m4-mode.el 2013-05-08 16:27:53 +0000 @@ -88,8 +88,12 @@ (modify-syntax-entry ?\n ">#" table) (modify-syntax-entry ?{ "_" table) (modify-syntax-entry ?} "_" table) + ;; FIXME: This symbol syntax for underscore looks OK on its own, but it's + ;; odd that it should have the same syntax as { and } are these really + ;; valid in m4 symbols? + (modify-syntax-entry ?_ "_" table) + ;; FIXME: These three chars with word syntax look wrong. (modify-syntax-entry ?* "w" table) - (modify-syntax-entry ?_ "_" table) (modify-syntax-entry ?\" "w" table) (modify-syntax-entry ?\" "w" table) table) === modified file 'lisp/progmodes/meta-mode.el' --- lisp/progmodes/meta-mode.el 2013-01-01 09:11:05 +0000 +++ lisp/progmodes/meta-mode.el 2013-05-08 16:27:53 +0000 @@ -794,6 +794,7 @@ (defvar meta-common-mode-syntax-table (let ((st (make-syntax-table))) + ;; FIXME: This goes against the convention! ;; underscores are word constituents (modify-syntax-entry ?_ "w" st) ;; miscellaneous non-word symbols === modified file 'lisp/progmodes/prolog.el' --- lisp/progmodes/prolog.el 2013-04-20 16:24:04 +0000 +++ lisp/progmodes/prolog.el 2013-05-08 16:27:53 +0000 @@ -772,6 +772,8 @@ :version "24.1" :group 'prolog-other :type 'boolean) +(make-obsolete-variable 'prolog-underscore-wordchar-flag + 'superword-mode "24.4") (defcustom prolog-use-sicstus-sd nil "If non-nil, use the source level debugger of SICStus 3#7 and later." @@ -785,6 +787,7 @@ :version "24.1" :group 'prolog-other :type 'boolean) +(make-obsolete-variable 'prolog-char-quote-workaround nil "24.1") ;;------------------------------------------------------------------- @@ -802,10 +805,7 @@ ;; - In atoms \x sometimes needs a terminating \ (ISO-style) ;; and sometimes not. (let ((table (make-syntax-table))) - (if prolog-underscore-wordchar-flag - (modify-syntax-entry ?_ "w" table) - (modify-syntax-entry ?_ "_" table)) - + (modify-syntax-entry ?_ (if prolog-underscore-wordchar-flag "w" "_") table) (modify-syntax-entry ?+ "." table) (modify-syntax-entry ?- "." table) (modify-syntax-entry ?= "." table) @@ -815,7 +815,8 @@ (modify-syntax-entry ?\' "\"" table) ;; Any better way to handle the 0' construct?!? - (when prolog-char-quote-workaround + (when (and prolog-char-quote-workaround + (not (fboundp 'syntax-propertize-rules))) (modify-syntax-entry ?0 "\\" table)) (modify-syntax-entry ?% "<" table) === modified file 'lisp/progmodes/vera-mode.el' --- lisp/progmodes/vera-mode.el 2013-02-23 21:54:00 +0000 +++ lisp/progmodes/vera-mode.el 2013-05-08 16:27:53 +0000 @@ -101,6 +101,8 @@ are treated as single words otherwise." :type 'boolean :group 'vera) +(make-obsolete-variable 'vera-underscore-is-part-of-word + 'superword-mode "24.4") (defcustom vera-intelligent-tab t "Non-nil means `TAB' does indentation, word completion and tab insertion. === modified file 'lisp/progmodes/verilog-mode.el' --- lisp/progmodes/verilog-mode.el 2013-02-12 17:36:54 +0000 +++ lisp/progmodes/verilog-mode.el 2013-05-08 16:27:53 +0000 @@ -2784,6 +2784,8 @@ (modify-syntax-entry ?> "." table) (modify-syntax-entry ?& "." table) (modify-syntax-entry ?| "." table) + ;; FIXME: This goes against Emacs conventions. Use "_" syntax instead and + ;; then use regexps with things like "\\_<...\\_>". (modify-syntax-entry ?` "w" table) (modify-syntax-entry ?_ "w" table) (modify-syntax-entry ?\' "." table) === modified file 'lisp/progmodes/vhdl-mode.el' --- lisp/progmodes/vhdl-mode.el 2013-01-01 09:11:05 +0000 +++ lisp/progmodes/vhdl-mode.el 2013-05-08 16:27:53 +0000 @@ -1872,14 +1872,11 @@ "Non-nil means consider the underscore character `_' as part of word. An identifier containing underscores is then treated as a single word in select and move operations. All parts of an identifier separated by underscore -are treated as single words otherwise. - -NOTE: Activate the new setting in a VHDL buffer by using the menu entry - \"Activate Options\"." +are treated as single words otherwise." :type 'boolean - :set (lambda (variable value) - (vhdl-custom-set variable value 'vhdl-mode-syntax-table-init)) :group 'vhdl-misc) +(make-obsolete-variable 'vhdl-underscore-is-part-of-word + 'superword-mode "24.4") (defgroup vhdl-related nil @@ -2433,6 +2430,7 @@ (progn (set-buffer (create-file-buffer ,file-name)) (setq file-opened t) (vhdl-insert-file-contents ,file-name) + ;; FIXME: This modifies a global syntax-table! (modify-syntax-entry ?\- ". 12" (syntax-table)) (modify-syntax-entry ?\n ">" (syntax-table)) (modify-syntax-entry ?\^M ">" (syntax-table)) @@ -2864,56 +2862,51 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Syntax table -(defvar vhdl-mode-syntax-table nil +(defvar vhdl-mode-syntax-table + (let ((st (make-syntax-table))) + ;; define punctuation + (modify-syntax-entry ?\# "." st) + (modify-syntax-entry ?\$ "." st) + (modify-syntax-entry ?\% "." st) + (modify-syntax-entry ?\& "." st) + (modify-syntax-entry ?\' "." st) + (modify-syntax-entry ?\* "." st) + (modify-syntax-entry ?\+ "." st) + (modify-syntax-entry ?\. "." st) + (modify-syntax-entry ?\/ "." st) + (modify-syntax-entry ?\: "." st) + (modify-syntax-entry ?\; "." st) + (modify-syntax-entry ?\< "." st) + (modify-syntax-entry ?\= "." st) + (modify-syntax-entry ?\> "." st) + (modify-syntax-entry ?\\ "." st) + (modify-syntax-entry ?\| "." st) + ;; define string + (modify-syntax-entry ?\" "\"" st) + ;; define underscore + (modify-syntax-entry ?\_ (if vhdl-underscore-is-part-of-word "w" "_") st) + ;; a single hyphen is punctuation, but a double hyphen starts a comment + (modify-syntax-entry ?\- ". 12" st) + ;; and \n and \^M end a comment + (modify-syntax-entry ?\n ">" st) + (modify-syntax-entry ?\^M ">" st) + ;; define parentheses to match + (modify-syntax-entry ?\( "()" st) + (modify-syntax-entry ?\) ")(" st) + (modify-syntax-entry ?\[ "(]" st) + (modify-syntax-entry ?\] ")[" st) + (modify-syntax-entry ?\{ "(}" st) + (modify-syntax-entry ?\} "){" st) + st) "Syntax table used in `vhdl-mode' buffers.") -(defvar vhdl-mode-ext-syntax-table nil +(defvar vhdl-mode-ext-syntax-table + ;; Extended syntax table including '_' (for simpler search regexps). + (let ((st (copy-syntax-table vhdl-mode-syntax-table))) + (modify-syntax-entry ?_ "w" st) + st) "Syntax table extended by `_' used in `vhdl-mode' buffers.") -(defun vhdl-mode-syntax-table-init () - "Initialize `vhdl-mode-syntax-table'." - (setq vhdl-mode-syntax-table (make-syntax-table)) - ;; define punctuation - (modify-syntax-entry ?\# "." vhdl-mode-syntax-table) - (modify-syntax-entry ?\$ "." vhdl-mode-syntax-table) - (modify-syntax-entry ?\% "." vhdl-mode-syntax-table) - (modify-syntax-entry ?\& "." vhdl-mode-syntax-table) - (modify-syntax-entry ?\' "." vhdl-mode-syntax-table) - (modify-syntax-entry ?\* "." vhdl-mode-syntax-table) - (modify-syntax-entry ?\+ "." vhdl-mode-syntax-table) - (modify-syntax-entry ?\. "." vhdl-mode-syntax-table) - (modify-syntax-entry ?\/ "." vhdl-mode-syntax-table) - (modify-syntax-entry ?\: "." vhdl-mode-syntax-table) - (modify-syntax-entry ?\; "." vhdl-mode-syntax-table) - (modify-syntax-entry ?\< "." vhdl-mode-syntax-table) - (modify-syntax-entry ?\= "." vhdl-mode-syntax-table) - (modify-syntax-entry ?\> "." vhdl-mode-syntax-table) - (modify-syntax-entry ?\\ "." vhdl-mode-syntax-table) - (modify-syntax-entry ?\| "." vhdl-mode-syntax-table) - ;; define string - (modify-syntax-entry ?\" "\"" vhdl-mode-syntax-table) - ;; define underscore - (when vhdl-underscore-is-part-of-word - (modify-syntax-entry ?\_ "w" vhdl-mode-syntax-table)) - ;; a single hyphen is punctuation, but a double hyphen starts a comment - (modify-syntax-entry ?\- ". 12" vhdl-mode-syntax-table) - ;; and \n and \^M end a comment - (modify-syntax-entry ?\n ">" vhdl-mode-syntax-table) - (modify-syntax-entry ?\^M ">" vhdl-mode-syntax-table) - ;; define parentheses to match - (modify-syntax-entry ?\( "()" vhdl-mode-syntax-table) - (modify-syntax-entry ?\) ")(" vhdl-mode-syntax-table) - (modify-syntax-entry ?\[ "(]" vhdl-mode-syntax-table) - (modify-syntax-entry ?\] ")[" vhdl-mode-syntax-table) - (modify-syntax-entry ?\{ "(}" vhdl-mode-syntax-table) - (modify-syntax-entry ?\} "){" vhdl-mode-syntax-table) - ;; extended syntax table including '_' (for simpler search regexps) - (setq vhdl-mode-ext-syntax-table (copy-syntax-table vhdl-mode-syntax-table)) - (modify-syntax-entry ?_ "w" vhdl-mode-ext-syntax-table)) - -;; initialize syntax table for VHDL Mode -(vhdl-mode-syntax-table-init) - (defvar vhdl-syntactic-context nil "Buffer local variable containing syntactic analysis list.") (make-variable-buffer-local 'vhdl-syntactic-context) ------------------------------------------------------------ revno: 112518 committer: Juanma Barranquero branch nick: trunk timestamp: Wed 2013-05-08 18:22:09 +0200 message: lib/makefile.w32-in (ACL_H): New macro. ($(BLD)/acl-errno-valid.$(O)): Update dependencies. diff: === modified file 'ChangeLog' --- ChangeLog 2013-05-07 21:34:03 +0000 +++ ChangeLog 2013-05-08 16:22:09 +0000 @@ -1,3 +1,8 @@ +2013-05-08 Juanma Barranquero + + * lib/makefile.w32-in (ACL_H): New macro. + ($(BLD)/acl-errno-valid.$(O)): Update dependencies. + 2013-05-07 Paul Eggert Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295) === modified file 'lib/makefile.w32-in' --- lib/makefile.w32-in 2013-05-07 21:34:03 +0000 +++ lib/makefile.w32-in 2013-05-08 16:22:09 +0000 @@ -78,6 +78,9 @@ SRC = $(EMACS_ROOT)/src NT_INC = $(EMACS_ROOT)/nt/inc +ACL_H = $(GNU_LIB)/acl.h \ + $(NT_INC)/sys/stat.h \ + $(NT_INC)/stdbool.h C_CTYPE_H = $(GNU_LIB)/c-ctype.h \ $(NT_INC)/stdbool.h MS_W32_H = $(NT_INC)/ms-w32.h \ @@ -112,9 +115,8 @@ $(BLD)/acl-errno-valid.$(O) : \ $(GNU_LIB)/acl-errno-valid.c \ - $(CONFIG_H) \ - $(GNU_LIB)/acl.h \ - $(NT_INC)/stdbool.h + $(ACL_H) \ + $(CONFIG_H) $(BLD)/c-ctype.$(O) : \ $(GNU_LIB)/c-ctype.c \ ------------------------------------------------------------ revno: 112517 committer: Juanma Barranquero branch nick: trunk timestamp: Wed 2013-05-08 18:21:19 +0200 message: src/makefile.w32-in (ACL_H): New macro. ($(BLD)/fileio.$(O)): Update dependencies. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-05-07 21:34:03 +0000 +++ src/ChangeLog 2013-05-08 16:21:19 +0000 @@ -1,3 +1,8 @@ +2013-05-08 Juanma Barranquero + + * makefile.w32-in (ACL_H): New macro. + ($(BLD)/fileio.$(O)): Update dependencies. + 2013-05-07 Paul Eggert Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295) === modified file 'src/makefile.w32-in' --- src/makefile.w32-in 2013-03-29 03:03:19 +0000 +++ src/makefile.w32-in 2013-05-08 16:21:19 +0000 @@ -388,6 +388,9 @@ GNU_LIB = $(EMACS_ROOT)/lib NT_INC = $(EMACS_ROOT)/nt/inc +ACL_H = $(GNU_LIB)/acl.h \ + $(NT_INC)/sys/stat.h \ + $(NT_INC)/stdbool.h SYSTIME_H = $(SRC)/systime.h \ $(NT_INC)/sys/time.h \ $(GNU_LIB)/timespec.h @@ -848,6 +851,7 @@ $(NT_INC)/sys/stat.h \ $(NT_INC)/unistd.h \ $(GNU_LIB)/allocator.h \ + $(ACL_H) \ $(BUFFER_H) \ $(CAREADLINKAT_H) \ $(CHARACTER_H) \ ------------------------------------------------------------ revno: 112516 committer: Sam Steingold branch nick: trunk timestamp: Wed 2013-05-08 11:13:25 -0400 message: * lisp/thingatpt.el (thing-at-point): Accept optional second argument NO-PROPERTIES to strip the text properties from the return value. * lisp/net/browse-url.el (browse-url-url-at-point): Pass NO-PROPERTIES to `thing-at-point' instead of stripping the properties ourselves. Also, when `thing-at-point' fails to find a url, prepend "http://" to the filename at point on the assumption that the user is pointing at something like gnu.org/gnu. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-08 15:06:28 +0000 +++ lisp/ChangeLog 2013-05-08 15:13:25 +0000 @@ -1,3 +1,13 @@ +2013-05-08 Sam Steingold + + * thingatpt.el (thing-at-point): Accept optional second argument + NO-PROPERTIES to strip the text properties from the return value. + * net/browse-url.el (browse-url-url-at-point): Pass NO-PROPERTIES + to `thing-at-point' instead of stripping the properties ourselves. + Also, when `thing-at-point' fails to find a url, prepend "http://" + to the filename at point on the assumption that the user is + pointing at something like gnu.org/gnu. + 2013-05-08 Juanma Barranquero * emacs-lisp/bytecomp.el (byte-compile-insert-header): ------------------------------------------------------------ revno: 112515 committer: Sam Steingold branch nick: trunk timestamp: Wed 2013-05-08 11:10:17 -0400 message: * lisp/thingatpt.el (thing-at-point): Accept optional second argument NO-PROPERTIES to strip the text properties from the return value. * lisp/net/browse-url.el (browse-url-url-at-point): Pass NO-PROPERTIES to `thing-at-point' instead of stripping the properties ourselves. Also, when `thing-at-point' fails to find a url, prepend "http://" to the filename at point on the assumption that the user is pointing at something like gnu.org/gnu. diff: === modified file 'lisp/net/browse-url.el' --- lisp/net/browse-url.el 2013-01-01 09:11:05 +0000 +++ lisp/net/browse-url.el 2013-05-08 15:10:17 +0000 @@ -658,9 +658,10 @@ ;; URL input (defun browse-url-url-at-point () - (let ((url (thing-at-point 'url))) - (set-text-properties 0 (length url) nil url) - url)) + (or (thing-at-point 'url t) + ;; assume that the user is pointing at something like gnu.org/gnu + (let ((f (thing-at-point 'filename t))) + (and f (concat "http://" f))))) ;; Having this as a separate function called by the browser-specific ;; functions allows them to be stand-alone commands, making it easier === modified file 'lisp/thingatpt.el' --- lisp/thingatpt.el 2013-03-30 01:32:12 +0000 +++ lisp/thingatpt.el 2013-05-08 15:10:17 +0000 @@ -128,20 +128,27 @@ (error nil))))) ;;;###autoload -(defun thing-at-point (thing) +(defun thing-at-point (thing &optional no-properties) "Return the THING at point. THING should be a symbol specifying a type of syntactic entity. Possibilities include `symbol', `list', `sexp', `defun', `filename', `url', `email', `word', `sentence', `whitespace', `line', `number', and `page'. +When the optional argument NO-PROPERTIES is non-nil, +strip text properties from the return value. + See the file `thingatpt.el' for documentation on how to define a symbol as a valid THING." - (if (get thing 'thing-at-point) - (funcall (get thing 'thing-at-point)) - (let ((bounds (bounds-of-thing-at-point thing))) - (if bounds - (buffer-substring (car bounds) (cdr bounds)))))) + (let ((text + (if (get thing 'thing-at-point) + (funcall (get thing 'thing-at-point)) + (let ((bounds (bounds-of-thing-at-point thing))) + (when bounds + (buffer-substring (car bounds) (cdr bounds))))))) + (when (and text no-properties) + (set-text-properties 0 (length text) nil text)) + text)) ;; Go to beginning/end ------------------------------------------------------------ revno: 112514 committer: Juanma Barranquero branch nick: trunk timestamp: Wed 2013-05-08 17:06:28 +0200 message: Silence byte-compiler warnings. * lisp/emacs-lisp/bytecomp.el (byte-compile-insert-header): * lisp/faces.el (crm-separator): Silence byte-compiler. * lisp/progmodes/gud.el (gdb-speedbar-auto-raise, gud-tooltip-mode) (tool-bar-map): Remove unneeded defvars. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-08 14:22:24 +0000 +++ lisp/ChangeLog 2013-05-08 15:06:28 +0000 @@ -1,3 +1,12 @@ +2013-05-08 Juanma Barranquero + + * emacs-lisp/bytecomp.el (byte-compile-insert-header): + * faces.el (crm-separator): + Silence byte-compiler. + + * progmodes/gud.el (gdb-speedbar-auto-raise, gud-tooltip-mode) + (tool-bar-map): Remove unneeded defvars. + 2013-05-08 Leo Liu Re-work a fix for bug#10994 based on Le Wang's patch. === modified file 'lisp/emacs-lisp/bytecomp.el' --- lisp/emacs-lisp/bytecomp.el 2013-04-20 19:48:04 +0000 +++ lisp/emacs-lisp/bytecomp.el 2013-05-08 15:06:28 +0000 @@ -1978,7 +1978,7 @@ (widen) (delete-char delta)))) -(defun byte-compile-insert-header (filename outbuffer) +(defun byte-compile-insert-header (_filename outbuffer) "Insert a header at the start of OUTBUFFER. Call from the source buffer." (let ((dynamic-docstrings byte-compile-dynamic-docstrings) === modified file 'lisp/faces.el' --- lisp/faces.el 2013-04-27 17:01:17 +0000 +++ lisp/faces.el 2013-05-08 15:06:28 +0000 @@ -933,6 +933,8 @@ ;;; Interactively modifying faces. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defvar crm-separator) ; from crm.el + (defun read-face-name (prompt &optional default multiple) "Read one or more face names, prompting with PROMPT. PROMPT should not end in a space or a colon. === modified file 'lisp/progmodes/gud.el' --- lisp/progmodes/gud.el 2013-04-20 16:24:04 +0000 +++ lisp/progmodes/gud.el 2013-05-08 15:06:28 +0000 @@ -46,11 +46,8 @@ (defvar gdb-show-changed-values) (defvar gdb-source-window) (defvar gdb-var-list) -(defvar gdb-speedbar-auto-raise) -(defvar gud-tooltip-mode) (defvar hl-line-mode) (defvar hl-line-sticky-flag) -(defvar tool-bar-map) ;; ====================================================================== @@ -3417,7 +3414,7 @@ ; the tooltip incompletely and spill over into the gud buffer. ; Switching the process-filter creates timing problems and ; it may be difficult to do better. Using GDB/MI as in -; gdb-mi.el gets round this problem. +; gdb-mi.el gets around this problem. (defun gud-tooltip-process-output (process output) "Process debugger output and show it in a tooltip window." (remove-function (process-filter process) #'gud-tooltip-process-output) ------------------------------------------------------------ revno: 112513 committer: Juanma Barranquero branch nick: trunk timestamp: Wed 2013-05-08 17:04:20 +0200 message: nt/config.nt: Sync with autogen/config.in. diff: === modified file 'nt/ChangeLog' --- nt/ChangeLog 2013-05-07 21:34:03 +0000 +++ nt/ChangeLog 2013-05-08 15:04:20 +0000 @@ -1,3 +1,17 @@ +2013-05-08 Juanma Barranquero + + * config.nt: Sync with autogen/config.in. + (HAVE_ACLSORT, HAVE_ACLV_H, HAVE_ACLX_GET, HAVE_ACL_COPY_EXT_NATIVE) + (HAVE_ACL_CREATE_ENTRY_NP, HAVE_ACL_DELETE_DEF_FILE) + (HAVE_ACL_DELETE_FD_NP, HAVE_ACL_DELETE_FILE_NP, HAVE_ACL_ENTRIES) + (HAVE_ACL_EXTENDED_FILE, HAVE_ACL_FIRST_ENTRY, HAVE_ACL_FREE) + (HAVE_ACL_FREE_TEXT, HAVE_ACL_FROM_MODE, HAVE_ACL_FROM_TEXT) + (HAVE_ACL_GET_FD, HAVE_ACL_GET_FILE, HAVE_ACL_LIBACL_H, HAVE_ACL_SET_FD) + (HAVE_ACL_TO_SHORT_TEXT, HAVE_ACL_TRIVIAL, HAVE_ACL_TYPE_EXTENDED) + (HAVE_FACL, HAVE_GETACL, HAVE_STATACL, HAVE_SYS_ACL_H, HAVE_XINERAMA) + (HAVE_XRANDR, HAVE_XRRGETOUTPUTPRIMARY) + (HAVE_XRRGETSCREENRESOURCESCURRENT, USE_ACL): New macros. + 2013-05-07 Paul Eggert Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295) === modified file 'nt/config.nt' --- nt/config.nt 2013-05-07 21:34:03 +0000 +++ nt/config.nt 2013-05-08 15:04:20 +0000 @@ -215,6 +215,75 @@ /* Define to 1 if you have the `access' function. */ #undef HAVE_ACCESS +/* Define to 1 if you have the `aclsort' function. */ +#undef HAVE_ACLSORT + +/* Define to 1 if you have the header file. */ +#undef HAVE_ACLV_H + +/* Define to 1 if you have the `aclx_get' function. */ +#undef HAVE_ACLX_GET + +/* Define to 1 if you have the `acl_copy_ext_native' function. */ +#undef HAVE_ACL_COPY_EXT_NATIVE + +/* Define to 1 if you have the `acl_create_entry_np' function. */ +#undef HAVE_ACL_CREATE_ENTRY_NP + +/* Define to 1 if you have the `acl_delete_def_file' function. */ +#undef HAVE_ACL_DELETE_DEF_FILE + +/* Define to 1 if you have the `acl_delete_fd_np' function. */ +#undef HAVE_ACL_DELETE_FD_NP + +/* Define to 1 if you have the `acl_delete_file_np' function. */ +#undef HAVE_ACL_DELETE_FILE_NP + +/* Define to 1 if you have the `acl_entries' function. */ +#undef HAVE_ACL_ENTRIES + +/* Define to 1 if you have the `acl_extended_file' function. */ +#undef HAVE_ACL_EXTENDED_FILE + +/* Define to 1 if the constant ACL_FIRST_ENTRY exists. */ +#undef HAVE_ACL_FIRST_ENTRY + +/* Define to 1 if you have the `acl_free' function. */ +#define HAVE_ACL_FREE 1 + +/* Define to 1 if you have the `acl_free_text' function. */ +#undef HAVE_ACL_FREE_TEXT + +/* Define to 1 if you have the `acl_from_mode' function. */ +#undef HAVE_ACL_FROM_MODE + +/* Define to 1 if you have the `acl_from_text' function. */ +#define HAVE_ACL_FROM_TEXT 1 + +/* Define to 1 if you have the `acl_get_fd' function. */ +#undef HAVE_ACL_GET_FD + +/* Define to 1 if you have the `acl_get_file' function. */ +#define HAVE_ACL_GET_FILE 1 + +/* Define to 1 if you have the header file. */ +#undef HAVE_ACL_LIBACL_H + +/* Define to 1 if you have the `acl_set_fd' function. */ +#undef HAVE_ACL_SET_FD + +/* Define to 1 if you have the `acl_set_file' function. */ +#define HAVE_ACL_SET_FILE 1 + +/* Define to 1 if you have the `acl_to_short_text' function. */ +#undef HAVE_ACL_TO_SHORT_TEXT + +/* Define to 1 if you have the `acl_trivial' function. */ +#undef HAVE_ACL_TRIVIAL + +/* Define to 1 if the ACL type ACL_TYPE_EXTENDED exists. */ +#undef HAVE_ACL_TYPE_EXTENDED + /* Define to 1 if the file /usr/lpp/X11/bin/smt.exp exists. */ #undef HAVE_AIX_SMT_EXP @@ -382,6 +451,9 @@ /* Define to 1 if you have the `faccessat' function. */ #undef HAVE_FACCESSAT +/* Define to 1 if you have the `facl' function. */ +#undef HAVE_FACL + /* Define to 1 if you have the `fdatasync' function. */ #undef HAVE_FDATASYNC @@ -421,6 +493,9 @@ /* Define to 1 if using GConf. */ #undef HAVE_GCONF +/* Define to 1 if you have the `getacl' function. */ +#undef HAVE_GETACL + /* Define to 1 if you have the `getaddrinfo' function. */ #undef HAVE_GETADDRINFO @@ -755,9 +830,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_PNG_H -/* Define to 1 if using POSIX ACL support. */ -#define HAVE_ACL_SET_FILE 1 - /* Define to 1 if you have the `posix_memalign' function. */ #undef HAVE_POSIX_MEMALIGN @@ -865,6 +937,9 @@ /* Define to 1 if `speed_t' is declared by . */ #undef HAVE_SPEED_T +/* Define to 1 if you have the `statacl' function. */ +#undef HAVE_STATACL + /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H @@ -953,6 +1028,9 @@ /* Define to 1 if you have the `sync' function. */ #undef HAVE_SYNC +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_ACL_H 1 + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_BITYPES_H @@ -1113,15 +1191,27 @@ /* Define to 1 if XIM is available */ #undef HAVE_XIM +/* Define to 1 if you have the Xinerama extension. */ +#undef HAVE_XINERAMA + /* Define to 1 if you have the Xkb extension. */ #undef HAVE_XKB /* Define to 1 if you have the Xpm library (-lXpm). */ #undef HAVE_XPM +/* Define to 1 if you have the XRandr extension. */ +#undef HAVE_XRANDR + /* Define to 1 if you have the `XrmSetDatabase' function. */ #undef HAVE_XRMSETDATABASE +/* Define to 1 if you have the `XRRGetOutputPrimary' function. */ +#undef HAVE_XRRGETOUTPUTPRIMARY + +/* Define to 1 if you have the `XRRGetScreenResourcesCurrent' function. */ +#undef HAVE_XRRGETSCREENRESOURCESCURRENT + /* Define to 1 if you have the `XScreenNumberOfScreen' function. */ #undef HAVE_XSCREENNUMBEROFSCREEN @@ -1404,6 +1494,9 @@ /* How to get a user's full name. */ #define USER_FULL_NAME pw->pw_gecos +/* Define to nonzero if you want access control list support. */ +#undef USE_ACL + /* Define to 1 if using GTK. */ #undef USE_GTK @@ -1585,13 +1678,21 @@ Suppress extern inline with HP-UX cc, as it appears to be broken; see . - Suppress the use of extern inline on Apple's platforms, - as Libc-825.25 (2012-09-19) is incompatible with it; see + Suppress extern inline with Sun C in standards-conformance mode, as it + mishandles inline functions that call each other. E.g., for 'inline void f + (void) { } inline void g (void) { f (); }', c99 incorrectly complains + 'reference to static identifier "f" in extern inline function'. + This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. + + Suppress the use of extern inline on Apple's platforms, as Libc at least + through Libc-825.26 (2013-04-09) is incompatible with it; see, e.g., . Perhaps Apple will fix this some day. */ #if ((__GNUC__ \ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ - : 199901L <= __STDC_VERSION__ && !defined __HP_cc) \ + : (199901L <= __STDC_VERSION__ \ + && !defined __HP_cc \ + && !(defined __SUNPRO_C && __STDC__))) \ && !defined __APPLE__) # define _GL_INLINE inline # define _GL_EXTERN_INLINE extern inline ------------------------------------------------------------ revno: 112512 fixes bug: http://debbugs.gnu.org/10994 author: Leo Liu , Le Wang committer: Leo Liu branch nick: trunk timestamp: Wed 2013-05-08 22:22:24 +0800 message: Re-work a fix for bug#10994 based on Le Wang's patch. * ido.el (ido-remove-consecutive-dups): New helper. (ido-completing-read): Use it. (ido-chop): Revert fix for bug#10994. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-08 06:59:41 +0000 +++ lisp/ChangeLog 2013-05-08 14:22:24 +0000 @@ -1,3 +1,10 @@ +2013-05-08 Leo Liu + + Re-work a fix for bug#10994 based on Le Wang's patch. + * ido.el (ido-remove-consecutive-dups): New helper. + (ido-completing-read): Use it. + (ido-chop): Revert fix for bug#10994. + 2013-05-08 Adam Spiers * cus-edit.el (custom-save-variables): === modified file 'lisp/ido.el' --- lisp/ido.el 2013-04-05 14:00:08 +0000 +++ lisp/ido.el 2013-05-08 14:22:24 +0000 @@ -3152,15 +3152,13 @@ (exit-minibuffer))) (defun ido-chop (items elem) - "Remove all elements before ELEM and put them at the end of ITEMS. -Use `eq' for comparison." + "Remove all elements before ELEM and put them at the end of ITEMS." (let ((ret nil) (next nil) (sofar nil)) (while (not ret) (setq next (car items)) - ;; Use `eq' to avoid bug http://debbugs.gnu.org/10994 - (if (eq next elem) + (if (equal next elem) (setq ret (append items (nreverse sofar))) ;; else (progn @@ -4678,6 +4676,21 @@ ido-temp-list)))) (ido-to-end summaries))) +(defun ido-remove-consecutive-dups (list) + "Remove consecutive duplicates in LIST. +Use `equal' for comparison. First and last elements are +considered consecutive." + (let ((tail list) + (last (make-symbol "")) + (result nil)) + (while (consp tail) + (unless (equal (car tail) last) + (push (setq last (car tail)) result)) + (setq tail (cdr tail))) + (nreverse (or (and (equal last (car list)) + (cdr result)) + result)))) + ;;; Helper functions for other programs (put 'dired-do-rename 'ido 'ignore) @@ -4795,7 +4808,7 @@ (ido-directory-nonreadable nil) (ido-directory-too-big nil) (ido-context-switch-command 'ignore) - (ido-choice-list choices)) + (ido-choice-list (ido-remove-consecutive-dups choices))) ;; Initialize ido before invoking ido-read-internal (ido-common-initialization) (ido-read-internal 'list prompt hist def require-match initial-input))) ------------------------------------------------------------ revno: 112511 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-05-08 06:17:38 -0400 message: Auto-commit of generated files. diff: === modified file 'autogen/Makefile.in' --- autogen/Makefile.in 2013-05-07 10:17:37 +0000 +++ autogen/Makefile.in 2013-05-08 10:17:38 +0000 @@ -36,7 +36,7 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=dup --avoid=errno --avoid=fchdir --avoid=fcntl --avoid=fstat --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow --avoid=open --avoid=openat-die --avoid=opendir --avoid=raise --avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-ctype c-strcase careadlinkat close-stream crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo faccessat fcntl-h fdatasync fdopendir filemode fstatat fsync getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings memrchr mktime pselect pthread_sigmask putenv readlink readlinkat sig2str socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub unsetenv utimens warnings +# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=dup --avoid=fchdir --avoid=fcntl --avoid=fstat --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow --avoid=open --avoid=openat-die --avoid=opendir --avoid=raise --avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-ctype c-strcase careadlinkat close-stream crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo faccessat fcntl-h fdatasync fdopendir filemode fstatat fsync getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings memrchr mktime pselect pthread_sigmask putenv qacl readlink readlinkat sig2str socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub unsetenv utimens warnings VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ @@ -63,12 +63,12 @@ subdir = lib ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ - $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/c-strtod.m4 \ - $(top_srcdir)/m4/clock_time.m4 \ + $(top_srcdir)/m4/acl.m4 $(top_srcdir)/m4/alloca.m4 \ + $(top_srcdir)/m4/c-strtod.m4 $(top_srcdir)/m4/clock_time.m4 \ $(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/dirent_h.m4 \ $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/environ.m4 \ - $(top_srcdir)/m4/euidaccess.m4 $(top_srcdir)/m4/execinfo.m4 \ - $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/euidaccess.m4 \ + $(top_srcdir)/m4/execinfo.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 \ $(top_srcdir)/m4/faccessat.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fdatasync.m4 $(top_srcdir)/m4/fdopendir.m4 \ @@ -122,19 +122,22 @@ am__libgnu_a_SOURCES_DIST = allocator.c c-ctype.h c-ctype.c \ c-strcase.h c-strcasecmp.c c-strncasecmp.c careadlinkat.c \ close-stream.c md5.c sha1.c sha256.c sha512.c dtoastr.c \ - dtotimespec.c filemode.c gettext.h gettime.c stat-time.c \ - strftime.c timespec.c timespec-add.c timespec-sub.c u64.c \ - unistd.c utimens.c openat-die.c save-cwd.c + dtotimespec.c filemode.c gettext.h gettime.c acl-errno-valid.c \ + file-has-acl.c qcopy-acl.c qset-acl.c stat-time.c strftime.c \ + timespec.c timespec-add.c timespec-sub.c u64.c unistd.c \ + utimens.c openat-die.c save-cwd.c am__objects_1 = am_libgnu_a_OBJECTS = allocator.$(OBJEXT) c-ctype.$(OBJEXT) \ c-strcasecmp.$(OBJEXT) c-strncasecmp.$(OBJEXT) \ careadlinkat.$(OBJEXT) close-stream.$(OBJEXT) md5.$(OBJEXT) \ sha1.$(OBJEXT) sha256.$(OBJEXT) sha512.$(OBJEXT) \ dtoastr.$(OBJEXT) dtotimespec.$(OBJEXT) filemode.$(OBJEXT) \ - $(am__objects_1) gettime.$(OBJEXT) stat-time.$(OBJEXT) \ - strftime.$(OBJEXT) timespec.$(OBJEXT) timespec-add.$(OBJEXT) \ - timespec-sub.$(OBJEXT) u64.$(OBJEXT) unistd.$(OBJEXT) \ - utimens.$(OBJEXT) openat-die.$(OBJEXT) save-cwd.$(OBJEXT) + $(am__objects_1) gettime.$(OBJEXT) acl-errno-valid.$(OBJEXT) \ + file-has-acl.$(OBJEXT) qcopy-acl.$(OBJEXT) qset-acl.$(OBJEXT) \ + stat-time.$(OBJEXT) strftime.$(OBJEXT) timespec.$(OBJEXT) \ + timespec-add.$(OBJEXT) timespec-sub.$(OBJEXT) u64.$(OBJEXT) \ + unistd.$(OBJEXT) utimens.$(OBJEXT) openat-die.$(OBJEXT) \ + save-cwd.$(OBJEXT) libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles @@ -192,6 +195,13 @@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ +EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ +EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ +ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ +ENOLINK_VALUE = @ENOLINK_VALUE@ +EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ +EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ +ERRNO_H = @ERRNO_H@ EXECINFO_H = @EXECINFO_H@ EXEEXT = @EXEEXT@ FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ @@ -623,7 +633,6 @@ LD_SWITCH_SYSTEM_TEMACS = @LD_SWITCH_SYSTEM_TEMACS@ LD_SWITCH_X_SITE = @LD_SWITCH_X_SITE@ LD_SWITCH_X_SITE_RPATH = @LD_SWITCH_X_SITE_RPATH@ -LIBACL_LIBS = @LIBACL_LIBS@ LIBGIF = @LIBGIF@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ @@ -655,6 +664,7 @@ LIBXTR6 = @LIBXTR6@ LIBXT_OTHER = @LIBXT_OTHER@ LIBX_OTHER = @LIBX_OTHER@ +LIB_ACL = @LIB_ACL@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ LIB_EACCESS = @LIB_EACCESS@ LIB_EXECINFO = @LIB_EXECINFO@ @@ -672,6 +682,7 @@ MKDEPDIR = @MKDEPDIR@ MKDIR_P = @MKDIR_P@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ +NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ @@ -688,6 +699,7 @@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ +NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ @@ -873,6 +885,7 @@ UNEXEC_OBJ = @UNEXEC_OBJ@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ +USE_ACL = @USE_ACL@ VERSION = @VERSION@ VMLIMIT_OBJ = @VMLIMIT_OBJ@ W32_LIBS = @W32_LIBS@ @@ -985,21 +998,23 @@ # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. -BUILT_SOURCES = $(ALLOCA_H) dirent.h $(EXECINFO_H) fcntl.h $(GETOPT_H) \ - inttypes.h signal.h arg-nonnull.h c++defs.h warn-on-use.h \ - $(STDALIGN_H) $(STDARG_H) $(STDBOOL_H) $(STDDEF_H) $(STDINT_H) \ - stdio.h stdlib.h string.h sys/select.h sys/stat.h sys/time.h \ - time.h unistd.h +BUILT_SOURCES = $(ALLOCA_H) dirent.h $(ERRNO_H) $(EXECINFO_H) fcntl.h \ + $(GETOPT_H) inttypes.h signal.h arg-nonnull.h c++defs.h \ + warn-on-use.h $(STDALIGN_H) $(STDARG_H) $(STDBOOL_H) \ + $(STDDEF_H) $(STDINT_H) stdio.h stdlib.h string.h sys/select.h \ + sys/stat.h sys/time.h time.h unistd.h +CLEANFILES = EXTRA_DIST = alloca.in.h allocator.h openat-priv.h openat-proc.c \ careadlinkat.h close-stream.h md5.h sha1.h sha256.h sha512.h \ - dirent.in.h dosname.h ftoastr.c ftoastr.h dup2.c euidaccess.c \ - execinfo.c execinfo.in.h at-func.c faccessat.c fcntl.in.h \ - fdatasync.c fdopendir.c filemode.h fpending.c fpending.h \ - at-func.c fstatat.c fsync.c getgroups.c getloadavg.c getopt.c \ - getopt.in.h getopt1.c getopt_int.h gettimeofday.c \ - group-member.c ignore-value.h intprops.h inttypes.in.h lstat.c \ - memrchr.c mktime-internal.h mktime.c openat.h pathmax.h \ - pselect.c pthread_sigmask.c putenv.c readlink.c at-func.c \ + dirent.in.h dosname.h ftoastr.c ftoastr.h dup2.c errno.in.h \ + euidaccess.c execinfo.c execinfo.in.h at-func.c faccessat.c \ + fcntl.in.h fdatasync.c fdopendir.c filemode.h fpending.c \ + fpending.h at-func.c fstatat.c fsync.c getgroups.c \ + getloadavg.c getopt.c getopt.in.h getopt1.c getopt_int.h \ + gettimeofday.c group-member.c ignore-value.h intprops.h \ + inttypes.in.h lstat.c memrchr.c mktime-internal.h mktime.c \ + openat.h pathmax.h pselect.c pthread_sigmask.c putenv.c \ + acl-internal.h acl.h acl_entries.c readlink.c at-func.c \ readlinkat.c root-uid.h sig2str.c sig2str.h signal.in.h \ $(top_srcdir)/build-aux/snippet/_Noreturn.h \ $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ @@ -1014,21 +1029,23 @@ xalloc-oversized.h MOSTLYCLEANDIRS = sys sys MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t dirent.h \ - dirent.h-t execinfo.h execinfo.h-t fcntl.h fcntl.h-t getopt.h \ - getopt.h-t inttypes.h inttypes.h-t signal.h signal.h-t \ - arg-nonnull.h arg-nonnull.h-t c++defs.h c++defs.h-t \ + dirent.h-t errno.h errno.h-t execinfo.h execinfo.h-t fcntl.h \ + fcntl.h-t getopt.h getopt.h-t inttypes.h inttypes.h-t signal.h \ + signal.h-t arg-nonnull.h arg-nonnull.h-t c++defs.h c++defs.h-t \ warn-on-use.h warn-on-use.h-t stdalign.h stdalign.h-t stdarg.h \ stdarg.h-t stdbool.h stdbool.h-t stddef.h stddef.h-t stdint.h \ stdint.h-t stdio.h stdio.h-t stdlib.h stdlib.h-t string.h \ string.h-t sys/select.h sys/select.h-t sys/stat.h sys/stat.h-t \ sys/time.h sys/time.h-t time.h time.h-t unistd.h unistd.h-t noinst_LIBRARIES = libgnu.a +SUFFIXES = AM_CFLAGS = $(PROFILING_CFLAGS) $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS) DEFAULT_INCLUDES = -I. -I$(top_srcdir)/lib -I../src -I$(top_srcdir)/src libgnu_a_SOURCES = allocator.c c-ctype.h c-ctype.c c-strcase.h \ c-strcasecmp.c c-strncasecmp.c careadlinkat.c close-stream.c \ md5.c sha1.c sha256.c sha512.c dtoastr.c dtotimespec.c \ - filemode.c $(am__append_1) gettime.c stat-time.c strftime.c \ + filemode.c $(am__append_1) gettime.c acl-errno-valid.c \ + file-has-acl.c qcopy-acl.c qset-acl.c stat-time.c strftime.c \ timespec.c timespec-add.c timespec-sub.c u64.c unistd.c \ utimens.c openat-die.c save-cwd.c libgnu_a_LIBADD = $(gl_LIBOBJS) @@ -1038,9 +1055,10 @@ fpending.c at-func.c fstatat.c fsync.c getgroups.c \ getloadavg.c getopt.c getopt1.c gettimeofday.c group-member.c \ lstat.c memrchr.c mktime.c pselect.c pthread_sigmask.c \ - putenv.c readlink.c at-func.c readlinkat.c sig2str.c stat.c \ - strtoimax.c strtol.c strtoll.c strtol.c strtoul.c strtoull.c \ - strtoimax.c strtoumax.c symlink.c time_r.c unsetenv.c + putenv.c acl_entries.c readlink.c at-func.c readlinkat.c \ + sig2str.c stat.c strtoimax.c strtol.c strtoll.c strtol.c \ + strtoul.c strtoull.c strtoimax.c strtoumax.c symlink.c \ + time_r.c unsetenv.c # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all Makefile.am that @@ -1098,6 +1116,8 @@ distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acl-errno-valid.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acl_entries.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/allocator.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/at-func.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-ctype.Po@am__quote@ @@ -1113,6 +1133,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdatasync.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdopendir.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file-has-acl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filemode.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fpending.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstatat.Po@am__quote@ @@ -1134,6 +1155,8 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pselect.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pthread_sigmask.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/putenv.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qcopy-acl.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qset-acl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readlink.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readlinkat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/save-cwd.Po@am__quote@ @@ -1280,6 +1303,7 @@ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -1425,6 +1449,28 @@ } > $@-t && \ mv $@-t $@ +# We need the following in order to create when the system +# doesn't have one that is POSIX compliant. +@GL_GENERATE_ERRNO_H_TRUE@errno.h: errno.in.h $(top_builddir)/config.status +@GL_GENERATE_ERRNO_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ +@GL_GENERATE_ERRNO_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ +@GL_GENERATE_ERRNO_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ < $(srcdir)/errno.in.h; \ +@GL_GENERATE_ERRNO_H_TRUE@ } > $@-t && \ +@GL_GENERATE_ERRNO_H_TRUE@ mv $@-t $@ +@GL_GENERATE_ERRNO_H_FALSE@errno.h: $(top_builddir)/config.status +@GL_GENERATE_ERRNO_H_FALSE@ rm -f $@ + # We need the following in order to create when the system # doesn't have one that works. @GL_GENERATE_EXECINFO_H_TRUE@execinfo.h: execinfo.in.h $(top_builddir)/config.status === modified file 'autogen/aclocal.m4' --- autogen/aclocal.m4 2013-03-14 10:17:38 +0000 +++ autogen/aclocal.m4 2013-05-08 10:17:38 +0000 @@ -985,6 +985,7 @@ ]) # _AM_PROG_TAR m4_include([m4/00gnulib.m4]) +m4_include([m4/acl.m4]) m4_include([m4/alloca.m4]) m4_include([m4/c-strtod.m4]) m4_include([m4/clock_time.m4]) @@ -992,6 +993,7 @@ m4_include([m4/dirent_h.m4]) m4_include([m4/dup2.m4]) m4_include([m4/environ.m4]) +m4_include([m4/errno_h.m4]) m4_include([m4/euidaccess.m4]) m4_include([m4/execinfo.m4]) m4_include([m4/extensions.m4]) === modified file 'autogen/config.in' --- autogen/config.in 2013-05-07 10:17:37 +0000 +++ autogen/config.in 2013-05-08 10:17:38 +0000 @@ -209,6 +209,75 @@ /* Define to 1 if you have the `access' function. */ #undef HAVE_ACCESS +/* Define to 1 if you have the `aclsort' function. */ +#undef HAVE_ACLSORT + +/* Define to 1 if you have the header file. */ +#undef HAVE_ACLV_H + +/* Define to 1 if you have the `aclx_get' function. */ +#undef HAVE_ACLX_GET + +/* Define to 1 if you have the `acl_copy_ext_native' function. */ +#undef HAVE_ACL_COPY_EXT_NATIVE + +/* Define to 1 if you have the `acl_create_entry_np' function. */ +#undef HAVE_ACL_CREATE_ENTRY_NP + +/* Define to 1 if you have the `acl_delete_def_file' function. */ +#undef HAVE_ACL_DELETE_DEF_FILE + +/* Define to 1 if you have the `acl_delete_fd_np' function. */ +#undef HAVE_ACL_DELETE_FD_NP + +/* Define to 1 if you have the `acl_delete_file_np' function. */ +#undef HAVE_ACL_DELETE_FILE_NP + +/* Define to 1 if you have the `acl_entries' function. */ +#undef HAVE_ACL_ENTRIES + +/* Define to 1 if you have the `acl_extended_file' function. */ +#undef HAVE_ACL_EXTENDED_FILE + +/* Define to 1 if the constant ACL_FIRST_ENTRY exists. */ +#undef HAVE_ACL_FIRST_ENTRY + +/* Define to 1 if you have the `acl_free' function. */ +#undef HAVE_ACL_FREE + +/* Define to 1 if you have the `acl_free_text' function. */ +#undef HAVE_ACL_FREE_TEXT + +/* Define to 1 if you have the `acl_from_mode' function. */ +#undef HAVE_ACL_FROM_MODE + +/* Define to 1 if you have the `acl_from_text' function. */ +#undef HAVE_ACL_FROM_TEXT + +/* Define to 1 if you have the `acl_get_fd' function. */ +#undef HAVE_ACL_GET_FD + +/* Define to 1 if you have the `acl_get_file' function. */ +#undef HAVE_ACL_GET_FILE + +/* Define to 1 if you have the header file. */ +#undef HAVE_ACL_LIBACL_H + +/* Define to 1 if you have the `acl_set_fd' function. */ +#undef HAVE_ACL_SET_FD + +/* Define to 1 if you have the `acl_set_file' function. */ +#undef HAVE_ACL_SET_FILE + +/* Define to 1 if you have the `acl_to_short_text' function. */ +#undef HAVE_ACL_TO_SHORT_TEXT + +/* Define to 1 if you have the `acl_trivial' function. */ +#undef HAVE_ACL_TRIVIAL + +/* Define to 1 if the ACL type ACL_TYPE_EXTENDED exists. */ +#undef HAVE_ACL_TYPE_EXTENDED + /* Define to 1 if the file /usr/lpp/X11/bin/smt.exp exists. */ #undef HAVE_AIX_SMT_EXP @@ -376,6 +445,9 @@ /* Define to 1 if you have the `faccessat' function. */ #undef HAVE_FACCESSAT +/* Define to 1 if you have the `facl' function. */ +#undef HAVE_FACL + /* Define to 1 if you have the `fdatasync' function. */ #undef HAVE_FDATASYNC @@ -415,6 +487,9 @@ /* Define to 1 if using GConf. */ #undef HAVE_GCONF +/* Define to 1 if you have the `getacl' function. */ +#undef HAVE_GETACL + /* Define to 1 if you have the `getaddrinfo' function. */ #undef HAVE_GETADDRINFO @@ -749,9 +824,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_PNG_H -/* Define to 1 if using POSIX ACL support. */ -#undef HAVE_POSIX_ACL - /* Define to 1 if you have the `posix_memalign' function. */ #undef HAVE_POSIX_MEMALIGN @@ -858,6 +930,9 @@ /* Define to 1 if `speed_t' is declared by . */ #undef HAVE_SPEED_T +/* Define to 1 if you have the `statacl' function. */ +#undef HAVE_STATACL + /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H @@ -946,6 +1021,9 @@ /* Define to 1 if you have the `sync' function. */ #undef HAVE_SYNC +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_ACL_H + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_BITYPES_H @@ -1409,6 +1487,9 @@ /* How to get a user's full name. */ #undef USER_FULL_NAME +/* Define to nonzero if you want access control list support. */ +#undef USE_ACL + /* Define to 1 if using GTK. */ #undef USE_GTK === modified file 'autogen/configure' --- autogen/configure 2013-05-07 10:17:37 +0000 +++ autogen/configure 2013-05-08 10:17:38 +0000 @@ -781,6 +781,8 @@ STDALIGN_H NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H NEXT_SIGNAL_H +USE_ACL +LIB_ACL LIB_PTHREAD_SIGMASK REPLACE_RAISE REPLACE_PTHREAD_SIGMASK @@ -1076,6 +1078,17 @@ GL_GENERATE_EXECINFO_H_TRUE LIB_EXECINFO EXECINFO_H +EOVERFLOW_VALUE +EOVERFLOW_HIDDEN +ENOLINK_VALUE +ENOLINK_HIDDEN +EMULTIHOP_VALUE +EMULTIHOP_HIDDEN +GL_GENERATE_ERRNO_H_FALSE +GL_GENERATE_ERRNO_H_TRUE +ERRNO_H +NEXT_AS_FIRST_DIRECTIVE_ERRNO_H +NEXT_ERRNO_H HAVE_DIRENT_H NEXT_AS_FIRST_DIRECTIVE_DIRENT_H NEXT_DIRENT_H @@ -1309,7 +1322,6 @@ FONTCONFIG_CFLAGS LIBXMU LIBXTR6 -LIBACL_LIBS LIBGNUTLS_LIBS LIBGNUTLS_CFLAGS LIBSELINUX_LIBS @@ -1501,7 +1513,6 @@ with_gconf with_gsettings with_selinux -with_acl with_gnutls with_inotify with_makeinfo @@ -1521,6 +1532,7 @@ enable_gcc_warnings enable_link_time_optimization with_x +enable_acl ' ac_precious_vars='build_alias host_alias @@ -2187,6 +2199,7 @@ --enable-link-time-optimization build emacs with link-time optimization. This is supported only for GCC since 4.5.0. + --disable-acl do not support ACLs Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -2228,7 +2241,6 @@ --without-gconf don't compile with GConf support --without-gsettings don't compile with GSettings support --without-selinux don't compile with SELinux support - --without-acl don't compile with ACL support --without-gnutls don't use -lgnutls for SSL/TLS support --without-inotify don't compile with inotify (file-watch) support --without-makeinfo don't require makeinfo for building manuals @@ -4297,14 +4309,6 @@ fi -# Check whether --with-acl was given. -if test "${with_acl+set}" = set; then : - withval=$with_acl; -else - with_acl=$with_features -fi - - # Check whether --with-gnutls was given. if test "${with_gnutls+set}" = set; then : withval=$with_gnutls; @@ -7189,6 +7193,7 @@ # Code from module dtotimespec: # Code from module dup2: # Code from module environ: + # Code from module errno: # Code from module euidaccess: # Code from module execinfo: # Code from module extensions: @@ -7227,6 +7232,7 @@ # Code from module pselect: # Code from module pthread_sigmask: # Code from module putenv: + # Code from module qacl: # Code from module readlink: # Code from module readlinkat: # Code from module root-uid: @@ -11673,73 +11679,6 @@ fi -HAVE_POSIX_ACL=no -LIBACL_LIBS= -if test "${with_acl}" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for acl_set_file in -lacl" >&5 -$as_echo_n "checking for acl_set_file in -lacl... " >&6; } -if test "${ac_cv_lib_acl_acl_set_file+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lacl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char acl_set_file (); -int -main () -{ -return acl_set_file (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_acl_acl_set_file=yes -else - ac_cv_lib_acl_acl_set_file=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_acl_acl_set_file" >&5 -$as_echo "$ac_cv_lib_acl_acl_set_file" >&6; } -if test "x$ac_cv_lib_acl_acl_set_file" = x""yes; then : - HAVE_POSIX_ACL=yes -else - HAVE_POSIX_ACL=no -fi - - if test "$HAVE_POSIX_ACL" = yes; then - -$as_echo "#define HAVE_POSIX_ACL 1" >>confdefs.h - - LIBACL_LIBS=-lacl - else - ac_fn_c_check_func "$LINENO" "acl_set_file" "ac_cv_func_acl_set_file" -if test "x$ac_cv_func_acl_set_file" = x""yes; then : - HAVE_POSIX_ACL=yes -else - HAVE_POSIX_ACL=no -fi - - if test "$HAVE_POSIX_ACL" = yes; then - -$as_echo "#define HAVE_POSIX_ACL 1" >>confdefs.h - - fi - fi -fi - - HAVE_XAW3D=no LUCID_LIBW= if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then @@ -17474,6 +17413,378 @@ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for complete errno.h" >&5 +$as_echo_n "checking for complete errno.h... " >&6; } +if test "${gl_cv_header_errno_h_complete+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#if !defined ETXTBSY +booboo +#endif +#if !defined ENOMSG +booboo +#endif +#if !defined EIDRM +booboo +#endif +#if !defined ENOLINK +booboo +#endif +#if !defined EPROTO +booboo +#endif +#if !defined EMULTIHOP +booboo +#endif +#if !defined EBADMSG +booboo +#endif +#if !defined EOVERFLOW +booboo +#endif +#if !defined ENOTSUP +booboo +#endif +#if !defined ENETRESET +booboo +#endif +#if !defined ECONNABORTED +booboo +#endif +#if !defined ESTALE +booboo +#endif +#if !defined EDQUOT +booboo +#endif +#if !defined ECANCELED +booboo +#endif +#if !defined EOWNERDEAD +booboo +#endif +#if !defined ENOTRECOVERABLE +booboo +#endif +#if !defined EILSEQ +booboo +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "booboo" >/dev/null 2>&1; then : + gl_cv_header_errno_h_complete=no +else + gl_cv_header_errno_h_complete=yes +fi +rm -f conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_complete" >&5 +$as_echo "$gl_cv_header_errno_h_complete" >&6; } + if test $gl_cv_header_errno_h_complete = yes; then + ERRNO_H='' + else + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_errno_h='<'errno.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if test "${gl_cv_next_errno_h+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + + gl_header_literal_regex=`echo 'errno.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_errno_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_errno_h" >&5 +$as_echo "$gl_cv_next_errno_h" >&6; } + fi + NEXT_ERRNO_H=$gl_cv_next_errno_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'errno.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_errno_h + fi + NEXT_AS_FIRST_DIRECTIVE_ERRNO_H=$gl_next_as_first_directive + + + + + ERRNO_H='errno.h' + fi + + if test -n "$ERRNO_H"; then + GL_GENERATE_ERRNO_H_TRUE= + GL_GENERATE_ERRNO_H_FALSE='#' +else + GL_GENERATE_ERRNO_H_TRUE='#' + GL_GENERATE_ERRNO_H_FALSE= +fi + + + if test -n "$ERRNO_H"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EMULTIHOP value" >&5 +$as_echo_n "checking for EMULTIHOP value... " >&6; } +if test "${gl_cv_header_errno_h_EMULTIHOP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef EMULTIHOP +yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + gl_cv_header_errno_h_EMULTIHOP=yes +else + gl_cv_header_errno_h_EMULTIHOP=no +fi +rm -f conftest* + + if test $gl_cv_header_errno_h_EMULTIHOP = no; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define _XOPEN_SOURCE_EXTENDED 1 +#include +#ifdef EMULTIHOP +yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + gl_cv_header_errno_h_EMULTIHOP=hidden +fi +rm -f conftest* + + if test $gl_cv_header_errno_h_EMULTIHOP = hidden; then + if ac_fn_c_compute_int "$LINENO" "EMULTIHOP" "gl_cv_header_errno_h_EMULTIHOP" " +#define _XOPEN_SOURCE_EXTENDED 1 +#include +/* The following two lines are a workaround against an autoconf-2.52 bug. */ +#include +#include +"; then : + +fi + + fi + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EMULTIHOP" >&5 +$as_echo "$gl_cv_header_errno_h_EMULTIHOP" >&6; } + case $gl_cv_header_errno_h_EMULTIHOP in + yes | no) + EMULTIHOP_HIDDEN=0; EMULTIHOP_VALUE= + ;; + *) + EMULTIHOP_HIDDEN=1; EMULTIHOP_VALUE="$gl_cv_header_errno_h_EMULTIHOP" + ;; + esac + + + fi + + + if test -n "$ERRNO_H"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOLINK value" >&5 +$as_echo_n "checking for ENOLINK value... " >&6; } +if test "${gl_cv_header_errno_h_ENOLINK+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef ENOLINK +yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + gl_cv_header_errno_h_ENOLINK=yes +else + gl_cv_header_errno_h_ENOLINK=no +fi +rm -f conftest* + + if test $gl_cv_header_errno_h_ENOLINK = no; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define _XOPEN_SOURCE_EXTENDED 1 +#include +#ifdef ENOLINK +yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + gl_cv_header_errno_h_ENOLINK=hidden +fi +rm -f conftest* + + if test $gl_cv_header_errno_h_ENOLINK = hidden; then + if ac_fn_c_compute_int "$LINENO" "ENOLINK" "gl_cv_header_errno_h_ENOLINK" " +#define _XOPEN_SOURCE_EXTENDED 1 +#include +/* The following two lines are a workaround against an autoconf-2.52 bug. */ +#include +#include +"; then : + +fi + + fi + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_ENOLINK" >&5 +$as_echo "$gl_cv_header_errno_h_ENOLINK" >&6; } + case $gl_cv_header_errno_h_ENOLINK in + yes | no) + ENOLINK_HIDDEN=0; ENOLINK_VALUE= + ;; + *) + ENOLINK_HIDDEN=1; ENOLINK_VALUE="$gl_cv_header_errno_h_ENOLINK" + ;; + esac + + + fi + + + if test -n "$ERRNO_H"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW value" >&5 +$as_echo_n "checking for EOVERFLOW value... " >&6; } +if test "${gl_cv_header_errno_h_EOVERFLOW+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef EOVERFLOW +yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + gl_cv_header_errno_h_EOVERFLOW=yes +else + gl_cv_header_errno_h_EOVERFLOW=no +fi +rm -f conftest* + + if test $gl_cv_header_errno_h_EOVERFLOW = no; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define _XOPEN_SOURCE_EXTENDED 1 +#include +#ifdef EOVERFLOW +yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + gl_cv_header_errno_h_EOVERFLOW=hidden +fi +rm -f conftest* + + if test $gl_cv_header_errno_h_EOVERFLOW = hidden; then + if ac_fn_c_compute_int "$LINENO" "EOVERFLOW" "gl_cv_header_errno_h_EOVERFLOW" " +#define _XOPEN_SOURCE_EXTENDED 1 +#include +/* The following two lines are a workaround against an autoconf-2.52 bug. */ +#include +#include +"; then : + +fi + + fi + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EOVERFLOW" >&5 +$as_echo "$gl_cv_header_errno_h_EOVERFLOW" >&6; } + case $gl_cv_header_errno_h_EOVERFLOW in + yes | no) + EOVERFLOW_HIDDEN=0; EOVERFLOW_VALUE= + ;; + *) + EOVERFLOW_HIDDEN=1; EOVERFLOW_VALUE="$gl_cv_header_errno_h_EOVERFLOW" + ;; + esac + + + fi + + + + @@ -21380,6 +21691,7 @@ + LIB_EXECINFO='' EXECINFO_H='execinfo.h' @@ -23745,6 +24057,449 @@ + # Check whether --enable-acl was given. +if test "${enable_acl+set}" = set; then : + enableval=$enable_acl; +else + enable_acl=auto +fi + + + LIB_ACL= + use_acl=0 + if test "x$enable_acl" != "xno"; then + for ac_header in sys/acl.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sys/acl.h" "ac_cv_header_sys_acl_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_acl_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_ACL_H 1 +_ACEOF + +fi + +done + + if test $ac_cv_header_sys_acl_h = yes; then + ac_save_LIBS=$LIBS + + if test $use_acl = 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing acl_get_file" >&5 +$as_echo_n "checking for library containing acl_get_file... " >&6; } +if test "${ac_cv_search_acl_get_file+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char acl_get_file (); +int +main () +{ +return acl_get_file (); + ; + return 0; +} +_ACEOF +for ac_lib in '' acl pacl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_acl_get_file=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if test "${ac_cv_search_acl_get_file+set}" = set; then : + break +fi +done +if test "${ac_cv_search_acl_get_file+set}" = set; then : + +else + ac_cv_search_acl_get_file=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_acl_get_file" >&5 +$as_echo "$ac_cv_search_acl_get_file" >&6; } +ac_res=$ac_cv_search_acl_get_file +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + if test "$ac_cv_search_acl_get_file" != "none required"; then + LIB_ACL=$ac_cv_search_acl_get_file + fi + for ac_func in acl_get_file acl_get_fd acl_set_file acl_set_fd \ + acl_free acl_from_mode acl_from_text \ + acl_delete_def_file acl_extended_file \ + acl_delete_fd_np acl_delete_file_np \ + acl_copy_ext_native acl_create_entry_np \ + acl_to_short_text acl_free_text +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +eval as_val=\$$as_ac_var + if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + # If the acl_get_file bug is detected, don't enable the ACL support. + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working acl_get_file" >&5 +$as_echo_n "checking for working acl_get_file... " >&6; } +if test "${gl_cv_func_working_acl_get_file+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + gl_cv_func_working_acl_get_file=cross-compiling +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + #include + +int +main () +{ +if (!acl_get_file (".", ACL_TYPE_ACCESS) && errno == ENOENT) + return 1; + return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_working_acl_get_file=yes +else + gl_cv_func_working_acl_get_file=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_acl_get_file" >&5 +$as_echo "$gl_cv_func_working_acl_get_file" >&6; } + + if test $gl_cv_func_working_acl_get_file = yes; then : + use_acl=1 +fi + + if test $use_acl = 1; then + for ac_header in acl/libacl.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "acl/libacl.h" "ac_cv_header_acl_libacl_h" "$ac_includes_default" +if test "x$ac_cv_header_acl_libacl_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ACL_LIBACL_H 1 +_ACEOF + +fi + +done + + + + + + + + + + for ac_func in acl_entries +do : + ac_fn_c_check_func "$LINENO" "acl_entries" "ac_cv_func_acl_entries" +if test "x$ac_cv_func_acl_entries" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ACL_ENTRIES 1 +_ACEOF + +else + + gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" + +fi +done + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ACL_FIRST_ENTRY" >&5 +$as_echo_n "checking for ACL_FIRST_ENTRY... " >&6; } +if test "${gl_cv_acl_ACL_FIRST_ENTRY+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +int type = ACL_FIRST_ENTRY; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_acl_ACL_FIRST_ENTRY=yes +else + gl_cv_acl_ACL_FIRST_ENTRY=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_acl_ACL_FIRST_ENTRY" >&5 +$as_echo "$gl_cv_acl_ACL_FIRST_ENTRY" >&6; } + if test $gl_cv_acl_ACL_FIRST_ENTRY = yes; then + +$as_echo "#define HAVE_ACL_FIRST_ENTRY 1" >>confdefs.h + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ACL_TYPE_EXTENDED" >&5 +$as_echo_n "checking for ACL_TYPE_EXTENDED... " >&6; } +if test "${gl_cv_acl_ACL_TYPE_EXTENDED+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +int type = ACL_TYPE_EXTENDED; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_acl_ACL_TYPE_EXTENDED=yes +else + gl_cv_acl_ACL_TYPE_EXTENDED=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_acl_ACL_TYPE_EXTENDED" >&5 +$as_echo "$gl_cv_acl_ACL_TYPE_EXTENDED" >&6; } + if test $gl_cv_acl_ACL_TYPE_EXTENDED = yes; then + +$as_echo "#define HAVE_ACL_TYPE_EXTENDED 1" >>confdefs.h + + fi + else + LIB_ACL= + fi + +fi + + fi + + if test $use_acl = 0; then + for ac_func in facl +do : + ac_fn_c_check_func "$LINENO" "facl" "ac_cv_func_facl" +if test "x$ac_cv_func_facl" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_FACL 1 +_ACEOF + +fi +done + + if test $ac_cv_func_facl = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing acl_trivial" >&5 +$as_echo_n "checking for library containing acl_trivial... " >&6; } +if test "${ac_cv_search_acl_trivial+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char acl_trivial (); +int +main () +{ +return acl_trivial (); + ; + return 0; +} +_ACEOF +for ac_lib in '' sec; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_acl_trivial=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if test "${ac_cv_search_acl_trivial+set}" = set; then : + break +fi +done +if test "${ac_cv_search_acl_trivial+set}" = set; then : + +else + ac_cv_search_acl_trivial=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_acl_trivial" >&5 +$as_echo "$ac_cv_search_acl_trivial" >&6; } +ac_res=$ac_cv_search_acl_trivial +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + if test "$ac_cv_search_acl_trivial" != "none required"; then + LIB_ACL=$ac_cv_search_acl_trivial + fi + +fi + + for ac_func in acl_trivial +do : + ac_fn_c_check_func "$LINENO" "acl_trivial" "ac_cv_func_acl_trivial" +if test "x$ac_cv_func_acl_trivial" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ACL_TRIVIAL 1 +_ACEOF + +fi +done + + use_acl=1 + fi + fi + + if test $use_acl = 0; then + for ac_func in getacl +do : + ac_fn_c_check_func "$LINENO" "getacl" "ac_cv_func_getacl" +if test "x$ac_cv_func_getacl" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETACL 1 +_ACEOF + +fi +done + + if test $ac_cv_func_getacl = yes; then + use_acl=1 + fi + for ac_header in aclv.h +do : + ac_fn_c_check_header_compile "$LINENO" "aclv.h" "ac_cv_header_aclv_h" "#include +" +if test "x$ac_cv_header_aclv_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ACLV_H 1 +_ACEOF + +fi + +done + + fi + + if test $use_acl = 0; then + for ac_func in aclx_get +do : + ac_fn_c_check_func "$LINENO" "aclx_get" "ac_cv_func_aclx_get" +if test "x$ac_cv_func_aclx_get" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ACLX_GET 1 +_ACEOF + +fi +done + + if test $ac_cv_func_aclx_get = yes; then + use_acl=1 + fi + fi + + if test $use_acl = 0 || test "$ac_cv_func_aclx_get" = yes; then + for ac_func in statacl +do : + ac_fn_c_check_func "$LINENO" "statacl" "ac_cv_func_statacl" +if test "x$ac_cv_func_statacl" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STATACL 1 +_ACEOF + +fi +done + + if test $ac_cv_func_statacl = yes; then + use_acl=1 + fi + fi + + if test $use_acl = 0; then + for ac_func in aclsort +do : + ac_fn_c_check_func "$LINENO" "aclsort" "ac_cv_func_aclsort" +if test "x$ac_cv_func_aclsort" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ACLSORT 1 +_ACEOF + +fi +done + + if test $ac_cv_func_aclsort = yes; then + use_acl=1 + fi + fi + + LIBS=$ac_save_LIBS + fi + if test "x$enable_acl$use_acl" = "xyes0"; then + as_fn_error "ACLs enabled but support not detected" "$LINENO" 5 + elif test "x$enable_acl$use_acl" = "xauto0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libacl development library was not found or not usable." >&5 +$as_echo "$as_me: WARNING: libacl development library was not found or not usable." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: emacs will be built without ACL support." >&5 +$as_echo "$as_me: WARNING: emacs will be built without ACL support." >&2;} + fi + fi + + +cat >>confdefs.h <<_ACEOF +#define USE_ACL $use_acl +_ACEOF + + USE_ACL=$use_acl + + + if test $ac_cv_func_readlink = no; then @@ -27269,6 +28024,10 @@ Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${GL_GENERATE_ERRNO_H_TRUE}" && test -z "${GL_GENERATE_ERRNO_H_FALSE}"; then + as_fn_error "conditional \"GL_GENERATE_ERRNO_H\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${GL_GENERATE_EXECINFO_H_TRUE}" && test -z "${GL_GENERATE_EXECINFO_H_FALSE}"; then as_fn_error "conditional \"GL_GENERATE_EXECINFO_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 ------------------------------------------------------------ revno: 112510 fixes bug: http://debbugs.gnu.org/14187 author: Adam Spiers committer: Glenn Morris branch nick: trunk timestamp: Tue 2013-05-07 23:59:41 -0700 message: * lisp/cus-edit.el (custom-save-variables): Pretty-print long values. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-08 06:56:37 +0000 +++ lisp/ChangeLog 2013-05-08 06:59:41 +0000 @@ -1,3 +1,8 @@ +2013-05-08 Adam Spiers + + * cus-edit.el (custom-save-variables): + Pretty-print long values. (Bug#14187) + 2013-05-08 Glenn Morris * progmodes/m4-mode.el (m4-program): Assume it is in PATH. === modified file 'lisp/cus-edit.el' --- lisp/cus-edit.el 2013-04-13 01:10:09 +0000 +++ lisp/cus-edit.el 2013-05-08 06:59:41 +0000 @@ -4531,7 +4531,15 @@ (princ " '(") (prin1 symbol) (princ " ") - (prin1 (car value)) + (let ((val (prin1-to-string (car value)))) + (if (< (length val) 60) + (insert val) + (newline-and-indent) + (let ((beginning-of-val (point))) + (insert val) + (save-excursion + (goto-char beginning-of-val) + (indent-pp-sexp 1))))) (when (or now requests comment) (princ " ") (prin1 now) ------------------------------------------------------------ Use --include-merged or -n0 to see merged revisions.