diff options
| author | Eli Zaretskii | 2013-04-16 17:10:51 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2013-04-16 17:10:51 +0300 |
| commit | 83b9062422faef46592618bed64e5df47fe13670 (patch) | |
| tree | 964e529ab141daefa7b8a4f3e1788885e967f987 | |
| parent | 895591043f735398ad3930d12f82c0b9dfe07730 (diff) | |
| parent | a7bef505860dc15dd9fc1513e45a1ec71417471e (diff) | |
| download | emacs-83b9062422faef46592618bed64e5df47fe13670.tar.gz emacs-83b9062422faef46592618bed64e5df47fe13670.zip | |
Merge from trunk.
| -rw-r--r-- | doc/lispref/ChangeLog | 5 | ||||
| -rw-r--r-- | doc/lispref/tips.texi | 16 | ||||
| -rw-r--r-- | doc/misc/ChangeLog | 5 | ||||
| -rw-r--r-- | doc/misc/tramp.texi | 22 | ||||
| -rw-r--r-- | etc/ChangeLog | 5 | ||||
| -rw-r--r-- | etc/NEWS | 6 | ||||
| -rw-r--r-- | lisp/ChangeLog | 91 | ||||
| -rw-r--r-- | lisp/doc-view.el | 4 | ||||
| -rw-r--r-- | lisp/emacs-lisp/nadvice.el | 17 | ||||
| -rw-r--r-- | lisp/gnus/ChangeLog | 7 | ||||
| -rw-r--r-- | lisp/gnus/shr.el | 17 | ||||
| -rw-r--r-- | lisp/minibuffer.el | 7 | ||||
| -rw-r--r-- | lisp/progmodes/cc-langs.el | 4 | ||||
| -rw-r--r-- | lisp/progmodes/cc-menus.el | 159 | ||||
| -rw-r--r-- | lisp/progmodes/cc-mode.el | 9 | ||||
| -rw-r--r-- | lisp/progmodes/ruby-mode.el | 25 | ||||
| -rw-r--r-- | lisp/term/ns-win.el | 2 | ||||
| -rw-r--r-- | lisp/term/w32-win.el | 2 | ||||
| -rw-r--r-- | src/ChangeLog | 12 | ||||
| -rw-r--r-- | src/minibuf.c | 2 | ||||
| -rw-r--r-- | test/automated/ruby-mode-tests.el | 36 |
21 files changed, 356 insertions, 97 deletions
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index f65c2e85461..31e4f791350 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2013-04-15 Christopher Schmidt <christopher@ch.ristopher.com> | ||
| 2 | |||
| 3 | * tips.texi (Coding Conventions): Mention separation of package | ||
| 4 | descriptor and name of internal symbols by two hyphens. | ||
| 5 | |||
| 1 | 2013-04-13 Stephen Berman <stephen.berman@gmx.net> | 6 | 2013-04-13 Stephen Berman <stephen.berman@gmx.net> |
| 2 | 7 | ||
| 3 | * windows.texi (Splitting Windows): Change category of | 8 | * windows.texi (Splitting Windows): Change category of |
diff --git a/doc/lispref/tips.texi b/doc/lispref/tips.texi index 4c443da3af8..c40ae408f7f 100644 --- a/doc/lispref/tips.texi +++ b/doc/lispref/tips.texi | |||
| @@ -51,13 +51,15 @@ don't postpone it. | |||
| 51 | 51 | ||
| 52 | @item | 52 | @item |
| 53 | You should choose a short word to distinguish your program from other | 53 | You should choose a short word to distinguish your program from other |
| 54 | Lisp programs. The names of all global variables, constants, and | 54 | Lisp programs. The names of all global symbols in your program, that |
| 55 | functions in your program should begin with that chosen prefix. | 55 | is the names of variables, constants, and functions, should begin with |
| 56 | Separate the prefix from the rest of the name with a hyphen, @samp{-}. | 56 | that chosen prefix. Separate the prefix from the rest of the name |
| 57 | This practice helps avoid name conflicts, since all global variables | 57 | with a hyphen, @samp{-}. Use two hyphens if the symbol is not meant |
| 58 | in Emacs Lisp share the same name space, and all functions share | 58 | to be used by other packages. This practice helps avoid name |
| 59 | another name space@footnote{The benefits of a Common Lisp-style | 59 | conflicts, since all global variables in Emacs Lisp share the same |
| 60 | package system are considered not to outweigh the costs.}. | 60 | name space, and all functions share another name space@footnote{The |
| 61 | benefits of a Common Lisp-style package system are considered not to | ||
| 62 | outweigh the costs.}. | ||
| 61 | 63 | ||
| 62 | Occasionally, for a command name intended for users to use, it is more | 64 | Occasionally, for a command name intended for users to use, it is more |
| 63 | convenient if some words come before the package's name prefix. And | 65 | convenient if some words come before the package's name prefix. And |
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index a5b2edbc26f..5e9840a86b7 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2013-04-16 Michael Albinus <michael.albinus@gmx.de> | ||
| 2 | |||
| 3 | * tramp.texi (Frequently Asked Questions): Precise, how to define | ||
| 4 | an own ControlPath. | ||
| 5 | |||
| 1 | 2013-04-15 Michael Albinus <michael.albinus@gmx.de> | 6 | 2013-04-15 Michael Albinus <michael.albinus@gmx.de> |
| 2 | 7 | ||
| 3 | * tramp.texi (Frequently Asked Questions): New item for | 8 | * tramp.texi (Frequently Asked Questions): New item for |
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index 42a3156c1e9..4c3740f02f7 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi | |||
| @@ -3139,6 +3139,28 @@ already an @command{ssh} connection to that host. Further | |||
| 3139 | process on that host, will reuse that initial @command{ssh} | 3139 | process on that host, will reuse that initial @command{ssh} |
| 3140 | connection. | 3140 | connection. |
| 3141 | 3141 | ||
| 3142 | If your @command{ssh} version supports the @code{ControlPersist} | ||
| 3143 | option, you could customize the variable | ||
| 3144 | @code{tramp-ssh-controlmaster-options} to use your @code{ControlPath}, | ||
| 3145 | for example: | ||
| 3146 | |||
| 3147 | @lisp | ||
| 3148 | (setq tramp-ssh-controlmaster-options | ||
| 3149 | (concat | ||
| 3150 | "-o ControlPath=/tmp/ssh-ControlPath-%%r@@%%h:%%p " | ||
| 3151 | "-o ControlMaster=auto -o ControlPersist=yes")) | ||
| 3152 | @end lisp | ||
| 3153 | |||
| 3154 | Note, that "%r", "%h" and "%p" must be encoded as "%%r", "%%h" and | ||
| 3155 | "%%p", respectively. The entries of @code{ControlPath}, | ||
| 3156 | @code{ControlMaster} and @code{ControlPersist} can be removed from | ||
| 3157 | this setting, if they are configured properly in your | ||
| 3158 | @file{~/.ssh/config}: | ||
| 3159 | |||
| 3160 | @lisp | ||
| 3161 | (setq tramp-ssh-controlmaster-options "") | ||
| 3162 | @end lisp | ||
| 3163 | |||
| 3142 | 3164 | ||
| 3143 | @item | 3165 | @item |
| 3144 | File name completion does not work with @value{tramp} | 3166 | File name completion does not work with @value{tramp} |
diff --git a/etc/ChangeLog b/etc/ChangeLog index 31d14b96d94..2b7534dc1e7 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2013-04-15 Christopher Schmidt <christopher@ch.ristopher.com> | ||
| 2 | |||
| 3 | * NEWS: Mention separation of package descriptor and name of | ||
| 4 | internal symbols by two hyphens. | ||
| 5 | |||
| 1 | 2013-04-13 Stephen Berman <stephen.berman@gmx.net> | 6 | 2013-04-13 Stephen Berman <stephen.berman@gmx.net> |
| 2 | 7 | ||
| 3 | * NEWS: Mention fixing `split-window' to be non-interactive. | 8 | * NEWS: Mention fixing `split-window' to be non-interactive. |
| @@ -409,6 +409,12 @@ used in place of the 9th element of `file-attributes'. | |||
| 409 | `preserve-extended-attributes' as it now handles both SELinux context | 409 | `preserve-extended-attributes' as it now handles both SELinux context |
| 410 | and ACL entries. | 410 | and ACL entries. |
| 411 | 411 | ||
| 412 | ** Changes to the Emacs Lisp Coding Conventions in Emacs 24.4 | ||
| 413 | |||
| 414 | *** The package descriptor and name of global variables, constants, | ||
| 415 | and functions should be separated by two hypens if the symbol is not | ||
| 416 | meant to be used by other packages. | ||
| 417 | |||
| 412 | 418 | ||
| 413 | * Changes in Emacs 24.4 on Non-Free Operating Systems | 419 | * Changes in Emacs 24.4 on Non-Free Operating Systems |
| 414 | 420 | ||
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2231d96a757..f62dff32008 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,65 @@ | |||
| 1 | 2013-04-16 Juanma Barranquero <lekktu@gmail.com> | ||
| 2 | |||
| 3 | * minibuffer.el (completion--twq-all): | ||
| 4 | * term/ns-win.el (ns-initialize-window-system): | ||
| 5 | * term/w32-win.el (w32-initialize-window-system): Silence byte-compiler. | ||
| 6 | |||
| 7 | 2013-04-16 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 8 | |||
| 9 | * emacs-lisp/nadvice.el (add-function): Default simple vars to their | ||
| 10 | global bindings. | ||
| 11 | |||
| 12 | * doc-view.el (doc-view-start-process): Handle url-handler directories. | ||
| 13 | |||
| 14 | 2013-04-15 Dmitry Gutov <dgutov@yandex.ru> | ||
| 15 | |||
| 16 | * progmodes/ruby-mode.el (ruby-beginning-of-defun) | ||
| 17 | (ruby-end-of-defun, ruby-move-to-block): Bind `case-fold-search' | ||
| 18 | to nil. | ||
| 19 | (ruby-end-of-defun): Remove the unused arg, change the docstring | ||
| 20 | to reflect that this function is only used as the value of | ||
| 21 | `end-of-defun-function'. | ||
| 22 | (ruby-beginning-of-defun): Remove "top-level" from the docstring, | ||
| 23 | to reflect an earlier change that beginning/end-of-defun functions | ||
| 24 | jump between methods in a class definition, as well as top-level | ||
| 25 | functions. | ||
| 26 | |||
| 27 | 2013-04-15 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 28 | |||
| 29 | * minibuffer.el (minibuffer-complete): Don't just scroll | ||
| 30 | a *Completions* that's been iconified. | ||
| 31 | (minibuffer-force-complete): Make sure repetitions do cycle when going | ||
| 32 | through completion-in-region -> minibuffer-complete. | ||
| 33 | |||
| 34 | 2013-04-15 Alan Mackenzie <acm@muc.de> | ||
| 35 | |||
| 36 | Correct the placement of c-cpp-delimiters when there're #s not at | ||
| 37 | col 0. | ||
| 38 | |||
| 39 | * progmodes/cc-langs.el (c-anchored-cpp-prefix): Reformulate and | ||
| 40 | place a submatch around the #. | ||
| 41 | * progmodes/cc-mode.el(c-neutralize-syntax-in-and-mark-CPP): | ||
| 42 | Start a search at BOL. Put the c-cpp-delimiter category text propertiy | ||
| 43 | on the #, not BOL. | ||
| 44 | |||
| 45 | 2013-04-15 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 46 | |||
| 47 | * emacs-lisp/nadvice.el: Properly test names when adding advice. | ||
| 48 | (advice--member-p): New arg `name'. | ||
| 49 | (advice--add-function, advice-member-p): Use it (bug#14202). | ||
| 50 | |||
| 51 | 2013-04-15 Filipp Gunbin <fgunbin@fastmail.fm> | ||
| 52 | |||
| 53 | Reformulate java imenu-generic-expression. | ||
| 54 | The old expression contained ill formed regexps. | ||
| 55 | |||
| 56 | * progmodes/cc-menus.el (cc-imenu-java-ellipsis-regexp) | ||
| 57 | (cc-imenu-java-type-spec-regexp, cc-imenu-java-comment-regexp) | ||
| 58 | (cc-imenu-java-method-arg-regexp): New defconsts. | ||
| 59 | (cc-imenu-java-build-type-args-regex): New defun. | ||
| 60 | (cc-imenu-java-generic-expression): Fix, to remove "ambiguous" | ||
| 61 | handling of spaces in the regexp. | ||
| 62 | |||
| 1 | 2013-03-15 AgustÃn MartÃn Domingo <agustin.martin@hispalinux.es> | 63 | 2013-03-15 AgustÃn MartÃn Domingo <agustin.martin@hispalinux.es> |
| 2 | 64 | ||
| 3 | * textmodes/ispell.el (ispell-command-loop): Remove | 65 | * textmodes/ispell.el (ispell-command-loop): Remove |
| @@ -150,7 +212,7 @@ | |||
| 150 | * whitespace.el (whitespace-color-on, whitespace-color-off): | 212 | * whitespace.el (whitespace-color-on, whitespace-color-off): |
| 151 | Only call `font-lock-fontify-buffer' when `font-lock-mode' is on. | 213 | Only call `font-lock-fontify-buffer' when `font-lock-mode' is on. |
| 152 | 214 | ||
| 153 | 2013-04-05 Jacek ChrzÄ…szcz <chrzaszcz@mimuw.edu.pl> (tiny change) | 215 | 2013-04-05 Jacek ChrzÄ…szcz <chrzaszcz@mimuw.edu.pl> (tiny change) |
| 154 | 216 | ||
| 155 | * ispell.el (ispell-set-spellchecker-params): | 217 | * ispell.el (ispell-set-spellchecker-params): |
| 156 | Really set `ispell-args' for all equivs. | 218 | Really set `ispell-args' for all equivs. |
| @@ -327,7 +389,7 @@ | |||
| 327 | 2013-03-27 Aidan Gauland <aidalgol@no8wireless.co.nz> | 389 | 2013-03-27 Aidan Gauland <aidalgol@no8wireless.co.nz> |
| 328 | 390 | ||
| 329 | * eshell/em-unix.el: Move su and sudo to... | 391 | * eshell/em-unix.el: Move su and sudo to... |
| 330 | * eshell/em-tramp.el: ...Eshell tramp module | 392 | * eshell/em-tramp.el: ...Eshell tramp module. |
| 331 | 393 | ||
| 332 | 2013-03-26 Stefan Monnier <monnier@iro.umontreal.ca> | 394 | 2013-03-26 Stefan Monnier <monnier@iro.umontreal.ca> |
| 333 | 395 | ||
| @@ -1322,7 +1384,6 @@ | |||
| 1322 | * emacs-lisp/eieio-opt.el (eieio-class-button, eieio-describe-generic) | 1384 | * emacs-lisp/eieio-opt.el (eieio-class-button, eieio-describe-generic) |
| 1323 | (eieio-browse-tree, eieio-browse): Use eieio--check-type. | 1385 | (eieio-browse-tree, eieio-browse): Use eieio--check-type. |
| 1324 | 1386 | ||
| 1325 | |||
| 1326 | 2013-02-18 Aidan Gauland <aidalgol@no8wireless.co.nz> | 1387 | 2013-02-18 Aidan Gauland <aidalgol@no8wireless.co.nz> |
| 1327 | 1388 | ||
| 1328 | * eshell/em-cmpl.el: Correct "context-related help" keybinding in | 1389 | * eshell/em-cmpl.el: Correct "context-related help" keybinding in |
| @@ -1529,7 +1590,7 @@ | |||
| 1529 | [scpc, rsyncc]: Remove methods. | 1590 | [scpc, rsyncc]: Remove methods. |
| 1530 | (top): Remove completion functions for "scpc", "rsyncc", "ssh1_old" | 1591 | (top): Remove completion functions for "scpc", "rsyncc", "ssh1_old" |
| 1531 | and "ssh2_old". | 1592 | and "ssh2_old". |
| 1532 | (tramp-do-copy-or-rename-file-out-of-band): Change trace level. | 1593 | (tramp-do-copy-or-rename-file-out-of-band): Change trace level. |
| 1533 | (tramp-maybe-open-connection): Reuse tmpfile for ControlPath. | 1594 | (tramp-maybe-open-connection): Reuse tmpfile for ControlPath. |
| 1534 | 1595 | ||
| 1535 | 2013-02-13 Stefan Monnier <monnier@iro.umontreal.ca> | 1596 | 2013-02-13 Stefan Monnier <monnier@iro.umontreal.ca> |
| @@ -1538,7 +1599,7 @@ | |||
| 1538 | 1599 | ||
| 1539 | 2013-02-13 Jambunathan K <kjambunathan@gmail.com> | 1600 | 2013-02-13 Jambunathan K <kjambunathan@gmail.com> |
| 1540 | 1601 | ||
| 1541 | * icomplete.el (icomplete-hide-common-prefix): New user option. | 1602 | * icomplete.el (icomplete-hide-common-prefix): New user option. |
| 1542 | (icomplete-first-match): New face. | 1603 | (icomplete-first-match): New face. |
| 1543 | (icomplete-completions): Correct handling of "complete but not | 1604 | (icomplete-completions): Correct handling of "complete but not |
| 1544 | unique" (Bug#12638). | 1605 | unique" (Bug#12638). |
| @@ -1821,7 +1882,7 @@ | |||
| 1821 | instead passing extra parameter HERE to several functions. | 1882 | instead passing extra parameter HERE to several functions. |
| 1822 | Remove 'BOD strategy. | 1883 | Remove 'BOD strategy. |
| 1823 | 1884 | ||
| 1824 | 2013-02-06 Nicolas Richard <theonewiththeevillook@yahoo.fr> (tiny change) | 1885 | 2013-02-06 Nicolas Richard <theonewiththeevillook@yahoo.fr> (tiny change) |
| 1825 | 1886 | ||
| 1826 | * emacs-lisp/package.el (describe-package-1): Tell what archive is | 1887 | * emacs-lisp/package.el (describe-package-1): Tell what archive is |
| 1827 | used to install the package. | 1888 | used to install the package. |
| @@ -2213,7 +2274,7 @@ | |||
| 2213 | 2274 | ||
| 2214 | * xml.el (xml-entity-or-char-ref-re): Fix regexp. | 2275 | * xml.el (xml-entity-or-char-ref-re): Fix regexp. |
| 2215 | 2276 | ||
| 2216 | 2013-01-24 Aaron Ecay <aaronecay@gmail.com> (tiny change) | 2277 | 2013-01-24 Aaron Ecay <aaronecay@gmail.com> (tiny change) |
| 2217 | 2278 | ||
| 2218 | * paren.el (show-paren-function): Make sure to set 'priority and | 2279 | * paren.el (show-paren-function): Make sure to set 'priority and |
| 2219 | 'face only if the overlay does exist. | 2280 | 'face only if the overlay does exist. |
| @@ -2373,7 +2434,7 @@ | |||
| 2373 | 2434 | ||
| 2374 | 2013-01-15 Michael R. Mauger <mmaug@yahoo.com> | 2435 | 2013-01-15 Michael R. Mauger <mmaug@yahoo.com> |
| 2375 | 2436 | ||
| 2376 | * progmodes/sql.el: (sql-imenu-generic-expression): | 2437 | * progmodes/sql.el (sql-imenu-generic-expression): |
| 2377 | (sql-mode-font-lock-object-name): Match schema qualified names. | 2438 | (sql-mode-font-lock-object-name): Match schema qualified names. |
| 2378 | (sql-connect): Use string keys. | 2439 | (sql-connect): Use string keys. |
| 2379 | (sql-product-interactive): Wait for interpreter prompt. | 2440 | (sql-product-interactive): Wait for interpreter prompt. |
| @@ -2992,7 +3053,7 @@ | |||
| 2992 | * calc/calc-forms.el (math-parse-date): Try using | 3053 | * calc/calc-forms.el (math-parse-date): Try using |
| 2993 | `math-parse-iso-date' when it looks like it might be needed. | 3054 | `math-parse-iso-date' when it looks like it might be needed. |
| 2994 | Allow times of 24:00. | 3055 | Allow times of 24:00. |
| 2995 | (math-parse-date-validate, math-parse-iso-date-validate): Allow times | 3056 | (math-parse-date-validate, math-parse-iso-date-validate): Allow times |
| 2996 | of 24:00. | 3057 | of 24:00. |
| 2997 | 3058 | ||
| 2998 | 2012-12-30 Glenn Morris <rgm@gnu.org> | 3059 | 2012-12-30 Glenn Morris <rgm@gnu.org> |
| @@ -3155,7 +3216,7 @@ | |||
| 3155 | (tramp-adb-get-toolbox): New defun. Check for remote shell | 3216 | (tramp-adb-get-toolbox): New defun. Check for remote shell |
| 3156 | implementation (BusyBox or Toolbox). | 3217 | implementation (BusyBox or Toolbox). |
| 3157 | 3218 | ||
| 3158 | 2012-12-24 Constantin Kulikov <zxnotdead@gmail.com> (tiny change) | 3219 | 2012-12-24 Constantin Kulikov <zxnotdead@gmail.com> (tiny change) |
| 3159 | 3220 | ||
| 3160 | * startup.el (initial-buffer-choice): Allow function as value | 3221 | * startup.el (initial-buffer-choice): Allow function as value |
| 3161 | (Bug#13251). | 3222 | (Bug#13251). |
| @@ -3302,7 +3363,7 @@ | |||
| 3302 | Add `file-acl' and `set-file-acl' handlers. | 3363 | Add `file-acl' and `set-file-acl' handlers. |
| 3303 | (tramp-smb-handle-copy-file): Handle PRESERVE-EXTENDED-ATTRIBUTES. | 3364 | (tramp-smb-handle-copy-file): Handle PRESERVE-EXTENDED-ATTRIBUTES. |
| 3304 | 3365 | ||
| 3305 | 2012-12-17 Kelly Dean <kellydeanch@yahoo.com> (tiny change) | 3366 | 2012-12-17 Kelly Dean <kellydeanch@yahoo.com> (tiny change) |
| 3306 | 3367 | ||
| 3307 | * help-macro.el (make-help-screen): Instead of switch-to-buffer | 3368 | * help-macro.el (make-help-screen): Instead of switch-to-buffer |
| 3308 | use pop-to-buffer with NORECORD argument t. As buffer name, use | 3369 | use pop-to-buffer with NORECORD argument t. As buffer name, use |
| @@ -3503,7 +3564,7 @@ | |||
| 3503 | 3564 | ||
| 3504 | 2012-12-11 Jay Belanger <jay.p.belanger@gmail.com> | 3565 | 2012-12-11 Jay Belanger <jay.p.belanger@gmail.com> |
| 3505 | 3566 | ||
| 3506 | * calc/calc.el (calc-standard-date-formats): Add more date | 3567 | * calc/calc.el (calc-standard-date-formats): Add more date |
| 3507 | formats. | 3568 | formats. |
| 3508 | * calc/calc-forms.el (math-parse-iso-date): New function. | 3569 | * calc/calc-forms.el (math-parse-iso-date): New function. |
| 3509 | (math-parse-date): Use `math-parse-iso-date' when appropriate. | 3570 | (math-parse-date): Use `math-parse-iso-date' when appropriate. |
| @@ -3537,7 +3598,7 @@ | |||
| 3537 | 3598 | ||
| 3538 | * subr.el (inotify-event-p, inotify-handle-event): New functions. | 3599 | * subr.el (inotify-event-p, inotify-handle-event): New functions. |
| 3539 | 3600 | ||
| 3540 | 2012-12-10 Dani Moncayo <dmoncayo@gmail.com> | 3601 | 2012-12-10 Dani Moncayo <dmoncayo@gmail.com> |
| 3541 | 3602 | ||
| 3542 | * simple.el (just-one-space): Doc fix. | 3603 | * simple.el (just-one-space): Doc fix. |
| 3543 | 3604 | ||
| @@ -4375,7 +4436,7 @@ | |||
| 4375 | 4436 | ||
| 4376 | 2012-11-19 Jay Belanger <jay.p.belanger@gmail.com> | 4437 | 2012-11-19 Jay Belanger <jay.p.belanger@gmail.com> |
| 4377 | 4438 | ||
| 4378 | * calc/calc-forms.el (math-leap-year-p): Fix formula for negative | 4439 | * calc/calc-forms.el (math-leap-year-p): Fix formula for negative |
| 4379 | year numbers. | 4440 | year numbers. |
| 4380 | (math-date-to-julian-dt): Adjust the initial approximation for the | 4441 | (math-date-to-julian-dt): Adjust the initial approximation for the |
| 4381 | year to deal with the new definition of the DATE. | 4442 | year to deal with the new definition of the DATE. |
| @@ -5460,7 +5521,7 @@ | |||
| 5460 | Recover input meta mode when the new coding system doesn not use 8-bit. | 5521 | Recover input meta mode when the new coding system doesn not use 8-bit. |
| 5461 | Supply TERMINAL arg to set-input-meta-mode. | 5522 | Supply TERMINAL arg to set-input-meta-mode. |
| 5462 | 5523 | ||
| 5463 | 2012-10-17 Michael Heerdegen <michael_heerdegen@web.de> | 5524 | 2012-10-17 Michael Heerdegen <michael_heerdegen@web.de> |
| 5464 | 5525 | ||
| 5465 | * wdired.el (wdired-old-marks): New variable. | 5526 | * wdired.el (wdired-old-marks): New variable. |
| 5466 | (wdired-change-to-wdired-mode): Locally set wdired-old-marks. | 5527 | (wdired-change-to-wdired-mode): Locally set wdired-old-marks. |
diff --git a/lisp/doc-view.el b/lisp/doc-view.el index 6217f5d0a3f..b1f399d5b73 100644 --- a/lisp/doc-view.el +++ b/lisp/doc-view.el | |||
| @@ -881,8 +881,8 @@ Should be invoked when the cached images aren't up-to-date." | |||
| 881 | (defun doc-view-start-process (name program args callback) | 881 | (defun doc-view-start-process (name program args callback) |
| 882 | ;; Make sure the process is started in an existing directory, (rather than | 882 | ;; Make sure the process is started in an existing directory, (rather than |
| 883 | ;; some file-name-handler-managed dir, for example). | 883 | ;; some file-name-handler-managed dir, for example). |
| 884 | (let* ((default-directory (if (file-readable-p default-directory) | 884 | (let* ((default-directory (or (unhandled-file-name-directory |
| 885 | default-directory | 885 | default-directory) |
| 886 | (expand-file-name "~/"))) | 886 | (expand-file-name "~/"))) |
| 887 | (proc (apply 'start-process name doc-view-conversion-buffer | 887 | (proc (apply 'start-process name doc-view-conversion-buffer |
| 888 | program args))) | 888 | program args))) |
diff --git a/lisp/emacs-lisp/nadvice.el b/lisp/emacs-lisp/nadvice.el index 0632c7d2fc0..6c09ddfb8cf 100644 --- a/lisp/emacs-lisp/nadvice.el +++ b/lisp/emacs-lisp/nadvice.el | |||
| @@ -158,11 +158,12 @@ WHERE is a symbol to select an entry in `advice--where-alist'." | |||
| 158 | (advice--make-1 (nth 1 desc) (nth 2 desc) | 158 | (advice--make-1 (nth 1 desc) (nth 2 desc) |
| 159 | function main props))) | 159 | function main props))) |
| 160 | 160 | ||
| 161 | (defun advice--member-p (function definition) | 161 | (defun advice--member-p (function name definition) |
| 162 | (let ((found nil)) | 162 | (let ((found nil)) |
| 163 | (while (and (not found) (advice--p definition)) | 163 | (while (and (not found) (advice--p definition)) |
| 164 | (if (or (equal function (advice--car definition)) | 164 | (if (or (equal function (advice--car definition)) |
| 165 | (equal function (cdr (assq 'name (advice--props definition))))) | 165 | (when name |
| 166 | (equal name (cdr (assq 'name (advice--props definition)))))) | ||
| 166 | (setq found t) | 167 | (setq found t) |
| 167 | (setq definition (advice--cdr definition)))) | 168 | (setq definition (advice--cdr definition)))) |
| 168 | found)) | 169 | found)) |
| @@ -235,9 +236,8 @@ PROPS is an alist of additional properties, among which the following have | |||
| 235 | a special meaning: | 236 | a special meaning: |
| 236 | - `name': a string or symbol. It can be used to refer to this piece of advice. | 237 | - `name': a string or symbol. It can be used to refer to this piece of advice. |
| 237 | 238 | ||
| 238 | PLACE cannot be a simple variable. Instead it should either be | 239 | If PLACE is a simple variable, only its global value will be affected. |
| 239 | \(default-value 'VAR) or (local 'VAR) depending on whether FUNCTION | 240 | Use (local 'VAR) if you want to apply FUNCTION to VAR buffer-locally. |
| 240 | should be applied to VAR buffer-locally or globally. | ||
| 241 | 241 | ||
| 242 | If one of FUNCTION or OLDFUN is interactive, then the resulting function | 242 | If one of FUNCTION or OLDFUN is interactive, then the resulting function |
| 243 | is also interactive. There are 3 cases: | 243 | is also interactive. There are 3 cases: |
| @@ -250,12 +250,13 @@ is also interactive. There are 3 cases: | |||
| 250 | (cond ((eq 'local (car-safe place)) | 250 | (cond ((eq 'local (car-safe place)) |
| 251 | (setq place `(advice--buffer-local ,@(cdr place)))) | 251 | (setq place `(advice--buffer-local ,@(cdr place)))) |
| 252 | ((symbolp place) | 252 | ((symbolp place) |
| 253 | (error "Use (default-value '%S) or (local '%S)" place place))) | 253 | (setq place `(default-value ',place)))) |
| 254 | `(advice--add-function ,where (gv-ref ,place) ,function ,props)) | 254 | `(advice--add-function ,where (gv-ref ,place) ,function ,props)) |
| 255 | 255 | ||
| 256 | ;;;###autoload | 256 | ;;;###autoload |
| 257 | (defun advice--add-function (where ref function props) | 257 | (defun advice--add-function (where ref function props) |
| 258 | (unless (advice--member-p function (gv-deref ref)) | 258 | (unless (advice--member-p function (cdr (assq 'name props)) |
| 259 | (gv-deref ref)) | ||
| 259 | (setf (gv-deref ref) | 260 | (setf (gv-deref ref) |
| 260 | (advice--make where function (gv-deref ref) props)))) | 261 | (advice--make where function (gv-deref ref) props)))) |
| 261 | 262 | ||
| @@ -396,7 +397,7 @@ of the piece of advice." | |||
| 396 | "Return non-nil if ADVICE has been added to FUNCTION-NAME. | 397 | "Return non-nil if ADVICE has been added to FUNCTION-NAME. |
| 397 | Instead of ADVICE being the actual function, it can also be the `name' | 398 | Instead of ADVICE being the actual function, it can also be the `name' |
| 398 | of the piece of advice." | 399 | of the piece of advice." |
| 399 | (advice--member-p advice | 400 | (advice--member-p advice advice |
| 400 | (or (get function-name 'advice--pending) | 401 | (or (get function-name 'advice--pending) |
| 401 | (advice--strip-macro | 402 | (advice--strip-macro |
| 402 | (if (fboundp function-name) | 403 | (if (fboundp function-name) |
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index cc7897accb6..144b6482b9d 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2013-04-16 David Edmondson <dme@dme.org> | ||
| 2 | |||
| 3 | Support <img src="data:...">. | ||
| 4 | |||
| 5 | * shr.el (shr-image-from-data): New function. | ||
| 6 | (shr-tag-img): Use it. | ||
| 7 | |||
| 1 | 2013-04-14 Andrew Cohen <cohen@bu.edu> | 8 | 2013-04-14 Andrew Cohen <cohen@bu.edu> |
| 2 | 9 | ||
| 3 | * nnir.el (nnir-request-set-mark): Make sure we are in the right | 10 | * nnir.el (nnir-request-set-mark): Make sure we are in the right |
diff --git a/lisp/gnus/shr.el b/lisp/gnus/shr.el index 5df5297ba8a..293ba2445e9 100644 --- a/lisp/gnus/shr.el +++ b/lisp/gnus/shr.el | |||
| @@ -593,6 +593,17 @@ size, and full-buffer size." | |||
| 593 | (put-text-property start (point) type value)))))))))) | 593 | (put-text-property start (point) type value)))))))))) |
| 594 | (kill-buffer image-buffer))) | 594 | (kill-buffer image-buffer))) |
| 595 | 595 | ||
| 596 | (defun shr-image-from-data (data) | ||
| 597 | "Return an image from the data: URI content DATA." | ||
| 598 | (when (string-match | ||
| 599 | "\\(\\([^/;,]+\\(/[^;,]+\\)?\\)\\(;[^;,]+\\)*\\)?,\\(.*\\)" | ||
| 600 | data) | ||
| 601 | (let ((param (match-string 4 data)) | ||
| 602 | (payload (url-unhex-string (match-string 5 data)))) | ||
| 603 | (when (string-match "^.*\\(;[ \t]*base64\\)$" param) | ||
| 604 | (setq payload (base64-decode-string payload))) | ||
| 605 | payload))) | ||
| 606 | |||
| 596 | (defun shr-put-image (data alt &optional flags) | 607 | (defun shr-put-image (data alt &optional flags) |
| 597 | "Put image DATA with a string ALT. Return image." | 608 | "Put image DATA with a string ALT. Return image." |
| 598 | (if (display-graphic-p) | 609 | (if (display-graphic-p) |
| @@ -983,6 +994,12 @@ ones, in case fg and bg are nil." | |||
| 983 | ;; Ignore zero-sized or single-pixel images. | 994 | ;; Ignore zero-sized or single-pixel images. |
| 984 | ) | 995 | ) |
| 985 | ((and (not shr-inhibit-images) | 996 | ((and (not shr-inhibit-images) |
| 997 | (string-match "\\`data:" url)) | ||
| 998 | (let ((image (shr-image-from-data (substring url (match-end 0))))) | ||
| 999 | (if image | ||
| 1000 | (funcall shr-put-image-function image alt) | ||
| 1001 | (insert alt)))) | ||
| 1002 | ((and (not shr-inhibit-images) | ||
| 986 | (string-match "\\`cid:" url)) | 1003 | (string-match "\\`cid:" url)) |
| 987 | (let ((url (substring url (match-end 0))) | 1004 | (let ((url (substring url (match-end 0))) |
| 988 | image) | 1005 | image) |
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index 016b16d0740..06ac7a91bea 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el | |||
| @@ -525,7 +525,7 @@ for use at QPOS." | |||
| 525 | (eq t (compare-strings s1 nil nil s2 nil nil 'ignore-case))) | 525 | (eq t (compare-strings s1 nil nil s2 nil nil 'ignore-case))) |
| 526 | 526 | ||
| 527 | (defun completion--twq-all (string ustring completions boundary | 527 | (defun completion--twq-all (string ustring completions boundary |
| 528 | unquote requote) | 528 | _unquote requote) |
| 529 | (when completions | 529 | (when completions |
| 530 | (pcase-let* | 530 | (pcase-let* |
| 531 | ((prefix | 531 | ((prefix |
| @@ -1043,7 +1043,8 @@ scroll the window of possible completions." | |||
| 1043 | (cond | 1043 | (cond |
| 1044 | ;; If there's a fresh completion window with a live buffer, | 1044 | ;; If there's a fresh completion window with a live buffer, |
| 1045 | ;; and this command is repeated, scroll that window. | 1045 | ;; and this command is repeated, scroll that window. |
| 1046 | ((window-live-p minibuffer-scroll-window) | 1046 | ((and (window-live-p minibuffer-scroll-window) |
| 1047 | (eq t (frame-visible-p (window-frame minibuffer-scroll-window)))) | ||
| 1047 | (let ((window minibuffer-scroll-window)) | 1048 | (let ((window minibuffer-scroll-window)) |
| 1048 | (with-current-buffer (window-buffer window) | 1049 | (with-current-buffer (window-buffer window) |
| 1049 | (if (pos-visible-in-window-p (point-max) window) | 1050 | (if (pos-visible-in-window-p (point-max) window) |
| @@ -1140,6 +1141,7 @@ scroll the window of possible completions." | |||
| 1140 | "Complete the minibuffer to an exact match. | 1141 | "Complete the minibuffer to an exact match. |
| 1141 | Repeated uses step through the possible completions." | 1142 | Repeated uses step through the possible completions." |
| 1142 | (interactive) | 1143 | (interactive) |
| 1144 | (setq minibuffer-scroll-window nil) | ||
| 1143 | ;; FIXME: Need to deal with the extra-size issue here as well. | 1145 | ;; FIXME: Need to deal with the extra-size issue here as well. |
| 1144 | ;; FIXME: ~/src/emacs/t<M-TAB>/lisp/minibuffer.el completes to | 1146 | ;; FIXME: ~/src/emacs/t<M-TAB>/lisp/minibuffer.el completes to |
| 1145 | ;; ~/src/emacs/trunk/ and throws away lisp/minibuffer.el. | 1147 | ;; ~/src/emacs/trunk/ and throws away lisp/minibuffer.el. |
| @@ -1162,6 +1164,7 @@ Repeated uses step through the possible completions." | |||
| 1162 | (completion--done (buffer-substring-no-properties start (point)) 'sole) | 1164 | (completion--done (buffer-substring-no-properties start (point)) 'sole) |
| 1163 | ;; Set cycling after modifying the buffer since the flush hook resets it. | 1165 | ;; Set cycling after modifying the buffer since the flush hook resets it. |
| 1164 | (setq completion-cycling t) | 1166 | (setq completion-cycling t) |
| 1167 | (setq this-command 'completion-at-point) ;For minibuffer-complete. | ||
| 1165 | ;; If completing file names, (car all) may be a directory, so we'd now | 1168 | ;; If completing file names, (car all) may be a directory, so we'd now |
| 1166 | ;; have a new set of possible completions and might want to reset | 1169 | ;; have a new set of possible completions and might want to reset |
| 1167 | ;; completion-all-sorted-completions to nil, but we prefer not to, | 1170 | ;; completion-all-sorted-completions to nil, but we prefer not to, |
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el index ba9c42e4c89..af52ad53aad 100644 --- a/lisp/progmodes/cc-langs.el +++ b/lisp/progmodes/cc-langs.el | |||
| @@ -812,8 +812,8 @@ Assumed to not contain any submatches or \\| operators." | |||
| 812 | (c-lang-defconst c-anchored-cpp-prefix | 812 | (c-lang-defconst c-anchored-cpp-prefix |
| 813 | "Regexp matching the prefix of a cpp directive anchored to BOL, | 813 | "Regexp matching the prefix of a cpp directive anchored to BOL, |
| 814 | in the languages that have a macro preprocessor." | 814 | in the languages that have a macro preprocessor." |
| 815 | t (if (c-lang-const c-opt-cpp-prefix) | 815 | t "^\\s *\\(#\\)\\s *" |
| 816 | (concat "^" (c-lang-const c-opt-cpp-prefix)))) | 816 | (java awk) nil) |
| 817 | (c-lang-defvar c-anchored-cpp-prefix (c-lang-const c-anchored-cpp-prefix)) | 817 | (c-lang-defvar c-anchored-cpp-prefix (c-lang-const c-anchored-cpp-prefix)) |
| 818 | 818 | ||
| 819 | (c-lang-defconst c-opt-cpp-start | 819 | (c-lang-defconst c-opt-cpp-start |
diff --git a/lisp/progmodes/cc-menus.el b/lisp/progmodes/cc-menus.el index a06eaf566d8..067a4df13dd 100644 --- a/lisp/progmodes/cc-menus.el +++ b/lisp/progmodes/cc-menus.el | |||
| @@ -161,49 +161,132 @@ A sample value might look like: `\\(_P\\|_PROTO\\)'.") | |||
| 161 | cc-imenu-c++-generic-expression | 161 | cc-imenu-c++-generic-expression |
| 162 | "Imenu generic expression for C mode. See `imenu-generic-expression'.") | 162 | "Imenu generic expression for C mode. See `imenu-generic-expression'.") |
| 163 | 163 | ||
| 164 | (defvar cc-imenu-java-generic-expression | 164 | |
| 165 | ;; Auxiliary regexps for Java try to match their trailing whitespace where | ||
| 166 | ;; appropriate, but _not_ starting whitespace. | ||
| 167 | |||
| 168 | (defconst cc-imenu-java-ellipsis-regexp | ||
| 169 | (concat | ||
| 170 | "\\.\\{3\\}" | ||
| 171 | "[ \t\n\r]*")) | ||
| 172 | |||
| 173 | (defun cc-imenu-java-build-type-args-regex (depth) | ||
| 174 | "Builds regexp for type arguments list with DEPTH allowed | ||
| 175 | nested angle brackets constructs." | ||
| 176 | (if (> depth 0) | ||
| 177 | (concat "<" | ||
| 178 | "[][.," c-alnum "_? \t\n\r]+" | ||
| 179 | (if (> depth 1) | ||
| 180 | "\\(") | ||
| 181 | (cc-imenu-java-build-type-args-regex (1- depth)) | ||
| 182 | (if (> depth 1) | ||
| 183 | (concat "[][.," c-alnum "_? \t\n\r]*" | ||
| 184 | "\\)*")) | ||
| 185 | ">"))) | ||
| 186 | |||
| 187 | (defconst cc-imenu-java-type-spec-regexp | ||
| 188 | (concat | ||
| 189 | ;; zero or more identifiers followed by a dot | ||
| 190 | "\\(" | ||
| 191 | "[" c-alpha "_][" c-alnum "_]*\\." | ||
| 192 | "\\)*" | ||
| 193 | ;; a single mandatory identifier without a dot | ||
| 194 | "[" c-alpha "_][" c-alnum "_]*" | ||
| 195 | ;; then choice: | ||
| 196 | "\\(" | ||
| 197 | ;; (option 1) type arguments list which _may_ be followed with brackets | ||
| 198 | ;; and/or spaces, then optional variable arity | ||
| 199 | "[ \t\n\r]*" | ||
| 200 | (cc-imenu-java-build-type-args-regex 3) | ||
| 201 | "[][ \t\n\r]*" | ||
| 202 | "\\(" cc-imenu-java-ellipsis-regexp "\\)?" | ||
| 203 | "\\|" | ||
| 204 | ;; (option 2) just brackets and/or spaces (there should be at least one), | ||
| 205 | ;; then optional variable arity | ||
| 206 | "[][ \t\n\r]+" | ||
| 207 | "\\(" cc-imenu-java-ellipsis-regexp "\\)?" | ||
| 208 | "\\|" | ||
| 209 | ;; (option 3) just variable arity | ||
| 210 | cc-imenu-java-ellipsis-regexp | ||
| 211 | "\\)")) | ||
| 212 | |||
| 213 | (defconst cc-imenu-java-comment-regexp | ||
| 214 | (concat | ||
| 215 | "/" | ||
| 216 | "\\(" | ||
| 217 | ;; a traditional comment | ||
| 218 | "\\*" | ||
| 219 | "\\(" | ||
| 220 | "[^*]" | ||
| 221 | "\\|" | ||
| 222 | "\\*+[^/*]" | ||
| 223 | "\\)*" | ||
| 224 | "\\*+/" | ||
| 225 | "\\|" | ||
| 226 | ;; an end-of-line comment | ||
| 227 | "/[^\n\r]*[\n\r]" | ||
| 228 | "\\)" | ||
| 229 | "[ \t\n\r]*" | ||
| 230 | )) | ||
| 231 | |||
| 232 | ;; Comments are allowed before the argument, after any of the | ||
| 233 | ;; modifiers and after the identifier. | ||
| 234 | (defconst cc-imenu-java-method-arg-regexp | ||
| 235 | (concat | ||
| 236 | "\\(" cc-imenu-java-comment-regexp "\\)*" | ||
| 237 | ;; optional modifiers | ||
| 238 | "\\(" | ||
| 239 | ;; a modifier is either an annotation or "final" | ||
| 240 | "\\(" | ||
| 241 | "@[" c-alpha "_]" | ||
| 242 | "[" c-alnum "._]*" | ||
| 243 | ;; TODO support element-value pairs! | ||
| 244 | "\\|" | ||
| 245 | "final" | ||
| 246 | "\\)" | ||
| 247 | ;; a modifier ends with comments and/or ws | ||
| 248 | "\\(" | ||
| 249 | "\\(" cc-imenu-java-comment-regexp "\\)+" | ||
| 250 | "\\|" | ||
| 251 | "[ \t\n\r]+" | ||
| 252 | "\\(" cc-imenu-java-comment-regexp "\\)*" | ||
| 253 | "\\)" | ||
| 254 | "\\)*" | ||
| 255 | ;; type spec | ||
| 256 | cc-imenu-java-type-spec-regexp | ||
| 257 | ;; identifier | ||
| 258 | "[" c-alpha "_]" | ||
| 259 | "[" c-alnum "_]*" | ||
| 260 | ;; optional comments and/or ws | ||
| 261 | "[ \t\n\r]*" | ||
| 262 | "\\(" cc-imenu-java-comment-regexp "\\)*" | ||
| 263 | )) | ||
| 264 | |||
| 265 | (defconst cc-imenu-java-generic-expression | ||
| 165 | `((nil | 266 | `((nil |
| 166 | ,(concat | 267 | ,(concat |
| 167 | "[" c-alpha "_][\]\[." c-alnum "_<> ]+[ \t\n\r]+" ; type spec | 268 | cc-imenu-java-type-spec-regexp |
| 168 | "\\([" c-alpha "_][" c-alnum "_]*\\)" ; method name | 269 | "\\(" ; method name which gets captured |
| 270 | ; into index | ||
| 271 | "[" c-alpha "_]" | ||
| 272 | "[" c-alnum "_]*" | ||
| 273 | "\\)" | ||
| 169 | "[ \t\n\r]*" | 274 | "[ \t\n\r]*" |
| 170 | ;; An argument list htat is either empty or contains any number | 275 | ;; An argument list that contains zero or more arguments. |
| 171 | ;; of arguments. An argument is any number of annotations | 276 | (concat |
| 172 | ;; followed by a type spec followed by a word. A word is an | 277 | "(" |
| 173 | ;; identifier. A type spec is an identifier, possibly followed | 278 | "[ \t\n\r]*" |
| 174 | ;; by < typespec > possibly followed by []. | 279 | "\\(" |
| 175 | (concat "(" | 280 | "\\(" cc-imenu-java-method-arg-regexp ",[ \t\n\r]*\\)*" |
| 176 | "\\(" | 281 | cc-imenu-java-method-arg-regexp |
| 177 | "[ \t\n\r]*" | 282 | "\\)?" |
| 178 | "\\(" | 283 | ")" |
| 179 | "@" | 284 | "[.,_" c-alnum " \t\n\r]*" ; throws etc. |
| 180 | "[" c-alpha "_]" | 285 | "{" |
| 181 | "[" c-alnum "._]""*" | 286 | )) 7)) |
| 182 | "[ \t\n\r]+" | ||
| 183 | "\\)*" | ||
| 184 | "\\(" | ||
| 185 | "[" c-alpha "_]" | ||
| 186 | "[\]\[" c-alnum "_.]*" | ||
| 187 | "\\(" | ||
| 188 | |||
| 189 | "<" | ||
| 190 | "[ \t\n\r]*" | ||
| 191 | "[\]\[.," c-alnum "_<> \t\n\r]*" | ||
| 192 | ">" | ||
| 193 | "\\)?" | ||
| 194 | "\\(\\[\\]\\)?" | ||
| 195 | "[ \t\n\r]+" | ||
| 196 | "\\)" | ||
| 197 | "[" c-alpha "_]" | ||
| 198 | "[" c-alnum "_]*" | ||
| 199 | "[ \t\n\r,]*" | ||
| 200 | "\\)*" | ||
| 201 | ")" | ||
| 202 | "[.," c-alnum " \t\n\r]*" | ||
| 203 | "{" | ||
| 204 | )) 1)) | ||
| 205 | "Imenu generic expression for Java mode. See `imenu-generic-expression'.") | 287 | "Imenu generic expression for Java mode. See `imenu-generic-expression'.") |
| 206 | 288 | ||
| 289 | |||
| 207 | ;; Internal variables | 290 | ;; Internal variables |
| 208 | (defvar cc-imenu-objc-generic-expression-noreturn-index nil) | 291 | (defvar cc-imenu-objc-generic-expression-noreturn-index nil) |
| 209 | (defvar cc-imenu-objc-generic-expression-general-func-index nil) | 292 | (defvar cc-imenu-objc-generic-expression-general-func-index nil) |
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el index 3c3a5766582..17e80b8b25b 100644 --- a/lisp/progmodes/cc-mode.el +++ b/lisp/progmodes/cc-mode.el | |||
| @@ -936,7 +936,8 @@ Note that the style variables are always made local to the buffer." | |||
| 936 | 936 | ||
| 937 | ;; Add needed properties to each CPP construct in the region. | 937 | ;; Add needed properties to each CPP construct in the region. |
| 938 | (goto-char c-new-BEG) | 938 | (goto-char c-new-BEG) |
| 939 | (let ((pps-position c-new-BEG) pps-state mbeg) | 939 | (skip-chars-backward " \t") |
| 940 | (let ((pps-position (point)) pps-state mbeg) | ||
| 940 | (while (and (< (point) c-new-END) | 941 | (while (and (< (point) c-new-END) |
| 941 | (search-forward-regexp c-anchored-cpp-prefix c-new-END t)) | 942 | (search-forward-regexp c-anchored-cpp-prefix c-new-END t)) |
| 942 | ;; If we've found a "#" inside a string/comment, ignore it. | 943 | ;; If we've found a "#" inside a string/comment, ignore it. |
| @@ -945,14 +946,12 @@ Note that the style variables are always made local to the buffer." | |||
| 945 | pps-position (point)) | 946 | pps-position (point)) |
| 946 | (unless (or (nth 3 pps-state) ; in a string? | 947 | (unless (or (nth 3 pps-state) ; in a string? |
| 947 | (nth 4 pps-state)) ; in a comment? | 948 | (nth 4 pps-state)) ; in a comment? |
| 948 | (goto-char (match-beginning 0)) | 949 | (goto-char (match-beginning 1)) |
| 949 | (setq mbeg (point)) | 950 | (setq mbeg (point)) |
| 950 | (if (> (c-syntactic-end-of-macro) mbeg) | 951 | (if (> (c-syntactic-end-of-macro) mbeg) |
| 951 | (progn | 952 | (progn |
| 952 | (c-neutralize-CPP-line mbeg (point)) | 953 | (c-neutralize-CPP-line mbeg (point)) |
| 953 | (c-set-cpp-delimiters mbeg (point)) | 954 | (c-set-cpp-delimiters mbeg (point))) |
| 954 | ;(setq pps-position (point)) | ||
| 955 | ) | ||
| 956 | (forward-line)) ; no infinite loop with, e.g., "#//" | 955 | (forward-line)) ; no infinite loop with, e.g., "#//" |
| 957 | ))))) | 956 | ))))) |
| 958 | 957 | ||
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index 6e471d1aa2a..631badac34c 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el | |||
| @@ -847,22 +847,24 @@ Can be one of `heredoc', `modifier', `expr-qstr', `expr-re'." | |||
| 847 | indent)))) | 847 | indent)))) |
| 848 | 848 | ||
| 849 | (defun ruby-beginning-of-defun (&optional arg) | 849 | (defun ruby-beginning-of-defun (&optional arg) |
| 850 | "Move backward to the beginning of the current top-level defun. | 850 | "Move backward to the beginning of the current defun. |
| 851 | With ARG, move backward multiple defuns. Negative ARG means | 851 | With ARG, move backward multiple defuns. Negative ARG means |
| 852 | move forward." | 852 | move forward." |
| 853 | (interactive "p") | 853 | (interactive "p") |
| 854 | (and (re-search-backward (concat "^\\s *" ruby-defun-beg-re "\\_>") | 854 | (let (case-fold-search) |
| 855 | nil t (or arg 1)) | 855 | (and (re-search-backward (concat "^\\s *" ruby-defun-beg-re "\\_>") |
| 856 | (beginning-of-line))) | 856 | nil t (or arg 1)) |
| 857 | 857 | (beginning-of-line)))) | |
| 858 | (defun ruby-end-of-defun (&optional arg) | 858 | |
| 859 | "Move forward to the end of the current top-level defun. | 859 | (defun ruby-end-of-defun () |
| 860 | With ARG, move forward multiple defuns. Negative ARG means | 860 | "Move point to the end of the current defun. |
| 861 | move backward." | 861 | The defun begins at or after the point. This function is called |
| 862 | by `end-of-defun'." | ||
| 862 | (interactive "p") | 863 | (interactive "p") |
| 863 | (ruby-forward-sexp) | 864 | (ruby-forward-sexp) |
| 864 | (when (looking-back (concat "^\\s *" ruby-block-end-re)) | 865 | (let (case-fold-search) |
| 865 | (forward-line 1))) | 866 | (when (looking-back (concat "^\\s *" ruby-block-end-re)) |
| 867 | (forward-line 1)))) | ||
| 866 | 868 | ||
| 867 | (defun ruby-beginning-of-indent () | 869 | (defun ruby-beginning-of-indent () |
| 868 | "Backtrack to a line which can be used as a reference for | 870 | "Backtrack to a line which can be used as a reference for |
| @@ -881,6 +883,7 @@ current block, a sibling block, or an outer block. Do that (abs N) times." | |||
| 881 | (depth (or (nth 2 (ruby-parse-region (line-beginning-position) | 883 | (depth (or (nth 2 (ruby-parse-region (line-beginning-position) |
| 882 | (line-end-position))) | 884 | (line-end-position))) |
| 883 | 0)) | 885 | 0)) |
| 886 | case-fold-search | ||
| 884 | down done) | 887 | down done) |
| 885 | (when (< (* depth signum) 0) | 888 | (when (< (* depth signum) 0) |
| 886 | ;; Moving end -> end or beginning -> beginning. | 889 | ;; Moving end -> end or beginning -> beginning. |
diff --git a/lisp/term/ns-win.el b/lisp/term/ns-win.el index 5617c31beff..0d4d3aaa26b 100644 --- a/lisp/term/ns-win.el +++ b/lisp/term/ns-win.el | |||
| @@ -895,7 +895,7 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.") | |||
| 895 | 895 | ||
| 896 | ;; Do the actual Nextstep Windows setup here; the above code just | 896 | ;; Do the actual Nextstep Windows setup here; the above code just |
| 897 | ;; defines functions and variables that we use now. | 897 | ;; defines functions and variables that we use now. |
| 898 | (defun ns-initialize-window-system (&optional display) | 898 | (defun ns-initialize-window-system (&optional _display) |
| 899 | "Initialize Emacs for Nextstep (Cocoa / GNUstep) windowing." | 899 | "Initialize Emacs for Nextstep (Cocoa / GNUstep) windowing." |
| 900 | (cl-assert (not ns-initialized)) | 900 | (cl-assert (not ns-initialized)) |
| 901 | 901 | ||
diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el index b0f65812eab..acadb0fad43 100644 --- a/lisp/term/w32-win.el +++ b/lisp/term/w32-win.el | |||
| @@ -246,7 +246,7 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.") | |||
| 246 | (declare-function x-parse-geometry "frame.c" (string)) | 246 | (declare-function x-parse-geometry "frame.c" (string)) |
| 247 | (defvar x-command-line-resources) | 247 | (defvar x-command-line-resources) |
| 248 | 248 | ||
| 249 | (defun w32-initialize-window-system (&optional display) | 249 | (defun w32-initialize-window-system (&optional _display) |
| 250 | "Initialize Emacs for W32 GUI frames." | 250 | "Initialize Emacs for W32 GUI frames." |
| 251 | (cl-assert (not w32-initialized)) | 251 | (cl-assert (not w32-initialized)) |
| 252 | 252 | ||
diff --git a/src/ChangeLog b/src/ChangeLog index 11b82f57108..04a6c353619 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2013-04-16 Juanma Barranquero <lekktu@gmail.com> | ||
| 2 | |||
| 3 | * minibuf.c (Ftest_completion): Silence compiler warning. | ||
| 4 | |||
| 1 | 2013-04-15 Eli Zaretskii <eliz@gnu.org> | 5 | 2013-04-15 Eli Zaretskii <eliz@gnu.org> |
| 2 | 6 | ||
| 3 | * w32fns.c (w32_wnd_proc): Add more assertions to investigate | 7 | * w32fns.c (w32_wnd_proc): Add more assertions to investigate |
| @@ -1257,7 +1261,7 @@ | |||
| 1257 | (Fcommand_execute): Remove, replace by an Elisp implementation. | 1261 | (Fcommand_execute): Remove, replace by an Elisp implementation. |
| 1258 | (syms_of_keyboard): Adjust accordingly. | 1262 | (syms_of_keyboard): Adjust accordingly. |
| 1259 | 1263 | ||
| 1260 | 2013-02-19 Daniel Colascione <dancol@dancol.org> | 1264 | 2013-02-19 Daniel Colascione <dancol@dancol.org> |
| 1261 | 1265 | ||
| 1262 | * sheap.c (report_sheap_usage): Use message, not message1, so | 1266 | * sheap.c (report_sheap_usage): Use message, not message1, so |
| 1263 | that we don't try to create a buffer while we're in the middle | 1267 | that we don't try to create a buffer while we're in the middle |
| @@ -12081,9 +12085,9 @@ | |||
| 12081 | to denote vector blocks. Adjust users (live_vector_p, | 12085 | to denote vector blocks. Adjust users (live_vector_p, |
| 12082 | mark_maybe_pointer, valid_lisp_object_p) accordingly. | 12086 | mark_maybe_pointer, valid_lisp_object_p) accordingly. |
| 12083 | (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG. | 12087 | (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG. |
| 12084 | (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES), | 12088 | (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES) |
| 12085 | (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX), | 12089 | (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX) |
| 12086 | (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST), | 12090 | (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST) |
| 12087 | (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros. | 12091 | (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros. |
| 12088 | (roundup_size): New constant. | 12092 | (roundup_size): New constant. |
| 12089 | (struct vector_block): New data type. | 12093 | (struct vector_block): New data type. |
diff --git a/src/minibuf.c b/src/minibuf.c index 4cc1f8d435a..b96d27e0742 100644 --- a/src/minibuf.c +++ b/src/minibuf.c | |||
| @@ -1799,8 +1799,8 @@ the values STRING, PREDICATE and `lambda'. */) | |||
| 1799 | else if (HASH_TABLE_P (collection)) | 1799 | else if (HASH_TABLE_P (collection)) |
| 1800 | { | 1800 | { |
| 1801 | struct Lisp_Hash_Table *h = XHASH_TABLE (collection); | 1801 | struct Lisp_Hash_Table *h = XHASH_TABLE (collection); |
| 1802 | i = hash_lookup (h, string, NULL); | ||
| 1803 | Lisp_Object key = Qnil; | 1802 | Lisp_Object key = Qnil; |
| 1803 | i = hash_lookup (h, string, NULL); | ||
| 1804 | if (i >= 0) | 1804 | if (i >= 0) |
| 1805 | tem = HASH_KEY (h, i); | 1805 | tem = HASH_KEY (h, i); |
| 1806 | else | 1806 | else |
diff --git a/test/automated/ruby-mode-tests.el b/test/automated/ruby-mode-tests.el index 0ebe6d44e34..23dc45ad509 100644 --- a/test/automated/ruby-mode-tests.el +++ b/test/automated/ruby-mode-tests.el | |||
| @@ -487,6 +487,42 @@ VALUES-PLIST is a list with alternating index and value elements." | |||
| 487 | (ruby-beginning-of-block) | 487 | (ruby-beginning-of-block) |
| 488 | (should (= 1 (line-number-at-pos))))) | 488 | (should (= 1 (line-number-at-pos))))) |
| 489 | 489 | ||
| 490 | (ert-deftest ruby-move-to-block-does-not-fold-case () | ||
| 491 | (ruby-with-temp-buffer | ||
| 492 | (ruby-test-string | ||
| 493 | "foo do | ||
| 494 | | Module.to_s | ||
| 495 | |end") | ||
| 496 | (end-of-buffer) | ||
| 497 | (let ((case-fold-search t)) | ||
| 498 | (ruby-beginning-of-block)) | ||
| 499 | (should (= 1 (line-number-at-pos))))) | ||
| 500 | |||
| 501 | (ert-deftest ruby-beginning-of-defun-does-not-fold-case () | ||
| 502 | (ruby-with-temp-buffer | ||
| 503 | (ruby-test-string | ||
| 504 | "class C | ||
| 505 | | def bar | ||
| 506 | | Class.to_s | ||
| 507 | | end | ||
| 508 | |end") | ||
| 509 | (goto-line 4) | ||
| 510 | (let ((case-fold-search t)) | ||
| 511 | (beginning-of-defun)) | ||
| 512 | (should (= 2 (line-number-at-pos))))) | ||
| 513 | |||
| 514 | (ert-deftest ruby-end-of-defun-skips-to-next-line-after-the-method () | ||
| 515 | (ruby-with-temp-buffer | ||
| 516 | (ruby-test-string | ||
| 517 | "class D | ||
| 518 | | def tee | ||
| 519 | | 'ho hum' | ||
| 520 | | end | ||
| 521 | |end") | ||
| 522 | (goto-line 2) | ||
| 523 | (end-of-defun) | ||
| 524 | (should (= 5 (line-number-at-pos))))) | ||
| 525 | |||
| 490 | (provide 'ruby-mode-tests) | 526 | (provide 'ruby-mode-tests) |
| 491 | 527 | ||
| 492 | ;;; ruby-mode-tests.el ends here | 528 | ;;; ruby-mode-tests.el ends here |