aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2013-03-16 18:08:22 -0400
committerStefan Monnier2013-03-16 18:08:22 -0400
commit78be8b64657aeca0472d708450ea1ce2bc142606 (patch)
treedccbdc45e747a47b44be92abab79cca15a30111f
parent6615748ac6bcff258ef548f70bdcc1ab9f740472 (diff)
parent67ed8fcd04edeff2d4931acf476e7067c5ceeef2 (diff)
downloademacs-78be8b64657aeca0472d708450ea1ce2bc142606.tar.gz
emacs-78be8b64657aeca0472d708450ea1ce2bc142606.zip
Merge from emacs-24
-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 @@
12013-03-16 Glenn Morris <rgm@gnu.org>
2
3 * admin.el (manual-pdf, manual-dvi): Pass -I to texi2pdf, texi2dvi.
4
52013-03-16 Glenn Morris <rgm@gnu.org>
6
7 * admin.el (manual-html-mono, manual-html-node): Add -DWWW_GNU_ORG.
8
12013-03-13 Paul Eggert <eggert@cs.ucla.edu> 92013-03-13 Paul Eggert <eggert@cs.ucla.edu>
2 10
3 File synchronization fixes (Bug#13944). 11 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
285HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using 285HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using
286the @import directive." 286the @import directive."
287 (call-process "makeinfo" nil nil nil 287 (call-process "makeinfo" nil nil nil
288 "-D" "WWW_GNU_ORG"
288 "-I" (expand-file-name "../emacs" 289 "-I" (expand-file-name "../emacs"
289 (file-name-directory texi-file)) 290 (file-name-directory texi-file))
290 "-I" (expand-file-name "../misc" 291 "-I" (expand-file-name "../misc"
@@ -310,6 +311,7 @@ the @import directive."
310 (unless (file-exists-p texi-file) 311 (unless (file-exists-p texi-file)
311 (error "Manual file %s not found" texi-file)) 312 (error "Manual file %s not found" texi-file))
312 (call-process "makeinfo" nil nil nil 313 (call-process "makeinfo" nil nil nil
314 "-D" "WWW_GNU_ORG"
313 "-I" (expand-file-name "../emacs" 315 "-I" (expand-file-name "../emacs"
314 (file-name-directory texi-file)) 316 (file-name-directory texi-file))
315 "-I" (expand-file-name "../misc" 317 "-I" (expand-file-name "../misc"
@@ -354,12 +356,22 @@ the @import directive."
354 356
355(defun manual-pdf (texi-file dest) 357(defun manual-pdf (texi-file dest)
356 "Run texi2pdf on TEXI-FILE, emitting plaintext output to DEST." 358 "Run texi2pdf on TEXI-FILE, emitting plaintext output to DEST."
357 (call-process "texi2pdf" nil nil nil texi-file "-o" dest)) 359 (call-process "texi2pdf" nil nil nil
360 "-I" (expand-file-name "../emacs"
361 (file-name-directory texi-file))
362 "-I" (expand-file-name "../misc"
363 (file-name-directory texi-file))
364 texi-file "-o" dest))
358 365
359(defun manual-dvi (texi-file dest ps-dest) 366(defun manual-dvi (texi-file dest ps-dest)
360 "Run texi2dvi on TEXI-FILE, emitting dvi output to DEST. 367 "Run texi2dvi on TEXI-FILE, emitting dvi output to DEST.
361Also generate PostScript output in PS-DEST." 368Also generate PostScript output in PS-DEST."
362 (call-process "texi2dvi" nil nil nil texi-file "-o" dest) 369 (call-process "texi2dvi" nil nil nil
370 "-I" (expand-file-name "../emacs"
371 (file-name-directory texi-file))
372 "-I" (expand-file-name "../misc"
373 (file-name-directory texi-file))
374 texi-file "-o" dest)
363 (call-process "dvips" nil nil nil dest "-o" ps-dest) 375 (call-process "dvips" nil nil nil dest "-o" ps-dest)
364 (call-process "gzip" nil nil nil dest) 376 (call-process "gzip" nil nil nil dest)
365 (call-process "gzip" nil nil nil ps-dest)) 377 (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."
50 (call-process "bzr" nil t nil "status" "-v") 50 (call-process "bzr" nil t nil "status" "-v")
51 (goto-char (point-min)) 51 (goto-char (point-min))
52 (when (re-search-forward "^conflicts:\n" nil t) 52 (when (re-search-forward "^conflicts:\n" nil t)
53 (error "You still have unresolved conflicts")) 53 (user-error "You still have unresolved conflicts"))
54 (let ((merges ()) 54 (let ((merges ())
55 found) 55 found)
56 (if (not (re-search-forward "^pending merges:\n" nil t)) 56 (if (not (re-search-forward "^pending merges:\n" nil t))
@@ -62,7 +62,7 @@ The list returned is sorted by oldest-first."
62 (setq found 62 (setq found
63 (not (equal "unknown" (match-string 1))))))) 63 (not (equal "unknown" (match-string 1)))))))
64 found) 64 found)
65 (error "You still have uncommitted changes")) 65 (user-error "You still have uncommitted changes"))
66 ;; This is really stupid, but it seems there's no easy way to figure 66 ;; This is really stupid, but it seems there's no easy way to figure
67 ;; out which revisions have been merged already. The only info I can 67 ;; out which revisions have been merged already. The only info I can
68 ;; find is the "pending merges" from "bzr status -v", which is not 68 ;; find is the "pending merges" from "bzr status -v", which is not
@@ -171,7 +171,7 @@ Type `y' to skip this revision,
171 (enable-local-eval nil)) 171 (enable-local-eval nil))
172 (find-file-noselect file)) 172 (find-file-noselect file))
173 (if (buffer-modified-p) 173 (if (buffer-modified-p)
174 (error "Unsaved changes in %s" (current-buffer))) 174 (user-error "Unsaved changes in %s" (current-buffer)))
175 (save-excursion 175 (save-excursion
176 (cond 176 (cond
177 ((derived-mode-p 'change-log-mode) 177 ((derived-mode-p 'change-log-mode)
@@ -323,7 +323,7 @@ Does not make other difference."
323BEWARE! Important metadata is kept in this Emacs session! 323BEWARE! Important metadata is kept in this Emacs session!
324Do not commit without re-running `M-x bzrmerge' first!" 324Do not commit without re-running `M-x bzrmerge' first!"
325 :warning bzrmerge-warning-buffer)) 325 :warning bzrmerge-warning-buffer))
326 (error "Resolve conflicts manually"))))) 326 (user-error "Resolve conflicts manually")))))
327 (cons merge skip))))) 327 (cons merge skip)))))
328 328
329(defun bzrmerge (from) 329(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 @@
12013-03-16 Glenn Morris <rgm@gnu.org>
2
3 * emacs.texi (Top): Add some stuff specific to www.gnu.org.
4
52013-03-16 Glenn Morris <rgm@gnu.org>
6
7 * Version 24.3 released.
8
12013-03-04 Paul Eggert <eggert@cs.ucla.edu> 92013-03-04 Paul Eggert <eggert@cs.ucla.edu>
2 10
3 Prefer UTF-8 for documentation. 11 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.
111@top The Emacs Editor 111@top The Emacs Editor
112 112
113Emacs is the extensible, customizable, self-documenting real-time 113Emacs is the extensible, customizable, self-documenting real-time
114display editor. This Info file describes how to edit with Emacs and 114display editor. This manual describes how to edit with Emacs and
115some of the ways to customize it; it corresponds to GNU Emacs version 115some of the ways to customize it; it corresponds to GNU Emacs version
116@value{EMACSVER}. 116@value{EMACSVER}.
117 117
118@ifset WWW_GNU_ORG
119@html
120The homepage for GNU Emacs is at
121<a href="/software/emacs/">http://www.gnu.org/software/emacs/</a>.<br>
122To view this manual in other formats, click
123<a href="/software/emacs/manual/emacs.html">here</a>.<br>
124You can also purchase a printed copy from the
125<a href="http://shop.fsf.org/product/emacs-manual/">FSF store</a>.
126@end html
127@end ifset
128
118@ifinfo 129@ifinfo
119If you are reading this in Emacs, type @kbd{h} to read a basic 130If you are reading this in Emacs, type @kbd{h} to read a basic
120introduction to the Info documentation system. 131introduction 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 @@
12013-03-16 Glenn Morris <rgm@gnu.org>
2
3 * emacs-lisp-intro.texi: Add some stuff specific to www.gnu.org.
4
52013-03-16 Glenn Morris <rgm@gnu.org>
6
7 * Version 24.3 released.
8
12013-03-03 Glenn Morris <rgm@gnu.org> 92013-03-03 Glenn Morris <rgm@gnu.org>
2 10
3 * emacs-lisp-intro.texi (Digression into C): Update example. 11 * 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
227people who are not programmers. 227people who are not programmers.
228@sp 1 228@sp 1
229Edition @value{edition-number}, @value{update-date} 229Edition @value{edition-number}, @value{update-date}
230@ifset WWW_GNU_ORG
231@html
232<p>The homepage for GNU Emacs is at
233<a href="http://www.gnu.org/software/emacs/">http://www.gnu.org/software/emacs/</a>.
234<br>To view this manual in other formats, click
235<a href="/software/emacs/emacs-lisp-intro/emacs-lisp-intro.html">here</a>.
236@end html
237@end ifset
230@sp 1 238@sp 1
231Copyright @copyright{} 1990--1995, 1997, 2001--2013 Free Software 239Copyright @copyright{} 1990--1995, 1997, 2001--2013 Free Software
232Foundation, Inc. 240Foundation, 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 @@
12013-03-16 Glenn Morris <rgm@gnu.org>
2
3 * elisp.texi: Add some stuff specific to www.gnu.org.
4
52013-03-16 Glenn Morris <rgm@gnu.org>
6
7 * Version 24.3 released.
12013-03-11 Teodor Zlatanov <tzz@lifelogs.com> 82013-03-11 Teodor Zlatanov <tzz@lifelogs.com>
2 9
3 * control.texi (Pattern matching case statement): Fix typo. 10 * 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},@*
97This is the @cite{GNU Emacs Lisp Reference Manual} 97This is the @cite{GNU Emacs Lisp Reference Manual}
98@end ifnottex 98@end ifnottex
99corresponding to Emacs version @value{EMACSVER}. 99corresponding to Emacs version @value{EMACSVER}.
100@ifset WWW_GNU_ORG
101@html
102<p>The homepage for GNU Emacs is at
103<a href="/software/emacs/">http://www.gnu.org/software/emacs/</a>.<br>
104For information on using Emacs, refer to
105the <a href="/software/emacs/manual/html_node/emacs/index.html">Emacs
106Manual</a>.<br> To view this manual in other formats,
107click <a href="/software/emacs/manual/elisp.html">here</a>.
108@end html
109@end ifset
100 110
101Copyright @copyright{} 1990--1996, 1998--2013 Free Software Foundation, Inc. 111Copyright @copyright{} 1990--1996, 1998--2013 Free Software Foundation, Inc.
102 112
diff --git a/leim/ChangeLog b/leim/ChangeLog
index b6591afb75f..47f22ecfb53 100644
--- a/leim/ChangeLog
+++ b/leim/ChangeLog
@@ -1,3 +1,15 @@
12013-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * quail/latin-ltx.el: Resolve conflicts (bug#13950).
4 (latin-ltx--mark-map, latin-ltx--mark-re): New constants.
5 (latin-ltx--define-rules): Check for conflicts. Eval `re's.
6 (rules): Use tighter regexps to avoid conflicts.
7 Consolidate the various rules for combining marks.
8
92013-03-16 Glenn Morris <rgm@gnu.org>
10
11 * Version 24.3 released.
12
12013-02-08 Stefan Monnier <monnier@iro.umontreal.ca> 132013-02-08 Stefan Monnier <monnier@iro.umontreal.ca>
2 14
3 * quail/latin-ltx.el: Add greek superscripts. 15 * 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:
43 t t nil nil nil nil nil nil nil t) 43 t t nil nil nil nil nil nil nil t)
44 44
45(eval-when-compile 45(eval-when-compile
46 (require 'cl-lib)
47
48 (defconst latin-ltx--mark-map
49 '(("DOT BELOW" . "d")
50 ("DOT ABOVE" . ".")
51 ("OGONEK" . "k")
52 ("CEDILLA" . "c")
53 ("CARON" . "v")
54 ;; ("HOOK ABOVE" . ??)
55 ("MACRON" . "=")
56 ("BREVE" . "u")
57 ("TILDE" . "~")
58 ("GRAVE" . "`")
59 ("CIRCUMFLEX" . "^")
60 ("DIAERESIS" . "\"")
61 ("DOUBLE ACUTE" . "H")
62 ("ACUTE" . "'")))
63
64 (defconst latin-ltx--mark-re (regexp-opt (mapcar #'car latin-ltx--mark-map)))
65
46 (defun latin-ltx--ascii-p (char) 66 (defun latin-ltx--ascii-p (char)
47 (and (characterp char) (< char 128))) 67 (and (characterp char) (< char 128)))
48 68
@@ -53,7 +73,8 @@ system, including many technical ones. Examples:
53 (pcase rule 73 (pcase rule
54 (`(,_ ,(pred characterp)) (push rule newrules)) ;; Normal quail rule. 74 (`(,_ ,(pred characterp)) (push rule newrules)) ;; Normal quail rule.
55 (`(,seq ,re) 75 (`(,seq ,re)
56 (let ((count 0)) 76 (let ((count 0)
77 (re (eval re t)))
57 (dolist (pair (ucs-names)) 78 (dolist (pair (ucs-names))
58 (let ((name (car pair)) 79 (let ((name (car pair))
59 (char (cdr pair))) 80 (char (cdr pair)))
@@ -68,9 +89,27 @@ system, including many technical ones. Examples:
68 (push (list x char) newrules)) 89 (push (list x char) newrules))
69 (setq count (1+ count)) 90 (setq count (1+ count))
70 (push (list keys char) newrules)))))) 91 (push (list keys char) newrules))))))
71 ;(message "latin-ltx: %d mapping for %S" count re) 92 ;; (message "latin-ltx: %d mappings for %S" count re)
72 )))) 93 ))))
73 `(quail-define-rules ,@(nreverse (delete-dups newrules)))))) 94 (setq newrules (delete-dups newrules))
95 (let ((rules (copy-sequence newrules)))
96 (while rules
97 (let ((rule (pop rules)))
98 (when (assoc (car rule) rules)
99 (let ((conflicts (list (cadr rule)))
100 (tail rules)
101 c)
102 (while (setq c (assoc (car rule) tail))
103 (push (cadr c) conflicts)
104 (setq tail (cdr (memq c tail)))
105 (setq rules (delq c rules)))
106 (message "Conflict for %S: %S"
107 (car rule) (apply #'string conflicts)))))))
108 (let ((inputs (mapcar #'car newrules)))
109 (setq inputs (delete-dups inputs))
110 (message "latin-ltx: %d rules (+ %d conflicts)!"
111 (length inputs) (- (length newrules) (length inputs))))
112 `(quail-define-rules ,@(nreverse newrules)))))
74 113
75(latin-ltx--define-rules 114(latin-ltx--define-rules
76 ("!`" ?¡) 115 ("!`" ?¡)
@@ -89,69 +128,35 @@ system, including many technical ones. Examples:
89 ("$^o$" ?º) 128 ("$^o$" ?º)
90 ("?`" ?¿) 129 ("?`" ?¿)
91 130
92 ("\\`" ?̀)
93 ("\\`{}" ?`)
94 ((lambda (name char)
95 (let ((c (if (match-end 1)
96 (downcase (match-string 2 name))
97 (match-string 2 name))))
98 (list (format "\\`{%s}" c) (format "\\`%s" c))))
99 "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH GRAVE")
100
101 ("\\'" ?́)
102 ("\\'{}" ?´)
103 ((lambda (name char)
104 (let ((c (if (match-end 1)
105 (downcase (match-string 2 name))
106 (match-string 2 name))))
107 (list (format "\\'{%s}" c) (format "\\'%s" c))))
108 "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH ACUTE")
109
110 ("\\^" ?̂)
111 ("\\^{}" ?^)
112 ((lambda (name char)
113 (let ((c (if (match-end 1)
114 (downcase (match-string 2 name))
115 (match-string 2 name))))
116 (list (format "\\^{%s}" c) (format "\\^%s" c))))
117 "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH CIRCUMFLEX")
118
119 ("\\~" ?̃)
120 ("\\~{}" ?˜)
121 ((lambda (name char)
122 (let ((c (if (match-end 1)
123 (downcase (match-string 2 name))
124 (match-string 2 name))))
125 (list (format "\\~{%s}" c) (format "\\~%s" c))))
126 "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH TILDE")
127
128 ("\\\"" ?̈)
129 ("\\\"{}" ?¨)
130 ((lambda (name char) 131 ((lambda (name char)
131 (let ((c (if (match-end 1) 132 (let* ((c (if (match-end 1)
132 (downcase (match-string 2 name)) 133 (downcase (match-string 2 name))
133 (match-string 2 name)))) 134 (match-string 2 name)))
134 (list (format "\\\"{%s}" c) (format "\\\"%s" c)))) 135 (mark1 (cdr (assoc (match-string 3 name) latin-ltx--mark-map)))
135 "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH DIAERESIS") 136 (mark2 (if (match-end 4)
136 137 (cdr (assoc (match-string 4 name) latin-ltx--mark-map))))
137 ("\\k" ?̨) 138 (marks (if mark2 (concat mark1 "\\" mark2) mark1)))
138 ("\\k{}" ?˛) 139 (cl-assert mark1)
140 (cons (format "\\%s{%s}" marks c)
141 ;; Exclude "d" because we use "\\dh" for something else.
142 (unless (member (or mark2 mark1) '("d"));; "k"
143 (list (format "\\%s%s" marks c))))))
144 (concat "\\`LATIN \\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH \\("
145 latin-ltx--mark-re "\\)\\(?: AND \\("
146 latin-ltx--mark-re "\\)\\)?\\'"))
147
139 ((lambda (name char) 148 ((lambda (name char)
140 (let ((c (if (match-end 1) 149 (let* ((mark (cdr (assoc (match-string 1 name) latin-ltx--mark-map))))
141 (downcase (match-string 2 name)) 150 (cl-assert mark)
142 (match-string 2 name)))) 151 (list (format "\\%s" mark))))
143 (list (format "\\k{%s}" c) ;; (format "\\k%s" c) 152 (concat "\\`COMBINING \\(" latin-ltx--mark-re "\\)\\(?: ACCENT\\)?\\'"))
144 ))) 153
145 "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH OGONEK")
146
147 ("\\c" ?̧)
148 ("\\c{}" ?¸)
149 ((lambda (name char) 154 ((lambda (name char)
150 (let ((c (if (match-end 1) 155 (unless (latin-ltx--ascii-p char)
151 (downcase (match-string 2 name)) 156 (let* ((mark (cdr (assoc (match-string 1 name) latin-ltx--mark-map))))
152 (match-string 2 name)))) 157 (cl-assert mark)
153 (list (format "\\c{%s}" c) (format "\\c%s" c)))) 158 (list (format "\\%s{}" mark)))))
154 "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH CEDILLA") 159 (concat "\\`\\(?:SPACING \\)?\\(" latin-ltx--mark-re "\\)\\(?: ACCENT\\)?\\'"))
155 160
156 ("\\AA" ?Å) ;; ("{\\AA}" ?Å) 161 ("\\AA" ?Å) ;; ("{\\AA}" ?Å)
157 ("\\AE" ?Æ) ;; ("{\\AE}" ?Æ) 162 ("\\AE" ?Æ) ;; ("{\\AE}" ?Æ)
@@ -166,42 +171,6 @@ system, including many technical ones. Examples:
166 ("$\\div$" ?÷) ("\\div" ?÷) 171 ("$\\div$" ?÷) ("\\div" ?÷)
167 ("\\o" ?ø) ;; ("{\\o}" ?ø) 172 ("\\o" ?ø) ;; ("{\\o}" ?ø)
168 173
169 ("\\=" ?̄)
170 ("\\={}" ?¯)
171 ((lambda (name char)
172 (let ((c (if (match-end 1)
173 (downcase (match-string 2 name))
174 (match-string 2 name))))
175 (list (format "\\={%s}" c) (format "\\=%s" c))))
176 "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH MACRON")
177
178 ("\\u" ?̆)
179 ("\\u{}" ?˘)
180 ((lambda (name char)
181 (let ((c (if (match-end 1)
182 (downcase (match-string 2 name))
183 (match-string 2 name))))
184 (list (format "\\u{%s}" c) (format "\\u%s" c))))
185 "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH BREVE")
186
187 ("\\." ?̇)
188 ("\\.{}" ?˙)
189 ((lambda (name char)
190 (let ((c (if (match-end 1)
191 (downcase (match-string 2 name))
192 (match-string 2 name))))
193 (list (format "\\.{%s}" c) (format "\\.%s" c))))
194 "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH DOT ABOVE")
195
196 ("\\v" ?̌)
197 ("\\v{}" ?ˇ)
198 ((lambda (name char)
199 (let ((c (if (match-end 1)
200 (downcase (match-string 2 name))
201 (match-string 2 name))))
202 (list (format "\\v{%s}" c) (format "\\v%s" c))))
203 "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH CARON")
204
205 ("\\~{\\i}" ?ĩ) 174 ("\\~{\\i}" ?ĩ)
206 ("\\={\\i}" ?ī) 175 ("\\={\\i}" ?ī)
207 ("\\u{\\i}" ?ĭ) 176 ("\\u{\\i}" ?ĭ)
@@ -214,12 +183,6 @@ system, including many technical ones. Examples:
214 183
215 ("\\H" ?̋) 184 ("\\H" ?̋)
216 ("\\H{}" ?˝) 185 ("\\H{}" ?˝)
217 ((lambda (name char)
218 (let ((c (if (match-end 1)
219 (downcase (match-string 2 name))
220 (match-string 2 name))))
221 (list (format "\\H{%s}" c) (format "\\H%s" c))))
222 "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH DOUBLE ACUTE")
223 ("\\U{o}" ?ő) ("\\Uo" ?ő) ;; FIXME: Was it just a typo? 186 ("\\U{o}" ?ő) ("\\Uo" ?ő) ;; FIXME: Was it just a typo?
224 187
225 ("\\OE" ?Œ) ;; ("{\\OE}" ?Œ) 188 ("\\OE" ?Œ) ;; ("{\\OE}" ?Œ)
@@ -248,19 +211,11 @@ system, including many technical ones. Examples:
248 (string (if (match-end 2) ?^ ?_) basechar)))) 211 (string (if (match-end 2) ?^ ?_) basechar))))
249 "\\(.*\\)SU\\(?:B\\|\\(PER\\)\\)SCRIPT \\(.*\\)") 212 "\\(.*\\)SU\\(?:B\\|\\(PER\\)\\)SCRIPT \\(.*\\)")
250 213
251 ((lambda (name char) 214 ((lambda (name _char)
252 (let* ((basename (match-string 2 name)) 215 (let* ((basename (match-string 2 name))
253 (lbase (format "LATIN %s LETTER %s" 216 (name (if (match-end 1) (capitalize basename) (downcase basename))))
254 (match-string 1 name) basename)) 217 (concat "^" (if (> (length name) 1) "\\") name)))
255 (gbase (format "GREEK %s LETTER %s" 218 "\\`MODIFIER LETTER \\(?:SMALL\\|CAPITA\\(L\\)\\) \\([[:ascii:]]+\\)\\'")
256 (match-string 1 name) basename))
257 tmp)
258 (cond
259 ((assoc gbase (ucs-names)) (concat "^\\" (downcase basename)))
260 ((latin-ltx--ascii-p (setq tmp (cdr (assoc lbase (ucs-names)))))
261 (string ?^ tmp))
262 (t (message "Unknown modifier letter %s" basename)))))
263 "MODIFIER LETTER \\(SMALL\\|CAPITAL\\) \\(.*\\)")
264 219
265 ;; ((lambda (name char) (format "^%s" (downcase (match-string 1 name)))) 220 ;; ((lambda (name char) (format "^%s" (downcase (match-string 1 name))))
266 ;; "\\`MODIFIER LETTER SMALL \\(.\\)\\'") 221 ;; "\\`MODIFIER LETTER SMALL \\(.\\)\\'")
@@ -272,22 +227,14 @@ system, including many technical ones. Examples:
272 227
273 ("\\b" ?̱) 228 ("\\b" ?̱)
274 229
275 ("\\d" ?̣)
276 ;; ("\\d{}" ?) ;; FIXME: can't find the DOT BELOW character.
277 ((lambda (name char)
278 (let ((c (if (match-end 1)
279 (downcase (match-string 2 name))
280 (match-string 2 name))))
281 (list (format "\\d{%s}" c) ;; (format "\\d%s" c)
282 )))
283 "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH DOT BELOW")
284
285 ("\\rq" ?’) 230 ("\\rq" ?’)
286 231
287 ;; FIXME: Provides some useful entries (yen, euro, copyright, registered, 232 ;; FIXME: Provides some useful entries (yen, euro, copyright, registered,
288 ;; currency, minus, micro), but also a lot of dubious ones. 233 ;; currency, minus, micro), but also a lot of dubious ones.
289 ((lambda (name char) 234 ((lambda (name char)
290 (unless (latin-ltx--ascii-p char) 235 (unless (or (latin-ltx--ascii-p char)
236 ;; We prefer COMBINING LONG SOLIDUS OVERLAY for \not.
237 (member name '("NOT SIGN")))
291 (concat "\\" (downcase (match-string 1 name))))) 238 (concat "\\" (downcase (match-string 1 name)))))
292 "\\`\\([^- ]+\\) SIGN\\'") 239 "\\`\\([^- ]+\\) SIGN\\'")
293 240
@@ -377,7 +324,6 @@ system, including many technical ones. Examples:
377 ("\\circledcirc" ?⊚) 324 ("\\circledcirc" ?⊚)
378 ("\\circleddash" ?⊝) 325 ("\\circleddash" ?⊝)
379 ("\\clubsuit" ?♣) 326 ("\\clubsuit" ?♣)
380 ("\\colon" ?:) ;FIXME: Conflict with "COLON SIGN" ₡.
381 ("\\coloneq" ?≔) 327 ("\\coloneq" ?≔)
382 ("\\complement" ?∁) 328 ("\\complement" ?∁)
383 ("\\cong" ?≅) 329 ("\\cong" ?≅)
@@ -400,7 +346,6 @@ system, including many technical ones. Examples:
400 ("\\ddots" ?⋱) 346 ("\\ddots" ?⋱)
401 ("\\diamond" ?⋄) 347 ("\\diamond" ?⋄)
402 ("\\diamondsuit" ?♢) 348 ("\\diamondsuit" ?♢)
403 ("\\digamma" ?Ϝ)
404 ("\\divideontimes" ?⋇) 349 ("\\divideontimes" ?⋇)
405 ("\\doteq" ?≐) 350 ("\\doteq" ?≐)
406 ("\\doteqdot" ?≑) 351 ("\\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 @@
12013-03-16 Paul Eggert <eggert@cs.ucla.edu>
2
3 * pop.c: Fix ERRMAX typo (Bug#13925).
4 (socket_connection) [!HAVE_KRB5_ERROR_TEXT && HAVE_KRB5_ERROR_E_TEXT]:
5 Use ERROR_MAX, not ERRMAX.
6
72013-03-16 Glenn Morris <rgm@gnu.org>
8
9 * Version 24.3 released.
10
12013-03-13 Paul Eggert <eggert@cs.ucla.edu> 112013-03-13 Paul Eggert <eggert@cs.ucla.edu>
2 12
3 File synchronization fixes (Bug#13944). 13 File synchronization fixes (Bug#13944).
@@ -6,8 +16,8 @@
6 * emacsclient.c (main): Use fdatasync, not fsync, since we don't 16 * emacsclient.c (main): Use fdatasync, not fsync, since we don't
7 care about metadata. Keep trying if interrupted. 17 care about metadata. Keep trying if interrupted.
8 * movemail.c (main, popmail): Don't worry about BSD_SYSTEM, since 18 * movemail.c (main, popmail): Don't worry about BSD_SYSTEM, since
9 fsync is available everywhere (or there is a substitute). Don't 19 fsync is available everywhere (or there is a substitute).
10 report an error if fsync returns EINVAL. 20 Don't report an error if fsync returns EINVAL.
11 21
12 Static checking by Sun C 5.12. 22 Static checking by Sun C 5.12.
13 * etags.c (analyse_regex): Omit unreachable code. 23 * etags.c (analyse_regex): Omit unreachable code.
@@ -5182,7 +5192,7 @@
5182 (longopts): New long options without short counterpart are 5192 (longopts): New long options without short counterpart are
5183 globals, members, no-globals, no-members. Regexp options are now 5193 globals, members, no-globals, no-members. Regexp options are now
5184 defined conditionally to ETAGS_REGEXPS. 5194 defined conditionally to ETAGS_REGEXPS.
5185 (print_help): Updated. 5195 (print_help): Update.
5186 5196
51871997-05-22 Francesco Potortì <F.Potorti@cnuce.cnr.it> 51971997-05-22 Francesco Potortì <F.Potorti@cnuce.cnr.it>
5188 5198
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)
1198 } 1198 }
1199#elif defined HAVE_KRB5_ERROR_E_TEXT 1199#elif defined HAVE_KRB5_ERROR_E_TEXT
1200 if (err_ret && err_ret->e_text && **err_ret->e_text) 1200 if (err_ret && err_ret->e_text && **err_ret->e_text)
1201 snprintf (pop_error + pop_error_len, ERRMAX - pop_error_len, 1201 snprintf (pop_error + pop_error_len, ERROR_MAX - pop_error_len,
1202 " [server says '%s']", *err_ret->e_text); 1202 " [server says '%s']", *err_ret->e_text);
1203#endif 1203#endif
1204 if (err_ret) 1204 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 @@
12013-03-16 Leo Liu <sdl.web@gmail.com>
2
3 * progmodes/scheme.el: Add indentation and font-locking for λ.
4 (Bug#13975)
5
62013-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
7
8 * emacs-lisp/smie.el (smie-auto-fill): Don't inf-loop if there's no
9 token before point (bug#13942).
10
112013-03-16 Leo Liu <sdl.web@gmail.com>
12
13 * thingatpt.el (end-of-sexp): Fix bug#13952. Use syntax-after.
14
152013-03-16 Glenn Morris <rgm@gnu.org>
16
17 * Version 24.3 released.
18
12013-03-16 Eli Zaretskii <eliz@gnu.org> 192013-03-16 Eli Zaretskii <eliz@gnu.org>
2 20
3 * startup.el (command-line-normalize-file-name): Fix handling of 21 * startup.el (command-line-normalize-file-name): Fix handling of
@@ -571,6 +589,11 @@
571 Let-bind `isearch-other-end' to `start', `isearch-forward' to t 589 Let-bind `isearch-other-end' to `start', `isearch-forward' to t
572 and `isearch-error' to nil. 590 and `isearch-error' to nil.
573 591
5922013-03-16 Fabián Ezequiel Gallina <fgallina@cuca>
593
594 * progmodes/python.el (python-info-current-defun):
595 Enhance match-data cluttering prevention.
596
5742013-02-22 Michael Albinus <michael.albinus@gmx.de> 5972013-02-22 Michael Albinus <michael.albinus@gmx.de>
575 598
576 * net/tramp.el (tramp-tramp-file-p): Fix docstring. 599 * 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.")
1631(defun smie-auto-fill () 1631(defun smie-auto-fill ()
1632 (let ((fc (current-fill-column))) 1632 (let ((fc (current-fill-column)))
1633 (while (and fc (> (current-column) fc)) 1633 (while (and fc (> (current-column) fc))
1634 (cond 1634 (or (unless (or (nth 8 (save-excursion
1635 ((not (or (nth 8 (save-excursion 1635 (syntax-ppss (line-beginning-position))))
1636 (syntax-ppss (line-beginning-position)))) 1636 (nth 8 (syntax-ppss)))
1637 (nth 8 (syntax-ppss)))) 1637 (save-excursion
1638 (save-excursion 1638 (let ((end (point))
1639 (beginning-of-line) 1639 (bsf (progn (beginning-of-line)
1640 (smie-indent-forward-token) 1640 (smie-indent-forward-token)
1641 (let ((bsf (point)) 1641 (point)))
1642 (gain 0) 1642 (gain 0)
1643 curcol) 1643 curcol)
1644 (while (<= (setq curcol (current-column)) fc) 1644 (while (and (<= (point) end)
1645 ;; FIXME? `smie-indent-calculate' can (and often will) 1645 (<= (setq curcol (current-column)) fc))
1646 ;; return a result that actually depends on the presence/absence 1646 ;; FIXME? `smie-indent-calculate' can (and often will)
1647 ;; of a newline, so the gain computed here may not be accurate, 1647 ;; return a result that actually depends on the
1648 ;; but in practice it seems to works well enough. 1648 ;; presence/absence of a newline, so the gain computed here
1649 (let* ((newcol (smie-indent-calculate)) 1649 ;; may not be accurate, but in practice it seems to works
1650 (newgain (- curcol newcol))) 1650 ;; well enough.
1651 (when (> newgain gain) 1651 (let* ((newcol (smie-indent-calculate))
1652 (setq gain newgain) 1652 (newgain (- curcol newcol)))
1653 (setq bsf (point)))) 1653 (when (> newgain gain)
1654 (smie-indent-forward-token)) 1654 (setq gain newgain)
1655 (when (> gain 0) 1655 (setq bsf (point))))
1656 (goto-char bsf) 1656 (smie-indent-forward-token))
1657 (newline-and-indent))))) 1657 (when (> gain 0)
1658 (t (do-auto-fill)))))) 1658 (goto-char bsf)
1659 (newline-and-indent)
1660 'done))))
1661 (do-auto-fill)))))
1659 1662
1660 1663
1661(defun smie-setup (grammar rules-function &rest keywords) 1664(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'."
310 "(" (regexp-opt 310 "(" (regexp-opt
311 '("begin" "call-with-current-continuation" "call/cc" 311 '("begin" "call-with-current-continuation" "call/cc"
312 "call-with-input-file" "call-with-output-file" "case" "cond" 312 "call-with-input-file" "call-with-output-file" "case" "cond"
313 "do" "else" "for-each" "if" "lambda" 313 "do" "else" "for-each" "if" "lambda" "λ"
314 "let" "let*" "let-syntax" "letrec" "letrec-syntax" 314 "let" "let*" "let-syntax" "letrec" "letrec-syntax"
315 ;; SRFI 11 usage comes up often enough. 315 ;; SRFI 11 usage comes up often enough.
316 "let-values" "let*-values" 316 "let-values" "let*-values"
@@ -410,6 +410,7 @@ that variable's value is a string."
410(put 'make 'scheme-indent-function 1) 410(put 'make 'scheme-indent-function 1)
411(put 'style 'scheme-indent-function 1) 411(put 'style 'scheme-indent-function 1)
412(put 'root 'scheme-indent-function 1) 412(put 'root 'scheme-indent-function 1)
413(put 'λ 'scheme-indent-function 1)
413 414
414(defvar dsssl-font-lock-keywords 415(defvar dsssl-font-lock-keywords
415 (eval-when-compile 416 (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'."
182(defun end-of-sexp () 182(defun end-of-sexp ()
183 "Move point to the end of the current sexp. 183 "Move point to the end of the current sexp.
184\[This is an internal function.]" 184\[This is an internal function.]"
185 (let ((char-syntax (char-syntax (char-after)))) 185 (let ((char-syntax (syntax-after (point))))
186 (if (or (eq char-syntax ?\)) 186 (if (or (eq char-syntax ?\))
187 (and (eq char-syntax ?\") (in-string-p))) 187 (and (eq char-syntax ?\") (in-string-p)))
188 (forward-char 1) 188 (forward-char 1)