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:
commit
78be8b6465
@ -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).
|
||||||
|
@ -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))
|
||||||
|
@ -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)
|
||||||
|
@ -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.
|
||||||
|
@ -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.
|
||||||
|
@ -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.
|
||||||
|
@ -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.
|
||||||
|
@ -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.
|
||||||
|
@ -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.
|
||||||
|
|
||||||
|
@ -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.
|
||||||
|
@ -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" ?≑)
|
||||||
|
@ -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>
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -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.
|
||||||
|
@ -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)
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user