summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--admin/ChangeLog8
-rw-r--r--admin/admin.el16
-rw-r--r--admin/bzrmerge.el8
-rw-r--r--doc/emacs/ChangeLog8
-rw-r--r--doc/emacs/emacs.texi13
-rw-r--r--doc/lispintro/ChangeLog8
-rw-r--r--doc/lispintro/emacs-lisp-intro.texi8
-rw-r--r--doc/lispref/ChangeLog7
-rw-r--r--doc/lispref/elisp.texi10
-rw-r--r--leim/ChangeLog12
-rw-r--r--leim/quail/latin-ltx.el205
-rw-r--r--lib-src/ChangeLog16
-rw-r--r--lib-src/pop.c2
-rw-r--r--lisp/ChangeLog23
-rw-r--r--lisp/emacs-lisp/smie.el53
-rw-r--r--lisp/progmodes/scheme.el3
-rw-r--r--lisp/thingatpt.el2
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)