diff options
| author | Paul Eggert | 2011-08-02 22:05:38 -0700 |
|---|---|---|
| committer | Paul Eggert | 2011-08-02 22:05:38 -0700 |
| commit | 9a70f03d70e44db2ec9c6d2952cb8a1deae15000 (patch) | |
| tree | c0efd5c0a208640c0a883f4566df1b40caa3aaad | |
| parent | 29c8a348c5c9f326af54a3d30f69cde98fe300bb (diff) | |
| download | emacs-9a70f03d70e44db2ec9c6d2952cb8a1deae15000.tar.gz emacs-9a70f03d70e44db2ec9c6d2952cb8a1deae15000.zip | |
Merge from trunk.
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. |
| 10242 | HAVE_RSVG=no | 10242 | HAVE_RSVG=no |
| 10243 | if test "${HAVE_X11}" = "yes" || test "${NS_IMPL_GNUSTEP}" = "yes"; then | 10243 | if 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 @@ | |||
| 1 | 2011-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 | |||
| 1 | 2011-07-28 Eli Zaretskii <eliz@gnu.org> | 6 | 2011-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 | |||
| 125 | Nonetheless, relative file name arguments are still interpreted based | 125 | Nonetheless, relative file name arguments are still interpreted based |
| 126 | on the same default directory. | 126 | on 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 | ||
| 130 | manual. | ||
| 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}). | |||
| 491 | Move to the next item in the minibuffer history | 495 | Move 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} |
| 494 | Move to an earlier item in the minibuffer history that | 498 | Move to an earlier item in the minibuffer history that |
| 495 | matches @var{regexp} (@code{previous-matching-history-element}). | 499 | matches @var{regexp} (@code{previous-matching-history-element}). |
| 496 | @item M-s @var{regexp} @key{RET} | 500 | @item M-s @var{regexp} @key{RET} |
| 497 | Move to a later item in the minibuffer history that matches | 501 | Move 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 @@ | |||
| 1 | 2011-07-30 Michael Albinus <michael.albinus@gmx.de> | ||
| 2 | |||
| 3 | Sync with Tramp 2.2.2. | ||
| 4 | |||
| 5 | * trampver.texi: Update release number. | ||
| 6 | |||
| 1 | 2011-07-28 Bastien Guerry <bzg@gnu.org> | 7 | 2011-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 @@ | |||
| 1 | 2011-07-30 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * grammars: New directory. | ||
| 4 | |||
| 1 | 2011-07-28 Andreas Schwab <schwab@linux-m68k.org> | 5 | 2011-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 @@ | |||
| 1 | This directory contains grammar files in Bison and Wisent, used to | ||
| 2 | generate the parser data in the lisp/semantic/bovine/ and | ||
| 3 | lisp/semantic/wisent/ directories. You can run the parser generators | ||
| 4 | with | ||
| 5 | |||
| 6 | emacs -batch --no-site-file -l bovine-grammar.el -f semantic-mode \ | ||
| 7 | -f semantic-grammar-batch-build-packages *.by | ||
| 8 | |||
| 9 | emacs -batch --no-site-file -l wisent-grammar.el -f semantic-mode \ | ||
| 10 | -f semantic-grammar-batch-build-packages *.wy | ||
| 11 | |||
| 12 | The output files were subsequently edited by hand to fix copyright | ||
| 13 | headers, variable names (to follow library name conventions), and | ||
| 14 | feature names. These changes do not alter the code logic, and can be | ||
| 15 | viewed by diffing to the files in lisp/semantic/bovine/ and | ||
| 16 | lisp/semantic/wisent/. | ||
| 17 | |||
| 18 | Currently, the parser files in lisp/ are not generated directly from | ||
| 19 | these grammar files when making Emacs. This state of affairs, and the | ||
| 20 | contents 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. | ||
| 41 | Return the form to parse from within a nonterminal between BOUNDS. | ||
| 42 | NONTERM 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. | ||
| 48 | Return the form to recursively parse the area between BOUNDS. | ||
| 49 | NONTERM 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. | ||
| 55 | Return the form to create a generic semantic tag. | ||
| 56 | See the function `semantic-tag' for the meaning of arguments NAME, | ||
| 57 | CLASS 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. | ||
| 62 | Return the form to create a semantic tag of class variable. | ||
| 63 | See the function `semantic-tag-new-variable' for the meaning of | ||
| 64 | arguments 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. | ||
| 69 | Return the form to create a semantic tag of class function. | ||
| 70 | See the function `semantic-tag-new-function' for the meaning of | ||
| 71 | arguments 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. | ||
| 76 | Return the form to create a semantic tag of class type. | ||
| 77 | See the function `semantic-tag-new-type' for the meaning of arguments | ||
| 78 | NAME, 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. | ||
| 83 | Return the form to create a semantic tag of class include. | ||
| 84 | See the function `semantic-tag-new-include' for the meaning of | ||
| 85 | arguments 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. | ||
| 90 | Return the form to create a semantic tag of class package. | ||
| 91 | See the function `semantic-tag-new-package' for the meaning of | ||
| 92 | arguments 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. | ||
| 97 | Return the form to create a semantic tag of class code. | ||
| 98 | See the function `semantic-tag-new-code' for the meaning of arguments | ||
| 99 | NAME, 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. | ||
| 104 | Return the form to create a semantic tag of class alias. | ||
| 105 | See the function `semantic-tag-new-alias' for the meaning of arguments | ||
| 106 | NAME, 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. | ||
| 114 | FORM is a list in which we are substituting. | ||
| 115 | Argument QUOTEMODE is non-nil if we are in backquote mode. | ||
| 116 | When non-nil, optional argument INPLACE indicates that FORM is being | ||
| 117 | expanded 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. | ||
| 227 | QUOTEMODE 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. | ||
| 256 | The 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 | |||
| 263 | Where each NONTERMINAL-SYMBOL is an artificial symbol which can appear | ||
| 264 | in any child state. As a starting place, one of the NONTERMINAL-SYMBOLS | ||
| 265 | must be `bovine-toplevel'. | ||
| 266 | |||
| 267 | A MATCH-LIST is a list of possible matches of the form: | ||
| 268 | |||
| 269 | ( STATE-LIST1 | ||
| 270 | STATE-LIST2 | ||
| 271 | ... | ||
| 272 | STATE-LISTN ) | ||
| 273 | |||
| 274 | where STATE-LIST is of the form: | ||
| 275 | ( TYPE1 [ \"VALUE1\" ] TYPE2 [ \"VALUE2\" ] ... LAMBDA ) | ||
| 276 | |||
| 277 | where TYPE is one of the returned types of the token stream. | ||
| 278 | VALUE is a value, or range of values to match against. For | ||
| 279 | example, a SYMBOL might need to match \"foo\". Some TYPES will not | ||
| 280 | have matching criteria. | ||
| 281 | |||
| 282 | LAMBDA is a lambda expression which is evaled with the text of the | ||
| 283 | type when it is found. It is passed the list of all buffer text | ||
| 284 | elements found since the last lambda expression. It should return a | ||
| 285 | semantic element (see below.) | ||
| 286 | |||
| 287 | For consistency between languages, try to use common return values | ||
| 288 | from your parser. Please reference the chapter \"Writing Parsers\" in | ||
| 289 | the \"Language Support Developer's Guide -\" in the semantic texinfo | ||
| 290 | manual." | ||
| 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. | ||
| 408 | Menu 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 | |||
| 202 | declaration | ||
| 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 | |||
| 214 | codeblock | ||
| 215 | : define | ||
| 216 | | codeblock-var-or-fun | ||
| 217 | | type ;; type is less likely to be used here. | ||
| 218 | | using | ||
| 219 | ; | ||
| 220 | |||
| 221 | extern-c-contents | ||
| 222 | : open-paren | ||
| 223 | ( nil ) | ||
| 224 | | declaration | ||
| 225 | | close-paren | ||
| 226 | ( nil ) | ||
| 227 | ; | ||
| 228 | |||
| 229 | extern-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 | |||
| 246 | macro | ||
| 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. | ||
| 256 | define | ||
| 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 | |||
| 279 | unionparts | ||
| 280 | : semantic-list | ||
| 281 | (EXPANDFULL $1 classsubparts) | ||
| 282 | ; | ||
| 283 | |||
| 284 | opt-symbol | ||
| 285 | : symbol | ||
| 286 | | ;;EMPTY | ||
| 287 | ; | ||
| 288 | |||
| 289 | ;; @todo - support 'friend' construct. | ||
| 290 | classsubparts | ||
| 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 | |||
| 310 | opt-class-parents | ||
| 311 | : COLON class-parents opt-template-specifier | ||
| 312 | ( $2 ) | ||
| 313 | | ;;EMPTY | ||
| 314 | ( ) | ||
| 315 | ; | ||
| 316 | |||
| 317 | one-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 | |||
| 324 | class-parents | ||
| 325 | : one-class-parent COMA class-parents | ||
| 326 | ( ,(cons ,$1 $3 ) ) | ||
| 327 | | one-class-parent | ||
| 328 | ( $1 ) | ||
| 329 | ; | ||
| 330 | |||
| 331 | opt-class-declmods | ||
| 332 | : class-declmods opt-class-declmods | ||
| 333 | ( nil ) | ||
| 334 | | ;;EMPTY | ||
| 335 | ; | ||
| 336 | |||
| 337 | class-declmods | ||
| 338 | : VIRTUAL | ||
| 339 | ; | ||
| 340 | |||
| 341 | class-protection | ||
| 342 | : PUBLIC | ||
| 343 | | PRIVATE | ||
| 344 | | PROTECTED | ||
| 345 | ; | ||
| 346 | |||
| 347 | opt-class-protection | ||
| 348 | : class-protection | ||
| 349 | ( ,$1 ) | ||
| 350 | | ;;EMPTY - Same as private | ||
| 351 | ( "unspecified" ) | ||
| 352 | ; | ||
| 353 | |||
| 354 | namespaceparts | ||
| 355 | : semantic-list | ||
| 356 | (EXPANDFULL $1 namespacesubparts) | ||
| 357 | ; | ||
| 358 | |||
| 359 | namespacesubparts | ||
| 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 | |||
| 376 | enumparts | ||
| 377 | : semantic-list | ||
| 378 | (EXPANDFULL $1 enumsubparts) | ||
| 379 | ; | ||
| 380 | |||
| 381 | enumsubparts | ||
| 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 | |||
| 392 | opt-name | ||
| 393 | : symbol | ||
| 394 | | ;;EMPTY | ||
| 395 | ( "" ) | ||
| 396 | ; | ||
| 397 | |||
| 398 | typesimple | ||
| 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 | |||
| 427 | typedef-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! | ||
| 436 | typedefname | ||
| 437 | : opt-stars symbol opt-bits opt-array | ||
| 438 | ( $1 $2 ) | ||
| 439 | ; | ||
| 440 | |||
| 441 | struct-or-class | ||
| 442 | : STRUCT | ||
| 443 | | CLASS | ||
| 444 | ; | ||
| 445 | |||
| 446 | type | ||
| 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 | |||
| 465 | using | ||
| 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. | ||
| 472 | usingname | ||
| 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 | |||
| 479 | template | ||
| 480 | : TEMPLATE template-specifier opt-friend template-definition | ||
| 481 | ( ,(semantic-c-reconstitute-template $4 ,$2) ) | ||
| 482 | ; | ||
| 483 | |||
| 484 | opt-friend | ||
| 485 | : FRIEND | ||
| 486 | | ;;EMPTY | ||
| 487 | ; | ||
| 488 | |||
| 489 | opt-template-specifier | ||
| 490 | : template-specifier | ||
| 491 | ( ,$1 ) | ||
| 492 | | ;;EMPTY | ||
| 493 | ( ) | ||
| 494 | ; | ||
| 495 | |||
| 496 | template-specifier | ||
| 497 | : LESS template-specifier-types GREATER | ||
| 498 | ( ,$2 ) | ||
| 499 | ; | ||
| 500 | |||
| 501 | template-specifier-types | ||
| 502 | : template-var template-specifier-type-list | ||
| 503 | ( ,(cons ,$1 ,$2 ) ) | ||
| 504 | | ;;EMPTY | ||
| 505 | ; | ||
| 506 | |||
| 507 | template-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 | |||
| 528 | template-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 | |||
| 555 | opt-template-equal | ||
| 556 | : EQUAL symbol LESS template-specifier-types GREATER | ||
| 557 | ( $2 ) | ||
| 558 | | EQUAL symbol | ||
| 559 | ( $2 ) | ||
| 560 | | ;;EMPTY | ||
| 561 | ( ) | ||
| 562 | ; | ||
| 563 | |||
| 564 | template-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 | |||
| 585 | template-definition | ||
| 586 | : type | ||
| 587 | ( ,$1 ) | ||
| 588 | | var-or-fun | ||
| 589 | ( ,$1 ) | ||
| 590 | ; | ||
| 591 | |||
| 592 | opt-stars | ||
| 593 | : STAR opt-starmod opt-stars | ||
| 594 | ( (1+ (car $3)) ) | ||
| 595 | | ;;EMPTY | ||
| 596 | ( 0 ) | ||
| 597 | ; | ||
| 598 | |||
| 599 | opt-starmod | ||
| 600 | : STARMOD opt-starmod | ||
| 601 | ( ,(cons (,car ,$1) $2) ) | ||
| 602 | | ;;EMPTY | ||
| 603 | () | ||
| 604 | ; | ||
| 605 | |||
| 606 | STARMOD | ||
| 607 | : CONST | ||
| 608 | ; | ||
| 609 | |||
| 610 | declmods | ||
| 611 | : DECLMOD declmods | ||
| 612 | ( ,(cons ,(car ,$1) $2 ) ) | ||
| 613 | | DECLMOD | ||
| 614 | ( ,$1 ) | ||
| 615 | | ;;EMPTY | ||
| 616 | () | ||
| 617 | ; | ||
| 618 | |||
| 619 | DECLMOD | ||
| 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 | |||
| 639 | metadeclmod | ||
| 640 | : METADECLMOD | ||
| 641 | () | ||
| 642 | | ;;EMPTY | ||
| 643 | () | ||
| 644 | ; | ||
| 645 | |||
| 646 | CVDECLMOD | ||
| 647 | : CONST | ||
| 648 | | VOLATILE | ||
| 649 | ; | ||
| 650 | |||
| 651 | cv-declmods | ||
| 652 | : CVDECLMOD cv-declmods | ||
| 653 | ( ,(cons ,(car ,$1) $2 ) ) | ||
| 654 | | CVDECLMOD | ||
| 655 | ( ,$1 ) | ||
| 656 | | ;;EMPTY | ||
| 657 | () | ||
| 658 | ; | ||
| 659 | |||
| 660 | METADECLMOD | ||
| 661 | : VIRTUAL | ||
| 662 | | MUTABLE | ||
| 663 | ; | ||
| 664 | |||
| 665 | ;; C++: A type can be modified into a reference by "&" | ||
| 666 | opt-ref | ||
| 667 | : AMPERSAND | ||
| 668 | ( 1 ) | ||
| 669 | | ;;EMPTY | ||
| 670 | ( 0 ) | ||
| 671 | ; | ||
| 672 | |||
| 673 | typeformbase | ||
| 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 | |||
| 695 | signedmod | ||
| 696 | : UNSIGNED | ||
| 697 | | SIGNED | ||
| 698 | ; | ||
| 699 | |||
| 700 | ;; Klaus Berndl: builtintype-types was builtintype | ||
| 701 | builtintype-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 | |||
| 723 | builtintype | ||
| 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... | ||
| 742 | codeblock-var-or-fun | ||
| 743 | : declmods typeformbase declmods | ||
| 744 | opt-ref var-or-func-decl | ||
| 745 | ( ,(semantic-c-reconstitute-token ,$5 $1 $2 ) ) | ||
| 746 | ; | ||
| 747 | |||
| 748 | var-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 | |||
| 762 | var-or-func-decl | ||
| 763 | : func-decl | ||
| 764 | ( ,$1 ) | ||
| 765 | | var-decl | ||
| 766 | ( ,$1 ) | ||
| 767 | ; | ||
| 768 | |||
| 769 | func-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 | |||
| 798 | var-decl | ||
| 799 | : varnamelist SEMICOLON | ||
| 800 | ( $1 'variable ) | ||
| 801 | ; | ||
| 802 | |||
| 803 | opt-under-p | ||
| 804 | : UNDERP | ||
| 805 | ( nil ) | ||
| 806 | | UNDERUNDERP | ||
| 807 | ( nil ) | ||
| 808 | | ;;EMPTY | ||
| 809 | ; | ||
| 810 | |||
| 811 | ;; Klaus Berndl: symbol -> namespace-symbol | ||
| 812 | opt-initializers | ||
| 813 | : COLON namespace-symbol semantic-list opt-initializers | ||
| 814 | | COMA namespace-symbol semantic-list opt-initializers | ||
| 815 | | ;;EMPTY | ||
| 816 | ; | ||
| 817 | |||
| 818 | opt-post-fcn-modifiers | ||
| 819 | : post-fcn-modifiers opt-post-fcn-modifiers | ||
| 820 | ( ,(cons ,$1 $2) ) | ||
| 821 | | ;;EMPTY | ||
| 822 | ( nil ) | ||
| 823 | ; | ||
| 824 | |||
| 825 | post-fcn-modifiers | ||
| 826 | : REENTRANT | ||
| 827 | | CONST | ||
| 828 | ; | ||
| 829 | |||
| 830 | opt-throw | ||
| 831 | : THROW semantic-list | ||
| 832 | ( EXPAND $2 throw-exception-list ) | ||
| 833 | | ;;EMPTY | ||
| 834 | ; | ||
| 835 | |||
| 836 | ;; Is this true? I don't actually know. | ||
| 837 | throw-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 | |||
| 850 | opt-bits | ||
| 851 | : COLON number | ||
| 852 | ( $2 ) | ||
| 853 | | ;;EMPTY | ||
| 854 | ( nil ) | ||
| 855 | ; | ||
| 856 | |||
| 857 | opt-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 | |||
| 866 | opt-assign | ||
| 867 | : EQUAL expression | ||
| 868 | ( $2 ) | ||
| 869 | | ;;EMPTY | ||
| 870 | ( nil ) | ||
| 871 | ; | ||
| 872 | |||
| 873 | opt-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. | ||
| 881 | varname | ||
| 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! | ||
| 888 | variablearg | ||
| 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 | |||
| 897 | variablearg-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 | |||
| 906 | varname-opt-initializer | ||
| 907 | : semantic-list | ||
| 908 | | opt-assign | ||
| 909 | | ;; EMPTY | ||
| 910 | ; | ||
| 911 | |||
| 912 | varnamelist | ||
| 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 | ||
| 926 | namespace-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. | ||
| 935 | namespace-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 | |||
| 948 | namespace-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:: | ||
| 962 | opt-class | ||
| 963 | : namespace-opt-class | ||
| 964 | ( ,$1 ) | ||
| 965 | | ;;EMPTY | ||
| 966 | ( nil ) | ||
| 967 | ; | ||
| 968 | |||
| 969 | opt-destructor | ||
| 970 | : TILDE | ||
| 971 | ( t ) | ||
| 972 | | ;;EMPTY | ||
| 973 | ( nil ) | ||
| 974 | ; | ||
| 975 | |||
| 976 | arg-list | ||
| 977 | : PAREN_BLCK knr-arguments | ||
| 978 | ( ,$2 ) | ||
| 979 | | PAREN_BLCK | ||
| 980 | (EXPANDFULL $1 arg-sub-list) | ||
| 981 | | VOID_BLCK | ||
| 982 | ( ) | ||
| 983 | ; | ||
| 984 | |||
| 985 | knr-varnamelist | ||
| 986 | : varname COMA knr-varnamelist | ||
| 987 | ( ,(cons $1 $3) ) | ||
| 988 | | varname | ||
| 989 | ( $1 ) | ||
| 990 | ; | ||
| 991 | |||
| 992 | |||
| 993 | knr-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 | |||
| 1001 | knr-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 | |||
| 1008 | arg-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 | |||
| 1021 | operatorsym | ||
| 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 | |||
| 1089 | functionname | ||
| 1090 | : OPERATOR operatorsym | ||
| 1091 | ( ,$2 ) | ||
| 1092 | | semantic-list | ||
| 1093 | ( EXPAND $1 function-pointer ) | ||
| 1094 | | symbol | ||
| 1095 | ( $1 ) | ||
| 1096 | ; | ||
| 1097 | |||
| 1098 | function-pointer | ||
| 1099 | : LPAREN STAR symbol RPAREN | ||
| 1100 | ( (concat "*" $3) ) | ||
| 1101 | ; | ||
| 1102 | |||
| 1103 | fun-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 | |||
| 1115 | fun-try-end | ||
| 1116 | : TRY opt-initializers BRACE_BLCK fun-try-several-catches | ||
| 1117 | ( nil ) | ||
| 1118 | ; | ||
| 1119 | |||
| 1120 | fun-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 | |||
| 1129 | type-cast | ||
| 1130 | : semantic-list | ||
| 1131 | ( EXPAND $1 type-cast-list ) | ||
| 1132 | ; | ||
| 1133 | |||
| 1134 | type-cast-list | ||
| 1135 | : open-paren typeformbase close-paren | ||
| 1136 | ; | ||
| 1137 | |||
| 1138 | opt-stuff-after-symbol | ||
| 1139 | : PAREN_BLCK | ||
| 1140 | | BRACK_BLCK | ||
| 1141 | | ;; EMPTY | ||
| 1142 | ; | ||
| 1143 | |||
| 1144 | multi-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 | |||
| 1150 | string-seq | ||
| 1151 | : string string-seq | ||
| 1152 | ( (concat $1 (car $2)) ) | ||
| 1153 | | string | ||
| 1154 | ( $1 ) | ||
| 1155 | ; | ||
| 1156 | |||
| 1157 | expr-start | ||
| 1158 | : MINUS | ||
| 1159 | | PLUS | ||
| 1160 | | STAR | ||
| 1161 | | AMPERSAND | ||
| 1162 | ; | ||
| 1163 | |||
| 1164 | expr-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. | ||
| 1178 | expression | ||
| 1179 | : unaryexpression expr-binop unaryexpression | ||
| 1180 | ( (identity start) (identity end) ) | ||
| 1181 | | unaryexpression | ||
| 1182 | ( (identity start) (identity end) ) | ||
| 1183 | ; | ||
| 1184 | |||
| 1185 | unaryexpression | ||
| 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 | |||
| 375 | compilation_unit | ||
| 376 | : package_declaration | ||
| 377 | | import_declaration | ||
| 378 | | type_declaration | ||
| 379 | ; | ||
| 380 | |||
| 381 | ;;; Package statement token | ||
| 382 | ;; ("NAME" package DETAIL "DOCSTRING") | ||
| 383 | package_declaration | ||
| 384 | : PACKAGE qualified_name SEMICOLON | ||
| 385 | (PACKAGE-TAG $2 nil) | ||
| 386 | ; | ||
| 387 | |||
| 388 | ;;; Include file token | ||
| 389 | ;; ("FILE" include SYSTEM "DOCSTRING") | ||
| 390 | import_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 | |||
| 397 | type_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") | ||
| 406 | class_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 | |||
| 411 | superc_opt | ||
| 412 | : ;;EMPTY | ||
| 413 | | EXTENDS qualified_name | ||
| 414 | (identity $2) | ||
| 415 | ; | ||
| 416 | |||
| 417 | interfaces_opt | ||
| 418 | : ;;EMPTY | ||
| 419 | | IMPLEMENTS qualified_name_list | ||
| 420 | (nreverse $2) | ||
| 421 | ; | ||
| 422 | |||
| 423 | class_body | ||
| 424 | : BRACE_BLOCK | ||
| 425 | (EXPANDFULL $1 class_member_declaration) | ||
| 426 | ; | ||
| 427 | |||
| 428 | class_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") | ||
| 446 | interface_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 | |||
| 451 | extends_interfaces_opt | ||
| 452 | : ;;EMPTY | ||
| 453 | | EXTENDS qualified_name_list | ||
| 454 | (identity $2) | ||
| 455 | ; | ||
| 456 | |||
| 457 | interface_body | ||
| 458 | : BRACE_BLOCK | ||
| 459 | (EXPANDFULL $1 interface_member_declaration) | ||
| 460 | ; | ||
| 461 | |||
| 462 | interface_member_declaration | ||
| 463 | : LBRACE | ||
| 464 | () | ||
| 465 | | RBRACE | ||
| 466 | () | ||
| 467 | | interface_declaration | ||
| 468 | | class_declaration | ||
| 469 | | method_declaration | ||
| 470 | | field_declaration | ||
| 471 | ; | ||
| 472 | |||
| 473 | static_initializer | ||
| 474 | : STATIC block | ||
| 475 | ; | ||
| 476 | |||
| 477 | ;;; Function token | ||
| 478 | ;; ("NAME" function "TYPE" ( ARG-LIST ) EXTRA-SPEC "DOCSTRING") | ||
| 479 | constructor_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 | |||
| 487 | constructor_declarator | ||
| 488 | : IDENTIFIER formal_parameter_list | ||
| 489 | (cons $1 $2) | ||
| 490 | ; | ||
| 491 | |||
| 492 | constructor_body | ||
| 493 | : block | ||
| 494 | ; | ||
| 495 | |||
| 496 | ;;; Function token | ||
| 497 | ;; ("NAME" function "TYPE" ( ARG-LIST ) EXTRA-SPEC "DOCSTRING") | ||
| 498 | method_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 | |||
| 505 | method_declarator | ||
| 506 | : IDENTIFIER formal_parameter_list dims_opt | ||
| 507 | (cons (concat $1 $3) $2) | ||
| 508 | ; | ||
| 509 | |||
| 510 | throwsc_opt | ||
| 511 | : ;;EMPTY | ||
| 512 | | THROWS qualified_name_list | ||
| 513 | (nreverse $2) | ||
| 514 | ; | ||
| 515 | |||
| 516 | qualified_name_list | ||
| 517 | : qualified_name_list COMMA qualified_name | ||
| 518 | (cons $3 $1) | ||
| 519 | | qualified_name | ||
| 520 | (list $1) | ||
| 521 | ; | ||
| 522 | |||
| 523 | method_body | ||
| 524 | : SEMICOLON | ||
| 525 | | block | ||
| 526 | ; | ||
| 527 | |||
| 528 | ;; Just eat {...} block! | ||
| 529 | block | ||
| 530 | : BRACE_BLOCK | ||
| 531 | ; | ||
| 532 | |||
| 533 | formal_parameter_list | ||
| 534 | : PAREN_BLOCK | ||
| 535 | (EXPANDFULL $1 formal_parameters) | ||
| 536 | ; | ||
| 537 | |||
| 538 | formal_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") | ||
| 549 | formal_parameter | ||
| 550 | : formal_parameter_modifier_opt type variable_declarator_id | ||
| 551 | (VARIABLE-TAG $3 $2 nil :typemodifiers $1) | ||
| 552 | ; | ||
| 553 | |||
| 554 | formal_parameter_modifier_opt | ||
| 555 | : ;;EMPTY | ||
| 556 | | FINAL | ||
| 557 | (list $1) | ||
| 558 | ; | ||
| 559 | |||
| 560 | ;;; Variable token | ||
| 561 | ;; ("NAME" variable "TYPE" DEFAULT-VALUE EXTRA-SPEC "DOCSTRING") | ||
| 562 | field_declaration | ||
| 563 | : modifiers_opt type variable_declarators SEMICOLON | ||
| 564 | (VARIABLE-TAG $3 $2 nil :typemodifiers $1) | ||
| 565 | ; | ||
| 566 | |||
| 567 | variable_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 | |||
| 578 | variable_declarator | ||
| 579 | : variable_declarator_id EQ variable_initializer | ||
| 580 | (cons $1 $region) | ||
| 581 | | variable_declarator_id | ||
| 582 | (cons $1 $region) | ||
| 583 | ; | ||
| 584 | |||
| 585 | variable_declarator_id | ||
| 586 | : IDENTIFIER dims_opt | ||
| 587 | (concat $1 $2) | ||
| 588 | ; | ||
| 589 | |||
| 590 | variable_initializer | ||
| 591 | : expression | ||
| 592 | ; | ||
| 593 | |||
| 594 | ;; Just eat expression! | ||
| 595 | expression | ||
| 596 | : expression term | ||
| 597 | | term | ||
| 598 | ; | ||
| 599 | |||
| 600 | term | ||
| 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 | |||
| 614 | literal | ||
| 615 | ;; : NULL_LITERAL | ||
| 616 | ;; | BOOLEAN_LITERAL | ||
| 617 | : STRING_LITERAL | ||
| 618 | | NUMBER_LITERAL | ||
| 619 | ; | ||
| 620 | |||
| 621 | operator | ||
| 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 | |||
| 663 | primitive_type | ||
| 664 | : BOOLEAN | ||
| 665 | | CHAR | ||
| 666 | | LONG | ||
| 667 | | INT | ||
| 668 | | SHORT | ||
| 669 | | BYTE | ||
| 670 | | DOUBLE | ||
| 671 | | FLOAT | ||
| 672 | ; | ||
| 673 | |||
| 674 | modifiers_opt | ||
| 675 | : ;;EMPTY | ||
| 676 | | modifiers | ||
| 677 | (nreverse $1) | ||
| 678 | ; | ||
| 679 | |||
| 680 | modifiers | ||
| 681 | : modifiers modifier | ||
| 682 | (cons $2 $1) | ||
| 683 | | modifier | ||
| 684 | (list $1) | ||
| 685 | ; | ||
| 686 | |||
| 687 | modifier | ||
| 688 | : STRICTFP | ||
| 689 | | VOLATILE | ||
| 690 | | TRANSIENT | ||
| 691 | | SYNCHRONIZED | ||
| 692 | | NATIVE | ||
| 693 | | FINAL | ||
| 694 | | ABSTRACT | ||
| 695 | | STATIC | ||
| 696 | | PRIVATE | ||
| 697 | | PROTECTED | ||
| 698 | | PUBLIC | ||
| 699 | ; | ||
| 700 | |||
| 701 | type | ||
| 702 | : qualified_name dims_opt | ||
| 703 | (concat $1 $2) | ||
| 704 | | primitive_type dims_opt | ||
| 705 | (concat $1 $2) | ||
| 706 | ; | ||
| 707 | |||
| 708 | qualified_name | ||
| 709 | : qualified_name DOT IDENTIFIER | ||
| 710 | (concat $1 $2 $3) | ||
| 711 | | IDENTIFIER | ||
| 712 | ; | ||
| 713 | |||
| 714 | dims_opt | ||
| 715 | : ;;EMPTY | ||
| 716 | (identity "") | ||
| 717 | | dims | ||
| 718 | ; | ||
| 719 | |||
| 720 | dims | ||
| 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. | ||
| 731 | It 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 | |||
| 255 | Program : SourceElement | ||
| 256 | ; | ||
| 257 | |||
| 258 | SourceElement : Statement | ||
| 259 | | FunctionDeclaration | ||
| 260 | ; | ||
| 261 | |||
| 262 | Statement : Block | ||
| 263 | | VariableStatement | ||
| 264 | | EmptyStatement | ||
| 265 | | ExpressionStatement | ||
| 266 | | IfStatement | ||
| 267 | | IterationExpression | ||
| 268 | | ContinueStatement | ||
| 269 | | BreakStatement | ||
| 270 | | ReturnStatement | ||
| 271 | | WithStatement | ||
| 272 | ; | ||
| 273 | |||
| 274 | FunctionDeclaration : FUNCTION VARIABLE FormalParameterListBlock Block | ||
| 275 | (FUNCTION-TAG $2 nil $3) | ||
| 276 | ; | ||
| 277 | |||
| 278 | FormalParameterListBlock : PAREN_BLOCK | ||
| 279 | (EXPANDFULL $1 FormalParameterList) | ||
| 280 | ; | ||
| 281 | |||
| 282 | FormalParameterList: OPEN_PARENTHESIS | ||
| 283 | () | ||
| 284 | | VARIABLE | ||
| 285 | (VARIABLE-TAG $1 nil nil) | ||
| 286 | | CLOSE_PARENTHESIS | ||
| 287 | () | ||
| 288 | | COMMA | ||
| 289 | () | ||
| 290 | ; | ||
| 291 | |||
| 292 | StatementList : Statement | ||
| 293 | | StatementList Statement | ||
| 294 | ; | ||
| 295 | |||
| 296 | Block : BRACE_BLOCK | ||
| 297 | ;; If you want to parse the body of the function | ||
| 298 | ;; ( EXPANDFULL $1 BlockExpand ) | ||
| 299 | ; | ||
| 300 | |||
| 301 | BlockExpand: START_BLOCK StatementList END_BLOCK | ||
| 302 | | START_BLOCK END_BLOCK | ||
| 303 | ; | ||
| 304 | |||
| 305 | VariableStatement : VAR VariableDeclarationList SEMICOLON | ||
| 306 | (VARIABLE-TAG $2 nil nil) | ||
| 307 | ; | ||
| 308 | |||
| 309 | VariableDeclarationList : VariableDeclaration | ||
| 310 | (list $1) | ||
| 311 | | VariableDeclarationList COMMA VariableDeclaration | ||
| 312 | (append $1 (list $3)) | ||
| 313 | ; | ||
| 314 | |||
| 315 | VariableDeclaration : VARIABLE | ||
| 316 | (append (list $1 nil) $region) | ||
| 317 | | VARIABLE Initializer | ||
| 318 | (append (cons $1 $2) $region) | ||
| 319 | ; | ||
| 320 | |||
| 321 | Initializer : ASSIGN_SYMBOL AssignmentExpression | ||
| 322 | (list $2) | ||
| 323 | ; | ||
| 324 | |||
| 325 | EmptyStatement : SEMICOLON | ||
| 326 | ; | ||
| 327 | |||
| 328 | ExpressionStatement : Expression SEMICOLON | ||
| 329 | ; | ||
| 330 | |||
| 331 | IfStatement : 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 | |||
| 337 | IterationExpression : 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 | |||
| 346 | ContinueStatement : CONTINUE SEMICOLON | ||
| 347 | ; | ||
| 348 | |||
| 349 | ;;JAVE break needs labels | ||
| 350 | BreakStatement : BREAK SEMICOLON | ||
| 351 | ;; | BREAK identifier SEMICOLON | ||
| 352 | ; | ||
| 353 | |||
| 354 | ReturnStatement : RETURN Expression SEMICOLON | ||
| 355 | | RETURN SEMICOLON | ||
| 356 | ; | ||
| 357 | |||
| 358 | WithStatement : WITH OPEN_PARENTHESIS Expression CLOSE_PARENTHESIS Statement | ||
| 359 | ; | ||
| 360 | |||
| 361 | OptionalInitializer : Initializer | ||
| 362 | | | ||
| 363 | ; | ||
| 364 | |||
| 365 | PrimaryExpression : THIS | ||
| 366 | | VARIABLE | ||
| 367 | | NUMBER | ||
| 368 | | STRING | ||
| 369 | | NULL_TOKEN | ||
| 370 | | TRUE | ||
| 371 | | FALSE | ||
| 372 | | OPEN_PARENTHESIS Expression CLOSE_PARENTHESIS | ||
| 373 | ; | ||
| 374 | |||
| 375 | MemberExpression : PrimaryExpression | ||
| 376 | | MemberExpression OPEN_SQ_BRACKETS Expression CLOSE_SQ_BRACKETS | ||
| 377 | | MemberExpression DOT VARIABLE | ||
| 378 | | NEW MemberExpression Arguments | ||
| 379 | ; | ||
| 380 | |||
| 381 | NewExpression : MemberExpression | ||
| 382 | | NEW NewExpression | ||
| 383 | ; | ||
| 384 | |||
| 385 | CallExpression : MemberExpression Arguments | ||
| 386 | | CallExpression Arguments | ||
| 387 | | CallExpression OPEN_SQ_BRACKETS Expression CLOSE_SQ_BRACKETS | ||
| 388 | | CallExpression DOT VARIABLE | ||
| 389 | ; | ||
| 390 | |||
| 391 | Arguments : OPEN_PARENTHESIS CLOSE_PARENTHESIS | ||
| 392 | | OPEN_PARENTHESIS ArgumentList CLOSE_PARENTHESIS | ||
| 393 | ; | ||
| 394 | |||
| 395 | ArgumentList : AssignmentExpression | ||
| 396 | | ArgumentList COMMA AssignmentExpression | ||
| 397 | ; | ||
| 398 | |||
| 399 | LeftHandSideExpression : NewExpression | ||
| 400 | | CallExpression | ||
| 401 | ; | ||
| 402 | |||
| 403 | PostfixExpression : LeftHandSideExpression | ||
| 404 | | LeftHandSideExpression INCREMENT | ||
| 405 | | LeftHandSideExpression DECREMENT | ||
| 406 | ; | ||
| 407 | |||
| 408 | UnaryExpression : 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 | |||
| 420 | MultiplicativeExpression : UnaryExpression | ||
| 421 | | MultiplicativeExpression MULTIPLY UnaryExpression | ||
| 422 | | MultiplicativeExpression DIV UnaryExpression | ||
| 423 | | MultiplicativeExpression MOD UnaryExpression | ||
| 424 | ; | ||
| 425 | |||
| 426 | AdditiveExpression : MultiplicativeExpression | ||
| 427 | | AdditiveExpression PLUS MultiplicativeExpression | ||
| 428 | | AdditiveExpression MINUS MultiplicativeExpression | ||
| 429 | ; | ||
| 430 | |||
| 431 | ShiftExpression : AdditiveExpression | ||
| 432 | | ShiftExpression BITWISE_SHIFT_LEFT AdditiveExpression | ||
| 433 | | ShiftExpression BITWISE_SHIFT_RIGHT AdditiveExpression | ||
| 434 | | ShiftExpression BITWISE_SHIFT_RIGHT_ZERO_FILL AdditiveExpression | ||
| 435 | ; | ||
| 436 | |||
| 437 | RelationalExpression : ShiftExpression | ||
| 438 | | RelationalExpression LESS_THAN ShiftExpression | ||
| 439 | | RelationalExpression GREATER_THAN ShiftExpression | ||
| 440 | | RelationalExpression LS_EQUAL ShiftExpression | ||
| 441 | | RelationalExpression GT_EQUAL ShiftExpression | ||
| 442 | ; | ||
| 443 | |||
| 444 | EqualityExpression : RelationalExpression | ||
| 445 | | EqualityExpression EQUALS RelationalExpression | ||
| 446 | | EqualityExpression NOT_EQUAL RelationalExpression | ||
| 447 | ; | ||
| 448 | |||
| 449 | BitwiseANDExpression : EqualityExpression | ||
| 450 | | BitwiseANDExpression BITWISE_AND EqualityExpression | ||
| 451 | ; | ||
| 452 | |||
| 453 | BitwiseXORExpression : BitwiseANDExpression | ||
| 454 | | BitwiseXORExpression BITWISE_EXCLUSIVE_OR BitwiseANDExpression | ||
| 455 | ; | ||
| 456 | |||
| 457 | BitwiseORExpression : BitwiseXORExpression | ||
| 458 | | BitwiseORExpression BITWISE_OR BitwiseXORExpression | ||
| 459 | ; | ||
| 460 | |||
| 461 | LogicalANDExpression : BitwiseORExpression | ||
| 462 | | LogicalANDExpression LOGICAL_AND BitwiseORExpression | ||
| 463 | ; | ||
| 464 | |||
| 465 | LogicalORExpression : LogicalANDExpression | ||
| 466 | | LogicalORExpression LOGICAL_OR LogicalANDExpression | ||
| 467 | ; | ||
| 468 | |||
| 469 | ConditionalExpression : LogicalORExpression | ||
| 470 | | LogicalORExpression QUERY AssignmentExpression COLON AssignmentExpression | ||
| 471 | ; | ||
| 472 | |||
| 473 | AssignmentExpression : ConditionalExpression | ||
| 474 | | LeftHandSideExpression AssignmentOperator AssignmentExpression %prec LOWER_THAN_CLOSE_PARENTHESIS | ||
| 475 | ; | ||
| 476 | |||
| 477 | AssignmentOperator : 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 | |||
| 491 | Expression : AssignmentExpression | ||
| 492 | | Expression COMMA AssignmentExpression | ||
| 493 | ; | ||
| 494 | |||
| 495 | OptionalExpression : 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 | |||
| 56 | Makefile : 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 | |||
| 69 | variable: symbol opt-whitespace equals opt-whitespace element-list | ||
| 70 | (VARIABLE-TAG ,$1 nil ,$5) | ||
| 71 | ; | ||
| 72 | |||
| 73 | rule: targets opt-whitespace colons opt-whitespace element-list commands | ||
| 74 | (FUNCTION-TAG ,$1 nil ,$5) | ||
| 75 | ; | ||
| 76 | |||
| 77 | targets: target opt-whitespace targets | ||
| 78 | ( (car ,$1) (car ,@$3) ) | ||
| 79 | | target | ||
| 80 | ( (car ,$1) ) | ||
| 81 | ; | ||
| 82 | |||
| 83 | target: sub-target target | ||
| 84 | ( (concat (car ,$1) (car ,@$3) ) ) | ||
| 85 | | sub-target | ||
| 86 | ( (car ,$1) ) | ||
| 87 | ; | ||
| 88 | |||
| 89 | sub-target: symbol | ||
| 90 | | string | ||
| 91 | | varref | ||
| 92 | ; | ||
| 93 | |||
| 94 | conditional: 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 | |||
| 110 | expression : semantic-list | ||
| 111 | ; | ||
| 112 | |||
| 113 | include: INCLUDE some-whitespace element-list | ||
| 114 | (INCLUDE-TAG ,$3 nil) | ||
| 115 | ; | ||
| 116 | |||
| 117 | equals: COLON EQUAL () | ||
| 118 | | PLUS EQUAL () | ||
| 119 | | EQUAL () | ||
| 120 | ; | ||
| 121 | |||
| 122 | colons: COLON COLON () | ||
| 123 | | COLON () | ||
| 124 | ; | ||
| 125 | |||
| 126 | element-list: elements newline | ||
| 127 | ( ,@$1 ) | ||
| 128 | ; | ||
| 129 | |||
| 130 | elements: element some-whitespace elements | ||
| 131 | ( ,@$1 ,@$3 ) | ||
| 132 | | element | ||
| 133 | ( ,@$1 ) | ||
| 134 | | ;;EMPTY | ||
| 135 | ; | ||
| 136 | |||
| 137 | element: sub-element element | ||
| 138 | ( (concat (car ,$1) (car ,$2)) ) | ||
| 139 | | ;;EMPTY | ||
| 140 | ; | ||
| 141 | |||
| 142 | sub-element: symbol | ||
| 143 | | string | ||
| 144 | | punctuation | ||
| 145 | | semantic-list | ||
| 146 | ( (buffer-substring-no-properties | ||
| 147 | (identity start) (identity end)) ) | ||
| 148 | ; | ||
| 149 | |||
| 150 | varref: DOLLAR semantic-list | ||
| 151 | ( (buffer-substring-no-properties (identity start) (identity end)) ) | ||
| 152 | ; | ||
| 153 | |||
| 154 | commands: bol shell-command newline commands | ||
| 155 | ( ,$1 ,@$2 ) | ||
| 156 | | ;;EMPTY | ||
| 157 | ( ) | ||
| 158 | ; | ||
| 159 | |||
| 160 | opt-whitespace : some-whitespace ( nil ) | ||
| 161 | | ;;EMPTY | ||
| 162 | ; | ||
| 163 | |||
| 164 | some-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 | ||
| 321 | goal | ||
| 322 | : NEWLINE | ||
| 323 | | simple_stmt | ||
| 324 | | compound_stmt | ||
| 325 | ; | ||
| 326 | |||
| 327 | ;;;**************************************************************************** | ||
| 328 | ;;;@ simple_stmt | ||
| 329 | ;;;**************************************************************************** | ||
| 330 | |||
| 331 | ;; simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE | ||
| 332 | simple_stmt | ||
| 333 | : small_stmt_list semicolon_opt NEWLINE | ||
| 334 | ; | ||
| 335 | |||
| 336 | ;; small_stmt (';' small_stmt)* | ||
| 337 | small_stmt_list | ||
| 338 | : small_stmt | ||
| 339 | | small_stmt_list SEMICOLON small_stmt | ||
| 340 | ; | ||
| 341 | |||
| 342 | small_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)+ [','] ] | ||
| 360 | print_stmt | ||
| 361 | : PRINT print_stmt_trailer | ||
| 362 | (CODE-TAG $1 nil) | ||
| 363 | ; | ||
| 364 | |||
| 365 | ;; [ test (',' test)* [','] ] | '>>' test [ (',' test)+ [','] ] | ||
| 366 | print_stmt_trailer | ||
| 367 | : test_list_opt | ||
| 368 | () | ||
| 369 | | GTGT test trailing_test_list_with_opt_comma_opt | ||
| 370 | () | ||
| 371 | ; | ||
| 372 | |||
| 373 | ;; [ (',' test)+ [','] ] | ||
| 374 | trailing_test_list_with_opt_comma_opt | ||
| 375 | : ;;EMPTY | ||
| 376 | | trailing_test_list comma_opt | ||
| 377 | () | ||
| 378 | ; | ||
| 379 | |||
| 380 | ;; (',' test)+ | ||
| 381 | trailing_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)*) | ||
| 393 | expr_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)*) | ||
| 404 | expr_stmt_trailer | ||
| 405 | : augassign testlist | ||
| 406 | | eq_testlist_zom | ||
| 407 | ; | ||
| 408 | |||
| 409 | ;; Could be EMPTY! | ||
| 410 | ;; ('=' testlist)* | ||
| 411 | eq_testlist_zom | ||
| 412 | : ;;EMPTY | ||
| 413 | | eq_testlist_zom ASSIGN testlist | ||
| 414 | (identity $3) | ||
| 415 | ; | ||
| 416 | |||
| 417 | ;; augassign: '+=' | '-=' | '*=' | '/=' | '%=' | '&=' | '|=' | '^=' | ||
| 418 | ;; | '<<=' | '>>=' | '**=' | '//=' | ||
| 419 | augassign | ||
| 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 | ||
| 430 | del_stmt | ||
| 431 | : DEL exprlist | ||
| 432 | (CODE-TAG $1 nil) | ||
| 433 | ; | ||
| 434 | |||
| 435 | ;; exprlist: expr (',' expr)* [','] | ||
| 436 | exprlist | ||
| 437 | : expr_list comma_opt | ||
| 438 | () | ||
| 439 | ; | ||
| 440 | |||
| 441 | ;; expr (',' expr)* | ||
| 442 | expr_list | ||
| 443 | : expr | ||
| 444 | () | ||
| 445 | | expr_list COMMA expr | ||
| 446 | () | ||
| 447 | ; | ||
| 448 | |||
| 449 | ;;;============================================================================ | ||
| 450 | ;;;@@ pass_stmt | ||
| 451 | ;;;============================================================================ | ||
| 452 | |||
| 453 | ;; pass_stmt: 'pass' | ||
| 454 | pass_stmt | ||
| 455 | : PASS | ||
| 456 | (CODE-TAG $1 nil) | ||
| 457 | ; | ||
| 458 | |||
| 459 | ;;;============================================================================ | ||
| 460 | ;;;@@ flow_stmt | ||
| 461 | ;;;============================================================================ | ||
| 462 | |||
| 463 | flow_stmt | ||
| 464 | : break_stmt | ||
| 465 | | continue_stmt | ||
| 466 | | return_stmt | ||
| 467 | | raise_stmt | ||
| 468 | | yield_stmt | ||
| 469 | ; | ||
| 470 | |||
| 471 | ;; break_stmt: 'break' | ||
| 472 | break_stmt | ||
| 473 | : BREAK | ||
| 474 | (CODE-TAG $1 nil) | ||
| 475 | ; | ||
| 476 | |||
| 477 | ;; continue_stmt: 'continue' | ||
| 478 | continue_stmt | ||
| 479 | : CONTINUE | ||
| 480 | (CODE-TAG $1 nil) | ||
| 481 | ; | ||
| 482 | |||
| 483 | ;; return_stmt: 'return' [testlist] | ||
| 484 | return_stmt | ||
| 485 | : RETURN testlist_opt | ||
| 486 | (CODE-TAG $1 nil) | ||
| 487 | ; | ||
| 488 | |||
| 489 | ;; [testlist] | ||
| 490 | testlist_opt | ||
| 491 | : ;;EMPTY | ||
| 492 | | testlist | ||
| 493 | () | ||
| 494 | ; | ||
| 495 | |||
| 496 | ;; yield_stmt: 'yield' testlist | ||
| 497 | yield_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]]] | ||
| 505 | raise_stmt | ||
| 506 | : RAISE zero_one_two_or_three_tests | ||
| 507 | (CODE-TAG $1 nil) | ||
| 508 | ; | ||
| 509 | |||
| 510 | ;; [test [',' test [',' test]]] | ||
| 511 | zero_one_two_or_three_tests | ||
| 512 | : ;;EMPTY | ||
| 513 | | test zero_one_or_two_tests | ||
| 514 | () | ||
| 515 | ; | ||
| 516 | |||
| 517 | ;; [',' test [',' test]] | ||
| 518 | zero_one_or_two_tests | ||
| 519 | : ;;EMPTY | ||
| 520 | | COMMA test zero_or_one_comma_test | ||
| 521 | () | ||
| 522 | ; | ||
| 523 | |||
| 524 | ;; [',' test] | ||
| 525 | zero_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)*) | ||
| 538 | import_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)* | ||
| 546 | dotted_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)*) | ||
| 552 | star_or_import_as_name_list | ||
| 553 | : MULT | ||
| 554 | () | ||
| 555 | | import_as_name_list | ||
| 556 | () | ||
| 557 | ; | ||
| 558 | |||
| 559 | ;; import_as_name (',' import_as_name)* | ||
| 560 | import_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] | ||
| 568 | import_as_name | ||
| 569 | : NAME as_name_opt | ||
| 570 | () | ||
| 571 | ; | ||
| 572 | |||
| 573 | ;; dotted_as_name: dotted_name [AS NAME] | ||
| 574 | dotted_as_name | ||
| 575 | : dotted_name as_name_opt | ||
| 576 | ; | ||
| 577 | |||
| 578 | ;; [AS NAME] | ||
| 579 | as_name_opt | ||
| 580 | : ;;EMPTY | ||
| 581 | | AS NAME | ||
| 582 | (identity $2) | ||
| 583 | ; | ||
| 584 | |||
| 585 | ;; dotted_name: NAME ('.' NAME)* | ||
| 586 | dotted_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)* | ||
| 597 | global_stmt | ||
| 598 | : GLOBAL comma_sep_name_list | ||
| 599 | (CODE-TAG $1 nil) | ||
| 600 | ; | ||
| 601 | |||
| 602 | ;; NAME (',' NAME)* | ||
| 603 | comma_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]] | ||
| 613 | exec_stmt | ||
| 614 | : EXEC expr exec_trailer | ||
| 615 | (CODE-TAG $1 nil) | ||
| 616 | ; | ||
| 617 | |||
| 618 | ;; ['in' test [',' test]] | ||
| 619 | exec_trailer | ||
| 620 | : ;;EMPTY | ||
| 621 | | IN test comma_test_opt | ||
| 622 | () | ||
| 623 | ; | ||
| 624 | |||
| 625 | ;; [',' test] | ||
| 626 | comma_test_opt | ||
| 627 | : ;;EMPTY | ||
| 628 | | COMMA test | ||
| 629 | () | ||
| 630 | ; | ||
| 631 | |||
| 632 | ;;;============================================================================ | ||
| 633 | ;;;@@ assert_stmt | ||
| 634 | ;;;============================================================================ | ||
| 635 | |||
| 636 | ;; assert_stmt: 'assert' test [',' test] | ||
| 637 | assert_stmt | ||
| 638 | : ASSERT test comma_test_opt | ||
| 639 | (CODE-TAG $1 nil) | ||
| 640 | ; | ||
| 641 | |||
| 642 | ;;;**************************************************************************** | ||
| 643 | ;;;@ compound_stmt | ||
| 644 | ;;;**************************************************************************** | ||
| 645 | |||
| 646 | compound_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] | ||
| 660 | if_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)* | ||
| 666 | elif_suite_pair_list | ||
| 667 | : ;;EMPTY | ||
| 668 | | elif_suite_pair_list ELIF test COLON suite | ||
| 669 | () | ||
| 670 | ; | ||
| 671 | |||
| 672 | ;; ['else' ':' suite] | ||
| 673 | else_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 | ||
| 681 | suite | ||
| 682 | : simple_stmt | ||
| 683 | (list $1) | ||
| 684 | | NEWLINE indented_block | ||
| 685 | (progn $2) | ||
| 686 | ; | ||
| 687 | |||
| 688 | indented_block | ||
| 689 | : INDENT_BLOCK | ||
| 690 | (EXPANDFULL $1 indented_block_body) | ||
| 691 | ; | ||
| 692 | |||
| 693 | indented_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] | ||
| 707 | while_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] | ||
| 717 | for_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) | ||
| 728 | try_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)+ | ||
| 736 | except_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]] | ||
| 745 | except_clause | ||
| 746 | : EXCEPT zero_one_or_two_test | ||
| 747 | () | ||
| 748 | ; | ||
| 749 | |||
| 750 | ;; [test [',' test]] | ||
| 751 | zero_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 | ||
| 762 | funcdef | ||
| 763 | : DEF NAME function_parameter_list COLON suite | ||
| 764 | (FUNCTION-TAG $2 nil $3) | ||
| 765 | ; | ||
| 766 | |||
| 767 | function_parameter_list | ||
| 768 | : PAREN_BLOCK | ||
| 769 | (let ((wisent-python-EXPANDING-block t)) | ||
| 770 | (EXPANDFULL $1 function_parameters)) | ||
| 771 | ; | ||
| 772 | |||
| 773 | ;; parameters: '(' [varargslist] ')' | ||
| 774 | function_parameters | ||
| 775 | : LPAREN | ||
| 776 | () | ||
| 777 | | RPAREN | ||
| 778 | () | ||
| 779 | | function_parameter COMMA | ||
| 780 | | function_parameter RPAREN | ||
| 781 | ; | ||
| 782 | |||
| 783 | function_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 | ||
| 798 | class_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 ')'] | ||
| 807 | paren_class_list_opt | ||
| 808 | : ;;EMPTY | ||
| 809 | | paren_class_list | ||
| 810 | ; | ||
| 811 | |||
| 812 | paren_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] ')' | ||
| 819 | paren_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". | ||
| 836 | paren_class | ||
| 837 | : dotted_name | ||
| 838 | ; | ||
| 839 | |||
| 840 | ;;;**************************************************************************** | ||
| 841 | ;;;@ test | ||
| 842 | ;;;**************************************************************************** | ||
| 843 | |||
| 844 | ;; test: and_test ('or' and_test)* | lambdef | ||
| 845 | test | ||
| 846 | : test_test | ||
| 847 | | lambdef | ||
| 848 | ; | ||
| 849 | |||
| 850 | ;; and_test ('or' and_test)* | ||
| 851 | test_test | ||
| 852 | : and_test | ||
| 853 | | test_test OR and_test | ||
| 854 | () | ||
| 855 | ; | ||
| 856 | |||
| 857 | ;; and_test: not_test ('and' not_test)* | ||
| 858 | and_test | ||
| 859 | : not_test | ||
| 860 | | and_test AND not_test | ||
| 861 | () | ||
| 862 | ; | ||
| 863 | |||
| 864 | ;; not_test: 'not' not_test | comparison | ||
| 865 | not_test | ||
| 866 | : NOT not_test | ||
| 867 | () | ||
| 868 | | comparison | ||
| 869 | ; | ||
| 870 | |||
| 871 | ;; comparison: expr (comp_op expr)* | ||
| 872 | comparison | ||
| 873 | : expr | ||
| 874 | | comparison comp_op expr | ||
| 875 | () | ||
| 876 | ; | ||
| 877 | |||
| 878 | ;; comp_op: '<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is' 'not' | ||
| 879 | comp_op | ||
| 880 | : LT | GT | EQ | GE | LE | LTGT | NE | IN | NOT IN | IS | IS NOT | ||
| 881 | ; | ||
| 882 | |||
| 883 | ;; expr: xor_expr ('|' xor_expr)* | ||
| 884 | expr | ||
| 885 | : xor_expr | ||
| 886 | | expr BAR xor_expr | ||
| 887 | () | ||
| 888 | ; | ||
| 889 | |||
| 890 | ;; xor_expr: and_expr ('^' and_expr)* | ||
| 891 | xor_expr | ||
| 892 | : and_expr | ||
| 893 | | xor_expr HAT and_expr | ||
| 894 | () | ||
| 895 | ; | ||
| 896 | |||
| 897 | ;; and_expr: shift_expr ('&' shift_expr)* | ||
| 898 | and_expr | ||
| 899 | : shift_expr | ||
| 900 | | and_expr AMP shift_expr | ||
| 901 | () | ||
| 902 | ; | ||
| 903 | |||
| 904 | ;; shift_expr: arith_expr (('<<'|'>>') arith_expr)* | ||
| 905 | shift_expr | ||
| 906 | : arith_expr | ||
| 907 | | shift_expr shift_expr_operators arith_expr | ||
| 908 | () | ||
| 909 | ; | ||
| 910 | |||
| 911 | ;; ('<<'|'>>') | ||
| 912 | shift_expr_operators | ||
| 913 | : LTLT | ||
| 914 | | GTGT | ||
| 915 | ; | ||
| 916 | |||
| 917 | ;; arith_expr: term (('+'|'-') term)* | ||
| 918 | arith_expr | ||
| 919 | : term | ||
| 920 | | arith_expr plus_or_minus term | ||
| 921 | () | ||
| 922 | ; | ||
| 923 | |||
| 924 | ;; ('+'|'-') | ||
| 925 | plus_or_minus | ||
| 926 | : PLUS | ||
| 927 | | MINUS | ||
| 928 | ; | ||
| 929 | |||
| 930 | ;; term: factor (('*'|'/'|'%'|'//') factor)* | ||
| 931 | term | ||
| 932 | : factor | ||
| 933 | | term term_operator factor | ||
| 934 | () | ||
| 935 | ; | ||
| 936 | |||
| 937 | term_operator | ||
| 938 | : MULT | ||
| 939 | | DIV | ||
| 940 | | MOD | ||
| 941 | | DIVDIV | ||
| 942 | ; | ||
| 943 | |||
| 944 | ;; factor: ('+'|'-'|'~') factor | power | ||
| 945 | factor | ||
| 946 | : prefix_operators factor | ||
| 947 | () | ||
| 948 | | power | ||
| 949 | ; | ||
| 950 | |||
| 951 | ;; ('+'|'-'|'~') | ||
| 952 | prefix_operators | ||
| 953 | : PLUS | ||
| 954 | | MINUS | ||
| 955 | | TILDE | ||
| 956 | ; | ||
| 957 | |||
| 958 | ;; power: atom trailer* ('**' factor)* | ||
| 959 | power | ||
| 960 | : atom trailer_zom exponent_zom | ||
| 961 | (concat $1 | ||
| 962 | (if $2 (concat " " $2 " ") "") | ||
| 963 | (if $3 (concat " " $3) "") | ||
| 964 | ) | ||
| 965 | ; | ||
| 966 | |||
| 967 | trailer_zom | ||
| 968 | : ;;EMPTY | ||
| 969 | | trailer_zom trailer | ||
| 970 | () | ||
| 971 | ; | ||
| 972 | |||
| 973 | exponent_zom | ||
| 974 | : ;;EMPTY | ||
| 975 | | exponent_zom EXPONENT factor | ||
| 976 | () | ||
| 977 | ; | ||
| 978 | |||
| 979 | ;; trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME | ||
| 980 | trailer | ||
| 981 | : PAREN_BLOCK | ||
| 982 | () | ||
| 983 | | BRACK_BLOCK | ||
| 984 | () | ||
| 985 | | PERIOD NAME | ||
| 986 | () | ||
| 987 | ; | ||
| 988 | |||
| 989 | ;; atom: '(' [testlist] ')' | '[' [listmaker] ']' | '{' [dictmaker] '}' | ||
| 990 | ;; | '`' testlist '`' | NAME | NUMBER | STRING+ | ||
| 991 | atom | ||
| 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 | |||
| 1005 | test_list_opt | ||
| 1006 | : ;;EMPTY | ||
| 1007 | | testlist | ||
| 1008 | () | ||
| 1009 | ; | ||
| 1010 | |||
| 1011 | ;; testlist: test (',' test)* [','] | ||
| 1012 | testlist | ||
| 1013 | : comma_sep_test_list comma_opt | ||
| 1014 | ; | ||
| 1015 | |||
| 1016 | ;; test (',' test)* | ||
| 1017 | comma_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. | ||
| 1025 | one_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 | ||
| 1036 | lambdef | ||
| 1037 | : LAMBDA varargslist_opt COLON test | ||
| 1038 | (format "%s %s" $1 (or $2 "")) | ||
| 1039 | ; | ||
| 1040 | |||
| 1041 | ;; [varargslist] | ||
| 1042 | varargslist_opt | ||
| 1043 | : ;;EMPTY | ||
| 1044 | | varargslist | ||
| 1045 | ; | ||
| 1046 | |||
| 1047 | ;; varargslist: (fpdef ['=' test] ',')* ('*' NAME [',' '**' NAME] | '**' NAME) | ||
| 1048 | ;; | fpdef ['=' test] (',' fpdef ['=' test])* [','] | ||
| 1049 | varargslist | ||
| 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) | ||
| 1056 | rest_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] | ||
| 1064 | multmult_name_opt | ||
| 1065 | : ;;EMPTY | ||
| 1066 | | COMMA EXPONENT NAME | ||
| 1067 | (VARIABLE-TAG $3 nil nil) | ||
| 1068 | ; | ||
| 1069 | |||
| 1070 | fpdef_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])* | ||
| 1077 | fpdef_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] | ||
| 1084 | fpdef_opt_test | ||
| 1085 | : fpdef eq_test_opt | ||
| 1086 | ; | ||
| 1087 | |||
| 1088 | ;; fpdef: NAME | '(' fplist ')' | ||
| 1089 | fpdef | ||
| 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)* [','] | ||
| 1099 | fplist | ||
| 1100 | : fpdef_list comma_opt | ||
| 1101 | ; | ||
| 1102 | |||
| 1103 | ;; fpdef (',' fpdef)* | ||
| 1104 | fpdef_list | ||
| 1105 | : fpdef | ||
| 1106 | | fpdef_list COMMA fpdef | ||
| 1107 | ; | ||
| 1108 | |||
| 1109 | ;; ['=' test] | ||
| 1110 | eq_test_opt | ||
| 1111 | : ;;EMPTY | ||
| 1112 | | ASSIGN test | ||
| 1113 | () | ||
| 1114 | ; | ||
| 1115 | |||
| 1116 | ;;;**************************************************************************** | ||
| 1117 | ;;;@ Misc | ||
| 1118 | ;;;**************************************************************************** | ||
| 1119 | |||
| 1120 | ;; [','] | ||
| 1121 | comma_opt | ||
| 1122 | : ;;EMPTY | ||
| 1123 | | COMMA | ||
| 1124 | ; | ||
| 1125 | |||
| 1126 | ;; [';'] | ||
| 1127 | semicolon_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 | |||
| 38 | scheme : semantic-list | ||
| 39 | (EXPAND $1 scheme-list) | ||
| 40 | ; | ||
| 41 | |||
| 42 | scheme-list : OPENPAREN scheme-in-list CLOSEPAREN | ||
| 43 | ( ,$2 ) | ||
| 44 | ; | ||
| 45 | |||
| 46 | scheme-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 | |||
| 58 | name-args: semantic-list | ||
| 59 | (EXPAND $1 name-arg-expand) | ||
| 60 | ; | ||
| 61 | |||
| 62 | name-arg-expand : open-paren name-arg-expand | ||
| 63 | ( ,$2 ) | ||
| 64 | | symbol name-arg-expand | ||
| 65 | ( ,(cons $1 ,$2) ) | ||
| 66 | | ;; EMPTY | ||
| 67 | ( ) | ||
| 68 | ; | ||
| 69 | |||
| 70 | opt-doc : string | ||
| 71 | | ;; EMPTY | ||
| 72 | ; | ||
| 73 | |||
| 74 | sequence : expression sequence | ||
| 75 | | expression | ||
| 76 | ; | ||
| 77 | |||
| 78 | expression : 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. | ||
| 38 | Return 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. | ||
| 45 | Return the form to parse from within a nonterminal. | ||
| 46 | SYMB is a $I placeholder symbol that gives the bounds of the area to | ||
| 47 | parse. | ||
| 48 | NONTERM 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. | ||
| 60 | Return the form to recursively parse an area. | ||
| 61 | SYMB is a $I placeholder symbol that gives the bounds of the area. | ||
| 62 | NONTERM 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. | ||
| 74 | Return the form to create a generic semantic tag. | ||
| 75 | See the function `semantic-tag' for the meaning of arguments NAME, | ||
| 76 | CLASS 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. | ||
| 82 | Return the form to create a semantic tag of class variable. | ||
| 83 | See the function `semantic-tag-new-variable' for the meaning of | ||
| 84 | arguments 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. | ||
| 90 | Return the form to create a semantic tag of class function. | ||
| 91 | See the function `semantic-tag-new-function' for the meaning of | ||
| 92 | arguments 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. | ||
| 98 | Return the form to create a semantic tag of class type. | ||
| 99 | See the function `semantic-tag-new-type' for the meaning of arguments | ||
| 100 | NAME, 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. | ||
| 106 | Return the form to create a semantic tag of class include. | ||
| 107 | See the function `semantic-tag-new-include' for the meaning of | ||
| 108 | arguments 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. | ||
| 114 | Return the form to create a semantic tag of class package. | ||
| 115 | See the function `semantic-tag-new-package' for the meaning of | ||
| 116 | arguments 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. | ||
| 122 | Return the form to create a semantic tag of class code. | ||
| 123 | See the function `semantic-tag-new-code' for the meaning of arguments | ||
| 124 | NAME, 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. | ||
| 130 | Return the form to create a semantic tag of class alias. | ||
| 131 | See the function `semantic-tag-new-alias' for the meaning of arguments | ||
| 132 | NAME, 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. | ||
| 138 | Return the form to produce a list of cooked tags from raw form of | ||
| 139 | Semantic 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. | ||
| 144 | Return the form to update the abstract syntax tree AST with NODES. | ||
| 145 | See 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. | ||
| 150 | Return the form to update the abstract syntax tree AST with NODES. | ||
| 151 | See 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. | ||
| 156 | Return the form to get, from the abstract syntax tree AST, the value | ||
| 157 | of NODE. | ||
| 158 | See 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. | ||
| 163 | Return the form to get, from the abstract syntax tree AST, the first | ||
| 164 | value of NODE. | ||
| 165 | See 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. | ||
| 170 | Return the form to get, from the abstract syntax tree AST, the value | ||
| 171 | of NODE as a string. | ||
| 172 | See 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. | ||
| 177 | Return the form to merge the abstract syntax trees AST1 and AST2. | ||
| 178 | See 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. | ||
| 183 | Return the form to skip a parenthesized block. | ||
| 184 | Optional argument SYMB is a $I placeholder symbol that gives the | ||
| 185 | bounds of the block to skip. By default, skip the block at `$1'. | ||
| 186 | See 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. | ||
| 195 | Return the form to skip the lookahead token. | ||
| 196 | See 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. | ||
| 210 | Keep 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. | ||
| 229 | Return 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. | ||
| 324 | Menu 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 @@ | |||
| 1 | 2011-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 | |||
| 6 | 2011-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 | |||
| 34 | 2011-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 | |||
| 42 | 2011-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 | |||
| 47 | 2011-08-01 Deniz Dogan <deniz@dogan.se> | ||
| 48 | |||
| 49 | * net/rcirc.el (rcirc-handler-333): Clarify docstring. | ||
| 50 | |||
| 51 | 2011-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 | |||
| 57 | 2011-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 | |||
| 1 | 2011-07-28 Jose E. Marchesi <jemarch@gnu.org> | 64 | 2011-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 | ||
| 6 | 2011-07-27 Michael Albinus <michael.albinus@gmx.de> | 69 | 2011-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 | ||
| 43 | 2011-07-25 Deniz Dogan <deniz@dogan.se> | 106 | 2011-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 | ||
| 78 | 2011-07-20 Sam Steingold <sds@gnu.org> | 140 | 2011-07-20 Sam Steingold <sds@gnu.org> |
| 79 | 141 | ||
| @@ -105,8 +167,8 @@ | |||
| 105 | 2011-07-19 Martin Rudalics <rudalics@gmx.at> | 167 | 2011-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 | ||
| 138 | 2011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org> | 200 | 2011-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 | ||
| 160 | 2011-07-16 Martin Rudalics <rudalics@gmx.at> | 222 | 2011-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 | ||
| 168 | 2011-07-15 Glenn Morris <rgm@gnu.org> | 229 | 2011-07-15 Glenn Morris <rgm@gnu.org> |
| 169 | 230 | ||
| @@ -177,8 +238,8 @@ | |||
| 177 | 238 | ||
| 178 | 2011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org> | 239 | 2011-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 | ||
| 183 | 2011-07-15 Glenn Morris <rgm@gnu.org> | 244 | 2011-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 | ||
| 278 | 2011-07-14 Martin Rudalics <rudalics@gmx.at> | 339 | 2011-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 | ||
| 283 | 2011-07-14 Eli Zaretskii <eliz@gnu.org> | 344 | 2011-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 | ||
| 304 | 2011-07-14 Juanma Barranquero <lekktu@gmail.com> | 365 | 2011-07-14 Juanma Barranquero <lekktu@gmail.com> |
| 305 | 366 | ||
| @@ -317,8 +378,8 @@ | |||
| 317 | 378 | ||
| 318 | 2011-07-13 Chong Yidong <cyd@stupidchicken.com> | 379 | 2011-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 | ||
| 344 | 2011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org> | 405 | 2011-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 | ||
| 349 | 2011-07-13 Glenn Morris <rgm@gnu.org> | 410 | 2011-07-13 Glenn Morris <rgm@gnu.org> |
| 350 | 411 | ||
| @@ -438,15 +499,15 @@ | |||
| 438 | 499 | ||
| 439 | 2011-07-12 Roland Winkler <winkler@gnu.org> | 500 | 2011-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 | ||
| 445 | 2011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org> | 506 | 2011-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 | ||
| 460 | 2011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org> | 521 | 2011-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 | ||
| 526 | 2011-07-09 Bob Nnamtrop <bobnnamtrop@gmail.com> (tiny change) | 587 | 2011-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 | ||
| 531 | 2011-07-09 Martin Rudalics <rudalics@gmx.at> | 592 | 2011-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 | ||
| 559 | 2011-07-09 Leo Liu <sdl.web@gmail.com> | 618 | 2011-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 @@ | |||
| 1 | 2011-07-30 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * semantic/grammar.el (semantic-grammar-insert-defanalyzers): Fix | ||
| 4 | require. | ||
| 5 | |||
| 1 | 2011-07-04 Darren Hoo <darren.hoo@gmail.com> (tiny change) | 6 | 2011-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. |
| 1234 | Evaluate BODY with VAR bound to each `car' from LIST, in turn. | 1234 | Evaluate BODY with VAR bound to each `car' from LIST, in turn. |
| 1235 | Then evaluate RESULT to get return value, default nil. | 1235 | Then evaluate RESULT to get return value, default nil. |
| 1236 | An 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 @@ | |||
| 1 | 2011-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 | |||
| 9 | 2011-08-02 Steve Purcell <steve@sanityinc.com> (tiny change) | ||
| 10 | |||
| 11 | * nnimap.el (nnimap-get-groups): Decode "&" correctly. | ||
| 12 | |||
| 13 | 2011-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 | |||
| 18 | 2011-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 | |||
| 23 | 2011-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 | |||
| 28 | 2011-07-31 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 29 | |||
| 30 | * spam.el (spam-fetch-field-fast): Rewrite slightly for clarity. | ||
| 31 | |||
| 32 | 2011-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 | |||
| 37 | 2011-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 | |||
| 43 | 2011-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 | |||
| 1 | 2011-07-24 Andrew Cohen <cohen@andy.bu.edu> | 48 | 2011-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. |
| 2799 | Once you scroll far enough in a node that its menu appears on the screen | 2794 | Once 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 | ||
| 3942 | Advanced commands: | 3937 | Advanced 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" "\ |
| 935 | Display STRING starting at position VPOS, HPOS, using animation. | 936 | Display STRING animations starting at position VPOS, HPOS. |
| 936 | The characters start at randomly chosen places, | 937 | The characters start at randomly chosen places, |
| 937 | and all slide in parallel to their final positions, | 938 | and all slide in parallel to their final positions, |
| 938 | passing through `animate-n-steps' positions before the final ones. | 939 | passing 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" "\ |
| 945 | Display strings from LIST-OF-STRING with animation in a new buffer. | 946 | Display animation strings from LIST-OF-STRING with buffer *Animation*. |
| 946 | Strings will be separated from each other by SPACE lines. | 947 | Strings will be separated from each other by SPACE lines. |
| 948 | When the variable `animation-buffer-name' is non-nil display | ||
| 949 | animation in the buffer named by variable's value, creating the | ||
| 950 | buffer 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" "\ |
| 951 | Display one's birthday present in a new buffer. | 955 | Return a birthday present in the buffer *Birthday-Present*. |
| 952 | You can specify the one's name by NAME; the default value is \"Sarah\". | 956 | When optional arg NAME is non-nil or called-interactively, prompt for |
| 957 | NAME of birthday present receiver and return a birthday present in | ||
| 958 | the 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 "\ |
| 2283 | Function to display the current buffer in a WWW browser. | 2289 | Function to display the current buffer in a WWW browser. |
| 2284 | This is used by the `browse-url-at-point', `browse-url-at-mouse', and | 2290 | This 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" "\ |
| 5706 | Enter debugger. To return, type \\<debugger-mode-map>`\\[debugger-continue]'. | 5712 | Enter debugger. \\<debugger-mode-map>`\\[debugger-continue]' returns from the debugger. |
| 5707 | Arguments are mainly for use when this is called from the internals | 5713 | Arguments are mainly for use when this is called from the internals |
| 5708 | of the evaluator. | 5714 | of 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" "\ |
| 6249 | Find and display the differences between OLD and NEW files. | 6255 | Find and display the differences between OLD and NEW files. |
| 6250 | When called interactively, read OLD and NEW using the minibuffer; | 6256 | When called interactively, read NEW, then OLD, using the |
| 6251 | the default for NEW is the current buffer's file name, and the | 6257 | minibuffer. The default for NEW is the current buffer's file |
| 6252 | default for OLD is a backup file for NEW, if one exists. | 6258 | name, and the default for OLD is a backup file for NEW, if one |
| 6253 | If NO-ASYNC is non-nil, call diff synchronously. | 6259 | exists. If NO-ASYNC is non-nil, call diff synchronously. |
| 6254 | 6260 | ||
| 6255 | When called interactively with a prefix argument, prompt | 6261 | When called interactively with a prefix argument, prompt |
| 6256 | interactively for diff switches. Otherwise, the switches | 6262 | interactively 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 | |||
| 6345 | shell wildcards appended to select certain files). If DIRNAME is a cons, | 6351 | shell wildcards appended to select certain files). If DIRNAME is a cons, |
| 6346 | its first element is taken as the directory name and the rest as an explicit | 6352 | its first element is taken as the directory name and the rest as an explicit |
| 6347 | list of files to make directory entries for. | 6353 | list 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 |
| 6349 | You can flag files for deletion with \\[dired-flag-file-deletion] and then | ||
| 6350 | delete them by typing \\[dired-do-flagged-delete]. | 6355 | delete them by typing \\[dired-do-flagged-delete]. |
| 6351 | Type \\[describe-mode] after entering Dired for more info. | 6356 | Type \\[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. |
| 6384 | You can move using the usual cursor motion commands.\\<dired-mode-map> | 6389 | You can move using the usual cursor motion commands.\\<dired-mode-map> |
| 6385 | Letters no longer insert themselves. Digits are prefix arguments. | 6390 | The buffer is read-only. Digits are prefix arguments. |
| 6386 | Instead, type \\[dired-flag-file-deletion] to flag a file for Deletion. | 6391 | Type \\[dired-flag-file-deletion] to flag a file `D' for deletion. |
| 6387 | Type \\[dired-mark] to Mark a file or subdirectory for later commands. | 6392 | Type \\[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. |
| 6394 | Type \\[dired-unmark] to Unmark a file or all files of a subdirectory. | 6399 | Type \\[dired-unmark] to Unmark a file or all files of an inserted subdirectory. |
| 6395 | Type \\[dired-unmark-backward] to back up one line and unflag. | 6400 | Type \\[dired-unmark-backward] to back up one line and unmark or unflag. |
| 6396 | Type \\[dired-do-flagged-delete] to eXecute the deletions requested. | 6401 | Type \\[dired-do-flagged-delete] to delete (eXecute) the files flagged `D'. |
| 6397 | Type \\[dired-find-file] to Find the current line's file | 6402 | Type \\[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). |
| 6399 | Type \\[dired-find-file-other-window] to find file or dired directory in Other window. | 6404 | Type \\[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. | |||
| 6403 | Type \\[dired-sort-toggle-or-edit] to toggle Sorting by name/date or change the `ls' switches. | 6408 | Type \\[dired-sort-toggle-or-edit] to toggle Sorting by name/date or change the `ls' switches. |
| 6404 | Type \\[revert-buffer] to read all currently expanded directories aGain. | 6409 | Type \\[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. |
| 6406 | SPC and DEL can be used to move down and up by lines. | 6411 | Use `SPC' and `DEL' to move down and up by lines. |
| 6407 | 6412 | ||
| 6408 | If Dired ever gets confused, you can either type \\[revert-buffer] to read the | 6413 | If Dired ever gets confused, you can either type \\[revert-buffer] to read the |
| 6409 | directories again, type \\[dired-do-redisplay] to relist a single or the marked files or a | 6414 | directories again, type \\[dired-do-redisplay] to relist the file at point or the marked files or a |
| 6410 | subdirectory, or type \\[dired-build-subdir-alist] to parse the buffer | 6415 | subdirectory, or type \\[dired-build-subdir-alist] to parse the buffer |
| 6411 | again for the directory tree. | 6416 | again 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" "\ |
| 7771 | Run Ediff by patching SOURCE-FILENAME. | 7776 | Query for a file name, and then run Ediff by patching that file. |
| 7772 | If optional PATCH-BUF is given, use the patch in that buffer | 7777 | If optional PATCH-BUF is given, use the patch in that buffer |
| 7773 | and don't ask the user. | 7778 | and don't ask the user. |
| 7774 | If prefix argument, then: if even argument, assume that the patch is in a | 7779 | If 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" "\ | ||
| 8162 | Toggle Emacs Lock mode in the current buffer. | ||
| 8163 | |||
| 8164 | With \\[universal-argument], ask for the locking mode to be used. | ||
| 8165 | With other prefix ARG, turn mode on if ARG is positive, off otherwise. | ||
| 8166 | |||
| 8167 | Initially, if the user does not pass an explicit locking mode, it defaults | ||
| 8168 | to `emacs-lock-default-locking-mode' (which see); afterwards, the locking | ||
| 8169 | mode most recently set on the buffer is used instead. | ||
| 8170 | |||
| 8171 | When 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 | |||
| 8177 | Other 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. | |||
| 9459 | Stops when a match is found. | 9490 | Stops when a match is found. |
| 9460 | To continue searching for next match, use command \\[tags-loop-continue]. | 9491 | To continue searching for next match, use command \\[tags-loop-continue]. |
| 9461 | 9492 | ||
| 9462 | See documentation of variable `tags-file-name'. | 9493 | If FILE-LIST-FORM is non-nil, it should be a form that, when |
| 9494 | evaluated, will return a list of file names. The search will be | ||
| 9495 | restricted to these files. | ||
| 9496 | |||
| 9497 | Aleso 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 "\ | ||
| 12148 | The minimum number of bits to be used in Diffie-Hellman key exchange. | ||
| 12149 | |||
| 12150 | This sets the minimum accepted size of the key to be used in a | ||
| 12151 | client-server handshake. If the server sends a prime with fewer than | ||
| 12152 | the specified number of bits the handshake will fail. | ||
| 12153 | |||
| 12154 | A 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'. | |||
| 14439 | IMAGE is displayed by putting an overlay into the current buffer with a | 14496 | IMAGE 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 |
| 14441 | image. STRING is defaulted if you omit it. | 14498 | image. STRING is defaulted if you omit it. |
| 14499 | The overlay created will have the `put-image' property set to t. | ||
| 14442 | POS may be an integer or marker. | 14500 | POS may be an integer or marker. |
| 14443 | AREA is where to display the image. AREA nil or omitted means | 14501 | AREA is where to display the image. AREA nil or omitted means |
| 14444 | display it in the text area, a value of `left-margin' means | 14502 | display 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" "\ |
| 14451 | Insert IMAGE into current buffer at point. | 14509 | Insert IMAGE into current buffer at point. |
| 14452 | IMAGE is displayed by inserting STRING into the current buffer | 14510 | IMAGE is displayed by inserting STRING into the current buffer |
| 14453 | with a `display' property whose value is the image. STRING is | 14511 | with a `display' property whose value is the image. STRING |
| 14454 | defaulted if you omit it. | 14512 | defaults to the empty string if you omit it. |
| 14455 | AREA is where to display the image. AREA nil or omitted means | 14513 | AREA is where to display the image. AREA nil or omitted means |
| 14456 | display it in the text area, a value of `left-margin' means | 14514 | display it in the text area, a value of `left-margin' means |
| 14457 | display it in the left marginal area, a value of `right-margin' | 14515 | display 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. | |||
| 15022 | Optional argument FILE-OR-NODE specifies the file to examine; | 15080 | Optional argument FILE-OR-NODE specifies the file to examine; |
| 15023 | the default is the top-level directory of Info. | 15081 | the default is the top-level directory of Info. |
| 15024 | Called from a program, FILE-OR-NODE may specify an Info node of the form | 15082 | Called from a program, FILE-OR-NODE may specify an Info node of the form |
| 15025 | `(FILENAME)NODENAME'. | 15083 | \"(FILENAME)NODENAME\". |
| 15026 | Optional argument BUFFER specifies the Info buffer name; | 15084 | Optional argument BUFFER specifies the Info buffer name; |
| 15027 | the default buffer name is *info*. If BUFFER exists, | 15085 | the default buffer name is *info*. If BUFFER exists, |
| 15028 | just switch to BUFFER. Otherwise, create a new buffer | 15086 | just 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 | ||
| 15135 | Advanced commands: | 15193 | Advanced 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" "\ |
| 16477 | Toggle Long Lines mode. | 16535 | Minor mode to wrap long lines. |
| 16478 | In Long Lines mode, long lines are wrapped if they extend beyond | 16536 | In 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 |
| 16480 | show up when the text is yanked or saved to disk. | 16538 | show up when the text is yanked or saved to disk. |
| 16481 | 16539 | ||
| 16540 | With no argument, this command toggles Flyspell mode. | ||
| 16541 | With a prefix argument ARG, turn Flyspell minor mode on if ARG is positive, | ||
| 16542 | otherwise turn it off. | ||
| 16543 | |||
| 16482 | If the variable `longlines-auto-wrap' is non-nil, lines are automatically | 16544 | If the variable `longlines-auto-wrap' is non-nil, lines are automatically |
| 16483 | wrapped whenever the buffer is changed. You can always call | 16545 | wrapped 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 | |||
| 17486 | are strings. | 17548 | are strings. |
| 17487 | 17549 | ||
| 17488 | CONTINUE, SWITCH-FUNCTION, YANK-ACTION, SEND-ACTIONS, and | 17550 | CONTINUE, SWITCH-FUNCTION, YANK-ACTION, SEND-ACTIONS, and |
| 17489 | RETURN-ACTION are ignored. | 17551 | RETURN-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. | |||
| 18059 | With prefix ARG, turn Mouse Sel mode on if and only if ARG is positive. | 18121 | With prefix ARG, turn Mouse Sel mode on if and only if ARG is positive. |
| 18060 | Returns the new status of Mouse Sel mode (non-nil means on). | 18122 | Returns the new status of Mouse Sel mode (non-nil means on). |
| 18061 | 18123 | ||
| 18062 | When Mouse Sel mode is enabled, mouse selection is enhanced in various ways: | 18124 | When Mouse Sel mode is enabled, mouse selection is enhanced in |
| 18063 | 18125 | various 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. |
| 18069 | Double-clicking on symbol constituents selects symbols. | ||
| 18070 | Double-clicking on quotes or parentheses selects sexps. | 18128 | Double-clicking on quotes or parentheses selects sexps. |
| 18071 | Double-clicking on whitespace selects whitespace. | 18129 | Double-clicking on whitespace selects whitespace. |
| 18072 | Triple-clicking selects lines. | 18130 | Triple-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 |
| 18082 | the mouse position (or point, if `mouse-yank-at-point' is non-nil). | 18140 | the 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 |
| 18085 | to the kill ring. Pressing mouse-1 or mouse-3 kills it. | 18143 | kill 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 | ||
| 18091 | primary 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" "\ | ||
| 19163 | Display information on the current source block. | ||
| 19164 | This includes header arguments, language and name, and is largely | ||
| 19165 | a 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" "\ |
| 19106 | Conditionally expand a source block. | 19170 | Conditionally expand a source block. |
| 19107 | Detect if this is context for a org-babel src-block and if so | 19171 | Detect 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" "\ | ||
| 19217 | Check 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" "\ |
| 19153 | Load the body of the current source-code block. | 19222 | Load the body of the current source-code block. |
| 19154 | Evaluate the header arguments for the source block before | 19223 | Evaluate 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" "\ | ||
| 19285 | Evaluate BODY forms on each inline source-block in FILE. | ||
| 19286 | If FILE is nil evaluate BODY forms on source blocks in current | ||
| 19287 | buffer. | ||
| 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" "\ |
| 19216 | Execute source code blocks in a buffer. | 19294 | Execute source code blocks in a buffer. |
| 19217 | Call `org-babel-execute-src-block' on every source block in | 19295 | Call `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 | |||
| 19344 | source blocks. Optional argument LANG can be used to limit the | 19422 | source blocks. Optional argument LANG can be used to limit the |
| 19345 | exported source code blocks by language. | 19423 | exported 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 | ||
| 19599 | nil The current buffer, respecting the restriction if any | 19677 | nil The current buffer, respecting the restriction if any |
| 19600 | tree The subtree started with the entry at point | 19678 | tree The subtree started with the entry at point |
| 19679 | region The entries within the active region, if any | ||
| 19601 | file The current buffer, without restriction | 19680 | file The current buffer, without restriction |
| 19602 | file-with-archives | 19681 | file-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'. | |||
| 19784 | The view will be for the current day or week, but from the overview buffer | 19863 | The view will be for the current day or week, but from the overview buffer |
| 19785 | you will be able to go to other days/weeks. | 19864 | you will be able to go to other days/weeks. |
| 19786 | 19865 | ||
| 19787 | With one \\[universal-argument] prefix argument INCLUDE-ALL, | ||
| 19788 | all unfinished TODO items will also be shown, before the agenda. | ||
| 19789 | This feature is considered obsolete, please use the TODO list or a block | ||
| 19790 | agenda instead. | ||
| 19791 | |||
| 19792 | With a numeric prefix argument in an interactive call, the agenda will | 19866 | With a numeric prefix argument in an interactive call, the agenda will |
| 19793 | span INCLUDE-ALL days. Lisp programs should instead specify SPAN to change | 19867 | span INCLUDE-ALL days. Lisp programs should instead specify SPAN to change |
| 19794 | the number of days. SPAN defaults to `org-agenda-span'. | 19868 | the 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" "\ |
| 19971 | Like `org-export-as-ascii', use use encoding for special symbols. | 20045 | Like `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 | |||
| 20213 | ARG is a double universal prefix \\[universal-argument] \\[universal-argument], that means to inverse the | 20287 | ARG is a double universal prefix \\[universal-argument] \\[universal-argument], that means to inverse the |
| 20214 | value of `org-export-run-in-background'. | 20288 | value of `org-export-run-in-background'. |
| 20215 | 20289 | ||
| 20290 | If `org-export-initial-scope' is set to 'subtree, try to export | ||
| 20291 | the current subtree, otherwise try to export the whole buffer. | ||
| 20292 | Pressing `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" "\ |
| 20293 | Do the right thing for footnotes. | 20371 | Do the right thing for footnotes. |
| 20294 | When at a footnote reference, jump to the definition. When at a definition, | 20372 | |
| 20295 | jump to the references. When neither at definition or reference, | 20373 | When at a footnote reference, jump to the definition. |
| 20296 | create a new footnote, interactively. | 20374 | |
| 20375 | When at a definition, jump to the references if they exist, offer | ||
| 20376 | to create them otherwise. | ||
| 20377 | |||
| 20378 | When neither at definition or reference, create a new footnote, | ||
| 20379 | interactively. | ||
| 20380 | |||
| 20297 | With prefix arg SPECIAL, offer additional commands in a menu. | 20381 | With 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" "\ |
| 20302 | Collect the footnotes in various formats and normalize them. | 20386 | Collect the footnotes in various formats and normalize them. |
| 20387 | |||
| 20303 | This finds the different sorts of footnotes allowed in Org, and | 20388 | This finds the different sorts of footnotes allowed in Org, and |
| 20304 | normalizes them to the usual [N] format that is understood by the | 20389 | normalizes them to the usual [N] format that is understood by the |
| 20305 | Org-mode exporters. | 20390 | Org-mode exporters. |
| 20391 | |||
| 20306 | When SORT-ONLY is set, only sort the footnote definitions into the | 20392 | When SORT-ONLY is set, only sort the footnote definitions into the |
| 20307 | referenced sequence. | 20393 | referenced sequence. |
| 20308 | 20394 | ||
| 20309 | \(fn &optional SORT-ONLY FOR-PREPROCESSOR)" nil nil) | 20395 | If Org is amidst an export process, EXPORT-PROPS will hold the |
| 20396 | export properties of the buffer. | ||
| 20397 | |||
| 20398 | When EXPORT-PROPS is non-nil, the default action is to insert | ||
| 20399 | normalized footnotes towards the end of the pre-processing buffer. | ||
| 20400 | Some exporters like docbook, odt, etc. expect that footnote | ||
| 20401 | definitions be available before any references to them. Such | ||
| 20402 | exporters can let bind `org-footnote-insert-pos-for-preprocessor' to | ||
| 20403 | symbol 'point-min to achieve the desired behaviour. | ||
| 20404 | |||
| 20405 | Additional note on `org-footnote-insert-pos-for-preprocessor': | ||
| 20406 | 1. This variable has not effect when FOR-PREPROCESSOR is nil. | ||
| 20407 | 2. 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" "\ |
| 22225 | Toggle auto region. | 22327 | Toggle 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) "\ | ||
| 24758 | Function to call to send the current buffer as mail. | 24859 | Function to call to send the current buffer as mail. |
| 24759 | The headers should be delimited by a line which is | 24860 | The headers should be delimited by a line which is |
| 24760 | not a valid RFC822 header or continuation line, | 24861 | not 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" "\ | ||
| 24869 | Send an email via `sendmail-query-once-function'. | ||
| 24870 | If `sendmail-query-once-function' is `query', ask the user what | ||
| 24871 | function 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--") "\ |
| 24769 | Line used to separate headers from text in messages being composed.") | 24876 | Line 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. | |||
| 26100 | The user will not be prompted for any login parameters if a value | 26207 | The user will not be prompted for any login parameters if a value |
| 26101 | is specified in the connection settings. | 26208 | is 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" "\ |
| 26106 | Run PRODUCT interpreter as an inferior process. | 26213 | Run 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" "\ |
| 28144 | Move forward to the end of the Nth next THING. | 28251 | Move forward to the end of the Nth next THING. |
| 28252 | THING should be a symbol specifying a type of syntactic entity. | ||
| 28253 | Possibilities 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" "\ |
| 28149 | Determine the start and end buffer locations for the THING at point. | 28260 | Determine the start and end buffer locations for the THING at point. |
| 28150 | THING is a symbol which specifies the kind of syntactic entity you want. | 28261 | THING should be a symbol specifying a type of syntactic entity. |
| 28151 | Possibilities include `symbol', `list', `sexp', `defun', `filename', `url', | 28262 | Possibilities 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 | ||
| 28154 | See the file `thingatpt.el' for documentation on how to define | 28266 | See the file `thingatpt.el' for documentation on how to define a |
| 28155 | a symbol as a valid THING. | 28267 | valid THING. |
| 28156 | 28268 | ||
| 28157 | The value is a cons cell (START . END) giving the start and end positions | 28269 | Return a cons cell (START . END) giving the start and end |
| 28158 | of the textual entity that was found. | 28270 | positions 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" "\ |
| 28163 | Return the THING at point. | 28275 | Return the THING at point. |
| 28164 | THING is a symbol which specifies the kind of syntactic entity you want. | 28276 | THING should be a symbol specifying a type of syntactic entity. |
| 28165 | Possibilities include `symbol', `list', `sexp', `defun', `filename', `url', | 28277 | Possibilities 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 | ||
| 28168 | See the file `thingatpt.el' for documentation on how to define | 28281 | See the file `thingatpt.el' for documentation on how to define |
| 28169 | a symbol as a valid THING. | 28282 | a 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 | |||
| 165 | If `sendmail-query-once-function' is `query', ask the user what | 165 | If `sendmail-query-once-function' is `query', ask the user what |
| 166 | function to use, and then save that choice." | 166 | function 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. |
| 2699 | Not 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 @@ | |||
| 1 | 2011-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 | |||
| 1 | 2011-07-28 Bastien Guerry <bzg@gnu.org> | 6 | 2011-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 @@ | |||
| 1 | 2011-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 | |||
| 19 | 2011-08-02 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 20 | |||
| 21 | * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE. | ||
| 22 | |||
| 23 | 2010-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 | |||
| 28 | 2011-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 | |||
| 34 | 2011-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 | |||
| 43 | 2011-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 | |||
| 49 | 2011-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 | |||
| 1 | 2011-07-28 Andreas Schwab <schwab@linux-m68k.org> | 54 | 2011-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. */ | ||
| 882 | static inline int | 885 | static inline int |
| 883 | bidi_fetch_char (EMACS_INT bytepos, EMACS_INT charpos, EMACS_INT *disp_pos, | 886 | bidi_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 | ||
| 1313 | static Lisp_Object | 1313 | Lisp_Object |
| 1314 | uniprop_table (Lisp_Object prop) | 1314 | uniprop_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 *); | |||
| 3035 | extern int calc_pixel_width_or_height (double *, struct it *, Lisp_Object, | 3037 | extern int calc_pixel_width_or_height (double *, struct it *, Lisp_Object, |
| 3036 | struct font *, int, int *); | 3038 | struct font *, int, int *); |
| 3037 | extern EMACS_INT compute_display_string_pos (struct text_pos *, | 3039 | extern EMACS_INT compute_display_string_pos (struct text_pos *, |
| 3038 | struct bidi_string_data *, int); | 3040 | struct bidi_string_data *, |
| 3041 | int, int *); | ||
| 3039 | extern EMACS_INT compute_display_string_end (EMACS_INT, | 3042 | extern 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); |
| 2864 | extern Lisp_Object uniprop_table (Lisp_Object); | ||
| 2864 | extern void syms_of_chartab (void); | 2865 | extern 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. */ |
| 6382 | weak_function | 6382 | weak_function |
| 6383 | # endif | 6383 | # endif |
| 6384 | re_comp (s) | 6384 | re_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 | ||
| 6424 | regoff_t | 6423 | int |
| 6425 | # ifdef _LIBC | 6424 | # ifdef _LIBC |
| 6426 | weak_function | 6425 | weak_function |
| 6427 | # endif | 6426 | # endif |
| @@ -6558,7 +6557,7 @@ reg_errcode_t | |||
| 6558 | regexec (const regex_t *__restrict preg, const char *__restrict string, | 6557 | regexec (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 | ||
| 1619 | static void | 1619 | static void |
| 1620 | w32_draw_relief_rect (struct frame *f, | 1620 | w32_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 | ||
| 3492 | static struct scroll_bar * | 3494 | static 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 *, | |||
| 899 | static int init_to_row_end (struct it *, struct window *, | 899 | static int init_to_row_end (struct it *, struct window *, |
| 900 | struct glyph_row *); | 900 | struct glyph_row *); |
| 901 | static void back_to_previous_line_start (struct it *); | 901 | static void back_to_previous_line_start (struct it *); |
| 902 | static int forward_to_next_line_start (struct it *, int *); | 902 | static int forward_to_next_line_start (struct it *, int *, struct bidi_it *); |
| 903 | static struct text_pos string_pos_nchars_ahead (struct text_pos, | 903 | static struct text_pos string_pos_nchars_ahead (struct text_pos, |
| 904 | Lisp_Object, EMACS_INT); | 904 | Lisp_Object, EMACS_INT); |
| 905 | static struct text_pos string_pos (EMACS_INT, Lisp_Object); | 905 | static 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 |
| 3139 | static EMACS_INT cached_disp_pos; | 3139 | characters in a line. */ |
| 3140 | static EMACS_INT cached_prev_pos = -1; | 3140 | #define MAX_DISP_SCAN 5000 |
| 3141 | static struct buffer *cached_disp_buffer; | ||
| 3142 | static int cached_disp_modiff; | ||
| 3143 | static 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. */ |
| 3153 | EMACS_INT | 3150 | EMACS_INT |
| 3154 | compute_display_string_pos (struct text_pos *position, | 3151 | compute_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 | ||
| 5508 | static int | 5484 | static int |
| 5509 | forward_to_next_line_start (struct it *it, int *skipped_p) | 5485 | forward_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 | |||
| 5696 | reseat_at_next_visible_line_start (struct it *it, int on_newline_p) | 5679 | reseat_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 | } |