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

View File

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

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>
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
Emacs is the extensible, customizable, self-documenting real-time
display editor. This Info file describes how to edit with Emacs and
display editor. This manual describes how to edit with Emacs and
some of the ways to customize it; it corresponds to GNU Emacs version
@value{EMACSVER}.
@ifset WWW_GNU_ORG
@html
The homepage for GNU Emacs is at
<a href="/software/emacs/">http://www.gnu.org/software/emacs/</a>.<br>
To view this manual in other formats, click
<a href="/software/emacs/manual/emacs.html">here</a>.<br>
You can also purchase a printed copy from the
<a href="http://shop.fsf.org/product/emacs-manual/">FSF store</a>.
@end html
@end ifset
@ifinfo
If you are reading this in Emacs, type @kbd{h} to read a basic
introduction to the Info documentation system.

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>
* 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.
@sp 1
Edition @value{edition-number}, @value{update-date}
@ifset WWW_GNU_ORG
@html
<p>The homepage for GNU Emacs is at
<a href="http://www.gnu.org/software/emacs/">http://www.gnu.org/software/emacs/</a>.
<br>To view this manual in other formats, click
<a href="/software/emacs/emacs-lisp-intro/emacs-lisp-intro.html">here</a>.
@end html
@end ifset
@sp 1
Copyright @copyright{} 1990--1995, 1997, 2001--2013 Free Software
Foundation, Inc.

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>
* 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}
@end ifnottex
corresponding to Emacs version @value{EMACSVER}.
@ifset WWW_GNU_ORG
@html
<p>The homepage for GNU Emacs is at
<a href="/software/emacs/">http://www.gnu.org/software/emacs/</a>.<br>
For information on using Emacs, refer to
the <a href="/software/emacs/manual/html_node/emacs/index.html">Emacs
Manual</a>.<br> To view this manual in other formats,
click <a href="/software/emacs/manual/elisp.html">here</a>.
@end html
@end ifset
Copyright @copyright{} 1990--1996, 1998--2013 Free Software Foundation, Inc.

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>
* 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)
(eval-when-compile
(require 'cl-lib)
(defconst latin-ltx--mark-map
'(("DOT BELOW" . "d")
("DOT ABOVE" . ".")
("OGONEK" . "k")
("CEDILLA" . "c")
("CARON" . "v")
;; ("HOOK ABOVE" . ??)
("MACRON" . "=")
("BREVE" . "u")
("TILDE" . "~")
("GRAVE" . "`")
("CIRCUMFLEX" . "^")
("DIAERESIS" . "\"")
("DOUBLE ACUTE" . "H")
("ACUTE" . "'")))
(defconst latin-ltx--mark-re (regexp-opt (mapcar #'car latin-ltx--mark-map)))
(defun latin-ltx--ascii-p (char)
(and (characterp char) (< char 128)))
@ -53,7 +73,8 @@ system, including many technical ones. Examples:
(pcase rule
(`(,_ ,(pred characterp)) (push rule newrules)) ;; Normal quail rule.
(`(,seq ,re)
(let ((count 0))
(let ((count 0)
(re (eval re t)))
(dolist (pair (ucs-names))
(let ((name (car pair))
(char (cdr pair)))
@ -68,9 +89,27 @@ system, including many technical ones. Examples:
(push (list x char) newrules))
(setq count (1+ count))
(push (list keys char) newrules))))))
;(message "latin-ltx: %d mapping for %S" count re)
;; (message "latin-ltx: %d mappings for %S" count re)
))))
`(quail-define-rules ,@(nreverse (delete-dups newrules))))))
(setq newrules (delete-dups newrules))
(let ((rules (copy-sequence newrules)))
(while rules
(let ((rule (pop rules)))
(when (assoc (car rule) rules)
(let ((conflicts (list (cadr rule)))
(tail rules)
c)
(while (setq c (assoc (car rule) tail))
(push (cadr c) conflicts)
(setq tail (cdr (memq c tail)))
(setq rules (delq c rules)))
(message "Conflict for %S: %S"
(car rule) (apply #'string conflicts)))))))
(let ((inputs (mapcar #'car newrules)))
(setq inputs (delete-dups inputs))
(message "latin-ltx: %d rules (+ %d conflicts)!"
(length inputs) (- (length newrules) (length inputs))))
`(quail-define-rules ,@(nreverse newrules)))))
(latin-ltx--define-rules
("!`" )
@ -89,69 +128,35 @@ system, including many technical ones. Examples:
("$^o$" )
("?`" ?¿)
("\\`" )
("\\`{}" ?`)
((lambda (name char)
(let ((c (if (match-end 1)
(downcase (match-string 2 name))
(match-string 2 name))))
(list (format "\\`{%s}" c) (format "\\`%s" c))))
"\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH GRAVE")
(let* ((c (if (match-end 1)
(downcase (match-string 2 name))
(match-string 2 name)))
(mark1 (cdr (assoc (match-string 3 name) latin-ltx--mark-map)))
(mark2 (if (match-end 4)
(cdr (assoc (match-string 4 name) latin-ltx--mark-map))))
(marks (if mark2 (concat mark1 "\\" mark2) mark1)))
(cl-assert mark1)
(cons (format "\\%s{%s}" marks c)
;; Exclude "d" because we use "\\dh" for something else.
(unless (member (or mark2 mark1) '("d"));; "k"
(list (format "\\%s%s" marks c))))))
(concat "\\`LATIN \\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH \\("
latin-ltx--mark-re "\\)\\(?: AND \\("
latin-ltx--mark-re "\\)\\)?\\'"))
("\\'" )
("\\'{}" ?´)
((lambda (name char)
(let ((c (if (match-end 1)
(downcase (match-string 2 name))
(match-string 2 name))))
(list (format "\\'{%s}" c) (format "\\'%s" c))))
"\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH ACUTE")
(let* ((mark (cdr (assoc (match-string 1 name) latin-ltx--mark-map))))
(cl-assert mark)
(list (format "\\%s" mark))))
(concat "\\`COMBINING \\(" latin-ltx--mark-re "\\)\\(?: ACCENT\\)?\\'"))
("\\^" )
("\\^{}" ?^)
((lambda (name char)
(let ((c (if (match-end 1)
(downcase (match-string 2 name))
(match-string 2 name))))
(list (format "\\^{%s}" c) (format "\\^%s" c))))
"\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH CIRCUMFLEX")
("\\~" )
("\\~{}" ?˜)
((lambda (name char)
(let ((c (if (match-end 1)
(downcase (match-string 2 name))
(match-string 2 name))))
(list (format "\\~{%s}" c) (format "\\~%s" c))))
"\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH TILDE")
("\\\"" )
("\\\"{}" )
((lambda (name char)
(let ((c (if (match-end 1)
(downcase (match-string 2 name))
(match-string 2 name))))
(list (format "\\\"{%s}" c) (format "\\\"%s" c))))
"\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH DIAERESIS")
("\\k" )
("\\k{}" ?˛)
((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")
(unless (latin-ltx--ascii-p char)
(let* ((mark (cdr (assoc (match-string 1 name) latin-ltx--mark-map))))
(cl-assert mark)
(list (format "\\%s{}" mark)))))
(concat "\\`\\(?:SPACING \\)?\\(" latin-ltx--mark-re "\\)\\(?: ACCENT\\)?\\'"))
("\\AA" ) ;; ("{\\AA}" ?Å)
("\\AE" ) ;; ("{\\AE}" ?Æ)
@ -166,42 +171,6 @@ system, including many technical ones. Examples:
("$\\div$" ) ("\\div" )
("\\o" ) ;; ("{\\o}" ?ø)
("\\=" )
("\\={}" )
((lambda (name char)
(let ((c (if (match-end 1)
(downcase (match-string 2 name))
(match-string 2 name))))
(list (format "\\={%s}" c) (format "\\=%s" c))))
"\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH MACRON")
("\\u" )
("\\u{}" )
((lambda (name char)
(let ((c (if (match-end 1)
(downcase (match-string 2 name))
(match-string 2 name))))
(list (format "\\u{%s}" c) (format "\\u%s" c))))
"\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH BREVE")
("\\." )
("\\.{}" )
((lambda (name char)
(let ((c (if (match-end 1)
(downcase (match-string 2 name))
(match-string 2 name))))
(list (format "\\.{%s}" c) (format "\\.%s" c))))
"\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH DOT ABOVE")
("\\v" )
("\\v{}" )
((lambda (name char)
(let ((c (if (match-end 1)
(downcase (match-string 2 name))
(match-string 2 name))))
(list (format "\\v{%s}" c) (format "\\v%s" c))))
"\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH CARON")
("\\~{\\i}" )
("\\={\\i}" )
("\\u{\\i}" )
@ -214,12 +183,6 @@ system, including many technical ones. Examples:
("\\H" )
("\\H{}" )
((lambda (name char)
(let ((c (if (match-end 1)
(downcase (match-string 2 name))
(match-string 2 name))))
(list (format "\\H{%s}" c) (format "\\H%s" c))))
"\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH DOUBLE ACUTE")
("\\U{o}" ) ("\\Uo" ) ;; FIXME: Was it just a typo?
("\\OE" ) ;; ("{\\OE}" ?Œ)
@ -248,19 +211,11 @@ system, including many technical ones. Examples:
(string (if (match-end 2) ?^ ?_) basechar))))
"\\(.*\\)SU\\(?:B\\|\\(PER\\)\\)SCRIPT \\(.*\\)")
((lambda (name char)
((lambda (name _char)
(let* ((basename (match-string 2 name))
(lbase (format "LATIN %s LETTER %s"
(match-string 1 name) basename))
(gbase (format "GREEK %s LETTER %s"
(match-string 1 name) basename))
tmp)
(cond
((assoc gbase (ucs-names)) (concat "^\\" (downcase basename)))
((latin-ltx--ascii-p (setq tmp (cdr (assoc lbase (ucs-names)))))
(string ?^ tmp))
(t (message "Unknown modifier letter %s" basename)))))
"MODIFIER LETTER \\(SMALL\\|CAPITAL\\) \\(.*\\)")
(name (if (match-end 1) (capitalize basename) (downcase basename))))
(concat "^" (if (> (length name) 1) "\\") name)))
"\\`MODIFIER LETTER \\(?:SMALL\\|CAPITA\\(L\\)\\) \\([[:ascii:]]+\\)\\'")
;; ((lambda (name char) (format "^%s" (downcase (match-string 1 name))))
;; "\\`MODIFIER LETTER SMALL \\(.\\)\\'")
@ -272,22 +227,14 @@ system, including many technical ones. Examples:
("\\b" )
("\\d" )
;; ("\\d{}" ?) ;; FIXME: can't find the DOT BELOW character.
((lambda (name char)
(let ((c (if (match-end 1)
(downcase (match-string 2 name))
(match-string 2 name))))
(list (format "\\d{%s}" c) ;; (format "\\d%s" c)
)))
"\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH DOT BELOW")
("\\rq" ?)
;; FIXME: Provides some useful entries (yen, euro, copyright, registered,
;; currency, minus, micro), but also a lot of dubious ones.
((lambda (name char)
(unless (latin-ltx--ascii-p char)
(unless (or (latin-ltx--ascii-p char)
;; We prefer COMBINING LONG SOLIDUS OVERLAY for \not.
(member name '("NOT SIGN")))
(concat "\\" (downcase (match-string 1 name)))))
"\\`\\([^- ]+\\) SIGN\\'")
@ -377,7 +324,6 @@ system, including many technical ones. Examples:
("\\circledcirc" ?⊚)
("\\circleddash" ?⊝)
("\\clubsuit" ?♣)
("\\colon" ?:) ;FIXME: Conflict with "COLON SIGN" ₡.
("\\coloneq" ?≔)
("\\complement" ?∁)
("\\cong" ?≅)
@ -400,7 +346,6 @@ system, including many technical ones. Examples:
("\\ddots" ?⋱)
("\\diamond" ?⋄)
("\\diamondsuit" ?♢)
("\\digamma" ?Ϝ)
("\\divideontimes" ?⋇)
("\\doteq" ?≐)
("\\doteqdot" ?≑)

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

View File

@ -1198,7 +1198,7 @@ socket_connection (char *host, int flags)
}
#elif defined HAVE_KRB5_ERROR_E_TEXT
if (err_ret && err_ret->e_text && **err_ret->e_text)
snprintf (pop_error + pop_error_len, ERRMAX - pop_error_len,
snprintf (pop_error + pop_error_len, ERROR_MAX - pop_error_len,
" [server says '%s']", *err_ret->e_text);
#endif
if (err_ret)

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>
* startup.el (command-line-normalize-file-name): Fix handling of
@ -571,6 +589,11 @@
Let-bind `isearch-other-end' to `start', `isearch-forward' to t
and `isearch-error' to nil.
2013-03-16 Fabián Ezequiel Gallina <fgallina@cuca>
* progmodes/python.el (python-info-current-defun):
Enhance match-data cluttering prevention.
2013-02-22 Michael Albinus <michael.albinus@gmx.de>
* net/tramp.el (tramp-tramp-file-p): Fix docstring.

View File

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

View File

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

View File

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