diff options
| author | Stefan Monnier | 2013-03-16 18:08:22 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2013-03-16 18:08:22 -0400 |
| commit | 78be8b64657aeca0472d708450ea1ce2bc142606 (patch) | |
| tree | dccbdc45e747a47b44be92abab79cca15a30111f | |
| parent | 6615748ac6bcff258ef548f70bdcc1ab9f740472 (diff) | |
| parent | 67ed8fcd04edeff2d4931acf476e7067c5ceeef2 (diff) | |
| download | emacs-78be8b64657aeca0472d708450ea1ce2bc142606.tar.gz emacs-78be8b64657aeca0472d708450ea1ce2bc142606.zip | |
Merge from emacs-24
| -rw-r--r-- | admin/ChangeLog | 8 | ||||
| -rw-r--r-- | admin/admin.el | 16 | ||||
| -rw-r--r-- | admin/bzrmerge.el | 8 | ||||
| -rw-r--r-- | doc/emacs/ChangeLog | 8 | ||||
| -rw-r--r-- | doc/emacs/emacs.texi | 13 | ||||
| -rw-r--r-- | doc/lispintro/ChangeLog | 8 | ||||
| -rw-r--r-- | doc/lispintro/emacs-lisp-intro.texi | 8 | ||||
| -rw-r--r-- | doc/lispref/ChangeLog | 7 | ||||
| -rw-r--r-- | doc/lispref/elisp.texi | 10 | ||||
| -rw-r--r-- | leim/ChangeLog | 12 | ||||
| -rw-r--r-- | leim/quail/latin-ltx.el | 205 | ||||
| -rw-r--r-- | lib-src/ChangeLog | 16 | ||||
| -rw-r--r-- | lib-src/pop.c | 2 | ||||
| -rw-r--r-- | lisp/ChangeLog | 23 | ||||
| -rw-r--r-- | lisp/emacs-lisp/smie.el | 53 | ||||
| -rw-r--r-- | lisp/progmodes/scheme.el | 3 | ||||
| -rw-r--r-- | lisp/thingatpt.el | 2 |
17 files changed, 234 insertions, 168 deletions
diff --git a/admin/ChangeLog b/admin/ChangeLog index fcc339c17cd..25ce7c0f9e4 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2013-03-16 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * admin.el (manual-pdf, manual-dvi): Pass -I to texi2pdf, texi2dvi. | ||
| 4 | |||
| 5 | 2013-03-16 Glenn Morris <rgm@gnu.org> | ||
| 6 | |||
| 7 | * admin.el (manual-html-mono, manual-html-node): Add -DWWW_GNU_ORG. | ||
| 8 | |||
| 1 | 2013-03-13 Paul Eggert <eggert@cs.ucla.edu> | 9 | 2013-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 | |||
| 285 | HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using | 285 | HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using |
| 286 | the @import directive." | 286 | the @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. |
| 361 | Also generate PostScript output in PS-DEST." | 368 | Also 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." | |||
| 323 | BEWARE! Important metadata is kept in this Emacs session! | 323 | BEWARE! Important metadata is kept in this Emacs session! |
| 324 | Do not commit without re-running `M-x bzrmerge' first!" | 324 | Do 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 @@ | |||
| 1 | 2013-03-16 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * emacs.texi (Top): Add some stuff specific to www.gnu.org. | ||
| 4 | |||
| 5 | 2013-03-16 Glenn Morris <rgm@gnu.org> | ||
| 6 | |||
| 7 | * Version 24.3 released. | ||
| 8 | |||
| 1 | 2013-03-04 Paul Eggert <eggert@cs.ucla.edu> | 9 | 2013-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 | ||
| 113 | Emacs is the extensible, customizable, self-documenting real-time | 113 | Emacs is the extensible, customizable, self-documenting real-time |
| 114 | display editor. This Info file describes how to edit with Emacs and | 114 | display editor. This manual describes how to edit with Emacs and |
| 115 | some of the ways to customize it; it corresponds to GNU Emacs version | 115 | some 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 | ||
| 120 | The homepage for GNU Emacs is at | ||
| 121 | <a href="/software/emacs/">http://www.gnu.org/software/emacs/</a>.<br> | ||
| 122 | To view this manual in other formats, click | ||
| 123 | <a href="/software/emacs/manual/emacs.html">here</a>.<br> | ||
| 124 | You 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 |
| 119 | If you are reading this in Emacs, type @kbd{h} to read a basic | 130 | If you are reading this in Emacs, type @kbd{h} to read a basic |
| 120 | introduction to the Info documentation system. | 131 | 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 @@ | |||
| 1 | 2013-03-16 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * emacs-lisp-intro.texi: Add some stuff specific to www.gnu.org. | ||
| 4 | |||
| 5 | 2013-03-16 Glenn Morris <rgm@gnu.org> | ||
| 6 | |||
| 7 | * Version 24.3 released. | ||
| 8 | |||
| 1 | 2013-03-03 Glenn Morris <rgm@gnu.org> | 9 | 2013-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 | |||
| 227 | people who are not programmers. | 227 | people who are not programmers. |
| 228 | @sp 1 | 228 | @sp 1 |
| 229 | Edition @value{edition-number}, @value{update-date} | 229 | Edition @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 |
| 231 | Copyright @copyright{} 1990--1995, 1997, 2001--2013 Free Software | 239 | Copyright @copyright{} 1990--1995, 1997, 2001--2013 Free Software |
| 232 | Foundation, Inc. | 240 | 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 @@ | |||
| 1 | 2013-03-16 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * elisp.texi: Add some stuff specific to www.gnu.org. | ||
| 4 | |||
| 5 | 2013-03-16 Glenn Morris <rgm@gnu.org> | ||
| 6 | |||
| 7 | * Version 24.3 released. | ||
| 1 | 2013-03-11 Teodor Zlatanov <tzz@lifelogs.com> | 8 | 2013-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},@* | |||
| 97 | This is the @cite{GNU Emacs Lisp Reference Manual} | 97 | This is the @cite{GNU Emacs Lisp Reference Manual} |
| 98 | @end ifnottex | 98 | @end ifnottex |
| 99 | corresponding to Emacs version @value{EMACSVER}. | 99 | corresponding 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> | ||
| 104 | For information on using Emacs, refer to | ||
| 105 | the <a href="/software/emacs/manual/html_node/emacs/index.html">Emacs | ||
| 106 | Manual</a>.<br> To view this manual in other formats, | ||
| 107 | click <a href="/software/emacs/manual/elisp.html">here</a>. | ||
| 108 | @end html | ||
| 109 | @end ifset | ||
| 100 | 110 | ||
| 101 | Copyright @copyright{} 1990--1996, 1998--2013 Free Software Foundation, Inc. | 111 | Copyright @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 @@ | |||
| 1 | 2013-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 | |||
| 9 | 2013-03-16 Glenn Morris <rgm@gnu.org> | ||
| 10 | |||
| 11 | * Version 24.3 released. | ||
| 12 | |||
| 1 | 2013-02-08 Stefan Monnier <monnier@iro.umontreal.ca> | 13 | 2013-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 @@ | |||
| 1 | 2013-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 | |||
| 7 | 2013-03-16 Glenn Morris <rgm@gnu.org> | ||
| 8 | |||
| 9 | * Version 24.3 released. | ||
| 10 | |||
| 1 | 2013-03-13 Paul Eggert <eggert@cs.ucla.edu> | 11 | 2013-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 | ||
| 5187 | 1997-05-22 Francesco Potortì <F.Potorti@cnuce.cnr.it> | 5197 | 1997-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 @@ | |||
| 1 | 2013-03-16 Leo Liu <sdl.web@gmail.com> | ||
| 2 | |||
| 3 | * progmodes/scheme.el: Add indentation and font-locking for λ. | ||
| 4 | (Bug#13975) | ||
| 5 | |||
| 6 | 2013-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 | |||
| 11 | 2013-03-16 Leo Liu <sdl.web@gmail.com> | ||
| 12 | |||
| 13 | * thingatpt.el (end-of-sexp): Fix bug#13952. Use syntax-after. | ||
| 14 | |||
| 15 | 2013-03-16 Glenn Morris <rgm@gnu.org> | ||
| 16 | |||
| 17 | * Version 24.3 released. | ||
| 18 | |||
| 1 | 2013-03-16 Eli Zaretskii <eliz@gnu.org> | 19 | 2013-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 | ||
| 592 | 2013-03-16 Fabián Ezequiel Gallina <fgallina@cuca> | ||
| 593 | |||
| 594 | * progmodes/python.el (python-info-current-defun): | ||
| 595 | Enhance match-data cluttering prevention. | ||
| 596 | |||
| 574 | 2013-02-22 Michael Albinus <michael.albinus@gmx.de> | 597 | 2013-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) |