aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2011-08-02 22:05:38 -0700
committerPaul Eggert2011-08-02 22:05:38 -0700
commit9a70f03d70e44db2ec9c6d2952cb8a1deae15000 (patch)
treec0efd5c0a208640c0a883f4566df1b40caa3aaad
parent29c8a348c5c9f326af54a3d30f69cde98fe300bb (diff)
downloademacs-9a70f03d70e44db2ec9c6d2952cb8a1deae15000.tar.gz
emacs-9a70f03d70e44db2ec9c6d2952cb8a1deae15000.zip
Merge from trunk.
-rwxr-xr-xautogen/configure2
-rw-r--r--doc/emacs/ChangeLog5
-rw-r--r--doc/emacs/mini.texi6
-rw-r--r--doc/misc/ChangeLog6
-rw-r--r--doc/misc/trampver.texi2
-rw-r--r--etc/ChangeLog4
-rw-r--r--etc/grammars/README20
-rw-r--r--etc/grammars/bovine-grammar.el438
-rw-r--r--etc/grammars/c.by1202
-rw-r--r--etc/grammars/java-tags.wy750
-rw-r--r--etc/grammars/js.wy526
-rw-r--r--etc/grammars/make.by168
-rw-r--r--etc/grammars/python.wy1132
-rw-r--r--etc/grammars/scheme.by84
-rw-r--r--etc/grammars/wisent-grammar.el361
-rw-r--r--lisp/ChangeLog141
-rw-r--r--lisp/cedet/ChangeLog5
-rw-r--r--lisp/cedet/semantic/bovine/c-by.el3
-rw-r--r--lisp/cedet/semantic/bovine/make-by.el3
-rw-r--r--lisp/cedet/semantic/bovine/scm-by.el3
-rw-r--r--lisp/cedet/semantic/grammar.el2
-rw-r--r--lisp/cedet/semantic/wisent/javat-wy.el3
-rw-r--r--lisp/cedet/semantic/wisent/js-wy.el4
-rw-r--r--lisp/cedet/semantic/wisent/python-wy.el4
-rw-r--r--lisp/cus-edit.el27
-rw-r--r--lisp/dired-aux.el32
-rw-r--r--lisp/dired.el4
-rw-r--r--lisp/emacs-lisp/cl-macs.el1
-rw-r--r--lisp/emacs-lisp/package.el2
-rw-r--r--lisp/gnus/ChangeLog47
-rw-r--r--lisp/gnus/gnus-art.el2
-rw-r--r--lisp/gnus/gnus-sum.el44
-rw-r--r--lisp/gnus/mm-decode.el8
-rw-r--r--lisp/gnus/nnimap.el10
-rw-r--r--lisp/gnus/nnir.el20
-rw-r--r--lisp/gnus/nnmaildir.el3
-rw-r--r--lisp/gnus/spam.el50
-rw-r--r--lisp/gnus/starttls.el17
-rw-r--r--lisp/ido.el3
-rw-r--r--lisp/info.el15
-rw-r--r--lisp/ldefs-boot.el700
-rw-r--r--lisp/mail/sendmail.el6
-rw-r--r--lisp/mail/smtpmail.el2
-rw-r--r--lisp/net/network-stream.el2
-rw-r--r--lisp/net/rcirc.el3
-rw-r--r--lisp/net/trampver.el4
-rw-r--r--lisp/org/ChangeLog5
-rw-r--r--lisp/org/ob.el2
-rw-r--r--lisp/progmodes/sh-script.el64
-rw-r--r--lisp/window.el24
-rw-r--r--src/ChangeLog53
-rw-r--r--src/bidi.c44
-rw-r--r--src/chartab.c2
-rw-r--r--src/dispextern.h5
-rw-r--r--src/image.c10
-rw-r--r--src/keymap.c21
-rw-r--r--src/lisp.h1
-rw-r--r--src/regex.c7
-rw-r--r--src/w32term.c16
-rw-r--r--src/xdisp.c111
60 files changed, 5623 insertions, 618 deletions
diff --git a/autogen/configure b/autogen/configure
index ec0764613f1..074850731b0 100755
--- a/autogen/configure
+++ b/autogen/configure
@@ -10240,7 +10240,7 @@ fi
10240 10240
10241### Use -lrsvg-2 if available, unless `--with-rsvg=no' is specified. 10241### Use -lrsvg-2 if available, unless `--with-rsvg=no' is specified.
10242HAVE_RSVG=no 10242HAVE_RSVG=no
10243if test "${HAVE_X11}" = "yes" || test "${NS_IMPL_GNUSTEP}" = "yes"; then 10243if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes"; then
10244 if test "${with_rsvg}" != "no"; then 10244 if test "${with_rsvg}" != "no"; then
10245 RSVG_REQUIRED=2.11.0 10245 RSVG_REQUIRED=2.11.0
10246 RSVG_MODULE="librsvg-2.0 >= $RSVG_REQUIRED" 10246 RSVG_MODULE="librsvg-2.0 >= $RSVG_REQUIRED"
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 794771e24d3..8e5efc4f87d 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,8 @@
12011-07-30 Michael Albinus <michael.albinus@gmx.de>
2
3 * mini.texi (Minibuffer File): Insert a reference to Tramp for
4 remote file name completion. (Bug#9197)
5
12011-07-28 Eli Zaretskii <eliz@gnu.org> 62011-07-28 Eli Zaretskii <eliz@gnu.org>
2 7
3 * mule.texi (Bidirectional Editing): Document the fact that 8 * mule.texi (Bidirectional Editing): Document the fact that
diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi
index ce0d396fd0d..da1e88ab331 100644
--- a/doc/emacs/mini.texi
+++ b/doc/emacs/mini.texi
@@ -125,6 +125,10 @@ file names, change the variable @code{insert-default-directory} to
125Nonetheless, relative file name arguments are still interpreted based 125Nonetheless, relative file name arguments are still interpreted based
126on the same default directory. 126on the same default directory.
127 127
128 For rules how to read remote file names in the minibuffer, see
129@ref{Filename completion, file name completion,, tramp}, in the Tramp
130manual.
131
128@node Minibuffer Edit 132@node Minibuffer Edit
129@section Editing in the Minibuffer 133@section Editing in the Minibuffer
130 134
@@ -491,7 +495,7 @@ argument (@code{previous-history-element}).
491Move to the next item in the minibuffer history 495Move to the next item in the minibuffer history
492(@code{next-history-element}). 496(@code{next-history-element}).
493@item M-r @var{regexp} @key{RET} 497@item M-r @var{regexp} @key{RET}
494Move to an earlier item in the minibuffer history that 498Move to an earlier item in the minibuffer history that
495matches @var{regexp} (@code{previous-matching-history-element}). 499matches @var{regexp} (@code{previous-matching-history-element}).
496@item M-s @var{regexp} @key{RET} 500@item M-s @var{regexp} @key{RET}
497Move to a later item in the minibuffer history that matches 501Move to a later item in the minibuffer history that matches
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 75e39104dcb..967f457f3c4 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,9 @@
12011-07-30 Michael Albinus <michael.albinus@gmx.de>
2
3 Sync with Tramp 2.2.2.
4
5 * trampver.texi: Update release number.
6
12011-07-28 Bastien Guerry <bzg@gnu.org> 72011-07-28 Bastien Guerry <bzg@gnu.org>
2 8
3 * org.texi (Using the mapping API): mention 'region as a possible 9 * org.texi (Using the mapping API): mention 'region as a possible
diff --git a/doc/misc/trampver.texi b/doc/misc/trampver.texi
index 6a245f9c28d..043217a6c9e 100644
--- a/doc/misc/trampver.texi
+++ b/doc/misc/trampver.texi
@@ -8,7 +8,7 @@
8@c In the Tramp CVS, the version number is auto-frobbed from 8@c In the Tramp CVS, the version number is auto-frobbed from
9@c configure.ac, so you should edit that file and run 9@c configure.ac, so you should edit that file and run
10@c "autoconf && ./configure" to change the version number. 10@c "autoconf && ./configure" to change the version number.
11@set trampver 2.2.2-pre 11@set trampver 2.2.2
12 12
13@c Other flags from configuration 13@c Other flags from configuration
14@set instprefix /usr/local 14@set instprefix /usr/local
diff --git a/etc/ChangeLog b/etc/ChangeLog
index e54e8d81b8a..6d89746ed05 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,7 @@
12011-07-30 Chong Yidong <cyd@stupidchicken.com>
2
3 * grammars: New directory.
4
12011-07-28 Andreas Schwab <schwab@linux-m68k.org> 52011-07-28 Andreas Schwab <schwab@linux-m68k.org>
2 6
3 * NEWS: Document ## and #:. 7 * NEWS: Document ## and #:.
diff --git a/etc/grammars/README b/etc/grammars/README
new file mode 100644
index 00000000000..c8328bbc885
--- /dev/null
+++ b/etc/grammars/README
@@ -0,0 +1,20 @@
1This directory contains grammar files in Bison and Wisent, used to
2generate the parser data in the lisp/semantic/bovine/ and
3lisp/semantic/wisent/ directories. You can run the parser generators
4with
5
6emacs -batch --no-site-file -l bovine-grammar.el -f semantic-mode \
7 -f semantic-grammar-batch-build-packages *.by
8
9emacs -batch --no-site-file -l wisent-grammar.el -f semantic-mode \
10 -f semantic-grammar-batch-build-packages *.wy
11
12The output files were subsequently edited by hand to fix copyright
13headers, variable names (to follow library name conventions), and
14feature names. These changes do not alter the code logic, and can be
15viewed by diffing to the files in lisp/semantic/bovine/ and
16lisp/semantic/wisent/.
17
18Currently, the parser files in lisp/ are not generated directly from
19these grammar files when making Emacs. This state of affairs, and the
20contents of this directory, will change in a future version of Emacs.
diff --git a/etc/grammars/bovine-grammar.el b/etc/grammars/bovine-grammar.el
new file mode 100644
index 00000000000..5a948608671
--- /dev/null
+++ b/etc/grammars/bovine-grammar.el
@@ -0,0 +1,438 @@
1;;; bovine-grammar.el --- Bovine's input grammar mode
2;;
3;; Copyright (C) 2002-2011 Free Software Foundation, Inc.
4;;
5;; Author: David Ponce <david@dponce.com>
6;; Maintainer: David Ponce <david@dponce.com>
7;; Created: 26 Aug 2002
8;; Keywords: syntax
9
10;; This file is part of GNU Emacs.
11
12;; GNU Emacs is free software: you can redistribute it and/or modify
13;; it under the terms of the GNU General Public License as published by
14;; the Free Software Foundation, either version 3 of the License, or
15;; (at your option) any later version.
16
17;; GNU Emacs is distributed in the hope that it will be useful,
18;; but WITHOUT ANY WARRANTY; without even the implied warranty of
19;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20;; GNU General Public License for more details.
21
22;; You should have received a copy of the GNU General Public License
23;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
24
25;;; Commentary:
26;;
27;; Major mode for editing Bovine's input grammar (.by) files.
28
29;;; History:
30
31;;; Code:
32(require 'semantic)
33(require 'semantic/grammar)
34(require 'semantic/find)
35(require 'semantic/lex)
36(require 'semantic/wisent)
37(require 'semantic/bovine)
38
39(defun bovine-grammar-EXPAND (bounds nonterm)
40 "Expand call to EXPAND grammar macro.
41Return the form to parse from within a nonterminal between BOUNDS.
42NONTERM is the nonterminal symbol to start with."
43 `(semantic-bovinate-from-nonterminal
44 (car ,bounds) (cdr ,bounds) ',nonterm))
45
46(defun bovine-grammar-EXPANDFULL (bounds nonterm)
47 "Expand call to EXPANDFULL grammar macro.
48Return the form to recursively parse the area between BOUNDS.
49NONTERM is the nonterminal symbol to start with."
50 `(semantic-parse-region
51 (car ,bounds) (cdr ,bounds) ',nonterm 1))
52
53(defun bovine-grammar-TAG (name class &rest attributes)
54 "Expand call to TAG grammar macro.
55Return the form to create a generic semantic tag.
56See the function `semantic-tag' for the meaning of arguments NAME,
57CLASS and ATTRIBUTES."
58 `(semantic-tag ,name ,class ,@attributes))
59
60(defun bovine-grammar-VARIABLE-TAG (name type default-value &rest attributes)
61 "Expand call to VARIABLE-TAG grammar macro.
62Return the form to create a semantic tag of class variable.
63See the function `semantic-tag-new-variable' for the meaning of
64arguments NAME, TYPE, DEFAULT-VALUE and ATTRIBUTES."
65 `(semantic-tag-new-variable ,name ,type ,default-value ,@attributes))
66
67(defun bovine-grammar-FUNCTION-TAG (name type arg-list &rest attributes)
68 "Expand call to FUNCTION-TAG grammar macro.
69Return the form to create a semantic tag of class function.
70See the function `semantic-tag-new-function' for the meaning of
71arguments NAME, TYPE, ARG-LIST and ATTRIBUTES."
72 `(semantic-tag-new-function ,name ,type ,arg-list ,@attributes))
73
74(defun bovine-grammar-TYPE-TAG (name type members parents &rest attributes)
75 "Expand call to TYPE-TAG grammar macro.
76Return the form to create a semantic tag of class type.
77See the function `semantic-tag-new-type' for the meaning of arguments
78NAME, TYPE, MEMBERS, PARENTS and ATTRIBUTES."
79 `(semantic-tag-new-type ,name ,type ,members ,parents ,@attributes))
80
81(defun bovine-grammar-INCLUDE-TAG (name system-flag &rest attributes)
82 "Expand call to INCLUDE-TAG grammar macro.
83Return the form to create a semantic tag of class include.
84See the function `semantic-tag-new-include' for the meaning of
85arguments NAME, SYSTEM-FLAG and ATTRIBUTES."
86 `(semantic-tag-new-include ,name ,system-flag ,@attributes))
87
88(defun bovine-grammar-PACKAGE-TAG (name detail &rest attributes)
89 "Expand call to PACKAGE-TAG grammar macro.
90Return the form to create a semantic tag of class package.
91See the function `semantic-tag-new-package' for the meaning of
92arguments NAME, DETAIL and ATTRIBUTES."
93 `(semantic-tag-new-package ,name ,detail ,@attributes))
94
95(defun bovine-grammar-CODE-TAG (name detail &rest attributes)
96 "Expand call to CODE-TAG grammar macro.
97Return the form to create a semantic tag of class code.
98See the function `semantic-tag-new-code' for the meaning of arguments
99NAME, DETAIL and ATTRIBUTES."
100 `(semantic-tag-new-code ,name ,detail ,@attributes))
101
102(defun bovine-grammar-ALIAS-TAG (name aliasclass definition &rest attributes)
103 "Expand call to ALIAS-TAG grammar macro.
104Return the form to create a semantic tag of class alias.
105See the function `semantic-tag-new-alias' for the meaning of arguments
106NAME, ALIASCLASS, DEFINITION and ATTRIBUTES."
107 `(semantic-tag-new-alias ,name ,aliasclass ,definition ,@attributes))
108
109;; Cache of macro definitions currently in use.
110(defvar bovine--grammar-macros nil)
111
112(defun bovine-grammar-expand-form (form quotemode &optional inplace)
113 "Expand FORM into a new one suitable to the bovine parser.
114FORM is a list in which we are substituting.
115Argument QUOTEMODE is non-nil if we are in backquote mode.
116When non-nil, optional argument INPLACE indicates that FORM is being
117expanded from elsewhere."
118 (when (eq (car form) 'quote)
119 (setq form (cdr form))
120 (cond
121 ((and (= (length form) 1) (listp (car form)))
122 (insert "\n(append")
123 (bovine-grammar-expand-form (car form) quotemode nil)
124 (insert ")")
125 (setq form nil inplace nil)
126 )
127 ((and (= (length form) 1) (symbolp (car form)))
128 (insert "\n'" (symbol-name (car form)))
129 (setq form nil inplace nil)
130 )
131 (t
132 (insert "\n(list")
133 (setq inplace t)
134 )))
135 (let ((macro (assq (car form) bovine--grammar-macros))
136 inlist first n q x)
137 (if macro
138 (bovine-grammar-expand-form
139 (apply (cdr macro) (cdr form))
140 quotemode t)
141 (if inplace (insert "\n("))
142 (while form
143 (setq first (car form)
144 form (cdr form))
145 (cond
146 ((eq first nil)
147 (when (and (not inlist) (not inplace))
148 (insert "\n(list")
149 (setq inlist t))
150 (insert " nil")
151 )
152 ((listp first)
153 ;;(let ((fn (and (symbolp (caar form)) (fboundp (caar form)))))
154 (when (and (not inlist) (not inplace))
155 (insert "\n(list")
156 (setq inlist t))
157 ;;(if (and inplace (not fn) (not (eq (caar form) 'EXPAND)))
158 ;; (insert " (append"))
159 (bovine-grammar-expand-form
160 first quotemode t) ;;(and fn (not (eq fn 'quote))))
161 ;;(if (and inplace (not fn) (not (eq (caar form) 'EXPAND)))
162 ;; (insert ")"))
163 ;;)
164 )
165 ((symbolp first)
166 (setq n (symbol-name first) ;the name
167 q quotemode ;implied quote flag
168 x nil) ;expand flag
169 (if (eq (aref n 0) ?,)
170 (if quotemode
171 ;; backquote mode needs the @
172 (if (eq (aref n 1) ?@)
173 (setq n (substring n 2)
174 q nil
175 x t)
176 ;; non backquote mode behaves normally.
177 (setq n (substring n 1)
178 q nil))
179 (setq n (substring n 1)
180 x t)))
181 (if (string= n "")
182 (progn
183 ;; We expand only the next item in place (a list?)
184 ;; A regular inline-list...
185 (bovine-grammar-expand-form (car form) quotemode t)
186 (setq form (cdr form)))
187 (if (and (eq (aref n 0) ?$)
188 ;; Don't expand $ tokens in implied quote mode.
189 ;; This acts like quoting in other symbols.
190 (not q))
191 (progn
192 (cond
193 ((and (not x) (not inlist) (not inplace))
194 (insert "\n(list"))
195 ((and x inlist (not inplace))
196 (insert ")")
197 (setq inlist nil)))
198 (insert "\n(nth " (int-to-string
199 (1- (string-to-number
200 (substring n 1))))
201 " vals)")
202 (and (not x) (not inplace)
203 (setq inlist t)))
204
205 (when (and (not inlist) (not inplace))
206 (insert "\n(list")
207 (setq inlist t))
208 (or (char-equal (char-before) ?\()
209 (insert " "))
210 (insert (if (or inplace (eq first t))
211 "" "'")
212 n))) ;; " "
213 )
214 (t
215 (when (and (not inlist) (not inplace))
216 (insert "\n(list")
217 (setq inlist t))
218 (insert (format "\n%S" first))
219 )
220 ))
221 (if inlist (insert ")"))
222 (if inplace (insert ")")))
223 ))
224
225(defun bovine-grammar-expand-action (textform quotemode)
226 "Expand semantic action string TEXTFORM into Lisp code.
227QUOTEMODE is the mode in which quoted symbols are slurred."
228 (if (string= "" textform)
229 nil
230 (let ((sexp (read textform)))
231 ;; We converted the lambda string into a list. Now write it
232 ;; out as the bovine lambda expression, and do macro-like
233 ;; conversion upon it.
234 (insert "\n")
235 (cond
236 ((eq (car sexp) 'EXPAND)
237 (insert ",(lambda (vals start end)")
238 ;; The EXPAND macro definition is mandatory
239 (bovine-grammar-expand-form
240 (apply (cdr (assq 'EXPAND bovine--grammar-macros)) (cdr sexp))
241 quotemode t)
242 )
243 ((and (listp (car sexp)) (eq (caar sexp) 'EVAL))
244 ;; The user wants to evaluate the following args.
245 ;; Use a simpler expander
246 )
247 (t
248 (insert ",(semantic-lambda")
249 (bovine-grammar-expand-form sexp quotemode)
250 ))
251 (insert ")\n")))
252)
253
254(defun bovine-grammar-parsetable-builder ()
255 "Return the parser table expression as a string value.
256The format of a bovine parser table is:
257
258 ( ( NONTERMINAL-SYMBOL1 MATCH-LIST1 )
259 ( NONTERMINAL-SYMBOL2 MATCH-LIST2 )
260 ...
261 ( NONTERMINAL-SYMBOLn MATCH-LISTn )
262
263Where each NONTERMINAL-SYMBOL is an artificial symbol which can appear
264in any child state. As a starting place, one of the NONTERMINAL-SYMBOLS
265must be `bovine-toplevel'.
266
267A MATCH-LIST is a list of possible matches of the form:
268
269 ( STATE-LIST1
270 STATE-LIST2
271 ...
272 STATE-LISTN )
273
274where STATE-LIST is of the form:
275 ( TYPE1 [ \"VALUE1\" ] TYPE2 [ \"VALUE2\" ] ... LAMBDA )
276
277where TYPE is one of the returned types of the token stream.
278VALUE is a value, or range of values to match against. For
279example, a SYMBOL might need to match \"foo\". Some TYPES will not
280have matching criteria.
281
282LAMBDA is a lambda expression which is evaled with the text of the
283type when it is found. It is passed the list of all buffer text
284elements found since the last lambda expression. It should return a
285semantic element (see below.)
286
287For consistency between languages, try to use common return values
288from your parser. Please reference the chapter \"Writing Parsers\" in
289the \"Language Support Developer's Guide -\" in the semantic texinfo
290manual."
291 (let* ((start (semantic-grammar-start))
292 (scopestart (semantic-grammar-scopestart))
293 (quotemode (semantic-grammar-quotemode))
294 (tags (semantic-find-tags-by-class
295 'token (current-buffer)))
296 (nterms (semantic-find-tags-by-class
297 'nonterminal (current-buffer)))
298 ;; Setup the cache of macro definitions.
299 (bovine--grammar-macros (semantic-grammar-macros))
300 nterm rules items item actn prec tag type regex)
301
302 ;; Check some trivial things
303 (cond
304 ((null nterms)
305 (error "Bad input grammar"))
306 (start
307 (if (cdr start)
308 (message "Extra start symbols %S ignored" (cdr start)))
309 (setq start (symbol-name (car start)))
310 (unless (semantic-find-first-tag-by-name start nterms)
311 (error "start symbol `%s' has no rule" start)))
312 (t
313 ;; Default to the first grammar rule.
314 (setq start (semantic-tag-name (car nterms)))))
315 (when scopestart
316 (setq scopestart (symbol-name scopestart))
317 (unless (semantic-find-first-tag-by-name scopestart nterms)
318 (error "scopestart symbol `%s' has no rule" scopestart)))
319
320 ;; Generate the grammar Lisp form.
321 (with-temp-buffer
322 (erase-buffer)
323 (insert "`(")
324 ;; Insert the start/scopestart rules
325 (insert "\n(bovine-toplevel \n("
326 start
327 ")\n) ;; end bovine-toplevel\n")
328 (when scopestart
329 (insert "\n(bovine-inner-scope \n("
330 scopestart
331 ")\n) ;; end bovine-inner-scope\n"))
332 ;; Process each nonterminal
333 (while nterms
334 (setq nterm (car nterms)
335 ;; We can't use the override form because the current buffer
336 ;; is not the originator of the tag.
337 rules (semantic-tag-components-semantic-grammar-mode nterm)
338 nterm (semantic-tag-name nterm)
339 nterms (cdr nterms))
340 (when (member nterm '("bovine-toplevel" "bovine-inner-scope"))
341 (error "`%s' is a reserved internal name" nterm))
342 (insert "\n(" nterm)
343 ;; Process each rule
344 (while rules
345 (setq items (semantic-tag-get-attribute (car rules) :value)
346 prec (semantic-tag-get-attribute (car rules) :prec)
347 actn (semantic-tag-get-attribute (car rules) :expr)
348 rules (cdr rules))
349 ;; Process each item
350 (insert "\n(")
351 (if (null items)
352 ;; EMPTY rule
353 (insert ";;EMPTY" (if actn "" "\n"))
354 ;; Expand items
355 (while items
356 (setq item (car items)
357 items (cdr items))
358 (if (consp item) ;; mid-rule action
359 (message "Mid-rule action %S ignored" item)
360 (or (char-equal (char-before) ?\()
361 (insert "\n"))
362 (cond
363 ((member item '("bovine-toplevel" "bovine-inner-scope"))
364 (error "`%s' is a reserved internal name" item))
365 ;; Replace ITEM by its %token definition.
366 ;; If a '%token TYPE ITEM [REGEX]' definition exists
367 ;; in the grammar, ITEM is replaced by TYPE [REGEX].
368 ((setq tag (semantic-find-first-tag-by-name
369 item tags)
370 type (semantic-tag-get-attribute tag :type))
371 (insert type)
372 (if (setq regex (semantic-tag-get-attribute tag :value))
373 (insert (format "\n%S" regex))))
374 ;; Don't change ITEM
375 (t
376 (insert (semantic-grammar-item-text item)))
377 ))))
378 (if prec
379 (message "%%prec %S ignored" prec))
380 (if actn
381 (bovine-grammar-expand-action actn quotemode))
382 (insert ")"))
383 (insert "\n) ;; end " nterm "\n"))
384 (insert ")\n")
385 (buffer-string))))
386
387(defun bovine-grammar-setupcode-builder ()
388 "Return the text of the setup code."
389 (format
390 "(setq semantic--parse-table %s\n\
391 semantic-debug-parser-source %S\n\
392 semantic-debug-parser-class 'semantic-bovine-debug-parser
393 semantic-flex-keywords-obarray %s\n\
394 %s)"
395 (semantic-grammar-parsetable)
396 (buffer-name)
397 (semantic-grammar-keywordtable)
398 (let ((mode (semantic-grammar-languagemode)))
399 ;; Is there more than one major mode?
400 (if (and (listp mode) (> (length mode) 1))
401 (format "semantic-equivalent-major-modes '%S\n" mode)
402 ""))))
403
404(defvar bovine-grammar-menu
405 '("BY Grammar"
406 )
407 "BY mode specific grammar menu.
408Menu items are appended to the common grammar menu.")
409
410(define-derived-mode bovine-grammar-mode semantic-grammar-mode "BY"
411 "Major mode for editing Bovine grammars."
412 (semantic-grammar-setup-menu bovine-grammar-menu)
413 (semantic-install-function-overrides
414 '((grammar-parsetable-builder . bovine-grammar-parsetable-builder)
415 (grammar-setupcode-builder . bovine-grammar-setupcode-builder)
416 )))
417
418(add-to-list 'auto-mode-alist '("\\.by$" . bovine-grammar-mode))
419
420(defvar-mode-local bovine-grammar-mode semantic-grammar-macros
421 '(
422 (ASSOC . semantic-grammar-ASSOC)
423 (EXPAND . bovine-grammar-EXPAND)
424 (EXPANDFULL . bovine-grammar-EXPANDFULL)
425 (TAG . bovine-grammar-TAG)
426 (VARIABLE-TAG . bovine-grammar-VARIABLE-TAG)
427 (FUNCTION-TAG . bovine-grammar-FUNCTION-TAG)
428 (TYPE-TAG . bovine-grammar-TYPE-TAG)
429 (INCLUDE-TAG . bovine-grammar-INCLUDE-TAG)
430 (PACKAGE-TAG . bovine-grammar-PACKAGE-TAG)
431 (CODE-TAG . bovine-grammar-CODE-TAG)
432 (ALIAS-TAG . bovine-grammar-ALIAS-TAG)
433 )
434 "Semantic grammar macros used in bovine grammars.")
435
436(provide 'semantic/bovine/grammar)
437
438;;; bovine-grammar.el ends here
diff --git a/etc/grammars/c.by b/etc/grammars/c.by
new file mode 100644
index 00000000000..1797827679b
--- /dev/null
+++ b/etc/grammars/c.by
@@ -0,0 +1,1202 @@
1;;; c.by -- LL grammar for C/C++ language specification
2
3;; Copyright (C) 1999-2011 Free Software Foundation, Inc.
4;;
5;; Author: Eric M. Ludlam <zappo@gnu.org>
6;; David Ponce <david@dponce.com>
7;; Klaus Berndl <klaus.berndl@sdm.de>
8;;
9;; This file is part of GNU Emacs.
10
11;; GNU Emacs is free software: you can redistribute it and/or modify
12;; it under the terms of the GNU General Public License as published by
13;; the Free Software Foundation, either version 3 of the License, or
14;; (at your option) any later version.
15
16;; GNU Emacs is distributed in the hope that it will be useful,
17;; but WITHOUT ANY WARRANTY; without even the implied warranty of
18;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19;; GNU General Public License for more details.
20
21;; You should have received a copy of the GNU General Public License
22;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
23
24;; TODO: From Nate Schley
25;; > * Can't parse signature element: "const char* const rmc_ClrTxt"
26;; > * Can't parse signature element: "char* const dellog_ClrTxt"
27;; > * Can't parse signature element: "const char* dellog_SetTxt"
28;; > * Can't parse signature element: "const RmcCmdSSPADetailedStatus& status"
29;; >
30;; > And FWIW I have seen the following argument cases not handled, even
31;; > with no leading/trailing spaces in the split:
32;; >
33;; > * Can't parse signature element: "const bool currentAlarmStatus"
34;; > * Can't parse signature element: "unsigned char mode"
35;; > * Can't parse signature element: "TskTimingTask* tsktimingtask"
36;; > * Can't parse signature element: "unsigned char htrStatus"
37;; > * Can't parse signature element: "char trackPower[]"
38;; > * Can't parse signature element: "const RmcCmdMCDetailedStatus& status"
39;; > * Can't parse signature element: "RmcBucStatus* rftBucStatus"
40
41%package semantic-c-by
42
43%languagemode c-mode c++-mode
44%start declaration
45%scopestart codeblock
46
47%token <punctuation> HASH "\\`[#]\\'"
48%token <punctuation> PERIOD "\\`[.]\\'"
49%token <punctuation> COLON "\\`[:]\\'"
50%token <punctuation> SEMICOLON "\\`[;]\\'"
51%token <punctuation> STAR "\\`[*]\\'"
52%token <punctuation> AMPERSAND "\\`[&]\\'"
53%token <punctuation> DIVIDE "\\`[/]\\'"
54%token <punctuation> PLUS "\\`[+]\\'"
55%token <punctuation> MINUS "\\`[-]\\'"
56%token <punctuation> BANG "\\`[!]\\'"
57%token <punctuation> EQUAL "\\`[=]\\'"
58%token <punctuation> LESS "\\`[<]\\'"
59%token <punctuation> GREATER "\\`[>]\\'"
60%token <punctuation> COMA "\\`[,]\\'"
61%token <punctuation> TILDE "\\`[~]\\'"
62%token <punctuation> MOD "\\`[%]\\'"
63%token <punctuation> HAT "\\`\\^\\'"
64%token <punctuation> OR "\\`[|]\\'"
65%token <string> C "\"C\""
66%token <string> CPP "\"C\\+\\+\""
67%token <number> ZERO "^0$"
68%token <symbol> RESTRICT "\\<\\(__\\)?restrict\\>"
69%token <open-paren> LPAREN "("
70%token <close-paren> RPAREN ")"
71%token <open-paren> LBRACE "{"
72%token <close-paren> RBRACE "}"
73%token <semantic-list> BRACK_BLCK "\\[.*\\]$"
74%token <semantic-list> PAREN_BLCK "^("
75%token <semantic-list> BRACE_BLCK "^{"
76%token <semantic-list> VOID_BLCK "^(void)$"
77%token <semantic-list> PARENS "()"
78%token <semantic-list> BRACKETS "\\[\\]"
79
80%token EXTERN "extern"
81%put EXTERN summary "Declaration Modifier: extern <type> <name> ..."
82%token STATIC "static"
83%put STATIC summary "Declaration Modifier: static <type> <name> ..."
84%token CONST "const"
85%put CONST summary "Declaration Modifier: const <type> <name> ..."
86%token VOLATILE "volatile"
87%put VOLATILE summary "Declaration Modifier: volatile <type> <name> ..."
88%token REGISTER "register"
89%put REGISTER summary "Declaration Modifier: register <type> <name> ..."
90%token SIGNED "signed"
91%put SIGNED summary "Numeric Type Modifier: signed <numeric type> <name> ..."
92%token UNSIGNED "unsigned"
93%put UNSIGNED summary "Numeric Type Modifier: unsigned <numeric type> <name> ..."
94
95%token INLINE "inline"
96%put INLINE summary "Function Modifier: inline <return type> <name>(...) {...};"
97%token VIRTUAL "virtual"
98%put VIRTUAL summary "Method Modifier: virtual <type> <name>(...) ..."
99%token MUTABLE "mutable"
100%put MUTABLE summary "Member Declaration Modifier: mutable <type> <name> ..."
101
102%token STRUCT "struct"
103%put STRUCT summary "Structure Type Declaration: struct [name] { ... };"
104%token UNION "union"
105%put UNION summary "Union Type Declaration: union [name] { ... };"
106%token ENUM "enum"
107%put ENUM summary "Enumeration Type Declaration: enum [name] { ... };"
108%token TYPEDEF "typedef"
109%put TYPEDEF summary "Arbitrary Type Declaration: typedef <typedeclaration> <name>;"
110%token CLASS "class"
111%put CLASS summary "Class Declaration: class <name>[:parents] { ... };"
112%token TYPENAME "typename"
113%put TYPENAME summary "typename is used to handle a qualified name as a typename;"
114%token NAMESPACE "namespace"
115%put NAMESPACE summary "Namespace Declaration: namespace <name> { ... };"
116%token USING "using"
117%put USING summary "using <namespace>;"
118
119%token NEW "new"
120%put NEW summary "new <classname>();"
121%token DELETE "delete"
122%put DELETE summary "delete <object>;"
123
124;; Despite this, this parser can find templates by ignoring the TEMPLATE
125;; keyword, and finding the class/method being templateized.
126%token TEMPLATE "template"
127%put TEMPLATE summary "template <class TYPE ...> TYPE_OR_FUNCTION"
128
129%token THROW "throw"
130%put THROW summary "<type> <methoddef> (<method args>) throw (<exception>) ..."
131%token REENTRANT "reentrant"
132%put REENTRANT summary "<type> <methoddef> (<method args>) reentrant ..."
133%token TRY "try"
134%token CATCH "catch"
135%put { TRY CATCH } summary "try { <body> } catch { <catch code> }"
136
137;; Leave these alone for now.
138%token OPERATOR "operator"
139%token PUBLIC "public"
140%token PRIVATE "private"
141%token PROTECTED "protected"
142%token FRIEND "friend"
143%put FRIEND summary "friend class <CLASSNAME>"
144
145;; These aren't used for parsing, but is a useful place to describe the keywords.
146%token IF "if"
147%token ELSE "else"
148%put {IF ELSE} summary "if (<condition>) { code } [ else { code } ]"
149
150%token DO "do"
151%token WHILE "while"
152%put DO summary " do { code } while (<condition>);"
153%put WHILE summary "do { code } while (<condition>); or while (<condition>) { code };"
154
155%token FOR "for"
156%put FOR summary "for(<init>; <condition>; <increment>) { code }"
157
158%token SWITCH "switch"
159%token CASE "case"
160%token DEFAULT "default"
161%put {SWITCH CASE DEFAULT} summary
162"switch (<variable>) { case <constvalue>: code; ... default: code; }"
163
164%token RETURN "return"
165%put RETURN summary "return <value>;"
166
167%token BREAK "break"
168%put BREAK summary "Non-local exit within a loop or switch (for, do/while, switch): break;"
169%token CONTINUE "continue"
170%put CONTINUE summary "Non-local continue within a loop (for, do/while): continue;"
171
172%token SIZEOF "sizeof"
173%put SIZEOF summary "Compile time macro: sizeof(<type or variable>) // size in bytes"
174
175;; Types
176%token VOID "void"
177%put VOID summary "Built in typeless type: void"
178%token CHAR "char"
179%put CHAR summary "Integral Character Type: (0 to 256)"
180%token WCHAR "wchar_t"
181%put WCHAR summary "Wide Character Type"
182%token SHORT "short"
183%put SHORT summary "Integral Primitive Type: (-32768 to 32767)"
184%token INT "int"
185%put INT summary "Integral Primitive Type: (-2147483648 to 2147483647)"
186%token LONG "long"
187%put LONG summary "Integral primitive type (-9223372036854775808 to 9223372036854775807)"
188%token FLOAT "float"
189%put FLOAT summary "Primitive floating-point type (single-precision 32-bit IEEE 754)"
190%token DOUBLE "double"
191%put DOUBLE summary "Primitive floating-point type (double-precision 64-bit IEEE 754)"
192%token BOOL "bool"
193%put BOOL summary "Primitive boolean type"
194
195%token UNDERP "_P"
196%token UNDERUNDERP "__P"
197%put UNDERP summary "Common macro to eliminate prototype compatibility on some compilers"
198%put UNDERUNDERP summary "Common macro to eliminate prototype compatibility on some compilers"
199
200%%
201
202declaration
203 : macro
204 | type
205 ;; TODO: Klaus Berndl: Is the define here necessary or even wrong?
206 ;; Is this part not already covered by macro??
207 | define
208 | var-or-fun
209 | extern-c
210 | template
211 | using
212 ;
213
214codeblock
215 : define
216 | codeblock-var-or-fun
217 | type ;; type is less likely to be used here.
218 | using
219 ;
220
221extern-c-contents
222 : open-paren
223 ( nil )
224 | declaration
225 | close-paren
226 ( nil )
227 ;
228
229extern-c
230 : EXTERN C semantic-list
231 ;; Extern C commands which contain a list need to have the
232 ;; entries of the list extracted, and spliced into the main
233 ;; list of entries. This must be done via the function
234 ;; that expands singular nonterminals, such as int x,y;
235 (TAG "C" 'extern :members (EXPANDFULL $3 extern-c-contents) )
236 | EXTERN CPP semantic-list
237 (TAG "C" 'extern :members (EXPANDFULL $3 extern-c-contents) )
238 | EXTERN C
239 ;; A plain extern "C" call should add something to the token,
240 ;; but just strip it from the buffer here for now.
241 ( nil )
242 | EXTERN CPP
243 ( nil )
244 ;
245
246macro
247 : spp-macro-def
248 (VARIABLE-TAG $1 nil nil :constant-flag t )
249 | spp-system-include
250 (INCLUDE-TAG $1 t)
251 | spp-include
252 (INCLUDE-TAG $1 nil)
253 ;
254
255;; This is used in struct parts.
256define
257 : spp-macro-def
258 (VARIABLE-TAG $1 nil nil :constant-flag t)
259 | spp-macro-undef
260 ( nil )
261 ;
262
263;; In C++, structures can have the same things as classes.
264;; So delete this somday in the figure.
265;;
266;;structparts : semantic-list
267;; (EXPANDFULL $1 structsubparts)
268;; ;
269;;
270;;structsubparts : LBRACE
271;; ( nil )
272;; | RBRACE
273;; ( nil )
274;; | var-or-fun
275;; | define
276;; ;; sometimes there are defines in structs.
277;; ;
278
279unionparts
280 : semantic-list
281 (EXPANDFULL $1 classsubparts)
282 ;
283
284opt-symbol
285 : symbol
286 | ;;EMPTY
287 ;
288
289;; @todo - support 'friend' construct.
290classsubparts
291 : LBRACE
292 ( nil )
293 | RBRACE
294 ( nil )
295 | class-protection opt-symbol COLON
296 ;; For QT, they may put a `slot' keyword between the protection
297 ;; and the COLON. @todo - Have the QT stuff use macros.
298 (TAG (car $1) 'label)
299 | var-or-fun
300 | FRIEND func-decl
301 (TAG (car $2) 'friend)
302 | FRIEND CLASS symbol
303 (TAG $3 'friend)
304 | type
305 | define
306 | template
307 | ;;EMPTY
308 ;
309
310opt-class-parents
311 : COLON class-parents opt-template-specifier
312 ( $2 )
313 | ;;EMPTY
314 ( )
315 ;
316
317one-class-parent
318 : opt-class-protection opt-class-declmods namespace-symbol
319 (TYPE-TAG (car $3) "class" nil nil :protection (car $1))
320 | opt-class-declmods opt-class-protection namespace-symbol
321 (TYPE-TAG (car $3) "class" nil nil :protection (car $2))
322 ;
323
324class-parents
325 : one-class-parent COMA class-parents
326 ( ,(cons ,$1 $3 ) )
327 | one-class-parent
328 ( $1 )
329 ;
330
331opt-class-declmods
332 : class-declmods opt-class-declmods
333 ( nil )
334 | ;;EMPTY
335 ;
336
337class-declmods
338 : VIRTUAL
339 ;
340
341class-protection
342 : PUBLIC
343 | PRIVATE
344 | PROTECTED
345 ;
346
347opt-class-protection
348 : class-protection
349 ( ,$1 )
350 | ;;EMPTY - Same as private
351 ( "unspecified" )
352 ;
353
354namespaceparts
355 : semantic-list
356 (EXPANDFULL $1 namespacesubparts)
357 ;
358
359namespacesubparts
360 : LBRACE
361 ( nil )
362 | RBRACE
363 ( nil )
364 | type
365 | var-or-fun
366 | define
367 | class-protection COLON
368 (TAG (car $1) 'label)
369 ;; In C++, this label in a classsubpart represents
370 ;; PUBLIC or PRIVATE bits. Ignore them for now.
371 | template
372 | using
373 | ;;EMPTY
374 ;
375
376enumparts
377 : semantic-list
378 (EXPANDFULL $1 enumsubparts)
379 ;
380
381enumsubparts
382 : symbol opt-assign
383 (VARIABLE-TAG $1 "int" (car $2) :constant-flag t )
384 | LBRACE
385 ( nil )
386 | RBRACE
387 ( nil )
388 | COMA
389 ( nil )
390 ;
391
392opt-name
393 : symbol
394 | ;;EMPTY
395 ( "" )
396 ;
397
398typesimple
399 : struct-or-class opt-class opt-name opt-template-specifier
400 opt-class-parents semantic-list
401 (TYPE-TAG (car $3) (car $1)
402 (let ((semantic-c-classname (cons (car ,$3) (car ,$1))))
403 (EXPANDFULL $6 classsubparts))
404 $5
405 :template-specifier $4
406 :parent (car ,$2))
407 | struct-or-class opt-class opt-name opt-template-specifier
408 opt-class-parents
409 (TYPE-TAG (car $3) (car $1) nil $5
410 :template-specifier $4
411 :prototype t
412 :parent (car ,$2))
413 | UNION opt-class opt-name unionparts
414 (TYPE-TAG (car $3) $1 $4 nil
415 :parent (car ,$2))
416 | ENUM opt-class opt-name enumparts
417 (TYPE-TAG (car $3) $1 $4 nil
418 :parent (car ,$2))
419 ;; Klaus Berndl: a typedef can be a typeformbase with all this
420 ;; declmods stuff.
421 | TYPEDEF declmods typeformbase cv-declmods typedef-symbol-list
422 ;;;; We put the type this typedef renames into PARENT
423 ;;;; but will move it in the expand function.
424 (TYPE-TAG $5 $1 nil (list $3) )
425 ;
426
427typedef-symbol-list
428 : typedefname COMA typedef-symbol-list
429 ( ,(cons $1 $3) )
430 | typedefname
431 ( $1 )
432 ;
433
434;; TODO: Klaus Berndl: symbol -> namespace-symbol?! Answer: Probably
435;; symbol is correct here!
436typedefname
437 : opt-stars symbol opt-bits opt-array
438 ( $1 $2 )
439 ;
440
441struct-or-class
442 : STRUCT
443 | CLASS
444 ;
445
446type
447 : typesimple SEMICOLON
448 ( ,$1 )
449 ;; named namespaces like "namespace XXX {"
450 | NAMESPACE symbol namespaceparts
451 (TYPE-TAG $2 $1 $3 nil )
452 ;; unnamed namespaces like "namespace {"
453 | NAMESPACE namespaceparts
454 (TYPE-TAG "unnamed" $1 $2 nil )
455 ;; David Engster: namespace alias like "namespace foo = bar;"
456 | NAMESPACE symbol EQUAL typeformbase SEMICOLON
457 (TYPE-TAG $2 $1 (list (TYPE-TAG (car $4) $1 nil nil)) nil :kind 'alias )
458 ;
459
460;; Klaus Berndl: We must parse "using namespace XXX" too
461
462;; Using is vaguely like an include statement in the named portions
463;; of the code. We should probably specify a new token type for this.
464
465using
466 : USING usingname SEMICOLON
467 (TAG (car $2) 'using :type ,$2 )
468 ;
469
470;; Jan Moringen: Differentiate between 'using' and 'using namespace'
471;; Adapted to creating type tags by EML.
472usingname
473 : typeformbase
474 (TYPE-TAG (car $1) "class" nil nil :prototype t)
475 | NAMESPACE typeformbase
476 (TYPE-TAG (car $2) "namespace" nil nil :prototype t)
477 ;
478
479template
480 : TEMPLATE template-specifier opt-friend template-definition
481 ( ,(semantic-c-reconstitute-template $4 ,$2) )
482 ;
483
484opt-friend
485 : FRIEND
486 | ;;EMPTY
487 ;
488
489opt-template-specifier
490 : template-specifier
491 ( ,$1 )
492 | ;;EMPTY
493 ( )
494 ;
495
496template-specifier
497 : LESS template-specifier-types GREATER
498 ( ,$2 )
499 ;
500
501template-specifier-types
502 : template-var template-specifier-type-list
503 ( ,(cons ,$1 ,$2 ) )
504 | ;;EMPTY
505 ;
506
507template-specifier-type-list
508 : COMA template-specifier-types
509 ( ,$2 )
510 | ;;EMPTY
511 ( )
512 ;
513
514;; template-var
515;; : template-type opt-stars opt-template-equal
516;; ( ,(cons (concat (car $1) (make-string (car ,$2) ?*))
517;; (cdr $1)))
518;; ;; Klaus Berndl: for template-types the template-var can also be
519;; ;; literals or constants. Example: map<ClassX, ClassY, 10>
520;; ;; map_size10_var; This parses also template<class T, 0> which is
521;; ;; nonsense but who cares....
522;; | string
523;; ( $1 )
524;; | number
525;; ( $1 )
526;; ;
527
528template-var
529 :
530 ;; Klaus Berndl: The following handles all template-vars of
531 ;; template-definitions
532 template-type opt-template-equal
533 ( ,(cons (car $1) (cdr $1)) )
534 ;; Klaus Berndl: for template-types the template-var can also be
535 ;; literals or constants.
536 ;; Example: map<ClassX, ClassY, 10> map_size10_var; This parses also
537 ;; template<class T, 0> which is nonsense but who cares....
538 | string
539 ( $1 )
540 | number
541 ( $1 )
542 ;; Klaus Berndl: In template-types arguments can be any symbols with
543 ;; optional address-operator (&) and optional dereferencing operator
544 ;; (*). Example map<ClassX, ClassY, *size_var_ptr> sized_map_var.
545 | opt-stars opt-ref namespace-symbol
546 ( ,$3 )
547 ;; Some code can compile down into a number, but starts out as an
548 ;; expression, such as "sizeof(a)", or (sizeof(a)/sizeof(b))
549 | semantic-list
550 ( $1 )
551 | SIZEOF semantic-list
552 ( $2 )
553 ;
554
555opt-template-equal
556 : EQUAL symbol LESS template-specifier-types GREATER
557 ( $2 )
558 | EQUAL symbol
559 ( $2 )
560 | ;;EMPTY
561 ( )
562 ;
563
564template-type
565 : CLASS symbol
566 (TYPE-TAG $2 "class" nil nil )
567 | STRUCT symbol
568 (TYPE-TAG $2 "struct" nil nil )
569 ;; TODO: Klaus Berndl: For the moment is is ok, that we parse the C++
570 ;; keyword typename as a class....
571 | TYPENAME symbol
572 (TYPE-TAG $2 "class" nil nil)
573 ;; Klaus Berndl: template-types can be all flavors of variable-args
574 ;; but here the argument is ignored, only the type stuff is needed.
575 | declmods typeformbase cv-declmods opt-stars
576 opt-ref variablearg-opt-name
577 (TYPE-TAG (car $2) nil nil nil
578 :constant-flag (if (member "const" (append $1 $3)) t nil)
579 :typemodifiers (delete "const" (append $1 $3))
580 :reference (car ,$5)
581 :pointer (car $4)
582 )
583 ;
584
585template-definition
586 : type
587 ( ,$1 )
588 | var-or-fun
589 ( ,$1 )
590 ;
591
592opt-stars
593 : STAR opt-starmod opt-stars
594 ( (1+ (car $3)) )
595 | ;;EMPTY
596 ( 0 )
597 ;
598
599opt-starmod
600 : STARMOD opt-starmod
601 ( ,(cons (,car ,$1) $2) )
602 | ;;EMPTY
603 ()
604 ;
605
606STARMOD
607 : CONST
608 ;
609
610declmods
611 : DECLMOD declmods
612 ( ,(cons ,(car ,$1) $2 ) )
613 | DECLMOD
614 ( ,$1 )
615 | ;;EMPTY
616 ()
617 ;
618
619DECLMOD
620 : EXTERN
621 | STATIC
622 | CVDECLMOD
623 ;; Klaus Berndl: IMHO signed and unsigned are not decl-modes but
624 ;; these are only valid for some buildin-types like short, int
625 ;; etc... whereas "real" declmods are valid for all types, buildin
626 ;; and user-defined! SIGNED UNSIGNED
627 | INLINE
628 | REGISTER
629 | FRIEND
630 ;; Klaus Berndl: There can be a few cases where TYPENAME is not
631 ;; allowed in C++-syntax but better than not recognizing the allowed
632 ;; situations.
633 | TYPENAME
634 | METADECLMOD
635 ;; This is a hack in case we are in a class.
636 | VIRTUAL
637 ;
638
639metadeclmod
640 : METADECLMOD
641 ()
642 | ;;EMPTY
643 ()
644 ;
645
646CVDECLMOD
647 : CONST
648 | VOLATILE
649 ;
650
651cv-declmods
652 : CVDECLMOD cv-declmods
653 ( ,(cons ,(car ,$1) $2 ) )
654 | CVDECLMOD
655 ( ,$1 )
656 | ;;EMPTY
657 ()
658 ;
659
660METADECLMOD
661 : VIRTUAL
662 | MUTABLE
663 ;
664
665;; C++: A type can be modified into a reference by "&"
666opt-ref
667 : AMPERSAND
668 ( 1 )
669 | ;;EMPTY
670 ( 0 )
671 ;
672
673typeformbase
674 : typesimple
675 ( ,$1 )
676 | STRUCT symbol
677 (TYPE-TAG $2 $1 nil nil )
678 | UNION symbol
679 (TYPE-TAG $2 $1 nil nil )
680 | ENUM symbol
681 (TYPE-TAG $2 $1 nil nil )
682 | builtintype
683 ( ,$1 )
684 | symbol template-specifier
685 (TYPE-TAG $1 "class" nil nil :template-specifier $2)
686 ;;| namespace-symbol opt-stars opt-template-specifier
687 ;;| namespace-symbol opt-template-specifier
688 | namespace-symbol-for-typeformbase opt-template-specifier
689 (TYPE-TAG (car $1) "class" nil nil
690 :template-specifier $2)
691 | symbol
692 ( $1 )
693 ;
694
695signedmod
696 : UNSIGNED
697 | SIGNED
698 ;
699
700;; Klaus Berndl: builtintype-types was builtintype
701builtintype-types
702 : VOID
703 | CHAR
704 ;; Klaus Berndl: Added WCHAR
705 | WCHAR
706 | SHORT INT
707 ( (concat $1 " " $2) )
708 | SHORT
709 | INT
710 | LONG INT
711 ( (concat $1 " " $2) )
712 | FLOAT
713 | DOUBLE
714 | BOOL
715 | LONG DOUBLE
716 ( (concat $1 " " $2) )
717 ;; TODO: Klaus Berndl: Is there a long long, i think so?!
718 | LONG LONG
719 ( (concat $1 " " $2) )
720 | LONG
721 ;
722
723builtintype
724 : signedmod builtintype-types
725 ( (concat (car $1) " " (car $2)) )
726 | builtintype-types
727 ( ,$1 )
728 ;; Klaus Berndl: unsigned is synonym for unsigned int and signed for
729 ;; signed int. To make this confusing stuff clear we add here the
730 ;; int.
731 | signedmod
732 ( (concat (car $1) " int") )
733 ;
734
735;; Klaus Berndl: This parses also nonsense like "const volatile int
736;; const volatile const const volatile a ..." but IMHO nobody writes
737;; such code. Normaly we shoud define a rule like typeformbase-mode
738;; which exactly defines the different allowed cases and combinations
739;; of declmods (minus the CVDECLMOD) typeformbase and cv-declmods so
740;; we could recognize more invalid code but IMHO this is not worth the
741;; effort...
742codeblock-var-or-fun
743 : declmods typeformbase declmods
744 opt-ref var-or-func-decl
745 ( ,(semantic-c-reconstitute-token ,$5 $1 $2 ) )
746 ;
747
748var-or-fun
749 : codeblock-var-or-fun
750 ( ,$1 )
751 ;; it is possible for a function to not have a type, and
752 ;; it is then assumed to be an int. How annoying.
753 ;; In C++, this could be a constructor or a destructor.
754 ;; Even more annoying. Only ever do this for regular
755 ;; top-level items. Ignore this problem in code blocks
756 ;; so that we don't have to deal with regular code
757 ;; being erroneously converted into types.
758 | declmods var-or-func-decl
759 ( ,(semantic-c-reconstitute-token ,$2 $1 nil ) )
760 ;
761
762var-or-func-decl
763 : func-decl
764 ( ,$1 )
765 | var-decl
766 ( ,$1 )
767 ;
768
769func-decl
770 : opt-stars opt-class opt-destructor functionname
771 opt-template-specifier
772 opt-under-p
773 arg-list
774 opt-post-fcn-modifiers
775 opt-throw
776 opt-initializers
777 fun-or-proto-end
778 ( ,$4 'function
779 ;; Extra stuff goes in here.
780 ;; Continue with the stuff we found in
781 ;; this definition
782 $2 $3 $7 $9 $8 ,$1 ,$11 $5 ,$10)
783 | opt-stars opt-class opt-destructor functionname
784 opt-template-specifier
785 opt-under-p
786 ;; arg-list - - ini this case, a try implies a fcn.
787 opt-post-fcn-modifiers
788 opt-throw
789 opt-initializers
790 fun-try-end
791 ( ,$4 'function
792 ;; Extra stuff goes in here.
793 ;; Continue with the stuff we found in
794 ;; this definition
795 $2 $3 nil $8 $7 ,$1 ,$10 $5 ,$9)
796 ;
797
798var-decl
799 : varnamelist SEMICOLON
800 ( $1 'variable )
801 ;
802
803opt-under-p
804 : UNDERP
805 ( nil )
806 | UNDERUNDERP
807 ( nil )
808 | ;;EMPTY
809 ;
810
811;; Klaus Berndl: symbol -> namespace-symbol
812opt-initializers
813 : COLON namespace-symbol semantic-list opt-initializers
814 | COMA namespace-symbol semantic-list opt-initializers
815 | ;;EMPTY
816 ;
817
818opt-post-fcn-modifiers
819 : post-fcn-modifiers opt-post-fcn-modifiers
820 ( ,(cons ,$1 $2) )
821 | ;;EMPTY
822 ( nil )
823 ;
824
825post-fcn-modifiers
826 : REENTRANT
827 | CONST
828 ;
829
830opt-throw
831 : THROW semantic-list
832 ( EXPAND $2 throw-exception-list )
833 | ;;EMPTY
834 ;
835
836;; Is this true? I don't actually know.
837throw-exception-list
838 : namespace-symbol COMA throw-exception-list
839 ( ,(cons (car $1) $3) )
840 | namespace-symbol RPAREN
841 ( ,$1 )
842 | symbol RPAREN
843 ( $1 )
844 | LPAREN throw-exception-list
845 ( ,$2 )
846 | RPAREN
847 ( )
848 ;
849
850opt-bits
851 : COLON number
852 ( $2 )
853 | ;;EMPTY
854 ( nil )
855 ;
856
857opt-array
858 : BRACK_BLCK opt-array
859 ;; Eventually we want to replace the 1 below with a size
860 ;; (if available)
861 ( (cons 1 (car ,$2) ) )
862 | ;;EMPTY
863 ( nil )
864 ;
865
866opt-assign
867 : EQUAL expression
868 ( $2 )
869 | ;;EMPTY
870 ( nil )
871 ;
872
873opt-restrict
874 : RESTRICT
875 | ;;EMPTY
876 ;
877
878;; Klaus Berndl: symbol -> namespace-symbol?! I think so. Can be that
879;; then also some invalid C++-syntax is parsed but this is better than
880;; not parsing valid syntax.
881varname
882 : opt-stars opt-restrict namespace-symbol opt-bits opt-array
883 ( ,$3 ,$1 ,$4 ,$5 )
884 ;
885
886;; I should store more in this def, but leave it simple for now.
887;; Klaus Berndl: const and volatile can be written after the type!
888variablearg
889 : declmods typeformbase cv-declmods opt-ref variablearg-opt-name
890 ( VARIABLE-TAG (list $5) $2 nil
891 :constant-flag (if (member "const" (append $1 $3)) t nil)
892 :typemodifiers (delete "const" (append $1 $3))
893 :reference (car ,$4)
894 )
895 ;
896
897variablearg-opt-name
898 : varname
899 ( ,$1 )
900 ;; Klaus Berndl: This allows variableargs without a arg-name being
901 ;; parsed correct even if there several pointers (*)
902 | opt-stars
903 ( "" ,$1 nil nil nil )
904 ;
905
906varname-opt-initializer
907 : semantic-list
908 | opt-assign
909 | ;; EMPTY
910 ;
911
912varnamelist
913 : opt-ref varname varname-opt-initializer COMA varnamelist
914 ( ,(cons $2 $5) )
915 | opt-ref varname varname-opt-initializer
916 ( $2 )
917 ;
918
919;; Klaus Berndl: Is necessary to parse stuff like
920;; class list_of_facts : public list<fact>, public entity
921;; and
922;; list <shared_ptr<item> >::const_iterator l;
923;; Parses also invalid(?) and senseless(?) c++-syntax like
924;; symbol<template-spec>::symbol1<template-spec1>::test_iterator
925;; but better parsing too much than to less
926namespace-symbol
927 : symbol opt-template-specifier COLON COLON namespace-symbol
928 ( (concat $1 "::" (car $5)) )
929 | symbol opt-template-specifier
930 ( $1 )
931 ;
932
933;; Don't pull an optional template specifier at the end of the
934;; namespace symbol so that it can be picked up by the type.
935namespace-symbol-for-typeformbase
936 : symbol opt-template-specifier COLON COLON namespace-symbol-for-typeformbase
937 ( (concat $1 "::" (car $5)) )
938 | symbol
939 ( $1 )
940 ;
941;; namespace-symbol
942;; : symbol COLON COLON namespace-symbol
943;; ( (concat $1 "::" (car $4)) )
944;; | symbol
945;; ( $1 )
946;; ;
947
948namespace-opt-class
949 : symbol COLON COLON namespace-opt-class
950 ( (concat $1 "::" (car $4)) )
951 ;; Klaus Berndl: We must recognize template-specifiers here so we can
952 ;; parse correctly the method-implementations of template-classes
953 ;; outside the template-class-declaration Example:
954 ;; TemplateClass1<T>::method_1(...)
955 | symbol opt-template-specifier COLON COLON
956 ( $1 )
957 ;
958
959;; Klaus Berndl: The opt-class of a func-decl must be able to
960;; recognize opt-classes with namespaces, e.g.
961;; Test1::Test2::classname::
962opt-class
963 : namespace-opt-class
964 ( ,$1 )
965 | ;;EMPTY
966 ( nil )
967 ;
968
969opt-destructor
970 : TILDE
971 ( t )
972 | ;;EMPTY
973 ( nil )
974 ;
975
976arg-list
977 : PAREN_BLCK knr-arguments
978 ( ,$2 )
979 | PAREN_BLCK
980 (EXPANDFULL $1 arg-sub-list)
981 | VOID_BLCK
982 ( )
983 ;
984
985knr-varnamelist
986 : varname COMA knr-varnamelist
987 ( ,(cons $1 $3) )
988 | varname
989 ( $1 )
990 ;
991
992
993knr-one-variable-decl
994 : declmods typeformbase cv-declmods knr-varnamelist
995 ( VARIABLE-TAG (nreverse $4) $2 nil
996 :constant-flag (if (member "const" (append $3)) t nil)
997 :typemodifiers (delete "const" $3)
998 )
999 ;
1000
1001knr-arguments
1002 : knr-one-variable-decl SEMICOLON knr-arguments
1003 ( ,(append (semantic-expand-c-tag ,$1) ,$3) )
1004 | knr-one-variable-decl SEMICOLON
1005 ( ,(semantic-expand-c-tag ,$1) )
1006 ;
1007
1008arg-sub-list
1009 : variablearg
1010 ( ,$1 )
1011 | PERIOD PERIOD PERIOD RPAREN
1012 (VARIABLE-TAG "..." "vararg" nil)
1013 | COMA
1014 ( nil )
1015 | LPAREN
1016 ( nil )
1017 | RPAREN
1018 ( nil )
1019 ;
1020
1021operatorsym
1022 : LESS LESS EQUAL
1023 ( "<<=" )
1024 | GREATER GREATER EQUAL
1025 ( ">>=" )
1026 | LESS LESS
1027 ( "<<" )
1028 | GREATER GREATER
1029 ( ">>" )
1030 | EQUAL EQUAL
1031 ( "==" )
1032 | LESS EQUAL
1033 ( "<=" )
1034 | GREATER EQUAL
1035 ( ">=" )
1036 | BANG EQUAL
1037 ( "!=" )
1038 | PLUS EQUAL
1039 ( "+=" )
1040 | MINUS EQUAL
1041 ( "-=" )
1042 | STAR EQUAL
1043 ( "*=" )
1044 | DIVIDE EQUAL
1045 ( "/=" )
1046 | MOD EQUAL
1047 ( "%=" )
1048 | AMPERSAND EQUAL
1049 ( "&=" )
1050 | OR EQUAL
1051 ( "|=" )
1052 | MINUS GREATER STAR
1053 ( "->*" )
1054 | MINUS GREATER
1055 ( "->" )
1056 | PARENS
1057 ( "()" )
1058 | BRACKETS
1059 ( "[]" )
1060 | LESS
1061 | GREATER
1062 | STAR
1063 | PLUS PLUS
1064 ( "++" )
1065 | PLUS
1066 | MINUS MINUS
1067 ( "--" )
1068 | MINUS
1069 | AMPERSAND AMPERSAND
1070 ( "&&" )
1071 | AMPERSAND
1072 | OR OR
1073 ( "||" )
1074 | OR
1075 | DIVIDE
1076 | EQUAL
1077 | BANG
1078 | TILDE
1079 | MOD
1080 | COMA
1081 ;; HAT EQUAL seems to have a really unpleasant result and
1082 ;; breaks everything after it. Leave it at the end, though it
1083 ;; doesn't seem to work.
1084 | HAT EQUAL
1085 ( "^=" )
1086 | HAT
1087 ;
1088
1089functionname
1090 : OPERATOR operatorsym
1091 ( ,$2 )
1092 | semantic-list
1093 ( EXPAND $1 function-pointer )
1094 | symbol
1095 ( $1 )
1096 ;
1097
1098function-pointer
1099 : LPAREN STAR symbol RPAREN
1100 ( (concat "*" $3) )
1101 ;
1102
1103fun-or-proto-end
1104 : SEMICOLON
1105 ( t )
1106 | semantic-list
1107 ( nil )
1108 ;; Here is an anoying feature of C++ pure virtual methods
1109 | EQUAL ZERO SEMICOLON
1110 ( :pure-virtual-flag )
1111 | fun-try-end
1112 ( nil )
1113 ;
1114
1115fun-try-end
1116 : TRY opt-initializers BRACE_BLCK fun-try-several-catches
1117 ( nil )
1118 ;
1119
1120fun-try-several-catches
1121 : CATCH PAREN_BLCK BRACE_BLCK fun-try-several-catches
1122 ( )
1123 | CATCH BRACE_BLCK fun-try-several-catches
1124 ( )
1125 | ;; EMPTY
1126 ( )
1127 ;
1128
1129type-cast
1130 : semantic-list
1131 ( EXPAND $1 type-cast-list )
1132 ;
1133
1134type-cast-list
1135 : open-paren typeformbase close-paren
1136 ;
1137
1138opt-stuff-after-symbol
1139 : PAREN_BLCK
1140 | BRACK_BLCK
1141 | ;; EMPTY
1142 ;
1143
1144multi-stage-dereference
1145 : namespace-symbol opt-stuff-after-symbol PERIOD multi-stage-dereference ;; method call
1146 | namespace-symbol opt-stuff-after-symbol MINUS GREATER multi-stage-dereference ;;method call
1147 | namespace-symbol opt-stuff-after-symbol
1148 ;
1149
1150string-seq
1151 : string string-seq
1152 ( (concat $1 (car $2)) )
1153 | string
1154 ( $1 )
1155 ;
1156
1157expr-start
1158 : MINUS
1159 | PLUS
1160 | STAR
1161 | AMPERSAND
1162 ;
1163
1164expr-binop
1165 : MINUS
1166 | PLUS
1167 | STAR
1168 | DIVIDE
1169 | AMPERSAND AMPERSAND
1170 | AMPERSAND
1171 | OR OR
1172 | OR
1173 ;; There are more.
1174 ;
1175
1176;; Use expression for parsing only. Don't actually return anything
1177;; for now. Hopefully we can fix this later.
1178expression
1179 : unaryexpression expr-binop unaryexpression
1180 ( (identity start) (identity end) )
1181 | unaryexpression
1182 ( (identity start) (identity end) )
1183 ;
1184
1185unaryexpression
1186 : number
1187 | multi-stage-dereference
1188 | NEW multi-stage-dereference
1189 | NEW builtintype-types semantic-list
1190 ;; Klaus Berndl: symbol -> namespace-symbol!
1191 | namespace-symbol
1192 ;; Klaus Berndl: C/C++ allows sequences of strings which are
1193 ;; concatenated by the precompiler to one string
1194 | string-seq
1195 | type-cast expression ;; A cast to some other type
1196 ;; Casting the results of one expression to something else.
1197 | semantic-list expression
1198 | semantic-list
1199 | expr-start expression
1200 ;
1201
1202;;; c.by ends here
diff --git a/etc/grammars/java-tags.wy b/etc/grammars/java-tags.wy
new file mode 100644
index 00000000000..99d2b9df81d
--- /dev/null
+++ b/etc/grammars/java-tags.wy
@@ -0,0 +1,750 @@
1;;; java-tags.wy -- Semantic LALR grammar for Java
2
3;; Copyright (C) 2002-2011 Free Software Foundation, Inc.
4;;
5;; Author: David Ponce <david@dponce.com>
6;; Maintainer: David Ponce <david@dponce.com>
7;; Created: 26 Aug 2002
8;; Keywords: syntax
9
10;; This file is part of GNU Emacs.
11
12;; GNU Emacs is free software: you can redistribute it and/or modify
13;; it under the terms of the GNU General Public License as published by
14;; the Free Software Foundation, either version 3 of the License, or
15;; (at your option) any later version.
16
17;; GNU Emacs is distributed in the hope that it will be useful,
18;; but WITHOUT ANY WARRANTY; without even the implied warranty of
19;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20;; GNU General Public License for more details.
21
22;; You should have received a copy of the GNU General Public License
23;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
24
25%package wisent-java-tags-wy
26
27%languagemode java-mode
28
29;; The default start symbol
30%start compilation_unit
31;; Alternate entry points
32;; - Needed by partial re-parse
33%start package_declaration
34%start import_declaration
35%start class_declaration
36%start field_declaration
37%start method_declaration
38%start formal_parameter
39%start constructor_declaration
40%start interface_declaration
41;; - Needed by EXPANDFULL clauses
42%start class_member_declaration
43%start interface_member_declaration
44%start formal_parameters
45
46;; -----------------------------
47;; Block & Parenthesis terminals
48;; -----------------------------
49%type <block> ;;syntax "\\s(\\|\\s)" matchdatatype block
50
51%token <block> PAREN_BLOCK "(LPAREN RPAREN)"
52%token <block> BRACE_BLOCK "(LBRACE RBRACE)"
53%token <block> BRACK_BLOCK "(LBRACK RBRACK)"
54
55%token <open-paren> LPAREN "("
56%token <close-paren> RPAREN ")"
57%token <open-paren> LBRACE "{"
58%token <close-paren> RBRACE "}"
59%token <open-paren> LBRACK "["
60%token <close-paren> RBRACK "]"
61
62;; ------------------
63;; Operator terminals
64;; ------------------
65%type <punctuation> ;;syntax "\\(\\s.\\|\\s$\\|\\s'\\)+" matchdatatype string
66
67%token <punctuation> NOT "!"
68%token <punctuation> NOTEQ "!="
69%token <punctuation> MOD "%"
70%token <punctuation> MODEQ "%="
71%token <punctuation> AND "&"
72%token <punctuation> ANDAND "&&"
73%token <punctuation> ANDEQ "&="
74%token <punctuation> MULT "*"
75%token <punctuation> MULTEQ "*="
76%token <punctuation> PLUS "+"
77%token <punctuation> PLUSPLUS "++"
78%token <punctuation> PLUSEQ "+="
79%token <punctuation> COMMA ","
80%token <punctuation> MINUS "-"
81%token <punctuation> MINUSMINUS "--"
82%token <punctuation> MINUSEQ "-="
83%token <punctuation> DOT "."
84%token <punctuation> DIV "/"
85%token <punctuation> DIVEQ "/="
86%token <punctuation> COLON ":"
87%token <punctuation> SEMICOLON ";"
88%token <punctuation> LT "<"
89%token <punctuation> LSHIFT "<<"
90%token <punctuation> LSHIFTEQ "<<="
91%token <punctuation> LTEQ "<="
92%token <punctuation> EQ "="
93%token <punctuation> EQEQ "=="
94%token <punctuation> GT ">"
95%token <punctuation> GTEQ ">="
96%token <punctuation> RSHIFT ">>"
97%token <punctuation> RSHIFTEQ ">>="
98%token <punctuation> URSHIFT ">>>"
99%token <punctuation> URSHIFTEQ ">>>="
100%token <punctuation> QUESTION "?"
101%token <punctuation> XOR "^"
102%token <punctuation> XOREQ "^="
103%token <punctuation> OR "|"
104%token <punctuation> OREQ "|="
105%token <punctuation> OROR "||"
106%token <punctuation> COMP "~"
107
108;; -----------------
109;; Literal terminals
110;; -----------------
111%type <symbol> ;;syntax "\\(\\sw\\|\\s_\\)+"
112%token <symbol> IDENTIFIER
113
114%type <string> ;;syntax "\\s\"" matchdatatype sexp
115%token <string> STRING_LITERAL
116
117%type <number> ;;syntax semantic-lex-number-expression
118%token <number> NUMBER_LITERAL
119
120%type <unicode> syntax "\\\\u[0-9a-f][0-9a-f][0-9a-f][0-9a-f]"
121%token <unicode> unicodecharacter
122
123;; -----------------
124;; Keyword terminals
125;; -----------------
126
127;; Generate a keyword analyzer
128%type <keyword> ;;syntax "\\(\\sw\\|\\s_\\)+" matchdatatype keyword
129
130%keyword ABSTRACT "abstract"
131%put ABSTRACT summary
132"Class|Method declaration modifier: abstract {class|<type>} <name> ..."
133
134%keyword BOOLEAN "boolean"
135%put BOOLEAN summary
136"Primitive logical quantity type (true or false)"
137
138%keyword BREAK "break"
139%put BREAK summary
140"break [<label>] ;"
141
142%keyword BYTE "byte"
143%put BYTE summary
144"Integral primitive type (-128 to 127)"
145
146%keyword CASE "case"
147%put CASE summary
148"switch(<expr>) {case <const-expr>: <stmts> ... }"
149
150%keyword CATCH "catch"
151%put CATCH summary
152"try {<stmts>} catch(<parm>) {<stmts>} ... "
153
154%keyword CHAR "char"
155%put CHAR summary
156"Integral primitive type ('\u0000' to '\uffff') (0 to 65535)"
157
158%keyword CLASS "class"
159%put CLASS summary
160"Class declaration: class <name>"
161
162%keyword CONST "const"
163%put CONST summary
164"Unused reserved word"
165
166%keyword CONTINUE "continue"
167%put CONTINUE summary
168"continue [<label>] ;"
169
170%keyword DEFAULT "default"
171%put DEFAULT summary
172"switch(<expr>) { ... default: <stmts>}"
173
174%keyword DO "do"
175%put DO summary
176"do <stmt> while (<expr>);"
177
178%keyword DOUBLE "double"
179%put DOUBLE summary
180"Primitive floating-point type (double-precision 64-bit IEEE 754)"
181
182%keyword ELSE "else"
183%put ELSE summary
184"if (<expr>) <stmt> else <stmt>"
185
186%keyword EXTENDS "extends"
187%put EXTENDS summary
188"SuperClass|SuperInterfaces declaration: extends <name> [, ...]"
189
190%keyword FINAL "final"
191%put FINAL summary
192"Class|Member declaration modifier: final {class|<type>} <name> ..."
193
194%keyword FINALLY "finally"
195%put FINALLY summary
196"try {<stmts>} ... finally {<stmts>}"
197
198%keyword FLOAT "float"
199%put FLOAT summary
200"Primitive floating-point type (single-precision 32-bit IEEE 754)"
201
202%keyword FOR "for"
203%put FOR summary
204"for ([<init-expr>]; [<expr>]; [<update-expr>]) <stmt>"
205
206%keyword GOTO "goto"
207%put GOTO summary
208"Unused reserved word"
209
210%keyword IF "if"
211%put IF summary
212"if (<expr>) <stmt> [else <stmt>]"
213
214%keyword IMPLEMENTS "implements"
215%put IMPLEMENTS summary
216"Class SuperInterfaces declaration: implements <name> [, ...]"
217
218%keyword IMPORT "import"
219%put IMPORT summary
220"Import package declarations: import <package>"
221
222%keyword INSTANCEOF "instanceof"
223
224%keyword INT "int"
225%put INT summary
226"Integral primitive type (-2147483648 to 2147483647)"
227
228%keyword INTERFACE "interface"
229%put INTERFACE summary
230"Interface declaration: interface <name>"
231
232%keyword LONG "long"
233%put LONG summary
234"Integral primitive type (-9223372036854775808 to 9223372036854775807)"
235
236%keyword NATIVE "native"
237%put NATIVE summary
238"Method declaration modifier: native <type> <name> ..."
239
240%keyword NEW "new"
241
242%keyword PACKAGE "package"
243%put PACKAGE summary
244"Package declaration: package <name>"
245
246%keyword PRIVATE "private"
247%put PRIVATE summary
248"Access level modifier: private {class|interface|<type>} <name> ..."
249
250%keyword PROTECTED "protected"
251%put PROTECTED summary
252"Access level modifier: protected {class|interface|<type>} <name> ..."
253
254%keyword PUBLIC "public"
255%put PUBLIC summary
256"Access level modifier: public {class|interface|<type>} <name> ..."
257
258%keyword RETURN "return"
259%put RETURN summary
260"return [<expr>] ;"
261
262%keyword SHORT "short"
263%put SHORT summary
264"Integral primitive type (-32768 to 32767)"
265
266%keyword STATIC "static"
267%put STATIC summary
268"Declaration modifier: static {class|interface|<type>} <name> ..."
269
270%keyword STRICTFP "strictfp"
271%put STRICTFP summary
272"Declaration modifier: strictfp {class|interface|<type>} <name> ..."
273
274%keyword SUPER "super"
275
276%keyword SWITCH "switch"
277%put SWITCH summary
278"switch(<expr>) {[case <const-expr>: <stmts> ...] [default: <stmts>]}"
279
280
281%keyword SYNCHRONIZED "synchronized"
282%put SYNCHRONIZED summary
283"synchronized (<expr>) ... | Method decl. modifier: synchronized <type> <name> ..."
284
285%keyword THIS "this"
286
287%keyword THROW "throw"
288%put THROW summary
289"throw <expr> ;"
290
291%keyword THROWS "throws"
292%put THROWS summary
293"Method|Constructor declaration: throws <classType>, ..."
294
295%keyword TRANSIENT "transient"
296%put TRANSIENT summary
297"Field declaration modifier: transient <type> <name> ..."
298
299%keyword TRY "try"
300%put TRY summary
301"try {<stmts>} [catch(<parm>) {<stmts>} ...] [finally {<stmts>}]"
302
303%keyword VOID "void"
304%put VOID summary
305"Method return type: void <name> ..."
306
307%keyword VOLATILE "volatile"
308%put VOLATILE summary
309"Field declaration modifier: volatile <type> <name> ..."
310
311%keyword WHILE "while"
312%put WHILE summary
313"while (<expr>) <stmt> | do <stmt> while (<expr>);"
314
315;; --------------------------
316;; Official javadoc line tags
317;; --------------------------
318
319;; Javadoc tags are identified by a 'javadoc' keyword property. The
320;; value of this property must be itself a property list where the
321;; following properties are recognized:
322;;
323;; - `seq' (mandatory) is the tag sequence number used to check if tags
324;; are correctly ordered in a javadoc comment block.
325;;
326;; - `usage' (mandatory) is the list of token categories for which this
327;; documentation tag is allowed.
328;;
329;; - `opt' (optional) if non-nil indicates this is an optional tag.
330;; By default tags are mandatory.
331;;
332;; - `with-name' (optional) if non-nil indicates that this tag is
333;; followed by an identifier like in "@param <var-name> description"
334;; or "@exception <class-name> description".
335;;
336;; - `with-ref' (optional) if non-nil indicates that the tag is
337;; followed by a reference like in "@see <reference>".
338
339%keyword _AUTHOR "@author"
340%put _AUTHOR javadoc (seq 1 usage (type))
341%keyword _VERSION "@version"
342%put _VERSION javadoc (seq 2 usage (type))
343%keyword _PARAM "@param"
344%put _PARAM javadoc (seq 3 usage (function) with-name t)
345%keyword _RETURN "@return"
346%put _RETURN javadoc (seq 4 usage (function))
347%keyword _EXCEPTION "@exception"
348%put _EXCEPTION javadoc (seq 5 usage (function) with-name t)
349%keyword _THROWS "@throws"
350%put _THROWS javadoc (seq 6 usage (function) with-name t)
351%keyword _SEE "@see"
352%put _SEE javadoc (seq 7 usage (type function variable) opt t with-ref t)
353%keyword _SINCE "@since"
354%put _SINCE javadoc (seq 8 usage (type function variable) opt t)
355%keyword _SERIAL "@serial"
356%put _SERIAL javadoc (seq 9 usage (variable) opt t)
357%keyword _SERIALDATA "@serialData"
358%put _SERIALDATA javadoc (seq 10 usage (function) opt t)
359%keyword _SERIALFIELD "@serialField"
360%put _SERIALFIELD javadoc (seq 11 usage (variable) opt t)
361%keyword _DEPRECATED "@deprecated"
362%put _DEPRECATED javadoc (seq 12 usage (type function variable) opt t)
363
364%%
365
366;; ------------
367;; LALR Grammar
368;; ------------
369
370;; This grammar is not designed to fully parse correct Java syntax. It
371;; is optimized to work in an interactive environment to extract tokens
372;; (tags) needed by Semantic. In some cases a syntax not allowed by
373;; the Java Language Specification will be accepted by this grammar.
374
375compilation_unit
376 : package_declaration
377 | import_declaration
378 | type_declaration
379 ;
380
381;;; Package statement token
382;; ("NAME" package DETAIL "DOCSTRING")
383package_declaration
384 : PACKAGE qualified_name SEMICOLON
385 (PACKAGE-TAG $2 nil)
386 ;
387
388;;; Include file token
389;; ("FILE" include SYSTEM "DOCSTRING")
390import_declaration
391 : IMPORT qualified_name SEMICOLON
392 (INCLUDE-TAG $2 nil)
393 | IMPORT qualified_name DOT MULT SEMICOLON
394 (INCLUDE-TAG (concat $2 $3 $4) nil)
395 ;
396
397type_declaration
398 : SEMICOLON
399 ()
400 | class_declaration
401 | interface_declaration
402 ;
403
404;;; Type Declaration token
405;; ("NAME" type "TYPE" ( PART-LIST ) ( PARENTS ) EXTRA-SPEC "DOCSTRING")
406class_declaration
407 : modifiers_opt CLASS qualified_name superc_opt interfaces_opt class_body
408 (TYPE-TAG $3 $2 $6 (if (or $4 $5) (cons $4 $5)) :typemodifiers $1)
409 ;
410
411superc_opt
412 : ;;EMPTY
413 | EXTENDS qualified_name
414 (identity $2)
415 ;
416
417interfaces_opt
418 : ;;EMPTY
419 | IMPLEMENTS qualified_name_list
420 (nreverse $2)
421 ;
422
423class_body
424 : BRACE_BLOCK
425 (EXPANDFULL $1 class_member_declaration)
426 ;
427
428class_member_declaration
429 : LBRACE
430 ()
431 | RBRACE
432 ()
433 | block
434 ()
435 | static_initializer
436 ()
437 | constructor_declaration
438 | interface_declaration
439 | class_declaration
440 | method_declaration
441 | field_declaration
442 ;
443
444;;; Type Declaration token
445;; ("NAME" type "TYPE" ( PART-LIST ) ( PARENTS ) EXTRA-SPEC "DOCSTRING")
446interface_declaration
447 : modifiers_opt INTERFACE IDENTIFIER extends_interfaces_opt interface_body
448 (TYPE-TAG $3 $2 $5 (if $4 (cons nil $4)) :typemodifiers $1)
449 ;
450
451extends_interfaces_opt
452 : ;;EMPTY
453 | EXTENDS qualified_name_list
454 (identity $2)
455 ;
456
457interface_body
458 : BRACE_BLOCK
459 (EXPANDFULL $1 interface_member_declaration)
460 ;
461
462interface_member_declaration
463 : LBRACE
464 ()
465 | RBRACE
466 ()
467 | interface_declaration
468 | class_declaration
469 | method_declaration
470 | field_declaration
471 ;
472
473static_initializer
474 : STATIC block
475 ;
476
477;;; Function token
478;; ("NAME" function "TYPE" ( ARG-LIST ) EXTRA-SPEC "DOCSTRING")
479constructor_declaration
480 : modifiers_opt constructor_declarator throwsc_opt constructor_body
481 (FUNCTION-TAG (car $2) nil (cdr $2)
482 :typemodifiers $1
483 :throws $3
484 :constructor-flag t)
485 ;
486
487constructor_declarator
488 : IDENTIFIER formal_parameter_list
489 (cons $1 $2)
490 ;
491
492constructor_body
493 : block
494 ;
495
496;;; Function token
497;; ("NAME" function "TYPE" ( ARG-LIST ) EXTRA-SPEC "DOCSTRING")
498method_declaration
499 : modifiers_opt VOID method_declarator throwsc_opt method_body
500 (FUNCTION-TAG (car $3) $2 (cdr $3) :typemodifiers $1 :throws $4)
501 | modifiers_opt type method_declarator throwsc_opt method_body
502 (FUNCTION-TAG (car $3) $2 (cdr $3) :typemodifiers $1 :throws $4)
503 ;
504
505method_declarator
506 : IDENTIFIER formal_parameter_list dims_opt
507 (cons (concat $1 $3) $2)
508 ;
509
510throwsc_opt
511 : ;;EMPTY
512 | THROWS qualified_name_list
513 (nreverse $2)
514 ;
515
516qualified_name_list
517 : qualified_name_list COMMA qualified_name
518 (cons $3 $1)
519 | qualified_name
520 (list $1)
521 ;
522
523method_body
524 : SEMICOLON
525 | block
526 ;
527
528;; Just eat {...} block!
529block
530 : BRACE_BLOCK
531 ;
532
533formal_parameter_list
534 : PAREN_BLOCK
535 (EXPANDFULL $1 formal_parameters)
536 ;
537
538formal_parameters
539 : LPAREN
540 ()
541 | RPAREN
542 ()
543 | formal_parameter COMMA
544 | formal_parameter RPAREN
545 ;
546
547;;; Variable token
548;; ("NAME" variable "TYPE" DEFAULT-VALUE EXTRA-SPEC "DOCSTRING")
549formal_parameter
550 : formal_parameter_modifier_opt type variable_declarator_id
551 (VARIABLE-TAG $3 $2 nil :typemodifiers $1)
552 ;
553
554formal_parameter_modifier_opt
555 : ;;EMPTY
556 | FINAL
557 (list $1)
558 ;
559
560;;; Variable token
561;; ("NAME" variable "TYPE" DEFAULT-VALUE EXTRA-SPEC "DOCSTRING")
562field_declaration
563 : modifiers_opt type variable_declarators SEMICOLON
564 (VARIABLE-TAG $3 $2 nil :typemodifiers $1)
565 ;
566
567variable_declarators
568 : variable_declarators COMMA variable_declarator
569 (progn
570 ;; Set the end of the compound declaration to the end of the
571 ;; COMMA delimiter.
572 (setcdr (cdr (car $1)) (cdr $region2))
573 (cons $3 $1))
574 | variable_declarator
575 (list $1)
576 ;
577
578variable_declarator
579 : variable_declarator_id EQ variable_initializer
580 (cons $1 $region)
581 | variable_declarator_id
582 (cons $1 $region)
583 ;
584
585variable_declarator_id
586 : IDENTIFIER dims_opt
587 (concat $1 $2)
588 ;
589
590variable_initializer
591 : expression
592 ;
593
594;; Just eat expression!
595expression
596 : expression term
597 | term
598 ;
599
600term
601 : literal
602 | operator
603 | primitive_type
604 | IDENTIFIER
605 | BRACK_BLOCK
606 | PAREN_BLOCK
607 | BRACE_BLOCK
608 | NEW
609 | CLASS
610 | THIS
611 | SUPER
612 ;
613
614literal
615;; : NULL_LITERAL
616;; | BOOLEAN_LITERAL
617 : STRING_LITERAL
618 | NUMBER_LITERAL
619 ;
620
621operator
622 : NOT
623 | PLUS
624 | PLUSPLUS
625 | MINUS
626 | MINUSMINUS
627 | NOTEQ
628 | MOD
629 | MODEQ
630 | AND
631 | ANDAND
632 | ANDEQ
633 | MULT
634 | MULTEQ
635 | PLUSEQ
636 | MINUSEQ
637 | DOT
638 | DIV
639 | DIVEQ
640 | COLON
641 | LT
642 | LSHIFT
643 | LSHIFTEQ
644 | LTEQ
645 | EQ
646 | EQEQ
647 | GT
648 | GTEQ
649 | RSHIFT
650 | RSHIFTEQ
651 | URSHIFT
652 | URSHIFTEQ
653 | QUESTION
654 | XOR
655 | XOREQ
656 | OR
657 | OREQ
658 | OROR
659 | COMP
660 | INSTANCEOF
661 ;
662
663primitive_type
664 : BOOLEAN
665 | CHAR
666 | LONG
667 | INT
668 | SHORT
669 | BYTE
670 | DOUBLE
671 | FLOAT
672 ;
673
674modifiers_opt
675 : ;;EMPTY
676 | modifiers
677 (nreverse $1)
678 ;
679
680modifiers
681 : modifiers modifier
682 (cons $2 $1)
683 | modifier
684 (list $1)
685 ;
686
687modifier
688 : STRICTFP
689 | VOLATILE
690 | TRANSIENT
691 | SYNCHRONIZED
692 | NATIVE
693 | FINAL
694 | ABSTRACT
695 | STATIC
696 | PRIVATE
697 | PROTECTED
698 | PUBLIC
699 ;
700
701type
702 : qualified_name dims_opt
703 (concat $1 $2)
704 | primitive_type dims_opt
705 (concat $1 $2)
706 ;
707
708qualified_name
709 : qualified_name DOT IDENTIFIER
710 (concat $1 $2 $3)
711 | IDENTIFIER
712 ;
713
714dims_opt
715 : ;;EMPTY
716 (identity "")
717 | dims
718 ;
719
720dims
721 : dims BRACK_BLOCK
722 (concat $1 "[]")
723 | BRACK_BLOCK
724 (identity "[]")
725 ;
726
727%%
728;; Define the lexer for this grammar
729(define-lex wisent-java-tags-lexer
730 "Lexical analyzer that handles Java buffers.
731It ignores whitespaces, newlines and comments."
732 semantic-lex-ignore-whitespace
733 semantic-lex-ignore-newline
734 semantic-lex-ignore-comments
735 ;;;; Auto-generated analyzers.
736 wisent-java-tags-wy--<number>-regexp-analyzer
737 wisent-java-tags-wy--<string>-sexp-analyzer
738 ;; Must detect keywords before other symbols
739 wisent-java-tags-wy--<keyword>-keyword-analyzer
740 wisent-java-tags-wy--<symbol>-regexp-analyzer
741 wisent-java-tags-wy--<punctuation>-string-analyzer
742 wisent-java-tags-wy--<block>-block-analyzer
743 ;; In theory, unicode chars should be turned into normal chars
744 ;; and then combined into regular ascii keywords and text. This
745 ;; analyzer just keeps these things from making the lexer go boom.
746 wisent-java-tags-wy--<unicode>-regexp-analyzer
747 ;;;;
748 semantic-lex-default-action)
749
750;;; java-tags.wy ends here
diff --git a/etc/grammars/js.wy b/etc/grammars/js.wy
new file mode 100644
index 00000000000..a13abf56e6e
--- /dev/null
+++ b/etc/grammars/js.wy
@@ -0,0 +1,526 @@
1;;; javascript-jv.wy -- LALR grammar for Javascript
2
3;; Copyright (C) 2005-2011 Free Software Foundation, Inc.
4;; Copyright (C) 1998-2011 Ecma International.
5
6;; Author: Joakim Verona
7
8;; This file is part of GNU Emacs.
9
10;; GNU Emacs is free software: you can redistribute it and/or modify
11;; it under the terms of the GNU General Public License as published by
12;; the Free Software Foundation, either version 3 of the License, or
13;; (at your option) any later version.
14
15;; GNU Emacs is distributed in the hope that it will be useful,
16;; but WITHOUT ANY WARRANTY; without even the implied warranty of
17;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;; GNU General Public License for more details.
19
20;; You should have received a copy of the GNU General Public License
21;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
22
23;;; Commentary:
24
25;; The grammar itself is transcribed from the ECMAScript Language
26;; Specification published at
27;;
28;; http://www.ecma-international.org/publications/standards/Ecma-262.htm
29;;
30;; and redistributed under the following license:
31
32;; Redistribution and use in source and binary forms, with or without
33;; modification, are permitted provided that the following conditions
34;; are met:
35
36;; 1. Redistributions of source code must retain the above copyright
37;; notice, this list of conditions and the following disclaimer.
38
39;; 2. Redistributions in binary form must reproduce the above
40;; copyright notice, this list of conditions and the following
41;; disclaimer in the documentation and/or other materials provided
42;; with the distribution.
43
44;; 3. Neither the name of the authors nor Ecma International may be
45;; used to endorse or promote products derived from this software
46;; without specific prior written permission. THIS SOFTWARE IS
47;; PROVIDED BY THE ECMA INTERNATIONAL "AS IS" AND ANY EXPRESS OR
48;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
49;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
50;; ARE DISCLAIMED. IN NO EVENT SHALL ECMA INTERNATIONAL BE LIABLE FOR
51;; ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
52;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
53;; OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
54;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
55;; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
56;; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
57;; USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
58;; DAMAGE.
59
60%package wisent-javascript-jv-wy
61;; JAVE I prefere ecmascript-mode
62%languagemode ecmascript-mode javascript-mode
63
64;; The default goal
65%start Program
66;; Other Goals
67%start FormalParameterList
68
69;; with the terminals stuff, I used the javacript.y names,
70;; but the semantic/wisent/java-tags.wy types
71;; when possible
72;; ------------------
73;; Operator terminals
74;; ------------------
75
76;;define-lex-string-type-analyzer gets called with the "syntax" comment
77%type <punctuation> ;;syntax "\\(\\s.\\|\\s$\\|\\s'\\)+" matchdatatype string
78
79%token <punctuation> ASSIGN_SYMBOL "="
80%token <punctuation> BITWISE_AND "&"
81%token <punctuation> BITWISE_AND_EQUALS "&="
82%token <punctuation> BITWISE_EXCLUSIVE_OR "^"
83%token <punctuation> BITWISE_EXCLUSIVE_OR_EQUALS "^="
84%token <punctuation> BITWISE_OR "|"
85%token <punctuation> BITWISE_OR_EQUALS "|="
86%token <punctuation> BITWISE_SHIFT_LEFT "<<"
87%token <punctuation> BITWISE_SHIFT_LEFT_EQUALS "<<="
88%token <punctuation> BITWISE_SHIFT_RIGHT ">>"
89%token <punctuation> BITWISE_SHIFT_RIGHT_EQUALS ">>="
90%token <punctuation> BITWISE_SHIFT_RIGHT_ZERO_FILL ">>>"
91%token <punctuation> BITWISE_SHIFT_RIGHT_ZERO_FILL_EQUALS ">>>="
92%token <punctuation> NOT_EQUAL "!="
93%token <punctuation> DIV_EQUALS "/="
94%token <punctuation> EQUALS "=="
95%token <punctuation> GREATER_THAN ">"
96%token <punctuation> GT_EQUAL ">="
97%token <punctuation> LOGICAL_AND "&&"
98%token <punctuation> LOGICAL_OR "||"
99%token <punctuation> LOGICAL_NOT "!!"
100%token <punctuation> LS_EQUAL "<="
101%token <punctuation> MINUS "-"
102%token <punctuation> MINUS_EQUALS "-="
103%token <punctuation> MOD "%"
104%token <punctuation> MOD_EQUALS "%="
105%token <punctuation> MULTIPLY "*"
106%token <punctuation> MULTIPLY_EQUALS "*="
107%token <punctuation> PLUS "+"
108%token <punctuation> PLUS_EQUALS "+="
109%token <punctuation> INCREMENT "++"
110%token <punctuation> DECREMENT "--"
111%token <punctuation> DIV "/"
112%token <punctuation> COLON ":"
113%token <punctuation> COMMA ","
114%token <punctuation> DOT "."
115%token <punctuation> LESS_THAN "<"
116%token <punctuation> LINE_TERMINATOR "\n"
117%token <punctuation> SEMICOLON ";"
118%token <punctuation> ONES_COMPLIMENT "~"
119
120
121;; -----------------------------
122;; Block & Parenthesis terminals
123;; -----------------------------
124%type <block> ;;syntax "\\s(\\|\\s)" matchdatatype block
125%token <block> PAREN_BLOCK "(OPEN_PARENTHESIS CLOSE_PARENTHESIS)"
126%token <block> BRACE_BLOCK "(START_BLOCK END_BLOCK)"
127%token <block> BRACK_BLOCK "(OPEN_SQ_BRACKETS CLOSE_SQ_BRACKETS)"
128
129%token <open-paren> OPEN_PARENTHESIS "("
130%token <close-paren> CLOSE_PARENTHESIS ")"
131
132%token <open-paren> START_BLOCK "{"
133%token <close-paren> END_BLOCK "}"
134
135%token <open-paren> OPEN_SQ_BRACKETS "["
136%token <close-paren> CLOSE_SQ_BRACKETS "]"
137
138
139;; -----------------
140;; Keyword terminals
141;; -----------------
142
143;; Generate a keyword analyzer
144%type <keyword> ;;syntax "\\(\\sw\\|\\s_\\)+" matchdatatype keyword
145
146%keyword IF "if"
147%put IF summary
148"if (<expr>) <stmt> [else <stmt>] (jv)"
149
150%keyword BREAK "break"
151%put BREAK summary
152"break [<label>] ;"
153
154%keyword CONTINUE "continue"
155%put CONTINUE summary
156"continue [<label>] ;"
157
158%keyword ELSE "else"
159%put ELSE summary
160"if (<expr>) <stmt> else <stmt>"
161
162
163%keyword FOR "for"
164%put FOR summary
165"for ([<init-expr>]; [<expr>]; [<update-expr>]) <stmt>"
166
167
168%keyword FUNCTION "function"
169%put FUNCTION summary
170"function declaration blah blah"
171
172%keyword THIS "this"
173%put THIS summary
174"this"
175
176
177%keyword RETURN "return"
178%put RETURN summary
179"return [<expr>] ;"
180
181%keyword WHILE "while"
182%put WHILE summary
183"while (<expr>) <stmt> | do <stmt> while (<expr>);"
184
185%keyword VOID_SYMBOL "void"
186%put VOID_SYMBOL summary
187"Method return type: void <name> ..."
188
189
190
191%keyword NEW "new"
192%put NEW summary
193"new <objecttype> - Creates a new object."
194
195%keyword DELETE "delete"
196%put DELETE summary
197"delete(<objectreference>) - Deletes the object."
198
199%keyword VAR "var"
200%put VAR summary
201"var <variablename> [= value];"
202
203%keyword WITH "with"
204%put WITH summary
205"with "
206
207%keyword TYPEOF "typeof"
208%put TYPEOF summary
209"typeof "
210
211%keyword IN "in"
212%put IN summary
213"in something"
214
215
216;; -----------------
217;; Literal terminals
218;; -----------------
219
220;;the .y file uses VARIABLE as IDENTIFIER, which seems a bit evil
221;; it think the normal .wy convention is better than this
222%type <symbol> ;;syntax "\\(\\sw\\|\\s_\\)+"
223%token <symbol> VARIABLE
224
225%type <string> ;;syntax "\\s\"" matchdatatype sexp
226%token <string> STRING
227
228%type <number> ;;syntax semantic-lex-number-expression
229%token <number> NUMBER
230
231
232%token FALSE
233%token TRUE
234%token QUERY
235
236
237%token NULL_TOKEN
238
239;;%token UNDEFINED_TOKEN
240;;%token INFINITY
241
242;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
243;; associativity and stuff
244%left PLUS MINUS
245%left MULTIPLY DIV MOD
246
247%nonassoc FALSE
248%nonassoc HIGHER_THAN_FALSE
249%nonassoc ELSE
250%nonassoc LOWER_THAN_CLOSE_PARENTHESIS
251%nonassoc CLOSE_PARENTHESIS
252
253%%
254
255Program : SourceElement
256 ;
257
258SourceElement : Statement
259 | FunctionDeclaration
260 ;
261
262Statement : Block
263 | VariableStatement
264 | EmptyStatement
265 | ExpressionStatement
266 | IfStatement
267 | IterationExpression
268 | ContinueStatement
269 | BreakStatement
270 | ReturnStatement
271 | WithStatement
272 ;
273
274FunctionDeclaration : FUNCTION VARIABLE FormalParameterListBlock Block
275 (FUNCTION-TAG $2 nil $3)
276 ;
277
278FormalParameterListBlock : PAREN_BLOCK
279 (EXPANDFULL $1 FormalParameterList)
280 ;
281
282FormalParameterList: OPEN_PARENTHESIS
283 ()
284 | VARIABLE
285 (VARIABLE-TAG $1 nil nil)
286 | CLOSE_PARENTHESIS
287 ()
288 | COMMA
289 ()
290 ;
291
292StatementList : Statement
293 | StatementList Statement
294 ;
295
296Block : BRACE_BLOCK
297 ;; If you want to parse the body of the function
298 ;; ( EXPANDFULL $1 BlockExpand )
299 ;
300
301BlockExpand: START_BLOCK StatementList END_BLOCK
302 | START_BLOCK END_BLOCK
303 ;
304
305VariableStatement : VAR VariableDeclarationList SEMICOLON
306 (VARIABLE-TAG $2 nil nil)
307 ;
308
309VariableDeclarationList : VariableDeclaration
310 (list $1)
311 | VariableDeclarationList COMMA VariableDeclaration
312 (append $1 (list $3))
313 ;
314
315VariableDeclaration : VARIABLE
316 (append (list $1 nil) $region)
317 | VARIABLE Initializer
318 (append (cons $1 $2) $region)
319 ;
320
321Initializer : ASSIGN_SYMBOL AssignmentExpression
322 (list $2)
323 ;
324
325EmptyStatement : SEMICOLON
326 ;
327
328ExpressionStatement : Expression SEMICOLON
329 ;
330
331IfStatement : IF OPEN_PARENTHESIS Expression CLOSE_PARENTHESIS Statement %prec HIGHER_THAN_FALSE
332 | IF OPEN_PARENTHESIS Expression CLOSE_PARENTHESIS Statement ELSE Statement
333 | IF OPEN_PARENTHESIS FALSE CLOSE_PARENTHESIS Statement
334 | IF OPEN_PARENTHESIS LeftHandSideExpression AssignmentOperator AssignmentExpression CLOSE_PARENTHESIS Statement
335 ;
336
337IterationExpression : WHILE OPEN_PARENTHESIS Expression CLOSE_PARENTHESIS Statement %prec HIGHER_THAN_FALSE
338 | WHILE OPEN_PARENTHESIS FALSE CLOSE_PARENTHESIS Statement
339 | WHILE OPEN_PARENTHESIS LeftHandSideExpression AssignmentOperator AssignmentExpression CLOSE_PARENTHESIS Statement
340 | FOR OPEN_PARENTHESIS OptionalExpression SEMICOLON OptionalExpression SEMICOLON OptionalExpression CLOSE_PARENTHESIS Statement
341 | FOR OPEN_PARENTHESIS VAR VariableDeclarationList SEMICOLON OptionalExpression SEMICOLON OptionalExpression CLOSE_PARENTHESIS Statement
342 | FOR OPEN_PARENTHESIS LeftHandSideExpression IN Expression CLOSE_PARENTHESIS Statement
343 | FOR OPEN_PARENTHESIS VAR VARIABLE OptionalInitializer IN Expression CLOSE_PARENTHESIS Statement
344 ;
345
346ContinueStatement : CONTINUE SEMICOLON
347 ;
348
349;;JAVE break needs labels
350BreakStatement : BREAK SEMICOLON
351 ;; | BREAK identifier SEMICOLON
352 ;
353
354ReturnStatement : RETURN Expression SEMICOLON
355 | RETURN SEMICOLON
356 ;
357
358WithStatement : WITH OPEN_PARENTHESIS Expression CLOSE_PARENTHESIS Statement
359 ;
360
361OptionalInitializer : Initializer
362 |
363 ;
364
365PrimaryExpression : THIS
366 | VARIABLE
367 | NUMBER
368 | STRING
369 | NULL_TOKEN
370 | TRUE
371 | FALSE
372 | OPEN_PARENTHESIS Expression CLOSE_PARENTHESIS
373 ;
374
375MemberExpression : PrimaryExpression
376 | MemberExpression OPEN_SQ_BRACKETS Expression CLOSE_SQ_BRACKETS
377 | MemberExpression DOT VARIABLE
378 | NEW MemberExpression Arguments
379 ;
380
381NewExpression : MemberExpression
382 | NEW NewExpression
383 ;
384
385CallExpression : MemberExpression Arguments
386 | CallExpression Arguments
387 | CallExpression OPEN_SQ_BRACKETS Expression CLOSE_SQ_BRACKETS
388 | CallExpression DOT VARIABLE
389 ;
390
391Arguments : OPEN_PARENTHESIS CLOSE_PARENTHESIS
392 | OPEN_PARENTHESIS ArgumentList CLOSE_PARENTHESIS
393 ;
394
395ArgumentList : AssignmentExpression
396 | ArgumentList COMMA AssignmentExpression
397 ;
398
399LeftHandSideExpression : NewExpression
400 | CallExpression
401 ;
402
403PostfixExpression : LeftHandSideExpression
404 | LeftHandSideExpression INCREMENT
405 | LeftHandSideExpression DECREMENT
406 ;
407
408UnaryExpression : PostfixExpression
409 | DELETE UnaryExpression
410 | VOID_SYMBOL UnaryExpression
411 | TYPEOF UnaryExpression
412 | INCREMENT UnaryExpression
413 | DECREMENT UnaryExpression
414 | PLUS UnaryExpression
415 | MINUS UnaryExpression
416 | ONES_COMPLIMENT UnaryExpression
417 | LOGICAL_NOT UnaryExpression
418 ;
419
420MultiplicativeExpression : UnaryExpression
421 | MultiplicativeExpression MULTIPLY UnaryExpression
422 | MultiplicativeExpression DIV UnaryExpression
423 | MultiplicativeExpression MOD UnaryExpression
424 ;
425
426AdditiveExpression : MultiplicativeExpression
427 | AdditiveExpression PLUS MultiplicativeExpression
428 | AdditiveExpression MINUS MultiplicativeExpression
429 ;
430
431ShiftExpression : AdditiveExpression
432 | ShiftExpression BITWISE_SHIFT_LEFT AdditiveExpression
433 | ShiftExpression BITWISE_SHIFT_RIGHT AdditiveExpression
434 | ShiftExpression BITWISE_SHIFT_RIGHT_ZERO_FILL AdditiveExpression
435 ;
436
437RelationalExpression : ShiftExpression
438 | RelationalExpression LESS_THAN ShiftExpression
439 | RelationalExpression GREATER_THAN ShiftExpression
440 | RelationalExpression LS_EQUAL ShiftExpression
441 | RelationalExpression GT_EQUAL ShiftExpression
442 ;
443
444EqualityExpression : RelationalExpression
445 | EqualityExpression EQUALS RelationalExpression
446 | EqualityExpression NOT_EQUAL RelationalExpression
447 ;
448
449BitwiseANDExpression : EqualityExpression
450 | BitwiseANDExpression BITWISE_AND EqualityExpression
451 ;
452
453BitwiseXORExpression : BitwiseANDExpression
454 | BitwiseXORExpression BITWISE_EXCLUSIVE_OR BitwiseANDExpression
455 ;
456
457BitwiseORExpression : BitwiseXORExpression
458 | BitwiseORExpression BITWISE_OR BitwiseXORExpression
459 ;
460
461LogicalANDExpression : BitwiseORExpression
462 | LogicalANDExpression LOGICAL_AND BitwiseORExpression
463 ;
464
465LogicalORExpression : LogicalANDExpression
466 | LogicalORExpression LOGICAL_OR LogicalANDExpression
467 ;
468
469ConditionalExpression : LogicalORExpression
470 | LogicalORExpression QUERY AssignmentExpression COLON AssignmentExpression
471 ;
472
473AssignmentExpression : ConditionalExpression
474 | LeftHandSideExpression AssignmentOperator AssignmentExpression %prec LOWER_THAN_CLOSE_PARENTHESIS
475 ;
476
477AssignmentOperator : ASSIGN_SYMBOL
478 | MULTIPLY_EQUALS
479 | DIV_EQUALS
480 | MOD_EQUALS
481 | PLUS_EQUALS
482 | MINUS_EQUALS
483 | BITWISE_SHIFT_LEFT_EQUALS
484 | BITWISE_SHIFT_RIGHT_EQUALS
485 | BITWISE_SHIFT_RIGHT_ZERO_FILL_EQUALS
486 | BITWISE_AND_EQUALS
487 | BITWISE_EXCLUSIVE_OR_EQUALS
488 | BITWISE_OR_EQUALS
489 ;
490
491Expression : AssignmentExpression
492 | Expression COMMA AssignmentExpression
493 ;
494
495OptionalExpression : Expression
496 |
497 ;
498
499%%
500
501;;here something like:
502;;(define-lex wisent-java-tags-lexer
503;; should go
504(define-lex javascript-lexer-jv
505"javascript thingy"
506;;std stuff
507 semantic-lex-ignore-whitespace
508 semantic-lex-ignore-newline
509 semantic-lex-ignore-comments
510
511 ;;stuff generated from the wy file(one for each "type" declaration)
512 wisent-javascript-jv-wy--<number>-regexp-analyzer
513 wisent-javascript-jv-wy--<string>-sexp-analyzer
514
515 wisent-javascript-jv-wy--<keyword>-keyword-analyzer
516
517 wisent-javascript-jv-wy--<symbol>-regexp-analyzer
518 wisent-javascript-jv-wy--<punctuation>-string-analyzer
519 wisent-javascript-jv-wy--<block>-block-analyzer
520
521
522 ;;;;more std stuff
523 semantic-lex-default-action
524 )
525
526;;; javascript-jv.wy ends here
diff --git a/etc/grammars/make.by b/etc/grammars/make.by
new file mode 100644
index 00000000000..dab4472b737
--- /dev/null
+++ b/etc/grammars/make.by
@@ -0,0 +1,168 @@
1;;; make.by -- BY notation for Makefiles.
2
3;; Copyright (C) 1999-2011 Free Software Foundation, Inc.
4;;
5;; Author: Eric M. Ludlam <zappo@gnu.org>
6;; David Ponce <david@dponce.com>
7;; Klaus Berndl <klaus.berndl@sdm.de>
8;;
9;; This file is part of GNU Emacs.
10
11;; GNU Emacs is free software: you can redistribute it and/or modify
12;; it under the terms of the GNU General Public License as published by
13;; the Free Software Foundation, either version 3 of the License, or
14;; (at your option) any later version.
15
16;; GNU Emacs is distributed in the hope that it will be useful,
17;; but WITHOUT ANY WARRANTY; without even the implied warranty of
18;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19;; GNU General Public License for more details.
20
21;; You should have received a copy of the GNU General Public License
22;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
23
24%package semantic-make-by
25
26%languagemode makefile-mode
27%start Makefile
28
29;; This was always a test case.
30%quotemode backquote
31
32%token IF "if"
33%token IFDEF "ifdef"
34%token IFNDEF "ifndef"
35%token IFEQ "ifeq"
36%token IFNEQ "ifneq"
37%token ELSE "else"
38%token ENDIF "endif"
39%token INCLUDE "include"
40
41%put { IF ELSE ENDIF } summary "Conditional: if (expression) ... else ... endif"
42%put IFDEF summary "Conditional: ifdef (expression) ... else ... endif"
43%put IFNDEF summary "Conditional: ifndef (expression) ... else ... endif"
44%put IFEQ summary "Conditional: ifeq (expression) ... else ... endif"
45%put IFNEQ summary "Conditional: ifneq (expression) ... else ... endif"
46%put INCLUDE summary "Macro: include filename1 filename2 ..."
47
48%token <punctuation> COLON "\\`[:]\\'"
49%token <punctuation> PLUS "\\`[+]\\'"
50%token <punctuation> EQUAL "\\`[=]\\'"
51%token <punctuation> DOLLAR "\\`[$]\\'"
52%token <punctuation> BACKSLASH "\\`[\\]\\'"
53
54%%
55
56Makefile : bol newline (nil)
57 | bol variable
58 ( ,@$2 )
59 | bol rule
60 ( ,@$2 )
61 | bol conditional
62 ( ,@$2 )
63 | bol include
64 ( ,@$2 )
65 | whitespace ( nil )
66 | newline ( nil )
67 ;
68
69variable: symbol opt-whitespace equals opt-whitespace element-list
70 (VARIABLE-TAG ,$1 nil ,$5)
71 ;
72
73rule: targets opt-whitespace colons opt-whitespace element-list commands
74 (FUNCTION-TAG ,$1 nil ,$5)
75 ;
76
77targets: target opt-whitespace targets
78 ( (car ,$1) (car ,@$3) )
79 | target
80 ( (car ,$1) )
81 ;
82
83target: sub-target target
84 ( (concat (car ,$1) (car ,@$3) ) )
85 | sub-target
86 ( (car ,$1) )
87 ;
88
89sub-target: symbol
90 | string
91 | varref
92 ;
93
94conditional: IF some-whitespace symbol newline
95 ( nil )
96 | IFDEF some-whitespace symbol newline
97 ( nil )
98 | IFNDEF some-whitespace symbol newline
99 ( nil )
100 | IFEQ some-whitespace expression newline
101 ( nil )
102 | IFNEQ some-whitespace expression newline
103 ( nil )
104 | ELSE newline
105 ( nil )
106 | ENDIF newline
107 ( nil )
108 ;
109
110expression : semantic-list
111 ;
112
113include: INCLUDE some-whitespace element-list
114 (INCLUDE-TAG ,$3 nil)
115 ;
116
117equals: COLON EQUAL ()
118 | PLUS EQUAL ()
119 | EQUAL ()
120 ;
121
122colons: COLON COLON ()
123 | COLON ()
124 ;
125
126element-list: elements newline
127 ( ,@$1 )
128 ;
129
130elements: element some-whitespace elements
131 ( ,@$1 ,@$3 )
132 | element
133 ( ,@$1 )
134 | ;;EMPTY
135 ;
136
137element: sub-element element
138 ( (concat (car ,$1) (car ,$2)) )
139 | ;;EMPTY
140 ;
141
142sub-element: symbol
143 | string
144 | punctuation
145 | semantic-list
146 ( (buffer-substring-no-properties
147 (identity start) (identity end)) )
148 ;
149
150varref: DOLLAR semantic-list
151 ( (buffer-substring-no-properties (identity start) (identity end)) )
152 ;
153
154commands: bol shell-command newline commands
155 ( ,$1 ,@$2 )
156 | ;;EMPTY
157 ( )
158 ;
159
160opt-whitespace : some-whitespace ( nil )
161 | ;;EMPTY
162 ;
163
164some-whitespace : whitespace some-whitespace (nil)
165 | whitespace (nil)
166 ;
167
168;;; make.by ends here
diff --git a/etc/grammars/python.wy b/etc/grammars/python.wy
new file mode 100644
index 00000000000..a0af813e5e8
--- /dev/null
+++ b/etc/grammars/python.wy
@@ -0,0 +1,1132 @@
1;;; python.wy -- LALR grammar for Python
2
3;; Copyright (C) 2002-2011 Free Software Foundation, Inc.
4;; Copyright (C) 2001-2010 Python Software Foundation
5
6;; Author: Richard Kim <ryk@dspwiz.com>
7;; Maintainer: Richard Kim <ryk@dspwiz.com>
8;; Created: June 2002
9;; Keywords: syntax
10;;
11;; This file is part of GNU Emacs.
12
13;; GNU Emacs is free software: you can redistribute it and/or modify
14;; it under the terms of the GNU General Public License as published by
15;; the Free Software Foundation, either version 3 of the License, or
16;; (at your option) any later version.
17
18;; GNU Emacs is distributed in the hope that it will be useful,
19;; but WITHOUT ANY WARRANTY; without even the implied warranty of
20;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21;; GNU General Public License for more details.
22
23;; You should have received a copy of the GNU General Public License
24;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
25
26;;; Commentary:
27;;
28;; This is an LALR python parser that follows the official python
29;; grammar closely with very few exceptions. The Python grammar is
30;; used and reproduced under the following license:
31;;
32;; PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
33;; --------------------------------------------
34;; 1. This LICENSE AGREEMENT is between the Python Software Foundation
35;; ("PSF"), and the Individual or Organization ("Licensee") accessing
36;; and otherwise using this software ("Python") in source or binary
37;; form and its associated documentation.
38;;
39;; 2. Subject to the terms and conditions of this License Agreement,
40;; PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide
41;; license to reproduce, analyze, test, perform and/or display
42;; publicly, prepare derivative works, distribute, and otherwise use
43;; Python alone or in any derivative version, provided, however, that
44;; PSF's License Agreement and PSF's notice of copyright, i.e.,
45;; "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
46;; 2009, 2010 Python Software Foundation; All Rights Reserved" are
47;; retained in Python alone or in any derivative version prepared by
48;; Licensee.
49;;
50;; 3. In the event Licensee prepares a derivative work that is based
51;; on or incorporates Python or any part thereof, and wants to make
52;; the derivative work available to others as provided herein, then
53;; Licensee hereby agrees to include in any such work a brief summary
54;; of the changes made to Python.
55;;
56;; 4. PSF is making Python available to Licensee on an "AS IS"
57;; basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
58;; IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
59;; DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
60;; FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
61;; INFRINGE ANY THIRD PARTY RIGHTS.
62;;
63;; 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
64;; FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A
65;; RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, OR
66;; ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
67;;
68;; 6. This License Agreement will automatically terminate upon a
69;; material breach of its terms and conditions.
70;;
71;; 7. Nothing in this License Agreement shall be deemed to create any
72;; relationship of agency, partnership, or joint venture between PSF
73;; and Licensee. This License Agreement does not grant permission to
74;; use PSF trademarks or trade name in a trademark sense to endorse or
75;; promote products or services of Licensee, or any third party.
76;;
77;; 8. By copying, installing or otherwise using Python, Licensee
78;; agrees to be bound by the terms and conditions of this License
79;; Agreement.
80
81;;; To do:
82;;
83;; * Verify that semantic-lex-python-number regexp is correct.
84
85;; --------
86;; Settings
87;; --------
88
89%package wisent-python-wy
90
91%languagemode python-mode
92
93;; The default start symbol
94%start goal
95;; Alternate entry points
96;; - Needed by partial re-parse
97%start function_parameter
98%start paren_class
99%start indented_block
100;; - Needed by EXPANDFULL clauses
101%start function_parameters
102%start paren_classes
103%start indented_block_body
104
105;; -------------------------------
106;; Misc. Python specific terminals
107;; -------------------------------
108;; The value of these tokens are for documentation only, they are not
109;; used by the lexer.
110%token <charquote> BACKSLASH "\\"
111%token <newline> NEWLINE "\n"
112%token <indentation> INDENT "^\\s-+"
113%token <indentation> DEDENT "[^:INDENT:]"
114%token <indentation> INDENT_BLOCK "(INDENT DEDENT)"
115
116;; -----------------------------
117;; Block & Parenthesis terminals
118;; -----------------------------
119%type <block> ;;syntax "\\s(\\|\\s)" matchdatatype block
120
121%token <block> PAREN_BLOCK "(LPAREN RPAREN)"
122%token <block> BRACE_BLOCK "(LBRACE RBRACE)"
123%token <block> BRACK_BLOCK "(LBRACK RBRACK)"
124
125%token <open-paren> LPAREN "("
126%token <close-paren> RPAREN ")"
127%token <open-paren> LBRACE "{"
128%token <close-paren> RBRACE "}"
129%token <open-paren> LBRACK "["
130%token <close-paren> RBRACK "]"
131
132;; ------------------
133;; Operator terminals
134;; ------------------
135%type <punctuation> ;;syntax "\\(\\s.\\|\\s$\\|\\s'\\)+" matchdatatype string
136
137%token <punctuation> LTLTEQ "<<="
138%token <punctuation> GTGTEQ ">>="
139%token <punctuation> EXPEQ "**="
140%token <punctuation> DIVDIVEQ "//="
141%token <punctuation> DIVDIV "//"
142%token <punctuation> LTLT "<<"
143%token <punctuation> GTGT ">>"
144%token <punctuation> EXPONENT "**"
145%token <punctuation> EQ "=="
146%token <punctuation> GE ">="
147%token <punctuation> LE "<="
148%token <punctuation> PLUSEQ "+="
149%token <punctuation> MINUSEQ "-="
150%token <punctuation> MULTEQ "*="
151%token <punctuation> DIVEQ "/="
152%token <punctuation> MODEQ "%="
153%token <punctuation> AMPEQ "&="
154%token <punctuation> OREQ "|="
155%token <punctuation> HATEQ "^="
156%token <punctuation> LTGT "<>"
157%token <punctuation> NE "!="
158%token <punctuation> HAT "^"
159%token <punctuation> LT "<"
160%token <punctuation> GT ">"
161%token <punctuation> AMP "&"
162%token <punctuation> MULT "*"
163%token <punctuation> DIV "/"
164%token <punctuation> MOD "%"
165%token <punctuation> PLUS "+"
166%token <punctuation> MINUS "-"
167%token <punctuation> PERIOD "."
168%token <punctuation> TILDE "~"
169%token <punctuation> BAR "|"
170%token <punctuation> COLON ":"
171%token <punctuation> SEMICOLON ";"
172%token <punctuation> COMMA ","
173%token <punctuation> ASSIGN "="
174%token <punctuation> BACKQUOTE "`"
175
176
177;; -----------------
178;; Literal terminals
179;; -----------------
180%token <string> STRING_LITERAL
181
182%type <number> ;;syntax semantic-lex-number-expression
183%token <number> NUMBER_LITERAL
184
185%type <symbol> ;;syntax "\\(\\sw\\|\\s_\\)+"
186%token <symbol> NAME
187
188;; -----------------
189;; Keyword terminals
190;; -----------------
191%type <keyword> ;;syntax "\\(\\sw\\|\\s_\\)+" matchdatatype keyword
192
193%keyword AND "and"
194%put AND summary
195"Logical AND binary operator ... "
196
197%keyword AS "as"
198%put AS summary
199"EXPR as NAME makes value of EXPR available as variable NAME"
200
201%keyword ASSERT "assert"
202%put ASSERT summary
203"Raise AssertionError exception if <expr> is false"
204
205%keyword BREAK "break"
206%put BREAK summary
207"Terminate 'for' or 'while' loop"
208
209%keyword CLASS "class"
210%put CLASS summary
211"Define a new class"
212
213%keyword CONTINUE "continue"
214%put CONTINUE summary
215"Skip to the next iteration of enclosing 'for' or 'while' loop"
216
217%keyword DEF "def"
218%put DEF summary
219"Define a new function"
220
221%keyword DEL "del"
222%put DEL summary
223"Delete specified objects, i.e., undo what assignment did"
224
225%keyword ELIF "elif"
226%put ELIF summary
227"Shorthand for 'else if' following an 'if' statement"
228
229%keyword ELSE "else"
230%put ELSE summary
231"Start the 'else' clause following an 'if' statement"
232
233%keyword EXCEPT "except"
234%put EXCEPT summary
235"Specify exception handlers along with 'try' keyword"
236
237%keyword EXEC "exec"
238%put EXEC summary
239"Dynamically execute Python code"
240
241%keyword FINALLY "finally"
242%put FINALLY summary
243"Specify code to be executed after 'try' statements whether or not an exception occurred"
244
245%keyword FOR "for"
246%put FOR summary
247"Start a 'for' loop"
248
249%keyword FROM "from"
250%put FROM summary
251"Modify behavior of 'import' statement"
252
253%keyword GLOBAL "global"
254%put GLOBAL summary
255"Declare one or more symbols as global symbols"
256
257%keyword IF "if"
258%put IF summary
259"Start 'if' conditional statement"
260
261%keyword IMPORT "import"
262%put IMPORT summary
263"Load specified modules"
264
265%keyword IN "in"
266%put IN summary
267"Part of 'for' statement "
268
269%keyword IS "is"
270%put IS summary
271"Binary operator that tests for object equality"
272
273%keyword LAMBDA "lambda"
274%put LAMBDA summary
275"Create anonymous function"
276
277%keyword NOT "not"
278%put NOT summary
279"Unary boolean negation operator"
280
281%keyword OR "or"
282%put OR summary
283"Binary logical 'or' operator"
284
285%keyword PASS "pass"
286%put PASS summary
287"Statement that does nothing"
288
289%keyword PRINT "print"
290%put PRINT summary
291"Print each argument to standard output"
292
293%keyword RAISE "raise"
294%put RAISE summary
295"Raise an exception"
296
297%keyword RETURN "return"
298%put RETURN summary
299"Return from a function"
300
301%keyword TRY "try"
302%put TRY summary
303"Start of statements protected by exception handlers"
304
305%keyword WHILE "while"
306%put WHILE summary
307"Start a 'while' loop"
308
309%keyword YIELD "yield"
310%put YIELD summary
311"Create a generator function"
312
313%%
314
315;;;****************************************************************************
316;;;@ goal
317;;;****************************************************************************
318
319;; simple_stmt are statements that do not involve INDENT tokens
320;; compound_stmt are statements that involve INDENT tokens
321goal
322 : NEWLINE
323 | simple_stmt
324 | compound_stmt
325 ;
326
327;;;****************************************************************************
328;;;@ simple_stmt
329;;;****************************************************************************
330
331;; simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE
332simple_stmt
333 : small_stmt_list semicolon_opt NEWLINE
334 ;
335
336;; small_stmt (';' small_stmt)*
337small_stmt_list
338 : small_stmt
339 | small_stmt_list SEMICOLON small_stmt
340 ;
341
342small_stmt
343 : expr_stmt
344 | print_stmt
345 | del_stmt
346 | pass_stmt
347 | flow_stmt
348 | import_stmt
349 | global_stmt
350 | exec_stmt
351 | assert_stmt
352 ;
353
354;;;============================================================================
355;;;@@ print_stmt
356;;;============================================================================
357
358;; print_stmt: 'print' [ test (',' test)* [','] ]
359;; | '>>' test [ (',' test)+ [','] ]
360print_stmt
361 : PRINT print_stmt_trailer
362 (CODE-TAG $1 nil)
363 ;
364
365;; [ test (',' test)* [','] ] | '>>' test [ (',' test)+ [','] ]
366print_stmt_trailer
367 : test_list_opt
368 ()
369 | GTGT test trailing_test_list_with_opt_comma_opt
370 ()
371 ;
372
373;; [ (',' test)+ [','] ]
374trailing_test_list_with_opt_comma_opt
375 : ;;EMPTY
376 | trailing_test_list comma_opt
377 ()
378 ;
379
380;; (',' test)+
381trailing_test_list
382 : COMMA test
383 ()
384 | trailing_test_list COMMA test
385 ()
386 ;
387
388;;;============================================================================
389;;;@@ expr_stmt
390;;;============================================================================
391
392;; expr_stmt: testlist (augassign testlist | ('=' testlist)*)
393expr_stmt
394 : testlist expr_stmt_trailer
395 (if (and $2 (stringp $1) (string-match "^\\(\\sw\\|\\s_\\)+$" $1))
396 ;; If this is an assignment statement and left side is a symbol,
397 ;; then generate a 'variable token, else return 'code token.
398 (VARIABLE-TAG $1 nil nil)
399 (CODE-TAG $1 nil))
400 ;
401
402;; Could be EMPTY because of eq_testlist_zom.
403;; (augassign testlist | ('=' testlist)*)
404expr_stmt_trailer
405 : augassign testlist
406 | eq_testlist_zom
407 ;
408
409;; Could be EMPTY!
410;; ('=' testlist)*
411eq_testlist_zom
412 : ;;EMPTY
413 | eq_testlist_zom ASSIGN testlist
414 (identity $3)
415 ;
416
417;; augassign: '+=' | '-=' | '*=' | '/=' | '%=' | '&=' | '|=' | '^='
418;; | '<<=' | '>>=' | '**=' | '//='
419augassign
420 : PLUSEQ | MINUSEQ | MULTEQ | DIVEQ | MODEQ
421 | AMPEQ | OREQ | HATEQ | LTLTEQ
422 | GTGTEQ | EXPEQ | DIVDIVEQ
423 ;
424
425;;;============================================================================
426;;;@@ del_stmt
427;;;============================================================================
428
429;; del_stmt: 'del' exprlist
430del_stmt
431 : DEL exprlist
432 (CODE-TAG $1 nil)
433 ;
434
435;; exprlist: expr (',' expr)* [',']
436exprlist
437 : expr_list comma_opt
438 ()
439 ;
440
441;; expr (',' expr)*
442expr_list
443 : expr
444 ()
445 | expr_list COMMA expr
446 ()
447 ;
448
449;;;============================================================================
450;;;@@ pass_stmt
451;;;============================================================================
452
453;; pass_stmt: 'pass'
454pass_stmt
455 : PASS
456 (CODE-TAG $1 nil)
457 ;
458
459;;;============================================================================
460;;;@@ flow_stmt
461;;;============================================================================
462
463flow_stmt
464 : break_stmt
465 | continue_stmt
466 | return_stmt
467 | raise_stmt
468 | yield_stmt
469 ;
470
471;; break_stmt: 'break'
472break_stmt
473 : BREAK
474 (CODE-TAG $1 nil)
475 ;
476
477;; continue_stmt: 'continue'
478continue_stmt
479 : CONTINUE
480 (CODE-TAG $1 nil)
481 ;
482
483;; return_stmt: 'return' [testlist]
484return_stmt
485 : RETURN testlist_opt
486 (CODE-TAG $1 nil)
487 ;
488
489;; [testlist]
490testlist_opt
491 : ;;EMPTY
492 | testlist
493 ()
494 ;
495
496;; yield_stmt: 'yield' testlist
497yield_stmt
498 : YIELD
499 (CODE-TAG $1 nil)
500 | YIELD testlist
501 (CODE-TAG $1 nil)
502 ;
503
504;; raise_stmt: 'raise' [test [',' test [',' test]]]
505raise_stmt
506 : RAISE zero_one_two_or_three_tests
507 (CODE-TAG $1 nil)
508 ;
509
510;; [test [',' test [',' test]]]
511zero_one_two_or_three_tests
512 : ;;EMPTY
513 | test zero_one_or_two_tests
514 ()
515 ;
516
517;; [',' test [',' test]]
518zero_one_or_two_tests
519 : ;;EMPTY
520 | COMMA test zero_or_one_comma_test
521 ()
522 ;
523
524;; [',' test]
525zero_or_one_comma_test
526 : ;;EMPTY
527 | COMMA test
528 ()
529 ;
530
531;;;============================================================================
532;;;@@ import_stmt
533;;;============================================================================
534
535;; import_stmt : 'import' dotted_as_name (',' dotted_as_name)*
536;; | 'from' dotted_name 'import'
537;; ('*' | import_as_name (',' import_as_name)*)
538import_stmt
539 : IMPORT dotted_as_name_list
540 (INCLUDE-TAG $2 nil)
541 | FROM dotted_name IMPORT star_or_import_as_name_list
542 (INCLUDE-TAG $2 nil)
543 ;
544
545;; dotted_as_name (',' dotted_as_name)*
546dotted_as_name_list
547 : dotted_as_name
548 | dotted_as_name_list COMMA dotted_as_name
549 ;
550
551;; ('*' | import_as_name (',' import_as_name)*)
552star_or_import_as_name_list
553 : MULT
554 ()
555 | import_as_name_list
556 ()
557 ;
558
559;; import_as_name (',' import_as_name)*
560import_as_name_list
561 : import_as_name
562 ()
563 | import_as_name_list COMMA import_as_name
564 ()
565 ;
566
567;; import_as_name: NAME [NAME NAME]
568import_as_name
569 : NAME as_name_opt
570 ()
571 ;
572
573;; dotted_as_name: dotted_name [AS NAME]
574dotted_as_name
575 : dotted_name as_name_opt
576 ;
577
578;; [AS NAME]
579as_name_opt
580 : ;;EMPTY
581 | AS NAME
582 (identity $2)
583 ;
584
585;; dotted_name: NAME ('.' NAME)*
586dotted_name
587 : NAME
588 | dotted_name PERIOD NAME
589 (format "%s.%s" $1 $3)
590 ;
591
592;;;============================================================================
593;;;@@ global_stmt
594;;;============================================================================
595
596;; global_stmt: 'global' NAME (',' NAME)*
597global_stmt
598 : GLOBAL comma_sep_name_list
599 (CODE-TAG $1 nil)
600 ;
601
602;; NAME (',' NAME)*
603comma_sep_name_list
604 : NAME
605 | comma_sep_name_list COMMA NAME
606 ;
607
608;;;============================================================================
609;;;@@ exec_stmt
610;;;============================================================================
611
612;; exec_stmt: 'exec' expr ['in' test [',' test]]
613exec_stmt
614 : EXEC expr exec_trailer
615 (CODE-TAG $1 nil)
616 ;
617
618;; ['in' test [',' test]]
619exec_trailer
620 : ;;EMPTY
621 | IN test comma_test_opt
622 ()
623 ;
624
625;; [',' test]
626comma_test_opt
627 : ;;EMPTY
628 | COMMA test
629 ()
630 ;
631
632;;;============================================================================
633;;;@@ assert_stmt
634;;;============================================================================
635
636;; assert_stmt: 'assert' test [',' test]
637assert_stmt
638 : ASSERT test comma_test_opt
639 (CODE-TAG $1 nil)
640 ;
641
642;;;****************************************************************************
643;;;@ compound_stmt
644;;;****************************************************************************
645
646compound_stmt
647 : if_stmt
648 | while_stmt
649 | for_stmt
650 | try_stmt
651 | funcdef
652 | class_declaration
653 ;
654
655;;;============================================================================
656;;;@@ if_stmt
657;;;============================================================================
658
659;; if_stmt: 'if' test ':' suite ('elif' test ':' suite)* ['else' ':' suite]
660if_stmt
661 : IF test COLON suite elif_suite_pair_list else_suite_pair_opt
662 (CODE-TAG $1 nil)
663 ;
664
665;; ('elif' test ':' suite)*
666elif_suite_pair_list
667 : ;;EMPTY
668 | elif_suite_pair_list ELIF test COLON suite
669 ()
670 ;
671
672;; ['else' ':' suite]
673else_suite_pair_opt
674 : ;;EMPTY
675 | ELSE COLON suite
676 ()
677 ;
678
679;; This NT follows the COLON token for most compound statements.
680;; suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT
681suite
682 : simple_stmt
683 (list $1)
684 | NEWLINE indented_block
685 (progn $2)
686 ;
687
688indented_block
689 : INDENT_BLOCK
690 (EXPANDFULL $1 indented_block_body)
691 ;
692
693indented_block_body
694 : INDENT
695 ()
696 | DEDENT
697 ()
698 | simple_stmt
699 | compound_stmt
700 ;
701
702;;;============================================================================
703;;;@@ while_stmt
704;;;============================================================================
705
706;; while_stmt: 'while' test ':' suite ['else' ':' suite]
707while_stmt
708 : WHILE test COLON suite else_suite_pair_opt
709 (CODE-TAG $1 nil)
710 ;
711
712;;;============================================================================
713;;;@@ for_stmt
714;;;============================================================================
715
716;; for_stmt: 'for' exprlist 'in' testlist ':' suite ['else' ':' suite]
717for_stmt
718 : FOR exprlist IN testlist COLON suite else_suite_pair_opt
719 (CODE-TAG $1 nil)
720 ;
721
722;;;============================================================================
723;;;@@ try_stmt
724;;;============================================================================
725
726;; try_stmt: ('try' ':' suite (except_clause ':' suite)+ #diagram:break
727;; ['else' ':' suite] | 'try' ':' suite 'finally' ':' suite)
728try_stmt
729 : TRY COLON suite except_clause_suite_pair_list else_suite_pair_opt
730 (CODE-TAG $1 nil)
731 | TRY COLON suite FINALLY COLON suite
732 (CODE-TAG $1 nil)
733 ;
734
735;; (except_clause ':' suite)+
736except_clause_suite_pair_list
737 : except_clause COLON suite
738 ()
739 | except_clause_suite_pair_list except_clause COLON suite
740 ()
741 ;
742
743;; # NB compile.c makes sure that the default except clause is last
744;; except_clause: 'except' [test [',' test]]
745except_clause
746 : EXCEPT zero_one_or_two_test
747 ()
748 ;
749
750;; [test [',' test]]
751zero_one_or_two_test
752 : ;;EMPTY
753 | test zero_or_one_comma_test
754 ()
755 ;
756
757;;;============================================================================
758;;;@@ funcdef
759;;;============================================================================
760
761;; funcdef: 'def' NAME parameters ':' suite
762funcdef
763 : DEF NAME function_parameter_list COLON suite
764 (FUNCTION-TAG $2 nil $3)
765 ;
766
767function_parameter_list
768 : PAREN_BLOCK
769 (let ((wisent-python-EXPANDING-block t))
770 (EXPANDFULL $1 function_parameters))
771 ;
772
773;; parameters: '(' [varargslist] ')'
774function_parameters
775 : LPAREN
776 ()
777 | RPAREN
778 ()
779 | function_parameter COMMA
780 | function_parameter RPAREN
781 ;
782
783function_parameter
784 : fpdef_opt_test
785 ;; : NAME
786 ;; (VARIABLE-TAG $1 nil nil)
787 | MULT NAME
788 (VARIABLE-TAG $2 nil nil)
789 | EXPONENT NAME
790 (VARIABLE-TAG $2 nil nil)
791 ;
792
793;;;============================================================================
794;;;@@ class_declaration
795;;;============================================================================
796
797;; classdef: 'class' NAME ['(' testlist ')'] ':' suite
798class_declaration
799 : CLASS NAME paren_class_list_opt COLON suite
800 (TYPE-TAG $2 $1 ;; Name "class"
801 $5 ;; Members
802 (cons $3 nil) ;; (SUPERCLASSES . INTERFACES)
803 )
804 ;
805
806;; ['(' testlist ')']
807paren_class_list_opt
808 : ;;EMPTY
809 | paren_class_list
810 ;
811
812paren_class_list
813 : PAREN_BLOCK
814 (let ((wisent-python-EXPANDING-block t))
815 (mapcar 'semantic-tag-name (EXPANDFULL $1 paren_classes)))
816 ;
817
818;; parameters: '(' [varargslist] ')'
819paren_classes
820 : LPAREN
821 ()
822 | RPAREN
823 ()
824 | paren_class COMMA
825 (VARIABLE-TAG $1 nil nil)
826 | paren_class RPAREN
827 (VARIABLE-TAG $1 nil nil)
828 ;
829
830;; In general, the base class can be specified by a general expression
831;; which evalue to a class object, i.e., base classes are not just names!
832;; However base classes are names in most cases. Thus the
833;; non-terminals below work only with simple names. Even if the
834;; parser can parse general expressions, I don't see much benefit in
835;; generating a string of expression as base class "name".
836paren_class
837 : dotted_name
838 ;
839
840;;;****************************************************************************
841;;;@ test
842;;;****************************************************************************
843
844;; test: and_test ('or' and_test)* | lambdef
845test
846 : test_test
847 | lambdef
848 ;
849
850;; and_test ('or' and_test)*
851test_test
852 : and_test
853 | test_test OR and_test
854 ()
855 ;
856
857;; and_test: not_test ('and' not_test)*
858and_test
859 : not_test
860 | and_test AND not_test
861 ()
862 ;
863
864;; not_test: 'not' not_test | comparison
865not_test
866 : NOT not_test
867 ()
868 | comparison
869 ;
870
871;; comparison: expr (comp_op expr)*
872comparison
873 : expr
874 | comparison comp_op expr
875 ()
876 ;
877
878;; comp_op: '<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is' 'not'
879comp_op
880 : LT | GT | EQ | GE | LE | LTGT | NE | IN | NOT IN | IS | IS NOT
881 ;
882
883;; expr: xor_expr ('|' xor_expr)*
884expr
885 : xor_expr
886 | expr BAR xor_expr
887 ()
888 ;
889
890;; xor_expr: and_expr ('^' and_expr)*
891xor_expr
892 : and_expr
893 | xor_expr HAT and_expr
894 ()
895 ;
896
897;; and_expr: shift_expr ('&' shift_expr)*
898and_expr
899 : shift_expr
900 | and_expr AMP shift_expr
901 ()
902 ;
903
904;; shift_expr: arith_expr (('<<'|'>>') arith_expr)*
905shift_expr
906 : arith_expr
907 | shift_expr shift_expr_operators arith_expr
908 ()
909 ;
910
911;; ('<<'|'>>')
912shift_expr_operators
913 : LTLT
914 | GTGT
915 ;
916
917;; arith_expr: term (('+'|'-') term)*
918arith_expr
919 : term
920 | arith_expr plus_or_minus term
921 ()
922 ;
923
924;; ('+'|'-')
925plus_or_minus
926 : PLUS
927 | MINUS
928 ;
929
930;; term: factor (('*'|'/'|'%'|'//') factor)*
931term
932 : factor
933 | term term_operator factor
934 ()
935 ;
936
937term_operator
938 : MULT
939 | DIV
940 | MOD
941 | DIVDIV
942 ;
943
944;; factor: ('+'|'-'|'~') factor | power
945factor
946 : prefix_operators factor
947 ()
948 | power
949 ;
950
951;; ('+'|'-'|'~')
952prefix_operators
953 : PLUS
954 | MINUS
955 | TILDE
956 ;
957
958;; power: atom trailer* ('**' factor)*
959power
960 : atom trailer_zom exponent_zom
961 (concat $1
962 (if $2 (concat " " $2 " ") "")
963 (if $3 (concat " " $3) "")
964 )
965 ;
966
967trailer_zom
968 : ;;EMPTY
969 | trailer_zom trailer
970 ()
971 ;
972
973exponent_zom
974 : ;;EMPTY
975 | exponent_zom EXPONENT factor
976 ()
977 ;
978
979;; trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME
980trailer
981 : PAREN_BLOCK
982 ()
983 | BRACK_BLOCK
984 ()
985 | PERIOD NAME
986 ()
987 ;
988
989;; atom: '(' [testlist] ')' | '[' [listmaker] ']' | '{' [dictmaker] '}'
990;; | '`' testlist '`' | NAME | NUMBER | STRING+
991atom
992 : PAREN_BLOCK
993 ()
994 | BRACK_BLOCK
995 ()
996 | BRACE_BLOCK
997 ()
998 | BACKQUOTE testlist BACKQUOTE
999 ()
1000 | NAME
1001 | NUMBER_LITERAL
1002 | one_or_more_string
1003 ;
1004
1005test_list_opt
1006 : ;;EMPTY
1007 | testlist
1008 ()
1009 ;
1010
1011;; testlist: test (',' test)* [',']
1012testlist
1013 : comma_sep_test_list comma_opt
1014 ;
1015
1016;; test (',' test)*
1017comma_sep_test_list
1018 : test
1019 | comma_sep_test_list COMMA test
1020 (format "%s, %s" $1 $3)
1021 ;
1022
1023;; (read $1) and (read $2) were done before to peel away the double quotes.
1024;; However that does not work for single quotes, so it was taken out.
1025one_or_more_string
1026 : STRING_LITERAL
1027 | one_or_more_string STRING_LITERAL
1028 (concat $1 $2)
1029 ;
1030
1031;;;****************************************************************************
1032;;;@ lambdef
1033;;;****************************************************************************
1034
1035;; lambdef: 'lambda' [varargslist] ':' test
1036lambdef
1037 : LAMBDA varargslist_opt COLON test
1038 (format "%s %s" $1 (or $2 ""))
1039 ;
1040
1041;; [varargslist]
1042varargslist_opt
1043 : ;;EMPTY
1044 | varargslist
1045 ;
1046
1047;; varargslist: (fpdef ['=' test] ',')* ('*' NAME [',' '**' NAME] | '**' NAME)
1048;; | fpdef ['=' test] (',' fpdef ['=' test])* [',']
1049varargslist
1050 : fpdef_opt_test_list_comma_zom rest_args
1051 (nconc $2 $1)
1052 | fpdef_opt_test_list comma_opt
1053 ;
1054
1055;; ('*' NAME [',' '**' NAME] | '**' NAME)
1056rest_args
1057 : MULT NAME multmult_name_opt
1058 () ;;(VARIABLE-TAG $2 nil nil)
1059 | EXPONENT NAME
1060 () ;;(VARIABLE-TAG $2 nil nil)
1061 ;
1062
1063;; [',' '**' NAME]
1064multmult_name_opt
1065 : ;;EMPTY
1066 | COMMA EXPONENT NAME
1067 (VARIABLE-TAG $3 nil nil)
1068 ;
1069
1070fpdef_opt_test_list_comma_zom
1071 : ;;EMPTY
1072 | fpdef_opt_test_list_comma_zom fpdef_opt_test COMMA
1073 (nconc $2 $1)
1074 ;
1075
1076;; fpdef ['=' test] (',' fpdef ['=' test])*
1077fpdef_opt_test_list
1078 : fpdef_opt_test
1079 | fpdef_opt_test_list COMMA fpdef_opt_test
1080 (nconc $3 $1)
1081 ;
1082
1083;; fpdef ['=' test]
1084fpdef_opt_test
1085 : fpdef eq_test_opt
1086 ;
1087
1088;; fpdef: NAME | '(' fplist ')'
1089fpdef
1090 : NAME
1091 (VARIABLE-TAG $1 nil nil)
1092 ;; Below breaks the parser. Don't know why, but my guess is that
1093 ;; LPAREN/RPAREN clashes with the ones in function_parameters.
1094 ;; | LPAREN fplist RPAREN
1095 ;; (identity $2)
1096 ;
1097
1098;; fplist: fpdef (',' fpdef)* [',']
1099fplist
1100 : fpdef_list comma_opt
1101 ;
1102
1103;; fpdef (',' fpdef)*
1104fpdef_list
1105 : fpdef
1106 | fpdef_list COMMA fpdef
1107 ;
1108
1109;; ['=' test]
1110eq_test_opt
1111 : ;;EMPTY
1112 | ASSIGN test
1113 ()
1114 ;
1115
1116;;;****************************************************************************
1117;;;@ Misc
1118;;;****************************************************************************
1119
1120;; [',']
1121comma_opt
1122 : ;;EMPTY
1123 | COMMA
1124 ;
1125
1126;; [';']
1127semicolon_opt
1128 : ;;EMPTY
1129 | SEMICOLON
1130 ;
1131
1132;;; python.wy ends here
diff --git a/etc/grammars/scheme.by b/etc/grammars/scheme.by
new file mode 100644
index 00000000000..bc6612d4c70
--- /dev/null
+++ b/etc/grammars/scheme.by
@@ -0,0 +1,84 @@
1;;; scheme.by -- Scheme BNF language specification
2
3;; Copyright (C) 2001-2011 Free Software Foundation, Inc.
4
5;; This file is part of GNU Emacs.
6
7;; GNU Emacs is free software: you can redistribute it and/or modify
8;; it under the terms of the GNU General Public License as published by
9;; the Free Software Foundation, either version 3 of the License, or
10;; (at your option) any later version.
11
12;; GNU Emacs is distributed in the hope that it will be useful,
13;; but WITHOUT ANY WARRANTY; without even the implied warranty of
14;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15;; GNU General Public License for more details.
16
17;; You should have received a copy of the GNU General Public License
18;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
19
20%package semantic-scm-by
21
22%languagemode scheme-mode
23%start scheme
24
25%token DEFINE "define"
26%token DEFINE-MODULE "define-module"
27%token LOAD "load"
28
29%put DEFINE summary "Function: (define symbol expression)"
30%put DEFINE-MODULE summary "Function: (define-module (name arg1 ...)) "
31%put LOAD summary "Function: (load \"filename\")"
32
33%token <open-paren> OPENPAREN "("
34%token <close-paren> CLOSEPAREN ")"
35
36%%
37
38scheme : semantic-list
39 (EXPAND $1 scheme-list)
40 ;
41
42scheme-list : OPENPAREN scheme-in-list CLOSEPAREN
43 ( ,$2 )
44 ;
45
46scheme-in-list: DEFINE symbol expression
47 (VARIABLE-TAG $2 nil $3 )
48 | DEFINE name-args opt-doc sequence
49 (FUNCTION-TAG (car ,$2) nil (cdr ,$2) )
50 | DEFINE-MODULE name-args
51 (PACKAGE-TAG (nth (length $2) $2 ) nil)
52 | LOAD string
53 (INCLUDE-TAG (file-name-nondirectory (read $2)) (read $2) )
54 | symbol
55 (CODE-TAG $1 nil)
56 ;
57
58name-args: semantic-list
59 (EXPAND $1 name-arg-expand)
60 ;
61
62name-arg-expand : open-paren name-arg-expand
63 ( ,$2 )
64 | symbol name-arg-expand
65 ( ,(cons $1 ,$2) )
66 | ;; EMPTY
67 ( )
68 ;
69
70opt-doc : string
71 | ;; EMPTY
72 ;
73
74sequence : expression sequence
75 | expression
76 ;
77
78expression : symbol
79 | semantic-list
80 | string
81 | number
82 ;
83
84;;; scheme.by ends here
diff --git a/etc/grammars/wisent-grammar.el b/etc/grammars/wisent-grammar.el
new file mode 100644
index 00000000000..d7de1ee6f7b
--- /dev/null
+++ b/etc/grammars/wisent-grammar.el
@@ -0,0 +1,361 @@
1;;; wisent-grammar.el --- Wisent's input grammar mode
2
3;; Copyright (C) 2002-2011 Free Software Foundation, Inc.
4;;
5;; Author: David Ponce <david@dponce.com>
6;; Maintainer: David Ponce <david@dponce.com>
7;; Created: 26 Aug 2002
8;; Keywords: syntax
9;; This file is part of GNU Emacs.
10
11;; GNU Emacs is free software: you can redistribute it and/or modify
12;; it under the terms of the GNU General Public License as published by
13;; the Free Software Foundation, either version 3 of the License, or
14;; (at your option) any later version.
15
16;; GNU Emacs is distributed in the hope that it will be useful,
17;; but WITHOUT ANY WARRANTY; without even the implied warranty of
18;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19;; GNU General Public License for more details.
20
21;; You should have received a copy of the GNU General Public License
22;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
23
24;;; Commentary:
25;;
26;; Major mode for editing Wisent's input grammar (.wy) files.
27
28;;; Code:
29(require 'semantic)
30(require 'semantic/grammar)
31(require 'semantic/find)
32(require 'semantic/lex)
33(require 'semantic/wisent)
34(require 'semantic/bovine)
35
36(defsubst wisent-grammar-region-placeholder (symb)
37 "Given a $N placeholder symbol in SYMB, return a $regionN symbol.
38Return nil if $N is not a valid placeholder symbol."
39 (let ((n (symbol-name symb)))
40 (if (string-match "^[$]\\([1-9][0-9]*\\)$" n)
41 (intern (concat "$region" (match-string 1 n))))))
42
43(defun wisent-grammar-EXPAND (symb nonterm)
44 "Expand call to EXPAND grammar macro.
45Return the form to parse from within a nonterminal.
46SYMB is a $I placeholder symbol that gives the bounds of the area to
47parse.
48NONTERM is the nonterminal symbol to start with."
49 (unless (member nonterm (semantic-grammar-start))
50 (error "EXPANDFULL macro called with %s, but not used with %%start"
51 nonterm))
52 (let (($ri (wisent-grammar-region-placeholder symb)))
53 (if $ri
54 `(semantic-bovinate-from-nonterminal
55 (car ,$ri) (cdr ,$ri) ',nonterm)
56 (error "Invalid form (EXPAND %s %s)" symb nonterm))))
57
58(defun wisent-grammar-EXPANDFULL (symb nonterm)
59 "Expand call to EXPANDFULL grammar macro.
60Return the form to recursively parse an area.
61SYMB is a $I placeholder symbol that gives the bounds of the area.
62NONTERM is the nonterminal symbol to start with."
63 (unless (member nonterm (semantic-grammar-start))
64 (error "EXPANDFULL macro called with %s, but not used with %%start"
65 nonterm))
66 (let (($ri (wisent-grammar-region-placeholder symb)))
67 (if $ri
68 `(semantic-parse-region
69 (car ,$ri) (cdr ,$ri) ',nonterm 1)
70 (error "Invalid form (EXPANDFULL %s %s)" symb nonterm))))
71
72(defun wisent-grammar-TAG (name class &rest attributes)
73 "Expand call to TAG grammar macro.
74Return the form to create a generic semantic tag.
75See the function `semantic-tag' for the meaning of arguments NAME,
76CLASS and ATTRIBUTES."
77 `(wisent-raw-tag
78 (semantic-tag ,name ,class ,@attributes)))
79
80(defun wisent-grammar-VARIABLE-TAG (name type default-value &rest attributes)
81 "Expand call to VARIABLE-TAG grammar macro.
82Return the form to create a semantic tag of class variable.
83See the function `semantic-tag-new-variable' for the meaning of
84arguments NAME, TYPE, DEFAULT-VALUE and ATTRIBUTES."
85 `(wisent-raw-tag
86 (semantic-tag-new-variable ,name ,type ,default-value ,@attributes)))
87
88(defun wisent-grammar-FUNCTION-TAG (name type arg-list &rest attributes)
89 "Expand call to FUNCTION-TAG grammar macro.
90Return the form to create a semantic tag of class function.
91See the function `semantic-tag-new-function' for the meaning of
92arguments NAME, TYPE, ARG-LIST and ATTRIBUTES."
93 `(wisent-raw-tag
94 (semantic-tag-new-function ,name ,type ,arg-list ,@attributes)))
95
96(defun wisent-grammar-TYPE-TAG (name type members parents &rest attributes)
97 "Expand call to TYPE-TAG grammar macro.
98Return the form to create a semantic tag of class type.
99See the function `semantic-tag-new-type' for the meaning of arguments
100NAME, TYPE, MEMBERS, PARENTS and ATTRIBUTES."
101 `(wisent-raw-tag
102 (semantic-tag-new-type ,name ,type ,members ,parents ,@attributes)))
103
104(defun wisent-grammar-INCLUDE-TAG (name system-flag &rest attributes)
105 "Expand call to INCLUDE-TAG grammar macro.
106Return the form to create a semantic tag of class include.
107See the function `semantic-tag-new-include' for the meaning of
108arguments NAME, SYSTEM-FLAG and ATTRIBUTES."
109 `(wisent-raw-tag
110 (semantic-tag-new-include ,name ,system-flag ,@attributes)))
111
112(defun wisent-grammar-PACKAGE-TAG (name detail &rest attributes)
113 "Expand call to PACKAGE-TAG grammar macro.
114Return the form to create a semantic tag of class package.
115See the function `semantic-tag-new-package' for the meaning of
116arguments NAME, DETAIL and ATTRIBUTES."
117 `(wisent-raw-tag
118 (semantic-tag-new-package ,name ,detail ,@attributes)))
119
120(defun wisent-grammar-CODE-TAG (name detail &rest attributes)
121 "Expand call to CODE-TAG grammar macro.
122Return the form to create a semantic tag of class code.
123See the function `semantic-tag-new-code' for the meaning of arguments
124NAME, DETAIL and ATTRIBUTES."
125 `(wisent-raw-tag
126 (semantic-tag-new-code ,name ,detail ,@attributes)))
127
128(defun wisent-grammar-ALIAS-TAG (name aliasclass definition &rest attributes)
129 "Expand call to ALIAS-TAG grammar macro.
130Return the form to create a semantic tag of class alias.
131See the function `semantic-tag-new-alias' for the meaning of arguments
132NAME, ALIASCLASS, DEFINITION and ATTRIBUTES."
133 `(wisent-raw-tag
134 (semantic-tag-new-alias ,name ,aliasclass ,definition ,@attributes)))
135
136(defun wisent-grammar-EXPANDTAG (raw-tag)
137 "Expand call to EXPANDTAG grammar macro.
138Return the form to produce a list of cooked tags from raw form of
139Semantic tag RAW-TAG."
140 `(wisent-cook-tag ,raw-tag))
141
142(defun wisent-grammar-AST-ADD (ast &rest nodes)
143 "Expand call to AST-ADD grammar macro.
144Return the form to update the abstract syntax tree AST with NODES.
145See also the function `semantic-ast-add'."
146 `(semantic-ast-add ,ast ,@nodes))
147
148(defun wisent-grammar-AST-PUT (ast &rest nodes)
149 "Expand call to AST-PUT grammar macro.
150Return the form to update the abstract syntax tree AST with NODES.
151See also the function `semantic-ast-put'."
152 `(semantic-ast-put ,ast ,@nodes))
153
154(defun wisent-grammar-AST-GET (ast node)
155 "Expand call to AST-GET grammar macro.
156Return the form to get, from the abstract syntax tree AST, the value
157of NODE.
158See also the function `semantic-ast-get'."
159 `(semantic-ast-get ,ast ,node))
160
161(defun wisent-grammar-AST-GET1 (ast node)
162 "Expand call to AST-GET1 grammar macro.
163Return the form to get, from the abstract syntax tree AST, the first
164value of NODE.
165See also the function `semantic-ast-get1'."
166 `(semantic-ast-get1 ,ast ,node))
167
168(defun wisent-grammar-AST-GET-STRING (ast node)
169 "Expand call to AST-GET-STRING grammar macro.
170Return the form to get, from the abstract syntax tree AST, the value
171of NODE as a string.
172See also the function `semantic-ast-get-string'."
173 `(semantic-ast-get-string ,ast ,node))
174
175(defun wisent-grammar-AST-MERGE (ast1 ast2)
176 "Expand call to AST-MERGE grammar macro.
177Return the form to merge the abstract syntax trees AST1 and AST2.
178See also the function `semantic-ast-merge'."
179 `(semantic-ast-merge ,ast1 ,ast2))
180
181(defun wisent-grammar-SKIP-BLOCK (&optional symb)
182 "Expand call to SKIP-BLOCK grammar macro.
183Return the form to skip a parenthesized block.
184Optional argument SYMB is a $I placeholder symbol that gives the
185bounds of the block to skip. By default, skip the block at `$1'.
186See also the function `wisent-skip-block'."
187 (let ($ri)
188 (when symb
189 (unless (setq $ri (wisent-grammar-region-placeholder symb))
190 (error "Invalid form (SKIP-BLOCK %s)" symb)))
191 `(wisent-skip-block ,$ri)))
192
193(defun wisent-grammar-SKIP-TOKEN ()
194 "Expand call to SKIP-TOKEN grammar macro.
195Return the form to skip the lookahead token.
196See also the function `wisent-skip-token'."
197 `(wisent-skip-token))
198
199(defun wisent-grammar-assocs ()
200 "Return associativity and precedence level definitions."
201 (mapcar
202 #'(lambda (tag)
203 (cons (intern (semantic-tag-name tag))
204 (mapcar #'semantic-grammar-item-value
205 (semantic-tag-get-attribute tag :value))))
206 (semantic-find-tags-by-class 'assoc (current-buffer))))
207
208(defun wisent-grammar-terminals ()
209 "Return the list of terminal symbols.
210Keep order of declaration in the WY file without duplicates."
211 (let (terms)
212 (mapcar
213 #'(lambda (tag)
214 (mapcar #'(lambda (name)
215 (add-to-list 'terms (intern name)))
216 (cons (semantic-tag-name tag)
217 (semantic-tag-get-attribute tag :rest))))
218 (semantic--find-tags-by-function
219 #'(lambda (tag)
220 (memq (semantic-tag-class tag) '(token keyword)))
221 (current-buffer)))
222 (nreverse terms)))
223
224;; Cache of macro definitions currently in use.
225(defvar wisent--grammar-macros nil)
226
227(defun wisent-grammar-expand-macros (expr)
228 "Expand expression EXPR into a form without grammar macros.
229Return the expanded expression."
230 (if (or (atom expr) (semantic-grammar-quote-p (car expr)))
231 expr ;; Just return atom or quoted expression.
232 (let* ((expr (mapcar 'wisent-grammar-expand-macros expr))
233 (macro (assq (car expr) wisent--grammar-macros)))
234 (if macro ;; Expand Semantic built-in.
235 (apply (cdr macro) (cdr expr))
236 expr))))
237
238(defun wisent-grammar-nonterminals ()
239 "Return the list form of nonterminal definitions."
240 (let ((nttags (semantic-find-tags-by-class
241 'nonterminal (current-buffer)))
242 ;; Setup the cache of macro definitions.
243 (wisent--grammar-macros (semantic-grammar-macros))
244 rltags nterms rules rule elems elem actn sexp prec)
245 (while nttags
246 (setq rltags (semantic-tag-components (car nttags))
247 rules nil)
248 (while rltags
249 (setq elems (semantic-tag-get-attribute (car rltags) :value)
250 prec (semantic-tag-get-attribute (car rltags) :prec)
251 actn (semantic-tag-get-attribute (car rltags) :expr)
252 rule nil)
253 (when elems ;; not an EMPTY rule
254 (while elems
255 (setq elem (car elems)
256 elems (cdr elems))
257 (setq elem (if (consp elem) ;; mid-rule action
258 (wisent-grammar-expand-macros (read (car elem)))
259 (semantic-grammar-item-value elem)) ;; item
260 rule (cons elem rule)))
261 (setq rule (nreverse rule)))
262 (if prec
263 (setq prec (vector (semantic-grammar-item-value prec))))
264 (if actn
265 (setq sexp (wisent-grammar-expand-macros (read actn))))
266 (setq rule (if actn
267 (if prec
268 (list rule prec sexp)
269 (list rule sexp))
270 (if prec
271 (list rule prec)
272 (list rule))))
273 (setq rules (cons rule rules)
274 rltags (cdr rltags)))
275 (setq nterms (cons (cons (intern (semantic-tag-name (car nttags)))
276 (nreverse rules))
277 nterms)
278 nttags (cdr nttags)))
279 (nreverse nterms)))
280
281(defun wisent-grammar-grammar ()
282 "Return Elisp form of the grammar."
283 (let* ((terminals (wisent-grammar-terminals))
284 (nonterminals (wisent-grammar-nonterminals))
285 (assocs (wisent-grammar-assocs)))
286 (cons terminals (cons assocs nonterminals))))
287
288(defun wisent-grammar-parsetable-builder ()
289 "Return the value of the parser table."
290 `(progn
291 ;; Ensure that the grammar [byte-]compiler is available.
292 (eval-when-compile (require 'semantic/wisent/comp))
293 (wisent-compile-grammar
294 ',(wisent-grammar-grammar)
295 ',(semantic-grammar-start))))
296
297(defun wisent-grammar-setupcode-builder ()
298 "Return the parser setup code."
299 (format
300 "(semantic-install-function-overrides\n\
301 '((parse-stream . wisent-parse-stream)))\n\
302 (setq semantic-parser-name \"LALR\"\n\
303 semantic--parse-table %s\n\
304 semantic-debug-parser-source %S\n\
305 semantic-flex-keywords-obarray %s\n\
306 semantic-lex-types-obarray %s)\n\
307 ;; Collect unmatched syntax lexical tokens\n\
308 (semantic-make-local-hook 'wisent-discarding-token-functions)\n\
309 (add-hook 'wisent-discarding-token-functions\n\
310 'wisent-collect-unmatched-syntax nil t)"
311 (semantic-grammar-parsetable)
312 (buffer-name)
313 (semantic-grammar-keywordtable)
314 (semantic-grammar-tokentable)))
315
316(defvar wisent-grammar-menu
317 '("WY Grammar"
318 ["LALR Compiler Verbose" wisent-toggle-verbose-flag
319 :style toggle :active (boundp 'wisent-verbose-flag)
320 :selected (and (boundp 'wisent-verbose-flag)
321 wisent-verbose-flag)]
322 )
323 "WY mode specific grammar menu.
324Menu items are appended to the common grammar menu.")
325
326(define-derived-mode wisent-grammar-mode semantic-grammar-mode "WY"
327 "Major mode for editing Wisent grammars."
328 (semantic-grammar-setup-menu wisent-grammar-menu)
329 (semantic-install-function-overrides
330 '((grammar-parsetable-builder . wisent-grammar-parsetable-builder)
331 (grammar-setupcode-builder . wisent-grammar-setupcode-builder)
332 )))
333
334(add-to-list 'auto-mode-alist '("\\.wy$" . wisent-grammar-mode))
335
336(defvar-mode-local wisent-grammar-mode semantic-grammar-macros
337 '(
338 (ASSOC . semantic-grammar-ASSOC)
339 (EXPAND . wisent-grammar-EXPAND)
340 (EXPANDFULL . wisent-grammar-EXPANDFULL)
341 (TAG . wisent-grammar-TAG)
342 (VARIABLE-TAG . wisent-grammar-VARIABLE-TAG)
343 (FUNCTION-TAG . wisent-grammar-FUNCTION-TAG)
344 (TYPE-TAG . wisent-grammar-TYPE-TAG)
345 (INCLUDE-TAG . wisent-grammar-INCLUDE-TAG)
346 (PACKAGE-TAG . wisent-grammar-PACKAGE-TAG)
347 (EXPANDTAG . wisent-grammar-EXPANDTAG)
348 (CODE-TAG . wisent-grammar-CODE-TAG)
349 (ALIAS-TAG . wisent-grammar-ALIAS-TAG)
350 (AST-ADD . wisent-grammar-AST-ADD)
351 (AST-PUT . wisent-grammar-AST-PUT)
352 (AST-GET . wisent-grammar-AST-GET)
353 (AST-GET1 . wisent-grammar-AST-GET1)
354 (AST-GET-STRING . wisent-grammar-AST-GET-STRING)
355 (AST-MERGE . wisent-grammar-AST-MERGE)
356 (SKIP-BLOCK . wisent-grammar-SKIP-BLOCK)
357 (SKIP-TOKEN . wisent-grammar-SKIP-TOKEN)
358 )
359 "Semantic grammar macros used in wisent grammars.")
360
361;;; wisent-grammar.el ends here
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 8b92eab8579..6a4d4b9cc9c 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,7 +1,70 @@
12011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * progmodes/sh-script.el (sh-font-lock-paren): Don't mistake "main" for
4 "in" (bug#9190).
5
62011-08-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
7
8 * mail/sendmail.el (sendmail-query-once): Restore the current
9 buffer after querying (bug#9074).
10
11 * dired.el (dired-flagged): Use different faces for marked and
12 flagged files (bug#6117).
13
14 * emacs-lisp/cl-macs.el (dolist): Mention that there's a nil block
15 (bug#4433).
16
17 * ido.el (ido-mode): Switch off the message if called
18 non-interactively.
19
20 * mail/smtpmail.el (smtpmail-query-smtp-server): Try port 25
21 before 587, since it appears that that's more likely to work for
22 more people.
23
24 * cus-edit.el (custom-file): When running under emacs -q, always
25 refuse to save the customisations, even if the .emacs file doesn't
26 exist.
27
28 * info.el: Remove the `Info-beginning-of-buffer' function
29 (bug#8325).
30
31 * net/network-stream.el (network-stream-open-starttls):
32 Use `starttls-available-p' to see whether starttls.el can be used.
33
342011-08-01 Martin Rudalics <rudalics@gmx.at>
35
36 * window.el (display-buffer-in-window): Don't set dedicated status
37 of window here (Bug#9215).
38 (display-buffer-pop-up-window, display-buffer-pop-up-frame)
39 (display-buffer-pop-up-side-window)
40 (display-buffer-in-side-window): Set dedicated status of window here.
41
422011-08-01 Stefan Monnier <monnier@iro.umontreal.ca>
43
44 * emacs-lisp/package.el (package-generate-autoloads): Load autoloads
45 before binding generated-autoload-file.
46
472011-08-01 Deniz Dogan <deniz@dogan.se>
48
49 * net/rcirc.el (rcirc-handler-333): Clarify docstring.
50
512011-07-30 Michael Albinus <michael.albinus@gmx.de>
52
53 Sync with Tramp 2.2.2.
54
55 * net/trampver.el: Update release number.
56
572011-07-30 Juri Linkov <juri@jurta.org>
58
59 * dired-aux.el (dired-touch-initial): Remove function.
60 (dired-do-chxxx): For op-symbol `touch', set `initial' to the
61 current time, and `default' to the last modification time of the
62 current marked file (bug#6887).
63
12011-07-28 Jose E. Marchesi <jemarch@gnu.org> 642011-07-28 Jose E. Marchesi <jemarch@gnu.org>
2 65
3 * simple.el (goto-line): Use string-to-number to provide a 66 * simple.el (goto-line): Use string-to-number to provide a
4 numeric argument to read-number. 67 numeric argument to read-number (bug#9163).
5 68
62011-07-27 Michael Albinus <michael.albinus@gmx.de> 692011-07-27 Michael Albinus <michael.albinus@gmx.de>
7 70
@@ -28,8 +91,8 @@
28 QT keyword "more" to prevent "more slots: ...." being spuriously 91 QT keyword "more" to prevent "more slots: ...." being spuriously
29 parsed as a bitfield declaraion. 92 parsed as a bitfield declaraion.
30 93
31 * progmodes/cc-engine.el (c-beginning-of-statement-1): Refactor 94 * progmodes/cc-engine.el (c-beginning-of-statement-1):
32 and enhance to handle bitfield declarations. 95 Refactor and enhance to handle bitfield declarations.
33 (c-punctuation-in): New function. 96 (c-punctuation-in): New function.
34 (c-forward-decl-or-cast-1): Enhance CASE 3 to handle bitfield 97 (c-forward-decl-or-cast-1): Enhance CASE 3 to handle bitfield
35 declarations properly. 98 declarations properly.
@@ -38,7 +101,7 @@
38 101
39 * calendar/icalendar.el (icalendar--all-events): Take care of 102 * calendar/icalendar.el (icalendar--all-events): Take care of
40 multiple vcalendars in a single file. 103 multiple vcalendars in a single file.
41 (icalendar--convert-float-to-ical): checkdoc fixes. 104 (icalendar--convert-float-to-ical): Checkdoc fixes.
42 105
432011-07-25 Deniz Dogan <deniz@dogan.se> 1062011-07-25 Deniz Dogan <deniz@dogan.se>
44 107
@@ -72,8 +135,7 @@
72 (display-buffer-pop-up-side-window) 135 (display-buffer-pop-up-side-window)
73 (display-buffer-in-side-window): Call display-buffer-set-height 136 (display-buffer-in-side-window): Call display-buffer-set-height
74 and display-buffer-set-width after setting the new window's 137 and display-buffer-set-width after setting the new window's
75 buffer so `fit-window-to-buffer' and friends work on the right 138 buffer so `fit-window-to-buffer' and friends work on the right buffer.
76 buffer.
77 139
782011-07-20 Sam Steingold <sds@gnu.org> 1402011-07-20 Sam Steingold <sds@gnu.org>
79 141
@@ -105,8 +167,8 @@
1052011-07-19 Martin Rudalics <rudalics@gmx.at> 1672011-07-19 Martin Rudalics <rudalics@gmx.at>
106 168
107 * window.el (display-buffer-alist-of-strings-p) 169 * window.el (display-buffer-alist-of-strings-p)
108 (display-buffer-alist-set-1, display-buffer-alist-set-2): New 170 (display-buffer-alist-set-1, display-buffer-alist-set-2):
109 functions. 171 New functions.
110 (display-buffer-alist-set): Rewrite to handle Emacs 23 options 172 (display-buffer-alist-set): Rewrite to handle Emacs 23 options
111 more accurately. 173 more accurately.
112 174
@@ -117,8 +179,8 @@
117 179
118 * progmodes/cc-langs.el (c-symbol-chars): Correct a typo. 180 * progmodes/cc-langs.el (c-symbol-chars): Correct a typo.
119 181
120 * progmodes/cc-fonts.el (c-font-lock-enclosing-decls): New 182 * progmodes/cc-fonts.el (c-font-lock-enclosing-decls):
121 function. 183 New function.
122 (c-complex-decl-matchers): Insert reference to 184 (c-complex-decl-matchers): Insert reference to
123 c-font-lock-enclosing-decls. 185 c-font-lock-enclosing-decls.
124 186
@@ -137,7 +199,7 @@
137 199
1382011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org> 2002011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
139 201
140 * net/gnutls.el (gnutls-log-level): Removed. 202 * net/gnutls.el (gnutls-log-level): Remove.
141 203
142 * textmodes/fill.el (adaptive-fill-regexp): Include EN DASH as an 204 * textmodes/fill.el (adaptive-fill-regexp): Include EN DASH as an
143 indentation character (bug#6380). 205 indentation character (bug#6380).
@@ -159,11 +221,10 @@
159 221
1602011-07-16 Martin Rudalics <rudalics@gmx.at> 2222011-07-16 Martin Rudalics <rudalics@gmx.at>
161 223
162 * frame.el (select-frame-set-input-focus): New argument 224 * frame.el (select-frame-set-input-focus): New argument NORECORD.
163 NORECORD.
164 * window.el (pop-to-buffer): Select window used even if it was 225 * window.el (pop-to-buffer): Select window used even if it was
165 selected before, see discussion of (Bug#8615), (Bug#6954). Pass 226 selected before, see discussion of (Bug#8615), (Bug#6954).
166 argument NORECORD on to select-frame-set-input-focus. 227 Pass argument NORECORD on to select-frame-set-input-focus.
167 228
1682011-07-15 Glenn Morris <rgm@gnu.org> 2292011-07-15 Glenn Morris <rgm@gnu.org>
169 230
@@ -177,8 +238,8 @@
177 238
1782011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org> 2392011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
179 240
180 * net/gnutls.el (gnutls-negotiate): Upcase 241 * net/gnutls.el (gnutls-negotiate):
181 `gnutls-algorithm-priority'. 242 Upcase `gnutls-algorithm-priority'.
182 243
1832011-07-15 Glenn Morris <rgm@gnu.org> 2442011-07-15 Glenn Morris <rgm@gnu.org>
184 245
@@ -259,9 +320,9 @@
259 * printing.el (pr-toggle-region): Clarify the documentation 320 * printing.el (pr-toggle-region): Clarify the documentation
260 slightly (bug#7493). 321 slightly (bug#7493).
261 322
262 * time.el (display-time-update): Allow 323 * time.el (display-time-update):
263 `display-time-mail-function' to return nil (bug#7158). Fix 324 Allow `display-time-mail-function' to return nil (bug#7158).
264 suggested by Detlev Zundel. 325 Fix suggested by Detlev Zundel.
265 326
266 * vc/diff.el (diff): Clarify the order the file names are read 327 * vc/diff.el (diff): Clarify the order the file names are read
267 (bug#7111). 328 (bug#7111).
@@ -277,8 +338,8 @@
277 338
2782011-07-14 Martin Rudalics <rudalics@gmx.at> 3392011-07-14 Martin Rudalics <rudalics@gmx.at>
279 340
280 * window.el (display-buffer-normalize-special): Replace 341 * window.el (display-buffer-normalize-special):
281 `dedicated' by `dedicate' to dedicate window (Bug#9072). 342 Replace `dedicated' by `dedicate' to dedicate window (Bug#9072).
282 343
2832011-07-14 Eli Zaretskii <eliz@gnu.org> 3442011-07-14 Eli Zaretskii <eliz@gnu.org>
284 345
@@ -299,7 +360,7 @@
299 switch-to-buffer. 360 switch-to-buffer.
300 361
301 * net/tramp-compat.el (tramp-compat-pop-to-buffer-same-window): 362 * net/tramp-compat.el (tramp-compat-pop-to-buffer-same-window):
302 Deleted. 363 Delete.
303 364
3042011-07-14 Juanma Barranquero <lekktu@gmail.com> 3652011-07-14 Juanma Barranquero <lekktu@gmail.com>
305 366
@@ -317,8 +378,8 @@
317 378
3182011-07-13 Chong Yidong <cyd@stupidchicken.com> 3792011-07-13 Chong Yidong <cyd@stupidchicken.com>
319 380
320 * window.el (switch-to-buffer): New arg FORCE-SAME-WINDOW. Use 381 * window.el (switch-to-buffer): New arg FORCE-SAME-WINDOW.
321 pop-to-buffer buffer-or-name if it is nil. 382 Use pop-to-buffer buffer-or-name if it is nil.
322 383
323 * emacs-lisp/bytecomp.el (byte-compile-interactive-only-functions): 384 * emacs-lisp/bytecomp.el (byte-compile-interactive-only-functions):
324 Remove switch-to-buffer. 385 Remove switch-to-buffer.
@@ -343,8 +404,8 @@
343 404
3442011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org> 4052011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
345 406
346 * progmodes/cperl-mode.el (cperl-syntaxify-by-font-lock): Rewrite 407 * progmodes/cperl-mode.el (cperl-syntaxify-by-font-lock):
347 to avoid awkward possessive "s" (bug#5986). 408 Rewrite to avoid awkward possessive "s" (bug#5986).
348 409
3492011-07-13 Glenn Morris <rgm@gnu.org> 4102011-07-13 Glenn Morris <rgm@gnu.org>
350 411
@@ -438,15 +499,15 @@
438 499
4392011-07-12 Roland Winkler <winkler@gnu.org> 5002011-07-12 Roland Winkler <winkler@gnu.org>
440 501
441 * textmodes/bibtex.el (bibtex-initialize): Use 502 * textmodes/bibtex.el (bibtex-initialize):
442 pop-to-buffer-same-window. 503 Use pop-to-buffer-same-window.
443 (bibtex-search-entries): Fix interactive call. 504 (bibtex-search-entries): Fix interactive call.
444 505
4452011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org> 5062011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
446 507
447 * progmodes/compile.el (compilation-error-regexp-alist-alist): 508 * progmodes/compile.el (compilation-error-regexp-alist-alist):
448 Fontise bytecomp Error lines more correctly (bug#2490). Fix 509 Fontise bytecomp Error lines more correctly (bug#2490).
449 suggested by Johan Bockgård. 510 Fix suggested by Johan Bockgård.
450 511
451 * subr.el (remove-duplicates): Remove; `delete-dups' is sufficient. 512 * subr.el (remove-duplicates): Remove; `delete-dups' is sufficient.
452 513
@@ -459,8 +520,8 @@
459 520
4602011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org> 5212011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
461 522
462 * mail/sendmail.el (sendmail-query-once): Use 523 * mail/sendmail.el (sendmail-query-once):
463 `customize-save-variable' unconditionally, now that it works under 524 Use `customize-save-variable' unconditionally, now that it works under
464 emacs -Q. 525 emacs -Q.
465 526
466 * mail/smtpmail.el (smtpmail-query-smtp-server): Ditto. 527 * mail/smtpmail.el (smtpmail-query-smtp-server): Ditto.
@@ -525,16 +586,15 @@
525 586
5262011-07-09 Bob Nnamtrop <bobnnamtrop@gmail.com> (tiny change) 5872011-07-09 Bob Nnamtrop <bobnnamtrop@gmail.com> (tiny change)
527 588
528 * emulation/viper-cmd.el (viper-change-state-to-vi): Limit 589 * emulation/viper-cmd.el (viper-change-state-to-vi):
529 triggering of abbrev expansion (Bug#9038). 590 Limit triggering of abbrev expansion (Bug#9038).
530 591
5312011-07-09 Martin Rudalics <rudalics@gmx.at> 5922011-07-09 Martin Rudalics <rudalics@gmx.at>
532 593
533 * window.el (display-buffer-default-specifiers): Remove. 594 * window.el (display-buffer-default-specifiers): Remove.
534 (display-buffer-macro-specifiers): Remove default specifiers. 595 (display-buffer-macro-specifiers): Remove default specifiers.
535 (display-buffer-alist): Default to nil. 596 (display-buffer-alist): Default to nil.
536 (display-buffer-reuse-window): New optional argument 597 (display-buffer-reuse-window): New optional argument other-window.
537 other-window.
538 (display-buffer-pop-up-window): Allow splitting internal 598 (display-buffer-pop-up-window): Allow splitting internal
539 windows. Check whether a live window was created. 599 windows. Check whether a live window was created.
540 (display-buffer-other-window-means-other-frame) 600 (display-buffer-other-window-means-other-frame)
@@ -549,11 +609,10 @@
549 (display-buffer): Process other-window specifier and call 609 (display-buffer): Process other-window specifier and call
550 display-buffer-reuse-window with it. Emulate Emacs 23 behavior 610 display-buffer-reuse-window with it. Emulate Emacs 23 behavior
551 more faithfully. 611 more faithfully.
552 (pop-up-windows, even-window-heights): Restore Emacs 23 default 612 (pop-up-windows, even-window-heights): Restore Emacs 23 default values.
553 values.
554 (display-buffer-alist-set): Don't handle 'unset default values. 613 (display-buffer-alist-set): Don't handle 'unset default values.
555 (display-buffer-in-window, display-buffer-alist-set): Replace 614 (display-buffer-in-window, display-buffer-alist-set):
556 symbol "dedicated" by "dedicate". Reported by Tassilo Horn 615 Replace symbol "dedicated" by "dedicate". Reported by Tassilo Horn
557 <tassilo@member.fsf.org>. 616 <tassilo@member.fsf.org>.
558 617
5592011-07-09 Leo Liu <sdl.web@gmail.com> 6182011-07-09 Leo Liu <sdl.web@gmail.com>
diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog
index 60d7690a3c8..093e592c475 100644
--- a/lisp/cedet/ChangeLog
+++ b/lisp/cedet/ChangeLog
@@ -1,3 +1,8 @@
12011-07-30 Chong Yidong <cyd@stupidchicken.com>
2
3 * semantic/grammar.el (semantic-grammar-insert-defanalyzers): Fix
4 require.
5
12011-07-04 Darren Hoo <darren.hoo@gmail.com> (tiny change) 62011-07-04 Darren Hoo <darren.hoo@gmail.com> (tiny change)
2 7
3 * semantic/db.el (semanticdb-file-table-object): Don't bug out on 8 * semantic/db.el (semanticdb-file-table-object): Don't bug out on
diff --git a/lisp/cedet/semantic/bovine/c-by.el b/lisp/cedet/semantic/bovine/c-by.el
index 8e1fe8d3617..31489a4f625 100644
--- a/lisp/cedet/semantic/bovine/c-by.el
+++ b/lisp/cedet/semantic/bovine/c-by.el
@@ -19,8 +19,7 @@
19 19
20;;; Commentary: 20;;; Commentary:
21;; 21;;
22;; This file was generated from the grammar file semantic/bovine/c.by 22;; This file was generated from etc/grammars/c.by.
23;; in the CEDET repository.
24 23
25;;; Code: 24;;; Code:
26 25
diff --git a/lisp/cedet/semantic/bovine/make-by.el b/lisp/cedet/semantic/bovine/make-by.el
index 3cc4e5b23a3..41da728d537 100644
--- a/lisp/cedet/semantic/bovine/make-by.el
+++ b/lisp/cedet/semantic/bovine/make-by.el
@@ -19,8 +19,7 @@
19 19
20;;; Commentary: 20;;; Commentary:
21;; 21;;
22;; This file was generated from the grammar file 22;; This file was generated from etc/grammars/make.by.
23;; semantic/bovine/make.by in the CEDET repository.
24 23
25;;; Code: 24;;; Code:
26 25
diff --git a/lisp/cedet/semantic/bovine/scm-by.el b/lisp/cedet/semantic/bovine/scm-by.el
index 87efe747a4c..8dd170384bc 100644
--- a/lisp/cedet/semantic/bovine/scm-by.el
+++ b/lisp/cedet/semantic/bovine/scm-by.el
@@ -19,8 +19,7 @@
19 19
20;;; Commentary: 20;;; Commentary:
21;; 21;;
22;; This file was generated from the grammar file 22;; This file was generated from etc/grammars/scm.by.
23;; semantic/bovine/scm.by in the CEDET repository.
24 23
25;;; Code: 24;;; Code:
26 25
diff --git a/lisp/cedet/semantic/grammar.el b/lisp/cedet/semantic/grammar.el
index 270668e2959..1d1184e534f 100644
--- a/lisp/cedet/semantic/grammar.el
+++ b/lisp/cedet/semantic/grammar.el
@@ -801,7 +801,7 @@ Block definitions are read from the current table of lexical types."
801 (with-current-buffer semantic--grammar-input-buffer 801 (with-current-buffer semantic--grammar-input-buffer
802 (setq tokens (semantic-grammar-tokens) 802 (setq tokens (semantic-grammar-tokens)
803 props (semantic-grammar-token-properties tokens))) 803 props (semantic-grammar-token-properties tokens)))
804 (insert "(require 'semantic-lex)\n\n") 804 (insert "(require 'semantic/lex)\n\n")
805 (let ((semantic-lex-types-obarray 805 (let ((semantic-lex-types-obarray
806 (semantic-lex-make-type-table tokens props)) 806 (semantic-lex-make-type-table tokens props))
807 semantic-grammar--lex-block-specs) 807 semantic-grammar--lex-block-specs)
diff --git a/lisp/cedet/semantic/wisent/javat-wy.el b/lisp/cedet/semantic/wisent/javat-wy.el
index adea4ef6932..38c19387440 100644
--- a/lisp/cedet/semantic/wisent/javat-wy.el
+++ b/lisp/cedet/semantic/wisent/javat-wy.el
@@ -19,8 +19,7 @@
19 19
20;;; Commentary: 20;;; Commentary:
21;; 21;;
22;; This file was generated from the grammar file 22;; This file was generated from etc/java-tags.wy.
23;; semantic/wisent/wisent-java-tags.wy in the CEDET repository.
24 23
25;;; Code: 24;;; Code:
26 25
diff --git a/lisp/cedet/semantic/wisent/js-wy.el b/lisp/cedet/semantic/wisent/js-wy.el
index e982caf4485..b523db8771b 100644
--- a/lisp/cedet/semantic/wisent/js-wy.el
+++ b/lisp/cedet/semantic/wisent/js-wy.el
@@ -1,6 +1,7 @@
1;;; semantic/wisent/js-wy.el --- Generated parser support file 1;;; semantic/wisent/js-wy.el --- Generated parser support file
2 2
3;; Copyright (C) 2005, 2009-2011 Free Software Foundation, Inc. 3;; Copyright (C) 2005, 2009-2011 Free Software Foundation, Inc.
4;; Copyright (C) Ecma International.
4 5
5;; This file is part of GNU Emacs. 6;; This file is part of GNU Emacs.
6 7
@@ -19,8 +20,7 @@
19 20
20;;; Commentary: 21;;; Commentary:
21;; 22;;
22;; This file was generated from the grammar file 23;; This file was generated from etc/grammars/javascript-jv.wy.
23;; semantic/wisent/wisent-javascript-jv.wy in the CEDET repository.
24 24
25;;; Code: 25;;; Code:
26(require 'semantic/lex) 26(require 'semantic/lex)
diff --git a/lisp/cedet/semantic/wisent/python-wy.el b/lisp/cedet/semantic/wisent/python-wy.el
index 3a69078b02c..36965757a14 100644
--- a/lisp/cedet/semantic/wisent/python-wy.el
+++ b/lisp/cedet/semantic/wisent/python-wy.el
@@ -1,6 +1,7 @@
1;;; semantic/wisent/python-wy.el --- Generated parser support file 1;;; semantic/wisent/python-wy.el --- Generated parser support file
2 2
3;; Copyright (C) 2002-2004, 2007, 2010-2011 Free Software Foundation, Inc. 3;; Copyright (C) 2002-2004, 2007, 2010-2011 Free Software Foundation, Inc.
4;; Copyright (C) 2001-2010 Python Software Foundation
4 5
5;; This file is part of GNU Emacs. 6;; This file is part of GNU Emacs.
6 7
@@ -19,8 +20,7 @@
19 20
20;;; Commentary: 21;;; Commentary:
21;; 22;;
22;; This file was generated from the grammar file 23;; This file was generated from etc/grammars/python.wy.
23;; semantic/wisent/wisent-python.wy in the CEDET repository.
24 24
25;;; Code: 25;;; Code:
26 26
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index d443d6c160c..3e41a304f43 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -4409,25 +4409,14 @@ if only the first line of the docstring is shown."))
4409 4409
4410(defun custom-file (&optional no-error) 4410(defun custom-file (&optional no-error)
4411 "Return the file name for saving customizations." 4411 "Return the file name for saving customizations."
4412 (let ((file 4412 (if (null user-init-file)
4413 (or custom-file 4413 ;; Started with -q, i.e. the file containing Custom settings
4414 (let ((user-init-file user-init-file) 4414 ;; hasn't been read. Saving settings there won't make much
4415 (default-init-file 4415 ;; sense.
4416 (if (eq system-type 'ms-dos) "~/_emacs" "~/.emacs"))) 4416 (if no-error
4417 (when (null user-init-file) 4417 nil
4418 (if (or (file-exists-p default-init-file) 4418 (error "Saving settings from \"emacs -q\" would overwrite existing customizations"))
4419 (and (eq system-type 'windows-nt) 4419 (file-chase-links (or custom-file user-init-file))))
4420 (file-exists-p "~/_emacs")))
4421 ;; Started with -q, i.e. the file containing
4422 ;; Custom settings hasn't been read. Saving
4423 ;; settings there would overwrite other settings.
4424 (if no-error
4425 nil
4426 (error "Saving settings from \"emacs -q\" would overwrite existing customizations"))
4427 (setq user-init-file default-init-file)))
4428 user-init-file))))
4429 (and file
4430 (file-chase-links file))))
4431 4420
4432;; If recentf-mode is non-nil, this is defined. 4421;; If recentf-mode is non-nil, this is defined.
4433(declare-function recentf-expand-file-name "recentf" (name)) 4422(declare-function recentf-expand-file-name "recentf" (name))
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 3103fbd5a7f..ec157fc4939 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -226,34 +226,28 @@ List has a form of (file-name full-file-name (attribute-list))."
226 (file-attributes full-file-name)))) 226 (file-attributes full-file-name))))
227 (directory-files dir))) 227 (directory-files dir)))
228 228
229 229;;; Change file attributes
230(defun dired-touch-initial (files)
231 "Create initial input value for `touch' command."
232 ;; Nobody can explain what this version is supposed to do. (Bug#6887)
233 ;; Also, the manual says it uses "the present time".
234 ;;; (let (initial)
235 ;;; (while files
236 ;;; (let ((current (nth 5 (file-attributes (car files)))))
237 ;;; (if (and initial (not (equal initial current)))
238 ;;; (setq initial (current-time) files nil)
239 ;;; (setq initial current))
240 ;;; (setq files (cdr files))))
241 ;;; (format-time-string "%Y%m%d%H%M.%S" initial)))
242 (format-time-string "%Y%m%d%H%M.%S" (current-time)))
243 230
244(defun dired-do-chxxx (attribute-name program op-symbol arg) 231(defun dired-do-chxxx (attribute-name program op-symbol arg)
245 ;; Change file attributes (mode, group, owner, timestamp) of marked files and 232 ;; Change file attributes (group, owner, timestamp) of marked files and
246 ;; refresh their file lines. 233 ;; refresh their file lines.
247 ;; ATTRIBUTE-NAME is a string describing the attribute to the user. 234 ;; ATTRIBUTE-NAME is a string describing the attribute to the user.
248 ;; PROGRAM is the program used to change the attribute. 235 ;; PROGRAM is the program used to change the attribute.
249 ;; OP-SYMBOL is the type of operation (for use in dired-mark-pop-up). 236 ;; OP-SYMBOL is the type of operation (for use in `dired-mark-pop-up').
250 ;; ARG describes which files to use, as in dired-get-marked-files. 237 ;; ARG describes which files to use, as in `dired-get-marked-files'.
251 (let* ((files (dired-get-marked-files t arg)) 238 (let* ((files (dired-get-marked-files t arg))
239 (initial
240 (if (eq op-symbol 'touch)
241 (format-time-string "%Y%m%d%H%M.%S")))
242 (default
243 (if (eq op-symbol 'touch)
244 (and (stringp (car files))
245 (format-time-string "%Y%m%d%H%M.%S"
246 (nth 5 (file-attributes (car files)))))))
252 (new-attribute 247 (new-attribute
253 (dired-mark-read-string 248 (dired-mark-read-string
254 (concat "Change " attribute-name " of %s to: ") 249 (concat "Change " attribute-name " of %s to: ")
255 (if (eq op-symbol 'touch) (dired-touch-initial files)) 250 initial op-symbol arg files default))
256 op-symbol arg files))
257 (operation (concat program " " new-attribute)) 251 (operation (concat program " " new-attribute))
258 failures) 252 failures)
259 (setq failures 253 (setq failures
diff --git a/lisp/dired.el b/lisp/dired.el
index 01d41bba27d..746c16ff148 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -350,7 +350,7 @@ Subexpression 2 must end right before the \\n or \\r.")
350 "Face name used for marked files.") 350 "Face name used for marked files.")
351 351
352(defface dired-flagged 352(defface dired-flagged
353 '((t (:inherit font-lock-warning-face))) 353 '((t (:inherit font-lock-variable-name-face)))
354 "Face used for files flagged for deletion." 354 "Face used for files flagged for deletion."
355 :group 'dired-faces 355 :group 'dired-faces
356 :version "22.1") 356 :version "22.1")
@@ -3663,7 +3663,7 @@ Ask means pop up a menu for the user to select one of copy, move or link."
3663;;;;;; dired-run-shell-command dired-do-shell-command dired-do-async-shell-command 3663;;;;;; dired-run-shell-command dired-do-shell-command dired-do-async-shell-command
3664;;;;;; dired-clean-directory dired-do-print dired-do-touch dired-do-chown 3664;;;;;; dired-clean-directory dired-do-print dired-do-touch dired-do-chown
3665;;;;;; dired-do-chgrp dired-do-chmod dired-compare-directories dired-backup-diff 3665;;;;;; dired-do-chgrp dired-do-chmod dired-compare-directories dired-backup-diff
3666;;;;;; dired-diff) "dired-aux" "dired-aux.el" "ab62f310329f404f96a29e4f0ab8df73") 3666;;;;;; dired-diff) "dired-aux" "dired-aux.el" "bbb53a5b6bf56c413fe0f898559bef8d")
3667;;; Generated autoloads from dired-aux.el 3667;;; Generated autoloads from dired-aux.el
3668 3668
3669(autoload 'dired-diff "dired-aux" "\ 3669(autoload 'dired-diff "dired-aux" "\
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index d6b4643d6a4..6d242eda3ab 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -1233,6 +1233,7 @@ Valid clauses are:
1233 "Loop over a list. 1233 "Loop over a list.
1234Evaluate BODY with VAR bound to each `car' from LIST, in turn. 1234Evaluate BODY with VAR bound to each `car' from LIST, in turn.
1235Then evaluate RESULT to get return value, default nil. 1235Then evaluate RESULT to get return value, default nil.
1236An implicit nil block is established around the loop.
1236 1237
1237\(fn (VAR LIST [RESULT]) BODY...)" 1238\(fn (VAR LIST [RESULT]) BODY...)"
1238 (let ((temp (make-symbol "--cl-dolist-temp--"))) 1239 (let ((temp (make-symbol "--cl-dolist-temp--")))
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index e42103a7a01..19e8375966b 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -570,11 +570,11 @@ EXTRA-PROPERTIES is currently unused."
570 file) 570 file)
571 571
572(defun package-generate-autoloads (name pkg-dir) 572(defun package-generate-autoloads (name pkg-dir)
573 (require 'autoload) ;Load before we let-bind generated-autoload-file!
573 (let* ((auto-name (concat name "-autoloads.el")) 574 (let* ((auto-name (concat name "-autoloads.el"))
574 (ignore-name (concat name "-pkg.el")) 575 (ignore-name (concat name "-pkg.el"))
575 (generated-autoload-file (expand-file-name auto-name pkg-dir)) 576 (generated-autoload-file (expand-file-name auto-name pkg-dir))
576 (version-control 'never)) 577 (version-control 'never))
577 (require 'autoload)
578 (unless (fboundp 'autoload-ensure-default-file) 578 (unless (fboundp 'autoload-ensure-default-file)
579 (package-autoload-ensure-default-file generated-autoload-file)) 579 (package-autoload-ensure-default-file generated-autoload-file))
580 (update-directory-autoloads pkg-dir))) 580 (update-directory-autoloads pkg-dir)))
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index f90e180b128..e88b5154c76 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,50 @@
12011-08-02 Andrew Cohen <cohen@andy.bu.edu>
2
3 * nnir.el (nnir-search-thread): Position point on referring article
4 line.
5 (nnir-warp-to-article): Clean up summary buffers.
6
7 * nnimap.el (nnimap-request-thread): Whitespace fix.
8
92011-08-02 Steve Purcell <steve@sanityinc.com> (tiny change)
10
11 * nnimap.el (nnimap-get-groups): Decode "&" correctly.
12
132011-08-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
14
15 * starttls.el (starttls-available-p): Renamed from
16 `starttls-any-program-available' and changed return convention.
17
182011-07-31 Lars Ingebrigtsen <larsi@gnus.org>
19
20 * nnmaildir.el (nnmaildir-request-accept-article): Don't call
21 `unix-sync' unless it's defined.
22
232011-07-31 Marcus Harnisch <marcus.harnisch@gmx.net> (tiny change)
24
25 * gnus-art.el (gnus-article-stop-animations): Use `elt' instead of
26 `aref' for XEmacs compatibiltiy.
27
282011-07-31 Lars Magne Ingebrigtsen <larsi@gnus.org>
29
30 * spam.el (spam-fetch-field-fast): Rewrite slightly for clarity.
31
322011-07-31 Dave Abrahams <dave@boostpro.com> (tiny change)
33
34 * gnus-sum.el (gnus-summary-refer-thread): Since lambdas aren't
35 closures, quote the form properly (bug#9194).
36
372011-07-31 Lars Magne Ingebrigtsen <larsi@gnus.org>
38
39 * gnus-sum.el (gnus-summary-insert-new-articles): Clean up slightly.
40 (gnus-summary-insert-new-articles): Protect against servers that are
41 down.
42
432011-07-29 Daniel Dehennin <daniel.dehennin@baby-gnu.org>
44
45 * mm-decode.el (mm-dissect-buffer): Add a default content-disposition
46 in mm handle if none is specified.
47
12011-07-24 Andrew Cohen <cohen@andy.bu.edu> 482011-07-24 Andrew Cohen <cohen@andy.bu.edu>
2 49
3 * nnimap.el (nnimap-make-thread-query): Quote message-ids for gmail. 50 * nnimap.el (nnimap-make-thread-query): Quote message-ids for gmail.
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index c29000f4691..28c6aca367c 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -4541,7 +4541,7 @@ commands:
4541(defun gnus-article-stop-animations () 4541(defun gnus-article-stop-animations ()
4542 (dolist (timer (and (boundp 'timer-list) 4542 (dolist (timer (and (boundp 'timer-list)
4543 timer-list)) 4543 timer-list))
4544 (when (eq (aref timer 5) 'image-animate-timeout) 4544 (when (eq (elt timer 5) 'image-animate-timeout)
4545 (cancel-timer timer)))) 4545 (cancel-timer timer))))
4546 4546
4547;; Set article window start at LINE, where LINE is the number of lines 4547;; Set article window start at LINE, where LINE is the number of lines
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index 5917c9d7cef..a8cf5e7c427 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -9015,9 +9015,9 @@ non-numeric or nil fetch the number specified by the
9015 (refs (split-string (or (mail-header-references header) 9015 (refs (split-string (or (mail-header-references header)
9016 ""))) 9016 "")))
9017 (gnus-parse-headers-hook 9017 (gnus-parse-headers-hook
9018 (lambda () (goto-char (point-min)) 9018 `(lambda () (goto-char (point-min))
9019 (keep-lines 9019 (keep-lines
9020 (regexp-opt (append refs (list id subject))))))) 9020 (regexp-opt ',(append refs (list id subject)))))))
9021 (gnus-fetch-headers (list last) (if (numberp limit) 9021 (gnus-fetch-headers (list last) (if (numberp limit)
9022 (* 2 limit) limit) t))))) 9022 (* 2 limit) limit) t)))))
9023 (when (listp new-headers) 9023 (when (listp new-headers)
@@ -12851,26 +12851,26 @@ If ALL is a number, fetch this number of articles."
12851(defun gnus-summary-insert-new-articles () 12851(defun gnus-summary-insert-new-articles ()
12852 "Insert all new articles in this group." 12852 "Insert all new articles in this group."
12853 (interactive) 12853 (interactive)
12854 (prog1 12854 (let ((old (sort (mapcar 'car gnus-newsgroup-data) '<))
12855 (let ((old (sort (mapcar 'car gnus-newsgroup-data) '<)) 12855 (old-high gnus-newsgroup-highest)
12856 (old-high gnus-newsgroup-highest) 12856 (nnmail-fetched-sources (list t))
12857 (nnmail-fetched-sources (list t)) 12857 (new-active (gnus-activate-group gnus-newsgroup-name 'scan))
12858 i new) 12858 i new)
12859 (setq gnus-newsgroup-active 12859 (unless new-active
12860 (gnus-copy-sequence 12860 (error "Couldn't fetch new data"))
12861 (gnus-activate-group gnus-newsgroup-name 'scan))) 12861 (setq gnus-newsgroup-active (gnus-copy-sequence new-active))
12862 (setq i (cdr gnus-newsgroup-active) 12862 (setq i (cdr gnus-newsgroup-active)
12863 gnus-newsgroup-highest i) 12863 gnus-newsgroup-highest i)
12864 (while (> i old-high) 12864 (while (> i old-high)
12865 (push i new) 12865 (push i new)
12866 (decf i)) 12866 (decf i))
12867 (if (not new) 12867 (if (not new)
12868 (message "No gnus is bad news") 12868 (message "No gnus is bad news")
12869 (gnus-summary-insert-articles new) 12869 (gnus-summary-insert-articles new)
12870 (setq gnus-newsgroup-unreads 12870 (setq gnus-newsgroup-unreads
12871 (gnus-sorted-nunion gnus-newsgroup-unreads new)) 12871 (gnus-sorted-nunion gnus-newsgroup-unreads new))
12872 (gnus-summary-limit (gnus-sorted-nunion old new)))) 12872 (gnus-summary-limit (gnus-sorted-nunion old new))))
12873 (gnus-summary-position-point))) 12873 (gnus-summary-position-point))
12874 12874
12875;;; Bookmark support for Gnus. 12875;;; Bookmark support for Gnus.
12876(declare-function bookmark-make-record-default 12876(declare-function bookmark-make-record-default
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index a51c6630ac5..692175d471f 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -564,7 +564,13 @@ Postpone undisplaying of viewers for types in
564 (setq ct (mail-fetch-field "content-type") 564 (setq ct (mail-fetch-field "content-type")
565 ctl (and ct (mail-header-parse-content-type ct)) 565 ctl (and ct (mail-header-parse-content-type ct))
566 cte (mail-fetch-field "content-transfer-encoding") 566 cte (mail-fetch-field "content-transfer-encoding")
567 cd (mail-fetch-field "content-disposition") 567 cd (or (mail-fetch-field "content-disposition")
568 (when (and ctl
569 (eq 'mm-inline-text
570 (cadr (mm-assoc-string-match
571 mm-inline-media-tests
572 (car ctl)))))
573 "inline"))
568 ;; Newlines in description should be stripped so as 574 ;; Newlines in description should be stripped so as
569 ;; not to break the MIME tag into two or more lines. 575 ;; not to break the MIME tag into two or more lines.
570 description (message-fetch-field "content-description") 576 description (message-fetch-field "content-description")
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el
index 52de48869d8..f41f4af71b4 100644
--- a/lisp/gnus/nnimap.el
+++ b/lisp/gnus/nnimap.el
@@ -1107,9 +1107,9 @@ textual parts.")
1107 (separator (read (current-buffer))) 1107 (separator (read (current-buffer)))
1108 (group (read (current-buffer)))) 1108 (group (read (current-buffer))))
1109 (unless (member '%NoSelect flags) 1109 (unless (member '%NoSelect flags)
1110 (push (if (stringp group) 1110 (push (utf7-decode (if (stringp group)
1111 group 1111 group
1112 (format "%s" group)) 1112 (format "%s" group)) t)
1113 groups)))) 1113 groups))))
1114 (nreverse groups))) 1114 (nreverse groups)))
1115 1115
@@ -1168,7 +1168,7 @@ textual parts.")
1168 (nnimap-get-groups))) 1168 (nnimap-get-groups)))
1169 (unless (assoc group nnimap-current-infos) 1169 (unless (assoc group nnimap-current-infos)
1170 ;; Insert dummy numbers here -- they don't matter. 1170 ;; Insert dummy numbers here -- they don't matter.
1171 (insert (format "%S 0 1 y\n" group)))) 1171 (insert (format "%S 0 1 y\n" (utf7-encode group)))))
1172 t))) 1172 t)))
1173 1173
1174(deffoo nnimap-retrieve-group-data-early (server infos) 1174(deffoo nnimap-retrieve-group-data-early (server infos)
@@ -1566,7 +1566,7 @@ textual parts.")
1566 (articles &optional limit force-new dependencies)) 1566 (articles &optional limit force-new dependencies))
1567 1567
1568(deffoo nnimap-request-thread (header &optional group server) 1568(deffoo nnimap-request-thread (header &optional group server)
1569 (if gnus-refer-thread-use-nnir 1569 (if gnus-refer-thread-use-nnir
1570 (nnir-search-thread header) 1570 (nnir-search-thread header)
1571 (when (nnimap-possibly-change-group group server) 1571 (when (nnimap-possibly-change-group group server)
1572 (let* ((cmd (nnimap-make-thread-query header)) 1572 (let* ((cmd (nnimap-make-thread-query header))
diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el
index e6420a4d7bb..d35e6560e71 100644
--- a/lisp/gnus/nnir.el
+++ b/lisp/gnus/nnir.el
@@ -767,11 +767,18 @@ Add an entry here when adding a new search engine.")
767(deffoo nnir-warp-to-article () 767(deffoo nnir-warp-to-article ()
768 (let* ((cur (if (> (gnus-summary-article-number) 0) 768 (let* ((cur (if (> (gnus-summary-article-number) 0)
769 (gnus-summary-article-number) 769 (gnus-summary-article-number)
770 (error "This is not a real article."))) 770 (error "This is not a real article")))
771 (gnus-newsgroup-name (nnir-article-group cur)) 771 (backend-article-group (nnir-article-group cur))
772 (backend-number (nnir-article-number cur))) 772 (backend-article-number (nnir-article-number cur))
773 (gnus-summary-read-group-1 gnus-newsgroup-name t t gnus-summary-buffer 773 (quit-config (gnus-ephemeral-group-p gnus-newsgroup-name)))
774 nil (list backend-number)))) 774 ;; first exit from the nnir summary buffer.
775 (gnus-summary-exit)
776 ;; and if the nnir summary buffer in turn came from another
777 ;; summary buffer we have to clean that summary up too.
778 (when (eq (cdr quit-config) 'summary)
779 (gnus-summary-exit))
780 (gnus-summary-read-group-1 backend-article-group t t nil
781 nil (list backend-article-number))))
775 782
776(nnoo-define-skeleton nnir) 783(nnoo-define-skeleton nnir)
777 784
@@ -1659,7 +1666,8 @@ server is of form 'backend:name'."
1659 (cons 'server (gnus-method-to-server 1666 (cons 'server (gnus-method-to-server
1660 (gnus-find-method-for-group 1667 (gnus-find-method-for-group
1661 gnus-newsgroup-name)))))) 1668 gnus-newsgroup-name))))))
1662 (gnus-group-make-nnir-group nil parm))) 1669 (gnus-group-make-nnir-group nil parm)
1670 (gnus-summary-goto-subject (gnus-id-to-article (mail-header-id header)))))
1663 1671
1664;; unused? 1672;; unused?
1665(defun nnir-artlist-groups (artlist) 1673(defun nnir-artlist-groups (artlist)
diff --git a/lisp/gnus/nnmaildir.el b/lisp/gnus/nnmaildir.el
index 8e2cd4bdde3..bbace7c784a 100644
--- a/lisp/gnus/nnmaildir.el
+++ b/lisp/gnus/nnmaildir.el
@@ -1381,7 +1381,8 @@ by nnmaildir-request-article.")
1381 (error 1381 (error
1382 (gmm-write-region (point-min) (point-max) tmpfile nil 'no-message nil 1382 (gmm-write-region (point-min) (point-max) tmpfile nil 'no-message nil
1383 'excl) 1383 'excl)
1384 (unix-sync))) ;; no fsync :( 1384 (when (fboundp 'unix-sync)
1385 (unix-sync)))) ;; no fsync :(
1385 (nnheader-cancel-timer 24h) 1386 (nnheader-cancel-timer 24h)
1386 (condition-case err 1387 (condition-case err
1387 (add-name-to-file tmpfile curfile) 1388 (add-name-to-file tmpfile curfile)
diff --git a/lisp/gnus/spam.el b/lisp/gnus/spam.el
index 33dbaaa1f0c..c7f993d7293 100644
--- a/lisp/gnus/spam.el
+++ b/lisp/gnus/spam.el
@@ -1581,31 +1581,31 @@ to find it out)."
1581 (when (numberp article) 1581 (when (numberp article)
1582 (let* ((data-header (or prepared-data-header 1582 (let* ((data-header (or prepared-data-header
1583 (spam-fetch-article-header article)))) 1583 (spam-fetch-article-header article))))
1584 (if (arrayp data-header) 1584 (cond
1585 (cond 1585 ((not (arrayp data-header))
1586 ((equal field 'number) 1586 (gnus-message 6 "Article %d has a nil data header" article))
1587 (mail-header-number data-header)) 1587 ((equal field 'number)
1588 ((equal field 'from) 1588 (mail-header-number data-header))
1589 (mail-header-from data-header)) 1589 ((equal field 'from)
1590 ((equal field 'message-id) 1590 (mail-header-from data-header))
1591 (mail-header-message-id data-header)) 1591 ((equal field 'message-id)
1592 ((equal field 'subject) 1592 (mail-header-message-id data-header))
1593 (mail-header-subject data-header)) 1593 ((equal field 'subject)
1594 ((equal field 'references) 1594 (mail-header-subject data-header))
1595 (mail-header-references data-header)) 1595 ((equal field 'references)
1596 ((equal field 'date) 1596 (mail-header-references data-header))
1597 (mail-header-date data-header)) 1597 ((equal field 'date)
1598 ((equal field 'xref) 1598 (mail-header-date data-header))
1599 (mail-header-xref data-header)) 1599 ((equal field 'xref)
1600 ((equal field 'extra) 1600 (mail-header-xref data-header))
1601 (mail-header-extra data-header)) 1601 ((equal field 'extra)
1602 (t 1602 (mail-header-extra data-header))
1603 (gnus-error 1603 (t
1604 5 1604 (gnus-error
1605 "spam-fetch-field-fast: unknown field %s requested" 1605 5
1606 field) 1606 "spam-fetch-field-fast: unknown field %s requested"
1607 nil)) 1607 field)
1608 (gnus-message 6 "Article %d has a nil data header" article))))) 1608 nil)))))
1609 1609
1610(defun spam-fetch-field-from-fast (article &optional prepared-data-header) 1610(defun spam-fetch-field-from-fast (article &optional prepared-data-header)
1611 (spam-fetch-field-fast article 'from prepared-data-header)) 1611 (spam-fetch-field-fast article 'from prepared-data-header))
diff --git a/lisp/gnus/starttls.el b/lisp/gnus/starttls.el
index 4b4839a4df2..c1caca90cf0 100644
--- a/lisp/gnus/starttls.el
+++ b/lisp/gnus/starttls.el
@@ -295,18 +295,11 @@ GNUTLS requires a port number."
295 (starttls-set-process-query-on-exit-flag process nil) 295 (starttls-set-process-query-on-exit-flag process nil)
296 process))) 296 process)))
297 297
298(defun starttls-any-program-available () 298(defun starttls-available-p ()
299 (let ((program (if starttls-use-gnutls 299 "Say whether the STARTTLS programs are available."
300 starttls-gnutls-program 300 (executable-find (if starttls-use-gnutls
301 starttls-program))) 301 starttls-gnutls-program
302 (condition-case () 302 starttls-program)))
303 (progn
304 (call-process program)
305 program)
306 (error (progn
307 (message "No STARTTLS program was available (tried '%s')"
308 program)
309 nil)))))
310 303
311(provide 'starttls) 304(provide 'starttls)
312 305
diff --git a/lisp/ido.el b/lisp/ido.el
index b50ddcc1254..4086000e3e9 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -1557,7 +1557,8 @@ This function also adds a hook to the minibuffer."
1557 (setq ido-minor-mode-map-entry (cons 'ido-mode map)) 1557 (setq ido-minor-mode-map-entry (cons 'ido-mode map))
1558 (add-to-list 'minor-mode-map-alist ido-minor-mode-map-entry)))) 1558 (add-to-list 'minor-mode-map-alist ido-minor-mode-map-entry))))
1559 1559
1560 (message "Ido mode %s" (if ido-mode "enabled" "disabled"))) 1560 (when (called-interactively-p 'any)
1561 (message "Ido mode %s" (if ido-mode "enabled" "disabled"))))
1561 1562
1562 1563
1563;;; IDO KEYMAP 1564;;; IDO KEYMAP
diff --git a/lisp/info.el b/lisp/info.el
index a4826ee8c2c..447c86b3e9e 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -2789,11 +2789,6 @@ N is the digit argument used to invoke this command."
2789 (goto-char (point-max))))) 2789 (goto-char (point-max)))))
2790 (t (error "No previous nodes")))) 2790 (t (error "No previous nodes"))))
2791 2791
2792(defun Info-beginning-of-buffer ()
2793 "Go to the beginnning of the buffer."
2794 (interactive)
2795 (goto-char (point-min)))
2796
2797(defun Info-scroll-up () 2792(defun Info-scroll-up ()
2798 "Scroll one screenful forward in Info, considering all nodes as one sequence. 2793 "Scroll one screenful forward in Info, considering all nodes as one sequence.
2799Once you scroll far enough in a node that its menu appears on the screen 2794Once you scroll far enough in a node that its menu appears on the screen
@@ -3655,7 +3650,7 @@ If FORK is non-nil, it is passed to `Info-goto-node'."
3655(defvar Info-mode-map 3650(defvar Info-mode-map
3656 (let ((map (make-keymap))) 3651 (let ((map (make-keymap)))
3657 (suppress-keymap map) 3652 (suppress-keymap map)
3658 (define-key map "." 'Info-beginning-of-buffer) 3653 (define-key map "." 'beginning-of-buffer)
3659 (define-key map " " 'Info-scroll-up) 3654 (define-key map " " 'Info-scroll-up)
3660 (define-key map "\C-m" 'Info-follow-nearest-node) 3655 (define-key map "\C-m" 'Info-follow-nearest-node)
3661 (define-key map "\t" 'Info-next-reference) 3656 (define-key map "\t" 'Info-next-reference)
@@ -3676,8 +3671,8 @@ If FORK is non-nil, it is passed to `Info-goto-node'."
3676 (define-key map "[" 'Info-backward-node) 3671 (define-key map "[" 'Info-backward-node)
3677 (define-key map "<" 'Info-top-node) 3672 (define-key map "<" 'Info-top-node)
3678 (define-key map ">" 'Info-final-node) 3673 (define-key map ">" 'Info-final-node)
3679 (define-key map "b" 'Info-beginning-of-buffer) 3674 (define-key map "b" 'beginning-of-buffer)
3680 (put 'Info-beginning-of-buffer :advertised-binding "b") 3675 (put 'beginning-of-buffer :advertised-binding "b")
3681 (define-key map "d" 'Info-directory) 3676 (define-key map "d" 'Info-directory)
3682 (define-key map "e" 'Info-edit) 3677 (define-key map "e" 'Info-edit)
3683 (define-key map "f" 'Info-follow-reference) 3678 (define-key map "f" 'Info-follow-reference)
@@ -3731,7 +3726,7 @@ If FORK is non-nil, it is passed to `Info-goto-node'."
3731 :help "Go backward one node, considering all as a sequence"] 3726 :help "Go backward one node, considering all as a sequence"]
3732 ["Forward" Info-forward-node 3727 ["Forward" Info-forward-node
3733 :help "Go forward one node, considering all as a sequence"] 3728 :help "Go forward one node, considering all as a sequence"]
3734 ["Beginning" Info-beginning-of-buffer 3729 ["Beginning" beginning-of-buffer
3735 :help "Go to beginning of this node"] 3730 :help "Go to beginning of this node"]
3736 ["Top" Info-top-node 3731 ["Top" Info-top-node
3737 :help "Go to top node of file"] 3732 :help "Go to top node of file"]
@@ -3937,7 +3932,7 @@ Moving within a node:
3937\\[Info-scroll-down] Normally, scroll backward. If the beginning of the buffer is 3932\\[Info-scroll-down] Normally, scroll backward. If the beginning of the buffer is
3938 already visible, try to go to the previous menu entry, or up 3933 already visible, try to go to the previous menu entry, or up
3939 if there is none. 3934 if there is none.
3940\\[Info-beginning-of-buffer] Go to beginning of node. 3935\\[beginning-of-buffer] Go to beginning of node.
3941 3936
3942Advanced commands: 3937Advanced commands:
3943\\[Info-search] Search through this Info file for specified regexp, 3938\\[Info-search] Search through this Info file for specified regexp,
diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el
index 75de9a9f9b2..bf3d2ddb154 100644
--- a/lisp/ldefs-boot.el
+++ b/lisp/ldefs-boot.el
@@ -489,7 +489,7 @@ A replacement function for `newline-and-indent', aligning as it goes.
489 489
490;;;### (autoloads (outlineify-sticky allout-mode allout-mode-p allout-auto-activation 490;;;### (autoloads (outlineify-sticky allout-mode allout-mode-p allout-auto-activation
491;;;;;; allout-setup allout-auto-activation-helper) "allout" "allout.el" 491;;;;;; allout-setup allout-auto-activation-helper) "allout" "allout.el"
492;;;;;; (19981 40664)) 492;;;;;; (19988 13913))
493;;; Generated autoloads from allout.el 493;;; Generated autoloads from allout.el
494 494
495(autoload 'allout-auto-activation-helper "allout" "\ 495(autoload 'allout-auto-activation-helper "allout" "\
@@ -749,6 +749,7 @@ without changes to the allout core. Here are key ones:
749`allout-structure-deleted-hook' 749`allout-structure-deleted-hook'
750`allout-structure-shifted-hook' 750`allout-structure-shifted-hook'
751`allout-after-copy-or-kill-hook' 751`allout-after-copy-or-kill-hook'
752`allout-post-undo-hook'
752 753
753 Terminology 754 Terminology
754 755
@@ -847,7 +848,7 @@ for details on preparing emacs for automatic allout activation.
847 848
848;;;### (autoloads (allout-widgets-mode allout-widgets-auto-activation 849;;;### (autoloads (allout-widgets-mode allout-widgets-auto-activation
849;;;;;; allout-widgets-setup allout-widgets) "allout-widgets" "allout-widgets.el" 850;;;;;; allout-widgets-setup allout-widgets) "allout-widgets" "allout-widgets.el"
850;;;;;; (19981 40664)) 851;;;;;; (19988 13913))
851;;; Generated autoloads from allout-widgets.el 852;;; Generated autoloads from allout-widgets.el
852 853
853(let ((loads (get 'allout-widgets 'custom-loads))) (if (member '"allout-widgets" loads) nil (put 'allout-widgets 'custom-loads (cons '"allout-widgets" loads)))) 854(let ((loads (get 'allout-widgets 'custom-loads))) (if (member '"allout-widgets" loads) nil (put 'allout-widgets 'custom-loads (cons '"allout-widgets" loads))))
@@ -928,11 +929,11 @@ directory, so that Emacs will know its current contents.
928;;;*** 929;;;***
929 930
930;;;### (autoloads (animate-birthday-present animate-sequence animate-string) 931;;;### (autoloads (animate-birthday-present animate-sequence animate-string)
931;;;;;; "animate" "play/animate.el" (19845 45374)) 932;;;;;; "animate" "play/animate.el" (19986 58615))
932;;; Generated autoloads from play/animate.el 933;;; Generated autoloads from play/animate.el
933 934
934(autoload 'animate-string "animate" "\ 935(autoload 'animate-string "animate" "\
935Display STRING starting at position VPOS, HPOS, using animation. 936Display STRING animations starting at position VPOS, HPOS.
936The characters start at randomly chosen places, 937The characters start at randomly chosen places,
937and all slide in parallel to their final positions, 938and all slide in parallel to their final positions,
938passing through `animate-n-steps' positions before the final ones. 939passing through `animate-n-steps' positions before the final ones.
@@ -942,14 +943,19 @@ in the current window.
942\(fn STRING VPOS &optional HPOS)" nil nil) 943\(fn STRING VPOS &optional HPOS)" nil nil)
943 944
944(autoload 'animate-sequence "animate" "\ 945(autoload 'animate-sequence "animate" "\
945Display strings from LIST-OF-STRING with animation in a new buffer. 946Display animation strings from LIST-OF-STRING with buffer *Animation*.
946Strings will be separated from each other by SPACE lines. 947Strings will be separated from each other by SPACE lines.
948 When the variable `animation-buffer-name' is non-nil display
949animation in the buffer named by variable's value, creating the
950buffer if one does not exist.
947 951
948\(fn LIST-OF-STRINGS SPACE)" nil nil) 952\(fn LIST-OF-STRINGS SPACE)" nil nil)
949 953
950(autoload 'animate-birthday-present "animate" "\ 954(autoload 'animate-birthday-present "animate" "\
951Display one's birthday present in a new buffer. 955Return a birthday present in the buffer *Birthday-Present*.
952You can specify the one's name by NAME; the default value is \"Sarah\". 956When optional arg NAME is non-nil or called-interactively, prompt for
957NAME of birthday present receiver and return a birthday present in
958the buffer *Birthday-Present-for-Name*.
953 959
954\(fn &optional NAME)" t nil) 960\(fn &optional NAME)" t nil)
955 961
@@ -1144,8 +1150,8 @@ Returns list of symbols and documentation found.
1144 1150
1145;;;*** 1151;;;***
1146 1152
1147;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (19886 1153;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (19990
1148;;;;;; 45771)) 1154;;;;;; 55648))
1149;;; Generated autoloads from arc-mode.el 1155;;; Generated autoloads from arc-mode.el
1150 1156
1151(autoload 'archive-mode "arc-mode" "\ 1157(autoload 'archive-mode "arc-mode" "\
@@ -1472,7 +1478,7 @@ Special commands:
1472;;;*** 1478;;;***
1473 1479
1474;;;### (autoloads (auth-source-cache-expiry) "auth-source" "gnus/auth-source.el" 1480;;;### (autoloads (auth-source-cache-expiry) "auth-source" "gnus/auth-source.el"
1475;;;;;; (19981 40664)) 1481;;;;;; (19985 37722))
1476;;; Generated autoloads from gnus/auth-source.el 1482;;; Generated autoloads from gnus/auth-source.el
1477 1483
1478(defvar auth-source-cache-expiry 7200 "\ 1484(defvar auth-source-cache-expiry 7200 "\
@@ -1550,7 +1556,7 @@ Major mode for editing Autoconf configure.in files.
1550;;;*** 1556;;;***
1551 1557
1552;;;### (autoloads (auto-insert-mode define-auto-insert auto-insert) 1558;;;### (autoloads (auto-insert-mode define-auto-insert auto-insert)
1553;;;;;; "autoinsert" "autoinsert.el" (19845 45374)) 1559;;;;;; "autoinsert" "autoinsert.el" (19988 13913))
1554;;; Generated autoloads from autoinsert.el 1560;;; Generated autoloads from autoinsert.el
1555 1561
1556(autoload 'auto-insert "autoinsert" "\ 1562(autoload 'auto-insert "autoinsert" "\
@@ -1827,7 +1833,7 @@ For non-interactive use see also `benchmark-run' and
1827;;;*** 1833;;;***
1828 1834
1829;;;### (autoloads (bibtex-search-entry bibtex-mode bibtex-initialize) 1835;;;### (autoloads (bibtex-search-entry bibtex-mode bibtex-initialize)
1830;;;;;; "bibtex" "textmodes/bibtex.el" (19971 4823)) 1836;;;;;; "bibtex" "textmodes/bibtex.el" (19997 28887))
1831;;; Generated autoloads from textmodes/bibtex.el 1837;;; Generated autoloads from textmodes/bibtex.el
1832 1838
1833(autoload 'bibtex-initialize "bibtex" "\ 1839(autoload 'bibtex-initialize "bibtex" "\
@@ -2075,7 +2081,7 @@ a reflection.
2075;;;;;; bookmark-save bookmark-write bookmark-delete bookmark-insert 2081;;;;;; bookmark-save bookmark-write bookmark-delete bookmark-insert
2076;;;;;; bookmark-rename bookmark-insert-location bookmark-relocate 2082;;;;;; bookmark-rename bookmark-insert-location bookmark-relocate
2077;;;;;; bookmark-jump-other-window bookmark-jump bookmark-set) "bookmark" 2083;;;;;; bookmark-jump-other-window bookmark-jump bookmark-set) "bookmark"
2078;;;;;; "bookmark.el" (19914 25180)) 2084;;;;;; "bookmark.el" (19998 49767))
2079;;; Generated autoloads from bookmark.el 2085;;; Generated autoloads from bookmark.el
2080 (define-key ctl-x-r-map "b" 'bookmark-jump) 2086 (define-key ctl-x-r-map "b" 'bookmark-jump)
2081 (define-key ctl-x-r-map "m" 'bookmark-set) 2087 (define-key ctl-x-r-map "m" 'bookmark-set)
@@ -2276,10 +2282,10 @@ Incremental search of bookmarks, hiding the non-matches as we go.
2276;;;;;; browse-url-at-mouse browse-url-at-point browse-url browse-url-of-region 2282;;;;;; browse-url-at-mouse browse-url-at-point browse-url browse-url-of-region
2277;;;;;; browse-url-of-dired-file browse-url-of-buffer browse-url-of-file 2283;;;;;; browse-url-of-dired-file browse-url-of-buffer browse-url-of-file
2278;;;;;; browse-url-browser-function) "browse-url" "net/browse-url.el" 2284;;;;;; browse-url-browser-function) "browse-url" "net/browse-url.el"
2279;;;;;; (19973 46551)) 2285;;;;;; (19997 54906))
2280;;; Generated autoloads from net/browse-url.el 2286;;; Generated autoloads from net/browse-url.el
2281 2287
2282(defvar browse-url-browser-function (cond ((memq system-type '(windows-nt ms-dos cygwin)) 'browse-url-default-windows-browser) ((memq system-type '(darwin)) 'browse-url-default-macosx-browser) (t 'browse-url-default-browser)) "\ 2288(defvar browse-url-browser-function 'browse-url-default-browser "\
2283Function to display the current buffer in a WWW browser. 2289Function to display the current buffer in a WWW browser.
2284This is used by the `browse-url-at-point', `browse-url-at-mouse', and 2290This is used by the `browse-url-at-point', `browse-url-at-mouse', and
2285`browse-url-of-file' commands. 2291`browse-url-of-file' commands.
@@ -2598,7 +2604,7 @@ Return a vector containing the lines from `bruce-phrases-file'.
2598;;;*** 2604;;;***
2599 2605
2600;;;### (autoloads (bs-show bs-customize bs-cycle-previous bs-cycle-next) 2606;;;### (autoloads (bs-show bs-customize bs-cycle-previous bs-cycle-next)
2601;;;;;; "bs" "bs.el" (19976 22732)) 2607;;;;;; "bs" "bs.el" (19998 49767))
2602;;; Generated autoloads from bs.el 2608;;; Generated autoloads from bs.el
2603 2609
2604(autoload 'bs-cycle-next "bs" "\ 2610(autoload 'bs-cycle-next "bs" "\
@@ -2681,7 +2687,7 @@ Like `bug-reference-mode', but only buttonize in comments and strings.
2681;;;;;; batch-byte-compile-if-not-done display-call-tree byte-compile 2687;;;;;; batch-byte-compile-if-not-done display-call-tree byte-compile
2682;;;;;; compile-defun byte-compile-file byte-recompile-directory 2688;;;;;; compile-defun byte-compile-file byte-recompile-directory
2683;;;;;; byte-force-recompile byte-compile-enable-warning byte-compile-disable-warning) 2689;;;;;; byte-force-recompile byte-compile-enable-warning byte-compile-disable-warning)
2684;;;;;; "bytecomp" "emacs-lisp/bytecomp.el" (19968 28627)) 2690;;;;;; "bytecomp" "emacs-lisp/bytecomp.el" (19998 49767))
2685;;; Generated autoloads from emacs-lisp/bytecomp.el 2691;;; Generated autoloads from emacs-lisp/bytecomp.el
2686(put 'byte-compile-dynamic 'safe-local-variable 'booleanp) 2692(put 'byte-compile-dynamic 'safe-local-variable 'booleanp)
2687(put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp) 2693(put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp)
@@ -3053,7 +3059,7 @@ Obsoletes `c-forward-into-nomenclature'.
3053;;;*** 3059;;;***
3054 3060
3055;;;### (autoloads (c-guess-basic-syntax) "cc-engine" "progmodes/cc-engine.el" 3061;;;### (autoloads (c-guess-basic-syntax) "cc-engine" "progmodes/cc-engine.el"
3056;;;;;; (19981 40664)) 3062;;;;;; (20015 58840))
3057;;; Generated autoloads from progmodes/cc-engine.el 3063;;; Generated autoloads from progmodes/cc-engine.el
3058 3064
3059(autoload 'c-guess-basic-syntax "cc-engine" "\ 3065(autoload 'c-guess-basic-syntax "cc-engine" "\
@@ -3165,7 +3171,7 @@ the absolute file name of the file if STYLE-NAME is nil.
3165 3171
3166;;;### (autoloads (awk-mode pike-mode idl-mode java-mode objc-mode 3172;;;### (autoloads (awk-mode pike-mode idl-mode java-mode objc-mode
3167;;;;;; c++-mode c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el" 3173;;;;;; c++-mode c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el"
3168;;;;;; (19981 40664)) 3174;;;;;; (20010 40918))
3169;;; Generated autoloads from progmodes/cc-mode.el 3175;;; Generated autoloads from progmodes/cc-mode.el
3170 3176
3171(autoload 'c-initialize-cc-mode "cc-mode" "\ 3177(autoload 'c-initialize-cc-mode "cc-mode" "\
@@ -3393,7 +3399,7 @@ and exists only for compatibility reasons.
3393 3399
3394;;;*** 3400;;;***
3395 3401
3396;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (19845 45374)) 3402;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (19997 28887))
3397;;; Generated autoloads from progmodes/cc-vars.el 3403;;; Generated autoloads from progmodes/cc-vars.el
3398(put 'c-basic-offset 'safe-local-variable 'integerp) 3404(put 'c-basic-offset 'safe-local-variable 'integerp)
3399(put 'c-backslash-column 'safe-local-variable 'integerp) 3405(put 'c-backslash-column 'safe-local-variable 'integerp)
@@ -4291,8 +4297,8 @@ on third call it again advances points to the next difference and so on.
4291;;;;;; compilation-shell-minor-mode compilation-mode compilation-start 4297;;;;;; compilation-shell-minor-mode compilation-mode compilation-start
4292;;;;;; compile compilation-disable-input compile-command compilation-search-path 4298;;;;;; compile compilation-disable-input compile-command compilation-search-path
4293;;;;;; compilation-ask-about-save compilation-window-height compilation-start-hook 4299;;;;;; compilation-ask-about-save compilation-window-height compilation-start-hook
4294;;;;;; compilation-mode-hook) "compile" "progmodes/compile.el" (19968 4300;;;;;; compilation-mode-hook) "compile" "progmodes/compile.el" (19997
4295;;;;;; 28627)) 4301;;;;;; 28887))
4296;;; Generated autoloads from progmodes/compile.el 4302;;; Generated autoloads from progmodes/compile.el
4297 4303
4298(defvar compilation-mode-hook nil "\ 4304(defvar compilation-mode-hook nil "\
@@ -4716,7 +4722,7 @@ If FIX is non-nil, run `copyright-fix-years' instead.
4716;;;*** 4722;;;***
4717 4723
4718;;;### (autoloads (cperl-perldoc-at-point cperl-perldoc cperl-mode) 4724;;;### (autoloads (cperl-perldoc-at-point cperl-perldoc cperl-mode)
4719;;;;;; "cperl-mode" "progmodes/cperl-mode.el" (19975 1875)) 4725;;;;;; "cperl-mode" "progmodes/cperl-mode.el" (19997 56302))
4720;;; Generated autoloads from progmodes/cperl-mode.el 4726;;; Generated autoloads from progmodes/cperl-mode.el
4721(put 'cperl-indent-level 'safe-local-variable 'integerp) 4727(put 'cperl-indent-level 'safe-local-variable 'integerp)
4722(put 'cperl-brace-offset 'safe-local-variable 'integerp) 4728(put 'cperl-brace-offset 'safe-local-variable 'integerp)
@@ -5064,7 +5070,7 @@ Enable CUA selection mode without the C-z/C-x/C-c/C-v bindings.
5064;;;;;; customize-mode customize customize-push-and-save customize-save-variable 5070;;;;;; customize-mode customize customize-push-and-save customize-save-variable
5065;;;;;; customize-set-variable customize-set-value custom-menu-sort-alphabetically 5071;;;;;; customize-set-variable customize-set-value custom-menu-sort-alphabetically
5066;;;;;; custom-buffer-sort-alphabetically custom-browse-sort-alphabetically) 5072;;;;;; custom-buffer-sort-alphabetically custom-browse-sort-alphabetically)
5067;;;;;; "cus-edit" "cus-edit.el" (19980 19797)) 5073;;;;;; "cus-edit" "cus-edit.el" (19996 8027))
5068;;; Generated autoloads from cus-edit.el 5074;;; Generated autoloads from cus-edit.el
5069 5075
5070(defvar custom-browse-sort-alphabetically nil "\ 5076(defvar custom-browse-sort-alphabetically nil "\
@@ -5498,7 +5504,7 @@ If the argument is nil, we return the display table to its standard state.
5498;;;*** 5504;;;***
5499 5505
5500;;;### (autoloads (dabbrev-expand dabbrev-completion) "dabbrev" "dabbrev.el" 5506;;;### (autoloads (dabbrev-expand dabbrev-completion) "dabbrev" "dabbrev.el"
5501;;;;;; (19886 45771)) 5507;;;;;; (19989 34789))
5502;;; Generated autoloads from dabbrev.el 5508;;; Generated autoloads from dabbrev.el
5503(put 'dabbrev-case-fold-search 'risky-local-variable t) 5509(put 'dabbrev-case-fold-search 'risky-local-variable t)
5504(put 'dabbrev-case-replace 'risky-local-variable t) 5510(put 'dabbrev-case-replace 'risky-local-variable t)
@@ -5697,13 +5703,13 @@ There is some minimal font-lock support (see vars
5697;;;*** 5703;;;***
5698 5704
5699;;;### (autoloads (cancel-debug-on-entry debug-on-entry debug) "debug" 5705;;;### (autoloads (cancel-debug-on-entry debug-on-entry debug) "debug"
5700;;;;;; "emacs-lisp/debug.el" (19961 55377)) 5706;;;;;; "emacs-lisp/debug.el" (19999 41685))
5701;;; Generated autoloads from emacs-lisp/debug.el 5707;;; Generated autoloads from emacs-lisp/debug.el
5702 5708
5703(setq debugger 'debug) 5709(setq debugger 'debug)
5704 5710
5705(autoload 'debug "debug" "\ 5711(autoload 'debug "debug" "\
5706Enter debugger. To return, type \\<debugger-mode-map>`\\[debugger-continue]'. 5712Enter debugger. \\<debugger-mode-map>`\\[debugger-continue]' returns from the debugger.
5707Arguments are mainly for use when this is called from the internals 5713Arguments are mainly for use when this is called from the internals
5708of the evaluator. 5714of the evaluator.
5709 5715
@@ -5877,7 +5883,7 @@ any selection.
5877;;;*** 5883;;;***
5878 5884
5879;;;### (autoloads (derived-mode-init-mode-variables define-derived-mode) 5885;;;### (autoloads (derived-mode-init-mode-variables define-derived-mode)
5880;;;;;; "derived" "emacs-lisp/derived.el" (19849 29307)) 5886;;;;;; "derived" "emacs-lisp/derived.el" (19988 13913))
5881;;; Generated autoloads from emacs-lisp/derived.el 5887;;; Generated autoloads from emacs-lisp/derived.el
5882 5888
5883(autoload 'define-derived-mode "derived" "\ 5889(autoload 'define-derived-mode "derived" "\
@@ -6232,7 +6238,7 @@ Major mode for editing the diary file.
6232;;;*** 6238;;;***
6233 6239
6234;;;### (autoloads (diff-buffer-with-file diff-backup diff diff-command 6240;;;### (autoloads (diff-buffer-with-file diff-backup diff diff-command
6235;;;;;; diff-switches) "diff" "vc/diff.el" (19903 54862)) 6241;;;;;; diff-switches) "diff" "vc/diff.el" (19999 41597))
6236;;; Generated autoloads from vc/diff.el 6242;;; Generated autoloads from vc/diff.el
6237 6243
6238(defvar diff-switches (purecopy "-c") "\ 6244(defvar diff-switches (purecopy "-c") "\
@@ -6247,10 +6253,10 @@ The command to use to run diff.")
6247 6253
6248(autoload 'diff "diff" "\ 6254(autoload 'diff "diff" "\
6249Find and display the differences between OLD and NEW files. 6255Find and display the differences between OLD and NEW files.
6250When called interactively, read OLD and NEW using the minibuffer; 6256When called interactively, read NEW, then OLD, using the
6251the default for NEW is the current buffer's file name, and the 6257minibuffer. The default for NEW is the current buffer's file
6252default for OLD is a backup file for NEW, if one exists. 6258name, and the default for OLD is a backup file for NEW, if one
6253If NO-ASYNC is non-nil, call diff synchronously. 6259exists. If NO-ASYNC is non-nil, call diff synchronously.
6254 6260
6255When called interactively with a prefix argument, prompt 6261When called interactively with a prefix argument, prompt
6256interactively for diff switches. Otherwise, the switches 6262interactively for diff switches. Otherwise, the switches
@@ -6316,7 +6322,7 @@ Optional arguments are passed to `dig-invoke'.
6316;;;*** 6322;;;***
6317 6323
6318;;;### (autoloads (dired-mode dired-noselect dired-other-frame dired-other-window 6324;;;### (autoloads (dired-mode dired-noselect dired-other-frame dired-other-window
6319;;;;;; dired dired-listing-switches) "dired" "dired.el" (19966 16984)) 6325;;;;;; dired dired-listing-switches) "dired" "dired.el" (20019 55931))
6320;;; Generated autoloads from dired.el 6326;;; Generated autoloads from dired.el
6321 6327
6322(defvar dired-listing-switches (purecopy "-al") "\ 6328(defvar dired-listing-switches (purecopy "-al") "\
@@ -6345,8 +6351,7 @@ Dired displays a list of files in DIRNAME (which may also have
6345shell wildcards appended to select certain files). If DIRNAME is a cons, 6351shell wildcards appended to select certain files). If DIRNAME is a cons,
6346its first element is taken as the directory name and the rest as an explicit 6352its first element is taken as the directory name and the rest as an explicit
6347list of files to make directory entries for. 6353list of files to make directory entries for.
6348\\<dired-mode-map>You can move around in it with the usual commands. 6354\\<dired-mode-map>You can flag files for deletion with \\[dired-flag-file-deletion] and then
6349You can flag files for deletion with \\[dired-flag-file-deletion] and then
6350delete them by typing \\[dired-do-flagged-delete]. 6355delete them by typing \\[dired-do-flagged-delete].
6351Type \\[describe-mode] after entering Dired for more info. 6356Type \\[describe-mode] after entering Dired for more info.
6352 6357
@@ -6382,8 +6387,8 @@ In Dired, you are \"editing\" a list of the files in a directory and
6382 files for later commands or \"flag\" them for deletion, either file 6387 files for later commands or \"flag\" them for deletion, either file
6383 by file or all files matching certain criteria. 6388 by file or all files matching certain criteria.
6384You can move using the usual cursor motion commands.\\<dired-mode-map> 6389You can move using the usual cursor motion commands.\\<dired-mode-map>
6385Letters no longer insert themselves. Digits are prefix arguments. 6390The buffer is read-only. Digits are prefix arguments.
6386Instead, type \\[dired-flag-file-deletion] to flag a file for Deletion. 6391Type \\[dired-flag-file-deletion] to flag a file `D' for deletion.
6387Type \\[dired-mark] to Mark a file or subdirectory for later commands. 6392Type \\[dired-mark] to Mark a file or subdirectory for later commands.
6388 Most commands operate on the marked files and use the current file 6393 Most commands operate on the marked files and use the current file
6389 if no files are marked. Use a numeric prefix argument to operate on 6394 if no files are marked. Use a numeric prefix argument to operate on
@@ -6391,9 +6396,9 @@ Type \\[dired-mark] to Mark a file or subdirectory for later commands.
6391 to operate on the current file only. Prefix arguments override marks. 6396 to operate on the current file only. Prefix arguments override marks.
6392 Mark-using commands display a list of failures afterwards. Type \\[dired-summary] 6397 Mark-using commands display a list of failures afterwards. Type \\[dired-summary]
6393 to see why something went wrong. 6398 to see why something went wrong.
6394Type \\[dired-unmark] to Unmark a file or all files of a subdirectory. 6399Type \\[dired-unmark] to Unmark a file or all files of an inserted subdirectory.
6395Type \\[dired-unmark-backward] to back up one line and unflag. 6400Type \\[dired-unmark-backward] to back up one line and unmark or unflag.
6396Type \\[dired-do-flagged-delete] to eXecute the deletions requested. 6401Type \\[dired-do-flagged-delete] to delete (eXecute) the files flagged `D'.
6397Type \\[dired-find-file] to Find the current line's file 6402Type \\[dired-find-file] to Find the current line's file
6398 (or dired it in another buffer, if it is a directory). 6403 (or dired it in another buffer, if it is a directory).
6399Type \\[dired-find-file-other-window] to find file or dired directory in Other window. 6404Type \\[dired-find-file-other-window] to find file or dired directory in Other window.
@@ -6403,10 +6408,10 @@ Type \\[dired-do-copy] to Copy files.
6403Type \\[dired-sort-toggle-or-edit] to toggle Sorting by name/date or change the `ls' switches. 6408Type \\[dired-sort-toggle-or-edit] to toggle Sorting by name/date or change the `ls' switches.
6404Type \\[revert-buffer] to read all currently expanded directories aGain. 6409Type \\[revert-buffer] to read all currently expanded directories aGain.
6405 This retains all marks and hides subdirs again that were hidden before. 6410 This retains all marks and hides subdirs again that were hidden before.
6406SPC and DEL can be used to move down and up by lines. 6411Use `SPC' and `DEL' to move down and up by lines.
6407 6412
6408If Dired ever gets confused, you can either type \\[revert-buffer] to read the 6413If Dired ever gets confused, you can either type \\[revert-buffer] to read the
6409directories again, type \\[dired-do-redisplay] to relist a single or the marked files or a 6414directories again, type \\[dired-do-redisplay] to relist the file at point or the marked files or a
6410subdirectory, or type \\[dired-build-subdir-alist] to parse the buffer 6415subdirectory, or type \\[dired-build-subdir-alist] to parse the buffer
6411again for the directory tree. 6416again for the directory tree.
6412 6417
@@ -6485,7 +6490,7 @@ redefine OBJECT if it is a symbol.
6485;;;;;; standard-display-g1 standard-display-ascii standard-display-default 6490;;;;;; standard-display-g1 standard-display-ascii standard-display-default
6486;;;;;; standard-display-8bit describe-current-display-table describe-display-table 6491;;;;;; standard-display-8bit describe-current-display-table describe-display-table
6487;;;;;; set-display-table-slot display-table-slot make-display-table) 6492;;;;;; set-display-table-slot display-table-slot make-display-table)
6488;;;;;; "disp-table" "disp-table.el" (19845 45374)) 6493;;;;;; "disp-table" "disp-table.el" (19984 16846))
6489;;; Generated autoloads from disp-table.el 6494;;; Generated autoloads from disp-table.el
6490 6495
6491(autoload 'make-display-table "disp-table" "\ 6496(autoload 'make-display-table "disp-table" "\
@@ -6668,8 +6673,8 @@ Locate SOA record and increment the serial field.
6668;;;*** 6673;;;***
6669 6674
6670;;;### (autoloads (doc-view-bookmark-jump doc-view-minor-mode doc-view-mode-maybe 6675;;;### (autoloads (doc-view-bookmark-jump doc-view-minor-mode doc-view-mode-maybe
6671;;;;;; doc-view-mode doc-view-mode-p) "doc-view" "doc-view.el" (19953 6676;;;;;; doc-view-mode doc-view-mode-p) "doc-view" "doc-view.el" (20002
6672;;;;;; 8437)) 6677;;;;;; 46800))
6673;;; Generated autoloads from doc-view.el 6678;;; Generated autoloads from doc-view.el
6674 6679
6675(autoload 'doc-view-mode-p "doc-view" "\ 6680(autoload 'doc-view-mode-p "doc-view" "\
@@ -7584,7 +7589,7 @@ Toggle edebugging of all forms.
7584;;;;;; ediff-merge-directories-with-ancestor ediff-merge-directories 7589;;;;;; ediff-merge-directories-with-ancestor ediff-merge-directories
7585;;;;;; ediff-directories3 ediff-directory-revisions ediff-directories 7590;;;;;; ediff-directories3 ediff-directory-revisions ediff-directories
7586;;;;;; ediff-buffers3 ediff-buffers ediff-backup ediff-current-file 7591;;;;;; ediff-buffers3 ediff-buffers ediff-backup ediff-current-file
7587;;;;;; ediff-files3 ediff-files) "ediff" "vc/ediff.el" (19845 45374)) 7592;;;;;; ediff-files3 ediff-files) "ediff" "vc/ediff.el" (19996 8027))
7588;;; Generated autoloads from vc/ediff.el 7593;;; Generated autoloads from vc/ediff.el
7589 7594
7590(autoload 'ediff-files "ediff" "\ 7595(autoload 'ediff-files "ediff" "\
@@ -7768,7 +7773,7 @@ buffer.
7768\(fn &optional FILE STARTUP-HOOKS MERGE-BUFFER-FILE)" t nil) 7773\(fn &optional FILE STARTUP-HOOKS MERGE-BUFFER-FILE)" t nil)
7769 7774
7770(autoload 'ediff-patch-file "ediff" "\ 7775(autoload 'ediff-patch-file "ediff" "\
7771Run Ediff by patching SOURCE-FILENAME. 7776Query for a file name, and then run Ediff by patching that file.
7772If optional PATCH-BUF is given, use the patch in that buffer 7777If optional PATCH-BUF is given, use the patch in that buffer
7773and don't ask the user. 7778and don't ask the user.
7774If prefix argument, then: if even argument, assume that the patch is in a 7779If prefix argument, then: if even argument, assume that the patch is in a
@@ -8149,6 +8154,32 @@ displayed.
8149 8154
8150;;;*** 8155;;;***
8151 8156
8157;;;### (autoloads (emacs-lock-mode) "emacs-lock" "emacs-lock.el"
8158;;;;;; (19988 13913))
8159;;; Generated autoloads from emacs-lock.el
8160
8161(autoload 'emacs-lock-mode "emacs-lock" "\
8162Toggle Emacs Lock mode in the current buffer.
8163
8164With \\[universal-argument], ask for the locking mode to be used.
8165With other prefix ARG, turn mode on if ARG is positive, off otherwise.
8166
8167Initially, if the user does not pass an explicit locking mode, it defaults
8168to `emacs-lock-default-locking-mode' (which see); afterwards, the locking
8169mode most recently set on the buffer is used instead.
8170
8171When called from Elisp code, ARG can be any locking mode:
8172
8173 exit -- Emacs cannot exit while the buffer is locked
8174 kill -- the buffer cannot be killed, but Emacs can exit as usual
8175 all -- the buffer is locked against both actions
8176
8177Other values are interpreted as usual.
8178
8179\(fn &optional ARG)" t nil)
8180
8181;;;***
8182
8152;;;### (autoloads (report-emacs-bug) "emacsbug" "mail/emacsbug.el" 8183;;;### (autoloads (report-emacs-bug) "emacsbug" "mail/emacsbug.el"
8153;;;;;; (19978 37530)) 8184;;;;;; (19978 37530))
8154;;; Generated autoloads from mail/emacsbug.el 8185;;; Generated autoloads from mail/emacsbug.el
@@ -8579,7 +8610,7 @@ Look at CONFIG and try to expand GROUP.
8579;;;*** 8610;;;***
8580 8611
8581;;;### (autoloads (erc-handle-irc-url erc erc-select-read-args) "erc" 8612;;;### (autoloads (erc-handle-irc-url erc erc-select-read-args) "erc"
8582;;;;;; "erc/erc.el" (19981 40664)) 8613;;;;;; "erc/erc.el" (19986 58615))
8583;;; Generated autoloads from erc/erc.el 8614;;; Generated autoloads from erc/erc.el
8584 8615
8585(autoload 'erc-select-read-args "erc" "\ 8616(autoload 'erc-select-read-args "erc" "\
@@ -9202,7 +9233,7 @@ corresponding to a successful execution.
9202;;;;;; visit-tags-table tags-table-mode find-tag-default-function 9233;;;;;; visit-tags-table tags-table-mode find-tag-default-function
9203;;;;;; find-tag-hook tags-add-tables tags-compression-info-list 9234;;;;;; find-tag-hook tags-add-tables tags-compression-info-list
9204;;;;;; tags-table-list tags-case-fold-search) "etags" "progmodes/etags.el" 9235;;;;;; tags-table-list tags-case-fold-search) "etags" "progmodes/etags.el"
9205;;;;;; (19936 52203)) 9236;;;;;; (20007 64734))
9206;;; Generated autoloads from progmodes/etags.el 9237;;; Generated autoloads from progmodes/etags.el
9207 9238
9208(defvar tags-file-name nil "\ 9239(defvar tags-file-name nil "\
@@ -9459,7 +9490,11 @@ Search through all files listed in tags table for match for REGEXP.
9459Stops when a match is found. 9490Stops when a match is found.
9460To continue searching for next match, use command \\[tags-loop-continue]. 9491To continue searching for next match, use command \\[tags-loop-continue].
9461 9492
9462See documentation of variable `tags-file-name'. 9493If FILE-LIST-FORM is non-nil, it should be a form that, when
9494evaluated, will return a list of file names. The search will be
9495restricted to these files.
9496
9497Aleso see the documentation of the `tags-file-name' variable.
9463 9498
9464\(fn REGEXP &optional FILE-LIST-FORM)" t nil) 9499\(fn REGEXP &optional FILE-LIST-FORM)" t nil)
9465 9500
@@ -10138,7 +10173,7 @@ Besides the choice of face, it is the same as `buffer-face-mode'.
10138 10173
10139;;;### (autoloads (feedmail-queue-reminder feedmail-run-the-queue 10174;;;### (autoloads (feedmail-queue-reminder feedmail-run-the-queue
10140;;;;;; feedmail-run-the-queue-global-prompt feedmail-run-the-queue-no-prompts 10175;;;;;; feedmail-run-the-queue-global-prompt feedmail-run-the-queue-no-prompts
10141;;;;;; feedmail-send-it) "feedmail" "mail/feedmail.el" (19931 11784)) 10176;;;;;; feedmail-send-it) "feedmail" "mail/feedmail.el" (19986 58615))
10142;;; Generated autoloads from mail/feedmail.el 10177;;; Generated autoloads from mail/feedmail.el
10143 10178
10144(autoload 'feedmail-send-it "feedmail" "\ 10179(autoload 'feedmail-send-it "feedmail" "\
@@ -10782,8 +10817,8 @@ to get the effect of a C-q.
10782 10817
10783;;;*** 10818;;;***
10784 10819
10785;;;### (autoloads (flymake-mode-off flymake-mode-on flymake-mode) 10820;;;### (autoloads (flymake-find-file-hook flymake-mode-off flymake-mode-on
10786;;;;;; "flymake" "progmodes/flymake.el" (19976 22732)) 10821;;;;;; flymake-mode) "flymake" "progmodes/flymake.el" (19984 16846))
10787;;; Generated autoloads from progmodes/flymake.el 10822;;; Generated autoloads from progmodes/flymake.el
10788 10823
10789(autoload 'flymake-mode "flymake" "\ 10824(autoload 'flymake-mode "flymake" "\
@@ -10803,11 +10838,16 @@ Turn flymake mode off.
10803 10838
10804\(fn)" nil nil) 10839\(fn)" nil nil)
10805 10840
10841(autoload 'flymake-find-file-hook "flymake" "\
10842
10843
10844\(fn)" nil nil)
10845
10806;;;*** 10846;;;***
10807 10847
10808;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off 10848;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off
10809;;;;;; turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode) 10849;;;;;; turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode)
10810;;;;;; "flyspell" "textmodes/flyspell.el" (19981 40664)) 10850;;;;;; "flyspell" "textmodes/flyspell.el" (19982 3545))
10811;;; Generated autoloads from textmodes/flyspell.el 10851;;; Generated autoloads from textmodes/flyspell.el
10812 10852
10813(autoload 'flyspell-prog-mode "flyspell" "\ 10853(autoload 'flyspell-prog-mode "flyspell" "\
@@ -10877,7 +10917,7 @@ Flyspell whole buffer.
10877 10917
10878;;;### (autoloads (follow-delete-other-windows-and-split follow-mode 10918;;;### (autoloads (follow-delete-other-windows-and-split follow-mode
10879;;;;;; turn-off-follow-mode turn-on-follow-mode) "follow" "follow.el" 10919;;;;;; turn-off-follow-mode turn-on-follow-mode) "follow" "follow.el"
10880;;;;;; (19886 45771)) 10920;;;;;; (19998 49767))
10881;;; Generated autoloads from follow.el 10921;;; Generated autoloads from follow.el
10882 10922
10883(autoload 'turn-on-follow-mode "follow" "\ 10923(autoload 'turn-on-follow-mode "follow" "\
@@ -11129,7 +11169,7 @@ and choose the directory as the fortune-file.
11129;;;*** 11169;;;***
11130 11170
11131;;;### (autoloads (gdb gdb-enable-debug) "gdb-mi" "progmodes/gdb-mi.el" 11171;;;### (autoloads (gdb gdb-enable-debug) "gdb-mi" "progmodes/gdb-mi.el"
11132;;;;;; (19931 11784)) 11172;;;;;; (19988 13913))
11133;;; Generated autoloads from progmodes/gdb-mi.el 11173;;; Generated autoloads from progmodes/gdb-mi.el
11134 11174
11135(defvar gdb-enable-debug nil "\ 11175(defvar gdb-enable-debug nil "\
@@ -11337,7 +11377,7 @@ DEFAULT-MAP specifies the default key map for ICON-LIST.
11337;;;*** 11377;;;***
11338 11378
11339;;;### (autoloads (gnus gnus-other-frame gnus-slave gnus-no-server 11379;;;### (autoloads (gnus gnus-other-frame gnus-slave gnus-no-server
11340;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (19978 37530)) 11380;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (20006 43871))
11341;;; Generated autoloads from gnus/gnus.el 11381;;; Generated autoloads from gnus/gnus.el
11342(when (fboundp 'custom-autoload) 11382(when (fboundp 'custom-autoload)
11343 (custom-autoload 'gnus-select-method "gnus")) 11383 (custom-autoload 'gnus-select-method "gnus"))
@@ -11481,7 +11521,7 @@ If CLEAN, obsolete (ignore).
11481;;;*** 11521;;;***
11482 11522
11483;;;### (autoloads (gnus-article-prepare-display) "gnus-art" "gnus/gnus-art.el" 11523;;;### (autoloads (gnus-article-prepare-display) "gnus-art" "gnus/gnus-art.el"
11484;;;;;; (19981 40664)) 11524;;;;;; (20022 32083))
11485;;; Generated autoloads from gnus/gnus-art.el 11525;;; Generated autoloads from gnus/gnus-art.el
11486 11526
11487(autoload 'gnus-article-prepare-display "gnus-art" "\ 11527(autoload 'gnus-article-prepare-display "gnus-art" "\
@@ -11699,7 +11739,7 @@ If gravatars are already displayed, remove them.
11699;;;*** 11739;;;***
11700 11740
11701;;;### (autoloads (gnus-fetch-group-other-frame gnus-fetch-group) 11741;;;### (autoloads (gnus-fetch-group-other-frame gnus-fetch-group)
11702;;;;;; "gnus-group" "gnus/gnus-group.el" (19981 40664)) 11742;;;;;; "gnus-group" "gnus/gnus-group.el" (20006 43871))
11703;;; Generated autoloads from gnus/gnus-group.el 11743;;; Generated autoloads from gnus/gnus-group.el
11704 11744
11705(autoload 'gnus-fetch-group "gnus-group" "\ 11745(autoload 'gnus-fetch-group "gnus-group" "\
@@ -11717,7 +11757,7 @@ Pop up a frame and enter GROUP.
11717;;;*** 11757;;;***
11718 11758
11719;;;### (autoloads (gnus-html-prefetch-images gnus-article-html) "gnus-html" 11759;;;### (autoloads (gnus-html-prefetch-images gnus-article-html) "gnus-html"
11720;;;;;; "gnus/gnus-html.el" (19917 1372)) 11760;;;;;; "gnus/gnus-html.el" (20006 43871))
11721;;; Generated autoloads from gnus/gnus-html.el 11761;;; Generated autoloads from gnus/gnus-html.el
11722 11762
11723(autoload 'gnus-article-html "gnus-html" "\ 11763(autoload 'gnus-article-html "gnus-html" "\
@@ -11874,7 +11914,7 @@ Calling (gnus-group-split-fancy nil nil \"mail.others\") returns:
11874;;;*** 11914;;;***
11875 11915
11876;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail) 11916;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail)
11877;;;;;; "gnus-msg" "gnus/gnus-msg.el" (19978 37530)) 11917;;;;;; "gnus-msg" "gnus/gnus-msg.el" (19990 55648))
11878;;; Generated autoloads from gnus/gnus-msg.el 11918;;; Generated autoloads from gnus/gnus-msg.el
11879 11919
11880(autoload 'gnus-msg-mail "gnus-msg" "\ 11920(autoload 'gnus-msg-mail "gnus-msg" "\
@@ -12051,7 +12091,7 @@ Update the format specification near point.
12051;;;*** 12091;;;***
12052 12092
12053;;;### (autoloads (gnus-declare-backend) "gnus-start" "gnus/gnus-start.el" 12093;;;### (autoloads (gnus-declare-backend) "gnus-start" "gnus/gnus-start.el"
12054;;;;;; (19953 61266)) 12094;;;;;; (19988 13913))
12055;;; Generated autoloads from gnus/gnus-start.el 12095;;; Generated autoloads from gnus/gnus-start.el
12056 12096
12057(autoload 'gnus-declare-backend "gnus-start" "\ 12097(autoload 'gnus-declare-backend "gnus-start" "\
@@ -12062,7 +12102,7 @@ Declare back end NAME with ABILITIES as a Gnus back end.
12062;;;*** 12102;;;***
12063 12103
12064;;;### (autoloads (gnus-summary-bookmark-jump) "gnus-sum" "gnus/gnus-sum.el" 12104;;;### (autoloads (gnus-summary-bookmark-jump) "gnus-sum" "gnus/gnus-sum.el"
12065;;;;;; (19981 40664)) 12105;;;;;; (20022 32083))
12066;;; Generated autoloads from gnus/gnus-sum.el 12106;;; Generated autoloads from gnus/gnus-sum.el
12067 12107
12068(autoload 'gnus-summary-bookmark-jump "gnus-sum" "\ 12108(autoload 'gnus-summary-bookmark-jump "gnus-sum" "\
@@ -12100,6 +12140,23 @@ Add the window configuration CONF to `gnus-buffer-configuration'.
12100 12140
12101;;;*** 12141;;;***
12102 12142
12143;;;### (autoloads (gnutls-min-prime-bits) "gnutls" "net/gnutls.el"
12144;;;;;; (20002 46800))
12145;;; Generated autoloads from net/gnutls.el
12146
12147(defvar gnutls-min-prime-bits nil "\
12148The minimum number of bits to be used in Diffie-Hellman key exchange.
12149
12150This sets the minimum accepted size of the key to be used in a
12151client-server handshake. If the server sends a prime with fewer than
12152the specified number of bits the handshake will fail.
12153
12154A value of nil says to use the default gnutls value.")
12155
12156(custom-autoload 'gnutls-min-prime-bits "gnutls" t)
12157
12158;;;***
12159
12103;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (19889 21967)) 12160;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (19889 21967))
12104;;; Generated autoloads from play/gomoku.el 12161;;; Generated autoloads from play/gomoku.el
12105 12162
@@ -12185,7 +12242,7 @@ Retrieve MAIL-ADDRESS gravatar and returns it.
12185 12242
12186;;;### (autoloads (zrgrep rgrep lgrep grep-find grep grep-mode grep-compute-defaults 12243;;;### (autoloads (zrgrep rgrep lgrep grep-find grep grep-mode grep-compute-defaults
12187;;;;;; grep-process-setup grep-setup-hook grep-find-command grep-command 12244;;;;;; grep-process-setup grep-setup-hook grep-find-command grep-command
12188;;;;;; grep-window-height) "grep" "progmodes/grep.el" (19980 19797)) 12245;;;;;; grep-window-height) "grep" "progmodes/grep.el" (19989 34789))
12189;;; Generated autoloads from progmodes/grep.el 12246;;; Generated autoloads from progmodes/grep.el
12190 12247
12191(defvar grep-window-height nil "\ 12248(defvar grep-window-height nil "\
@@ -12356,7 +12413,7 @@ the form \"WINDOW-ID PIXMAP-ID\". Value is non-nil if successful.
12356;;;*** 12413;;;***
12357 12414
12358;;;### (autoloads (gud-tooltip-mode gdb-script-mode jdb pdb perldb 12415;;;### (autoloads (gud-tooltip-mode gdb-script-mode jdb pdb perldb
12359;;;;;; xdb dbx sdb gud-gdb) "gud" "progmodes/gud.el" (19931 11784)) 12416;;;;;; xdb dbx sdb gud-gdb) "gud" "progmodes/gud.el" (19988 13913))
12360;;; Generated autoloads from progmodes/gud.el 12417;;; Generated autoloads from progmodes/gud.el
12361 12418
12362(autoload 'gud-gdb "gud" "\ 12419(autoload 'gud-gdb "gud" "\
@@ -13787,7 +13844,7 @@ FORMATS is the value to use for `ibuffer-formats'.
13787 13844
13788;;;### (autoloads (icalendar-import-buffer icalendar-import-file 13845;;;### (autoloads (icalendar-import-buffer icalendar-import-file
13789;;;;;; icalendar-export-region icalendar-export-file) "icalendar" 13846;;;;;; icalendar-export-region icalendar-export-file) "icalendar"
13790;;;;;; "calendar/icalendar.el" (19897 16090)) 13847;;;;;; "calendar/icalendar.el" (20015 58840))
13791;;; Generated autoloads from calendar/icalendar.el 13848;;; Generated autoloads from calendar/icalendar.el
13792 13849
13793(autoload 'icalendar-export-file "icalendar" "\ 13850(autoload 'icalendar-export-file "icalendar" "\
@@ -14353,7 +14410,7 @@ Toggle inline image minor mode.
14353;;;;;; create-image image-type-auto-detected-p image-type-available-p 14410;;;;;; create-image image-type-auto-detected-p image-type-available-p
14354;;;;;; image-type image-type-from-file-name image-type-from-file-header 14411;;;;;; image-type image-type-from-file-name image-type-from-file-header
14355;;;;;; image-type-from-buffer image-type-from-data) "image" "image.el" 14412;;;;;; image-type-from-buffer image-type-from-data) "image" "image.el"
14356;;;;;; (19956 37456)) 14413;;;;;; (20013 17118))
14357;;; Generated autoloads from image.el 14414;;; Generated autoloads from image.el
14358 14415
14359(autoload 'image-type-from-data "image" "\ 14416(autoload 'image-type-from-data "image" "\
@@ -14439,6 +14496,7 @@ IMAGE must be an image created with `create-image' or `defimage'.
14439IMAGE is displayed by putting an overlay into the current buffer with a 14496IMAGE is displayed by putting an overlay into the current buffer with a
14440`before-string' STRING that has a `display' property whose value is the 14497`before-string' STRING that has a `display' property whose value is the
14441image. STRING is defaulted if you omit it. 14498image. STRING is defaulted if you omit it.
14499The overlay created will have the `put-image' property set to t.
14442POS may be an integer or marker. 14500POS may be an integer or marker.
14443AREA is where to display the image. AREA nil or omitted means 14501AREA is where to display the image. AREA nil or omitted means
14444display it in the text area, a value of `left-margin' means 14502display it in the text area, a value of `left-margin' means
@@ -14450,8 +14508,8 @@ means display it in the right marginal area.
14450(autoload 'insert-image "image" "\ 14508(autoload 'insert-image "image" "\
14451Insert IMAGE into current buffer at point. 14509Insert IMAGE into current buffer at point.
14452IMAGE is displayed by inserting STRING into the current buffer 14510IMAGE is displayed by inserting STRING into the current buffer
14453with a `display' property whose value is the image. STRING is 14511with a `display' property whose value is the image. STRING
14454defaulted if you omit it. 14512defaults to the empty string if you omit it.
14455AREA is where to display the image. AREA nil or omitted means 14513AREA is where to display the image. AREA nil or omitted means
14456display it in the text area, a value of `left-margin' means 14514display it in the text area, a value of `left-margin' means
14457display it in the left marginal area, a value of `right-margin' 14515display it in the left marginal area, a value of `right-margin'
@@ -14749,7 +14807,7 @@ Image files are those whose name has an extension in
14749;;;*** 14807;;;***
14750 14808
14751;;;### (autoloads (image-bookmark-jump image-mode-as-text image-minor-mode 14809;;;### (autoloads (image-bookmark-jump image-mode-as-text image-minor-mode
14752;;;;;; image-mode) "image-mode" "image-mode.el" (19951 19539)) 14810;;;;;; image-mode) "image-mode" "image-mode.el" (19999 41597))
14753;;; Generated autoloads from image-mode.el 14811;;; Generated autoloads from image-mode.el
14754 14812
14755(autoload 'image-mode "image-mode" "\ 14813(autoload 'image-mode "image-mode" "\
@@ -15007,7 +15065,7 @@ of `inferior-lisp-program'). Runs the hooks from
15007;;;;;; Info-goto-emacs-key-command-node Info-goto-emacs-command-node 15065;;;;;; Info-goto-emacs-key-command-node Info-goto-emacs-command-node
15008;;;;;; Info-mode info-finder info-apropos Info-index Info-directory 15066;;;;;; Info-mode info-finder info-apropos Info-index Info-directory
15009;;;;;; Info-on-current-buffer info-standalone info-emacs-manual 15067;;;;;; Info-on-current-buffer info-standalone info-emacs-manual
15010;;;;;; info info-other-window) "info" "info.el" (19967 7755)) 15068;;;;;; info info-other-window) "info" "info.el" (20000 30124))
15011;;; Generated autoloads from info.el 15069;;; Generated autoloads from info.el
15012 15070
15013(autoload 'info-other-window "info" "\ 15071(autoload 'info-other-window "info" "\
@@ -15022,7 +15080,7 @@ Enter Info, the documentation browser.
15022Optional argument FILE-OR-NODE specifies the file to examine; 15080Optional argument FILE-OR-NODE specifies the file to examine;
15023the default is the top-level directory of Info. 15081the default is the top-level directory of Info.
15024Called from a program, FILE-OR-NODE may specify an Info node of the form 15082Called from a program, FILE-OR-NODE may specify an Info node of the form
15025`(FILENAME)NODENAME'. 15083\"(FILENAME)NODENAME\".
15026Optional argument BUFFER specifies the Info buffer name; 15084Optional argument BUFFER specifies the Info buffer name;
15027the default buffer name is *info*. If BUFFER exists, 15085the default buffer name is *info*. If BUFFER exists,
15028just switch to BUFFER. Otherwise, create a new buffer 15086just switch to BUFFER. Otherwise, create a new buffer
@@ -15130,7 +15188,7 @@ Moving within a node:
15130\\[Info-scroll-down] Normally, scroll backward. If the beginning of the buffer is 15188\\[Info-scroll-down] Normally, scroll backward. If the beginning of the buffer is
15131 already visible, try to go to the previous menu entry, or up 15189 already visible, try to go to the previous menu entry, or up
15132 if there is none. 15190 if there is none.
15133\\[beginning-of-buffer] Go to beginning of node. 15191\\[Info-beginning-of-buffer] Go to beginning of node.
15134 15192
15135Advanced commands: 15193Advanced commands:
15136\\[Info-search] Search through this Info file for specified regexp, 15194\\[Info-search] Search through this Info file for specified regexp,
@@ -15194,7 +15252,7 @@ Go to Info buffer that displays MANUAL, creating it if none already exists.
15194 15252
15195;;;### (autoloads (info-complete-file info-complete-symbol info-lookup-file 15253;;;### (autoloads (info-complete-file info-complete-symbol info-lookup-file
15196;;;;;; info-lookup-symbol info-lookup-reset) "info-look" "info-look.el" 15254;;;;;; info-lookup-symbol info-lookup-reset) "info-look" "info-look.el"
15197;;;;;; (19936 52203)) 15255;;;;;; (19984 16846))
15198;;; Generated autoloads from info-look.el 15256;;; Generated autoloads from info-look.el
15199 15257
15200(autoload 'info-lookup-reset "info-look" "\ 15258(autoload 'info-lookup-reset "info-look" "\
@@ -15837,7 +15895,7 @@ If non-nil, second arg INITIAL-INPUT is a string to insert before reading.
15837;;;*** 15895;;;***
15838 15896
15839;;;### (autoloads (jka-compr-uninstall jka-compr-handler) "jka-compr" 15897;;;### (autoloads (jka-compr-uninstall jka-compr-handler) "jka-compr"
15840;;;;;; "jka-compr.el" (19886 45771)) 15898;;;;;; "jka-compr.el" (20000 30139))
15841;;; Generated autoloads from jka-compr.el 15899;;; Generated autoloads from jka-compr.el
15842 15900
15843(defvar jka-compr-inhibit nil "\ 15901(defvar jka-compr-inhibit nil "\
@@ -16346,8 +16404,8 @@ See `linum-mode' for more information on Linum mode.
16346 16404
16347;;;*** 16405;;;***
16348 16406
16349;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (19975 16407;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (19996
16350;;;;;; 1875)) 16408;;;;;; 8027))
16351;;; Generated autoloads from loadhist.el 16409;;; Generated autoloads from loadhist.el
16352 16410
16353(autoload 'unload-feature "loadhist" "\ 16411(autoload 'unload-feature "loadhist" "\
@@ -16469,16 +16527,20 @@ Major mode for browsing CVS log output.
16469 16527
16470;;;*** 16528;;;***
16471 16529
16472;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (19886 16530;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (19984
16473;;;;;; 45771)) 16531;;;;;; 16846))
16474;;; Generated autoloads from longlines.el 16532;;; Generated autoloads from longlines.el
16475 16533
16476(autoload 'longlines-mode "longlines" "\ 16534(autoload 'longlines-mode "longlines" "\
16477Toggle Long Lines mode. 16535Minor mode to wrap long lines.
16478In Long Lines mode, long lines are wrapped if they extend beyond 16536In Long Lines mode, long lines are wrapped if they extend beyond
16479`fill-column'. The soft newlines used for line wrapping will not 16537`fill-column'. The soft newlines used for line wrapping will not
16480show up when the text is yanked or saved to disk. 16538show up when the text is yanked or saved to disk.
16481 16539
16540With no argument, this command toggles Flyspell mode.
16541With a prefix argument ARG, turn Flyspell minor mode on if ARG is positive,
16542otherwise turn it off.
16543
16482If the variable `longlines-auto-wrap' is non-nil, lines are automatically 16544If the variable `longlines-auto-wrap' is non-nil, lines are automatically
16483wrapped whenever the buffer is changed. You can always call 16545wrapped whenever the buffer is changed. You can always call
16484`fill-paragraph' to fill individual paragraphs. 16546`fill-paragraph' to fill individual paragraphs.
@@ -17103,7 +17165,7 @@ Previous contents of that buffer are killed first.
17103;;;*** 17165;;;***
17104 17166
17105;;;### (autoloads (Man-bookmark-jump man-follow man) "man" "man.el" 17167;;;### (autoloads (Man-bookmark-jump man-follow man) "man" "man.el"
17106;;;;;; (19870 57559)) 17168;;;;;; (19999 41597))
17107;;; Generated autoloads from man.el 17169;;; Generated autoloads from man.el
17108 17170
17109(defalias 'manual-entry 'man) 17171(defalias 'manual-entry 'man)
@@ -17211,7 +17273,7 @@ Returns non-nil if the new state is enabled.
17211;;;;;; message-forward-make-body message-forward message-recover 17273;;;;;; message-forward-make-body message-forward message-recover
17212;;;;;; message-supersede message-cancel-news message-followup message-wide-reply 17274;;;;;; message-supersede message-cancel-news message-followup message-wide-reply
17213;;;;;; message-reply message-news message-mail message-mode) "message" 17275;;;;;; message-reply message-news message-mail message-mode) "message"
17214;;;;;; "gnus/message.el" (19980 19797)) 17276;;;;;; "gnus/message.el" (20006 43871))
17215;;; Generated autoloads from gnus/message.el 17277;;; Generated autoloads from gnus/message.el
17216 17278
17217(define-mail-user-agent 'message-user-agent 'message-mail 'message-send-and-exit 'message-kill-buffer 'message-send-hook) 17279(define-mail-user-agent 'message-user-agent 'message-mail 'message-send-and-exit 'message-kill-buffer 'message-send-hook)
@@ -17439,7 +17501,7 @@ redisplayed as output is inserted.
17439 17501
17440;;;### (autoloads (mh-fully-kill-draft mh-send-letter mh-user-agent-compose 17502;;;### (autoloads (mh-fully-kill-draft mh-send-letter mh-user-agent-compose
17441;;;;;; mh-smail-batch mh-smail-other-window mh-smail) "mh-comp" 17503;;;;;; mh-smail-batch mh-smail-other-window mh-smail) "mh-comp"
17442;;;;;; "mh-e/mh-comp.el" (19845 45374)) 17504;;;;;; "mh-e/mh-comp.el" (19993 31832))
17443;;; Generated autoloads from mh-e/mh-comp.el 17505;;; Generated autoloads from mh-e/mh-comp.el
17444 17506
17445(autoload 'mh-smail "mh-comp" "\ 17507(autoload 'mh-smail "mh-comp" "\
@@ -17486,7 +17548,7 @@ Elements look like (HEADER . VALUE) where both HEADER and VALUE
17486are strings. 17548are strings.
17487 17549
17488CONTINUE, SWITCH-FUNCTION, YANK-ACTION, SEND-ACTIONS, and 17550CONTINUE, SWITCH-FUNCTION, YANK-ACTION, SEND-ACTIONS, and
17489RETURN-ACTION are ignored. 17551RETURN-ACTION and any additional arguments are IGNORED.
17490 17552
17491\(fn &optional TO SUBJECT OTHER-HEADERS CONTINUE SWITCH-FUNCTION YANK-ACTION SEND-ACTIONS RETURN-ACTION &rest IGNORED)" nil nil) 17553\(fn &optional TO SUBJECT OTHER-HEADERS CONTINUE SWITCH-FUNCTION YANK-ACTION SEND-ACTIONS RETURN-ACTION &rest IGNORED)" nil nil)
17492 17554
@@ -17529,7 +17591,7 @@ delete the draft message.
17529 17591
17530;;;*** 17592;;;***
17531 17593
17532;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (19931 11784)) 17594;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (20004 2139))
17533;;; Generated autoloads from mh-e/mh-e.el 17595;;; Generated autoloads from mh-e/mh-e.el
17534 17596
17535(put 'mh-progs 'risky-local-variable t) 17597(put 'mh-progs 'risky-local-variable t)
@@ -17546,7 +17608,7 @@ Display version information about MH-E and the MH mail handling system.
17546;;;*** 17608;;;***
17547 17609
17548;;;### (autoloads (mh-folder-mode mh-nmail mh-rmail) "mh-folder" 17610;;;### (autoloads (mh-folder-mode mh-nmail mh-rmail) "mh-folder"
17549;;;;;; "mh-e/mh-folder.el" (19845 45374)) 17611;;;;;; "mh-e/mh-folder.el" (20004 2139))
17550;;; Generated autoloads from mh-e/mh-folder.el 17612;;; Generated autoloads from mh-e/mh-folder.el
17551 17613
17552(autoload 'mh-rmail "mh-folder" "\ 17614(autoload 'mh-rmail "mh-folder" "\
@@ -18041,8 +18103,8 @@ To test this function, evaluate:
18041 18103
18042;;;*** 18104;;;***
18043 18105
18044;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (19886 18106;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (19997
18045;;;;;; 45771)) 18107;;;;;; 28887))
18046;;; Generated autoloads from mouse-sel.el 18108;;; Generated autoloads from mouse-sel.el
18047 18109
18048(defvar mouse-sel-mode nil "\ 18110(defvar mouse-sel-mode nil "\
@@ -18059,14 +18121,10 @@ Toggle Mouse Sel mode.
18059With prefix ARG, turn Mouse Sel mode on if and only if ARG is positive. 18121With prefix ARG, turn Mouse Sel mode on if and only if ARG is positive.
18060Returns the new status of Mouse Sel mode (non-nil means on). 18122Returns the new status of Mouse Sel mode (non-nil means on).
18061 18123
18062When Mouse Sel mode is enabled, mouse selection is enhanced in various ways: 18124When Mouse Sel mode is enabled, mouse selection is enhanced in
18063 18125various ways:
18064- Clicking mouse-1 starts (cancels) selection, dragging extends it.
18065
18066- Clicking or dragging mouse-3 extends the selection as well.
18067 18126
18068- Double-clicking on word constituents selects words. 18127- Double-clicking on symbol constituents selects symbols.
18069Double-clicking on symbol constituents selects symbols.
18070Double-clicking on quotes or parentheses selects sexps. 18128Double-clicking on quotes or parentheses selects sexps.
18071Double-clicking on whitespace selects whitespace. 18129Double-clicking on whitespace selects whitespace.
18072Triple-clicking selects lines. 18130Triple-clicking selects lines.
@@ -18081,14 +18139,8 @@ mouse-sel sets the variables `interprogram-cut-function' and
18081- Clicking mouse-2 inserts the contents of the primary selection at 18139- Clicking mouse-2 inserts the contents of the primary selection at
18082the mouse position (or point, if `mouse-yank-at-point' is non-nil). 18140the mouse position (or point, if `mouse-yank-at-point' is non-nil).
18083 18141
18084- Pressing mouse-2 while selecting or extending copies selection 18142- mouse-2 while selecting or extending copies selection to the
18085to the kill ring. Pressing mouse-1 or mouse-3 kills it. 18143kill ring; mouse-1 or mouse-3 kills it.
18086
18087- Double-clicking mouse-3 also kills selection.
18088
18089- M-mouse-1, M-mouse-2 & M-mouse-3 work similarly to mouse-1, mouse-2
18090& mouse-3, but operate on the X secondary selection rather than the
18091primary selection and region.
18092 18144
18093\(fn &optional ARG)" t nil) 18145\(fn &optional ARG)" t nil)
18094 18146
@@ -18527,7 +18579,7 @@ listed in the PORTS list.
18527;;;*** 18579;;;***
18528 18580
18529;;;### (autoloads (open-network-stream) "network-stream" "net/network-stream.el" 18581;;;### (autoloads (open-network-stream) "network-stream" "net/network-stream.el"
18530;;;;;; (19976 22732)) 18582;;;;;; (19990 55648))
18531;;; Generated autoloads from net/network-stream.el 18583;;; Generated autoloads from net/network-stream.el
18532 18584
18533(autoload 'open-network-stream "network-stream" "\ 18585(autoload 'open-network-stream "network-stream" "\
@@ -18578,6 +18630,10 @@ values:
18578 18630
18579:end-of-command specifies a regexp matching the end of a command. 18631:end-of-command specifies a regexp matching the end of a command.
18580 18632
18633:end-of-capability specifies a regexp matching the end of the
18634 response to the command specified for :capability-command.
18635 It defaults to the regexp specified for :end-of-command.
18636
18581:success specifies a regexp matching a message indicating a 18637:success specifies a regexp matching a message indicating a
18582 successful STARTTLS negotiation. For instance, the default 18638 successful STARTTLS negotiation. For instance, the default
18583 should be \"^3\" for an NNTP connection. 18639 should be \"^3\" for an NNTP connection.
@@ -19083,13 +19139,14 @@ the variable `nxml-enabled-unicode-blocks'.
19083;;;;;; org-babel-next-src-block org-babel-goto-named-result org-babel-goto-named-src-block 19139;;;;;; org-babel-next-src-block org-babel-goto-named-result org-babel-goto-named-src-block
19084;;;;;; org-babel-goto-src-block-head org-babel-hide-result-toggle-maybe 19140;;;;;; org-babel-goto-src-block-head org-babel-hide-result-toggle-maybe
19085;;;;;; org-babel-sha1-hash org-babel-execute-subtree org-babel-execute-buffer 19141;;;;;; org-babel-sha1-hash org-babel-execute-subtree org-babel-execute-buffer
19086;;;;;; org-babel-map-src-blocks org-babel-open-src-block-result 19142;;;;;; org-babel-map-inline-src-blocks org-babel-map-src-blocks
19087;;;;;; org-babel-switch-to-session-with-code org-babel-switch-to-session 19143;;;;;; org-babel-open-src-block-result org-babel-switch-to-session-with-code
19088;;;;;; org-babel-initiate-session org-babel-load-in-session org-babel-expand-src-block 19144;;;;;; org-babel-switch-to-session org-babel-initiate-session org-babel-load-in-session
19089;;;;;; org-babel-execute-src-block org-babel-pop-to-session-maybe 19145;;;;;; org-babel-check-src-block org-babel-expand-src-block org-babel-execute-src-block
19090;;;;;; org-babel-load-in-session-maybe org-babel-expand-src-block-maybe 19146;;;;;; org-babel-pop-to-session-maybe org-babel-load-in-session-maybe
19147;;;;;; org-babel-expand-src-block-maybe org-babel-view-src-block-info
19091;;;;;; org-babel-execute-maybe org-babel-execute-safely-maybe) "ob" 19148;;;;;; org-babel-execute-maybe org-babel-execute-safely-maybe) "ob"
19092;;;;;; "org/ob.el" (19845 45374)) 19149;;;;;; "org/ob.el" (20021 11227))
19093;;; Generated autoloads from org/ob.el 19150;;; Generated autoloads from org/ob.el
19094 19151
19095(autoload 'org-babel-execute-safely-maybe "ob" "\ 19152(autoload 'org-babel-execute-safely-maybe "ob" "\
@@ -19102,6 +19159,13 @@ the variable `nxml-enabled-unicode-blocks'.
19102 19159
19103\(fn)" t nil) 19160\(fn)" t nil)
19104 19161
19162(autoload 'org-babel-view-src-block-info "ob" "\
19163Display information on the current source block.
19164This includes header arguments, language and name, and is largely
19165a window into the `org-babel-get-src-block-info' function.
19166
19167\(fn)" t nil)
19168
19105(autoload 'org-babel-expand-src-block-maybe "ob" "\ 19169(autoload 'org-babel-expand-src-block-maybe "ob" "\
19106Conditionally expand a source block. 19170Conditionally expand a source block.
19107Detect if this is context for a org-babel src-block and if so 19171Detect if this is context for a org-babel src-block and if so
@@ -19149,6 +19213,11 @@ arguments and pop open the results in a preview buffer.
19149 19213
19150\(fn &optional ARG INFO PARAMS)" t nil) 19214\(fn &optional ARG INFO PARAMS)" t nil)
19151 19215
19216(autoload 'org-babel-check-src-block "ob" "\
19217Check for misspelled header arguments in the current code block.
19218
19219\(fn)" t nil)
19220
19152(autoload 'org-babel-load-in-session "ob" "\ 19221(autoload 'org-babel-load-in-session "ob" "\
19153Load the body of the current source-code block. 19222Load the body of the current source-code block.
19154Evaluate the header arguments for the source block before 19223Evaluate the header arguments for the source block before
@@ -19212,6 +19281,15 @@ end-body --------- point at the end of the body
19212 19281
19213(put 'org-babel-map-src-blocks 'lisp-indent-function '1) 19282(put 'org-babel-map-src-blocks 'lisp-indent-function '1)
19214 19283
19284(autoload 'org-babel-map-inline-src-blocks "ob" "\
19285Evaluate BODY forms on each inline source-block in FILE.
19286If FILE is nil evaluate BODY forms on source blocks in current
19287buffer.
19288
19289\(fn FILE &rest BODY)" nil (quote macro))
19290
19291(put 'org-babel-map-inline-src-blocks 'lisp-indent-function '1)
19292
19215(autoload 'org-babel-execute-buffer "ob" "\ 19293(autoload 'org-babel-execute-buffer "ob" "\
19216Execute source code blocks in a buffer. 19294Execute source code blocks in a buffer.
19217Call `org-babel-execute-src-block' on every source block in 19295Call `org-babel-execute-src-block' on every source block in
@@ -19271,7 +19349,7 @@ Mark current src block
19271;;;*** 19349;;;***
19272 19350
19273;;;### (autoloads (org-babel-describe-bindings) "ob-keys" "org/ob-keys.el" 19351;;;### (autoloads (org-babel-describe-bindings) "ob-keys" "org/ob-keys.el"
19274;;;;;; (19845 45374)) 19352;;;;;; (20018 35031))
19275;;; Generated autoloads from org/ob-keys.el 19353;;; Generated autoloads from org/ob-keys.el
19276 19354
19277(autoload 'org-babel-describe-bindings "ob-keys" "\ 19355(autoload 'org-babel-describe-bindings "ob-keys" "\
@@ -19282,7 +19360,7 @@ Describe all keybindings behind `org-babel-key-prefix'.
19282;;;*** 19360;;;***
19283 19361
19284;;;### (autoloads (org-babel-lob-get-info org-babel-lob-execute-maybe 19362;;;### (autoloads (org-babel-lob-get-info org-babel-lob-execute-maybe
19285;;;;;; org-babel-lob-ingest) "ob-lob" "org/ob-lob.el" (19845 45374)) 19363;;;;;; org-babel-lob-ingest) "ob-lob" "org/ob-lob.el" (20018 35031))
19286;;; Generated autoloads from org/ob-lob.el 19364;;; Generated autoloads from org/ob-lob.el
19287 19365
19288(autoload 'org-babel-lob-ingest "ob-lob" "\ 19366(autoload 'org-babel-lob-ingest "ob-lob" "\
@@ -19307,7 +19385,7 @@ Return a Library of Babel function call as a string.
19307 19385
19308;;;### (autoloads (org-babel-tangle org-babel-tangle-file org-babel-load-file 19386;;;### (autoloads (org-babel-tangle org-babel-tangle-file org-babel-load-file
19309;;;;;; org-babel-tangle-lang-exts) "ob-tangle" "org/ob-tangle.el" 19387;;;;;; org-babel-tangle-lang-exts) "ob-tangle" "org/ob-tangle.el"
19310;;;;;; (19845 45374)) 19388;;;;;; (20018 35031))
19311;;; Generated autoloads from org/ob-tangle.el 19389;;; Generated autoloads from org/ob-tangle.el
19312 19390
19313(defvar org-babel-tangle-lang-exts '(("emacs-lisp" . "el")) "\ 19391(defvar org-babel-tangle-lang-exts '(("emacs-lisp" . "el")) "\
@@ -19344,7 +19422,7 @@ TARGET-FILE can be used to specify a default export file for all
19344source blocks. Optional argument LANG can be used to limit the 19422source blocks. Optional argument LANG can be used to limit the
19345exported source code blocks by language. 19423exported source code blocks by language.
19346 19424
19347\(fn &optional TARGET-FILE LANG)" t nil) 19425\(fn &optional ONLY-THIS-BLOCK TARGET-FILE LANG)" t nil)
19348 19426
19349;;;*** 19427;;;***
19350 19428
@@ -19460,7 +19538,7 @@ including a reproducible test case and send the message.
19460;;;;;; org-insert-link-global org-store-link org-run-like-in-org-mode 19538;;;;;; org-insert-link-global org-store-link org-run-like-in-org-mode
19461;;;;;; turn-on-orgstruct++ turn-on-orgstruct orgstruct-mode org-global-cycle 19539;;;;;; turn-on-orgstruct++ turn-on-orgstruct orgstruct-mode org-global-cycle
19462;;;;;; org-mode org-babel-do-load-languages) "org" "org/org.el" 19540;;;;;; org-mode org-babel-do-load-languages) "org" "org/org.el"
19463;;;;;; (19931 11784)) 19541;;;;;; (20018 35031))
19464;;; Generated autoloads from org/org.el 19542;;; Generated autoloads from org/org.el
19465 19543
19466(autoload 'org-babel-do-load-languages "org" "\ 19544(autoload 'org-babel-do-load-languages "org" "\
@@ -19598,6 +19676,7 @@ SCOPE determines the scope of this command. It can be any of:
19598 19676
19599nil The current buffer, respecting the restriction if any 19677nil The current buffer, respecting the restriction if any
19600tree The subtree started with the entry at point 19678tree The subtree started with the entry at point
19679region The entries within the active region, if any
19601file The current buffer, without restriction 19680file The current buffer, without restriction
19602file-with-archives 19681file-with-archives
19603 The current buffer, and any archives associated with it 19682 The current buffer, and any archives associated with it
@@ -19683,7 +19762,7 @@ Call the customize function with org as argument.
19683;;;;;; org-diary org-agenda-list-stuck-projects org-tags-view org-todo-list 19762;;;;;; org-diary org-agenda-list-stuck-projects org-tags-view org-todo-list
19684;;;;;; org-search-view org-agenda-list org-batch-store-agenda-views 19763;;;;;; org-search-view org-agenda-list org-batch-store-agenda-views
19685;;;;;; org-store-agenda-views org-batch-agenda-csv org-batch-agenda 19764;;;;;; org-store-agenda-views org-batch-agenda-csv org-batch-agenda
19686;;;;;; org-agenda) "org-agenda" "org/org-agenda.el" (19914 25180)) 19765;;;;;; org-agenda) "org-agenda" "org/org-agenda.el" (20018 35031))
19687;;; Generated autoloads from org/org-agenda.el 19766;;; Generated autoloads from org/org-agenda.el
19688 19767
19689(autoload 'org-agenda "org-agenda" "\ 19768(autoload 'org-agenda "org-agenda" "\
@@ -19784,11 +19863,6 @@ Produce a daily/weekly view from all files in variable `org-agenda-files'.
19784The view will be for the current day or week, but from the overview buffer 19863The view will be for the current day or week, but from the overview buffer
19785you will be able to go to other days/weeks. 19864you will be able to go to other days/weeks.
19786 19865
19787With one \\[universal-argument] prefix argument INCLUDE-ALL,
19788all unfinished TODO items will also be shown, before the agenda.
19789This feature is considered obsolete, please use the TODO list or a block
19790agenda instead.
19791
19792With a numeric prefix argument in an interactive call, the agenda will 19866With a numeric prefix argument in an interactive call, the agenda will
19793span INCLUDE-ALL days. Lisp programs should instead specify SPAN to change 19867span INCLUDE-ALL days. Lisp programs should instead specify SPAN to change
19794the number of days. SPAN defaults to `org-agenda-span'. 19868the number of days. SPAN defaults to `org-agenda-span'.
@@ -19933,7 +20007,7 @@ belonging to the \"Work\" category.
19933 20007
19934;;;### (autoloads (org-archive-subtree-default-with-confirmation 20008;;;### (autoloads (org-archive-subtree-default-with-confirmation
19935;;;;;; org-archive-subtree-default) "org-archive" "org/org-archive.el" 20009;;;;;; org-archive-subtree-default) "org-archive" "org/org-archive.el"
19936;;;;;; (19845 45374)) 20010;;;;;; (20018 35031))
19937;;; Generated autoloads from org/org-archive.el 20011;;; Generated autoloads from org/org-archive.el
19938 20012
19939(autoload 'org-archive-subtree-default "org-archive" "\ 20013(autoload 'org-archive-subtree-default "org-archive" "\
@@ -19953,8 +20027,8 @@ This command is set with the variable `org-archive-default-command'.
19953;;;### (autoloads (org-export-as-ascii org-export-region-as-ascii 20027;;;### (autoloads (org-export-as-ascii org-export-region-as-ascii
19954;;;;;; org-replace-region-by-ascii org-export-as-ascii-to-buffer 20028;;;;;; org-replace-region-by-ascii org-export-as-ascii-to-buffer
19955;;;;;; org-export-as-utf8-to-buffer org-export-as-utf8 org-export-as-latin1-to-buffer 20029;;;;;; org-export-as-utf8-to-buffer org-export-as-utf8 org-export-as-latin1-to-buffer
19956;;;;;; org-export-as-latin1) "org-ascii" "org/org-ascii.el" (19931 20030;;;;;; org-export-as-latin1) "org-ascii" "org/org-ascii.el" (20018
19957;;;;;; 11784)) 20031;;;;;; 35031))
19958;;; Generated autoloads from org/org-ascii.el 20032;;; Generated autoloads from org/org-ascii.el
19959 20033
19960(autoload 'org-export-as-latin1 "org-ascii" "\ 20034(autoload 'org-export-as-latin1 "org-ascii" "\
@@ -19968,7 +20042,7 @@ Like `org-export-as-ascii-to-buffer', use latin1 encoding for symbols.
19968\(fn &rest ARGS)" t nil) 20042\(fn &rest ARGS)" t nil)
19969 20043
19970(autoload 'org-export-as-utf8 "org-ascii" "\ 20044(autoload 'org-export-as-utf8 "org-ascii" "\
19971Like `org-export-as-ascii', use use encoding for special symbols. 20045Like `org-export-as-ascii', use encoding for special symbols.
19972 20046
19973\(fn &rest ARGS)" t nil) 20047\(fn &rest ARGS)" t nil)
19974 20048
@@ -20027,8 +20101,8 @@ publishing directory.
20027 20101
20028;;;*** 20102;;;***
20029 20103
20030;;;### (autoloads (org-attach) "org-attach" "org/org-attach.el" (19931 20104;;;### (autoloads (org-attach) "org-attach" "org/org-attach.el" (20018
20031;;;;;; 11784)) 20105;;;;;; 35031))
20032;;; Generated autoloads from org/org-attach.el 20106;;; Generated autoloads from org/org-attach.el
20033 20107
20034(autoload 'org-attach "org-attach" "\ 20108(autoload 'org-attach "org-attach" "\
@@ -20040,7 +20114,7 @@ Shows a list of commands and prompts for another key to execute a command.
20040;;;*** 20114;;;***
20041 20115
20042;;;### (autoloads (org-bbdb-anniversaries) "org-bbdb" "org/org-bbdb.el" 20116;;;### (autoloads (org-bbdb-anniversaries) "org-bbdb" "org/org-bbdb.el"
20043;;;;;; (19845 45374)) 20117;;;;;; (20018 35031))
20044;;; Generated autoloads from org/org-bbdb.el 20118;;; Generated autoloads from org/org-bbdb.el
20045 20119
20046(autoload 'org-bbdb-anniversaries "org-bbdb" "\ 20120(autoload 'org-bbdb-anniversaries "org-bbdb" "\
@@ -20051,7 +20125,7 @@ Extract anniversaries from BBDB for display in the agenda.
20051;;;*** 20125;;;***
20052 20126
20053;;;### (autoloads (org-capture-import-remember-templates org-capture-insert-template-here 20127;;;### (autoloads (org-capture-import-remember-templates org-capture-insert-template-here
20054;;;;;; org-capture) "org-capture" "org/org-capture.el" (19845 45374)) 20128;;;;;; org-capture) "org-capture" "org/org-capture.el" (20018 35031))
20055;;; Generated autoloads from org/org-capture.el 20129;;; Generated autoloads from org/org-capture.el
20056 20130
20057(autoload 'org-capture "org-capture" "\ 20131(autoload 'org-capture "org-capture" "\
@@ -20089,7 +20163,7 @@ Set org-capture-templates to be similar to `org-remember-templates'.
20089;;;*** 20163;;;***
20090 20164
20091;;;### (autoloads (org-clock-persistence-insinuate org-get-clocktable) 20165;;;### (autoloads (org-clock-persistence-insinuate org-get-clocktable)
20092;;;;;; "org-clock" "org/org-clock.el" (19845 45374)) 20166;;;;;; "org-clock" "org/org-clock.el" (20018 35031))
20093;;; Generated autoloads from org/org-clock.el 20167;;; Generated autoloads from org/org-clock.el
20094 20168
20095(autoload 'org-get-clocktable "org-clock" "\ 20169(autoload 'org-get-clocktable "org-clock" "\
@@ -20107,7 +20181,7 @@ Set up hooks for clock persistence.
20107;;;*** 20181;;;***
20108 20182
20109;;;### (autoloads (org-datetree-find-date-create) "org-datetree" 20183;;;### (autoloads (org-datetree-find-date-create) "org-datetree"
20110;;;;;; "org/org-datetree.el" (19845 45374)) 20184;;;;;; "org/org-datetree.el" (20018 35031))
20111;;; Generated autoloads from org/org-datetree.el 20185;;; Generated autoloads from org/org-datetree.el
20112 20186
20113(autoload 'org-datetree-find-date-create "org-datetree" "\ 20187(autoload 'org-datetree-find-date-create "org-datetree" "\
@@ -20123,7 +20197,7 @@ tree can be found.
20123;;;### (autoloads (org-export-as-docbook org-export-as-docbook-pdf-and-open 20197;;;### (autoloads (org-export-as-docbook org-export-as-docbook-pdf-and-open
20124;;;;;; org-export-as-docbook-pdf org-export-region-as-docbook org-replace-region-by-docbook 20198;;;;;; org-export-as-docbook-pdf org-export-region-as-docbook org-replace-region-by-docbook
20125;;;;;; org-export-as-docbook-to-buffer org-export-as-docbook-batch) 20199;;;;;; org-export-as-docbook-to-buffer org-export-as-docbook-batch)
20126;;;;;; "org-docbook" "org/org-docbook.el" (19845 45374)) 20200;;;;;; "org-docbook" "org/org-docbook.el" (20018 35031))
20127;;; Generated autoloads from org/org-docbook.el 20201;;; Generated autoloads from org/org-docbook.el
20128 20202
20129(autoload 'org-export-as-docbook-batch "org-docbook" "\ 20203(autoload 'org-export-as-docbook-batch "org-docbook" "\
@@ -20200,7 +20274,7 @@ publishing directory.
20200 20274
20201;;;### (autoloads (org-insert-export-options-template org-export-as-org 20275;;;### (autoloads (org-insert-export-options-template org-export-as-org
20202;;;;;; org-export-visible org-export) "org-exp" "org/org-exp.el" 20276;;;;;; org-export-visible org-export) "org-exp" "org/org-exp.el"
20203;;;;;; (19931 11784)) 20277;;;;;; (20018 35031))
20204;;; Generated autoloads from org/org-exp.el 20278;;; Generated autoloads from org/org-exp.el
20205 20279
20206(autoload 'org-export "org-exp" "\ 20280(autoload 'org-export "org-exp" "\
@@ -20213,6 +20287,10 @@ The prefix argument ARG will be passed to the exporter. However, if
20213ARG is a double universal prefix \\[universal-argument] \\[universal-argument], that means to inverse the 20287ARG is a double universal prefix \\[universal-argument] \\[universal-argument], that means to inverse the
20214value of `org-export-run-in-background'. 20288value of `org-export-run-in-background'.
20215 20289
20290If `org-export-initial-scope' is set to 'subtree, try to export
20291the current subtree, otherwise try to export the whole buffer.
20292Pressing `1' will switch between these two options.
20293
20216\(fn &optional ARG)" t nil) 20294\(fn &optional ARG)" t nil)
20217 20295
20218(autoload 'org-export-visible "org-exp" "\ 20296(autoload 'org-export-visible "org-exp" "\
@@ -20257,8 +20335,8 @@ Insert into the buffer a template with information for exporting.
20257;;;*** 20335;;;***
20258 20336
20259;;;### (autoloads (org-feed-show-raw-feed org-feed-goto-inbox org-feed-update 20337;;;### (autoloads (org-feed-show-raw-feed org-feed-goto-inbox org-feed-update
20260;;;;;; org-feed-update-all) "org-feed" "org/org-feed.el" (19845 20338;;;;;; org-feed-update-all) "org-feed" "org/org-feed.el" (20018
20261;;;;;; 45374)) 20339;;;;;; 35031))
20262;;; Generated autoloads from org/org-feed.el 20340;;; Generated autoloads from org/org-feed.el
20263 20341
20264(autoload 'org-feed-update-all "org-feed" "\ 20342(autoload 'org-feed-update-all "org-feed" "\
@@ -20286,34 +20364,58 @@ Show the raw feed buffer of a feed.
20286;;;*** 20364;;;***
20287 20365
20288;;;### (autoloads (org-footnote-normalize org-footnote-action) "org-footnote" 20366;;;### (autoloads (org-footnote-normalize org-footnote-action) "org-footnote"
20289;;;;;; "org/org-footnote.el" (19845 45374)) 20367;;;;;; "org/org-footnote.el" (20018 35031))
20290;;; Generated autoloads from org/org-footnote.el 20368;;; Generated autoloads from org/org-footnote.el
20291 20369
20292(autoload 'org-footnote-action "org-footnote" "\ 20370(autoload 'org-footnote-action "org-footnote" "\
20293Do the right thing for footnotes. 20371Do the right thing for footnotes.
20294When at a footnote reference, jump to the definition. When at a definition, 20372
20295jump to the references. When neither at definition or reference, 20373When at a footnote reference, jump to the definition.
20296create a new footnote, interactively. 20374
20375When at a definition, jump to the references if they exist, offer
20376to create them otherwise.
20377
20378When neither at definition or reference, create a new footnote,
20379interactively.
20380
20297With prefix arg SPECIAL, offer additional commands in a menu. 20381With prefix arg SPECIAL, offer additional commands in a menu.
20298 20382
20299\(fn &optional SPECIAL)" t nil) 20383\(fn &optional SPECIAL)" t nil)
20300 20384
20301(autoload 'org-footnote-normalize "org-footnote" "\ 20385(autoload 'org-footnote-normalize "org-footnote" "\
20302Collect the footnotes in various formats and normalize them. 20386Collect the footnotes in various formats and normalize them.
20387
20303This finds the different sorts of footnotes allowed in Org, and 20388This finds the different sorts of footnotes allowed in Org, and
20304normalizes them to the usual [N] format that is understood by the 20389normalizes them to the usual [N] format that is understood by the
20305Org-mode exporters. 20390Org-mode exporters.
20391
20306When SORT-ONLY is set, only sort the footnote definitions into the 20392When SORT-ONLY is set, only sort the footnote definitions into the
20307referenced sequence. 20393referenced sequence.
20308 20394
20309\(fn &optional SORT-ONLY FOR-PREPROCESSOR)" nil nil) 20395If Org is amidst an export process, EXPORT-PROPS will hold the
20396export properties of the buffer.
20397
20398When EXPORT-PROPS is non-nil, the default action is to insert
20399normalized footnotes towards the end of the pre-processing buffer.
20400Some exporters like docbook, odt, etc. expect that footnote
20401definitions be available before any references to them. Such
20402exporters can let bind `org-footnote-insert-pos-for-preprocessor' to
20403symbol 'point-min to achieve the desired behaviour.
20404
20405Additional note on `org-footnote-insert-pos-for-preprocessor':
204061. This variable has not effect when FOR-PREPROCESSOR is nil.
204072. This variable (potentially) obviates the need for extra scan
20408 of pre-processor buffer as witnessed in
20409 `org-export-docbook-get-footnotes'.
20410
20411\(fn &optional SORT-ONLY EXPORT-PROPS)" nil nil)
20310 20412
20311;;;*** 20413;;;***
20312 20414
20313;;;### (autoloads (org-freemind-to-org-mode org-freemind-from-org-sparse-tree 20415;;;### (autoloads (org-freemind-to-org-mode org-freemind-from-org-sparse-tree
20314;;;;;; org-freemind-from-org-mode org-freemind-from-org-mode-node 20416;;;;;; org-freemind-from-org-mode org-freemind-from-org-mode-node
20315;;;;;; org-freemind-show org-export-as-freemind) "org-freemind" 20417;;;;;; org-freemind-show org-export-as-freemind) "org-freemind"
20316;;;;;; "org/org-freemind.el" (19845 45374)) 20418;;;;;; "org/org-freemind.el" (20018 35031))
20317;;; Generated autoloads from org/org-freemind.el 20419;;; Generated autoloads from org/org-freemind.el
20318 20420
20319(autoload 'org-export-as-freemind "org-freemind" "\ 20421(autoload 'org-export-as-freemind "org-freemind" "\
@@ -20374,7 +20476,7 @@ Convert FreeMind file MM-FILE to `org-mode' file ORG-FILE.
20374;;;### (autoloads (org-export-htmlize-generate-css org-export-as-html 20476;;;### (autoloads (org-export-htmlize-generate-css org-export-as-html
20375;;;;;; org-export-region-as-html org-replace-region-by-html org-export-as-html-to-buffer 20477;;;;;; org-export-region-as-html org-replace-region-by-html org-export-as-html-to-buffer
20376;;;;;; org-export-as-html-batch org-export-as-html-and-open) "org-html" 20478;;;;;; org-export-as-html-batch org-export-as-html-and-open) "org-html"
20377;;;;;; "org/org-html.el" (19931 11784)) 20479;;;;;; "org/org-html.el" (20018 35031))
20378;;; Generated autoloads from org/org-html.el 20480;;; Generated autoloads from org/org-html.el
20379 20481
20380(put 'org-export-html-style-include-default 'safe-local-variable 'booleanp) 20482(put 'org-export-html-style-include-default 'safe-local-variable 'booleanp)
@@ -20468,7 +20570,7 @@ that uses these same face definitions.
20468 20570
20469;;;### (autoloads (org-export-icalendar-combine-agenda-files org-export-icalendar-all-agenda-files 20571;;;### (autoloads (org-export-icalendar-combine-agenda-files org-export-icalendar-all-agenda-files
20470;;;;;; org-export-icalendar-this-file) "org-icalendar" "org/org-icalendar.el" 20572;;;;;; org-export-icalendar-this-file) "org-icalendar" "org/org-icalendar.el"
20471;;;;;; (19845 45374)) 20573;;;;;; (20018 35031))
20472;;; Generated autoloads from org/org-icalendar.el 20574;;; Generated autoloads from org/org-icalendar.el
20473 20575
20474(autoload 'org-export-icalendar-this-file "org-icalendar" "\ 20576(autoload 'org-export-icalendar-this-file "org-icalendar" "\
@@ -20496,7 +20598,7 @@ The file is stored under the name `org-combined-agenda-icalendar-file'.
20496;;;### (autoloads (org-id-store-link org-id-find-id-file org-id-find 20598;;;### (autoloads (org-id-store-link org-id-find-id-file org-id-find
20497;;;;;; org-id-goto org-id-get-with-outline-drilling org-id-get-with-outline-path-completion 20599;;;;;; org-id-goto org-id-get-with-outline-drilling org-id-get-with-outline-path-completion
20498;;;;;; org-id-get org-id-copy org-id-get-create) "org-id" "org/org-id.el" 20600;;;;;; org-id-get org-id-copy org-id-get-create) "org-id" "org/org-id.el"
20499;;;;;; (19845 45374)) 20601;;;;;; (20018 35031))
20500;;; Generated autoloads from org/org-id.el 20602;;; Generated autoloads from org/org-id.el
20501 20603
20502(autoload 'org-id-get-create "org-id" "\ 20604(autoload 'org-id-get-create "org-id" "\
@@ -20565,7 +20667,7 @@ Store a link to the current entry, using its ID.
20565;;;*** 20667;;;***
20566 20668
20567;;;### (autoloads (org-indent-mode) "org-indent" "org/org-indent.el" 20669;;;### (autoloads (org-indent-mode) "org-indent" "org/org-indent.el"
20568;;;;;; (19845 45374)) 20670;;;;;; (20018 35031))
20569;;; Generated autoloads from org/org-indent.el 20671;;; Generated autoloads from org/org-indent.el
20570 20672
20571(autoload 'org-indent-mode "org-indent" "\ 20673(autoload 'org-indent-mode "org-indent" "\
@@ -20580,7 +20682,7 @@ FIXME: How to update when broken?
20580;;;*** 20682;;;***
20581 20683
20582;;;### (autoloads (org-irc-store-link) "org-irc" "org/org-irc.el" 20684;;;### (autoloads (org-irc-store-link) "org-irc" "org/org-irc.el"
20583;;;;;; (19845 45374)) 20685;;;;;; (20018 35031))
20584;;; Generated autoloads from org/org-irc.el 20686;;; Generated autoloads from org/org-irc.el
20585 20687
20586(autoload 'org-irc-store-link "org-irc" "\ 20688(autoload 'org-irc-store-link "org-irc" "\
@@ -20593,7 +20695,7 @@ Dispatch to the appropriate function to store a link to an IRC session.
20593;;;### (autoloads (org-export-as-pdf-and-open org-export-as-pdf org-export-as-latex 20695;;;### (autoloads (org-export-as-pdf-and-open org-export-as-pdf org-export-as-latex
20594;;;;;; org-export-region-as-latex org-replace-region-by-latex org-export-as-latex-to-buffer 20696;;;;;; org-export-region-as-latex org-replace-region-by-latex org-export-as-latex-to-buffer
20595;;;;;; org-export-as-latex-batch) "org-latex" "org/org-latex.el" 20697;;;;;; org-export-as-latex-batch) "org-latex" "org/org-latex.el"
20596;;;;;; (19845 45374)) 20698;;;;;; (20018 35031))
20597;;; Generated autoloads from org/org-latex.el 20699;;; Generated autoloads from org/org-latex.el
20598 20700
20599(autoload 'org-export-as-latex-batch "org-latex" "\ 20701(autoload 'org-export-as-latex-batch "org-latex" "\
@@ -20673,8 +20775,8 @@ Export as LaTeX, then process through to PDF, and open.
20673;;;*** 20775;;;***
20674 20776
20675;;;### (autoloads (org-mobile-create-sumo-agenda org-mobile-pull 20777;;;### (autoloads (org-mobile-create-sumo-agenda org-mobile-pull
20676;;;;;; org-mobile-push) "org-mobile" "org/org-mobile.el" (19845 20778;;;;;; org-mobile-push) "org-mobile" "org/org-mobile.el" (20018
20677;;;;;; 45374)) 20779;;;;;; 35031))
20678;;; Generated autoloads from org/org-mobile.el 20780;;; Generated autoloads from org/org-mobile.el
20679 20781
20680(autoload 'org-mobile-push "org-mobile" "\ 20782(autoload 'org-mobile-push "org-mobile" "\
@@ -20699,7 +20801,7 @@ Create a file that contains all custom agenda views.
20699;;;*** 20801;;;***
20700 20802
20701;;;### (autoloads (org-plot/gnuplot) "org-plot" "org/org-plot.el" 20803;;;### (autoloads (org-plot/gnuplot) "org-plot" "org/org-plot.el"
20702;;;;;; (19845 45374)) 20804;;;;;; (20018 35031))
20703;;; Generated autoloads from org/org-plot.el 20805;;; Generated autoloads from org/org-plot.el
20704 20806
20705(autoload 'org-plot/gnuplot "org-plot" "\ 20807(autoload 'org-plot/gnuplot "org-plot" "\
@@ -20713,7 +20815,7 @@ line directly before or after the table.
20713 20815
20714;;;### (autoloads (org-publish-current-project org-publish-current-file 20816;;;### (autoloads (org-publish-current-project org-publish-current-file
20715;;;;;; org-publish-all org-publish) "org-publish" "org/org-publish.el" 20817;;;;;; org-publish-all org-publish) "org-publish" "org/org-publish.el"
20716;;;;;; (19845 45374)) 20818;;;;;; (20018 35031))
20717;;; Generated autoloads from org/org-publish.el 20819;;; Generated autoloads from org/org-publish.el
20718 20820
20719(defalias 'org-publish-project 'org-publish) 20821(defalias 'org-publish-project 'org-publish)
@@ -20747,7 +20849,7 @@ the project.
20747 20849
20748;;;### (autoloads (org-remember-handler org-remember org-remember-apply-template 20850;;;### (autoloads (org-remember-handler org-remember org-remember-apply-template
20749;;;;;; org-remember-annotation org-remember-insinuate) "org-remember" 20851;;;;;; org-remember-annotation org-remember-insinuate) "org-remember"
20750;;;;;; "org/org-remember.el" (19845 45374)) 20852;;;;;; "org/org-remember.el" (20018 35031))
20751;;; Generated autoloads from org/org-remember.el 20853;;; Generated autoloads from org/org-remember.el
20752 20854
20753(autoload 'org-remember-insinuate "org-remember" "\ 20855(autoload 'org-remember-insinuate "org-remember" "\
@@ -20823,7 +20925,7 @@ See also the variable `org-reverse-note-order'.
20823;;;*** 20925;;;***
20824 20926
20825;;;### (autoloads (org-table-to-lisp orgtbl-mode turn-on-orgtbl) 20927;;;### (autoloads (org-table-to-lisp orgtbl-mode turn-on-orgtbl)
20826;;;;;; "org-table" "org/org-table.el" (19914 25180)) 20928;;;;;; "org-table" "org/org-table.el" (20018 35031))
20827;;; Generated autoloads from org/org-table.el 20929;;; Generated autoloads from org/org-table.el
20828 20930
20829(autoload 'turn-on-orgtbl "org-table" "\ 20931(autoload 'turn-on-orgtbl "org-table" "\
@@ -20847,7 +20949,7 @@ The table is taken from the parameter TXT, or from the buffer at point.
20847;;;*** 20949;;;***
20848 20950
20849;;;### (autoloads (org-export-as-taskjuggler-and-open org-export-as-taskjuggler) 20951;;;### (autoloads (org-export-as-taskjuggler-and-open org-export-as-taskjuggler)
20850;;;;;; "org-taskjuggler" "org/org-taskjuggler.el" (19845 45374)) 20952;;;;;; "org-taskjuggler" "org/org-taskjuggler.el" (20018 35031))
20851;;; Generated autoloads from org/org-taskjuggler.el 20953;;; Generated autoloads from org/org-taskjuggler.el
20852 20954
20853(autoload 'org-export-as-taskjuggler "org-taskjuggler" "\ 20955(autoload 'org-export-as-taskjuggler "org-taskjuggler" "\
@@ -20875,7 +20977,7 @@ with the TaskJuggler GUI.
20875 20977
20876;;;### (autoloads (org-timer-set-timer org-timer-item org-timer-change-times-in-region 20978;;;### (autoloads (org-timer-set-timer org-timer-item org-timer-change-times-in-region
20877;;;;;; org-timer org-timer-start) "org-timer" "org/org-timer.el" 20979;;;;;; org-timer org-timer-start) "org-timer" "org/org-timer.el"
20878;;;;;; (19845 45374)) 20980;;;;;; (20018 35031))
20879;;; Generated autoloads from org/org-timer.el 20981;;; Generated autoloads from org/org-timer.el
20880 20982
20881(autoload 'org-timer-start "org-timer" "\ 20983(autoload 'org-timer-start "org-timer" "\
@@ -20936,7 +21038,7 @@ replace any running timer.
20936;;;*** 21038;;;***
20937 21039
20938;;;### (autoloads (org-export-as-xoxo) "org-xoxo" "org/org-xoxo.el" 21040;;;### (autoloads (org-export-as-xoxo) "org-xoxo" "org/org-xoxo.el"
20939;;;;;; (19845 45374)) 21041;;;;;; (20018 35031))
20940;;; Generated autoloads from org/org-xoxo.el 21042;;; Generated autoloads from org/org-xoxo.el
20941 21043
20942(autoload 'org-export-as-xoxo "org-xoxo" "\ 21044(autoload 'org-export-as-xoxo "org-xoxo" "\
@@ -21285,7 +21387,7 @@ Completion for the GNU tar utility.
21285;;;*** 21387;;;***
21286 21388
21287;;;### (autoloads (pcomplete/mount pcomplete/umount pcomplete/kill) 21389;;;### (autoloads (pcomplete/mount pcomplete/umount pcomplete/kill)
21288;;;;;; "pcmpl-linux" "pcmpl-linux.el" (19845 45374)) 21390;;;;;; "pcmpl-linux" "pcmpl-linux.el" (19986 58615))
21289;;; Generated autoloads from pcmpl-linux.el 21391;;; Generated autoloads from pcmpl-linux.el
21290 21392
21291(autoload 'pcomplete/kill "pcmpl-linux" "\ 21393(autoload 'pcomplete/kill "pcmpl-linux" "\
@@ -21660,8 +21762,8 @@ they are not defaultly assigned to keys.
21660 21762
21661;;;*** 21763;;;***
21662 21764
21663;;;### (autoloads (plstore-open) "plstore" "gnus/plstore.el" (19981 21765;;;### (autoloads (plstore-open) "plstore" "gnus/plstore.el" (19990
21664;;;;;; 40664)) 21766;;;;;; 55648))
21665;;; Generated autoloads from gnus/plstore.el 21767;;; Generated autoloads from gnus/plstore.el
21666 21768
21667(autoload 'plstore-open "plstore" "\ 21769(autoload 'plstore-open "plstore" "\
@@ -21699,7 +21801,7 @@ pong-mode keybindings:\\<pong-mode-map>
21699 21801
21700;;;*** 21802;;;***
21701 21803
21702;;;### (autoloads (pop3-movemail) "pop3" "gnus/pop3.el" (19940 49234)) 21804;;;### (autoloads (pop3-movemail) "pop3" "gnus/pop3.el" (19988 13913))
21703;;; Generated autoloads from gnus/pop3.el 21805;;; Generated autoloads from gnus/pop3.el
21704 21806
21705(autoload 'pop3-movemail "pop3" "\ 21807(autoload 'pop3-movemail "pop3" "\
@@ -21780,7 +21882,7 @@ Ignores leading comment characters.
21780;;;;;; pr-ps-buffer-print pr-ps-buffer-using-ghostscript pr-ps-buffer-preview 21882;;;;;; pr-ps-buffer-print pr-ps-buffer-using-ghostscript pr-ps-buffer-preview
21781;;;;;; pr-ps-directory-ps-print pr-ps-directory-print pr-ps-directory-using-ghostscript 21883;;;;;; pr-ps-directory-ps-print pr-ps-directory-print pr-ps-directory-using-ghostscript
21782;;;;;; pr-ps-directory-preview pr-interface) "printing" "printing.el" 21884;;;;;; pr-ps-directory-preview pr-interface) "printing" "printing.el"
21783;;;;;; (19845 45374)) 21885;;;;;; (19999 41597))
21784;;; Generated autoloads from printing.el 21886;;; Generated autoloads from printing.el
21785 21887
21786(autoload 'pr-interface "printing" "\ 21888(autoload 'pr-interface "printing" "\
@@ -22222,7 +22324,7 @@ Toggle menu lock.
22222\(fn)" t nil) 22324\(fn)" t nil)
22223 22325
22224(autoload 'pr-toggle-region "printing" "\ 22326(autoload 'pr-toggle-region "printing" "\
22225Toggle auto region. 22327Toggle whether the region is automagically detected.
22226 22328
22227\(fn)" t nil) 22329\(fn)" t nil)
22228 22330
@@ -22367,7 +22469,7 @@ are both set to t.
22367 22469
22368;;;*** 22470;;;***
22369 22471
22370;;;### (autoloads (proced) "proced" "proced.el" (19975 1875)) 22472;;;### (autoloads (proced) "proced" "proced.el" (20006 43871))
22371;;; Generated autoloads from proced.el 22473;;; Generated autoloads from proced.el
22372 22474
22373(autoload 'proced "proced" "\ 22475(autoload 'proced "proced" "\
@@ -23093,7 +23195,7 @@ Display `quickurl-list' as a formatted list using `quickurl-list-mode'.
23093;;;*** 23195;;;***
23094 23196
23095;;;### (autoloads (rcirc-track-minor-mode rcirc-connect rcirc) "rcirc" 23197;;;### (autoloads (rcirc-track-minor-mode rcirc-connect rcirc) "rcirc"
23096;;;;;; "net/rcirc.el" (19968 28627)) 23198;;;;;; "net/rcirc.el" (20015 58840))
23097;;; Generated autoloads from net/rcirc.el 23199;;; Generated autoloads from net/rcirc.el
23098 23200
23099(autoload 'rcirc "rcirc" "\ 23201(autoload 'rcirc "rcirc" "\
@@ -23187,7 +23289,7 @@ that were operated on recently.
23187;;;;;; string-rectangle delete-whitespace-rectangle open-rectangle 23289;;;;;; string-rectangle delete-whitespace-rectangle open-rectangle
23188;;;;;; insert-rectangle yank-rectangle kill-rectangle extract-rectangle 23290;;;;;; insert-rectangle yank-rectangle kill-rectangle extract-rectangle
23189;;;;;; delete-extract-rectangle delete-rectangle) "rect" "rect.el" 23291;;;;;; delete-extract-rectangle delete-rectangle) "rect" "rect.el"
23190;;;;;; (19886 45771)) 23292;;;;;; (19999 41597))
23191;;; Generated autoloads from rect.el 23293;;; Generated autoloads from rect.el
23192 (define-key ctl-x-r-map "c" 'clear-rectangle) 23294 (define-key ctl-x-r-map "c" 'clear-rectangle)
23193 (define-key ctl-x-r-map "k" 'kill-rectangle) 23295 (define-key ctl-x-r-map "k" 'kill-rectangle)
@@ -23737,7 +23839,7 @@ variable.
23737;;;;;; rmail-secondary-file-directory rmail-primary-inbox-list rmail-highlighted-headers 23839;;;;;; rmail-secondary-file-directory rmail-primary-inbox-list rmail-highlighted-headers
23738;;;;;; rmail-retry-ignored-headers rmail-displayed-headers rmail-ignored-headers 23840;;;;;; rmail-retry-ignored-headers rmail-displayed-headers rmail-ignored-headers
23739;;;;;; rmail-user-mail-address-regexp rmail-movemail-variant-p) 23841;;;;;; rmail-user-mail-address-regexp rmail-movemail-variant-p)
23740;;;;;; "rmail" "mail/rmail.el" (19976 23054)) 23842;;;;;; "rmail" "mail/rmail.el" (19990 55648))
23741;;; Generated autoloads from mail/rmail.el 23843;;; Generated autoloads from mail/rmail.el
23742 23844
23743(autoload 'rmail-movemail-variant-p "rmail" "\ 23845(autoload 'rmail-movemail-variant-p "rmail" "\
@@ -24141,7 +24243,7 @@ Toggle the use of ROT13 encoding for the current window.
24141;;;*** 24243;;;***
24142 24244
24143;;;### (autoloads (rst-minor-mode rst-mode) "rst" "textmodes/rst.el" 24245;;;### (autoloads (rst-minor-mode rst-mode) "rst" "textmodes/rst.el"
24144;;;;;; (19932 55155)) 24246;;;;;; (19986 58615))
24145;;; Generated autoloads from textmodes/rst.el 24247;;; Generated autoloads from textmodes/rst.el
24146 (add-to-list 'auto-mode-alist (purecopy '("\\.re?st\\'" . rst-mode))) 24248 (add-to-list 'auto-mode-alist (purecopy '("\\.re?st\\'" . rst-mode)))
24147 24249
@@ -24708,8 +24810,9 @@ Semantic mode.
24708;;;;;; mail-citation-prefix-regexp mail-citation-hook mail-indentation-spaces 24810;;;;;; mail-citation-prefix-regexp mail-citation-hook mail-indentation-spaces
24709;;;;;; mail-yank-prefix mail-setup-hook mail-personal-alias-file 24811;;;;;; mail-yank-prefix mail-setup-hook mail-personal-alias-file
24710;;;;;; mail-default-reply-to mail-archive-file-name mail-header-separator 24812;;;;;; mail-default-reply-to mail-archive-file-name mail-header-separator
24711;;;;;; send-mail-function mail-interactive mail-self-blind mail-specify-envelope-from 24813;;;;;; sendmail-query-once send-mail-function mail-interactive mail-self-blind
24712;;;;;; mail-from-style) "sendmail" "mail/sendmail.el" (19980 19797)) 24814;;;;;; mail-specify-envelope-from mail-from-style) "sendmail" "mail/sendmail.el"
24815;;;;;; (19996 8027))
24713;;; Generated autoloads from mail/sendmail.el 24816;;; Generated autoloads from mail/sendmail.el
24714 24817
24715(defvar mail-from-style 'default "\ 24818(defvar mail-from-style 'default "\
@@ -24752,9 +24855,7 @@ Otherwise, let mailer send back a message to report errors.")
24752 24855
24753(custom-autoload 'mail-interactive "sendmail" t) 24856(custom-autoload 'mail-interactive "sendmail" t)
24754 24857
24755(put 'send-mail-function 'standard-value '((if (or (and window-system (eq system-type 'darwin)) (eq system-type 'windows-nt)) 'mailclient-send-it 'sendmail-send-it))) 24858(defvar send-mail-function 'sendmail-query-once "\
24756
24757(defvar send-mail-function (if (or (and window-system (eq system-type 'darwin)) (eq system-type 'windows-nt)) 'mailclient-send-it 'sendmail-send-it) "\
24758Function to call to send the current buffer as mail. 24859Function to call to send the current buffer as mail.
24759The headers should be delimited by a line which is 24860The headers should be delimited by a line which is
24760not a valid RFC822 header or continuation line, 24861not a valid RFC822 header or continuation line,
@@ -24763,7 +24864,13 @@ This is used by the default mail-sending commands. See also
24763`message-send-mail-function' for use with the Message package.") 24864`message-send-mail-function' for use with the Message package.")
24764 24865
24765(custom-autoload 'send-mail-function "sendmail" t) 24866(custom-autoload 'send-mail-function "sendmail" t)
24766(custom-initialize-delay 'send-mail-function nil) 24867
24868(autoload 'sendmail-query-once "sendmail" "\
24869Send an email via `sendmail-query-once-function'.
24870If `sendmail-query-once-function' is `query', ask the user what
24871function to use, and then save that choice.
24872
24873\(fn)" nil nil)
24767 24874
24768(defvar mail-header-separator (purecopy "--text follows this line--") "\ 24875(defvar mail-header-separator (purecopy "--text follows this line--") "\
24769Line used to separate headers from text in messages being composed.") 24876Line used to separate headers from text in messages being composed.")
@@ -24988,8 +25095,8 @@ Like `mail' command, but display mail buffer in another frame.
24988;;;*** 25095;;;***
24989 25096
24990;;;### (autoloads (server-save-buffers-kill-terminal server-mode 25097;;;### (autoloads (server-save-buffers-kill-terminal server-mode
24991;;;;;; server-force-delete server-start) "server" "server.el" (19975 25098;;;;;; server-force-delete server-start) "server" "server.el" (19986
24992;;;;;; 1875)) 25099;;;;;; 58615))
24993;;; Generated autoloads from server.el 25100;;; Generated autoloads from server.el
24994 25101
24995(put 'server-host 'risky-local-variable t) 25102(put 'server-host 'risky-local-variable t)
@@ -25341,8 +25448,8 @@ Otherwise, one argument `-i' is passed to the shell.
25341 25448
25342;;;*** 25449;;;***
25343 25450
25344;;;### (autoloads (shr-insert-document) "shr" "gnus/shr.el" (19976 25451;;;### (autoloads (shr-insert-document) "shr" "gnus/shr.el" (20007
25345;;;;;; 22732)) 25452;;;;;; 64734))
25346;;; Generated autoloads from gnus/shr.el 25453;;; Generated autoloads from gnus/shr.el
25347 25454
25348(autoload 'shr-insert-document "shr" "\ 25455(autoload 'shr-insert-document "shr" "\
@@ -25592,7 +25699,7 @@ interactively. If there's no argument, do it at the current buffer.
25592;;;*** 25699;;;***
25593 25700
25594;;;### (autoloads (smtpmail-send-queued-mail smtpmail-send-it) "smtpmail" 25701;;;### (autoloads (smtpmail-send-queued-mail smtpmail-send-it) "smtpmail"
25595;;;;;; "mail/smtpmail.el" (19978 37530)) 25702;;;;;; "mail/smtpmail.el" (20002 46800))
25596;;; Generated autoloads from mail/smtpmail.el 25703;;; Generated autoloads from mail/smtpmail.el
25597 25704
25598(autoload 'smtpmail-send-it "smtpmail" "\ 25705(autoload 'smtpmail-send-it "smtpmail" "\
@@ -25898,8 +26005,8 @@ From a program takes two point or marker arguments, BEG and END.
25898 26005
25899;;;*** 26006;;;***
25900 26007
25901;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (19976 26008;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (20022
25902;;;;;; 22732)) 26009;;;;;; 32083))
25903;;; Generated autoloads from gnus/spam.el 26010;;; Generated autoloads from gnus/spam.el
25904 26011
25905(autoload 'spam-initialize "spam" "\ 26012(autoload 'spam-initialize "spam" "\
@@ -26002,7 +26109,7 @@ Return a vector containing the lines from `spook-phrases-file'.
26002;;;;;; sql-ms sql-ingres sql-solid sql-mysql sql-sqlite sql-informix 26109;;;;;; sql-ms sql-ingres sql-solid sql-mysql sql-sqlite sql-informix
26003;;;;;; sql-sybase sql-oracle sql-product-interactive sql-connect 26110;;;;;; sql-sybase sql-oracle sql-product-interactive sql-connect
26004;;;;;; sql-mode sql-help sql-add-product-keywords) "sql" "progmodes/sql.el" 26111;;;;;; sql-mode sql-help sql-add-product-keywords) "sql" "progmodes/sql.el"
26005;;;;;; (19931 11784)) 26112;;;;;; (19988 13913))
26006;;; Generated autoloads from progmodes/sql.el 26113;;; Generated autoloads from progmodes/sql.el
26007 26114
26008(autoload 'sql-add-product-keywords "sql" "\ 26115(autoload 'sql-add-product-keywords "sql" "\
@@ -26100,7 +26207,7 @@ their settings.
26100The user will not be prompted for any login parameters if a value 26207The user will not be prompted for any login parameters if a value
26101is specified in the connection settings. 26208is specified in the connection settings.
26102 26209
26103\(fn CONNECTION)" t nil) 26210\(fn CONNECTION &optional NEW-NAME)" t nil)
26104 26211
26105(autoload 'sql-product-interactive "sql" "\ 26212(autoload 'sql-product-interactive "sql" "\
26106Run PRODUCT interpreter as an inferior process. 26213Run PRODUCT interpreter as an inferior process.
@@ -26778,7 +26885,7 @@ It relies on the `gpm' daemon being activated.
26778 26885
26779;;;*** 26886;;;***
26780 26887
26781;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (19845 45374)) 26888;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (19998 49767))
26782;;; Generated autoloads from tabify.el 26889;;; Generated autoloads from tabify.el
26783 26890
26784(autoload 'untabify "tabify" "\ 26891(autoload 'untabify "tabify" "\
@@ -27639,7 +27746,7 @@ subprocess started.
27639;;;*** 27746;;;***
27640 27747
27641;;;### (autoloads (testcover-this-defun) "testcover" "emacs-lisp/testcover.el" 27748;;;### (autoloads (testcover-this-defun) "testcover" "emacs-lisp/testcover.el"
27642;;;;;; (19943 25429)) 27749;;;;;; (19998 49767))
27643;;; Generated autoloads from emacs-lisp/testcover.el 27750;;; Generated autoloads from emacs-lisp/testcover.el
27644 27751
27645(autoload 'testcover-this-defun "testcover" "\ 27752(autoload 'testcover-this-defun "testcover" "\
@@ -28137,33 +28244,39 @@ Compose Thai characters in the current buffer.
28137 28244
28138;;;### (autoloads (list-at-point number-at-point symbol-at-point 28245;;;### (autoloads (list-at-point number-at-point symbol-at-point
28139;;;;;; sexp-at-point thing-at-point bounds-of-thing-at-point forward-thing) 28246;;;;;; sexp-at-point thing-at-point bounds-of-thing-at-point forward-thing)
28140;;;;;; "thingatpt" "thingatpt.el" (19980 19797)) 28247;;;;;; "thingatpt" "thingatpt.el" (19990 55648))
28141;;; Generated autoloads from thingatpt.el 28248;;; Generated autoloads from thingatpt.el
28142 28249
28143(autoload 'forward-thing "thingatpt" "\ 28250(autoload 'forward-thing "thingatpt" "\
28144Move forward to the end of the Nth next THING. 28251Move forward to the end of the Nth next THING.
28252THING should be a symbol specifying a type of syntactic entity.
28253Possibilities include `symbol', `list', `sexp', `defun',
28254`filename', `url', `email', `word', `sentence', `whitespace',
28255`line', and `page'.
28145 28256
28146\(fn THING &optional N)" nil nil) 28257\(fn THING &optional N)" nil nil)
28147 28258
28148(autoload 'bounds-of-thing-at-point "thingatpt" "\ 28259(autoload 'bounds-of-thing-at-point "thingatpt" "\
28149Determine the start and end buffer locations for the THING at point. 28260Determine the start and end buffer locations for the THING at point.
28150THING is a symbol which specifies the kind of syntactic entity you want. 28261THING should be a symbol specifying a type of syntactic entity.
28151Possibilities include `symbol', `list', `sexp', `defun', `filename', `url', 28262Possibilities include `symbol', `list', `sexp', `defun',
28152`email', `word', `sentence', `whitespace', `line', `page' and others. 28263`filename', `url', `email', `word', `sentence', `whitespace',
28264`line', and `page'.
28153 28265
28154See the file `thingatpt.el' for documentation on how to define 28266See the file `thingatpt.el' for documentation on how to define a
28155a symbol as a valid THING. 28267valid THING.
28156 28268
28157The value is a cons cell (START . END) giving the start and end positions 28269Return a cons cell (START . END) giving the start and end
28158of the textual entity that was found. 28270positions of the thing found.
28159 28271
28160\(fn THING)" nil nil) 28272\(fn THING)" nil nil)
28161 28273
28162(autoload 'thing-at-point "thingatpt" "\ 28274(autoload 'thing-at-point "thingatpt" "\
28163Return the THING at point. 28275Return the THING at point.
28164THING is a symbol which specifies the kind of syntactic entity you want. 28276THING should be a symbol specifying a type of syntactic entity.
28165Possibilities include `symbol', `list', `sexp', `defun', `filename', `url', 28277Possibilities include `symbol', `list', `sexp', `defun',
28166`email', `word', `sentence', `whitespace', `line', `page' and others. 28278`filename', `url', `email', `word', `sentence', `whitespace',
28279`line', and `page'.
28167 28280
28168See the file `thingatpt.el' for documentation on how to define 28281See the file `thingatpt.el' for documentation on how to define
28169a symbol as a valid THING. 28282a symbol as a valid THING.
@@ -28332,7 +28445,7 @@ This function performs no refilling of the changed text.
28332 28445
28333;;;### (autoloads (emacs-init-time emacs-uptime display-time-world 28446;;;### (autoloads (emacs-init-time emacs-uptime display-time-world
28334;;;;;; display-time-mode display-time display-time-day-and-date) 28447;;;;;; display-time-mode display-time display-time-day-and-date)
28335;;;;;; "time" "time.el" (19886 45771)) 28448;;;;;; "time" "time.el" (19999 41597))
28336;;; Generated autoloads from time.el 28449;;; Generated autoloads from time.el
28337 28450
28338(defvar display-time-day-and-date nil "\ 28451(defvar display-time-day-and-date nil "\
@@ -28778,7 +28891,7 @@ Show TODO list.
28778 28891
28779;;;### (autoloads (tool-bar-local-item-from-menu tool-bar-add-item-from-menu 28892;;;### (autoloads (tool-bar-local-item-from-menu tool-bar-add-item-from-menu
28780;;;;;; tool-bar-local-item tool-bar-add-item toggle-tool-bar-mode-from-frame) 28893;;;;;; tool-bar-local-item tool-bar-add-item toggle-tool-bar-mode-from-frame)
28781;;;;;; "tool-bar" "tool-bar.el" (19886 45771)) 28894;;;;;; "tool-bar" "tool-bar.el" (19994 52720))
28782;;; Generated autoloads from tool-bar.el 28895;;; Generated autoloads from tool-bar.el
28783 28896
28784(autoload 'toggle-tool-bar-mode-from-frame "tool-bar" "\ 28897(autoload 'toggle-tool-bar-mode-from-frame "tool-bar" "\
@@ -28961,7 +29074,7 @@ BUFFER defaults to `trace-buffer'.
28961;;;### (autoloads (tramp-unload-tramp tramp-completion-handle-file-name-completion 29074;;;### (autoloads (tramp-unload-tramp tramp-completion-handle-file-name-completion
28962;;;;;; tramp-completion-handle-file-name-all-completions tramp-unload-file-name-handlers 29075;;;;;; tramp-completion-handle-file-name-all-completions tramp-unload-file-name-handlers
28963;;;;;; tramp-file-name-handler tramp-syntax tramp-mode) "tramp" 29076;;;;;; tramp-file-name-handler tramp-syntax tramp-mode) "tramp"
28964;;;;;; "net/tramp.el" (19981 40664)) 29077;;;;;; "net/tramp.el" (20010 40918))
28965;;; Generated autoloads from net/tramp.el 29078;;; Generated autoloads from net/tramp.el
28966 29079
28967(defvar tramp-mode t "\ 29080(defvar tramp-mode t "\
@@ -29197,7 +29310,7 @@ First column's text sSs Second column's text
29197;;;;;; type-break type-break-mode type-break-keystroke-threshold 29310;;;;;; type-break type-break-mode type-break-keystroke-threshold
29198;;;;;; type-break-good-break-interval type-break-good-rest-interval 29311;;;;;; type-break-good-break-interval type-break-good-rest-interval
29199;;;;;; type-break-interval type-break-mode) "type-break" "type-break.el" 29312;;;;;; type-break-interval type-break-mode) "type-break" "type-break.el"
29200;;;;;; (19981 40664)) 29313;;;;;; (19985 37722))
29201;;; Generated autoloads from type-break.el 29314;;; Generated autoloads from type-break.el
29202 29315
29203(defvar type-break-mode nil "\ 29316(defvar type-break-mode nil "\
@@ -29601,7 +29714,7 @@ RATING a rating between 1 and 10 of the strength of the authentication.
29601;;;*** 29714;;;***
29602 29715
29603;;;### (autoloads (url-cache-extract url-is-cached url-store-in-cache) 29716;;;### (autoloads (url-cache-extract url-is-cached url-store-in-cache)
29604;;;;;; "url-cache" "url/url-cache.el" (19845 45374)) 29717;;;;;; "url-cache" "url/url-cache.el" (19988 13913))
29605;;; Generated autoloads from url/url-cache.el 29718;;; Generated autoloads from url/url-cache.el
29606 29719
29607(autoload 'url-store-in-cache "url-cache" "\ 29720(autoload 'url-store-in-cache "url-cache" "\
@@ -29732,7 +29845,7 @@ accessible.
29732;;;*** 29845;;;***
29733 29846
29734;;;### (autoloads (url-http-options url-http-file-attributes url-http-file-exists-p 29847;;;### (autoloads (url-http-options url-http-file-attributes url-http-file-exists-p
29735;;;;;; url-http) "url-http" "url/url-http.el" (19882 48702)) 29848;;;;;; url-http) "url-http" "url/url-http.el" (19997 54906))
29736;;; Generated autoloads from url/url-http.el 29849;;; Generated autoloads from url/url-http.el
29737 29850
29738(autoload 'url-http "url-http" "\ 29851(autoload 'url-http "url-http" "\
@@ -30210,8 +30323,8 @@ If FILE-NAME is non-nil, save the result to FILE-NAME.
30210;;;;;; vc-print-log vc-retrieve-tag vc-create-tag vc-merge vc-insert-headers 30323;;;;;; vc-print-log vc-retrieve-tag vc-create-tag vc-merge vc-insert-headers
30211;;;;;; vc-revision-other-window vc-root-diff vc-ediff vc-version-ediff 30324;;;;;; vc-revision-other-window vc-root-diff vc-ediff vc-version-ediff
30212;;;;;; vc-diff vc-version-diff vc-register vc-next-action vc-before-checkin-hook 30325;;;;;; vc-diff vc-version-diff vc-register vc-next-action vc-before-checkin-hook
30213;;;;;; vc-checkin-hook vc-checkout-hook) "vc" "vc/vc.el" (19976 30326;;;;;; vc-checkin-hook vc-checkout-hook) "vc" "vc/vc.el" (19997
30214;;;;;; 22732)) 30327;;;;;; 28887))
30215;;; Generated autoloads from vc/vc.el 30328;;; Generated autoloads from vc/vc.el
30216 30329
30217(defvar vc-checkout-hook nil "\ 30330(defvar vc-checkout-hook nil "\
@@ -30531,7 +30644,7 @@ mode-specific menu. `vc-annotate-color-map' and
30531 30644
30532;;;*** 30645;;;***
30533 30646
30534;;;### (autoloads nil "vc-arch" "vc/vc-arch.el" (19845 45374)) 30647;;;### (autoloads nil "vc-arch" "vc/vc-arch.el" (19984 16846))
30535;;; Generated autoloads from vc/vc-arch.el 30648;;; Generated autoloads from vc/vc-arch.el
30536 (defun vc-arch-registered (file) 30649 (defun vc-arch-registered (file)
30537 (if (vc-find-root file "{arch}/=tagging-method") 30650 (if (vc-find-root file "{arch}/=tagging-method")
@@ -30541,7 +30654,7 @@ mode-specific menu. `vc-annotate-color-map' and
30541 30654
30542;;;*** 30655;;;***
30543 30656
30544;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (19931 34253)) 30657;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (19991 42275))
30545;;; Generated autoloads from vc/vc-bzr.el 30658;;; Generated autoloads from vc/vc-bzr.el
30546 30659
30547(defconst vc-bzr-admin-dirname ".bzr" "\ 30660(defconst vc-bzr-admin-dirname ".bzr" "\
@@ -31535,7 +31648,7 @@ Convert Vietnamese characters of the current buffer to `VIQR' mnemonics.
31535;;;;;; view-mode view-buffer-other-frame view-buffer-other-window 31648;;;;;; view-mode view-buffer-other-frame view-buffer-other-window
31536;;;;;; view-buffer view-file-other-frame view-file-other-window 31649;;;;;; view-buffer view-file-other-frame view-file-other-window
31537;;;;;; view-file kill-buffer-if-not-modified view-remove-frame-by-deleting) 31650;;;;;; view-file kill-buffer-if-not-modified view-remove-frame-by-deleting)
31538;;;;;; "view" "view.el" (19958 33091)) 31651;;;;;; "view" "view.el" (20006 43871))
31539;;; Generated autoloads from view.el 31652;;; Generated autoloads from view.el
31540 31653
31541(defvar view-remove-frame-by-deleting t "\ 31654(defvar view-remove-frame-by-deleting t "\
@@ -31929,7 +32042,7 @@ Please submit bug reports and other feedback to the author, Neil W. Van Dyke
31929;;;*** 32042;;;***
31930 32043
31931;;;### (autoloads (which-function-mode) "which-func" "progmodes/which-func.el" 32044;;;### (autoloads (which-function-mode) "which-func" "progmodes/which-func.el"
31932;;;;;; (19915 46047)) 32045;;;;;; (19988 13913))
31933;;; Generated autoloads from progmodes/which-func.el 32046;;; Generated autoloads from progmodes/which-func.el
31934 (put 'which-func-format 'risky-local-variable t) 32047 (put 'which-func-format 'risky-local-variable t)
31935 (put 'which-func-current 'risky-local-variable t) 32048 (put 'which-func-current 'risky-local-variable t)
@@ -32488,7 +32601,7 @@ Default MODIFIER is 'shift.
32488;;;*** 32601;;;***
32489 32602
32490;;;### (autoloads (winner-mode winner-mode) "winner" "winner.el" 32603;;;### (autoloads (winner-mode winner-mode) "winner" "winner.el"
32491;;;;;; (19845 45374)) 32604;;;;;; (19998 49767))
32492;;; Generated autoloads from winner.el 32605;;; Generated autoloads from winner.el
32493 32606
32494(defvar winner-mode nil "\ 32607(defvar winner-mode nil "\
@@ -32900,36 +33013,35 @@ Zone out, completely.
32900;;;;;; "emacs-lisp/eieio.el" "emacs-lisp/find-gc.el" "emacs-lisp/gulp.el" 33013;;;;;; "emacs-lisp/eieio.el" "emacs-lisp/find-gc.el" "emacs-lisp/gulp.el"
32901;;;;;; "emacs-lisp/lisp-mnt.el" "emacs-lisp/package-x.el" "emacs-lisp/regi.el" 33014;;;;;; "emacs-lisp/lisp-mnt.el" "emacs-lisp/package-x.el" "emacs-lisp/regi.el"
32902;;;;;; "emacs-lisp/smie.el" "emacs-lisp/tcover-ses.el" "emacs-lisp/tcover-unsafep.el" 33015;;;;;; "emacs-lisp/smie.el" "emacs-lisp/tcover-ses.el" "emacs-lisp/tcover-unsafep.el"
32903;;;;;; "emacs-lock.el" "emulation/cua-gmrk.el" "emulation/cua-rect.el" 33016;;;;;; "emulation/cua-gmrk.el" "emulation/cua-rect.el" "emulation/edt-lk201.el"
32904;;;;;; "emulation/edt-lk201.el" "emulation/edt-mapper.el" "emulation/edt-pc.el" 33017;;;;;; "emulation/edt-mapper.el" "emulation/edt-pc.el" "emulation/edt-vt100.el"
32905;;;;;; "emulation/edt-vt100.el" "emulation/tpu-extras.el" "emulation/viper-cmd.el" 33018;;;;;; "emulation/tpu-extras.el" "emulation/viper-cmd.el" "emulation/viper-ex.el"
32906;;;;;; "emulation/viper-ex.el" "emulation/viper-init.el" "emulation/viper-keym.el" 33019;;;;;; "emulation/viper-init.el" "emulation/viper-keym.el" "emulation/viper-macs.el"
32907;;;;;; "emulation/viper-macs.el" "emulation/viper-mous.el" "emulation/viper-util.el" 33020;;;;;; "emulation/viper-mous.el" "emulation/viper-util.el" "erc/erc-backend.el"
32908;;;;;; "erc/erc-backend.el" "erc/erc-goodies.el" "erc/erc-ibuffer.el" 33021;;;;;; "erc/erc-goodies.el" "erc/erc-ibuffer.el" "erc/erc-lang.el"
32909;;;;;; "erc/erc-lang.el" "eshell/em-alias.el" "eshell/em-banner.el" 33022;;;;;; "eshell/em-alias.el" "eshell/em-banner.el" "eshell/em-basic.el"
32910;;;;;; "eshell/em-basic.el" "eshell/em-cmpl.el" "eshell/em-dirs.el" 33023;;;;;; "eshell/em-cmpl.el" "eshell/em-dirs.el" "eshell/em-glob.el"
32911;;;;;; "eshell/em-glob.el" "eshell/em-hist.el" "eshell/em-ls.el" 33024;;;;;; "eshell/em-hist.el" "eshell/em-ls.el" "eshell/em-pred.el"
32912;;;;;; "eshell/em-pred.el" "eshell/em-prompt.el" "eshell/em-rebind.el" 33025;;;;;; "eshell/em-prompt.el" "eshell/em-rebind.el" "eshell/em-script.el"
32913;;;;;; "eshell/em-script.el" "eshell/em-smart.el" "eshell/em-term.el" 33026;;;;;; "eshell/em-smart.el" "eshell/em-term.el" "eshell/em-unix.el"
32914;;;;;; "eshell/em-unix.el" "eshell/em-xtra.el" "eshell/esh-arg.el" 33027;;;;;; "eshell/em-xtra.el" "eshell/esh-arg.el" "eshell/esh-cmd.el"
32915;;;;;; "eshell/esh-cmd.el" "eshell/esh-ext.el" "eshell/esh-groups.el" 33028;;;;;; "eshell/esh-ext.el" "eshell/esh-groups.el" "eshell/esh-io.el"
32916;;;;;; "eshell/esh-io.el" "eshell/esh-module.el" "eshell/esh-opt.el" 33029;;;;;; "eshell/esh-module.el" "eshell/esh-opt.el" "eshell/esh-proc.el"
32917;;;;;; "eshell/esh-proc.el" "eshell/esh-util.el" "eshell/esh-var.el" 33030;;;;;; "eshell/esh-util.el" "eshell/esh-var.el" "ezimage.el" "foldout.el"
32918;;;;;; "ezimage.el" "foldout.el" "format-spec.el" "forms-d2.el" 33031;;;;;; "format-spec.el" "forms-d2.el" "forms-pass.el" "fringe.el"
32919;;;;;; "forms-pass.el" "fringe.el" "generic-x.el" "gnus/compface.el" 33032;;;;;; "generic-x.el" "gnus/compface.el" "gnus/gnus-async.el" "gnus/gnus-bcklg.el"
32920;;;;;; "gnus/gnus-async.el" "gnus/gnus-bcklg.el" "gnus/gnus-cite.el" 33033;;;;;; "gnus/gnus-cite.el" "gnus/gnus-cus.el" "gnus/gnus-demon.el"
32921;;;;;; "gnus/gnus-cus.el" "gnus/gnus-demon.el" "gnus/gnus-dup.el" 33034;;;;;; "gnus/gnus-dup.el" "gnus/gnus-eform.el" "gnus/gnus-ems.el"
32922;;;;;; "gnus/gnus-eform.el" "gnus/gnus-ems.el" "gnus/gnus-int.el" 33035;;;;;; "gnus/gnus-int.el" "gnus/gnus-logic.el" "gnus/gnus-mh.el"
32923;;;;;; "gnus/gnus-logic.el" "gnus/gnus-mh.el" "gnus/gnus-salt.el" 33036;;;;;; "gnus/gnus-salt.el" "gnus/gnus-score.el" "gnus/gnus-setup.el"
32924;;;;;; "gnus/gnus-score.el" "gnus/gnus-setup.el" "gnus/gnus-srvr.el" 33037;;;;;; "gnus/gnus-srvr.el" "gnus/gnus-topic.el" "gnus/gnus-undo.el"
32925;;;;;; "gnus/gnus-topic.el" "gnus/gnus-undo.el" "gnus/gnus-util.el" 33038;;;;;; "gnus/gnus-util.el" "gnus/gnus-uu.el" "gnus/gnus-vm.el" "gnus/gssapi.el"
32926;;;;;; "gnus/gnus-uu.el" "gnus/gnus-vm.el" "gnus/gssapi.el" "gnus/ietf-drums.el" 33039;;;;;; "gnus/ietf-drums.el" "gnus/legacy-gnus-agent.el" "gnus/mail-parse.el"
32927;;;;;; "gnus/legacy-gnus-agent.el" "gnus/mail-parse.el" "gnus/mail-prsvr.el" 33040;;;;;; "gnus/mail-prsvr.el" "gnus/mail-source.el" "gnus/mailcap.el"
32928;;;;;; "gnus/mail-source.el" "gnus/mailcap.el" "gnus/messcompat.el" 33041;;;;;; "gnus/messcompat.el" "gnus/mm-bodies.el" "gnus/mm-decode.el"
32929;;;;;; "gnus/mm-bodies.el" "gnus/mm-decode.el" "gnus/mm-encode.el" 33042;;;;;; "gnus/mm-encode.el" "gnus/mm-util.el" "gnus/mm-view.el" "gnus/mml-sec.el"
32930;;;;;; "gnus/mm-util.el" "gnus/mm-view.el" "gnus/mml-sec.el" "gnus/mml-smime.el" 33043;;;;;; "gnus/mml-smime.el" "gnus/mml.el" "gnus/nnagent.el" "gnus/nnbabyl.el"
32931;;;;;; "gnus/mml.el" "gnus/nnagent.el" "gnus/nnbabyl.el" "gnus/nndir.el" 33044;;;;;; "gnus/nndir.el" "gnus/nndraft.el" "gnus/nneething.el" "gnus/nngateway.el"
32932;;;;;; "gnus/nndraft.el" "gnus/nneething.el" "gnus/nngateway.el"
32933;;;;;; "gnus/nnheader.el" "gnus/nnimap.el" "gnus/nnir.el" "gnus/nnmail.el" 33045;;;;;; "gnus/nnheader.el" "gnus/nnimap.el" "gnus/nnir.el" "gnus/nnmail.el"
32934;;;;;; "gnus/nnmaildir.el" "gnus/nnmairix.el" "gnus/nnmbox.el" "gnus/nnmh.el" 33046;;;;;; "gnus/nnmaildir.el" "gnus/nnmairix.el" "gnus/nnmbox.el" "gnus/nnmh.el"
32935;;;;;; "gnus/nnnil.el" "gnus/nnoo.el" "gnus/nnregistry.el" "gnus/nnrss.el" 33047;;;;;; "gnus/nnnil.el" "gnus/nnoo.el" "gnus/nnregistry.el" "gnus/nnrss.el"
@@ -32963,60 +33075,62 @@ Zone out, completely.
32963;;;;;; "mh-e/mh-utils.el" "mh-e/mh-xface.el" "mouse-copy.el" "mouse.el" 33075;;;;;; "mh-e/mh-utils.el" "mh-e/mh-xface.el" "mouse-copy.el" "mouse.el"
32964;;;;;; "mwheel.el" "net/dns.el" "net/eudc-vars.el" "net/eudcb-bbdb.el" 33076;;;;;; "mwheel.el" "net/dns.el" "net/eudc-vars.el" "net/eudcb-bbdb.el"
32965;;;;;; "net/eudcb-ldap.el" "net/eudcb-mab.el" "net/eudcb-ph.el" 33077;;;;;; "net/eudcb-ldap.el" "net/eudcb-mab.el" "net/eudcb-ph.el"
32966;;;;;; "net/gnutls.el" "net/hmac-def.el" "net/hmac-md5.el" "net/imap.el" 33078;;;;;; "net/hmac-def.el" "net/hmac-md5.el" "net/imap.el" "net/ldap.el"
32967;;;;;; "net/ldap.el" "net/mairix.el" "net/newsticker.el" "net/ntlm.el" 33079;;;;;; "net/mairix.el" "net/newsticker.el" "net/ntlm.el" "net/sasl-cram.el"
32968;;;;;; "net/sasl-cram.el" "net/sasl-digest.el" "net/sasl-ntlm.el" 33080;;;;;; "net/sasl-digest.el" "net/sasl-ntlm.el" "net/sasl.el" "net/soap-client.el"
32969;;;;;; "net/sasl.el" "net/soap-client.el" "net/soap-inspect.el" 33081;;;;;; "net/soap-inspect.el" "net/socks.el" "net/tls.el" "net/tramp-cache.el"
32970;;;;;; "net/socks.el" "net/tls.el" "net/tramp-cache.el" "net/tramp-cmds.el" 33082;;;;;; "net/tramp-cmds.el" "net/tramp-compat.el" "net/tramp-gvfs.el"
32971;;;;;; "net/tramp-compat.el" "net/tramp-gvfs.el" "net/tramp-gw.el" 33083;;;;;; "net/tramp-gw.el" "net/tramp-loaddefs.el" "net/tramp-sh.el"
32972;;;;;; "net/tramp-loaddefs.el" "net/tramp-sh.el" "net/tramp-smb.el" 33084;;;;;; "net/tramp-smb.el" "net/tramp-uu.el" "net/trampver.el" "net/zeroconf.el"
32973;;;;;; "net/tramp-uu.el" "net/trampver.el" "net/zeroconf.el" "notifications.el" 33085;;;;;; "notifications.el" "nxml/nxml-enc.el" "nxml/nxml-maint.el"
32974;;;;;; "nxml/nxml-enc.el" "nxml/nxml-maint.el" "nxml/nxml-ns.el" 33086;;;;;; "nxml/nxml-ns.el" "nxml/nxml-outln.el" "nxml/nxml-parse.el"
32975;;;;;; "nxml/nxml-outln.el" "nxml/nxml-parse.el" "nxml/nxml-rap.el" 33087;;;;;; "nxml/nxml-rap.el" "nxml/nxml-util.el" "nxml/rng-dt.el" "nxml/rng-loc.el"
32976;;;;;; "nxml/nxml-util.el" "nxml/rng-dt.el" "nxml/rng-loc.el" "nxml/rng-maint.el" 33088;;;;;; "nxml/rng-maint.el" "nxml/rng-match.el" "nxml/rng-parse.el"
32977;;;;;; "nxml/rng-match.el" "nxml/rng-parse.el" "nxml/rng-pttrn.el" 33089;;;;;; "nxml/rng-pttrn.el" "nxml/rng-uri.el" "nxml/rng-util.el"
32978;;;;;; "nxml/rng-uri.el" "nxml/rng-util.el" "nxml/xsd-regexp.el" 33090;;;;;; "nxml/xsd-regexp.el" "org/ob-C.el" "org/ob-R.el" "org/ob-asymptote.el"
32979;;;;;; "org/ob-C.el" "org/ob-R.el" "org/ob-asymptote.el" "org/ob-calc.el" 33091;;;;;; "org/ob-awk.el" "org/ob-calc.el" "org/ob-clojure.el" "org/ob-comint.el"
32980;;;;;; "org/ob-clojure.el" "org/ob-comint.el" "org/ob-css.el" "org/ob-ditaa.el" 33092;;;;;; "org/ob-css.el" "org/ob-ditaa.el" "org/ob-dot.el" "org/ob-emacs-lisp.el"
32981;;;;;; "org/ob-dot.el" "org/ob-emacs-lisp.el" "org/ob-eval.el" "org/ob-exp.el" 33093;;;;;; "org/ob-eval.el" "org/ob-exp.el" "org/ob-gnuplot.el" "org/ob-haskell.el"
32982;;;;;; "org/ob-gnuplot.el" "org/ob-haskell.el" "org/ob-js.el" "org/ob-latex.el" 33094;;;;;; "org/ob-java.el" "org/ob-js.el" "org/ob-latex.el" "org/ob-ledger.el"
32983;;;;;; "org/ob-ledger.el" "org/ob-lisp.el" "org/ob-matlab.el" "org/ob-mscgen.el" 33095;;;;;; "org/ob-lilypond.el" "org/ob-lisp.el" "org/ob-matlab.el"
32984;;;;;; "org/ob-ocaml.el" "org/ob-octave.el" "org/ob-org.el" "org/ob-perl.el" 33096;;;;;; "org/ob-maxima.el" "org/ob-mscgen.el" "org/ob-ocaml.el" "org/ob-octave.el"
32985;;;;;; "org/ob-plantuml.el" "org/ob-python.el" "org/ob-ref.el" "org/ob-ruby.el" 33097;;;;;; "org/ob-org.el" "org/ob-perl.el" "org/ob-plantuml.el" "org/ob-python.el"
32986;;;;;; "org/ob-sass.el" "org/ob-scheme.el" "org/ob-screen.el" "org/ob-sh.el" 33098;;;;;; "org/ob-ref.el" "org/ob-ruby.el" "org/ob-sass.el" "org/ob-scheme.el"
32987;;;;;; "org/ob-sql.el" "org/ob-sqlite.el" "org/ob-table.el" "org/org-beamer.el" 33099;;;;;; "org/ob-screen.el" "org/ob-sh.el" "org/ob-sql.el" "org/ob-sqlite.el"
32988;;;;;; "org/org-bibtex.el" "org/org-colview.el" "org/org-compat.el" 33100;;;;;; "org/ob-table.el" "org/org-beamer.el" "org/org-bibtex.el"
32989;;;;;; "org/org-complete.el" "org/org-crypt.el" "org/org-ctags.el" 33101;;;;;; "org/org-colview.el" "org/org-compat.el" "org/org-crypt.el"
32990;;;;;; "org/org-docview.el" "org/org-entities.el" "org/org-exp-blocks.el" 33102;;;;;; "org/org-ctags.el" "org/org-docview.el" "org/org-entities.el"
32991;;;;;; "org/org-faces.el" "org/org-gnus.el" "org/org-habit.el" "org/org-info.el" 33103;;;;;; "org/org-exp-blocks.el" "org/org-faces.el" "org/org-gnus.el"
32992;;;;;; "org/org-inlinetask.el" "org/org-install.el" "org/org-jsinfo.el" 33104;;;;;; "org/org-habit.el" "org/org-info.el" "org/org-inlinetask.el"
32993;;;;;; "org/org-list.el" "org/org-mac-message.el" "org/org-macs.el" 33105;;;;;; "org/org-install.el" "org/org-jsinfo.el" "org/org-list.el"
32994;;;;;; "org/org-mew.el" "org/org-mhe.el" "org/org-mks.el" "org/org-mouse.el" 33106;;;;;; "org/org-mac-message.el" "org/org-macs.el" "org/org-mew.el"
32995;;;;;; "org/org-protocol.el" "org/org-rmail.el" "org/org-src.el" 33107;;;;;; "org/org-mhe.el" "org/org-mks.el" "org/org-mouse.el" "org/org-pcomplete.el"
32996;;;;;; "org/org-vm.el" "org/org-w3m.el" "org/org-wl.el" "patcomp.el" 33108;;;;;; "org/org-protocol.el" "org/org-rmail.el" "org/org-special-blocks.el"
32997;;;;;; "play/gamegrid.el" "play/gametree.el" "play/meese.el" "progmodes/ada-prj.el" 33109;;;;;; "org/org-src.el" "org/org-vm.el" "org/org-w3m.el" "org/org-wl.el"
32998;;;;;; "progmodes/cc-align.el" "progmodes/cc-awk.el" "progmodes/cc-bytecomp.el" 33110;;;;;; "patcomp.el" "play/gamegrid.el" "play/gametree.el" "play/meese.el"
32999;;;;;; "progmodes/cc-cmds.el" "progmodes/cc-defs.el" "progmodes/cc-fonts.el" 33111;;;;;; "progmodes/ada-prj.el" "progmodes/cc-align.el" "progmodes/cc-awk.el"
33000;;;;;; "progmodes/cc-langs.el" "progmodes/cc-menus.el" "progmodes/ebnf-abn.el" 33112;;;;;; "progmodes/cc-bytecomp.el" "progmodes/cc-cmds.el" "progmodes/cc-defs.el"
33001;;;;;; "progmodes/ebnf-bnf.el" "progmodes/ebnf-dtd.el" "progmodes/ebnf-ebx.el" 33113;;;;;; "progmodes/cc-fonts.el" "progmodes/cc-langs.el" "progmodes/cc-menus.el"
33002;;;;;; "progmodes/ebnf-iso.el" "progmodes/ebnf-otz.el" "progmodes/ebnf-yac.el" 33114;;;;;; "progmodes/ebnf-abn.el" "progmodes/ebnf-bnf.el" "progmodes/ebnf-dtd.el"
33003;;;;;; "progmodes/idlw-complete-structtag.el" "progmodes/idlw-help.el" 33115;;;;;; "progmodes/ebnf-ebx.el" "progmodes/ebnf-iso.el" "progmodes/ebnf-otz.el"
33004;;;;;; "progmodes/idlw-toolbar.el" "progmodes/mantemp.el" "progmodes/xscheme.el" 33116;;;;;; "progmodes/ebnf-yac.el" "progmodes/idlw-complete-structtag.el"
33005;;;;;; "ps-def.el" "ps-mule.el" "ps-samp.el" "saveplace.el" "sb-image.el" 33117;;;;;; "progmodes/idlw-help.el" "progmodes/idlw-toolbar.el" "progmodes/mantemp.el"
33006;;;;;; "scroll-bar.el" "select.el" "soundex.el" "subdirs.el" "tempo.el" 33118;;;;;; "progmodes/xscheme.el" "ps-def.el" "ps-mule.el" "ps-samp.el"
33007;;;;;; "textmodes/bib-mode.el" "textmodes/makeinfo.el" "textmodes/page-ext.el" 33119;;;;;; "saveplace.el" "sb-image.el" "scroll-bar.el" "select.el"
33008;;;;;; "textmodes/refbib.el" "textmodes/refer.el" "textmodes/reftex-auc.el" 33120;;;;;; "soundex.el" "subdirs.el" "tempo.el" "textmodes/bib-mode.el"
33009;;;;;; "textmodes/reftex-dcr.el" "textmodes/reftex-ref.el" "textmodes/reftex-sel.el" 33121;;;;;; "textmodes/makeinfo.el" "textmodes/page-ext.el" "textmodes/refbib.el"
33010;;;;;; "textmodes/reftex-toc.el" "textmodes/texnfo-upd.el" "timezone.el" 33122;;;;;; "textmodes/refer.el" "textmodes/reftex-auc.el" "textmodes/reftex-dcr.el"
33011;;;;;; "tooltip.el" "tree-widget.el" "uniquify.el" "url/url-about.el" 33123;;;;;; "textmodes/reftex-ref.el" "textmodes/reftex-sel.el" "textmodes/reftex-toc.el"
33012;;;;;; "url/url-cookie.el" "url/url-dired.el" "url/url-expand.el" 33124;;;;;; "textmodes/texnfo-upd.el" "timezone.el" "tooltip.el" "tree-widget.el"
33013;;;;;; "url/url-ftp.el" "url/url-future.el" "url/url-history.el" 33125;;;;;; "uniquify.el" "url/url-about.el" "url/url-cookie.el" "url/url-dired.el"
33014;;;;;; "url/url-imap.el" "url/url-methods.el" "url/url-nfs.el" "url/url-proxy.el" 33126;;;;;; "url/url-expand.el" "url/url-ftp.el" "url/url-future.el"
33015;;;;;; "url/url-vars.el" "vc/ediff-diff.el" "vc/ediff-init.el" "vc/ediff-merg.el" 33127;;;;;; "url/url-history.el" "url/url-imap.el" "url/url-methods.el"
33016;;;;;; "vc/ediff-ptch.el" "vc/ediff-vers.el" "vc/ediff-wind.el" 33128;;;;;; "url/url-nfs.el" "url/url-proxy.el" "url/url-vars.el" "vc/ediff-diff.el"
33017;;;;;; "vc/pcvs-info.el" "vc/pcvs-parse.el" "vc/pcvs-util.el" "vc/vc-dav.el" 33129;;;;;; "vc/ediff-init.el" "vc/ediff-merg.el" "vc/ediff-ptch.el"
33018;;;;;; "vcursor.el" "vt-control.el" "vt100-led.el" "w32-fns.el" 33130;;;;;; "vc/ediff-vers.el" "vc/ediff-wind.el" "vc/pcvs-info.el" "vc/pcvs-parse.el"
33019;;;;;; "w32-vars.el" "x-dnd.el") (19981 41048 99944)) 33131;;;;;; "vc/pcvs-util.el" "vc/vc-dav.el" "vcursor.el" "vt-control.el"
33132;;;;;; "vt100-led.el" "w32-fns.el" "w32-vars.el" "x-dnd.el") (20022
33133;;;;;; 32281 188358))
33020 33134
33021;;;*** 33135;;;***
33022 33136
diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el
index fe20ad921da..158435de86b 100644
--- a/lisp/mail/sendmail.el
+++ b/lisp/mail/sendmail.el
@@ -165,7 +165,8 @@ This is used by the default mail-sending commands. See also
165If `sendmail-query-once-function' is `query', ask the user what 165If `sendmail-query-once-function' is `query', ask the user what
166function to use, and then save that choice." 166function to use, and then save that choice."
167 (when (equal sendmail-query-once-function 'query) 167 (when (equal sendmail-query-once-function 'query)
168 (let* ((default 168 (let* ((mail-buffer (current-buffer))
169 (default
169 (cond 170 (cond
170 ((or (and window-system (eq system-type 'darwin)) 171 ((or (and window-system (eq system-type 'darwin))
171 (eq system-type 'windows-nt)) 172 (eq system-type 'windows-nt))
@@ -195,7 +196,8 @@ function to use, and then save that choice."
195 (if (y-or-n-p "Configure outgoing SMTP in Emacs? ") 196 (if (y-or-n-p "Configure outgoing SMTP in Emacs? ")
196 'smtpmail-send-it 197 'smtpmail-send-it
197 default)) 198 default))
198 (kill-buffer (current-buffer)))))) 199 (kill-buffer (current-buffer))
200 (set-buffer mail-buffer)))))
199 (customize-save-variable 'sendmail-query-once-function function))) 201 (customize-save-variable 'sendmail-query-once-function function)))
200 (funcall sendmail-query-once-function)) 202 (funcall sendmail-query-once-function))
201 203
diff --git a/lisp/mail/smtpmail.el b/lisp/mail/smtpmail.el
index cc46660712f..3b406fa9331 100644
--- a/lisp/mail/smtpmail.el
+++ b/lisp/mail/smtpmail.el
@@ -589,7 +589,7 @@ The list is in preference order.")
589 589
590(defun smtpmail-query-smtp-server () 590(defun smtpmail-query-smtp-server ()
591 (let ((server (read-string "Outgoing SMTP mail server: ")) 591 (let ((server (read-string "Outgoing SMTP mail server: "))
592 (ports '(587 "smtp")) 592 (ports '("smtp" 587))
593 stream port) 593 stream port)
594 (when (and smtpmail-smtp-server 594 (when (and smtpmail-smtp-server
595 (not (member smtpmail-smtp-server ports))) 595 (not (member smtpmail-smtp-server ports)))
diff --git a/lisp/net/network-stream.el b/lisp/net/network-stream.el
index bb09d8945c9..ceb094cded7 100644
--- a/lisp/net/network-stream.el
+++ b/lisp/net/network-stream.el
@@ -230,7 +230,7 @@ functionality.
230 (or builtin-starttls 230 (or builtin-starttls
231 (and (or require-tls 231 (and (or require-tls
232 (plist-get parameters :use-starttls-if-possible)) 232 (plist-get parameters :use-starttls-if-possible))
233 (executable-find "gnutls-cli"))) 233 (starttls-available-p)))
234 (not (eq (plist-get parameters :type) 'plain))) 234 (not (eq (plist-get parameters :type) 'plain)))
235 ;; If using external STARTTLS, drop this connection and start 235 ;; If using external STARTTLS, drop this connection and start
236 ;; anew with `starttls-open-stream'. 236 ;; anew with `starttls-open-stream'.
diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el
index 9e04abb8cd5..7d43c4f7547 100644
--- a/lisp/net/rcirc.el
+++ b/lisp/net/rcirc.el
@@ -2695,7 +2695,8 @@ the only argument."
2695 (setq rcirc-topic (caddr args))))) 2695 (setq rcirc-topic (caddr args)))))
2696 2696
2697(defun rcirc-handler-333 (process sender args text) 2697(defun rcirc-handler-333 (process sender args text)
2698 "Not in rfc1459.txt" 2698 "333 says who set the topic and when.
2699Not in rfc1459.txt"
2699 (let ((buffer (or (rcirc-get-buffer process (cadr args)) 2700 (let ((buffer (or (rcirc-get-buffer process (cadr args))
2700 (rcirc-get-temp-buffer-create process (cadr args))))) 2701 (rcirc-get-temp-buffer-create process (cadr args)))))
2701 (with-current-buffer buffer 2702 (with-current-buffer buffer
diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el
index 7b4c6fd75b1..da51662b216 100644
--- a/lisp/net/trampver.el
+++ b/lisp/net/trampver.el
@@ -31,7 +31,7 @@
31;; should be changed only there. 31;; should be changed only there.
32 32
33;;;###tramp-autoload 33;;;###tramp-autoload
34(defconst tramp-version "2.2.2-pre" 34(defconst tramp-version "2.2.2"
35 "This version of Tramp.") 35 "This version of Tramp.")
36 36
37;;;###tramp-autoload 37;;;###tramp-autoload
@@ -44,7 +44,7 @@
44 (= emacs-major-version 21) 44 (= emacs-major-version 21)
45 (>= emacs-minor-version 4))) 45 (>= emacs-minor-version 4)))
46 "ok" 46 "ok"
47 (format "Tramp 2.2.2-pre is not fit for %s" 47 (format "Tramp 2.2.2 is not fit for %s"
48 (when (string-match "^.*$" (emacs-version)) 48 (when (string-match "^.*$" (emacs-version))
49 (match-string 0 (emacs-version))))))) 49 (match-string 0 (emacs-version)))))))
50 (unless (string-match "\\`ok\\'" x) (error "%s" x))) 50 (unless (string-match "\\`ok\\'" x) (error "%s" x)))
diff --git a/lisp/org/ChangeLog b/lisp/org/ChangeLog
index 0822f313ac4..43e4ad30e06 100644
--- a/lisp/org/ChangeLog
+++ b/lisp/org/ChangeLog
@@ -1,3 +1,8 @@
12011-07-30 Carsten Dominik <carsten.dominik@gmail.com>
2
3 * ob.el (org-babel-src-block-regexp): If a code block has a body,
4 its last character must be a newline.
5
12011-07-28 Bastien Guerry <bzg@gnu.org> 62011-07-28 Bastien Guerry <bzg@gnu.org>
2 7
3 * org-publish.el (org-publish-index-generate-theindex): rename 8 * org-publish.el (org-publish-index-generate-theindex): rename
diff --git a/lisp/org/ob.el b/lisp/org/ob.el
index 0de0aa661c5..44173fdb789 100644
--- a/lisp/org/ob.el
+++ b/lisp/org/ob.el
@@ -137,7 +137,7 @@ remove code block execution from the C-c C-c keybinding."
137 ;; (4) header arguments 137 ;; (4) header arguments
138 "\\([^\n]*\\)\n" 138 "\\([^\n]*\\)\n"
139 ;; (5) body 139 ;; (5) body
140 "\\([^\000]*?\\)[ \t]*#\\+end_src") 140 "\\([^\000]*?\n\\)?[ \t]*#\\+end_src")
141 "Regexp used to identify code blocks.") 141 "Regexp used to identify code blocks.")
142 142
143(defvar org-babel-inline-src-block-regexp 143(defvar org-babel-inline-src-block-regexp
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index 258f9be9237..31a4fbaef4d 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -1028,45 +1028,45 @@ subshells can nest."
1028 1028
1029(defun sh-font-lock-paren (start) 1029(defun sh-font-lock-paren (start)
1030 (unless (nth 8 (syntax-ppss)) 1030 (unless (nth 8 (syntax-ppss))
1031 (save-excursion 1031 (save-excursion
1032 (goto-char start) 1032 (goto-char start)
1033 ;; Skip through all patterns 1033 ;; Skip through all patterns
1034 (while 1034 (while
1035 (progn 1035 (progn
1036 (while 1036 (while
1037 (progn 1037 (progn
1038 (forward-comment (- (point-max))) 1038 (forward-comment (- (point-max)))
1039 (when (and (eolp) (sh-is-quoted-p (point))) 1039 (when (and (eolp) (sh-is-quoted-p (point)))
1040 (forward-char -1) 1040 (forward-char -1)
1041 t))) 1041 t)))
1042 ;; Skip through one pattern 1042 ;; Skip through one pattern
1043 (while 1043 (while
1044 (or (/= 0 (skip-syntax-backward "w_")) 1044 (or (/= 0 (skip-syntax-backward "w_"))
1045 (/= 0 (skip-chars-backward "-$=?[]*@/\\\\")) 1045 (/= 0 (skip-chars-backward "-$=?[]*@/\\\\"))
1046 (and (sh-is-quoted-p (1- (point))) 1046 (and (sh-is-quoted-p (1- (point)))
1047 (goto-char (- (point) 2))) 1047 (goto-char (- (point) 2)))
1048 (when (memq (char-before) '(?\" ?\' ?\})) 1048 (when (memq (char-before) '(?\" ?\' ?\}))
1049 (condition-case nil (progn (backward-sexp 1) t) 1049 (condition-case nil (progn (backward-sexp 1) t)
1050 (error nil))))) 1050 (error nil)))))
1051 ;; Patterns can be preceded by an open-paren (Bug#1320). 1051 ;; Patterns can be preceded by an open-paren (Bug#1320).
1052 (if (eq (char-before (point)) ?\() 1052 (if (eq (char-before (point)) ?\()
1053 (backward-char 1)) 1053 (backward-char 1))
1054 (while (progn 1054 (while (progn
1055 (forward-comment (- (point-max))) 1055 (forward-comment (- (point-max)))
1056 ;; Maybe we've bumped into an escaped newline. 1056 ;; Maybe we've bumped into an escaped newline.
1057 (sh-is-quoted-p (point))) 1057 (sh-is-quoted-p (point)))
1058 (backward-char 1)) 1058 (backward-char 1))
1059 (when (eq (char-before) ?|) 1059 (when (eq (char-before) ?|)
1060 (backward-char 1) t))) 1060 (backward-char 1) t)))
1061 (when (progn (backward-char 2) 1061 (when (progn (backward-char 2)
1062 (if (> start (line-end-position)) 1062 (if (> start (line-end-position))
1063 (put-text-property (point) (1+ start) 1063 (put-text-property (point) (1+ start)
1064 'syntax-multiline t)) 1064 'syntax-multiline t))
1065 ;; FIXME: The `in' may just be a random argument to 1065 ;; FIXME: The `in' may just be a random argument to
1066 ;; a normal command rather than the real `in' keyword. 1066 ;; a normal command rather than the real `in' keyword.
1067 ;; I.e. we should look back to try and find the 1067 ;; I.e. we should look back to try and find the
1068 ;; corresponding `case'. 1068 ;; corresponding `case'.
1069 (and (looking-at ";[;&]\\|in") 1069 (and (looking-at ";[;&]\\|\\_<in")
1070 ;; ";; esac )" is a case that looks like a case-pattern 1070 ;; ";; esac )" is a case that looks like a case-pattern
1071 ;; but it's really just a close paren after a case 1071 ;; but it's really just a close paren after a case
1072 ;; statement. I.e. if we skipped over `esac' just now, 1072 ;; statement. I.e. if we skipped over `esac' just now,
diff --git a/lisp/window.el b/lisp/window.el
index 905db8dc9b6..215dbab7849 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -4715,15 +4715,12 @@ documentation of `display-buffer-alist' for a description."
4715 (setq window (window-normalize-live-window window)) 4715 (setq window (window-normalize-live-window window))
4716 (let* ((old-frame (selected-frame)) 4716 (let* ((old-frame (selected-frame))
4717 (new-frame (window-frame window)) 4717 (new-frame (window-frame window))
4718 (dedicate (cdr (assq 'dedicate specifiers)))
4719 (no-other-window (cdr (assq 'no-other-window specifiers)))) 4718 (no-other-window (cdr (assq 'no-other-window specifiers))))
4720 ;; Show BUFFER in WINDOW. 4719 ;; Show BUFFER in WINDOW.
4721 (unless (eq buffer (window-buffer window)) 4720 (unless (eq buffer (window-buffer window))
4722 ;; If we show another buffer in WINDOW, undedicate it first. 4721 ;; If we show another buffer in WINDOW, undedicate it first.
4723 (set-window-dedicated-p window nil)) 4722 (set-window-dedicated-p window nil))
4724 (set-window-buffer window buffer) 4723 (set-window-buffer window buffer)
4725 (when dedicate
4726 (set-window-dedicated-p window dedicate))
4727 (when no-other-window 4724 (when no-other-window
4728 (set-window-parameter window 'no-other-window t)) 4725 (set-window-parameter window 'no-other-window t))
4729 (unless (or (eq old-frame new-frame) 4726 (unless (or (eq old-frame new-frame)
@@ -4965,7 +4962,7 @@ Return the new window, nil if it could not be created."
4965 (selected-window (selected-window)) 4962 (selected-window (selected-window))
4966 root new new-parent) 4963 root new new-parent)
4967 4964
4968 ;; We are in an atomic window. 4965 ;; We are in an atomic window.
4969 (when (and (window-parameter window 'window-atom) (not nest)) 4966 (when (and (window-parameter window 'window-atom) (not nest))
4970 ;; Split the root window. 4967 ;; Split the root window.
4971 (setq window (window-atom-root window))) 4968 (setq window (window-atom-root window)))
@@ -5059,6 +5056,10 @@ description."
5059 (setq display-buffer-window (cons window 'new-window)) 5056 (setq display-buffer-window (cons window 'new-window))
5060 ;; Install BUFFER in the new window. 5057 ;; Install BUFFER in the new window.
5061 (display-buffer-in-window buffer window specifiers) 5058 (display-buffer-in-window buffer window specifiers)
5059 (let ((dedicate (cdr (assq 'dedicate specifiers))))
5060 (when dedicate
5061 ;; Dedicate window to buffer.
5062 (set-window-dedicated-p window dedicate)))
5062 ;; Adjust sizes if asked for (for `fit-window-to-buffer' 5063 ;; Adjust sizes if asked for (for `fit-window-to-buffer'
5063 ;; and friends BUFFER must be already shown in the new 5064 ;; and friends BUFFER must be already shown in the new
5064 ;; window). 5065 ;; window).
@@ -5094,7 +5095,12 @@ documentation of `display-buffer-alist' for a description."
5094 (set-window-parameter 5095 (set-window-parameter
5095 window 'quit-restore (list 'new-frame buffer selected-window)) 5096 window 'quit-restore (list 'new-frame buffer selected-window))
5096 (setq display-buffer-window (cons window 'new-frame)) 5097 (setq display-buffer-window (cons window 'new-frame))
5097 (display-buffer-in-window buffer window specifiers)))))) 5098 (display-buffer-in-window buffer window specifiers)
5099 (let ((dedicate (cdr (assq 'dedicate specifiers))))
5100 (when dedicate
5101 ;; Dedicate window to buffer.
5102 (set-window-dedicated-p window dedicate)))
5103 window)))))
5098 5104
5099(defun display-buffer-pop-up-side-window (buffer side slot &optional specifiers) 5105(defun display-buffer-pop-up-side-window (buffer side slot &optional specifiers)
5100 "Display BUFFER in a new window on SIDE of the selected frame. 5106 "Display BUFFER in a new window on SIDE of the selected frame.
@@ -5142,6 +5148,10 @@ failed."
5142 (setq display-buffer-window (cons window 'new-window)) 5148 (setq display-buffer-window (cons window 'new-window))
5143 ;; Install BUFFER in new window. 5149 ;; Install BUFFER in new window.
5144 (display-buffer-in-window buffer window specifiers) 5150 (display-buffer-in-window buffer window specifiers)
5151 (let ((dedicate (cdr (assq 'dedicate specifiers))))
5152 (when dedicate
5153 ;; Dedicate window to buffer.
5154 (set-window-dedicated-p window dedicate)))
5145 ;; Adjust sizes of new window if asked for. 5155 ;; Adjust sizes of new window if asked for.
5146 (display-buffer-set-height window specifiers) 5156 (display-buffer-set-height window specifiers)
5147 (display-buffer-set-width window specifiers) 5157 (display-buffer-set-width window specifiers)
@@ -5282,6 +5292,10 @@ SPECIFIERS must be a list of buffer display specifiers."
5282 (set-window-parameter window 'window-slot slot)) 5292 (set-window-parameter window 'window-slot slot))
5283 ;; Install BUFFER in the window. 5293 ;; Install BUFFER in the window.
5284 (display-buffer-in-window buffer window specifiers) 5294 (display-buffer-in-window buffer window specifiers)
5295 (let ((dedicate (cdr (assq 'dedicate specifiers))))
5296 (when dedicate
5297 ;; Dedicate window to buffer.
5298 (set-window-dedicated-p window dedicate)))
5285 (when new-window 5299 (when new-window
5286 ;; Adjust sizes if asked for (for `fit-window-to-buffer' and 5300 ;; Adjust sizes if asked for (for `fit-window-to-buffer' and
5287 ;; friends BUFFER must be already shown in the new window). 5301 ;; friends BUFFER must be already shown in the new window).
diff --git a/src/ChangeLog b/src/ChangeLog
index 3eaa3d5eadd..3717924ff68 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,56 @@
12011-08-02 Eli Zaretskii <eliz@gnu.org>
2
3 Fix slow cursor motion and scrolling in large buffers with
4 selective display, like Org Mode buffers. (Bug#9218)
5
6 * dispextern.h (struct bidi_it): New member disp_prop_p.
7
8 * xdisp.c: Remove one-slot cache of display string positions.
9 (compute_display_string_pos): Accept an additional argument
10 DISP_PROP_P; callers changed. Scan at most 5K characters forward
11 for a display string or property. If found, set DISP_PROP_P
12 non-zero.
13
14 * bidi.c (bidi_fetch_char): Accept an additional argument
15 DISP_PROP_P, and pass it to compute_display_string_pos. Only
16 handle text covered by a display string if DISP_PROP_P is returned
17 non-zero. All callers of bidi_fetch_char changed.
18
192011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
20
21 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
22
232010-12-03 Don March <don@ohspite.net>
24
25 * keymap.c (Fdefine_key): Fix non-prefix key error message when
26 last character M-[char] is translated to ESC [char] (bug#7541).
27
282011-08-02 Kenichi Handa <handa@m17n.org>
29
30 * lisp.h (uniprop_table): Extern it.
31
32 * chartab.c (uniprop_table): Make it non-static.
33
342011-08-01 Eli Zaretskii <eliz@gnu.org>
35
36 * xdisp.c (forward_to_next_line_start): Accept additional argument
37 BIDI_IT_PREV, and store into it the state of the bidi iterator had
38 on the newline.
39 (reseat_at_next_visible_line_start): Use the bidi iterator state
40 returned by forward_to_next_line_start to restore the state of
41 it->bidi_it after backing up to previous newline. (Bug#9212)
42
432011-07-30 Andreas Schwab <schwab@linux-m68k.org>
44
45 * regex.c (re_comp): Protoize.
46 (re_exec): Fix return type.
47 (regexec): Fix type of `ret'. (Bug#9203)
48
492011-07-29 Paul Eggert <eggert@cs.ucla.edu>
50
51 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
52 This is needed if max-image-size is a floating-point number.
53
12011-07-28 Andreas Schwab <schwab@linux-m68k.org> 542011-07-28 Andreas Schwab <schwab@linux-m68k.org>
2 55
3 * print.c (print_object): Print empty symbol as ##. 56 * print.c (print_object): Print empty symbol as ##.
diff --git a/src/bidi.c b/src/bidi.c
index 697ebb92856..ae5143b37e0 100644
--- a/src/bidi.c
+++ b/src/bidi.c
@@ -792,6 +792,7 @@ bidi_init_it (EMACS_INT charpos, EMACS_INT bytepos, int frame_window_p,
792 bidi_it->prev_for_neutral.orig_type = UNKNOWN_BT; 792 bidi_it->prev_for_neutral.orig_type = UNKNOWN_BT;
793 bidi_it->sor = L2R; /* FIXME: should it be user-selectable? */ 793 bidi_it->sor = L2R; /* FIXME: should it be user-selectable? */
794 bidi_it->disp_pos = -1; /* invalid/unknown */ 794 bidi_it->disp_pos = -1; /* invalid/unknown */
795 bidi_it->disp_prop_p = 0;
795 /* We can only shrink the cache if we are at the bottom level of its 796 /* We can only shrink the cache if we are at the bottom level of its
796 "stack". */ 797 "stack". */
797 if (bidi_cache_start == 0) 798 if (bidi_cache_start == 0)
@@ -874,14 +875,16 @@ bidi_char_at_pos (EMACS_INT bytepos, const unsigned char *s, int unibyte)
874 covered characters as a single character u+FFFC, and return their 875 covered characters as a single character u+FFFC, and return their
875 combined length in CH_LEN and NCHARS. DISP_POS specifies the 876 combined length in CH_LEN and NCHARS. DISP_POS specifies the
876 character position of the next display string, or -1 if not yet 877 character position of the next display string, or -1 if not yet
877 computed. When the next character is at or beyond that position, 878 computed. DISP_PROP_P non-zero means that there's really a display
878 the function updates DISP_POS with the position of the next display 879 string at DISP_POS, as opposed to when we searched till DISP_POS
879 string. STRING->s is the C string to iterate, or NULL if iterating 880 without findingone. When the next character is at or beyond that
880 over a buffer or a Lisp string; in the latter case, STRING->lstring 881 position, the function updates DISP_POS with the position of the
881 is the Lisp string. */ 882 next display string. STRING->s is the C string to iterate, or NULL
883 if iterating over a buffer or a Lisp string; in the latter case,
884 STRING->lstring is the Lisp string. */
882static inline int 885static inline int
883bidi_fetch_char (EMACS_INT bytepos, EMACS_INT charpos, EMACS_INT *disp_pos, 886bidi_fetch_char (EMACS_INT bytepos, EMACS_INT charpos, EMACS_INT *disp_pos,
884 struct bidi_string_data *string, 887 int *disp_prop_p, struct bidi_string_data *string,
885 int frame_window_p, EMACS_INT *ch_len, EMACS_INT *nchars) 888 int frame_window_p, EMACS_INT *ch_len, EMACS_INT *nchars)
886{ 889{
887 int ch; 890 int ch;
@@ -894,7 +897,8 @@ bidi_fetch_char (EMACS_INT bytepos, EMACS_INT charpos, EMACS_INT *disp_pos,
894 if (charpos < endpos && charpos > *disp_pos) 897 if (charpos < endpos && charpos > *disp_pos)
895 { 898 {
896 SET_TEXT_POS (pos, charpos, bytepos); 899 SET_TEXT_POS (pos, charpos, bytepos);
897 *disp_pos = compute_display_string_pos (&pos, string, frame_window_p); 900 *disp_pos = compute_display_string_pos (&pos, string, frame_window_p,
901 disp_prop_p);
898 } 902 }
899 903
900 /* Fetch the character at BYTEPOS. */ 904 /* Fetch the character at BYTEPOS. */
@@ -904,8 +908,9 @@ bidi_fetch_char (EMACS_INT bytepos, EMACS_INT charpos, EMACS_INT *disp_pos,
904 *ch_len = 1; 908 *ch_len = 1;
905 *nchars = 1; 909 *nchars = 1;
906 *disp_pos = endpos; 910 *disp_pos = endpos;
911 *disp_prop_p = 0;
907 } 912 }
908 else if (charpos >= *disp_pos) 913 else if (charpos >= *disp_pos && *disp_prop_p)
909 { 914 {
910 EMACS_INT disp_end_pos; 915 EMACS_INT disp_end_pos;
911 916
@@ -972,10 +977,12 @@ bidi_fetch_char (EMACS_INT bytepos, EMACS_INT charpos, EMACS_INT *disp_pos,
972 977
973 /* If we just entered a run of characters covered by a display 978 /* If we just entered a run of characters covered by a display
974 string, compute the position of the next display string. */ 979 string, compute the position of the next display string. */
975 if (charpos + *nchars <= endpos && charpos + *nchars > *disp_pos) 980 if (charpos + *nchars <= endpos && charpos + *nchars > *disp_pos
981 && *disp_prop_p)
976 { 982 {
977 SET_TEXT_POS (pos, charpos + *nchars, bytepos + *ch_len); 983 SET_TEXT_POS (pos, charpos + *nchars, bytepos + *ch_len);
978 *disp_pos = compute_display_string_pos (&pos, string, frame_window_p); 984 *disp_pos = compute_display_string_pos (&pos, string, frame_window_p,
985 disp_prop_p);
979 } 986 }
980 987
981 return ch; 988 return ch;
@@ -1083,6 +1090,7 @@ bidi_paragraph_init (bidi_dir_t dir, struct bidi_it *bidi_it, int no_default_p)
1083 int ch; 1090 int ch;
1084 EMACS_INT ch_len, nchars; 1091 EMACS_INT ch_len, nchars;
1085 EMACS_INT pos, disp_pos = -1; 1092 EMACS_INT pos, disp_pos = -1;
1093 int disp_prop_p = 0;
1086 bidi_type_t type; 1094 bidi_type_t type;
1087 const unsigned char *s; 1095 const unsigned char *s;
1088 1096
@@ -1130,7 +1138,8 @@ bidi_paragraph_init (bidi_dir_t dir, struct bidi_it *bidi_it, int no_default_p)
1130 bytepos = pstartbyte; 1138 bytepos = pstartbyte;
1131 if (!string_p) 1139 if (!string_p)
1132 pos = BYTE_TO_CHAR (bytepos); 1140 pos = BYTE_TO_CHAR (bytepos);
1133 ch = bidi_fetch_char (bytepos, pos, &disp_pos, &bidi_it->string, 1141 ch = bidi_fetch_char (bytepos, pos, &disp_pos, &disp_prop_p,
1142 &bidi_it->string,
1134 bidi_it->frame_window_p, &ch_len, &nchars); 1143 bidi_it->frame_window_p, &ch_len, &nchars);
1135 type = bidi_get_type (ch, NEUTRAL_DIR); 1144 type = bidi_get_type (ch, NEUTRAL_DIR);
1136 1145
@@ -1157,7 +1166,8 @@ bidi_paragraph_init (bidi_dir_t dir, struct bidi_it *bidi_it, int no_default_p)
1157 && bidi_at_paragraph_end (pos, bytepos) >= -1) 1166 && bidi_at_paragraph_end (pos, bytepos) >= -1)
1158 break; 1167 break;
1159 /* Fetch next character and advance to get past it. */ 1168 /* Fetch next character and advance to get past it. */
1160 ch = bidi_fetch_char (bytepos, pos, &disp_pos, &bidi_it->string, 1169 ch = bidi_fetch_char (bytepos, pos, &disp_pos,
1170 &disp_prop_p, &bidi_it->string,
1161 bidi_it->frame_window_p, &ch_len, &nchars); 1171 bidi_it->frame_window_p, &ch_len, &nchars);
1162 pos += nchars; 1172 pos += nchars;
1163 bytepos += ch_len; 1173 bytepos += ch_len;
@@ -1290,6 +1300,7 @@ bidi_resolve_explicit_1 (struct bidi_it *bidi_it)
1290 bidi_it->ch_len = 1; 1300 bidi_it->ch_len = 1;
1291 bidi_it->nchars = 1; 1301 bidi_it->nchars = 1;
1292 bidi_it->disp_pos = (string_p ? bidi_it->string.schars : ZV); 1302 bidi_it->disp_pos = (string_p ? bidi_it->string.schars : ZV);
1303 bidi_it->disp_prop_p = 0;
1293 } 1304 }
1294 else 1305 else
1295 { 1306 {
@@ -1297,8 +1308,8 @@ bidi_resolve_explicit_1 (struct bidi_it *bidi_it)
1297 display string, treat the entire run of covered characters as 1308 display string, treat the entire run of covered characters as
1298 a single character u+FFFC. */ 1309 a single character u+FFFC. */
1299 curchar = bidi_fetch_char (bidi_it->bytepos, bidi_it->charpos, 1310 curchar = bidi_fetch_char (bidi_it->bytepos, bidi_it->charpos,
1300 &bidi_it->disp_pos, &bidi_it->string, 1311 &bidi_it->disp_pos, &bidi_it->disp_prop_p,
1301 bidi_it->frame_window_p, 1312 &bidi_it->string, bidi_it->frame_window_p,
1302 &bidi_it->ch_len, &bidi_it->nchars); 1313 &bidi_it->ch_len, &bidi_it->nchars);
1303 } 1314 }
1304 bidi_it->ch = curchar; 1315 bidi_it->ch = curchar;
@@ -2032,12 +2043,13 @@ bidi_level_of_next_char (struct bidi_it *bidi_it)
2032 struct bidi_string_data bs = bidi_it->string; 2043 struct bidi_string_data bs = bidi_it->string;
2033 bidi_type_t chtype; 2044 bidi_type_t chtype;
2034 int fwp = bidi_it->frame_window_p; 2045 int fwp = bidi_it->frame_window_p;
2046 int dpp = bidi_it->disp_prop_p;
2035 2047
2036 if (bidi_it->nchars <= 0) 2048 if (bidi_it->nchars <= 0)
2037 abort (); 2049 abort ();
2038 do { 2050 do {
2039 ch = bidi_fetch_char (bpos += clen, cpos += nc, &disp_pos, &bs, fwp, 2051 ch = bidi_fetch_char (bpos += clen, cpos += nc, &disp_pos, &dpp, &bs,
2040 &clen, &nc); 2052 fwp, &clen, &nc);
2041 if (ch == '\n' || ch == BIDI_EOB /* || ch == LINESEP_CHAR */) 2053 if (ch == '\n' || ch == BIDI_EOB /* || ch == LINESEP_CHAR */)
2042 chtype = NEUTRAL_B; 2054 chtype = NEUTRAL_B;
2043 else 2055 else
diff --git a/src/chartab.c b/src/chartab.c
index efe23eca83f..fb72004356e 100644
--- a/src/chartab.c
+++ b/src/chartab.c
@@ -1310,7 +1310,7 @@ uniprop_get_encoder (Lisp_Object table)
1310 function may load a Lisp file and thus may cause 1310 function may load a Lisp file and thus may cause
1311 garbage-collection. */ 1311 garbage-collection. */
1312 1312
1313static Lisp_Object 1313Lisp_Object
1314uniprop_table (Lisp_Object prop) 1314uniprop_table (Lisp_Object prop)
1315{ 1315{
1316 Lisp_Object val, table, result; 1316 Lisp_Object val, table, result;
diff --git a/src/dispextern.h b/src/dispextern.h
index dc44c698164..2e245479a81 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -1868,6 +1868,8 @@ struct bidi_it {
1868 bidi_dir_t paragraph_dir; /* current paragraph direction */ 1868 bidi_dir_t paragraph_dir; /* current paragraph direction */
1869 EMACS_INT separator_limit; /* where paragraph separator should end */ 1869 EMACS_INT separator_limit; /* where paragraph separator should end */
1870 EMACS_INT disp_pos; /* position of display string after ch */ 1870 EMACS_INT disp_pos; /* position of display string after ch */
1871 int disp_prop_p; /* if non-zero, there really is a
1872 `display' property/string at disp_pos */
1871 unsigned first_elt : 1; /* if non-zero, examine current char first */ 1873 unsigned first_elt : 1; /* if non-zero, examine current char first */
1872 unsigned new_paragraph : 1; /* if non-zero, we expect a new paragraph */ 1874 unsigned new_paragraph : 1; /* if non-zero, we expect a new paragraph */
1873 unsigned frame_window_p : 1; /* non-zero if displaying on a GUI frame */ 1875 unsigned frame_window_p : 1; /* non-zero if displaying on a GUI frame */
@@ -3035,7 +3037,8 @@ extern Lisp_Object lookup_glyphless_char_display (int, struct it *);
3035extern int calc_pixel_width_or_height (double *, struct it *, Lisp_Object, 3037extern int calc_pixel_width_or_height (double *, struct it *, Lisp_Object,
3036 struct font *, int, int *); 3038 struct font *, int, int *);
3037extern EMACS_INT compute_display_string_pos (struct text_pos *, 3039extern EMACS_INT compute_display_string_pos (struct text_pos *,
3038 struct bidi_string_data *, int); 3040 struct bidi_string_data *,
3041 int, int *);
3039extern EMACS_INT compute_display_string_end (EMACS_INT, 3042extern EMACS_INT compute_display_string_end (EMACS_INT,
3040 struct bidi_string_data *); 3043 struct bidi_string_data *);
3041 3044
diff --git a/src/image.c b/src/image.c
index fb1d825fa54..d1091aec6f3 100644
--- a/src/image.c
+++ b/src/image.c
@@ -1053,9 +1053,13 @@ check_image_size (struct frame *f, int width, int height)
1053 && height <= XINT (Vmax_image_size)); 1053 && height <= XINT (Vmax_image_size));
1054 else if (FLOATP (Vmax_image_size)) 1054 else if (FLOATP (Vmax_image_size))
1055 { 1055 {
1056 xassert (f); 1056 if (f != NULL)
1057 w = FRAME_PIXEL_WIDTH (f); 1057 {
1058 h = FRAME_PIXEL_HEIGHT (f); 1058 w = FRAME_PIXEL_WIDTH (f);
1059 h = FRAME_PIXEL_HEIGHT (f);
1060 }
1061 else
1062 w = h = 1024; /* Arbitrary size for unknown frame. */
1059 return (width <= XFLOAT_DATA (Vmax_image_size) * w 1063 return (width <= XFLOAT_DATA (Vmax_image_size) * w
1060 && height <= XFLOAT_DATA (Vmax_image_size) * h); 1064 && height <= XFLOAT_DATA (Vmax_image_size) * h);
1061 } 1065 }
diff --git a/src/keymap.c b/src/keymap.c
index 0169276bef9..c461fdddbbc 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -1216,13 +1216,20 @@ binding KEY to DEF is added at the front of KEYMAP. */)
1216 1216
1217 keymap = get_keymap (cmd, 0, 1); 1217 keymap = get_keymap (cmd, 0, 1);
1218 if (!CONSP (keymap)) 1218 if (!CONSP (keymap))
1219 /* We must use Fkey_description rather than just passing key to 1219 {
1220 error; key might be a vector, not a string. */ 1220 const char *trailing_esc = ((EQ (c, meta_prefix_char) && metized)
1221 error ("Key sequence %s starts with non-prefix key %s", 1221 ? (idx == 0 ? "ESC" : " ESC")
1222 SDATA (Fkey_description (key, Qnil)), 1222 : "");
1223 SDATA (Fkey_description (Fsubstring (key, make_number (0), 1223
1224 make_number (idx)), 1224 /* We must use Fkey_description rather than just passing key to
1225 Qnil))); 1225 error; key might be a vector, not a string. */
1226 error ("Key sequence %s starts with non-prefix key %s%s",
1227 SDATA (Fkey_description (key, Qnil)),
1228 SDATA (Fkey_description (Fsubstring (key, make_number (0),
1229 make_number (idx)),
1230 Qnil)),
1231 trailing_esc);
1232 }
1226 } 1233 }
1227} 1234}
1228 1235
diff --git a/src/lisp.h b/src/lisp.h
index 1e141dbb5d0..d82307b4332 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -2861,6 +2861,7 @@ extern void map_char_table_for_charset (void (*c_function) (Lisp_Object, Lisp_Ob
2861 Lisp_Object, Lisp_Object, 2861 Lisp_Object, Lisp_Object,
2862 Lisp_Object, struct charset *, 2862 Lisp_Object, struct charset *,
2863 unsigned, unsigned); 2863 unsigned, unsigned);
2864extern Lisp_Object uniprop_table (Lisp_Object);
2864extern void syms_of_chartab (void); 2865extern void syms_of_chartab (void);
2865 2866
2866/* Defined in print.c */ 2867/* Defined in print.c */
diff --git a/src/regex.c b/src/regex.c
index 862f848976c..545a198acd7 100644
--- a/src/regex.c
+++ b/src/regex.c
@@ -6381,8 +6381,7 @@ char *
6381 regcomp/regexec below without link errors. */ 6381 regcomp/regexec below without link errors. */
6382weak_function 6382weak_function
6383# endif 6383# endif
6384re_comp (s) 6384re_comp (const char *s)
6385 const char *s;
6386{ 6385{
6387 reg_errcode_t ret; 6386 reg_errcode_t ret;
6388 6387
@@ -6421,7 +6420,7 @@ re_comp (s)
6421} 6420}
6422 6421
6423 6422
6424regoff_t 6423int
6425# ifdef _LIBC 6424# ifdef _LIBC
6426weak_function 6425weak_function
6427# endif 6426# endif
@@ -6558,7 +6557,7 @@ reg_errcode_t
6558regexec (const regex_t *__restrict preg, const char *__restrict string, 6557regexec (const regex_t *__restrict preg, const char *__restrict string,
6559 size_t nmatch, regmatch_t pmatch[__restrict_arr], int eflags) 6558 size_t nmatch, regmatch_t pmatch[__restrict_arr], int eflags)
6560{ 6559{
6561 reg_errcode_t ret; 6560 regoff_t ret;
6562 struct re_registers regs; 6561 struct re_registers regs;
6563 regex_t private_preg; 6562 regex_t private_preg;
6564 size_t len = strlen (string); 6563 size_t len = strlen (string);
diff --git a/src/w32term.c b/src/w32term.c
index b7c0d61b633..98c4a391953 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -1439,7 +1439,7 @@ x_draw_glyphless_glyph_string_foreground (struct glyph_string *s)
1439 1439
1440 Nominally, highlight colors for `3d' faces are calculated by 1440 Nominally, highlight colors for `3d' faces are calculated by
1441 brightening an object's color by a constant scale factor, but this 1441 brightening an object's color by a constant scale factor, but this
1442 doesn't yield good results for dark colors, so for colors who's 1442 doesn't yield good results for dark colors, so for colors whose
1443 brightness is less than this value (on a scale of 0-255) have to 1443 brightness is less than this value (on a scale of 0-255) have to
1444 use an additional additive factor. 1444 use an additional additive factor.
1445 1445
@@ -1618,8 +1618,9 @@ x_setup_relief_colors (struct glyph_string *s)
1618 1618
1619static void 1619static void
1620w32_draw_relief_rect (struct frame *f, 1620w32_draw_relief_rect (struct frame *f,
1621 int left_x, int top_y, int right_x, int bottom_y, int width, 1621 int left_x, int top_y, int right_x, int bottom_y,
1622 int raised_p, int top_p, int bot_p, int left_p, int right_p, 1622 int width, int raised_p,
1623 int top_p, int bot_p, int left_p, int right_p,
1623 RECT *clip_rect) 1624 RECT *clip_rect)
1624{ 1625{
1625 int i; 1626 int i;
@@ -1880,7 +1881,8 @@ x_draw_image_relief (struct glyph_string *s)
1880 if (s->hl == DRAW_IMAGE_SUNKEN 1881 if (s->hl == DRAW_IMAGE_SUNKEN
1881 || s->hl == DRAW_IMAGE_RAISED) 1882 || s->hl == DRAW_IMAGE_RAISED)
1882 { 1883 {
1883 thick = tool_bar_button_relief >= 0 ? tool_bar_button_relief : DEFAULT_TOOL_BAR_BUTTON_RELIEF; 1884 thick = tool_bar_button_relief >= 0 ? tool_bar_button_relief
1885 : DEFAULT_TOOL_BAR_BUTTON_RELIEF;
1884 raised_p = s->hl == DRAW_IMAGE_RAISED; 1886 raised_p = s->hl == DRAW_IMAGE_RAISED;
1885 } 1887 }
1886 else 1888 else
@@ -3486,7 +3488,7 @@ my_destroy_window (struct frame * f, HWND hwnd)
3486 3488
3487/* Create a scroll bar and return the scroll bar vector for it. W is 3489/* Create a scroll bar and return the scroll bar vector for it. W is
3488 the Emacs window on which to create the scroll bar. TOP, LEFT, 3490 the Emacs window on which to create the scroll bar. TOP, LEFT,
3489 WIDTH and HEIGHT are.the pixel coordinates and dimensions of the 3491 WIDTH and HEIGHT are the pixel coordinates and dimensions of the
3490 scroll bar. */ 3492 scroll bar. */
3491 3493
3492static struct scroll_bar * 3494static struct scroll_bar *
@@ -3872,7 +3874,7 @@ w32_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg,
3872 si.fMask = SIF_POS; 3874 si.fMask = SIF_POS;
3873 si.nPos = y; 3875 si.nPos = y;
3874 /* Remember apparent position (we actually lag behind the real 3876 /* Remember apparent position (we actually lag behind the real
3875 position, so don't set that directly. */ 3877 position, so don't set that directly). */
3876 last_scroll_bar_drag_pos = y; 3878 last_scroll_bar_drag_pos = y;
3877 3879
3878 SetScrollInfo (SCROLL_BAR_W32_WINDOW (bar), SB_CTL, &si, FALSE); 3880 SetScrollInfo (SCROLL_BAR_W32_WINDOW (bar), SB_CTL, &si, FALSE);
@@ -4771,7 +4773,7 @@ w32_read_socket (struct terminal *terminal, int expected,
4771 pending_autoraise_frame = 0; 4773 pending_autoraise_frame = 0;
4772 } 4774 }
4773 4775
4774 /* Check which frames are still visisble, if we have enqueued any user 4776 /* Check which frames are still visible, if we have enqueued any user
4775 events or been notified of events that may affect visibility. We 4777 events or been notified of events that may affect visibility. We
4776 do this here because there doesn't seem to be any direct 4778 do this here because there doesn't seem to be any direct
4777 notification from Windows that the visibility of a window has 4779 notification from Windows that the visibility of a window has
diff --git a/src/xdisp.c b/src/xdisp.c
index 84c75bd91d9..fa4b3c4f9ab 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -899,7 +899,7 @@ static void init_to_row_start (struct it *, struct window *,
899static int init_to_row_end (struct it *, struct window *, 899static int init_to_row_end (struct it *, struct window *,
900 struct glyph_row *); 900 struct glyph_row *);
901static void back_to_previous_line_start (struct it *); 901static void back_to_previous_line_start (struct it *);
902static int forward_to_next_line_start (struct it *, int *); 902static int forward_to_next_line_start (struct it *, int *, struct bidi_it *);
903static struct text_pos string_pos_nchars_ahead (struct text_pos, 903static struct text_pos string_pos_nchars_ahead (struct text_pos,
904 Lisp_Object, EMACS_INT); 904 Lisp_Object, EMACS_INT);
905static struct text_pos string_pos (EMACS_INT, Lisp_Object); 905static struct text_pos string_pos (EMACS_INT, Lisp_Object);
@@ -3134,13 +3134,10 @@ next_overlay_change (EMACS_INT pos)
3134 return endpos; 3134 return endpos;
3135} 3135}
3136 3136
3137/* Record one cached display string position found recently by 3137/* How many characters forward to search for a display property or
3138 compute_display_string_pos. */ 3138 display string. Enough for a screenful of 100 lines x 50
3139static EMACS_INT cached_disp_pos; 3139 characters in a line. */
3140static EMACS_INT cached_prev_pos = -1; 3140#define MAX_DISP_SCAN 5000
3141static struct buffer *cached_disp_buffer;
3142static int cached_disp_modiff;
3143static int cached_disp_overlay_modiff;
3144 3141
3145/* Return the character position of a display string at or after 3142/* Return the character position of a display string at or after
3146 position specified by POSITION. If no display string exists at or 3143 position specified by POSITION. If no display string exists at or
@@ -3152,57 +3149,33 @@ static int cached_disp_overlay_modiff;
3152 on a GUI frame. */ 3149 on a GUI frame. */
3153EMACS_INT 3150EMACS_INT
3154compute_display_string_pos (struct text_pos *position, 3151compute_display_string_pos (struct text_pos *position,
3155 struct bidi_string_data *string, int frame_window_p) 3152 struct bidi_string_data *string,
3153 int frame_window_p, int *disp_prop_p)
3156{ 3154{
3157 /* OBJECT = nil means current buffer. */ 3155 /* OBJECT = nil means current buffer. */
3158 Lisp_Object object = 3156 Lisp_Object object =
3159 (string && STRINGP (string->lstring)) ? string->lstring : Qnil; 3157 (string && STRINGP (string->lstring)) ? string->lstring : Qnil;
3160 Lisp_Object pos, spec; 3158 Lisp_Object pos, spec, limpos;
3161 int string_p = (string && (STRINGP (string->lstring) || string->s)); 3159 int string_p = (string && (STRINGP (string->lstring) || string->s));
3162 EMACS_INT eob = string_p ? string->schars : ZV; 3160 EMACS_INT eob = string_p ? string->schars : ZV;
3163 EMACS_INT begb = string_p ? 0 : BEGV; 3161 EMACS_INT begb = string_p ? 0 : BEGV;
3164 EMACS_INT bufpos, charpos = CHARPOS (*position); 3162 EMACS_INT bufpos, charpos = CHARPOS (*position);
3163 EMACS_INT lim =
3164 (charpos < eob - MAX_DISP_SCAN) ? charpos + MAX_DISP_SCAN : eob;
3165 struct text_pos tpos; 3165 struct text_pos tpos;
3166 struct buffer *b; 3166 struct buffer *b;
3167 3167
3168 *disp_prop_p = 1;
3169
3168 if (charpos >= eob 3170 if (charpos >= eob
3169 /* We don't support display properties whose values are strings 3171 /* We don't support display properties whose values are strings
3170 that have display string properties. */ 3172 that have display string properties. */
3171 || string->from_disp_str 3173 || string->from_disp_str
3172 /* C strings cannot have display properties. */ 3174 /* C strings cannot have display properties. */
3173 || (string->s && !STRINGP (object))) 3175 || (string->s && !STRINGP (object)))
3174 return eob;
3175
3176 /* Check the cached values. */
3177 if (!STRINGP (object))
3178 { 3176 {
3179 if (NILP (object)) 3177 *disp_prop_p = 0;
3180 b = current_buffer; 3178 return eob;
3181 else
3182 b = XBUFFER (object);
3183 if (b == cached_disp_buffer
3184 && BUF_MODIFF (b) == cached_disp_modiff
3185 && BUF_OVERLAY_MODIFF (b) == cached_disp_overlay_modiff
3186 && !b->clip_changed)
3187 {
3188 if (cached_prev_pos >= 0
3189 && cached_prev_pos < charpos && charpos <= cached_disp_pos)
3190 return cached_disp_pos;
3191 /* Handle overstepping either end of the known interval. */
3192 if (charpos > cached_disp_pos)
3193 cached_prev_pos = cached_disp_pos;
3194 else /* charpos <= cached_prev_pos */
3195 cached_prev_pos = max (charpos - 1, 0);
3196 }
3197
3198 /* Record new values in the cache. */
3199 if (b != cached_disp_buffer)
3200 {
3201 cached_disp_buffer = b;
3202 cached_prev_pos = max (charpos - 1, 0);
3203 }
3204 cached_disp_modiff = BUF_MODIFF (b);
3205 cached_disp_overlay_modiff = BUF_OVERLAY_MODIFF (b);
3206 } 3179 }
3207 3180
3208 /* If the character at CHARPOS is where the display string begins, 3181 /* If the character at CHARPOS is where the display string begins,
@@ -3221,22 +3194,24 @@ compute_display_string_pos (struct text_pos *position,
3221 && handle_display_spec (NULL, spec, object, Qnil, &tpos, bufpos, 3194 && handle_display_spec (NULL, spec, object, Qnil, &tpos, bufpos,
3222 frame_window_p)) 3195 frame_window_p))
3223 { 3196 {
3224 if (!STRINGP (object))
3225 cached_disp_pos = charpos;
3226 return charpos; 3197 return charpos;
3227 } 3198 }
3228 3199
3229 /* Look forward for the first character with a `display' property 3200 /* Look forward for the first character with a `display' property
3230 that will replace the underlying text when displayed. */ 3201 that will replace the underlying text when displayed. */
3202 limpos = make_number (lim);
3231 do { 3203 do {
3232 pos = Fnext_single_char_property_change (pos, Qdisplay, object, Qnil); 3204 pos = Fnext_single_char_property_change (pos, Qdisplay, object, limpos);
3233 CHARPOS (tpos) = XFASTINT (pos); 3205 CHARPOS (tpos) = XFASTINT (pos);
3206 if (CHARPOS (tpos) >= lim)
3207 {
3208 *disp_prop_p = 0;
3209 break;
3210 }
3234 if (STRINGP (object)) 3211 if (STRINGP (object))
3235 BYTEPOS (tpos) = string_char_to_byte (object, CHARPOS (tpos)); 3212 BYTEPOS (tpos) = string_char_to_byte (object, CHARPOS (tpos));
3236 else 3213 else
3237 BYTEPOS (tpos) = CHAR_TO_BYTE (CHARPOS (tpos)); 3214 BYTEPOS (tpos) = CHAR_TO_BYTE (CHARPOS (tpos));
3238 if (CHARPOS (tpos) >= eob)
3239 break;
3240 spec = Fget_char_property (pos, Qdisplay, object); 3215 spec = Fget_char_property (pos, Qdisplay, object);
3241 if (!STRINGP (object)) 3216 if (!STRINGP (object))
3242 bufpos = CHARPOS (tpos); 3217 bufpos = CHARPOS (tpos);
@@ -3244,8 +3219,6 @@ compute_display_string_pos (struct text_pos *position,
3244 || !handle_display_spec (NULL, spec, object, Qnil, &tpos, bufpos, 3219 || !handle_display_spec (NULL, spec, object, Qnil, &tpos, bufpos,
3245 frame_window_p)); 3220 frame_window_p));
3246 3221
3247 if (!STRINGP (object))
3248 cached_disp_pos = CHARPOS (tpos);
3249 return CHARPOS (tpos); 3222 return CHARPOS (tpos);
3250} 3223}
3251 3224
@@ -5494,6 +5467,9 @@ back_to_previous_line_start (struct it *it)
5494 continuously over the text). Otherwise, don't change the value 5467 continuously over the text). Otherwise, don't change the value
5495 of *SKIPPED_P. 5468 of *SKIPPED_P.
5496 5469
5470 If BIDI_IT_PREV is non-NULL, store into it the state of the bidi
5471 iterator on the newline, if it was found.
5472
5497 Newlines may come from buffer text, overlay strings, or strings 5473 Newlines may come from buffer text, overlay strings, or strings
5498 displayed via the `display' property. That's the reason we can't 5474 displayed via the `display' property. That's the reason we can't
5499 simply use find_next_newline_no_quit. 5475 simply use find_next_newline_no_quit.
@@ -5506,7 +5482,8 @@ back_to_previous_line_start (struct it *it)
5506 leads to wrong cursor motion. */ 5482 leads to wrong cursor motion. */
5507 5483
5508static int 5484static int
5509forward_to_next_line_start (struct it *it, int *skipped_p) 5485forward_to_next_line_start (struct it *it, int *skipped_p,
5486 struct bidi_it *bidi_it_prev)
5510{ 5487{
5511 EMACS_INT old_selective; 5488 EMACS_INT old_selective;
5512 int newline_found_p, n; 5489 int newline_found_p, n;
@@ -5518,6 +5495,8 @@ forward_to_next_line_start (struct it *it, int *skipped_p)
5518 && it->c == '\n' 5495 && it->c == '\n'
5519 && CHARPOS (it->position) == IT_CHARPOS (*it)) 5496 && CHARPOS (it->position) == IT_CHARPOS (*it))
5520 { 5497 {
5498 if (it->bidi_p && bidi_it_prev)
5499 *bidi_it_prev = it->bidi_it;
5521 set_iterator_to_next (it, 0); 5500 set_iterator_to_next (it, 0);
5522 it->c = 0; 5501 it->c = 0;
5523 return 1; 5502 return 1;
@@ -5539,6 +5518,8 @@ forward_to_next_line_start (struct it *it, int *skipped_p)
5539 if (!get_next_display_element (it)) 5518 if (!get_next_display_element (it))
5540 return 0; 5519 return 0;
5541 newline_found_p = it->what == IT_CHARACTER && it->c == '\n'; 5520 newline_found_p = it->what == IT_CHARACTER && it->c == '\n';
5521 if (newline_found_p && it->bidi_p && bidi_it_prev)
5522 *bidi_it_prev = it->bidi_it;
5542 set_iterator_to_next (it, 0); 5523 set_iterator_to_next (it, 0);
5543 } 5524 }
5544 5525
@@ -5573,6 +5554,8 @@ forward_to_next_line_start (struct it *it, int *skipped_p)
5573 && !newline_found_p) 5554 && !newline_found_p)
5574 { 5555 {
5575 newline_found_p = ITERATOR_AT_END_OF_LINE_P (it); 5556 newline_found_p = ITERATOR_AT_END_OF_LINE_P (it);
5557 if (newline_found_p && it->bidi_p && bidi_it_prev)
5558 *bidi_it_prev = it->bidi_it;
5576 set_iterator_to_next (it, 0); 5559 set_iterator_to_next (it, 0);
5577 } 5560 }
5578 } 5561 }
@@ -5696,8 +5679,9 @@ static void
5696reseat_at_next_visible_line_start (struct it *it, int on_newline_p) 5679reseat_at_next_visible_line_start (struct it *it, int on_newline_p)
5697{ 5680{
5698 int newline_found_p, skipped_p = 0; 5681 int newline_found_p, skipped_p = 0;
5682 struct bidi_it bidi_it_prev;
5699 5683
5700 newline_found_p = forward_to_next_line_start (it, &skipped_p); 5684 newline_found_p = forward_to_next_line_start (it, &skipped_p, &bidi_it_prev);
5701 5685
5702 /* Skip over lines that are invisible because they are indented 5686 /* Skip over lines that are invisible because they are indented
5703 more than the value of IT->selective. */ 5687 more than the value of IT->selective. */
@@ -5708,7 +5692,8 @@ reseat_at_next_visible_line_start (struct it *it, int on_newline_p)
5708 { 5692 {
5709 xassert (IT_BYTEPOS (*it) == BEGV 5693 xassert (IT_BYTEPOS (*it) == BEGV
5710 || FETCH_BYTE (IT_BYTEPOS (*it) - 1) == '\n'); 5694 || FETCH_BYTE (IT_BYTEPOS (*it) - 1) == '\n');
5711 newline_found_p = forward_to_next_line_start (it, &skipped_p); 5695 newline_found_p =
5696 forward_to_next_line_start (it, &skipped_p, &bidi_it_prev);
5712 } 5697 }
5713 5698
5714 /* Position on the newline if that's what's requested. */ 5699 /* Position on the newline if that's what's requested. */
@@ -5724,11 +5709,14 @@ reseat_at_next_visible_line_start (struct it *it, int on_newline_p)
5724 --IT_STRING_BYTEPOS (*it); 5709 --IT_STRING_BYTEPOS (*it);
5725 } 5710 }
5726 else 5711 else
5727 /* Setting this flag will cause 5712 {
5728 bidi_move_to_visually_next not to advance, but 5713 /* We need to restore the bidi iterator to the state
5729 instead deliver the current character (newline), 5714 it had on the newline, and resync the IT's
5730 which is what the ON_NEWLINE_P flag wants. */ 5715 position with that. */
5731 it->bidi_it.first_elt = 1; 5716 it->bidi_it = bidi_it_prev;
5717 IT_STRING_CHARPOS (*it) = it->bidi_it.charpos;
5718 IT_STRING_BYTEPOS (*it) = it->bidi_it.bytepos;
5719 }
5732 } 5720 }
5733 } 5721 }
5734 else if (IT_CHARPOS (*it) > BEGV) 5722 else if (IT_CHARPOS (*it) > BEGV)
@@ -5738,9 +5726,14 @@ reseat_at_next_visible_line_start (struct it *it, int on_newline_p)
5738 --IT_CHARPOS (*it); 5726 --IT_CHARPOS (*it);
5739 --IT_BYTEPOS (*it); 5727 --IT_BYTEPOS (*it);
5740 } 5728 }
5741 /* With bidi iteration, the call to `reseat' will cause 5729 else
5742 bidi_move_to_visually_next deliver the current character, 5730 {
5743 the newline, instead of advancing. */ 5731 /* We need to restore the bidi iterator to the state it
5732 had on the newline and resync IT with that. */
5733 it->bidi_it = bidi_it_prev;
5734 IT_CHARPOS (*it) = it->bidi_it.charpos;
5735 IT_BYTEPOS (*it) = it->bidi_it.bytepos;
5736 }
5744 reseat (it, it->current.pos, 0); 5737 reseat (it, it->current.pos, 0);
5745 } 5738 }
5746 } 5739 }