diff options
-rw-r--r-- | admin/ChangeLog | 8 | ||||
-rw-r--r-- | admin/admin.el | 16 | ||||
-rw-r--r-- | admin/bzrmerge.el | 8 | ||||
-rw-r--r-- | doc/emacs/ChangeLog | 8 | ||||
-rw-r--r-- | doc/emacs/emacs.texi | 13 | ||||
-rw-r--r-- | doc/lispintro/ChangeLog | 8 | ||||
-rw-r--r-- | doc/lispintro/emacs-lisp-intro.texi | 8 | ||||
-rw-r--r-- | doc/lispref/ChangeLog | 7 | ||||
-rw-r--r-- | doc/lispref/elisp.texi | 10 | ||||
-rw-r--r-- | leim/ChangeLog | 12 | ||||
-rw-r--r-- | leim/quail/latin-ltx.el | 205 | ||||
-rw-r--r-- | lib-src/ChangeLog | 16 | ||||
-rw-r--r-- | lib-src/pop.c | 2 | ||||
-rw-r--r-- | lisp/ChangeLog | 23 | ||||
-rw-r--r-- | lisp/emacs-lisp/smie.el | 53 | ||||
-rw-r--r-- | lisp/progmodes/scheme.el | 3 | ||||
-rw-r--r-- | lisp/thingatpt.el | 2 |
17 files changed, 234 insertions, 168 deletions
diff --git a/admin/ChangeLog b/admin/ChangeLog index fcc339c17cd..25ce7c0f9e4 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,3 +1,11 @@ +2013-03-16 Glenn Morris <rgm@gnu.org> + + * admin.el (manual-pdf, manual-dvi): Pass -I to texi2pdf, texi2dvi. + +2013-03-16 Glenn Morris <rgm@gnu.org> + + * admin.el (manual-html-mono, manual-html-node): Add -DWWW_GNU_ORG. + 2013-03-13 Paul Eggert <eggert@cs.ucla.edu> File synchronization fixes (Bug#13944). diff --git a/admin/admin.el b/admin/admin.el index 8b6bb472b7d..cb7eaead27f 100644 --- a/admin/admin.el +++ b/admin/admin.el @@ -285,6 +285,7 @@ This function also edits the HTML files so that they validate as HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using the @import directive." (call-process "makeinfo" nil nil nil + "-D" "WWW_GNU_ORG" "-I" (expand-file-name "../emacs" (file-name-directory texi-file)) "-I" (expand-file-name "../misc" @@ -310,6 +311,7 @@ the @import directive." (unless (file-exists-p texi-file) (error "Manual file %s not found" texi-file)) (call-process "makeinfo" nil nil nil + "-D" "WWW_GNU_ORG" "-I" (expand-file-name "../emacs" (file-name-directory texi-file)) "-I" (expand-file-name "../misc" @@ -354,12 +356,22 @@ the @import directive." (defun manual-pdf (texi-file dest) "Run texi2pdf on TEXI-FILE, emitting plaintext output to DEST." - (call-process "texi2pdf" nil nil nil texi-file "-o" dest)) + (call-process "texi2pdf" nil nil nil + "-I" (expand-file-name "../emacs" + (file-name-directory texi-file)) + "-I" (expand-file-name "../misc" + (file-name-directory texi-file)) + texi-file "-o" dest)) (defun manual-dvi (texi-file dest ps-dest) "Run texi2dvi on TEXI-FILE, emitting dvi output to DEST. Also generate PostScript output in PS-DEST." - (call-process "texi2dvi" nil nil nil texi-file "-o" dest) + (call-process "texi2dvi" nil nil nil + "-I" (expand-file-name "../emacs" + (file-name-directory texi-file)) + "-I" (expand-file-name "../misc" + (file-name-directory texi-file)) + texi-file "-o" dest) (call-process "dvips" nil nil nil dest "-o" ps-dest) (call-process "gzip" nil nil nil dest) (call-process "gzip" nil nil nil ps-dest)) diff --git a/admin/bzrmerge.el b/admin/bzrmerge.el index 4fa328b9d6d..42d39d3071a 100644 --- a/admin/bzrmerge.el +++ b/admin/bzrmerge.el @@ -50,7 +50,7 @@ The list returned is sorted by oldest-first." (call-process "bzr" nil t nil "status" "-v") (goto-char (point-min)) (when (re-search-forward "^conflicts:\n" nil t) - (error "You still have unresolved conflicts")) + (user-error "You still have unresolved conflicts")) (let ((merges ()) found) (if (not (re-search-forward "^pending merges:\n" nil t)) @@ -62,7 +62,7 @@ The list returned is sorted by oldest-first." (setq found (not (equal "unknown" (match-string 1))))))) found) - (error "You still have uncommitted changes")) + (user-error "You still have uncommitted changes")) ;; This is really stupid, but it seems there's no easy way to figure ;; out which revisions have been merged already. The only info I can ;; find is the "pending merges" from "bzr status -v", which is not @@ -171,7 +171,7 @@ Type `y' to skip this revision, (enable-local-eval nil)) (find-file-noselect file)) (if (buffer-modified-p) - (error "Unsaved changes in %s" (current-buffer))) + (user-error "Unsaved changes in %s" (current-buffer))) (save-excursion (cond ((derived-mode-p 'change-log-mode) @@ -323,7 +323,7 @@ Does not make other difference." BEWARE! Important metadata is kept in this Emacs session! Do not commit without re-running `M-x bzrmerge' first!" :warning bzrmerge-warning-buffer)) - (error "Resolve conflicts manually"))))) + (user-error "Resolve conflicts manually"))))) (cons merge skip))))) (defun bzrmerge (from) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 776e5c6191e..d2554349d01 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,11 @@ +2013-03-16 Glenn Morris <rgm@gnu.org> + + * emacs.texi (Top): Add some stuff specific to www.gnu.org. + +2013-03-16 Glenn Morris <rgm@gnu.org> + + * Version 24.3 released. + 2013-03-04 Paul Eggert <eggert@cs.ucla.edu> Prefer UTF-8 for documentation. diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index 2efa9b084df..e78eb7845f3 100644 --- a/doc/emacs/emacs.texi +++ b/doc/emacs/emacs.texi @@ -111,10 +111,21 @@ Cover art by Etienne Suvasa; cover design by Matt Lee. @top The Emacs Editor Emacs is the extensible, customizable, self-documenting real-time -display editor. This Info file describes how to edit with Emacs and +display editor. This manual describes how to edit with Emacs and some of the ways to customize it; it corresponds to GNU Emacs version @value{EMACSVER}. +@ifset WWW_GNU_ORG +@html +The homepage for GNU Emacs is at +<a href="/software/emacs/">http://www.gnu.org/software/emacs/</a>.<br> +To view this manual in other formats, click +<a href="/software/emacs/manual/emacs.html">here</a>.<br> +You can also purchase a printed copy from the +<a href="http://shop.fsf.org/product/emacs-manual/">FSF store</a>. +@end html +@end ifset + @ifinfo If you are reading this in Emacs, type @kbd{h} to read a basic introduction to the Info documentation system. diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog index e31c63fd8f6..e12c57d4b76 100644 --- a/doc/lispintro/ChangeLog +++ b/doc/lispintro/ChangeLog @@ -1,3 +1,11 @@ +2013-03-16 Glenn Morris <rgm@gnu.org> + + * emacs-lisp-intro.texi: Add some stuff specific to www.gnu.org. + +2013-03-16 Glenn Morris <rgm@gnu.org> + + * Version 24.3 released. + 2013-03-03 Glenn Morris <rgm@gnu.org> * emacs-lisp-intro.texi (Digression into C): Update example. diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi index 43e2539d2f2..c42ed210cbc 100644 --- a/doc/lispintro/emacs-lisp-intro.texi +++ b/doc/lispintro/emacs-lisp-intro.texi @@ -227,6 +227,14 @@ This is an @cite{Introduction to Programming in Emacs Lisp}, for people who are not programmers. @sp 1 Edition @value{edition-number}, @value{update-date} +@ifset WWW_GNU_ORG +@html +<p>The homepage for GNU Emacs is at +<a href="http://www.gnu.org/software/emacs/">http://www.gnu.org/software/emacs/</a>. +<br>To view this manual in other formats, click +<a href="/software/emacs/emacs-lisp-intro/emacs-lisp-intro.html">here</a>. +@end html +@end ifset @sp 1 Copyright @copyright{} 1990--1995, 1997, 2001--2013 Free Software Foundation, Inc. diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 6510b56ba3b..7455881518a 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,10 @@ +2013-03-16 Glenn Morris <rgm@gnu.org> + + * elisp.texi: Add some stuff specific to www.gnu.org. + +2013-03-16 Glenn Morris <rgm@gnu.org> + + * Version 24.3 released. 2013-03-11 Teodor Zlatanov <tzz@lifelogs.com> * control.texi (Pattern matching case statement): Fix typo. diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index b53c22030bc..9e9617c10f8 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi @@ -97,6 +97,16 @@ This is edition @value{VERSION} of the @cite{GNU Emacs Lisp Reference Manual},@* This is the @cite{GNU Emacs Lisp Reference Manual} @end ifnottex corresponding to Emacs version @value{EMACSVER}. +@ifset WWW_GNU_ORG +@html +<p>The homepage for GNU Emacs is at +<a href="/software/emacs/">http://www.gnu.org/software/emacs/</a>.<br> +For information on using Emacs, refer to +the <a href="/software/emacs/manual/html_node/emacs/index.html">Emacs +Manual</a>.<br> To view this manual in other formats, +click <a href="/software/emacs/manual/elisp.html">here</a>. +@end html +@end ifset Copyright @copyright{} 1990--1996, 1998--2013 Free Software Foundation, Inc. diff --git a/leim/ChangeLog b/leim/ChangeLog index b6591afb75f..47f22ecfb53 100644 --- a/leim/ChangeLog +++ b/leim/ChangeLog @@ -1,3 +1,15 @@ +2013-03-16 Stefan Monnier <monnier@iro.umontreal.ca> + + * quail/latin-ltx.el: Resolve conflicts (bug#13950). + (latin-ltx--mark-map, latin-ltx--mark-re): New constants. + (latin-ltx--define-rules): Check for conflicts. Eval `re's. + (rules): Use tighter regexps to avoid conflicts. + Consolidate the various rules for combining marks. + +2013-03-16 Glenn Morris <rgm@gnu.org> + + * Version 24.3 released. + 2013-02-08 Stefan Monnier <monnier@iro.umontreal.ca> * quail/latin-ltx.el: Add greek superscripts. diff --git a/leim/quail/latin-ltx.el b/leim/quail/latin-ltx.el index 2179e6264a2..d76f59ebbce 100644 --- a/leim/quail/latin-ltx.el +++ b/leim/quail/latin-ltx.el @@ -43,6 +43,26 @@ system, including many technical ones. Examples: t t nil nil nil nil nil nil nil t) (eval-when-compile + (require 'cl-lib) + + (defconst latin-ltx--mark-map + '(("DOT BELOW" . "d") + ("DOT ABOVE" . ".") + ("OGONEK" . "k") + ("CEDILLA" . "c") + ("CARON" . "v") + ;; ("HOOK ABOVE" . ??) + ("MACRON" . "=") + ("BREVE" . "u") + ("TILDE" . "~") + ("GRAVE" . "`") + ("CIRCUMFLEX" . "^") + ("DIAERESIS" . "\"") + ("DOUBLE ACUTE" . "H") + ("ACUTE" . "'"))) + + (defconst latin-ltx--mark-re (regexp-opt (mapcar #'car latin-ltx--mark-map))) + (defun latin-ltx--ascii-p (char) (and (characterp char) (< char 128))) @@ -53,7 +73,8 @@ system, including many technical ones. Examples: (pcase rule (`(,_ ,(pred characterp)) (push rule newrules)) ;; Normal quail rule. (`(,seq ,re) - (let ((count 0)) + (let ((count 0) + (re (eval re t))) (dolist (pair (ucs-names)) (let ((name (car pair)) (char (cdr pair))) @@ -68,9 +89,27 @@ system, including many technical ones. Examples: (push (list x char) newrules)) (setq count (1+ count)) (push (list keys char) newrules)))))) - ;(message "latin-ltx: %d mapping for %S" count re) + ;; (message "latin-ltx: %d mappings for %S" count re) )))) - `(quail-define-rules ,@(nreverse (delete-dups newrules)))))) + (setq newrules (delete-dups newrules)) + (let ((rules (copy-sequence newrules))) + (while rules + (let ((rule (pop rules))) + (when (assoc (car rule) rules) + (let ((conflicts (list (cadr rule))) + (tail rules) + c) + (while (setq c (assoc (car rule) tail)) + (push (cadr c) conflicts) + (setq tail (cdr (memq c tail))) + (setq rules (delq c rules))) + (message "Conflict for %S: %S" + (car rule) (apply #'string conflicts))))))) + (let ((inputs (mapcar #'car newrules))) + (setq inputs (delete-dups inputs)) + (message "latin-ltx: %d rules (+ %d conflicts)!" + (length inputs) (- (length newrules) (length inputs)))) + `(quail-define-rules ,@(nreverse newrules))))) (latin-ltx--define-rules ("!`" ?¡) @@ -89,69 +128,35 @@ system, including many technical ones. Examples: ("$^o$" ?º) ("?`" ?¿) - ("\\`" ?̀) - ("\\`{}" ?`) - ((lambda (name char) - (let ((c (if (match-end 1) - (downcase (match-string 2 name)) - (match-string 2 name)))) - (list (format "\\`{%s}" c) (format "\\`%s" c)))) - "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH GRAVE") - - ("\\'" ?́) - ("\\'{}" ?´) - ((lambda (name char) - (let ((c (if (match-end 1) - (downcase (match-string 2 name)) - (match-string 2 name)))) - (list (format "\\'{%s}" c) (format "\\'%s" c)))) - "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH ACUTE") - - ("\\^" ?̂) - ("\\^{}" ?^) - ((lambda (name char) - (let ((c (if (match-end 1) - (downcase (match-string 2 name)) - (match-string 2 name)))) - (list (format "\\^{%s}" c) (format "\\^%s" c)))) - "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH CIRCUMFLEX") - - ("\\~" ?̃) - ("\\~{}" ?˜) - ((lambda (name char) - (let ((c (if (match-end 1) - (downcase (match-string 2 name)) - (match-string 2 name)))) - (list (format "\\~{%s}" c) (format "\\~%s" c)))) - "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH TILDE") - - ("\\\"" ?̈) - ("\\\"{}" ?¨) ((lambda (name char) - (let ((c (if (match-end 1) - (downcase (match-string 2 name)) - (match-string 2 name)))) - (list (format "\\\"{%s}" c) (format "\\\"%s" c)))) - "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH DIAERESIS") - - ("\\k" ?̨) - ("\\k{}" ?˛) + (let* ((c (if (match-end 1) + (downcase (match-string 2 name)) + (match-string 2 name))) + (mark1 (cdr (assoc (match-string 3 name) latin-ltx--mark-map))) + (mark2 (if (match-end 4) + (cdr (assoc (match-string 4 name) latin-ltx--mark-map)))) + (marks (if mark2 (concat mark1 "\\" mark2) mark1))) + (cl-assert mark1) + (cons (format "\\%s{%s}" marks c) + ;; Exclude "d" because we use "\\dh" for something else. + (unless (member (or mark2 mark1) '("d"));; "k" + (list (format "\\%s%s" marks c)))))) + (concat "\\`LATIN \\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH \\(" + latin-ltx--mark-re "\\)\\(?: AND \\(" + latin-ltx--mark-re "\\)\\)?\\'")) + ((lambda (name char) - (let ((c (if (match-end 1) - (downcase (match-string 2 name)) - (match-string 2 name)))) - (list (format "\\k{%s}" c) ;; (format "\\k%s" c) - ))) - "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH OGONEK") - - ("\\c" ?̧) - ("\\c{}" ?¸) + (let* ((mark (cdr (assoc (match-string 1 name) latin-ltx--mark-map)))) + (cl-assert mark) + (list (format "\\%s" mark)))) + (concat "\\`COMBINING \\(" latin-ltx--mark-re "\\)\\(?: ACCENT\\)?\\'")) + ((lambda (name char) - (let ((c (if (match-end 1) - (downcase (match-string 2 name)) - (match-string 2 name)))) - (list (format "\\c{%s}" c) (format "\\c%s" c)))) - "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH CEDILLA") + (unless (latin-ltx--ascii-p char) + (let* ((mark (cdr (assoc (match-string 1 name) latin-ltx--mark-map)))) + (cl-assert mark) + (list (format "\\%s{}" mark))))) + (concat "\\`\\(?:SPACING \\)?\\(" latin-ltx--mark-re "\\)\\(?: ACCENT\\)?\\'")) ("\\AA" ?Å) ;; ("{\\AA}" ?Å) ("\\AE" ?Æ) ;; ("{\\AE}" ?Æ) @@ -166,42 +171,6 @@ system, including many technical ones. Examples: ("$\\div$" ?÷) ("\\div" ?÷) ("\\o" ?ø) ;; ("{\\o}" ?ø) - ("\\=" ?̄) - ("\\={}" ?¯) - ((lambda (name char) - (let ((c (if (match-end 1) - (downcase (match-string 2 name)) - (match-string 2 name)))) - (list (format "\\={%s}" c) (format "\\=%s" c)))) - "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH MACRON") - - ("\\u" ?̆) - ("\\u{}" ?˘) - ((lambda (name char) - (let ((c (if (match-end 1) - (downcase (match-string 2 name)) - (match-string 2 name)))) - (list (format "\\u{%s}" c) (format "\\u%s" c)))) - "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH BREVE") - - ("\\." ?̇) - ("\\.{}" ?˙) - ((lambda (name char) - (let ((c (if (match-end 1) - (downcase (match-string 2 name)) - (match-string 2 name)))) - (list (format "\\.{%s}" c) (format "\\.%s" c)))) - "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH DOT ABOVE") - - ("\\v" ?̌) - ("\\v{}" ?ˇ) - ((lambda (name char) - (let ((c (if (match-end 1) - (downcase (match-string 2 name)) - (match-string 2 name)))) - (list (format "\\v{%s}" c) (format "\\v%s" c)))) - "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH CARON") - ("\\~{\\i}" ?ĩ) ("\\={\\i}" ?ī) ("\\u{\\i}" ?ĭ) @@ -214,12 +183,6 @@ system, including many technical ones. Examples: ("\\H" ?̋) ("\\H{}" ?˝) - ((lambda (name char) - (let ((c (if (match-end 1) - (downcase (match-string 2 name)) - (match-string 2 name)))) - (list (format "\\H{%s}" c) (format "\\H%s" c)))) - "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH DOUBLE ACUTE") ("\\U{o}" ?ő) ("\\Uo" ?ő) ;; FIXME: Was it just a typo? ("\\OE" ?Œ) ;; ("{\\OE}" ?Œ) @@ -248,19 +211,11 @@ system, including many technical ones. Examples: (string (if (match-end 2) ?^ ?_) basechar)))) "\\(.*\\)SU\\(?:B\\|\\(PER\\)\\)SCRIPT \\(.*\\)") - ((lambda (name char) + ((lambda (name _char) (let* ((basename (match-string 2 name)) - (lbase (format "LATIN %s LETTER %s" - (match-string 1 name) basename)) - (gbase (format "GREEK %s LETTER %s" - (match-string 1 name) basename)) - tmp) - (cond - ((assoc gbase (ucs-names)) (concat "^\\" (downcase basename))) - ((latin-ltx--ascii-p (setq tmp (cdr (assoc lbase (ucs-names))))) - (string ?^ tmp)) - (t (message "Unknown modifier letter %s" basename))))) - "MODIFIER LETTER \\(SMALL\\|CAPITAL\\) \\(.*\\)") + (name (if (match-end 1) (capitalize basename) (downcase basename)))) + (concat "^" (if (> (length name) 1) "\\") name))) + "\\`MODIFIER LETTER \\(?:SMALL\\|CAPITA\\(L\\)\\) \\([[:ascii:]]+\\)\\'") ;; ((lambda (name char) (format "^%s" (downcase (match-string 1 name)))) ;; "\\`MODIFIER LETTER SMALL \\(.\\)\\'") @@ -272,22 +227,14 @@ system, including many technical ones. Examples: ("\\b" ?̱) - ("\\d" ?̣) - ;; ("\\d{}" ?) ;; FIXME: can't find the DOT BELOW character. - ((lambda (name char) - (let ((c (if (match-end 1) - (downcase (match-string 2 name)) - (match-string 2 name)))) - (list (format "\\d{%s}" c) ;; (format "\\d%s" c) - ))) - "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH DOT BELOW") - ("\\rq" ?’) ;; FIXME: Provides some useful entries (yen, euro, copyright, registered, ;; currency, minus, micro), but also a lot of dubious ones. ((lambda (name char) - (unless (latin-ltx--ascii-p char) + (unless (or (latin-ltx--ascii-p char) + ;; We prefer COMBINING LONG SOLIDUS OVERLAY for \not. + (member name '("NOT SIGN"))) (concat "\\" (downcase (match-string 1 name))))) "\\`\\([^- ]+\\) SIGN\\'") @@ -377,7 +324,6 @@ system, including many technical ones. Examples: ("\\circledcirc" ?⊚) ("\\circleddash" ?⊝) ("\\clubsuit" ?♣) - ("\\colon" ?:) ;FIXME: Conflict with "COLON SIGN" ₡. ("\\coloneq" ?≔) ("\\complement" ?∁) ("\\cong" ?≅) @@ -400,7 +346,6 @@ system, including many technical ones. Examples: ("\\ddots" ?⋱) ("\\diamond" ?⋄) ("\\diamondsuit" ?♢) - ("\\digamma" ?Ϝ) ("\\divideontimes" ?⋇) ("\\doteq" ?≐) ("\\doteqdot" ?≑) diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index d8ec0579422..0d7a0a4591e 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,13 @@ +2013-03-16 Paul Eggert <eggert@cs.ucla.edu> + + * pop.c: Fix ERRMAX typo (Bug#13925). + (socket_connection) [!HAVE_KRB5_ERROR_TEXT && HAVE_KRB5_ERROR_E_TEXT]: + Use ERROR_MAX, not ERRMAX. + +2013-03-16 Glenn Morris <rgm@gnu.org> + + * Version 24.3 released. + 2013-03-13 Paul Eggert <eggert@cs.ucla.edu> File synchronization fixes (Bug#13944). @@ -6,8 +16,8 @@ * emacsclient.c (main): Use fdatasync, not fsync, since we don't care about metadata. Keep trying if interrupted. * movemail.c (main, popmail): Don't worry about BSD_SYSTEM, since - fsync is available everywhere (or there is a substitute). Don't - report an error if fsync returns EINVAL. + fsync is available everywhere (or there is a substitute). + Don't report an error if fsync returns EINVAL. Static checking by Sun C 5.12. * etags.c (analyse_regex): Omit unreachable code. @@ -5182,7 +5192,7 @@ (longopts): New long options without short counterpart are globals, members, no-globals, no-members. Regexp options are now defined conditionally to ETAGS_REGEXPS. - (print_help): Updated. + (print_help): Update. 1997-05-22 Francesco Potortì <F.Potorti@cnuce.cnr.it> diff --git a/lib-src/pop.c b/lib-src/pop.c index ba384db3d19..1f3f82baa68 100644 --- a/lib-src/pop.c +++ b/lib-src/pop.c @@ -1198,7 +1198,7 @@ socket_connection (char *host, int flags) } #elif defined HAVE_KRB5_ERROR_E_TEXT if (err_ret && err_ret->e_text && **err_ret->e_text) - snprintf (pop_error + pop_error_len, ERRMAX - pop_error_len, + snprintf (pop_error + pop_error_len, ERROR_MAX - pop_error_len, " [server says '%s']", *err_ret->e_text); #endif if (err_ret) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2c729e3d5b7..6ac3515c480 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,21 @@ +2013-03-16 Leo Liu <sdl.web@gmail.com> + + * progmodes/scheme.el: Add indentation and font-locking for λ. + (Bug#13975) + +2013-03-16 Stefan Monnier <monnier@iro.umontreal.ca> + + * emacs-lisp/smie.el (smie-auto-fill): Don't inf-loop if there's no + token before point (bug#13942). + +2013-03-16 Leo Liu <sdl.web@gmail.com> + + * thingatpt.el (end-of-sexp): Fix bug#13952. Use syntax-after. + +2013-03-16 Glenn Morris <rgm@gnu.org> + + * Version 24.3 released. + 2013-03-16 Eli Zaretskii <eliz@gnu.org> * startup.el (command-line-normalize-file-name): Fix handling of @@ -571,6 +589,11 @@ Let-bind `isearch-other-end' to `start', `isearch-forward' to t and `isearch-error' to nil. +2013-03-16 Fabián Ezequiel Gallina <fgallina@cuca> + + * progmodes/python.el (python-info-current-defun): + Enhance match-data cluttering prevention. + 2013-02-22 Michael Albinus <michael.albinus@gmx.de> * net/tramp.el (tramp-tramp-file-p): Fix docstring. diff --git a/lisp/emacs-lisp/smie.el b/lisp/emacs-lisp/smie.el index eb3fa8f3b09..18cc0e811ce 100644 --- a/lisp/emacs-lisp/smie.el +++ b/lisp/emacs-lisp/smie.el @@ -1631,31 +1631,34 @@ to which that point should be aligned, if we were to reindent it.") (defun smie-auto-fill () (let ((fc (current-fill-column))) (while (and fc (> (current-column) fc)) - (cond - ((not (or (nth 8 (save-excursion - (syntax-ppss (line-beginning-position)))) - (nth 8 (syntax-ppss)))) - (save-excursion - (beginning-of-line) - (smie-indent-forward-token) - (let ((bsf (point)) - (gain 0) - curcol) - (while (<= (setq curcol (current-column)) fc) - ;; FIXME? `smie-indent-calculate' can (and often will) - ;; return a result that actually depends on the presence/absence - ;; of a newline, so the gain computed here may not be accurate, - ;; but in practice it seems to works well enough. - (let* ((newcol (smie-indent-calculate)) - (newgain (- curcol newcol))) - (when (> newgain gain) - (setq gain newgain) - (setq bsf (point)))) - (smie-indent-forward-token)) - (when (> gain 0) - (goto-char bsf) - (newline-and-indent))))) - (t (do-auto-fill)))))) + (or (unless (or (nth 8 (save-excursion + (syntax-ppss (line-beginning-position)))) + (nth 8 (syntax-ppss))) + (save-excursion + (let ((end (point)) + (bsf (progn (beginning-of-line) + (smie-indent-forward-token) + (point))) + (gain 0) + curcol) + (while (and (<= (point) end) + (<= (setq curcol (current-column)) fc)) + ;; FIXME? `smie-indent-calculate' can (and often will) + ;; return a result that actually depends on the + ;; presence/absence of a newline, so the gain computed here + ;; may not be accurate, but in practice it seems to works + ;; well enough. + (let* ((newcol (smie-indent-calculate)) + (newgain (- curcol newcol))) + (when (> newgain gain) + (setq gain newgain) + (setq bsf (point)))) + (smie-indent-forward-token)) + (when (> gain 0) + (goto-char bsf) + (newline-and-indent) + 'done)))) + (do-auto-fill))))) (defun smie-setup (grammar rules-function &rest keywords) diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el index aae5526ea82..fab20102097 100644 --- a/lisp/progmodes/scheme.el +++ b/lisp/progmodes/scheme.el @@ -310,7 +310,7 @@ See `run-hooks'." "(" (regexp-opt '("begin" "call-with-current-continuation" "call/cc" "call-with-input-file" "call-with-output-file" "case" "cond" - "do" "else" "for-each" "if" "lambda" + "do" "else" "for-each" "if" "lambda" "λ" "let" "let*" "let-syntax" "letrec" "letrec-syntax" ;; SRFI 11 usage comes up often enough. "let-values" "let*-values" @@ -410,6 +410,7 @@ that variable's value is a string." (put 'make 'scheme-indent-function 1) (put 'style 'scheme-indent-function 1) (put 'root 'scheme-indent-function 1) +(put 'λ 'scheme-indent-function 1) (defvar dsssl-font-lock-keywords (eval-when-compile diff --git a/lisp/thingatpt.el b/lisp/thingatpt.el index 9526cb76e74..259cd772b12 100644 --- a/lisp/thingatpt.el +++ b/lisp/thingatpt.el @@ -182,7 +182,7 @@ The bounds of THING are determined by `bounds-of-thing-at-point'." (defun end-of-sexp () "Move point to the end of the current sexp. \[This is an internal function.]" - (let ((char-syntax (char-syntax (char-after)))) + (let ((char-syntax (syntax-after (point)))) (if (or (eq char-syntax ?\)) (and (eq char-syntax ?\") (in-string-p))) (forward-char 1) |