1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-22 10:26:20 +00:00

Merge from emacs-24

This commit is contained in:
Stefan Monnier 2013-03-16 18:08:22 -04:00
commit 78be8b6465
17 changed files with 232 additions and 166 deletions

View File

@ -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> 2013-03-13 Paul Eggert <eggert@cs.ucla.edu>
File synchronization fixes (Bug#13944). File synchronization fixes (Bug#13944).

View File

@ -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 HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using
the @import directive." the @import directive."
(call-process "makeinfo" nil nil nil (call-process "makeinfo" nil nil nil
"-D" "WWW_GNU_ORG"
"-I" (expand-file-name "../emacs" "-I" (expand-file-name "../emacs"
(file-name-directory texi-file)) (file-name-directory texi-file))
"-I" (expand-file-name "../misc" "-I" (expand-file-name "../misc"
@ -310,6 +311,7 @@ the @import directive."
(unless (file-exists-p texi-file) (unless (file-exists-p texi-file)
(error "Manual file %s not found" texi-file)) (error "Manual file %s not found" texi-file))
(call-process "makeinfo" nil nil nil (call-process "makeinfo" nil nil nil
"-D" "WWW_GNU_ORG"
"-I" (expand-file-name "../emacs" "-I" (expand-file-name "../emacs"
(file-name-directory texi-file)) (file-name-directory texi-file))
"-I" (expand-file-name "../misc" "-I" (expand-file-name "../misc"
@ -354,12 +356,22 @@ the @import directive."
(defun manual-pdf (texi-file dest) (defun manual-pdf (texi-file dest)
"Run texi2pdf on TEXI-FILE, emitting plaintext output to 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) (defun manual-dvi (texi-file dest ps-dest)
"Run texi2dvi on TEXI-FILE, emitting dvi output to DEST. "Run texi2dvi on TEXI-FILE, emitting dvi output to DEST.
Also generate PostScript output in PS-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 "dvips" nil nil nil dest "-o" ps-dest)
(call-process "gzip" nil nil nil dest) (call-process "gzip" nil nil nil dest)
(call-process "gzip" nil nil nil ps-dest)) (call-process "gzip" nil nil nil ps-dest))

View File

@ -50,7 +50,7 @@ The list returned is sorted by oldest-first."
(call-process "bzr" nil t nil "status" "-v") (call-process "bzr" nil t nil "status" "-v")
(goto-char (point-min)) (goto-char (point-min))
(when (re-search-forward "^conflicts:\n" nil t) (when (re-search-forward "^conflicts:\n" nil t)
(error "You still have unresolved conflicts")) (user-error "You still have unresolved conflicts"))
(let ((merges ()) (let ((merges ())
found) found)
(if (not (re-search-forward "^pending merges:\n" nil t)) (if (not (re-search-forward "^pending merges:\n" nil t))
@ -62,7 +62,7 @@ The list returned is sorted by oldest-first."
(setq found (setq found
(not (equal "unknown" (match-string 1))))))) (not (equal "unknown" (match-string 1)))))))
found) 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 ;; 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 ;; out which revisions have been merged already. The only info I can
;; find is the "pending merges" from "bzr status -v", which is not ;; 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)) (enable-local-eval nil))
(find-file-noselect file)) (find-file-noselect file))
(if (buffer-modified-p) (if (buffer-modified-p)
(error "Unsaved changes in %s" (current-buffer))) (user-error "Unsaved changes in %s" (current-buffer)))
(save-excursion (save-excursion
(cond (cond
((derived-mode-p 'change-log-mode) ((derived-mode-p 'change-log-mode)
@ -323,7 +323,7 @@ Does not make other difference."
BEWARE! Important metadata is kept in this Emacs session! BEWARE! Important metadata is kept in this Emacs session!
Do not commit without re-running `M-x bzrmerge' first!" Do not commit without re-running `M-x bzrmerge' first!"
:warning bzrmerge-warning-buffer)) :warning bzrmerge-warning-buffer))
(error "Resolve conflicts manually"))))) (user-error "Resolve conflicts manually")))))
(cons merge skip))))) (cons merge skip)))))
(defun bzrmerge (from) (defun bzrmerge (from)

View File

@ -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> 2013-03-04 Paul Eggert <eggert@cs.ucla.edu>
Prefer UTF-8 for documentation. Prefer UTF-8 for documentation.

View File

@ -111,10 +111,21 @@ Cover art by Etienne Suvasa; cover design by Matt Lee.
@top The Emacs Editor @top The Emacs Editor
Emacs is the extensible, customizable, self-documenting real-time 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 some of the ways to customize it; it corresponds to GNU Emacs version
@value{EMACSVER}. @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 @ifinfo
If you are reading this in Emacs, type @kbd{h} to read a basic If you are reading this in Emacs, type @kbd{h} to read a basic
introduction to the Info documentation system. introduction to the Info documentation system.

View File

@ -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> 2013-03-03 Glenn Morris <rgm@gnu.org>
* emacs-lisp-intro.texi (Digression into C): Update example. * emacs-lisp-intro.texi (Digression into C): Update example.

View File

@ -227,6 +227,14 @@ This is an @cite{Introduction to Programming in Emacs Lisp}, for
people who are not programmers. people who are not programmers.
@sp 1 @sp 1
Edition @value{edition-number}, @value{update-date} 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 @sp 1
Copyright @copyright{} 1990--1995, 1997, 2001--2013 Free Software Copyright @copyright{} 1990--1995, 1997, 2001--2013 Free Software
Foundation, Inc. Foundation, Inc.

View File

@ -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> 2013-03-11 Teodor Zlatanov <tzz@lifelogs.com>
* control.texi (Pattern matching case statement): Fix typo. * control.texi (Pattern matching case statement): Fix typo.

View File

@ -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} This is the @cite{GNU Emacs Lisp Reference Manual}
@end ifnottex @end ifnottex
corresponding to Emacs version @value{EMACSVER}. 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. Copyright @copyright{} 1990--1996, 1998--2013 Free Software Foundation, Inc.

View File

@ -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> 2013-02-08 Stefan Monnier <monnier@iro.umontreal.ca>
* quail/latin-ltx.el: Add greek superscripts. * quail/latin-ltx.el: Add greek superscripts.

View File

@ -43,6 +43,26 @@ system, including many technical ones. Examples:
t t nil nil nil nil nil nil nil t) t t nil nil nil nil nil nil nil t)
(eval-when-compile (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) (defun latin-ltx--ascii-p (char)
(and (characterp char) (< char 128))) (and (characterp char) (< char 128)))
@ -53,7 +73,8 @@ system, including many technical ones. Examples:
(pcase rule (pcase rule
(`(,_ ,(pred characterp)) (push rule newrules)) ;; Normal quail rule. (`(,_ ,(pred characterp)) (push rule newrules)) ;; Normal quail rule.
(`(,seq ,re) (`(,seq ,re)
(let ((count 0)) (let ((count 0)
(re (eval re t)))
(dolist (pair (ucs-names)) (dolist (pair (ucs-names))
(let ((name (car pair)) (let ((name (car pair))
(char (cdr pair))) (char (cdr pair)))
@ -68,9 +89,27 @@ system, including many technical ones. Examples:
(push (list x char) newrules)) (push (list x char) newrules))
(setq count (1+ count)) (setq count (1+ count))
(push (list keys char) newrules)))))) (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 (latin-ltx--define-rules
("!`" ) ("!`" )
@ -89,69 +128,35 @@ system, including many technical ones. Examples:
("$^o$" ) ("$^o$" )
("?`" ?¿) ("?`" ?¿)
("\\`" )
("\\`{}" ?`)
((lambda (name char) ((lambda (name char)
(let ((c (if (match-end 1) (let* ((c (if (match-end 1)
(downcase (match-string 2 name)) (downcase (match-string 2 name))
(match-string 2 name)))) (match-string 2 name)))
(list (format "\\`{%s}" c) (format "\\`%s" c)))) (mark1 (cdr (assoc (match-string 3 name) latin-ltx--mark-map)))
"\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH GRAVE") (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) ((lambda (name char)
(let ((c (if (match-end 1) (let* ((mark (cdr (assoc (match-string 1 name) latin-ltx--mark-map))))
(downcase (match-string 2 name)) (cl-assert mark)
(match-string 2 name)))) (list (format "\\%s" mark))))
(list (format "\\'{%s}" c) (format "\\'%s" c)))) (concat "\\`COMBINING \\(" latin-ltx--mark-re "\\)\\(?: ACCENT\\)?\\'"))
"\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH ACUTE")
("\\^" )
("\\^{}" ?^)
((lambda (name char) ((lambda (name char)
(let ((c (if (match-end 1) (unless (latin-ltx--ascii-p char)
(downcase (match-string 2 name)) (let* ((mark (cdr (assoc (match-string 1 name) latin-ltx--mark-map))))
(match-string 2 name)))) (cl-assert mark)
(list (format "\\^{%s}" c) (format "\\^%s" c)))) (list (format "\\%s{}" mark)))))
"\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH CIRCUMFLEX") (concat "\\`\\(?:SPACING \\)?\\(" 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 "\\~{%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{}" ?˛)
((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{}" ?¸)
((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")
("\\AA" ) ;; ("{\\AA}" ?Å) ("\\AA" ) ;; ("{\\AA}" ?Å)
("\\AE" ) ;; ("{\\AE}" ?Æ) ("\\AE" ) ;; ("{\\AE}" ?Æ)
@ -166,42 +171,6 @@ system, including many technical ones. Examples:
("$\\div$" ) ("\\div" ) ("$\\div$" ) ("\\div" )
("\\o" ) ;; ("{\\o}" ?ø) ("\\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}" )
("\\={\\i}" ) ("\\={\\i}" )
("\\u{\\i}" ) ("\\u{\\i}" )
@ -214,12 +183,6 @@ system, including many technical ones. Examples:
("\\H" ) ("\\H" )
("\\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? ("\\U{o}" ) ("\\Uo" ) ;; FIXME: Was it just a typo?
("\\OE" ) ;; ("{\\OE}" ?Œ) ("\\OE" ) ;; ("{\\OE}" ?Œ)
@ -248,19 +211,11 @@ system, including many technical ones. Examples:
(string (if (match-end 2) ?^ ?_) basechar)))) (string (if (match-end 2) ?^ ?_) basechar))))
"\\(.*\\)SU\\(?:B\\|\\(PER\\)\\)SCRIPT \\(.*\\)") "\\(.*\\)SU\\(?:B\\|\\(PER\\)\\)SCRIPT \\(.*\\)")
((lambda (name char) ((lambda (name _char)
(let* ((basename (match-string 2 name)) (let* ((basename (match-string 2 name))
(lbase (format "LATIN %s LETTER %s" (name (if (match-end 1) (capitalize basename) (downcase basename))))
(match-string 1 name) basename)) (concat "^" (if (> (length name) 1) "\\") name)))
(gbase (format "GREEK %s LETTER %s" "\\`MODIFIER LETTER \\(?:SMALL\\|CAPITA\\(L\\)\\) \\([[:ascii:]]+\\)\\'")
(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\\) \\(.*\\)")
;; ((lambda (name char) (format "^%s" (downcase (match-string 1 name)))) ;; ((lambda (name char) (format "^%s" (downcase (match-string 1 name))))
;; "\\`MODIFIER LETTER SMALL \\(.\\)\\'") ;; "\\`MODIFIER LETTER SMALL \\(.\\)\\'")
@ -272,22 +227,14 @@ system, including many technical ones. Examples:
("\\b" ) ("\\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" ?) ("\\rq" ?)
;; FIXME: Provides some useful entries (yen, euro, copyright, registered, ;; FIXME: Provides some useful entries (yen, euro, copyright, registered,
;; currency, minus, micro), but also a lot of dubious ones. ;; currency, minus, micro), but also a lot of dubious ones.
((lambda (name char) ((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))))) (concat "\\" (downcase (match-string 1 name)))))
"\\`\\([^- ]+\\) SIGN\\'") "\\`\\([^- ]+\\) SIGN\\'")
@ -377,7 +324,6 @@ system, including many technical ones. Examples:
("\\circledcirc" ?⊚) ("\\circledcirc" ?⊚)
("\\circleddash" ?⊝) ("\\circleddash" ?⊝)
("\\clubsuit" ?♣) ("\\clubsuit" ?♣)
("\\colon" ?:) ;FIXME: Conflict with "COLON SIGN" ₡.
("\\coloneq" ?≔) ("\\coloneq" ?≔)
("\\complement" ?∁) ("\\complement" ?∁)
("\\cong" ?≅) ("\\cong" ?≅)
@ -400,7 +346,6 @@ system, including many technical ones. Examples:
("\\ddots" ?⋱) ("\\ddots" ?⋱)
("\\diamond" ?⋄) ("\\diamond" ?⋄)
("\\diamondsuit" ?♢) ("\\diamondsuit" ?♢)
("\\digamma" ?Ϝ)
("\\divideontimes" ?⋇) ("\\divideontimes" ?⋇)
("\\doteq" ?≐) ("\\doteq" ?≐)
("\\doteqdot" ?≑) ("\\doteqdot" ?≑)

View File

@ -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> 2013-03-13 Paul Eggert <eggert@cs.ucla.edu>
File synchronization fixes (Bug#13944). File synchronization fixes (Bug#13944).
@ -6,8 +16,8 @@
* emacsclient.c (main): Use fdatasync, not fsync, since we don't * emacsclient.c (main): Use fdatasync, not fsync, since we don't
care about metadata. Keep trying if interrupted. care about metadata. Keep trying if interrupted.
* movemail.c (main, popmail): Don't worry about BSD_SYSTEM, since * movemail.c (main, popmail): Don't worry about BSD_SYSTEM, since
fsync is available everywhere (or there is a substitute). Don't fsync is available everywhere (or there is a substitute).
report an error if fsync returns EINVAL. Don't report an error if fsync returns EINVAL.
Static checking by Sun C 5.12. Static checking by Sun C 5.12.
* etags.c (analyse_regex): Omit unreachable code. * etags.c (analyse_regex): Omit unreachable code.
@ -5182,7 +5192,7 @@
(longopts): New long options without short counterpart are (longopts): New long options without short counterpart are
globals, members, no-globals, no-members. Regexp options are now globals, members, no-globals, no-members. Regexp options are now
defined conditionally to ETAGS_REGEXPS. defined conditionally to ETAGS_REGEXPS.
(print_help): Updated. (print_help): Update.
1997-05-22 Francesco Potortì <F.Potorti@cnuce.cnr.it> 1997-05-22 Francesco Potortì <F.Potorti@cnuce.cnr.it>

View File

@ -1198,7 +1198,7 @@ socket_connection (char *host, int flags)
} }
#elif defined HAVE_KRB5_ERROR_E_TEXT #elif defined HAVE_KRB5_ERROR_E_TEXT
if (err_ret && err_ret->e_text && **err_ret->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); " [server says '%s']", *err_ret->e_text);
#endif #endif
if (err_ret) if (err_ret)

View File

@ -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> 2013-03-16 Eli Zaretskii <eliz@gnu.org>
* startup.el (command-line-normalize-file-name): Fix handling of * 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 Let-bind `isearch-other-end' to `start', `isearch-forward' to t
and `isearch-error' to nil. 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> 2013-02-22 Michael Albinus <michael.albinus@gmx.de>
* net/tramp.el (tramp-tramp-file-p): Fix docstring. * net/tramp.el (tramp-tramp-file-p): Fix docstring.

View File

@ -1631,31 +1631,34 @@ to which that point should be aligned, if we were to reindent it.")
(defun smie-auto-fill () (defun smie-auto-fill ()
(let ((fc (current-fill-column))) (let ((fc (current-fill-column)))
(while (and fc (> (current-column) fc)) (while (and fc (> (current-column) fc))
(cond (or (unless (or (nth 8 (save-excursion
((not (or (nth 8 (save-excursion (syntax-ppss (line-beginning-position))))
(syntax-ppss (line-beginning-position)))) (nth 8 (syntax-ppss)))
(nth 8 (syntax-ppss)))) (save-excursion
(save-excursion (let ((end (point))
(beginning-of-line) (bsf (progn (beginning-of-line)
(smie-indent-forward-token) (smie-indent-forward-token)
(let ((bsf (point)) (point)))
(gain 0) (gain 0)
curcol) curcol)
(while (<= (setq curcol (current-column)) fc) (while (and (<= (point) end)
;; FIXME? `smie-indent-calculate' can (and often will) (<= (setq curcol (current-column)) fc))
;; return a result that actually depends on the presence/absence ;; FIXME? `smie-indent-calculate' can (and often will)
;; of a newline, so the gain computed here may not be accurate, ;; return a result that actually depends on the
;; but in practice it seems to works well enough. ;; presence/absence of a newline, so the gain computed here
(let* ((newcol (smie-indent-calculate)) ;; may not be accurate, but in practice it seems to works
(newgain (- curcol newcol))) ;; well enough.
(when (> newgain gain) (let* ((newcol (smie-indent-calculate))
(setq gain newgain) (newgain (- curcol newcol)))
(setq bsf (point)))) (when (> newgain gain)
(smie-indent-forward-token)) (setq gain newgain)
(when (> gain 0) (setq bsf (point))))
(goto-char bsf) (smie-indent-forward-token))
(newline-and-indent))))) (when (> gain 0)
(t (do-auto-fill)))))) (goto-char bsf)
(newline-and-indent)
'done))))
(do-auto-fill)))))
(defun smie-setup (grammar rules-function &rest keywords) (defun smie-setup (grammar rules-function &rest keywords)

View File

@ -310,7 +310,7 @@ See `run-hooks'."
"(" (regexp-opt "(" (regexp-opt
'("begin" "call-with-current-continuation" "call/cc" '("begin" "call-with-current-continuation" "call/cc"
"call-with-input-file" "call-with-output-file" "case" "cond" "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" "let" "let*" "let-syntax" "letrec" "letrec-syntax"
;; SRFI 11 usage comes up often enough. ;; SRFI 11 usage comes up often enough.
"let-values" "let*-values" "let-values" "let*-values"
@ -410,6 +410,7 @@ that variable's value is a string."
(put 'make 'scheme-indent-function 1) (put 'make 'scheme-indent-function 1)
(put 'style 'scheme-indent-function 1) (put 'style 'scheme-indent-function 1)
(put 'root 'scheme-indent-function 1) (put 'root 'scheme-indent-function 1)
(put 'scheme-indent-function 1)
(defvar dsssl-font-lock-keywords (defvar dsssl-font-lock-keywords
(eval-when-compile (eval-when-compile

View File

@ -182,7 +182,7 @@ The bounds of THING are determined by `bounds-of-thing-at-point'."
(defun end-of-sexp () (defun end-of-sexp ()
"Move point to the end of the current sexp. "Move point to the end of the current sexp.
\[This is an internal function.]" \[This is an internal function.]"
(let ((char-syntax (char-syntax (char-after)))) (let ((char-syntax (syntax-after (point))))
(if (or (eq char-syntax ?\)) (if (or (eq char-syntax ?\))
(and (eq char-syntax ?\") (in-string-p))) (and (eq char-syntax ?\") (in-string-p)))
(forward-char 1) (forward-char 1)