diff options
| author | Joakim Verona | 2011-09-19 11:37:46 +0200 |
|---|---|---|
| committer | Joakim Verona | 2011-09-19 11:37:46 +0200 |
| commit | 4caed0bee59613be5d2a6c4afabcdc43222f953e (patch) | |
| tree | d0c1debf666ef2107492e6cdd2bc8d6bb17de8a2 | |
| parent | c139d20a0c582a2c8fe3766128092c32b692ac23 (diff) | |
| parent | c5b01d8c63cfd14c95a029540a6fb0da84537726 (diff) | |
| download | emacs-4caed0bee59613be5d2a6c4afabcdc43222f953e.tar.gz emacs-4caed0bee59613be5d2a6c4afabcdc43222f953e.zip | |
upstream
66 files changed, 827 insertions, 377 deletions
diff --git a/.dir-locals.el b/.dir-locals.el index f098f3e7460..4da890f92ab 100644 --- a/.dir-locals.el +++ b/.dir-locals.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; You must set bugtracker_debbugs_url in your bazaar.conf for this to work. | 5 | ;; You must set bugtracker_debbugs_url in your bazaar.conf for this to work. |
| 6 | ;; See admin/notes/bugtracker. | 6 | ;; See admin/notes/bugtracker. |
| 7 | (log-edit-mode . ((log-edit-rewrite-fixes | 7 | (log-edit-mode . ((log-edit-rewrite-fixes |
| 8 | " (bug#\\([0-9]+\\))" . "debbugs:\\1"))) | 8 | "[ \n](bug#\\([0-9]+\\))" . "debbugs:\\1"))) |
| 9 | (change-log-mode . ((add-log-time-zone-rule . t) | 9 | (change-log-mode . ((add-log-time-zone-rule . t) |
| 10 | (fill-column . 74) | 10 | (fill-column . 74) |
| 11 | (bug-reference-url-format . "http://debbugs.gnu.org/%s") | 11 | (bug-reference-url-format . "http://debbugs.gnu.org/%s") |
| @@ -1,3 +1,8 @@ | |||
| 1 | 2011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 2 | |||
| 3 | * .dir-locals.el: Change the debbugs regexp to allow having the | ||
| 4 | bug number as the first thing on a line. | ||
| 5 | |||
| 1 | 2011-09-15 Glenn Morris <rgm@gnu.org> | 6 | 2011-09-15 Glenn Morris <rgm@gnu.org> |
| 2 | 7 | ||
| 3 | * configure.in: Make configure work with recent GNUsteps. | 8 | * configure.in: Make configure work with recent GNUsteps. |
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index d87493d57b3..163eabed2a6 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2011-09-18 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * cmdargs.texi (Icons X): Fix description of Emacs icon. | ||
| 4 | |||
| 5 | * xresources.texi (Table of Resources): Fix documentation of | ||
| 6 | bitmapIcon. | ||
| 7 | |||
| 1 | 2011-09-15 Chong Yidong <cyd@stupidchicken.com> | 8 | 2011-09-15 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 9 | ||
| 3 | * package.texi (Package Menu): Add package-menu-mark-upgrades. | 10 | * package.texi (Package Menu): Add package-menu-mark-upgrades. |
diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi index 2a19e1b009d..07cca53ce4d 100644 --- a/doc/emacs/cmdargs.texi +++ b/doc/emacs/cmdargs.texi | |||
| @@ -1107,7 +1107,7 @@ Start Emacs in an iconified (``minimized'') state. | |||
| 1107 | @itemx --no-bitmap-icon | 1107 | @itemx --no-bitmap-icon |
| 1108 | @opindex --no-bitmap-icon | 1108 | @opindex --no-bitmap-icon |
| 1109 | @cindex Emacs icon, a gnu | 1109 | @cindex Emacs icon, a gnu |
| 1110 | Do not use a picture of a gnu as the Emacs icon. | 1110 | Do not display the Emacs icon. |
| 1111 | @end table | 1111 | @end table |
| 1112 | 1112 | ||
| 1113 | Most window managers allow you to ``iconify'' (or ``minimize'') an | 1113 | Most window managers allow you to ``iconify'' (or ``minimize'') an |
diff --git a/doc/emacs/xresources.texi b/doc/emacs/xresources.texi index d30f7e42254..c2e65268d1b 100644 --- a/doc/emacs/xresources.texi +++ b/doc/emacs/xresources.texi | |||
| @@ -169,11 +169,10 @@ with the class that it belongs to: | |||
| 169 | @item @code{background} (class @code{Background}) | 169 | @item @code{background} (class @code{Background}) |
| 170 | Background color name. | 170 | Background color name. |
| 171 | 171 | ||
| 172 | @ifnottex | ||
| 173 | @item @code{bitmapIcon} (class @code{BitmapIcon}) | 172 | @item @code{bitmapIcon} (class @code{BitmapIcon}) |
| 174 | Use a bitmap icon (a picture of a gnu) if @samp{on}, let the window | 173 | Tell the window manager to display the Emacs icon if @samp{on}; don't |
| 175 | manager choose an icon if @samp{off}. | 174 | do so if @samp{off}. (The icon is usually shown in the ``taskbar'' on |
| 176 | @end ifnottex | 175 | a graphical desktop.) |
| 177 | 176 | ||
| 178 | @item @code{borderColor} (class @code{BorderColor}) | 177 | @item @code{borderColor} (class @code{BorderColor}) |
| 179 | Color name for the external border. | 178 | Color name for the external border. |
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 71dc8a8ff89..09958f6b7e0 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog | |||
| @@ -1,3 +1,23 @@ | |||
| 1 | 2011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 2 | |||
| 3 | * errors.texi (Standard Errors): Remove apparent placeholder text | ||
| 4 | (bug#9491). | ||
| 5 | |||
| 6 | 2011-09-18 Chong Yidong <cyd@stupidchicken.com> | ||
| 7 | |||
| 8 | * frames.texi (Management Parameters): Fix description of | ||
| 9 | icon-type parameter. | ||
| 10 | |||
| 11 | 2011-09-17 Chong Yidong <cyd@stupidchicken.com> | ||
| 12 | |||
| 13 | * tips.texi (Key Binding Conventions): Don't bind a key sequence | ||
| 14 | ending in C-g. Suggested by Edward O'Connor. | ||
| 15 | |||
| 16 | 2011-09-17 Eli Zaretskii <eliz@gnu.org> | ||
| 17 | |||
| 18 | * numbers.texi (Integer Basics): Add indexing for | ||
| 19 | most-positive-fixnum and most-negative-fixnum. (Bug#9525) | ||
| 20 | |||
| 1 | 2011-09-14 Dani Moncayo <dmoncayo@gmail.com> (tiny change) | 21 | 2011-09-14 Dani Moncayo <dmoncayo@gmail.com> (tiny change) |
| 2 | 22 | ||
| 3 | * lists.texi (Sets And Lists): Fix typo. (Bug#9393) | 23 | * lists.texi (Sets And Lists): Fix typo. (Bug#9393) |
diff --git a/doc/lispref/errors.texi b/doc/lispref/errors.texi index 2c7549d0443..98967b708b3 100644 --- a/doc/lispref/errors.texi +++ b/doc/lispref/errors.texi | |||
| @@ -28,9 +28,6 @@ condition @code{error}, because quitting is not considered an error. | |||
| 28 | handled. | 28 | handled. |
| 29 | 29 | ||
| 30 | @table @code | 30 | @table @code |
| 31 | @item @var{symbol} | ||
| 32 | @var{string}; @var{reference}. | ||
| 33 | |||
| 34 | @item error | 31 | @item error |
| 35 | @code{"error"}@* | 32 | @code{"error"}@* |
| 36 | @xref{Errors}. | 33 | @xref{Errors}. |
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi index e799cfa6b7f..d619b92e4d3 100644 --- a/doc/lispref/frames.texi +++ b/doc/lispref/frames.texi | |||
| @@ -779,10 +779,10 @@ Whether deselecting the frame lowers it (non-@code{nil} means yes). | |||
| 779 | 779 | ||
| 780 | @vindex icon-type, a frame parameter | 780 | @vindex icon-type, a frame parameter |
| 781 | @item icon-type | 781 | @item icon-type |
| 782 | The type of icon to use for this frame when it is iconified. If the | 782 | The type of icon to use for this frame. If the value is a string, |
| 783 | value is a string, that specifies a file containing a bitmap to use. | 783 | that specifies a file containing a bitmap to use; @code{nil} specifies |
| 784 | Any other non-@code{nil} value specifies the default bitmap icon (a | 784 | no icon (in which case the window manager decides what to show); any |
| 785 | picture of a gnu); @code{nil} specifies a text icon. | 785 | other non-@code{nil} value specifies the default Emacs icon. |
| 786 | 786 | ||
| 787 | @vindex icon-name, a frame parameter | 787 | @vindex icon-name, a frame parameter |
| 788 | @item icon-name | 788 | @item icon-name |
diff --git a/doc/lispref/numbers.texi b/doc/lispref/numbers.texi index 65921f444e0..3efddebffb4 100644 --- a/doc/lispref/numbers.texi +++ b/doc/lispref/numbers.texi | |||
| @@ -148,11 +148,15 @@ arguments to such functions may be either numbers or markers, we often | |||
| 148 | give these arguments the name @var{number-or-marker}. When the argument | 148 | give these arguments the name @var{number-or-marker}. When the argument |
| 149 | value is a marker, its position value is used and its buffer is ignored. | 149 | value is a marker, its position value is used and its buffer is ignored. |
| 150 | 150 | ||
| 151 | @cindex largest Lisp integer number | ||
| 152 | @cindex maximum Lisp integer number | ||
| 151 | @defvar most-positive-fixnum | 153 | @defvar most-positive-fixnum |
| 152 | The value of this variable is the largest integer that Emacs Lisp | 154 | The value of this variable is the largest integer that Emacs Lisp |
| 153 | can handle. | 155 | can handle. |
| 154 | @end defvar | 156 | @end defvar |
| 155 | 157 | ||
| 158 | @cindex smallest Lisp integer number | ||
| 159 | @cindex minimum Lisp integer number | ||
| 156 | @defvar most-negative-fixnum | 160 | @defvar most-negative-fixnum |
| 157 | The value of this variable is the smallest integer that Emacs Lisp can | 161 | The value of this variable is the smallest integer that Emacs Lisp can |
| 158 | handle. It is negative. | 162 | handle. It is negative. |
diff --git a/doc/lispref/tips.texi b/doc/lispref/tips.texi index be37eb2034b..fd875b45be9 100644 --- a/doc/lispref/tips.texi +++ b/doc/lispref/tips.texi | |||
| @@ -320,6 +320,10 @@ any context prevents recognition of escape sequences as function keys in | |||
| 320 | that context. | 320 | that context. |
| 321 | 321 | ||
| 322 | @item | 322 | @item |
| 323 | Similarly, don't bind a key sequence ending in @key{C-g}, since that | ||
| 324 | is commonly used to cancel a key sequence. | ||
| 325 | |||
| 326 | @item | ||
| 323 | Anything which acts like a temporary mode or state which the user can | 327 | Anything which acts like a temporary mode or state which the user can |
| 324 | enter and leave should define @kbd{@key{ESC} @key{ESC}} or | 328 | enter and leave should define @kbd{@key{ESC} @key{ESC}} or |
| 325 | @kbd{@key{ESC} @key{ESC} @key{ESC}} as a way to escape. | 329 | @kbd{@key{ESC} @key{ESC} @key{ESC}} as a way to escape. |
diff --git a/doc/man/ChangeLog b/doc/man/ChangeLog index 0735e0593f9..a5146be9175 100644 --- a/doc/man/ChangeLog +++ b/doc/man/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2011-09-17 Sven Joachim <svenjoac@gmx.de> | ||
| 2 | |||
| 3 | * emacs.1: Escape a dash. | ||
| 4 | |||
| 1 | 2011-07-12 Chong Yidong <cyd@stupidchicken.com> | 5 | 2011-07-12 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 6 | ||
| 3 | * emacsclient.1: Document exit status. | 7 | * emacsclient.1: Document exit status. |
diff --git a/doc/man/emacs.1 b/doc/man/emacs.1 index 10fcc186fdd..aef5bd402a2 100644 --- a/doc/man/emacs.1 +++ b/doc/man/emacs.1 | |||
| @@ -407,7 +407,7 @@ The value can be one of | |||
| 407 | .IR fullwidth , | 407 | .IR fullwidth , |
| 408 | or | 408 | or |
| 409 | .IR fullheight , | 409 | .IR fullheight , |
| 410 | which correspond to the command-line options `\-fs', `-mm', `\-fw', | 410 | which correspond to the command-line options `\-fs', `\-mm', `\-fw', |
| 411 | and `\-fh', respectively. | 411 | and `\-fh', respectively. |
| 412 | Note that this applies to the initial frame only. | 412 | Note that this applies to the initial frame only. |
| 413 | .TP | 413 | .TP |
| @@ -814,7 +814,7 @@ They are superseded by shift-select-mode enabled by default in 23.1. | |||
| 814 | * New Modes and Packages in Emacs 24.1 | 814 | * New Modes and Packages in Emacs 24.1 |
| 815 | 815 | ||
| 816 | ** Occur Edit mode applies edits made in *Occur* buffers to the | 816 | ** Occur Edit mode applies edits made in *Occur* buffers to the |
| 817 | original buffers. It is bound to C-x C-q in Occur mode. | 817 | original buffers. It is bound to "e" in Occur mode. |
| 818 | 818 | ||
| 819 | ** New global minor modes electric-pair-mode, electric-indent-mode, | 819 | ** New global minor modes electric-pair-mode, electric-indent-mode, |
| 820 | and electric-layout-mode. | 820 | and electric-layout-mode. |
diff --git a/etc/images/icons/allout-widgets/light-bg/leaf.png b/etc/images/icons/allout-widgets/light-bg/leaf.png index e2d7b189e84..e2d7b189e84 100755..100644 --- a/etc/images/icons/allout-widgets/light-bg/leaf.png +++ b/etc/images/icons/allout-widgets/light-bg/leaf.png | |||
| Binary files differ | |||
diff --git a/etc/images/icons/allout-widgets/light-bg/leaf.xpm b/etc/images/icons/allout-widgets/light-bg/leaf.xpm index f25bf40a258..f25bf40a258 100755..100644 --- a/etc/images/icons/allout-widgets/light-bg/leaf.xpm +++ b/etc/images/icons/allout-widgets/light-bg/leaf.xpm | |||
diff --git a/etc/images/icons/allout-widgets/light-bg/locked-encrypted.png b/etc/images/icons/allout-widgets/light-bg/locked-encrypted.png index a6bc3e99a7a..a6bc3e99a7a 100755..100644 --- a/etc/images/icons/allout-widgets/light-bg/locked-encrypted.png +++ b/etc/images/icons/allout-widgets/light-bg/locked-encrypted.png | |||
| Binary files differ | |||
diff --git a/etc/images/icons/allout-widgets/light-bg/unlocked-encrypted.png b/etc/images/icons/allout-widgets/light-bg/unlocked-encrypted.png index e70d075690a..e70d075690a 100755..100644 --- a/etc/images/icons/allout-widgets/light-bg/unlocked-encrypted.png +++ b/etc/images/icons/allout-widgets/light-bg/unlocked-encrypted.png | |||
| Binary files differ | |||
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 57c623df56a..d748c1a967c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,151 @@ | |||
| 1 | 2011-09-19 Michael Albinus <michael.albinus@gmx.de> | ||
| 2 | |||
| 3 | * net/tramp-sh.el (tramp-inline-compress-commands): Add "xz". | ||
| 4 | Suggested by Liam Stitt <stittl@cuug.ab.ca>. | ||
| 5 | |||
| 6 | 2011-09-18 Juri Linkov <juri@jurta.org> | ||
| 7 | |||
| 8 | * buff-menu.el (Buffer-menu-mode-map): | ||
| 9 | * dired.el (dired-mode-map): | ||
| 10 | * emacs-lisp/lisp-mode.el (emacs-lisp-mode-map) | ||
| 11 | (lisp-interaction-mode-map): | ||
| 12 | * emacs-lisp/package.el (package-menu-mode-map): | ||
| 13 | * epa.el (epa-key-list-mode-map): | ||
| 14 | * menu-bar.el (menu-bar-showhide-tool-bar-menu) | ||
| 15 | (menu-bar-options-menu): | ||
| 16 | * outline.el (outline-mode-menu-bar-map): | ||
| 17 | * vc/vc-bzr.el (vc-bzr-shelve-menu-map, vc-bzr-extra-menu-map): | ||
| 18 | * vc/vc-dir.el (vc-dir-menu-map): | ||
| 19 | * vc/vc-git.el (vc-git-stash-menu-map, vc-git-extra-menu-map): | ||
| 20 | Capitalize non-function content words in menu item strings. | ||
| 21 | |||
| 22 | * dired.el (dired-mode-map): Add menu item for | ||
| 23 | `image-dired-dired-toggle-marked-thumbs'. | ||
| 24 | |||
| 25 | 2011-09-18 Juri Linkov <juri@jurta.org> | ||
| 26 | |||
| 27 | * isearch.el (isearch-edit-string): Bind `isearch-new-case-fold' | ||
| 28 | to `isearch-case-fold-search' and restore its original value | ||
| 29 | after the `isearch-mode' call. | ||
| 30 | |||
| 31 | 2011-09-18 Juri Linkov <juri@jurta.org> | ||
| 32 | |||
| 33 | * progmodes/grep.el (grep-process-setup): Don't check code for 1 | ||
| 34 | because `zgrep' returns 1 for successful matches (bug#9226). | ||
| 35 | |||
| 36 | 2011-09-18 Juri Linkov <juri@jurta.org> | ||
| 37 | |||
| 38 | * info.el (Info-extract-menu-node-name): Check the second match | ||
| 39 | for empty string (second test-case of bug#9528). | ||
| 40 | (Info-last-preorder): Let-bind `Info-history' to nil to not add | ||
| 41 | intermediate nodes to the history (first test-case of bug#9528). | ||
| 42 | |||
| 43 | 2011-09-18 Juri Linkov <juri@jurta.org> | ||
| 44 | |||
| 45 | * info.el (Info-mode-syntax-table): New variable. | ||
| 46 | (Info-mode): Set `:syntax-table' to `Info-mode-syntax-table'. (Bug#3312) | ||
| 47 | |||
| 48 | 2011-09-18 Juri Linkov <juri@jurta.org> | ||
| 49 | |||
| 50 | * info.el (Info-file-supports-index-cookies): Increment | ||
| 51 | line-beginning-position's arg from 3 to 4 because makeinfo outputs | ||
| 52 | one more line for long file names (bug#4142). | ||
| 53 | |||
| 54 | 2011-09-18 Chong Yidong <cyd@stupidchicken.com> | ||
| 55 | |||
| 56 | * newcomment.el (comment-normalize-vars): If prompting for | ||
| 57 | comment-start, set comment-start-skip too (Bug#8424). | ||
| 58 | |||
| 59 | 2011-09-18 Johan Bockgård <bojohan@gnu.org> | ||
| 60 | |||
| 61 | * icomplete.el: Fix previous fix of Bug#5849. | ||
| 62 | (icomplete-mode): Don't set completion-show-inline-help. | ||
| 63 | (icomplete-minibuffer-setup): Set completion-show-inline-help | ||
| 64 | locally during icompletion. | ||
| 65 | |||
| 66 | 2011-09-18 Chong Yidong <cyd@stupidchicken.com> | ||
| 67 | |||
| 68 | * woman.el (woman2-process-escapes): Don't delete unrecognized | ||
| 69 | escapes (Bug#7843). | ||
| 70 | |||
| 71 | * files.el (inhibit-first-line-modes-regexps): Add image files. | ||
| 72 | (hack-local-variables-prop-line): Return nil for malformed | ||
| 73 | prop-lines (Bug#9044). | ||
| 74 | |||
| 75 | 2011-09-18 Michael Albinus <michael.albinus@gmx.de> | ||
| 76 | |||
| 77 | * net/tramp.el (top): Don't require 'shell. | ||
| 78 | (tramp-methods): Fix docstring. | ||
| 79 | (tramp-get-remote-tmpdir): New defun, moved from tramp-sh.el. | ||
| 80 | Return complete remote file name. Handle "smb" case. Use | ||
| 81 | `tramp-tmpdir', if defined for the respective method. | ||
| 82 | (tramp-make-tramp-temp-file): Adapt call of `tramp-get-remote-tmpdir'. | ||
| 83 | |||
| 84 | * net/tramp-compat.el (top): Require 'shell. | ||
| 85 | |||
| 86 | * net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band) | ||
| 87 | (tramp-maybe-open-connection): Use `tramp-file-name-real-host' for | ||
| 88 | `tramp-current-host'. | ||
| 89 | (tramp-get-remote-tmpdir): Remove. | ||
| 90 | |||
| 91 | * net/tramp-smb.el (tramp-methods): Add `tramp-remote-shell' and | ||
| 92 | `tramp-tmpdir' entries. | ||
| 93 | (tramp-smb-errors): Add "NT_STATUS_IMAGE_ALREADY_LOADED". | ||
| 94 | (tramp-smb-handle-file-attributes): Ignore errors. | ||
| 95 | (tramp-smb-wait-for-output): Check also for process end. | ||
| 96 | |||
| 97 | 2011-09-18 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 98 | |||
| 99 | * mail/smtpmail.el (smtpmail-via-smtp): Ignore errors that arise | ||
| 100 | when sending QUIT (bug#9312). | ||
| 101 | |||
| 102 | 2011-09-17 Chong Yidong <cyd@stupidchicken.com> | ||
| 103 | |||
| 104 | * replace.el (occur-mode-map): Rebind occur-edit-mode to "e" (Bug#8463). | ||
| 105 | (occur-edit-mode-map): Bind C-c C-c to occur-cease-edit and C-o to | ||
| 106 | occur-mode-display-occurrence. | ||
| 107 | (occur-edit-mode): Add usage message. | ||
| 108 | (occur-cease-edit): New command. | ||
| 109 | (occur-after-change-function): Use text properties to find the | ||
| 110 | position of the prefix text. | ||
| 111 | (occur-engine): Set stickiness of prefix text properties. | ||
| 112 | |||
| 113 | 2011-09-17 Glenn Morris <rgm@gnu.org> | ||
| 114 | |||
| 115 | * progmodes/etags.el (complete-tag): | ||
| 116 | Fix call to completion-in-region. (Bug#9526) | ||
| 117 | |||
| 118 | 2011-09-17 Juri Linkov <juri@jurta.org> | ||
| 119 | |||
| 120 | * textmodes/ispell.el (ispell-word): Add to the error message | ||
| 121 | the word, ispell program name and current dictionary (bug#9121). | ||
| 122 | (ispell-tex-arg-end): Capitalize "error" in the error message. | ||
| 123 | |||
| 124 | 2011-09-17 Andreas Schwab <schwab@linux-m68k.org> | ||
| 125 | |||
| 126 | * emacs-lisp/bytecomp.el (byte-compile-lapcode): Fix overflow | ||
| 127 | check. (Bug#4251) | ||
| 128 | |||
| 129 | 2011-09-17 Juri Linkov <juri@jurta.org> | ||
| 130 | |||
| 131 | * window.el (window-safe-min-height, window-safe-min-width): | ||
| 132 | Fix typos (followup to bug#9522). | ||
| 133 | |||
| 134 | 2011-09-17 Sven Joachim <svenjoac@gmx.de> | ||
| 135 | |||
| 136 | * window.el (window-min-width, window-state-put): Fix typos (bug#9522). | ||
| 137 | |||
| 138 | 2011-09-16 Eli Zaretskii <eliz@gnu.org> | ||
| 139 | |||
| 140 | * simple.el (line-move): If goal-column is set, move by logical | ||
| 141 | lines, not by display lines. (Bug#971) | ||
| 142 | (next-line, previous-line, goal-column, line-move-visual): Doc fix | ||
| 143 | to reflect the above change. | ||
| 144 | |||
| 145 | 2011-09-16 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 146 | |||
| 147 | * image.el (imagemagick-register-types): Use regexp-opt. | ||
| 148 | |||
| 1 | 2011-09-15 Chong Yidong <cyd@stupidchicken.com> | 149 | 2011-09-15 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 150 | ||
| 3 | * window.el (display-buffer-base-action): Rename from | 151 | * window.el (display-buffer-base-action): Rename from |
| @@ -13,8 +161,8 @@ | |||
| 13 | with an older version, remove it. | 161 | with an older version, remove it. |
| 14 | (package-menu-mark-delete, package-menu-mark-install) | 162 | (package-menu-mark-delete, package-menu-mark-install) |
| 15 | (package-menu-mark-unmark): Make unused args optional. | 163 | (package-menu-mark-unmark): Make unused args optional. |
| 16 | (package-menu-mark-obsolete-for-deletion): Use | 164 | (package-menu-mark-obsolete-for-deletion): |
| 17 | package-menu-get-status instead of a regexp search. | 165 | Use package-menu-get-status instead of a regexp search. |
| 18 | (package-menu-get-status): Use tabulated-list-entry. | 166 | (package-menu-get-status): Use tabulated-list-entry. |
| 19 | (package-menu-mark-upgrades): New command. | 167 | (package-menu-mark-upgrades): New command. |
| 20 | (package-menu-mode-map): Bind it to U. Add it to menu bar. | 168 | (package-menu-mode-map): Bind it to U. Add it to menu bar. |
| @@ -296,7 +444,8 @@ | |||
| 296 | 444 | ||
| 297 | 2011-09-10 Reuben Thomas <rrt@sc3d.org> | 445 | 2011-09-10 Reuben Thomas <rrt@sc3d.org> |
| 298 | 446 | ||
| 299 | * simple.el (count-words-region): Use buffer if there's no region. | 447 | * simple.el (count-words-region): Use buffer if there's no region |
| 448 | (bug#9429). | ||
| 300 | 449 | ||
| 301 | 2011-09-09 Juri Linkov <juri@jurta.org> | 450 | 2011-09-09 Juri Linkov <juri@jurta.org> |
| 302 | 451 | ||
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el index d757453c051..291430d4393 100644 --- a/lisp/buff-menu.el +++ b/lisp/buff-menu.el | |||
| @@ -167,53 +167,53 @@ Auto Revert Mode.") | |||
| 167 | :help ,(purecopy "Refresh the *Buffer List* buffer contents"))) | 167 | :help ,(purecopy "Refresh the *Buffer List* buffer contents"))) |
| 168 | (define-key menu-map [s0] menu-bar-separator) | 168 | (define-key menu-map [s0] menu-bar-separator) |
| 169 | (define-key menu-map [tf] | 169 | (define-key menu-map [tf] |
| 170 | `(menu-item ,(purecopy "Show only file buffers") Buffer-menu-toggle-files-only | 170 | `(menu-item ,(purecopy "Show Only File Buffers") Buffer-menu-toggle-files-only |
| 171 | :button (:toggle . Buffer-menu-files-only) | 171 | :button (:toggle . Buffer-menu-files-only) |
| 172 | :help ,(purecopy "Toggle whether the current buffer-menu displays only file buffers"))) | 172 | :help ,(purecopy "Toggle whether the current buffer-menu displays only file buffers"))) |
| 173 | (define-key menu-map [s1] menu-bar-separator) | 173 | (define-key menu-map [s1] menu-bar-separator) |
| 174 | ;; FIXME: The "Select" entries could use better names... | 174 | ;; FIXME: The "Select" entries could use better names... |
| 175 | (define-key menu-map [sel] | 175 | (define-key menu-map [sel] |
| 176 | `(menu-item ,(purecopy "Select marked") Buffer-menu-select | 176 | `(menu-item ,(purecopy "Select Marked") Buffer-menu-select |
| 177 | :help ,(purecopy "Select this line's buffer; also display buffers marked with `>'"))) | 177 | :help ,(purecopy "Select this line's buffer; also display buffers marked with `>'"))) |
| 178 | (define-key menu-map [bm2] | 178 | (define-key menu-map [bm2] |
| 179 | `(menu-item ,(purecopy "Select two") Buffer-menu-2-window | 179 | `(menu-item ,(purecopy "Select Two") Buffer-menu-2-window |
| 180 | :help ,(purecopy "Select this line's buffer, with previous buffer in second window"))) | 180 | :help ,(purecopy "Select this line's buffer, with previous buffer in second window"))) |
| 181 | (define-key menu-map [bm1] | 181 | (define-key menu-map [bm1] |
| 182 | `(menu-item ,(purecopy "Select current") Buffer-menu-1-window | 182 | `(menu-item ,(purecopy "Select Current") Buffer-menu-1-window |
| 183 | :help ,(purecopy "Select this line's buffer, alone, in full frame"))) | 183 | :help ,(purecopy "Select this line's buffer, alone, in full frame"))) |
| 184 | (define-key menu-map [ow] | 184 | (define-key menu-map [ow] |
| 185 | `(menu-item ,(purecopy "Select in other window") Buffer-menu-other-window | 185 | `(menu-item ,(purecopy "Select in Other Window") Buffer-menu-other-window |
| 186 | :help ,(purecopy "Select this line's buffer in other window, leaving buffer menu visible"))) | 186 | :help ,(purecopy "Select this line's buffer in other window, leaving buffer menu visible"))) |
| 187 | (define-key menu-map [tw] | 187 | (define-key menu-map [tw] |
| 188 | `(menu-item ,(purecopy "Select in current window") Buffer-menu-this-window | 188 | `(menu-item ,(purecopy "Select in Current Window") Buffer-menu-this-window |
| 189 | :help ,(purecopy "Select this line's buffer in this window"))) | 189 | :help ,(purecopy "Select this line's buffer in this window"))) |
| 190 | (define-key menu-map [s2] menu-bar-separator) | 190 | (define-key menu-map [s2] menu-bar-separator) |
| 191 | (define-key menu-map [is] | 191 | (define-key menu-map [is] |
| 192 | `(menu-item ,(purecopy "Regexp Isearch marked buffers") Buffer-menu-isearch-buffers-regexp | 192 | `(menu-item ,(purecopy "Regexp Isearch Marked Buffers...") Buffer-menu-isearch-buffers-regexp |
| 193 | :help ,(purecopy "Search for a regexp through all marked buffers using Isearch"))) | 193 | :help ,(purecopy "Search for a regexp through all marked buffers using Isearch"))) |
| 194 | (define-key menu-map [ir] | 194 | (define-key menu-map [ir] |
| 195 | `(menu-item ,(purecopy "Isearch marked buffers") Buffer-menu-isearch-buffers | 195 | `(menu-item ,(purecopy "Isearch Marked Buffers...") Buffer-menu-isearch-buffers |
| 196 | :help ,(purecopy "Search for a string through all marked buffers using Isearch"))) | 196 | :help ,(purecopy "Search for a string through all marked buffers using Isearch"))) |
| 197 | (define-key menu-map [s3] menu-bar-separator) | 197 | (define-key menu-map [s3] menu-bar-separator) |
| 198 | (define-key menu-map [by] | 198 | (define-key menu-map [by] |
| 199 | `(menu-item ,(purecopy "Bury") Buffer-menu-bury | 199 | `(menu-item ,(purecopy "Bury") Buffer-menu-bury |
| 200 | :help ,(purecopy "Bury the buffer listed on this line"))) | 200 | :help ,(purecopy "Bury the buffer listed on this line"))) |
| 201 | (define-key menu-map [vt] | 201 | (define-key menu-map [vt] |
| 202 | `(menu-item ,(purecopy "Set unmodified") Buffer-menu-not-modified | 202 | `(menu-item ,(purecopy "Set Unmodified") Buffer-menu-not-modified |
| 203 | :help ,(purecopy "Mark buffer on this line as unmodified (no changes to save)"))) | 203 | :help ,(purecopy "Mark buffer on this line as unmodified (no changes to save)"))) |
| 204 | (define-key menu-map [ex] | 204 | (define-key menu-map [ex] |
| 205 | `(menu-item ,(purecopy "Execute") Buffer-menu-execute | 205 | `(menu-item ,(purecopy "Execute") Buffer-menu-execute |
| 206 | :help ,(purecopy "Save and/or delete buffers marked with s or k commands"))) | 206 | :help ,(purecopy "Save and/or delete buffers marked with s or k commands"))) |
| 207 | (define-key menu-map [s4] menu-bar-separator) | 207 | (define-key menu-map [s4] menu-bar-separator) |
| 208 | (define-key menu-map [delb] | 208 | (define-key menu-map [delb] |
| 209 | `(menu-item ,(purecopy "Mark for delete and move backwards") Buffer-menu-delete-backwards | 209 | `(menu-item ,(purecopy "Mark for Delete and Move Backwards") Buffer-menu-delete-backwards |
| 210 | :help ,(purecopy "Mark buffer on this line to be deleted by x command and move up one line"))) | 210 | :help ,(purecopy "Mark buffer on this line to be deleted by x command and move up one line"))) |
| 211 | (define-key menu-map [del] | 211 | (define-key menu-map [del] |
| 212 | `(menu-item ,(purecopy "Mark for delete") Buffer-menu-delete | 212 | `(menu-item ,(purecopy "Mark for Delete") Buffer-menu-delete |
| 213 | :help ,(purecopy "Mark buffer on this line to be deleted by x command"))) | 213 | :help ,(purecopy "Mark buffer on this line to be deleted by x command"))) |
| 214 | 214 | ||
| 215 | (define-key menu-map [sv] | 215 | (define-key menu-map [sv] |
| 216 | `(menu-item ,(purecopy "Mark for save") Buffer-menu-save | 216 | `(menu-item ,(purecopy "Mark for Save") Buffer-menu-save |
| 217 | :help ,(purecopy "Mark buffer on this line to be saved by x command"))) | 217 | :help ,(purecopy "Mark buffer on this line to be saved by x command"))) |
| 218 | (define-key menu-map [umk] | 218 | (define-key menu-map [umk] |
| 219 | `(menu-item ,(purecopy "Unmark") Buffer-menu-unmark | 219 | `(menu-item ,(purecopy "Unmark") Buffer-menu-unmark |
diff --git a/lisp/dired.el b/lisp/dired.el index f01e195f9ec..60ba14ade84 100644 --- a/lisp/dired.el +++ b/lisp/dired.el | |||
| @@ -1552,6 +1552,10 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST." | |||
| 1552 | [menu-bar immediate image-dired-dired-display-image] | 1552 | [menu-bar immediate image-dired-dired-display-image] |
| 1553 | '(menu-item "Display Image" image-dired-dired-display-image | 1553 | '(menu-item "Display Image" image-dired-dired-display-image |
| 1554 | :help "Display sized image in a separate window")) | 1554 | :help "Display sized image in a separate window")) |
| 1555 | (define-key map | ||
| 1556 | [menu-bar immediate image-dired-dired-toggle-marked-thumbs] | ||
| 1557 | '(menu-item "Toggle Image Thumbnails in This Buffer" image-dired-dired-toggle-marked-thumbs | ||
| 1558 | :help "Add or remove image thumbnails in front of marked file names")) | ||
| 1555 | 1559 | ||
| 1556 | (define-key map [menu-bar immediate revert-buffer] | 1560 | (define-key map [menu-bar immediate revert-buffer] |
| 1557 | '(menu-item "Refresh" revert-buffer | 1561 | '(menu-item "Refresh" revert-buffer |
| @@ -1708,7 +1712,7 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST." | |||
| 1708 | :help "Add image comment to current or marked files")) | 1712 | :help "Add image comment to current or marked files")) |
| 1709 | (define-key map | 1713 | (define-key map |
| 1710 | [menu-bar operate image-dired-display-thumbs] | 1714 | [menu-bar operate image-dired-display-thumbs] |
| 1711 | '(menu-item "Display image thumbnails" image-dired-display-thumbs | 1715 | '(menu-item "Display Image Thumbnails" image-dired-display-thumbs |
| 1712 | :help "Display image thumbnails for current or marked image files")) | 1716 | :help "Display image thumbnails for current or marked image files")) |
| 1713 | 1717 | ||
| 1714 | (define-key map [menu-bar operate dashes-4] | 1718 | (define-key map [menu-bar operate dashes-4] |
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 127f93c6858..fae402d4215 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el | |||
| @@ -834,7 +834,7 @@ CONST2 may be evaulated multiple times." | |||
| 834 | (setcar (cdr bytes-tail) (logand pc 255)) | 834 | (setcar (cdr bytes-tail) (logand pc 255)) |
| 835 | (setcar bytes-tail (lsh pc -8)) | 835 | (setcar bytes-tail (lsh pc -8)) |
| 836 | ;; FIXME: Replace this by some workaround. | 836 | ;; FIXME: Replace this by some workaround. |
| 837 | (if (> (car bytes) 255) (error "Bytecode overflow"))) | 837 | (if (> (car bytes-tail) 255) (error "Bytecode overflow"))) |
| 838 | 838 | ||
| 839 | (apply 'unibyte-string (nreverse bytes)))) | 839 | (apply 'unibyte-string (nreverse bytes)))) |
| 840 | 840 | ||
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index f2bea30ea39..9408c0a3c9d 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el | |||
| @@ -297,7 +297,7 @@ font-lock keywords will not be case sensitive." | |||
| 297 | `(menu-item ,(purecopy "Untrace All") untrace-all | 297 | `(menu-item ,(purecopy "Untrace All") untrace-all |
| 298 | :help ,(purecopy "Untrace all currently traced functions"))) | 298 | :help ,(purecopy "Untrace all currently traced functions"))) |
| 299 | (define-key tracing-map [tr-uf] | 299 | (define-key tracing-map [tr-uf] |
| 300 | `(menu-item ,(purecopy "Untrace function...") untrace-function | 300 | `(menu-item ,(purecopy "Untrace Function...") untrace-function |
| 301 | :help ,(purecopy "Untrace function, and possibly activate all remaining advice"))) | 301 | :help ,(purecopy "Untrace function, and possibly activate all remaining advice"))) |
| 302 | (define-key tracing-map [tr-sep] menu-bar-separator) | 302 | (define-key tracing-map [tr-sep] menu-bar-separator) |
| 303 | (define-key tracing-map [tr-q] | 303 | (define-key tracing-map [tr-q] |
| @@ -358,7 +358,7 @@ font-lock keywords will not be case sensitive." | |||
| 358 | `(menu-item ,(purecopy "Byte-compile and Load") emacs-lisp-byte-compile-and-load | 358 | `(menu-item ,(purecopy "Byte-compile and Load") emacs-lisp-byte-compile-and-load |
| 359 | :help ,(purecopy "Byte-compile the current file (if it has changed), then load compiled code"))) | 359 | :help ,(purecopy "Byte-compile the current file (if it has changed), then load compiled code"))) |
| 360 | (define-key menu-map [byte-compile] | 360 | (define-key menu-map [byte-compile] |
| 361 | `(menu-item ,(purecopy "Byte-compile this File") emacs-lisp-byte-compile | 361 | `(menu-item ,(purecopy "Byte-compile This File") emacs-lisp-byte-compile |
| 362 | :help ,(purecopy "Byte compile the file containing the current buffer"))) | 362 | :help ,(purecopy "Byte compile the file containing the current buffer"))) |
| 363 | (define-key menu-map [separator-eval] menu-bar-separator) | 363 | (define-key menu-map [separator-eval] menu-bar-separator) |
| 364 | (define-key menu-map [ielm] | 364 | (define-key menu-map [ielm] |
| @@ -509,7 +509,7 @@ if that value is non-nil." | |||
| 509 | `(menu-item ,(purecopy "Evaluate Defun") eval-defun | 509 | `(menu-item ,(purecopy "Evaluate Defun") eval-defun |
| 510 | :help ,(purecopy "Evaluate the top-level form containing point, or after point"))) | 510 | :help ,(purecopy "Evaluate the top-level form containing point, or after point"))) |
| 511 | (define-key menu-map [eval-print-last-sexp] | 511 | (define-key menu-map [eval-print-last-sexp] |
| 512 | `(menu-item ,(purecopy "Evaluate and print") eval-print-last-sexp | 512 | `(menu-item ,(purecopy "Evaluate and Print") eval-print-last-sexp |
| 513 | :help ,(purecopy "Evaluate sexp before point; print value into current buffer"))) | 513 | :help ,(purecopy "Evaluate sexp before point; print value into current buffer"))) |
| 514 | (define-key menu-map [edebug-defun-lisp-interaction] | 514 | (define-key menu-map [edebug-defun-lisp-interaction] |
| 515 | `(menu-item ,(purecopy "Instrument Function for Debugging") edebug-defun | 515 | `(menu-item ,(purecopy "Instrument Function for Debugging") edebug-defun |
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index f0b1537e2b3..4cab8f43480 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el | |||
| @@ -1297,30 +1297,30 @@ If optional arg NO-ACTIVATE is non-nil, don't activate packages." | |||
| 1297 | '(menu-item "Unmark" package-menu-mark-unmark | 1297 | '(menu-item "Unmark" package-menu-mark-unmark |
| 1298 | :help "Clear any marks on a package and move to the next line")) | 1298 | :help "Clear any marks on a package and move to the next line")) |
| 1299 | (define-key menu-map [munm] | 1299 | (define-key menu-map [munm] |
| 1300 | '(menu-item "Unmark backwards" package-menu-backup-unmark | 1300 | '(menu-item "Unmark Backwards" package-menu-backup-unmark |
| 1301 | :help "Back up one line and clear any marks on that package")) | 1301 | :help "Back up one line and clear any marks on that package")) |
| 1302 | (define-key menu-map [md] | 1302 | (define-key menu-map [md] |
| 1303 | '(menu-item "Mark for deletion" package-menu-mark-delete | 1303 | '(menu-item "Mark for Deletion" package-menu-mark-delete |
| 1304 | :help "Mark a package for deletion and move to the next line")) | 1304 | :help "Mark a package for deletion and move to the next line")) |
| 1305 | (define-key menu-map [mi] | 1305 | (define-key menu-map [mi] |
| 1306 | '(menu-item "Mark for install" package-menu-mark-install | 1306 | '(menu-item "Mark for Install" package-menu-mark-install |
| 1307 | :help "Mark a package for installation and move to the next line")) | 1307 | :help "Mark a package for installation and move to the next line")) |
| 1308 | (define-key menu-map [mupgrades] | 1308 | (define-key menu-map [mupgrades] |
| 1309 | '(menu-item "Mark upgradable packages" package-menu-mark-upgrades | 1309 | '(menu-item "Mark Upgradable Packages" package-menu-mark-upgrades |
| 1310 | :help "Mark packages that have a newer version for upgrading")) | 1310 | :help "Mark packages that have a newer version for upgrading")) |
| 1311 | (define-key menu-map [s3] '("--")) | 1311 | (define-key menu-map [s3] '("--")) |
| 1312 | (define-key menu-map [mg] | 1312 | (define-key menu-map [mg] |
| 1313 | '(menu-item "Update package list" revert-buffer | 1313 | '(menu-item "Update Package List" revert-buffer |
| 1314 | :help "Update the list of packages")) | 1314 | :help "Update the list of packages")) |
| 1315 | (define-key menu-map [mr] | 1315 | (define-key menu-map [mr] |
| 1316 | '(menu-item "Refresh package list" package-menu-refresh | 1316 | '(menu-item "Refresh Package List" package-menu-refresh |
| 1317 | :help "Download the ELPA archive")) | 1317 | :help "Download the ELPA archive")) |
| 1318 | (define-key menu-map [s4] '("--")) | 1318 | (define-key menu-map [s4] '("--")) |
| 1319 | (define-key menu-map [mt] | 1319 | (define-key menu-map [mt] |
| 1320 | '(menu-item "Mark obsolete packages" package-menu-mark-obsolete-for-deletion | 1320 | '(menu-item "Mark Obsolete Packages" package-menu-mark-obsolete-for-deletion |
| 1321 | :help "Mark all obsolete packages for deletion")) | 1321 | :help "Mark all obsolete packages for deletion")) |
| 1322 | (define-key menu-map [mx] | 1322 | (define-key menu-map [mx] |
| 1323 | '(menu-item "Execute actions" package-menu-execute | 1323 | '(menu-item "Execute Actions" package-menu-execute |
| 1324 | :help "Perform all the marked actions")) | 1324 | :help "Perform all the marked actions")) |
| 1325 | (define-key menu-map [s5] '("--")) | 1325 | (define-key menu-map [s5] '("--")) |
| 1326 | (define-key menu-map [mh] | 1326 | (define-key menu-map [mh] |
diff --git a/lisp/epa.el b/lisp/epa.el index f0ec1ece0d1..5164181454a 100644 --- a/lisp/epa.el +++ b/lisp/epa.el | |||
| @@ -239,7 +239,7 @@ You should bind this variable with `let', but do not set it globally.") | |||
| 239 | :help "Encrypt FILE for RECIPIENTS")) | 239 | :help "Encrypt FILE for RECIPIENTS")) |
| 240 | (define-key menu-map [separator-epa-key-list] '(menu-item "--")) | 240 | (define-key menu-map [separator-epa-key-list] '(menu-item "--")) |
| 241 | (define-key menu-map [epa-key-list-delete-keys] | 241 | (define-key menu-map [epa-key-list-delete-keys] |
| 242 | '(menu-item "Delete keys" epa-delete-keys | 242 | '(menu-item "Delete Keys" epa-delete-keys |
| 243 | :help "Delete Marked Keys")) | 243 | :help "Delete Marked Keys")) |
| 244 | (define-key menu-map [epa-key-list-import-keys] | 244 | (define-key menu-map [epa-key-list-import-keys] |
| 245 | '(menu-item "Import Keys" epa-import-keys | 245 | '(menu-item "Import Keys" epa-import-keys |
diff --git a/lisp/files.el b/lisp/files.el index 5ca9af6783d..b29c0596d7b 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -2461,7 +2461,9 @@ of a script, mode MODE is enabled. | |||
| 2461 | 2461 | ||
| 2462 | See also `auto-mode-alist'.") | 2462 | See also `auto-mode-alist'.") |
| 2463 | 2463 | ||
| 2464 | (defvar inhibit-first-line-modes-regexps (mapcar 'purecopy '("\\.tar\\'" "\\.tgz\\'")) | 2464 | (defvar inhibit-first-line-modes-regexps |
| 2465 | (mapcar 'purecopy '("\\.tar\\'" "\\.tgz\\'" "\\.tiff?\\'" | ||
| 2466 | "\\.gif\\'" "\\.png\\'" "\\.jpe?g\\'")) | ||
| 2465 | "List of regexps; if one matches a file name, don't look for `-*-'.") | 2467 | "List of regexps; if one matches a file name, don't look for `-*-'.") |
| 2466 | 2468 | ||
| 2467 | (defvar inhibit-first-line-modes-suffixes nil | 2469 | (defvar inhibit-first-line-modes-suffixes nil |
| @@ -2952,60 +2954,62 @@ Returns an alist of elements (VAR . VAL), where VAR is a variable | |||
| 2952 | and VAL is the specified value. Ignores any specification for | 2954 | and VAL is the specified value. Ignores any specification for |
| 2953 | `mode:' and `coding:' (which should have already been handled | 2955 | `mode:' and `coding:' (which should have already been handled |
| 2954 | by `set-auto-mode' and `set-auto-coding', respectively). | 2956 | by `set-auto-mode' and `set-auto-coding', respectively). |
| 2955 | Throws an error if the -*- line is malformed. | 2957 | Return nil if the -*- line is malformed. |
| 2956 | 2958 | ||
| 2957 | If MODE-ONLY is non-nil, just returns the symbol specifying the | 2959 | If MODE-ONLY is non-nil, just returns the symbol specifying the |
| 2958 | mode, if there is one, otherwise nil." | 2960 | mode, if there is one, otherwise nil." |
| 2959 | (save-excursion | 2961 | (catch 'malformed-line |
| 2960 | (goto-char (point-min)) | 2962 | (save-excursion |
| 2961 | (let ((end (set-auto-mode-1)) | 2963 | (goto-char (point-min)) |
| 2962 | result) | 2964 | (let ((end (set-auto-mode-1)) |
| 2963 | (cond ((not end) | 2965 | result) |
| 2964 | nil) | 2966 | (cond ((not end) |
| 2965 | ((looking-at "[ \t]*\\([^ \t\n\r:;]+\\)\\([ \t]*-\\*-\\)") | 2967 | nil) |
| 2966 | ;; Simple form: "-*- MODENAME -*-". | 2968 | ((looking-at "[ \t]*\\([^ \t\n\r:;]+\\)\\([ \t]*-\\*-\\)") |
| 2967 | (if mode-only | 2969 | ;; Simple form: "-*- MODENAME -*-". |
| 2968 | (intern (concat (match-string 1) "-mode")))) | 2970 | (if mode-only |
| 2969 | (t | 2971 | (intern (concat (match-string 1) "-mode")))) |
| 2970 | ;; Hairy form: '-*-' [ <variable> ':' <value> ';' ]* '-*-' | 2972 | (t |
| 2971 | ;; (last ";" is optional). | 2973 | ;; Hairy form: '-*-' [ <variable> ':' <value> ';' ]* '-*-' |
| 2972 | ;; If MODE-ONLY, just check for `mode'. | 2974 | ;; (last ";" is optional). |
| 2973 | ;; Otherwise, parse the -*- line into the RESULT alist. | 2975 | ;; If MODE-ONLY, just check for `mode'. |
| 2974 | (while (and (or (not mode-only) | 2976 | ;; Otherwise, parse the -*- line into the RESULT alist. |
| 2975 | (not result)) | 2977 | (while (and (or (not mode-only) |
| 2976 | (< (point) end)) | 2978 | (not result)) |
| 2977 | (or (looking-at "[ \t]*\\([^ \t\n:]+\\)[ \t]*:[ \t]*") | 2979 | (< (point) end)) |
| 2978 | (error "Malformed -*- line")) | 2980 | (unless (looking-at "[ \t]*\\([^ \t\n:]+\\)[ \t]*:[ \t]*") |
| 2979 | (goto-char (match-end 0)) | 2981 | (message "Malformed mode-line") |
| 2980 | ;; There used to be a downcase here, | 2982 | (throw 'malformed-line nil)) |
| 2981 | ;; but the manual didn't say so, | 2983 | (goto-char (match-end 0)) |
| 2982 | ;; and people want to set var names that aren't all lc. | 2984 | ;; There used to be a downcase here, |
| 2983 | (let* ((key (intern (match-string 1))) | 2985 | ;; but the manual didn't say so, |
| 2984 | (val (save-restriction | 2986 | ;; and people want to set var names that aren't all lc. |
| 2985 | (narrow-to-region (point) end) | 2987 | (let* ((key (intern (match-string 1))) |
| 2986 | (let ((read-circle nil)) | 2988 | (val (save-restriction |
| 2987 | (read (current-buffer))))) | 2989 | (narrow-to-region (point) end) |
| 2988 | ;; It is traditional to ignore | 2990 | (let ((read-circle nil)) |
| 2989 | ;; case when checking for `mode' in set-auto-mode, | 2991 | (read (current-buffer))))) |
| 2990 | ;; so we must do that here as well. | 2992 | ;; It is traditional to ignore |
| 2991 | ;; That is inconsistent, but we're stuck with it. | 2993 | ;; case when checking for `mode' in set-auto-mode, |
| 2992 | ;; The same can be said for `coding' in set-auto-coding. | 2994 | ;; so we must do that here as well. |
| 2993 | (keyname (downcase (symbol-name key)))) | 2995 | ;; That is inconsistent, but we're stuck with it. |
| 2994 | (if mode-only | 2996 | ;; The same can be said for `coding' in set-auto-coding. |
| 2995 | (and (equal keyname "mode") | 2997 | (keyname (downcase (symbol-name key)))) |
| 2996 | (setq result | 2998 | (if mode-only |
| 2997 | (intern (concat (downcase (symbol-name val)) | 2999 | (and (equal keyname "mode") |
| 2998 | "-mode")))) | 3000 | (setq result |
| 2999 | (or (equal keyname "coding") | 3001 | (intern (concat (downcase (symbol-name val)) |
| 3000 | (condition-case nil | 3002 | "-mode")))) |
| 3001 | (push (cons (cond ((eq key 'eval) 'eval) | 3003 | (or (equal keyname "coding") |
| 3002 | ;; Downcase "Mode:". | 3004 | (condition-case nil |
| 3003 | ((equal keyname "mode") 'mode) | 3005 | (push (cons (cond ((eq key 'eval) 'eval) |
| 3004 | (t (indirect-variable key))) | 3006 | ;; Downcase "Mode:". |
| 3005 | val) result) | 3007 | ((equal keyname "mode") 'mode) |
| 3006 | (error nil)))) | 3008 | (t (indirect-variable key))) |
| 3007 | (skip-chars-forward " \t;"))) | 3009 | val) result) |
| 3008 | result))))) | 3010 | (error nil)))) |
| 3011 | (skip-chars-forward " \t;"))) | ||
| 3012 | result)))))) | ||
| 3009 | 3013 | ||
| 3010 | (defun hack-local-variables-filter (variables dir-name) | 3014 | (defun hack-local-variables-filter (variables dir-name) |
| 3011 | "Filter local variable settings, querying the user if necessary. | 3015 | "Filter local variable settings, querying the user if necessary. |
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 211c4455717..fa22d1a5ea1 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2011-09-17 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 2 | |||
| 3 | * mm-decode.el (mm-inline-media-tests): Support imagemagick images. | ||
| 4 | |||
| 1 | 2011-09-15 Lars Magne Ingebrigtsen <larsi@gnus.org> | 5 | 2011-09-15 Lars Magne Ingebrigtsen <larsi@gnus.org> |
| 2 | 6 | ||
| 3 | * gnus-sum.el (gnus-summary-read-group-1): Bump the "Retrieving" | 7 | * gnus-sum.el (gnus-summary-read-group-1): Bump the "Retrieving" |
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 692175d471f..6e56213c327 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el | |||
| @@ -195,7 +195,7 @@ before the external MIME handler is invoked." | |||
| 195 | ("image/tiff" | 195 | ("image/tiff" |
| 196 | mm-inline-image | 196 | mm-inline-image |
| 197 | (lambda (handle) | 197 | (lambda (handle) |
| 198 | (mm-valid-and-fit-image-p 'tiff handle)) ) | 198 | (mm-valid-and-fit-image-p 'tiff handle))) |
| 199 | ("image/xbm" | 199 | ("image/xbm" |
| 200 | mm-inline-image | 200 | mm-inline-image |
| 201 | (lambda (handle) | 201 | (lambda (handle) |
| @@ -265,6 +265,20 @@ before the external MIME handler is invoked." | |||
| 265 | ("multipart/alternative" ignore identity) | 265 | ("multipart/alternative" ignore identity) |
| 266 | ("multipart/mixed" ignore identity) | 266 | ("multipart/mixed" ignore identity) |
| 267 | ("multipart/related" ignore identity) | 267 | ("multipart/related" ignore identity) |
| 268 | ("image/*" | ||
| 269 | mm-inline-image | ||
| 270 | (lambda (handle) | ||
| 271 | (and (mm-valid-image-format-p 'imagemagick) | ||
| 272 | (mm-with-unibyte-buffer | ||
| 273 | (mm-insert-part handle) | ||
| 274 | (let ((image | ||
| 275 | (ignore-errors | ||
| 276 | (if (fboundp 'create-image) | ||
| 277 | (create-image (buffer-string) 'imagemagick 'data-p) | ||
| 278 | (mm-create-image-xemacs type))))) | ||
| 279 | (when image | ||
| 280 | (setcar (cdr handle) (list "image/imagemagick")) | ||
| 281 | (mm-image-fit-p handle))))))) | ||
| 268 | ;; Disable audio and image | 282 | ;; Disable audio and image |
| 269 | ("audio/.*" ignore ignore) | 283 | ("audio/.*" ignore ignore) |
| 270 | ("image/.*" ignore ignore) | 284 | ("image/.*" ignore ignore) |
diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el index 5a90f015aed..926422865c7 100644 --- a/lisp/gnus/mm-view.el +++ b/lisp/gnus/mm-view.el | |||
| @@ -90,13 +90,14 @@ | |||
| 90 | (put-image | 90 | (put-image |
| 91 | (let ((image (mm-get-image handle))) | 91 | (let ((image (mm-get-image handle))) |
| 92 | (if (eq mm-inline-large-images 'resize) | 92 | (if (eq mm-inline-large-images 'resize) |
| 93 | (gnus-rescale-image image | 93 | (gnus-rescale-image |
| 94 | (let ((edges (gnus-window-inside-pixel-edges | 94 | image |
| 95 | (get-buffer-window (current-buffer))))) | 95 | (let ((edges (gnus-window-inside-pixel-edges |
| 96 | (cons (truncate (* mm-inline-large-images-proportion | 96 | (get-buffer-window (current-buffer))))) |
| 97 | (- (nth 2 edges) (nth 0 edges)))) | 97 | (cons (truncate (* mm-inline-large-images-proportion |
| 98 | (truncate (* mm-inline-large-images-proportion | 98 | (- (nth 2 edges) (nth 0 edges)))) |
| 99 | (- (nth 3 edges) (nth 1 edges))))))) | 99 | (truncate (* mm-inline-large-images-proportion |
| 100 | (- (nth 3 edges) (nth 1 edges))))))) | ||
| 100 | image)) | 101 | image)) |
| 101 | b) | 102 | b) |
| 102 | (insert "\n\n") | 103 | (insert "\n\n") |
diff --git a/lisp/icomplete.el b/lisp/icomplete.el index 5f3680630f4..bdd19194c22 100644 --- a/lisp/icomplete.el +++ b/lisp/icomplete.el | |||
| @@ -179,11 +179,8 @@ otherwise turn it off." | |||
| 179 | (if icomplete-mode | 179 | (if icomplete-mode |
| 180 | ;; The following is not really necessary after first time - | 180 | ;; The following is not really necessary after first time - |
| 181 | ;; no great loss. | 181 | ;; no great loss. |
| 182 | (progn | 182 | (add-hook 'minibuffer-setup-hook 'icomplete-minibuffer-setup) |
| 183 | (setq completion-show-inline-help nil) | 183 | (remove-hook 'minibuffer-setup-hook 'icomplete-minibuffer-setup))) |
| 184 | (add-hook 'minibuffer-setup-hook 'icomplete-minibuffer-setup)) | ||
| 185 | (remove-hook 'minibuffer-setup-hook 'icomplete-minibuffer-setup) | ||
| 186 | (setq completion-show-inline-help t))) | ||
| 187 | 184 | ||
| 188 | ;;;_ > icomplete-simple-completing-p () | 185 | ;;;_ > icomplete-simple-completing-p () |
| 189 | (defun icomplete-simple-completing-p () | 186 | (defun icomplete-simple-completing-p () |
| @@ -209,6 +206,7 @@ Conditions are: | |||
| 209 | "Run in minibuffer on activation to establish incremental completion. | 206 | "Run in minibuffer on activation to establish incremental completion. |
| 210 | Usually run by inclusion in `minibuffer-setup-hook'." | 207 | Usually run by inclusion in `minibuffer-setup-hook'." |
| 211 | (when (and icomplete-mode (icomplete-simple-completing-p)) | 208 | (when (and icomplete-mode (icomplete-simple-completing-p)) |
| 209 | (set (make-local-variable 'completion-show-inline-help) nil) | ||
| 212 | (add-hook 'pre-command-hook | 210 | (add-hook 'pre-command-hook |
| 213 | (lambda () (run-hooks 'icomplete-pre-command-hook)) | 211 | (lambda () (run-hooks 'icomplete-pre-command-hook)) |
| 214 | nil t) | 212 | nil t) |
diff --git a/lisp/image.el b/lisp/image.el index 30362251664..c150f4239dd 100644 --- a/lisp/image.el +++ b/lisp/image.el | |||
| @@ -695,16 +695,14 @@ Emacs visits them in Image mode. | |||
| 695 | 695 | ||
| 696 | If Emacs is compiled without ImageMagick support, do nothing." | 696 | If Emacs is compiled without ImageMagick support, do nothing." |
| 697 | (when (fboundp 'imagemagick-types) | 697 | (when (fboundp 'imagemagick-types) |
| 698 | (let ((im-types (imagemagick-types))) | 698 | (let ((im-types '())) |
| 699 | (dolist (im-inhibit imagemagick-types-inhibit) | 699 | (dolist (im-type (imagemagick-types)) |
| 700 | (setq im-types (delq im-inhibit im-types))) | 700 | (unless (memq im-type imagemagick-types-inhibit) |
| 701 | (dolist (im-type im-types) | 701 | (push (downcase (symbol-name im-type)) im-types))) |
| 702 | (let ((extension | 702 | (let ((extension (concat "\\." (regexp-opt im-types) "\\'"))) |
| 703 | (concat "\\." (downcase (symbol-name im-type)) | 703 | (push (cons extension 'image-mode) auto-mode-alist) |
| 704 | "\\'"))) | 704 | (push (cons extension 'imagemagick) |
| 705 | (push (cons extension 'image-mode) auto-mode-alist) | 705 | image-type-file-name-regexps))))) |
| 706 | (push (cons extension 'imagemagick) | ||
| 707 | image-type-file-name-regexps)))))) | ||
| 708 | 706 | ||
| 709 | (provide 'image) | 707 | (provide 'image) |
| 710 | 708 | ||
diff --git a/lisp/info.el b/lisp/info.el index 40959885edb..e79e4b1195e 100644 --- a/lisp/info.el +++ b/lisp/info.el | |||
| @@ -540,7 +540,7 @@ in `Info-file-supports-index-cookies-list'." | |||
| 540 | (condition-case () | 540 | (condition-case () |
| 541 | (if (and (re-search-forward | 541 | (if (and (re-search-forward |
| 542 | "makeinfo[ \n]version[ \n]\\([0-9]+.[0-9]+\\)" | 542 | "makeinfo[ \n]version[ \n]\\([0-9]+.[0-9]+\\)" |
| 543 | (line-beginning-position 3) t) | 543 | (line-beginning-position 4) t) |
| 544 | (not (version< (match-string 1) "4.7"))) | 544 | (not (version< (match-string 1) "4.7"))) |
| 545 | (setq found t)) | 545 | (setq found t)) |
| 546 | (error nil)) | 546 | (error nil)) |
| @@ -2440,7 +2440,8 @@ Because of ambiguities, this should be concatenated with something like | |||
| 2440 | ) | 2440 | ) |
| 2441 | (replace-regexp-in-string | 2441 | (replace-regexp-in-string |
| 2442 | "[ \n]+" " " | 2442 | "[ \n]+" " " |
| 2443 | (or (match-string-no-properties 2) | 2443 | (or (and (not (equal (match-string-no-properties 2) "")) |
| 2444 | (match-string-no-properties 2)) | ||
| 2444 | ;; If the node name is the menu entry name (using `entry::'). | 2445 | ;; If the node name is the menu entry name (using `entry::'). |
| 2445 | (buffer-substring-no-properties | 2446 | (buffer-substring-no-properties |
| 2446 | (match-beginning 0) (1- (match-beginning 1))))))) | 2447 | (match-beginning 0) (1- (match-beginning 1))))))) |
| @@ -2765,22 +2766,24 @@ N is the digit argument used to invoke this command." | |||
| 2765 | ;; so we can scroll back through it. | 2766 | ;; so we can scroll back through it. |
| 2766 | (goto-char (point-max))) | 2767 | (goto-char (point-max))) |
| 2767 | ;; Keep going down, as long as there are nested menu nodes. | 2768 | ;; Keep going down, as long as there are nested menu nodes. |
| 2768 | (while (Info-no-error | 2769 | (let (Info-history) ; Don't add intermediate nodes to the history. |
| 2769 | (Info-last-menu-item) | 2770 | (while (Info-no-error |
| 2770 | ;; If we go down a menu item, go to the end of the node | 2771 | (Info-last-menu-item) |
| 2771 | ;; so we can scroll back through it. | 2772 | ;; If we go down a menu item, go to the end of the node |
| 2772 | (goto-char (point-max)))) | 2773 | ;; so we can scroll back through it. |
| 2774 | (goto-char (point-max))))) | ||
| 2773 | (recenter -1)) | 2775 | (recenter -1)) |
| 2774 | ((and (Info-no-error (Info-extract-pointer "prev")) | 2776 | ((and (Info-no-error (Info-extract-pointer "prev")) |
| 2775 | (not (equal (Info-extract-pointer "up") | 2777 | (not (equal (Info-extract-pointer "up") |
| 2776 | (Info-extract-pointer "prev")))) | 2778 | (Info-extract-pointer "prev")))) |
| 2777 | (Info-no-error (Info-prev)) | 2779 | (Info-no-error (Info-prev)) |
| 2778 | (goto-char (point-max)) | 2780 | (goto-char (point-max)) |
| 2779 | (while (Info-no-error | 2781 | (let (Info-history) ; Don't add intermediate nodes to the history. |
| 2780 | (Info-last-menu-item) | 2782 | (while (Info-no-error |
| 2781 | ;; If we go down a menu item, go to the end of the node | 2783 | (Info-last-menu-item) |
| 2782 | ;; so we can scroll back through it. | 2784 | ;; If we go down a menu item, go to the end of the node |
| 2783 | (goto-char (point-max)))) | 2785 | ;; so we can scroll back through it. |
| 2786 | (goto-char (point-max))))) | ||
| 2784 | (recenter -1)) | 2787 | (recenter -1)) |
| 2785 | ((Info-no-error (Info-up t)) | 2788 | ((Info-no-error (Info-up t)) |
| 2786 | (goto-char (point-min)) | 2789 | (goto-char (point-min)) |
| @@ -3887,6 +3890,14 @@ With a zero prefix arg, put the name inside a function call to `info'." | |||
| 3887 | (defvar tool-bar-map) | 3890 | (defvar tool-bar-map) |
| 3888 | (defvar bookmark-make-record-function) | 3891 | (defvar bookmark-make-record-function) |
| 3889 | 3892 | ||
| 3893 | (defvar Info-mode-syntax-table | ||
| 3894 | (let ((st (copy-syntax-table text-mode-syntax-table))) | ||
| 3895 | ;; Use punctuation syntax for apostrophe because of | ||
| 3896 | ;; extensive use of quotes like `this' in Info manuals. | ||
| 3897 | (modify-syntax-entry ?' "." st) | ||
| 3898 | st) | ||
| 3899 | "Syntax table used in `Info-mode'.") | ||
| 3900 | |||
| 3890 | ;; Autoload cookie needed by desktop.el | 3901 | ;; Autoload cookie needed by desktop.el |
| 3891 | ;;;###autoload | 3902 | ;;;###autoload |
| 3892 | (define-derived-mode Info-mode nil "Info" | 3903 | (define-derived-mode Info-mode nil "Info" |
| @@ -3951,7 +3962,7 @@ Advanced commands: | |||
| 3951 | \\[clone-buffer] Select a new cloned Info buffer in another window. | 3962 | \\[clone-buffer] Select a new cloned Info buffer in another window. |
| 3952 | \\[universal-argument] \\[info] Move to new Info file with completion. | 3963 | \\[universal-argument] \\[info] Move to new Info file with completion. |
| 3953 | \\[universal-argument] N \\[info] Select Info buffer with prefix number in the name *info*<N>." | 3964 | \\[universal-argument] N \\[info] Select Info buffer with prefix number in the name *info*<N>." |
| 3954 | :syntax-table text-mode-syntax-table | 3965 | :syntax-table Info-mode-syntax-table |
| 3955 | :abbrev-table text-mode-abbrev-table | 3966 | :abbrev-table text-mode-abbrev-table |
| 3956 | (setq tab-width 8) | 3967 | (setq tab-width 8) |
| 3957 | (add-hook 'activate-menubar-hook 'Info-menu-update nil t) | 3968 | (add-hook 'activate-menubar-hook 'Info-menu-update nil t) |
diff --git a/lisp/isearch.el b/lisp/isearch.el index e07f1429119..81e0b4bf3b7 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el | |||
| @@ -1110,6 +1110,7 @@ The following additional command keys are active while editing. | |||
| 1110 | (isearch-new-message isearch-message) | 1110 | (isearch-new-message isearch-message) |
| 1111 | (isearch-new-forward isearch-forward) | 1111 | (isearch-new-forward isearch-forward) |
| 1112 | (isearch-new-word isearch-word) | 1112 | (isearch-new-word isearch-word) |
| 1113 | (isearch-new-case-fold isearch-case-fold-search) | ||
| 1113 | 1114 | ||
| 1114 | (isearch-regexp isearch-regexp) | 1115 | (isearch-regexp isearch-regexp) |
| 1115 | (isearch-op-fun isearch-op-fun) | 1116 | (isearch-op-fun isearch-op-fun) |
| @@ -1203,7 +1204,8 @@ The following additional command keys are active while editing. | |||
| 1203 | (setq isearch-string isearch-new-string | 1204 | (setq isearch-string isearch-new-string |
| 1204 | isearch-message isearch-new-message | 1205 | isearch-message isearch-new-message |
| 1205 | isearch-forward isearch-new-forward | 1206 | isearch-forward isearch-new-forward |
| 1206 | isearch-word isearch-new-word)) | 1207 | isearch-word isearch-new-word |
| 1208 | isearch-case-fold-search isearch-new-case-fold)) | ||
| 1207 | 1209 | ||
| 1208 | ;; Empty isearch-string means use default. | 1210 | ;; Empty isearch-string means use default. |
| 1209 | (when (= 0 (length isearch-string)) | 1211 | (when (= 0 (length isearch-string)) |
diff --git a/lisp/mail/smtpmail.el b/lisp/mail/smtpmail.el index 9fe19581e81..1c6f2c7b7ed 100644 --- a/lisp/mail/smtpmail.el +++ b/lisp/mail/smtpmail.el | |||
| @@ -773,8 +773,12 @@ The list is in preference order.") | |||
| 773 | (eq (car result) 530)) | 773 | (eq (car result) 530)) |
| 774 | ;; We got a "530 auth required", so we close and try | 774 | ;; We got a "530 auth required", so we close and try |
| 775 | ;; again, this time asking the user for a password. | 775 | ;; again, this time asking the user for a password. |
| 776 | (smtpmail-send-command process "QUIT") | 776 | ;; We ignore any errors here, because some MTAs just |
| 777 | (smtpmail-read-response process) | 777 | ;; close the connection immediately after giving the |
| 778 | ;; error message. | ||
| 779 | (ignore-errors | ||
| 780 | (smtpmail-send-command process "QUIT") | ||
| 781 | (smtpmail-read-response process)) | ||
| 778 | (delete-process process) | 782 | (delete-process process) |
| 779 | (setq process nil) | 783 | (setq process nil) |
| 780 | (throw 'done | 784 | (throw 'done |
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index caae40ed8c5..eceb3afc147 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el | |||
| @@ -985,7 +985,7 @@ by \"Save Options\" in Custom buffers.") | |||
| 985 | (let ((menu (make-sparse-keymap "Tool-bar"))) | 985 | (let ((menu (make-sparse-keymap "Tool-bar"))) |
| 986 | 986 | ||
| 987 | (define-key menu [showhide-tool-bar-left] | 987 | (define-key menu [showhide-tool-bar-left] |
| 988 | `(menu-item ,(purecopy "On the left") | 988 | `(menu-item ,(purecopy "On the Left") |
| 989 | menu-bar-showhide-tool-bar-menu-customize-enable-left | 989 | menu-bar-showhide-tool-bar-menu-customize-enable-left |
| 990 | :help ,(purecopy "Tool-bar at the left side") | 990 | :help ,(purecopy "Tool-bar at the left side") |
| 991 | :visible (display-graphic-p) | 991 | :visible (display-graphic-p) |
| @@ -997,7 +997,7 @@ by \"Save Options\" in Custom buffers.") | |||
| 997 | 'left))))) | 997 | 'left))))) |
| 998 | 998 | ||
| 999 | (define-key menu [showhide-tool-bar-right] | 999 | (define-key menu [showhide-tool-bar-right] |
| 1000 | `(menu-item ,(purecopy "On the right") | 1000 | `(menu-item ,(purecopy "On the Right") |
| 1001 | menu-bar-showhide-tool-bar-menu-customize-enable-right | 1001 | menu-bar-showhide-tool-bar-menu-customize-enable-right |
| 1002 | :help ,(purecopy "Tool-bar at the right side") | 1002 | :help ,(purecopy "Tool-bar at the right side") |
| 1003 | :visible (display-graphic-p) | 1003 | :visible (display-graphic-p) |
| @@ -1009,7 +1009,7 @@ by \"Save Options\" in Custom buffers.") | |||
| 1009 | 'right))))) | 1009 | 'right))))) |
| 1010 | 1010 | ||
| 1011 | (define-key menu [showhide-tool-bar-bottom] | 1011 | (define-key menu [showhide-tool-bar-bottom] |
| 1012 | `(menu-item ,(purecopy "On the bottom") | 1012 | `(menu-item ,(purecopy "On the Bottom") |
| 1013 | menu-bar-showhide-tool-bar-menu-customize-enable-bottom | 1013 | menu-bar-showhide-tool-bar-menu-customize-enable-bottom |
| 1014 | :help ,(purecopy "Tool-bar at the bottom") | 1014 | :help ,(purecopy "Tool-bar at the bottom") |
| 1015 | :visible (display-graphic-p) | 1015 | :visible (display-graphic-p) |
| @@ -1021,7 +1021,7 @@ by \"Save Options\" in Custom buffers.") | |||
| 1021 | 'bottom))))) | 1021 | 'bottom))))) |
| 1022 | 1022 | ||
| 1023 | (define-key menu [showhide-tool-bar-top] | 1023 | (define-key menu [showhide-tool-bar-top] |
| 1024 | `(menu-item ,(purecopy "On the top") | 1024 | `(menu-item ,(purecopy "On the Top") |
| 1025 | menu-bar-showhide-tool-bar-menu-customize-enable-top | 1025 | menu-bar-showhide-tool-bar-menu-customize-enable-top |
| 1026 | :help ,(purecopy "Tool-bar at the top") | 1026 | :help ,(purecopy "Tool-bar at the top") |
| 1027 | :visible (display-graphic-p) | 1027 | :visible (display-graphic-p) |
| @@ -1200,7 +1200,7 @@ mail status in mode line")) | |||
| 1200 | (define-key menu [menu-system-font] | 1200 | (define-key menu [menu-system-font] |
| 1201 | (menu-bar-make-toggle | 1201 | (menu-bar-make-toggle |
| 1202 | toggle-use-system-font font-use-system-font | 1202 | toggle-use-system-font font-use-system-font |
| 1203 | "Use system font" | 1203 | "Use System Font" |
| 1204 | "Use system font: %s" | 1204 | "Use system font: %s" |
| 1205 | "Use the monospaced font defined by the system"))) | 1205 | "Use the monospaced font defined by the system"))) |
| 1206 | 1206 | ||
| @@ -1304,7 +1304,7 @@ mail status in mode line")) | |||
| 1304 | (eq 'turn-on-auto-fill text-mode-hook))))) | 1304 | (eq 'turn-on-auto-fill text-mode-hook))))) |
| 1305 | 1305 | ||
| 1306 | (define-key menu [line-wrapping] | 1306 | (define-key menu [line-wrapping] |
| 1307 | `(menu-item ,(purecopy "Line Wrapping in this Buffer") | 1307 | `(menu-item ,(purecopy "Line Wrapping in This Buffer") |
| 1308 | ,menu-bar-line-wrapping-menu)) | 1308 | ,menu-bar-line-wrapping-menu)) |
| 1309 | 1309 | ||
| 1310 | 1310 | ||
diff --git a/lisp/net/ldap.el b/lisp/net/ldap.el index a45cc5500c2..1fa57dbfe3e 100644 --- a/lisp/net/ldap.el +++ b/lisp/net/ldap.el | |||
| @@ -632,9 +632,10 @@ an alist of attribute/value pairs." | |||
| 632 | (setq record (cons (list name value) | 632 | (setq record (cons (list name value) |
| 633 | record)) | 633 | record)) |
| 634 | (forward-line 1)) | 634 | (forward-line 1)) |
| 635 | (push (if withdn | 635 | (cond (withdn |
| 636 | (cons dn (nreverse record)) | 636 | (push (cons dn (nreverse record)) result)) |
| 637 | (nreverse record)) result) | 637 | (record |
| 638 | (push (nreverse record) result))) | ||
| 638 | (setq record nil) | 639 | (setq record nil) |
| 639 | (skip-chars-forward " \t\n") | 640 | (skip-chars-forward " \t\n") |
| 640 | (message "Parsing results... %d" numres) | 641 | (message "Parsing results... %d" numres) |
diff --git a/lisp/net/tramp-compat.el b/lisp/net/tramp-compat.el index 460c9f0e118..5054f1d232d 100644 --- a/lisp/net/tramp-compat.el +++ b/lisp/net/tramp-compat.el | |||
| @@ -41,6 +41,7 @@ | |||
| 41 | (require 'advice) | 41 | (require 'advice) |
| 42 | (require 'custom) | 42 | (require 'custom) |
| 43 | (require 'format-spec) | 43 | (require 'format-spec) |
| 44 | (require 'shell) | ||
| 44 | 45 | ||
| 45 | ;; As long as password.el is not part of (X)Emacs, it shouldn't be | 46 | ;; As long as password.el is not part of (X)Emacs, it shouldn't be |
| 46 | ;; mandatory. | 47 | ;; mandatory. |
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 1fa358e9277..e94581392fa 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el | |||
| @@ -2280,7 +2280,7 @@ The method used must be an out-of-band method." | |||
| 2280 | ;; password. | 2280 | ;; password. |
| 2281 | (setq tramp-current-method (tramp-file-name-method v) | 2281 | (setq tramp-current-method (tramp-file-name-method v) |
| 2282 | tramp-current-user (tramp-file-name-user v) | 2282 | tramp-current-user (tramp-file-name-user v) |
| 2283 | tramp-current-host (tramp-file-name-host v)) | 2283 | tramp-current-host (tramp-file-name-real-host v)) |
| 2284 | 2284 | ||
| 2285 | ;; Expand hops. Might be necessary for gateway methods. | 2285 | ;; Expand hops. Might be necessary for gateway methods. |
| 2286 | (setq v (car (tramp-compute-multi-hops v))) | 2286 | (setq v (car (tramp-compute-multi-hops v))) |
| @@ -4025,6 +4025,7 @@ means discard it)." | |||
| 4025 | (defconst tramp-inline-compress-commands | 4025 | (defconst tramp-inline-compress-commands |
| 4026 | '(("gzip" "gzip -d") | 4026 | '(("gzip" "gzip -d") |
| 4027 | ("bzip2" "bzip2 -d") | 4027 | ("bzip2" "bzip2 -d") |
| 4028 | ("xz" "xz -d") | ||
| 4028 | ("compress" "compress -d")) | 4029 | ("compress" "compress -d")) |
| 4029 | "List of compress and decompress commands for inline transfer. | 4030 | "List of compress and decompress commands for inline transfer. |
| 4030 | Each item is a list that looks like this: | 4031 | Each item is a list that looks like this: |
| @@ -4292,7 +4293,7 @@ connection if a previous connection has died for some reason." | |||
| 4292 | (gw (tramp-get-file-property hop "" "gateway" nil)) | 4293 | (gw (tramp-get-file-property hop "" "gateway" nil)) |
| 4293 | (g-method (and gw (tramp-file-name-method gw))) | 4294 | (g-method (and gw (tramp-file-name-method gw))) |
| 4294 | (g-user (and gw (tramp-file-name-user gw))) | 4295 | (g-user (and gw (tramp-file-name-user gw))) |
| 4295 | (g-host (and gw (tramp-file-name-host gw))) | 4296 | (g-host (and gw (tramp-file-name-real-host gw))) |
| 4296 | (command login-program) | 4297 | (command login-program) |
| 4297 | ;; We don't create the temporary file. In fact, | 4298 | ;; We don't create the temporary file. In fact, |
| 4298 | ;; it is just a prefix for the ControlPath option | 4299 | ;; it is just a prefix for the ControlPath option |
| @@ -4721,16 +4722,6 @@ This is used internally by `tramp-file-mode-from-int'." | |||
| 4721 | x)) | 4722 | x)) |
| 4722 | remote-path))))) | 4723 | remote-path))))) |
| 4723 | 4724 | ||
| 4724 | (defun tramp-get-remote-tmpdir (vec) | ||
| 4725 | (with-connection-property vec "tmp-directory" | ||
| 4726 | (let ((dir (tramp-shell-quote-argument "/tmp"))) | ||
| 4727 | (if (and (tramp-send-command-and-check | ||
| 4728 | vec (format "%s -d %s" (tramp-get-test-command vec) dir)) | ||
| 4729 | (tramp-send-command-and-check | ||
| 4730 | vec (format "%s -w %s" (tramp-get-test-command vec) dir))) | ||
| 4731 | dir | ||
| 4732 | (tramp-error vec 'file-error "Directory %s not accessible" dir))))) | ||
| 4733 | |||
| 4734 | (defun tramp-get-ls-command (vec) | 4725 | (defun tramp-get-ls-command (vec) |
| 4735 | (with-connection-property vec "ls" | 4726 | (with-connection-property vec "ls" |
| 4736 | (tramp-message vec 5 "Finding a suitable `ls' command") | 4727 | (tramp-message vec 5 "Finding a suitable `ls' command") |
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el index eb456298c1a..150ef18be52 100644 --- a/lisp/net/tramp-smb.el +++ b/lisp/net/tramp-smb.el | |||
| @@ -38,7 +38,15 @@ | |||
| 38 | ;; ... and add it to the method list. | 38 | ;; ... and add it to the method list. |
| 39 | ;;;###tramp-autoload | 39 | ;;;###tramp-autoload |
| 40 | (unless (memq system-type '(cygwin windows-nt)) | 40 | (unless (memq system-type '(cygwin windows-nt)) |
| 41 | (add-to-list 'tramp-methods (cons tramp-smb-method nil))) | 41 | (add-to-list 'tramp-methods |
| 42 | `(,tramp-smb-method | ||
| 43 | ;; We define an empty command, because `tramp-smb-call-winexe' | ||
| 44 | ;; opens already the powershell. Used in `tramp-handle-shell-command'. | ||
| 45 | (tramp-remote-shell "") | ||
| 46 | ;; This is just a guess. We don't know whether the share "$C" | ||
| 47 | ;; is available for public use, and whether the user has write | ||
| 48 | ;; access. | ||
| 49 | (tramp-tmpdir "/C$/Temp")))) | ||
| 42 | 50 | ||
| 43 | ;; Add a default for `tramp-default-method-alist'. Rule: If there is | 51 | ;; Add a default for `tramp-default-method-alist'. Rule: If there is |
| 44 | ;; a domain in USER, it must be the SMB method. | 52 | ;; a domain in USER, it must be the SMB method. |
| @@ -98,7 +106,8 @@ call, letting the SMB client use the default one." | |||
| 98 | "ERRnomem" | 106 | "ERRnomem" |
| 99 | "ERRnosuchshare" | 107 | "ERRnosuchshare" |
| 100 | ;; Windows 4.0 (Windows NT), Windows 5.0 (Windows 2000), | 108 | ;; Windows 4.0 (Windows NT), Windows 5.0 (Windows 2000), |
| 101 | ;; Windows 5.1 (Windows XP), Windows 5.2 (Windows Server 2003). | 109 | ;; Windows 5.1 (Windows XP), Windows 5.2 (Windows Server 2003), |
| 110 | ;; Windows 6.0 (Windows Vista), Windows 6.1 (Windows 7). | ||
| 102 | "NT_STATUS_ACCESS_DENIED" | 111 | "NT_STATUS_ACCESS_DENIED" |
| 103 | "NT_STATUS_ACCOUNT_LOCKED_OUT" | 112 | "NT_STATUS_ACCOUNT_LOCKED_OUT" |
| 104 | "NT_STATUS_BAD_NETWORK_NAME" | 113 | "NT_STATUS_BAD_NETWORK_NAME" |
| @@ -107,6 +116,7 @@ call, letting the SMB client use the default one." | |||
| 107 | "NT_STATUS_DIRECTORY_NOT_EMPTY" | 116 | "NT_STATUS_DIRECTORY_NOT_EMPTY" |
| 108 | "NT_STATUS_DUPLICATE_NAME" | 117 | "NT_STATUS_DUPLICATE_NAME" |
| 109 | "NT_STATUS_FILE_IS_A_DIRECTORY" | 118 | "NT_STATUS_FILE_IS_A_DIRECTORY" |
| 119 | "NT_STATUS_IMAGE_ALREADY_LOADED" | ||
| 110 | "NT_STATUS_IO_TIMEOUT" | 120 | "NT_STATUS_IO_TIMEOUT" |
| 111 | "NT_STATUS_LOGON_FAILURE" | 121 | "NT_STATUS_LOGON_FAILURE" |
| 112 | "NT_STATUS_NETWORK_ACCESS_DENIED" | 122 | "NT_STATUS_NETWORK_ACCESS_DENIED" |
| @@ -490,39 +500,40 @@ PRESERVE-UID-GID and PRESERVE-SELINUX-CONTEXT are completely ignored." | |||
| 490 | (defun tramp-smb-handle-file-attributes (filename &optional id-format) | 500 | (defun tramp-smb-handle-file-attributes (filename &optional id-format) |
| 491 | "Like `file-attributes' for Tramp files." | 501 | "Like `file-attributes' for Tramp files." |
| 492 | (unless id-format (setq id-format 'integer)) | 502 | (unless id-format (setq id-format 'integer)) |
| 493 | (with-parsed-tramp-file-name filename nil | 503 | (ignore-errors |
| 494 | (with-file-property v localname (format "file-attributes-%s" id-format) | 504 | (with-parsed-tramp-file-name filename nil |
| 495 | (if (and (tramp-smb-get-share v) (tramp-smb-get-stat-capability v)) | 505 | (with-file-property v localname (format "file-attributes-%s" id-format) |
| 496 | (tramp-smb-do-file-attributes-with-stat v id-format) | 506 | (if (and (tramp-smb-get-share v) (tramp-smb-get-stat-capability v)) |
| 497 | ;; Reading just the filename entry via "dir localname" is not | 507 | (tramp-smb-do-file-attributes-with-stat v id-format) |
| 498 | ;; possible, because when filename is a directory, some | 508 | ;; Reading just the filename entry via "dir localname" is not |
| 499 | ;; smbclient versions return the content of the directory, and | 509 | ;; possible, because when filename is a directory, some |
| 500 | ;; other versions don't. Therefore, the whole content of the | 510 | ;; smbclient versions return the content of the directory, and |
| 501 | ;; upper directory is retrieved, and the entry of the filename | 511 | ;; other versions don't. Therefore, the whole content of the |
| 502 | ;; is extracted from. | 512 | ;; upper directory is retrieved, and the entry of the filename |
| 503 | (let* ((entries (tramp-smb-get-file-entries | 513 | ;; is extracted from. |
| 504 | (file-name-directory filename))) | 514 | (let* ((entries (tramp-smb-get-file-entries |
| 505 | (entry (assoc (file-name-nondirectory filename) entries)) | 515 | (file-name-directory filename))) |
| 506 | (uid (if (equal id-format 'string) "nobody" -1)) | 516 | (entry (assoc (file-name-nondirectory filename) entries)) |
| 507 | (gid (if (equal id-format 'string) "nogroup" -1)) | 517 | (uid (if (equal id-format 'string) "nobody" -1)) |
| 508 | (inode (tramp-get-inode v)) | 518 | (gid (if (equal id-format 'string) "nogroup" -1)) |
| 509 | (device (tramp-get-device v))) | 519 | (inode (tramp-get-inode v)) |
| 510 | 520 | (device (tramp-get-device v))) | |
| 511 | ;; Check result. | 521 | |
| 512 | (when entry | 522 | ;; Check result. |
| 513 | (list (and (string-match "d" (nth 1 entry)) | 523 | (when entry |
| 514 | t) ;0 file type | 524 | (list (and (string-match "d" (nth 1 entry)) |
| 515 | -1 ;1 link count | 525 | t) ;0 file type |
| 516 | uid ;2 uid | 526 | -1 ;1 link count |
| 517 | gid ;3 gid | 527 | uid ;2 uid |
| 518 | '(0 0) ;4 atime | 528 | gid ;3 gid |
| 519 | (nth 3 entry) ;5 mtime | 529 | '(0 0) ;4 atime |
| 520 | '(0 0) ;6 ctime | 530 | (nth 3 entry) ;5 mtime |
| 521 | (nth 2 entry) ;7 size | 531 | '(0 0) ;6 ctime |
| 522 | (nth 1 entry) ;8 mode | 532 | (nth 2 entry) ;7 size |
| 523 | nil ;9 gid weird | 533 | (nth 1 entry) ;8 mode |
| 524 | inode ;10 inode number | 534 | nil ;9 gid weird |
| 525 | device))))))) ;11 file system number | 535 | inode ;10 inode number |
| 536 | device)))))))) ;11 file system number | ||
| 526 | 537 | ||
| 527 | (defun tramp-smb-do-file-attributes-with-stat (vec &optional id-format) | 538 | (defun tramp-smb-do-file-attributes-with-stat (vec &optional id-format) |
| 528 | "Implement `file-attributes' for Tramp files using stat command." | 539 | "Implement `file-attributes' for Tramp files using stat command." |
| @@ -1352,12 +1363,13 @@ Returns nil if an error message has appeared." | |||
| 1352 | (found (progn (goto-char (point-min)) | 1363 | (found (progn (goto-char (point-min)) |
| 1353 | (re-search-forward tramp-smb-prompt nil t))) | 1364 | (re-search-forward tramp-smb-prompt nil t))) |
| 1354 | (err (progn (goto-char (point-min)) | 1365 | (err (progn (goto-char (point-min)) |
| 1355 | (re-search-forward tramp-smb-errors nil t)))) | 1366 | (re-search-forward tramp-smb-errors nil t))) |
| 1367 | buffer-read-only) | ||
| 1356 | 1368 | ||
| 1357 | ;; Algorithm: get waiting output. See if last line contains | 1369 | ;; Algorithm: get waiting output. See if last line contains |
| 1358 | ;; tramp-smb-prompt sentinel or tramp-smb-errors strings. | 1370 | ;; `tramp-smb-prompt' sentinel or `tramp-smb-errors' strings. |
| 1359 | ;; If not, wait a bit and again get waiting output. | 1371 | ;; If not, wait a bit and again get waiting output. |
| 1360 | (while (and (not found) (not err)) | 1372 | (while (and (not found) (not err) (memq (process-status p) '(run open))) |
| 1361 | 1373 | ||
| 1362 | ;; Accept pending output. | 1374 | ;; Accept pending output. |
| 1363 | (tramp-accept-process-output p) | 1375 | (tramp-accept-process-output p) |
| @@ -1393,12 +1405,11 @@ Returns nil if an error message has appeared." | |||
| 1393 | ;;; TODO: | 1405 | ;;; TODO: |
| 1394 | 1406 | ||
| 1395 | ;; * Error handling in case password is wrong. | 1407 | ;; * Error handling in case password is wrong. |
| 1396 | ;; * Read password from "~/.netrc". | ||
| 1397 | ;; * Return more comprehensive file permission string. | 1408 | ;; * Return more comprehensive file permission string. |
| 1398 | ;; * Try to remove the inclusion of dummy "" directory. Seems to be at | 1409 | ;; * Try to remove the inclusion of dummy "" directory. Seems to be at |
| 1399 | ;; several places, especially in `tramp-smb-handle-insert-directory'. | 1410 | ;; several places, especially in `tramp-smb-handle-insert-directory'. |
| 1400 | ;; * (RMS) Use unwind-protect to clean up the state so as to make the state | 1411 | ;; * (RMS) Use unwind-protect to clean up the state so as to make the state |
| 1401 | ;; regular again. | 1412 | ;; regular again. |
| 1402 | ;; * Make it multi-hop capable. | 1413 | ;; * Ignore case in file names. |
| 1403 | 1414 | ||
| 1404 | ;;; tramp-smb.el ends here | 1415 | ;;; tramp-smb.el ends here |
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 6475ea42ec8..3384a6d776b 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el | |||
| @@ -58,7 +58,6 @@ | |||
| 58 | ;;; Code: | 58 | ;;; Code: |
| 59 | 59 | ||
| 60 | (require 'tramp-compat) | 60 | (require 'tramp-compat) |
| 61 | (require 'shell) | ||
| 62 | 61 | ||
| 63 | ;;; User Customizable Internal Variables: | 62 | ;;; User Customizable Internal Variables: |
| 64 | 63 | ||
| @@ -192,15 +191,16 @@ This is a list of entries of the form (NAME PARAM1 PARAM2 ...). | |||
| 192 | Each NAME stands for a remote access method. Each PARAM is a | 191 | Each NAME stands for a remote access method. Each PARAM is a |
| 193 | pair of the form (KEY VALUE). The following KEYs are defined: | 192 | pair of the form (KEY VALUE). The following KEYs are defined: |
| 194 | * `tramp-remote-shell' | 193 | * `tramp-remote-shell' |
| 195 | This specifies the Bourne shell to use on the remote host. This | 194 | This specifies the shell to use on the remote host. This |
| 196 | MUST be a Bourne-like shell. It is normally not necessary to set | 195 | MUST be a Bourne-like shell. It is normally not necessary to |
| 197 | this to any value other than \"/bin/sh\": Tramp wants to use a shell | 196 | set this to any value other than \"/bin/sh\": Tramp wants to |
| 198 | which groks tilde expansion, but it can search for it. Also note | 197 | use a shell which groks tilde expansion, but it can search |
| 199 | that \"/bin/sh\" exists on all Unixen, this might not be true for | 198 | for it. Also note that \"/bin/sh\" exists on all Unixen, |
| 200 | the value that you decide to use. You Have Been Warned. | 199 | this might not be true for the value that you decide to use. |
| 200 | You Have Been Warned. | ||
| 201 | * `tramp-remote-shell-args' | 201 | * `tramp-remote-shell-args' |
| 202 | For implementation of `shell-command', this specifies the | 202 | For implementation of `shell-command', this specifies the |
| 203 | argument to let `tramp-remote-shell' run a command. | 203 | arguments to let `tramp-remote-shell' run a single command. |
| 204 | * `tramp-login-program' | 204 | * `tramp-login-program' |
| 205 | This specifies the name of the program to use for logging in to the | 205 | This specifies the name of the program to use for logging in to the |
| 206 | remote host. This may be the name of rsh or a workalike program, | 206 | remote host. This may be the name of rsh or a workalike program, |
| @@ -255,6 +255,9 @@ pair of the form (KEY VALUE). The following KEYs are defined: | |||
| 255 | not have to be newline or carriage return characters. Other login | 255 | not have to be newline or carriage return characters. Other login |
| 256 | programs are happy with just one character, the newline character. | 256 | programs are happy with just one character, the newline character. |
| 257 | We use \"xy\" as the value for methods using \"plink\". | 257 | We use \"xy\" as the value for methods using \"plink\". |
| 258 | * `tramp-tmpdir' | ||
| 259 | A directory on the remote host for temporary files. If not | ||
| 260 | specified, \"/tmp\" is taken as default. | ||
| 258 | 261 | ||
| 259 | What does all this mean? Well, you should specify `tramp-login-program' | 262 | What does all this mean? Well, you should specify `tramp-login-program' |
| 260 | for all methods; this program is used to log in to the remote site. Then, | 263 | for all methods; this program is used to log in to the remote site. Then, |
| @@ -3531,20 +3534,26 @@ If the `tramp-methods' entry does not exist, return nil." | |||
| 3531 | ;; loaded already. | 3534 | ;; loaded already. |
| 3532 | (zerop (tramp-compat-funcall 'tramp-get-remote-uid vec 'integer)))))) | 3535 | (zerop (tramp-compat-funcall 'tramp-get-remote-uid vec 'integer)))))) |
| 3533 | 3536 | ||
| 3537 | (defun tramp-get-remote-tmpdir (vec) | ||
| 3538 | "Return directory for temporary files on the remote host identified by VEC." | ||
| 3539 | (with-connection-property vec "tmpdir" | ||
| 3540 | (let ((dir (tramp-make-tramp-file-name | ||
| 3541 | (tramp-file-name-method vec) | ||
| 3542 | (tramp-file-name-user vec) | ||
| 3543 | (tramp-file-name-host vec) | ||
| 3544 | (or | ||
| 3545 | (tramp-get-method-parameter | ||
| 3546 | (tramp-file-name-method vec) 'tramp-tmpdir) | ||
| 3547 | "/tmp")))) | ||
| 3548 | (if (and (file-directory-p dir) (file-writable-p dir)) | ||
| 3549 | dir | ||
| 3550 | (tramp-error vec 'file-error "Directory %s not accessible" dir))))) | ||
| 3551 | |||
| 3534 | (defun tramp-make-tramp-temp-file (vec) | 3552 | (defun tramp-make-tramp-temp-file (vec) |
| 3535 | "Create a temporary file on the remote host identified by VEC. | 3553 | "Create a temporary file on the remote host identified by VEC. |
| 3536 | Return the local name of the temporary file." | 3554 | Return the local name of the temporary file." |
| 3537 | (let ((prefix | 3555 | (let ((prefix (expand-file-name |
| 3538 | (tramp-make-tramp-file-name | 3556 | tramp-temp-name-prefix (tramp-get-remote-tmpdir vec))) |
| 3539 | (tramp-file-name-method vec) | ||
| 3540 | (tramp-file-name-user vec) | ||
| 3541 | (tramp-file-name-host vec) | ||
| 3542 | (tramp-drop-volume-letter | ||
| 3543 | (expand-file-name | ||
| 3544 | tramp-temp-name-prefix | ||
| 3545 | ;; This is defined in tramp-sh.el. Let's assume this is | ||
| 3546 | ;; loaded already. | ||
| 3547 | (tramp-compat-funcall 'tramp-get-remote-tmpdir vec))))) | ||
| 3548 | result) | 3557 | result) |
| 3549 | (while (not result) | 3558 | (while (not result) |
| 3550 | ;; `make-temp-file' would be the natural choice for | 3559 | ;; `make-temp-file' would be the natural choice for |
diff --git a/lisp/newcomment.el b/lisp/newcomment.el index 8c0d7b25939..3f2338b3a4c 100644 --- a/lisp/newcomment.el +++ b/lisp/newcomment.el | |||
| @@ -316,7 +316,8 @@ the variables are properly set." | |||
| 316 | (let ((cs (read-string "No comment syntax is defined. Use: "))) | 316 | (let ((cs (read-string "No comment syntax is defined. Use: "))) |
| 317 | (if (zerop (length cs)) | 317 | (if (zerop (length cs)) |
| 318 | (error "No comment syntax defined") | 318 | (error "No comment syntax defined") |
| 319 | (set (make-local-variable 'comment-start) cs)))) | 319 | (set (make-local-variable 'comment-start) cs) |
| 320 | (set (make-local-variable 'comment-start-skip) cs)))) | ||
| 320 | ;; comment-use-syntax | 321 | ;; comment-use-syntax |
| 321 | (when (eq comment-use-syntax 'undecided) | 322 | (when (eq comment-use-syntax 'undecided) |
| 322 | (set (make-local-variable 'comment-use-syntax) | 323 | (set (make-local-variable 'comment-use-syntax) |
diff --git a/lisp/org/ChangeLog b/lisp/org/ChangeLog index d63929d794e..1c320f20e51 100644 --- a/lisp/org/ChangeLog +++ b/lisp/org/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2011-09-17 Juanma Barranquero <lekktu@gmail.com> | ||
| 2 | |||
| 3 | * org.el (org-toggle-pretty-entities): Fix typo in message. | ||
| 4 | |||
| 1 | 2011-09-02 Chong Yidong <cyd@stupidchicken.com> | 5 | 2011-09-02 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 6 | ||
| 3 | * org-compat.el (org-pop-to-buffer-same-window): Deleted. | 7 | * org-compat.el (org-pop-to-buffer-same-window): Deleted. |
diff --git a/lisp/org/org.el b/lisp/org/org.el index d494bdb28fa..419ff022cf6 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el | |||
| @@ -5660,7 +5660,7 @@ needs to be inserted at a specific position in the font-lock sequence.") | |||
| 5660 | (org-set-local 'org-pretty-entities (not org-pretty-entities)) | 5660 | (org-set-local 'org-pretty-entities (not org-pretty-entities)) |
| 5661 | (org-restart-font-lock) | 5661 | (org-restart-font-lock) |
| 5662 | (if org-pretty-entities | 5662 | (if org-pretty-entities |
| 5663 | (message "Entities are displayed as UTF8 characers") | 5663 | (message "Entities are displayed as UTF8 characters") |
| 5664 | (save-restriction | 5664 | (save-restriction |
| 5665 | (widen) | 5665 | (widen) |
| 5666 | (org-decompose-region (point-min) (point-max)) | 5666 | (org-decompose-region (point-min) (point-max)) |
diff --git a/lisp/outline.el b/lisp/outline.el index 2f84e7d93ea..f864058c6fc 100644 --- a/lisp/outline.el +++ b/lisp/outline.el | |||
| @@ -137,24 +137,23 @@ in the file it applies to." | |||
| 137 | (cons "Headings" (make-sparse-keymap "Headings"))) | 137 | (cons "Headings" (make-sparse-keymap "Headings"))) |
| 138 | 138 | ||
| 139 | (define-key map [headings demote-subtree] | 139 | (define-key map [headings demote-subtree] |
| 140 | '(menu-item "Demote subtree" outline-demote | 140 | '(menu-item "Demote Subtree" outline-demote |
| 141 | :help "Demote headings lower down the tree")) | 141 | :help "Demote headings lower down the tree")) |
| 142 | (define-key map [headings promote-subtree] | 142 | (define-key map [headings promote-subtree] |
| 143 | '(menu-item "Promote subtree" outline-promote | 143 | '(menu-item "Promote Subtree" outline-promote |
| 144 | :help "Promote headings higher up the tree")) | 144 | :help "Promote headings higher up the tree")) |
| 145 | (define-key map [headings move-subtree-down] | 145 | (define-key map [headings move-subtree-down] |
| 146 | '(menu-item "Move subtree down" outline-move-subtree-down | 146 | '(menu-item "Move Subtree Down" outline-move-subtree-down |
| 147 | :help "Move the currrent subtree down past arg headlines of the same level")) | 147 | :help "Move the currrent subtree down past arg headlines of the same level")) |
| 148 | (define-key map [headings move-subtree-up] | 148 | (define-key map [headings move-subtree-up] |
| 149 | '(menu-item "Move subtree up" outline-move-subtree-up | 149 | '(menu-item "Move Subtree Up" outline-move-subtree-up |
| 150 | :help "Move the currrent subtree up past arg headlines of the same level")) | 150 | :help "Move the currrent subtree up past arg headlines of the same level")) |
| 151 | (define-key map [headings copy] | 151 | (define-key map [headings copy] |
| 152 | '(menu-item "Copy to kill ring" outline-headers-as-kill | 152 | '(menu-item "Copy to Kill Ring" outline-headers-as-kill |
| 153 | :enable mark-active | 153 | :enable mark-active |
| 154 | :help "Save the visible outline headers in region at the start of the kill ring")) | 154 | :help "Save the visible outline headers in region at the start of the kill ring")) |
| 155 | (define-key map [headings outline-insert-heading] | 155 | (define-key map [headings outline-insert-heading] |
| 156 | 156 | '(menu-item "New Heading" outline-insert-heading | |
| 157 | '(menu-item "New heading" outline-insert-heading | ||
| 158 | :help "Insert a new heading at same depth at point")) | 157 | :help "Insert a new heading at same depth at point")) |
| 159 | (define-key map [headings outline-backward-same-level] | 158 | (define-key map [headings outline-backward-same-level] |
| 160 | 159 | ||
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el index 1178a8a0b7e..fd817e3b4f4 100644 --- a/lisp/progmodes/cc-fonts.el +++ b/lisp/progmodes/cc-fonts.el | |||
| @@ -290,7 +290,7 @@ | |||
| 290 | res)))) | 290 | res)))) |
| 291 | 291 | ||
| 292 | (defun c-make-font-lock-search-form (regexp highlights) | 292 | (defun c-make-font-lock-search-form (regexp highlights) |
| 293 | ;; Return a lisp form which will fontify every occurence of REGEXP | 293 | ;; Return a lisp form which will fontify every occurrence of REGEXP |
| 294 | ;; (a regular expression, NOT a function) between POINT and `limit' | 294 | ;; (a regular expression, NOT a function) between POINT and `limit' |
| 295 | ;; with HIGHLIGHTS, a list of highlighters as specified on page | 295 | ;; with HIGHLIGHTS, a list of highlighters as specified on page |
| 296 | ;; "Search-based Fontification" in the elisp manual. | 296 | ;; "Search-based Fontification" in the elisp manual. |
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index a3300077909..d321e9c1388 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el | |||
| @@ -2070,7 +2070,9 @@ for \\[find-tag] (which see)." | |||
| 2070 | (let ((comp-data (tags-completion-at-point-function))) | 2070 | (let ((comp-data (tags-completion-at-point-function))) |
| 2071 | (if (null comp-data) | 2071 | (if (null comp-data) |
| 2072 | (error "Nothing to complete") | 2072 | (error "Nothing to complete") |
| 2073 | (apply 'completion-in-region comp-data)))) | 2073 | (completion-in-region (car comp-data) (cadr comp-data) |
| 2074 | (nth 2 comp-data) | ||
| 2075 | (plist-get (nthcdr 3 comp-data) :predicate))))) | ||
| 2074 | 2076 | ||
| 2075 | (dolist (x '("^No tags table in use; use .* to select one$" | 2077 | (dolist (x '("^No tags table in use; use .* to select one$" |
| 2076 | "^There is no default tag$" | 2078 | "^There is no default tag$" |
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el index 000243b05df..2c68a29dd00 100644 --- a/lisp/progmodes/grep.el +++ b/lisp/progmodes/grep.el | |||
| @@ -476,7 +476,7 @@ Set up `compilation-exit-message-function' and run `grep-setup-hook'." | |||
| 476 | ;; so the buffer is still unmodified if there is no output. | 476 | ;; so the buffer is still unmodified if there is no output. |
| 477 | (cond ((and (zerop code) (buffer-modified-p)) | 477 | (cond ((and (zerop code) (buffer-modified-p)) |
| 478 | '("finished (matches found)\n" . "matched")) | 478 | '("finished (matches found)\n" . "matched")) |
| 479 | ((or (= code 1) (not (buffer-modified-p))) | 479 | ((not (buffer-modified-p)) |
| 480 | '("finished with no matches found\n" . "no match")) | 480 | '("finished with no matches found\n" . "no match")) |
| 481 | (t | 481 | (t |
| 482 | (cons msg code))) | 482 | (cons msg code))) |
diff --git a/lisp/replace.el b/lisp/replace.el index 70175cf205c..455e1a511e8 100644 --- a/lisp/replace.el +++ b/lisp/replace.el | |||
| @@ -810,7 +810,7 @@ a previously found match." | |||
| 810 | ;; We use this alternative name, so we can use \\[occur-mode-mouse-goto]. | 810 | ;; We use this alternative name, so we can use \\[occur-mode-mouse-goto]. |
| 811 | (define-key map [mouse-2] 'occur-mode-mouse-goto) | 811 | (define-key map [mouse-2] 'occur-mode-mouse-goto) |
| 812 | (define-key map "\C-c\C-c" 'occur-mode-goto-occurrence) | 812 | (define-key map "\C-c\C-c" 'occur-mode-goto-occurrence) |
| 813 | (define-key map "\C-x\C-q" 'occur-edit-mode) | 813 | (define-key map "e" 'occur-edit-mode) |
| 814 | (define-key map "\C-m" 'occur-mode-goto-occurrence) | 814 | (define-key map "\C-m" 'occur-mode-goto-occurrence) |
| 815 | (define-key map "o" 'occur-mode-goto-occurrence-other-window) | 815 | (define-key map "o" 'occur-mode-goto-occurrence-other-window) |
| 816 | (define-key map "\C-o" 'occur-mode-display-occurrence) | 816 | (define-key map "\C-o" 'occur-mode-display-occurrence) |
| @@ -864,8 +864,8 @@ Alternatively, click \\[occur-mode-mouse-goto] on an item to go to it. | |||
| 864 | (let ((map (make-sparse-keymap))) | 864 | (let ((map (make-sparse-keymap))) |
| 865 | (set-keymap-parent map text-mode-map) | 865 | (set-keymap-parent map text-mode-map) |
| 866 | (define-key map [mouse-2] 'occur-mode-mouse-goto) | 866 | (define-key map [mouse-2] 'occur-mode-mouse-goto) |
| 867 | (define-key map "\C-c\C-c" 'occur-mode-goto-occurrence) | 867 | (define-key map "\C-c\C-c" 'occur-cease-edit) |
| 868 | (define-key map "\C-x\C-q" 'occur-mode) | 868 | (define-key map "\C-o" 'occur-mode-display-occurrence) |
| 869 | (define-key map "\C-c\C-f" 'next-error-follow-minor-mode) | 869 | (define-key map "\C-c\C-f" 'next-error-follow-minor-mode) |
| 870 | (define-key map [menu-bar occur] (cons (purecopy "Occur") occur-menu-map)) | 870 | (define-key map [menu-bar occur] (cons (purecopy "Occur") occur-menu-map)) |
| 871 | map) | 871 | map) |
| @@ -878,40 +878,54 @@ the originating buffer. | |||
| 878 | 878 | ||
| 879 | To return to ordinary Occur mode, use \\[occur-mode]." | 879 | To return to ordinary Occur mode, use \\[occur-mode]." |
| 880 | (setq buffer-read-only nil) | 880 | (setq buffer-read-only nil) |
| 881 | (add-hook 'after-change-functions 'occur-after-change-function nil t)) | 881 | (add-hook 'after-change-functions 'occur-after-change-function nil t) |
| 882 | (message (substitute-command-keys | ||
| 883 | "Editing: Type \\[occur-cease-edit] to return to Occur mode."))) | ||
| 884 | |||
| 885 | (defun occur-cease-edit () | ||
| 886 | "Switch from Occur Edit mode to Occur mode." | ||
| 887 | (interactive) | ||
| 888 | (when (derived-mode-p 'occur-edit-mode) | ||
| 889 | (occur-mode) | ||
| 890 | (message "Switching to Occur mode."))) | ||
| 882 | 891 | ||
| 883 | (defun occur-after-change-function (beg end length) | 892 | (defun occur-after-change-function (beg end length) |
| 884 | (save-excursion | 893 | (save-excursion |
| 885 | (goto-char beg) | 894 | (goto-char beg) |
| 886 | (let* ((m (get-text-property (line-beginning-position) 'occur-target)) | 895 | (let* ((line-beg (line-beginning-position)) |
| 896 | (m (get-text-property line-beg 'occur-target)) | ||
| 887 | (buf (marker-buffer m)) | 897 | (buf (marker-buffer m)) |
| 888 | (col (current-column))) | 898 | col) |
| 889 | (when (= length 0) | 899 | (when (and (get-text-property line-beg 'occur-prefix) |
| 890 | ;; Apply occur-target property to inserted (e.g. yanked) text. | 900 | (not (get-text-property end 'occur-prefix))) |
| 891 | (put-text-property beg end 'occur-target m) | 901 | (when (= length 0) |
| 892 | ;; Did we insert a newline? Occur Edit mode can't create new | 902 | ;; Apply occur-target property to inserted (e.g. yanked) text. |
| 893 | ;; Occur entries; just discard everything after the newline. | 903 | (put-text-property beg end 'occur-target m) |
| 894 | (save-excursion | 904 | ;; Did we insert a newline? Occur Edit mode can't create new |
| 895 | (and (search-forward "\n" end t) | 905 | ;; Occur entries; just discard everything after the newline. |
| 896 | (delete-region (1- (point)) end)))) | 906 | (save-excursion |
| 897 | (let ((line (- (line-number-at-pos) | 907 | (and (search-forward "\n" end t) |
| 898 | (line-number-at-pos (window-start)))) | 908 | (delete-region (1- (point)) end)))) |
| 899 | (readonly (with-current-buffer buf buffer-read-only)) | 909 | (let* ((line (- (line-number-at-pos) |
| 900 | (win (or (get-buffer-window buf) | 910 | (line-number-at-pos (window-start)))) |
| 901 | (display-buffer buf t))) | 911 | (readonly (with-current-buffer buf buffer-read-only)) |
| 902 | (text (save-excursion | 912 | (win (or (get-buffer-window buf) |
| 903 | (forward-line 0) | 913 | (display-buffer buf t))) |
| 904 | (search-forward ":" nil t) | 914 | (line-end (line-end-position)) |
| 905 | (setq col (- col (current-column))) | 915 | (text (save-excursion |
| 906 | (buffer-substring-no-properties (point) (line-end-position))))) | 916 | (goto-char (next-single-property-change |
| 907 | (with-selected-window win | 917 | line-beg 'occur-prefix nil |
| 908 | (goto-char m) | 918 | line-end)) |
| 909 | (recenter line) | 919 | (setq col (- (point) line-beg)) |
| 910 | (if readonly | 920 | (buffer-substring-no-properties (point) line-end)))) |
| 911 | (message "Buffer `%s' is read only." buf) | 921 | (with-selected-window win |
| 912 | (delete-region (line-beginning-position) (line-end-position)) | 922 | (goto-char m) |
| 913 | (insert text)) | 923 | (recenter line) |
| 914 | (move-to-column col)))))) | 924 | (if readonly |
| 925 | (message "Buffer `%s' is read only." buf) | ||
| 926 | (delete-region (line-beginning-position) (line-end-position)) | ||
| 927 | (insert text)) | ||
| 928 | (move-to-column col))))))) | ||
| 915 | 929 | ||
| 916 | 930 | ||
| 917 | (defun occur-revert-function (_ignore1 _ignore2) | 931 | (defun occur-revert-function (_ignore1 _ignore2) |
| @@ -1336,9 +1350,12 @@ See also `multi-occur'." | |||
| 1336 | (when prefix-face | 1350 | (when prefix-face |
| 1337 | `(font-lock-face prefix-face)) | 1351 | `(font-lock-face prefix-face)) |
| 1338 | `(occur-prefix t mouse-face (highlight) | 1352 | `(occur-prefix t mouse-face (highlight) |
| 1339 | occur-target ,marker follow-link t | 1353 | ;; Allow insertion of text at |
| 1340 | read-only t | 1354 | ;; the end of the prefix (for |
| 1341 | help-echo "mouse-2: go to this occurrence")))) | 1355 | ;; Occur Edit mode). |
| 1356 | front-sticky t rear-nonsticky t | ||
| 1357 | occur-target ,marker follow-link t | ||
| 1358 | help-echo "mouse-2: go to this occurrence")))) | ||
| 1342 | (match-str | 1359 | (match-str |
| 1343 | ;; We don't put `mouse-face' on the newline, | 1360 | ;; We don't put `mouse-face' on the newline, |
| 1344 | ;; because that loses. And don't put it | 1361 | ;; because that loses. And don't put it |
diff --git a/lisp/simple.el b/lisp/simple.el index 74343496c72..4db0aae25ad 100644 --- a/lisp/simple.el +++ b/lisp/simple.el | |||
| @@ -4134,7 +4134,9 @@ a semipermanent goal column for this command. | |||
| 4134 | Then instead of trying to move exactly vertically (or as close as possible), | 4134 | Then instead of trying to move exactly vertically (or as close as possible), |
| 4135 | this command moves to the specified goal column (or as close as possible). | 4135 | this command moves to the specified goal column (or as close as possible). |
| 4136 | The goal column is stored in the variable `goal-column', which is nil | 4136 | The goal column is stored in the variable `goal-column', which is nil |
| 4137 | when there is no goal column. | 4137 | when there is no goal column. Note that setting `goal-column' |
| 4138 | overrides `line-move-visual' and causes this command to move by buffer | ||
| 4139 | lines rather than by display lines. | ||
| 4138 | 4140 | ||
| 4139 | If you are thinking of using this in a Lisp program, consider | 4141 | If you are thinking of using this in a Lisp program, consider |
| 4140 | using `forward-line' instead. It is usually easier to use | 4142 | using `forward-line' instead. It is usually easier to use |
| @@ -4172,7 +4174,9 @@ a semipermanent goal column for this command. | |||
| 4172 | Then instead of trying to move exactly vertically (or as close as possible), | 4174 | Then instead of trying to move exactly vertically (or as close as possible), |
| 4173 | this command moves to the specified goal column (or as close as possible). | 4175 | this command moves to the specified goal column (or as close as possible). |
| 4174 | The goal column is stored in the variable `goal-column', which is nil | 4176 | The goal column is stored in the variable `goal-column', which is nil |
| 4175 | when there is no goal column. | 4177 | when there is no goal column. Note that setting `goal-column' |
| 4178 | overrides `line-move-visual' and causes this command to move by buffer | ||
| 4179 | lines rather than by display lines. | ||
| 4176 | 4180 | ||
| 4177 | If you are thinking of using this in a Lisp program, consider using | 4181 | If you are thinking of using this in a Lisp program, consider using |
| 4178 | `forward-line' with a negative argument instead. It is usually easier | 4182 | `forward-line' with a negative argument instead. It is usually easier |
| @@ -4196,7 +4200,8 @@ This has no effect when `line-move-visual' is non-nil." | |||
| 4196 | :group 'editing-basics) | 4200 | :group 'editing-basics) |
| 4197 | 4201 | ||
| 4198 | (defcustom goal-column nil | 4202 | (defcustom goal-column nil |
| 4199 | "Semipermanent goal column for vertical motion, as set by \\[set-goal-column], or nil." | 4203 | "Semipermanent goal column for vertical motion, as set by \\[set-goal-column], or nil. |
| 4204 | A non-nil setting overrides `line-move-visual', which see." | ||
| 4200 | :type '(choice integer | 4205 | :type '(choice integer |
| 4201 | (const :tag "None" nil)) | 4206 | (const :tag "None" nil)) |
| 4202 | :group 'editing-basics) | 4207 | :group 'editing-basics) |
| @@ -4226,7 +4231,9 @@ Outline mode sets this." | |||
| 4226 | This movement is based on where the cursor is displayed on the | 4231 | This movement is based on where the cursor is displayed on the |
| 4227 | screen, instead of relying on buffer contents alone. It takes | 4232 | screen, instead of relying on buffer contents alone. It takes |
| 4228 | into account variable-width characters and line continuation. | 4233 | into account variable-width characters and line continuation. |
| 4229 | If nil, `line-move' moves point by logical lines." | 4234 | If nil, `line-move' moves point by logical lines. |
| 4235 | A non-nil setting of `goal-column' overrides the value of this variable | ||
| 4236 | and forces movement by logical lines." | ||
| 4230 | :type 'boolean | 4237 | :type 'boolean |
| 4231 | :group 'editing-basics | 4238 | :group 'editing-basics |
| 4232 | :version "23.1") | 4239 | :version "23.1") |
| @@ -4303,7 +4310,7 @@ If nil, `line-move' moves point by logical lines." | |||
| 4303 | (not executing-kbd-macro) | 4310 | (not executing-kbd-macro) |
| 4304 | (line-move-partial arg noerror to-end)) | 4311 | (line-move-partial arg noerror to-end)) |
| 4305 | (set-window-vscroll nil 0 t) | 4312 | (set-window-vscroll nil 0 t) |
| 4306 | (if line-move-visual | 4313 | (if (and line-move-visual (not goal-column)) |
| 4307 | (line-move-visual arg noerror) | 4314 | (line-move-visual arg noerror) |
| 4308 | (line-move-1 arg noerror to-end)))) | 4315 | (line-move-1 arg noerror to-end)))) |
| 4309 | 4316 | ||
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index 5521cfd3de8..b76b0a303df 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el | |||
| @@ -1723,7 +1723,11 @@ quit spell session exited." | |||
| 1723 | (extent-at start) | 1723 | (extent-at start) |
| 1724 | (and (fboundp 'delete-extent) | 1724 | (and (fboundp 'delete-extent) |
| 1725 | (delete-extent (extent-at start))))) | 1725 | (delete-extent (extent-at start))))) |
| 1726 | ((null poss) (message "Error in ispell process")) | 1726 | ((null poss) |
| 1727 | (message "Error checking word %s using %s with %s dictionary" | ||
| 1728 | (funcall ispell-format-word-function word) | ||
| 1729 | (file-name-nondirectory ispell-program-name) | ||
| 1730 | (or ispell-current-dictionary "default"))) | ||
| 1727 | (ispell-check-only ; called from ispell minor mode. | 1731 | (ispell-check-only ; called from ispell minor mode. |
| 1728 | (if (fboundp 'make-extent) | 1732 | (if (fboundp 'make-extent) |
| 1729 | (if (fboundp 'set-extent-property) | 1733 | (if (fboundp 'set-extent-property) |
| @@ -3034,7 +3038,7 @@ Must call after `ispell-buffer-local-parsing' due to dependence on mode." | |||
| 3034 | (while (looking-at "[ \t\n]*\\[") (forward-sexp)) | 3038 | (while (looking-at "[ \t\n]*\\[") (forward-sexp)) |
| 3035 | (forward-sexp (or arg 1))) | 3039 | (forward-sexp (or arg 1))) |
| 3036 | (error | 3040 | (error |
| 3037 | (message "error skipping s-expressions at point %d." (point)) | 3041 | (message "Error skipping s-expressions at point %d." (point)) |
| 3038 | (beep) | 3042 | (beep) |
| 3039 | (sit-for 2)))) | 3043 | (sit-for 2)))) |
| 3040 | 3044 | ||
diff --git a/lisp/vc/vc-bzr.el b/lisp/vc/vc-bzr.el index 4eff3244cdc..3ab1caf2864 100644 --- a/lisp/vc/vc-bzr.el +++ b/lisp/vc/vc-bzr.el | |||
| @@ -964,23 +964,23 @@ stream. Standard error output is discarded." | |||
| 964 | (defvar vc-bzr-shelve-menu-map | 964 | (defvar vc-bzr-shelve-menu-map |
| 965 | (let ((map (make-sparse-keymap "Bzr Shelve"))) | 965 | (let ((map (make-sparse-keymap "Bzr Shelve"))) |
| 966 | (define-key map [de] | 966 | (define-key map [de] |
| 967 | '(menu-item "Delete shelf" vc-bzr-shelve-delete-at-point | 967 | '(menu-item "Delete Shelf" vc-bzr-shelve-delete-at-point |
| 968 | :help "Delete the current shelf")) | 968 | :help "Delete the current shelf")) |
| 969 | (define-key map [ap] | 969 | (define-key map [ap] |
| 970 | '(menu-item "Apply and keep shelf" vc-bzr-shelve-apply-and-keep-at-point | 970 | '(menu-item "Apply and Keep Shelf" vc-bzr-shelve-apply-and-keep-at-point |
| 971 | :help "Apply the current shelf and keep it")) | 971 | :help "Apply the current shelf and keep it")) |
| 972 | (define-key map [po] | 972 | (define-key map [po] |
| 973 | '(menu-item "Apply and remove shelf (pop)" vc-bzr-shelve-apply-at-point | 973 | '(menu-item "Apply and Remove Shelf (Pop)" vc-bzr-shelve-apply-at-point |
| 974 | :help "Apply the current shelf and remove it")) | 974 | :help "Apply the current shelf and remove it")) |
| 975 | (define-key map [sh] | 975 | (define-key map [sh] |
| 976 | '(menu-item "Show shelve" vc-bzr-shelve-show-at-point | 976 | '(menu-item "Show Shelve" vc-bzr-shelve-show-at-point |
| 977 | :help "Show the contents of the current shelve")) | 977 | :help "Show the contents of the current shelve")) |
| 978 | map)) | 978 | map)) |
| 979 | 979 | ||
| 980 | (defvar vc-bzr-extra-menu-map | 980 | (defvar vc-bzr-extra-menu-map |
| 981 | (let ((map (make-sparse-keymap))) | 981 | (let ((map (make-sparse-keymap))) |
| 982 | (define-key map [bzr-sn] | 982 | (define-key map [bzr-sn] |
| 983 | '(menu-item "Shelve a snapshot" vc-bzr-shelve-snapshot | 983 | '(menu-item "Shelve a Snapshot" vc-bzr-shelve-snapshot |
| 984 | :help "Shelve the current state of the tree and keep the current state")) | 984 | :help "Shelve the current state of the tree and keep the current state")) |
| 985 | (define-key map [bzr-sh] | 985 | (define-key map [bzr-sh] |
| 986 | '(menu-item "Shelve..." vc-bzr-shelve | 986 | '(menu-item "Shelve..." vc-bzr-shelve |
diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el index 5f3a9a21b59..ed16ee9f6f8 100644 --- a/lisp/vc/vc-dir.el +++ b/lisp/vc/vc-dir.el | |||
| @@ -125,15 +125,15 @@ See `run-hooks'." | |||
| 125 | :enable (not (vc-dir-busy)) | 125 | :enable (not (vc-dir-busy)) |
| 126 | :help "Refresh the contents of the directory buffer")) | 126 | :help "Refresh the contents of the directory buffer")) |
| 127 | (define-key map [remup] | 127 | (define-key map [remup] |
| 128 | '(menu-item "Hide up-to-date" vc-dir-hide-up-to-date | 128 | '(menu-item "Hide Up-to-date" vc-dir-hide-up-to-date |
| 129 | :help "Hide up-to-date items from display")) | 129 | :help "Hide up-to-date items from display")) |
| 130 | ;; Movement. | 130 | ;; Movement. |
| 131 | (define-key map [sepmv] '("--")) | 131 | (define-key map [sepmv] '("--")) |
| 132 | (define-key map [next-line] | 132 | (define-key map [next-line] |
| 133 | '(menu-item "Next line" vc-dir-next-line | 133 | '(menu-item "Next Line" vc-dir-next-line |
| 134 | :help "Go to the next line" :keys "n")) | 134 | :help "Go to the next line" :keys "n")) |
| 135 | (define-key map [previous-line] | 135 | (define-key map [previous-line] |
| 136 | '(menu-item "Previous line" vc-dir-previous-line | 136 | '(menu-item "Previous Line" vc-dir-previous-line |
| 137 | :help "Go to the previous line")) | 137 | :help "Go to the previous line")) |
| 138 | ;; Marking. | 138 | ;; Marking. |
| 139 | (define-key map [sepmrk] '("--")) | 139 | (define-key map [sepmrk] '("--")) |
| @@ -142,7 +142,7 @@ See `run-hooks'." | |||
| 142 | :help "Unmark all files that are in the same state as the current file\ | 142 | :help "Unmark all files that are in the same state as the current file\ |
| 143 | \nWith prefix argument unmark all files")) | 143 | \nWith prefix argument unmark all files")) |
| 144 | (define-key map [unmark-previous] | 144 | (define-key map [unmark-previous] |
| 145 | '(menu-item "Unmark previous " vc-dir-unmark-file-up | 145 | '(menu-item "Unmark Previous " vc-dir-unmark-file-up |
| 146 | :help "Move to the previous line and unmark the file")) | 146 | :help "Move to the previous line and unmark the file")) |
| 147 | 147 | ||
| 148 | (define-key map [mark-all] | 148 | (define-key map [mark-all] |
| @@ -171,10 +171,10 @@ See `run-hooks'." | |||
| 171 | '(menu-item "Isearch Files..." vc-dir-isearch | 171 | '(menu-item "Isearch Files..." vc-dir-isearch |
| 172 | :help "Incremental search a string in the marked files")) | 172 | :help "Incremental search a string in the marked files")) |
| 173 | (define-key map [open-other] | 173 | (define-key map [open-other] |
| 174 | '(menu-item "Open in other window" vc-dir-find-file-other-window | 174 | '(menu-item "Open in Other Window" vc-dir-find-file-other-window |
| 175 | :help "Find the file on the current line, in another window")) | 175 | :help "Find the file on the current line, in another window")) |
| 176 | (define-key map [open] | 176 | (define-key map [open] |
| 177 | '(menu-item "Open file" vc-dir-find-file | 177 | '(menu-item "Open File" vc-dir-find-file |
| 178 | :help "Find the file on the current line")) | 178 | :help "Find the file on the current line")) |
| 179 | (define-key map [sepvcdet] '("--")) | 179 | (define-key map [sepvcdet] '("--")) |
| 180 | ;; FIXME: This needs a key binding. And maybe a better name | 180 | ;; FIXME: This needs a key binding. And maybe a better name |
| @@ -203,10 +203,10 @@ See `run-hooks'." | |||
| 203 | ;; VC commands. | 203 | ;; VC commands. |
| 204 | (define-key map [sepvccmd] '("--")) | 204 | (define-key map [sepvccmd] '("--")) |
| 205 | (define-key map [update] | 205 | (define-key map [update] |
| 206 | '(menu-item "Update to latest version" vc-update | 206 | '(menu-item "Update to Latest Version" vc-update |
| 207 | :help "Update the current fileset's files to their tip revisions")) | 207 | :help "Update the current fileset's files to their tip revisions")) |
| 208 | (define-key map [revert] | 208 | (define-key map [revert] |
| 209 | '(menu-item "Revert to base version" vc-revert | 209 | '(menu-item "Revert to Base Version" vc-revert |
| 210 | :help "Revert working copies of the selected fileset to their repository contents.")) | 210 | :help "Revert working copies of the selected fileset to their repository contents.")) |
| 211 | (define-key map [next-action] | 211 | (define-key map [next-action] |
| 212 | ;; FIXME: This really really really needs a better name! | 212 | ;; FIXME: This really really really needs a better name! |
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 1bb246fea0b..e9cbeeeb40a 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el | |||
| @@ -486,16 +486,16 @@ or an empty string if none." | |||
| 486 | (defvar vc-git-stash-menu-map | 486 | (defvar vc-git-stash-menu-map |
| 487 | (let ((map (make-sparse-keymap "Git Stash"))) | 487 | (let ((map (make-sparse-keymap "Git Stash"))) |
| 488 | (define-key map [de] | 488 | (define-key map [de] |
| 489 | '(menu-item "Delete stash" vc-git-stash-delete-at-point | 489 | '(menu-item "Delete Stash" vc-git-stash-delete-at-point |
| 490 | :help "Delete the current stash")) | 490 | :help "Delete the current stash")) |
| 491 | (define-key map [ap] | 491 | (define-key map [ap] |
| 492 | '(menu-item "Apply stash" vc-git-stash-apply-at-point | 492 | '(menu-item "Apply Stash" vc-git-stash-apply-at-point |
| 493 | :help "Apply the current stash and keep it in the stash list")) | 493 | :help "Apply the current stash and keep it in the stash list")) |
| 494 | (define-key map [po] | 494 | (define-key map [po] |
| 495 | '(menu-item "Apply and remove stash (pop)" vc-git-stash-pop-at-point | 495 | '(menu-item "Apply and Remove Stash (Pop)" vc-git-stash-pop-at-point |
| 496 | :help "Apply the current stash and remove it")) | 496 | :help "Apply the current stash and remove it")) |
| 497 | (define-key map [sh] | 497 | (define-key map [sh] |
| 498 | '(menu-item "Show stash" vc-git-stash-show-at-point | 498 | '(menu-item "Show Stash" vc-git-stash-show-at-point |
| 499 | :help "Show the contents of the current stash")) | 499 | :help "Show the contents of the current stash")) |
| 500 | map)) | 500 | map)) |
| 501 | 501 | ||
| @@ -933,7 +933,7 @@ or BRANCH^ (where \"^\" can be repeated)." | |||
| 933 | '(menu-item "Git grep..." vc-git-grep | 933 | '(menu-item "Git grep..." vc-git-grep |
| 934 | :help "Run the `git grep' command")) | 934 | :help "Run the `git grep' command")) |
| 935 | (define-key map [git-sn] | 935 | (define-key map [git-sn] |
| 936 | '(menu-item "Stash a snapshot" vc-git-stash-snapshot | 936 | '(menu-item "Stash a Snapshot" vc-git-stash-snapshot |
| 937 | :help "Stash the current state of the tree and keep the current state")) | 937 | :help "Stash the current state of the tree and keep the current state")) |
| 938 | (define-key map [git-st] | 938 | (define-key map [git-st] |
| 939 | '(menu-item "Create Stash..." vc-git-stash | 939 | '(menu-item "Create Stash..." vc-git-stash |
diff --git a/lisp/window.el b/lisp/window.el index c0e8781aab0..e0be98d5bd1 100644 --- a/lisp/window.el +++ b/lisp/window.el | |||
| @@ -158,7 +158,7 @@ An application may bind this to a non-nil value around calls to | |||
| 158 | these functions to inhibit processing of window parameters.") | 158 | these functions to inhibit processing of window parameters.") |
| 159 | 159 | ||
| 160 | (defconst window-safe-min-height 1 | 160 | (defconst window-safe-min-height 1 |
| 161 | "The absolut minimum number of lines of a window. | 161 | "The absolute minimum number of lines of a window. |
| 162 | Anything less might crash Emacs.") | 162 | Anything less might crash Emacs.") |
| 163 | 163 | ||
| 164 | (defcustom window-min-height 4 | 164 | (defcustom window-min-height 4 |
| @@ -177,12 +177,12 @@ shorter, explictly specify the SIZE argument of that function." | |||
| 177 | :group 'windows) | 177 | :group 'windows) |
| 178 | 178 | ||
| 179 | (defconst window-safe-min-width 2 | 179 | (defconst window-safe-min-width 2 |
| 180 | "The absolut minimum number of columns of a window. | 180 | "The absolute minimum number of columns of a window. |
| 181 | Anything less might crash Emacs.") | 181 | Anything less might crash Emacs.") |
| 182 | 182 | ||
| 183 | (defcustom window-min-width 10 | 183 | (defcustom window-min-width 10 |
| 184 | "The minimum number of columns of any window. | 184 | "The minimum number of columns of any window. |
| 185 | The value has to accomodate margins, fringes, or scrollbars if | 185 | The value has to accommodate margins, fringes, or scrollbars if |
| 186 | present. A value less than `window-safe-min-width' is ignored. | 186 | present. A value less than `window-safe-min-width' is ignored. |
| 187 | The value of this variable is honored when windows are resized or | 187 | The value of this variable is honored when windows are resized or |
| 188 | split. | 188 | split. |
| @@ -3772,7 +3772,7 @@ subwindows can get as small as `window-safe-min-height' and | |||
| 3772 | ;; issues - so IGNORE equal 'safe might not always produce the | 3772 | ;; issues - so IGNORE equal 'safe might not always produce the |
| 3773 | ;; minimum possible state. But such configurations hardly make | 3773 | ;; minimum possible state. But such configurations hardly make |
| 3774 | ;; sense anyway. | 3774 | ;; sense anyway. |
| 3775 | (error "Window %s too small to accomodate state" window) | 3775 | (error "Window %s too small to accommodate state" window) |
| 3776 | (setq state (cdr state)) | 3776 | (setq state (cdr state)) |
| 3777 | (setq window-state-put-list nil) | 3777 | (setq window-state-put-list nil) |
| 3778 | ;; Work on the windows of a temporary buffer to make sure that | 3778 | ;; Work on the windows of a temporary buffer to make sure that |
diff --git a/lisp/woman.el b/lisp/woman.el index 75a36d6ac36..7b530d1004f 100644 --- a/lisp/woman.el +++ b/lisp/woman.el | |||
| @@ -3954,6 +3954,8 @@ Optional argument NUMERIC, if non-nil, means the argument is numeric." | |||
| 3954 | ;; Done like this to preserve any text properties of the `\' | 3954 | ;; Done like this to preserve any text properties of the `\' |
| 3955 | (while (search-forward "\\" to t) | 3955 | (while (search-forward "\\" to t) |
| 3956 | (let ((c (following-char))) | 3956 | (let ((c (following-char))) |
| 3957 | ;; Some other escapes, such as \f, are handled in | ||
| 3958 | ;; `woman0-process-escapes'. | ||
| 3957 | (cond ((eq c ?') ; \' -> ' | 3959 | (cond ((eq c ?') ; \' -> ' |
| 3958 | (delete-char -1) | 3960 | (delete-char -1) |
| 3959 | (cond (numeric ; except in numeric args, \' -> ` | 3961 | (cond (numeric ; except in numeric args, \' -> ` |
| @@ -3967,12 +3969,7 @@ Optional argument NUMERIC, if non-nil, means the argument is numeric." | |||
| 3967 | (insert "\t")) | 3969 | (insert "\t")) |
| 3968 | ((and numeric | 3970 | ((and numeric |
| 3969 | (memq c '(?w ?n ?h)))) ; leave \w, \n, \h (?????) | 3971 | (memq c '(?w ?n ?h)))) ; leave \w, \n, \h (?????) |
| 3970 | ((eq c ?l) (woman-horizontal-line)) | 3972 | ((eq c ?l) (woman-horizontal-line))))) |
| 3971 | (t | ||
| 3972 | ;; \? -> ? where ? is any remaining character | ||
| 3973 | (WoMan-warn "Escape ignored: \\%c -> %c" c c) | ||
| 3974 | (delete-char -1)) | ||
| 3975 | ))) | ||
| 3976 | (goto-char from) | 3973 | (goto-char from) |
| 3977 | ;; Process non-default tab settings: | 3974 | ;; Process non-default tab settings: |
| 3978 | (cond (tab-stop-list | 3975 | (cond (tab-stop-list |
diff --git a/src/.gdbinit b/src/.gdbinit index 0f51a00ea76..b908ef005d6 100644 --- a/src/.gdbinit +++ b/src/.gdbinit | |||
| @@ -483,83 +483,83 @@ end | |||
| 483 | define pgx | 483 | define pgx |
| 484 | set $g = $arg0 | 484 | set $g = $arg0 |
| 485 | # CHAR_GLYPH | 485 | # CHAR_GLYPH |
| 486 | if ($g->type == 0) | 486 | if ($g.type == 0) |
| 487 | if ($g->u.ch >= ' ' && $g->u.ch < 127) | 487 | if ($g.u.ch >= ' ' && $g.u.ch < 127) |
| 488 | printf "CHAR[%c]", $g->u.ch | 488 | printf "CHAR[%c]", $g.u.ch |
| 489 | else | 489 | else |
| 490 | printf "CHAR[0x%x]", $g->u.ch | 490 | printf "CHAR[0x%x]", $g.u.ch |
| 491 | end | 491 | end |
| 492 | end | 492 | end |
| 493 | # COMPOSITE_GLYPH | 493 | # COMPOSITE_GLYPH |
| 494 | if ($g->type == 1) | 494 | if ($g.type == 1) |
| 495 | printf "COMP[%d (%d..%d)]", $g->u.cmp.id, $g->slice.cmp.from, $g->slice.cmp.to | 495 | printf "COMP[%d (%d..%d)]", $g.u.cmp.id, $g.slice.cmp.from, $g.slice.cmp.to |
| 496 | end | 496 | end |
| 497 | # GLYPHLESS_GLYPH | 497 | # GLYPHLESS_GLYPH |
| 498 | if ($g->type == 2) | 498 | if ($g.type == 2) |
| 499 | printf "GLYPHLESS[" | 499 | printf "GLYPHLESS[" |
| 500 | if ($g->u.glyphless.method == 0) | 500 | if ($g.u.glyphless.method == 0) |
| 501 | printf "THIN]" | 501 | printf "THIN]" |
| 502 | end | 502 | end |
| 503 | if ($g->u.glyphless.method == 1) | 503 | if ($g.u.glyphless.method == 1) |
| 504 | printf "EMPTY]" | 504 | printf "EMPTY]" |
| 505 | end | 505 | end |
| 506 | if ($g->u.glyphless.method == 2) | 506 | if ($g.u.glyphless.method == 2) |
| 507 | printf "ACRO]" | 507 | printf "ACRO]" |
| 508 | end | 508 | end |
| 509 | if ($g->u.glyphless.method == 3) | 509 | if ($g.u.glyphless.method == 3) |
| 510 | printf "HEX]" | 510 | printf "HEX]" |
| 511 | end | 511 | end |
| 512 | end | 512 | end |
| 513 | # IMAGE_GLYPH | 513 | # IMAGE_GLYPH |
| 514 | if ($g->type == 3) | 514 | if ($g.type == 3) |
| 515 | printf "IMAGE[%d]", $g->u.img_id | 515 | printf "IMAGE[%d]", $g.u.img_id |
| 516 | end | 516 | end |
| 517 | # STRETCH_GLYPH | 517 | # STRETCH_GLYPH |
| 518 | if ($g->type == 4) | 518 | if ($g.type == 4) |
| 519 | printf "STRETCH[%d+%d]", $g->u.stretch.height, $g->u.stretch.ascent | 519 | printf "STRETCH[%d+%d]", $g.u.stretch.height, $g.u.stretch.ascent |
| 520 | end | 520 | end |
| 521 | xgettype ($g->object) | 521 | xgettype ($g.object) |
| 522 | if ($type == Lisp_String) | 522 | if ($type == Lisp_String) |
| 523 | printf " str=%x[%d]", $g->object, $g->charpos | 523 | printf " str=%x[%d]", $g.object, $g.charpos |
| 524 | else | 524 | else |
| 525 | printf " pos=%d", $g->charpos | 525 | printf " pos=%d", $g.charpos |
| 526 | end | 526 | end |
| 527 | # For characters, print their resolved level and bidi type | 527 | # For characters, print their resolved level and bidi type |
| 528 | if ($g->type == 0) | 528 | if ($g.type == 0) |
| 529 | printf " blev=%d,btyp=", $g->resolved_level | 529 | printf " blev=%d,btyp=", $g.resolved_level |
| 530 | pbiditype $g->bidi_type | 530 | pbiditype $g.bidi_type |
| 531 | end | 531 | end |
| 532 | printf " w=%d a+d=%d+%d", $g->pixel_width, $g->ascent, $g->descent | 532 | printf " w=%d a+d=%d+%d", $g.pixel_width, $g.ascent, $g.descent |
| 533 | # If not DEFAULT_FACE_ID | 533 | # If not DEFAULT_FACE_ID |
| 534 | if ($g->face_id != 0) | 534 | if ($g.face_id != 0) |
| 535 | printf " face=%d", $g->face_id | 535 | printf " face=%d", $g.face_id |
| 536 | end | 536 | end |
| 537 | if ($g->voffset) | 537 | if ($g.voffset) |
| 538 | printf " vof=%d", $g->voffset | 538 | printf " vof=%d", $g.voffset |
| 539 | end | 539 | end |
| 540 | if ($g->multibyte_p) | 540 | if ($g.multibyte_p) |
| 541 | printf " MB" | 541 | printf " MB" |
| 542 | end | 542 | end |
| 543 | if ($g->padding_p) | 543 | if ($g.padding_p) |
| 544 | printf " PAD" | 544 | printf " PAD" |
| 545 | end | 545 | end |
| 546 | if ($g->glyph_not_available_p) | 546 | if ($g.glyph_not_available_p) |
| 547 | printf " N/A" | 547 | printf " N/A" |
| 548 | end | 548 | end |
| 549 | if ($g->overlaps_vertically_p) | 549 | if ($g.overlaps_vertically_p) |
| 550 | printf " OVL" | 550 | printf " OVL" |
| 551 | end | 551 | end |
| 552 | if ($g->avoid_cursor_p) | 552 | if ($g.avoid_cursor_p) |
| 553 | printf " AVOID" | 553 | printf " AVOID" |
| 554 | end | 554 | end |
| 555 | if ($g->left_box_line_p) | 555 | if ($g.left_box_line_p) |
| 556 | printf " [" | 556 | printf " [" |
| 557 | end | 557 | end |
| 558 | if ($g->right_box_line_p) | 558 | if ($g.right_box_line_p) |
| 559 | printf " ]" | 559 | printf " ]" |
| 560 | end | 560 | end |
| 561 | if ($g->slice.img.x || $g->slice.img.y || $g->slice.img.width || $g->slice.img.height) | 561 | if ($g.slice.img.x || $g.slice.img.y || $g.slice.img.width || $g.slice.img.height) |
| 562 | printf " slice=%d,%d,%d,%d" ,$g->slice.img.x, $g->slice.img.y, $g->slice.img.width, $g->slice.img.height | 562 | printf " slice=%d,%d,%d,%d" ,$g.slice.img.x, $g.slice.img.y, $g.slice.img.width, $g.slice.img.height |
| 563 | end | 563 | end |
| 564 | printf "\n" | 564 | printf "\n" |
| 565 | end | 565 | end |
diff --git a/src/ChangeLog b/src/ChangeLog index 15281f47438..12a45918e87 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,94 @@ | |||
| 1 | 2011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 2 | |||
| 3 | * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is | ||
| 4 | (bug#9493). | ||
| 5 | |||
| 6 | 2011-09-18 Chong Yidong <cyd@stupidchicken.com> | ||
| 7 | |||
| 8 | * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as | ||
| 9 | boolean (Bug#9154). | ||
| 10 | |||
| 11 | 2011-09-18 Eli Zaretskii <eliz@gnu.org> | ||
| 12 | |||
| 13 | * xdisp.c (display_line): Record maximum and minimum buffer | ||
| 14 | positions even if no glyphs were produced (e.g., by a zero-width | ||
| 15 | stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record | ||
| 16 | buffer positions that will be removed from the glyph row because | ||
| 17 | they don't fit. | ||
| 18 | (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the | ||
| 19 | column is beyond frame width: don't subtract 1 "pixel" when | ||
| 20 | computing width of the stretch. | ||
| 21 | (reseat_at_next_visible_line_start): Undo the change made on | ||
| 22 | 2011-09-17 that saved paragraph information and restored it after | ||
| 23 | the call to `reseat'. (Bug#9545) | ||
| 24 | |||
| 25 | 2011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 26 | |||
| 27 | * xdisp.c (expose_window): Save original value of phys_cursor_on_p | ||
| 28 | and turn window cursor on if cleared (Bug#9415). | ||
| 29 | |||
| 30 | 2011-09-18 Andreas Schwab <schwab@linux-m68k.org> | ||
| 31 | |||
| 32 | * search.c (boyer_moore): Take unibyte characters from pattern | ||
| 33 | literally. (Bug#9458) | ||
| 34 | |||
| 35 | 2011-09-18 Eli Zaretskii <eliz@gnu.org> | ||
| 36 | |||
| 37 | * xdisp.c (reseat_at_next_visible_line_start): Fix last change. | ||
| 38 | |||
| 39 | 2011-09-18 Paul Eggert <eggert@cs.ucla.edu> | ||
| 40 | |||
| 41 | Fix minor problem found by static checking. | ||
| 42 | * xdisp.c (reseat_at_next_visible_line_start): Mark locals as | ||
| 43 | initialized, to pacify gcc -Wuninitialized. | ||
| 44 | |||
| 45 | * fileio.c: Report proper errno when syscall falls. | ||
| 46 | (Finsert_file_contents): Save and restore errno, | ||
| 47 | so that report_file_error outputs the correct diagnostic. | ||
| 48 | (Fwrite_region) [CLASH_DETECTION]: Likewise. | ||
| 49 | |||
| 50 | 2011-09-18 Eli Zaretskii <eliz@gnu.org> | ||
| 51 | |||
| 52 | * .gdbinit (pgx): Fix references to fields of `struct glyph'. | ||
| 53 | |||
| 54 | 2011-09-17 Eli Zaretskii <eliz@gnu.org> | ||
| 55 | |||
| 56 | * xdisp.c (produce_stretch_glyph): Another fix for changes made on | ||
| 57 | 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530) | ||
| 58 | |||
| 59 | 2011-09-17 Eli Zaretskii <eliz@gnu.org> | ||
| 60 | |||
| 61 | * xdisp.c (reseat_at_next_visible_line_start): Keep information | ||
| 62 | about the current paragraph and restore it after the call to | ||
| 63 | reseat. | ||
| 64 | |||
| 65 | * bidi.c (MAX_PARAGRAPH_SEARCH): New macro. | ||
| 66 | (bidi_find_paragraph_start): Search back for paragraph beginning | ||
| 67 | at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE. | ||
| 68 | (bidi_move_to_visually_next): Only trigger paragraph-related | ||
| 69 | computations when the last character is a newline or at EOB, not | ||
| 70 | just any NEUTRAL_B. (Bug#9470) | ||
| 71 | |||
| 72 | * xdisp.c (set_cursor_from_row): Don't invoke special treatment of | ||
| 73 | truncated lines if point is covered by a display string. (Bug#9524) | ||
| 74 | |||
| 75 | 2011-09-16 Paul Eggert <eggert@cs.ucla.edu> | ||
| 76 | |||
| 77 | * xselect.c: Relax test for outgoing X longs (Bug#9498). | ||
| 78 | (cons_to_x_long): New function. | ||
| 79 | (lisp_data_to_selection_data): Use it. Correct the test for | ||
| 80 | short-versus-long data; it was negated. Break out of vector | ||
| 81 | loop, for efficiency, when a long datum is discovered. | ||
| 82 | |||
| 83 | 2011-09-16 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 84 | |||
| 85 | * eval.c (Fquote): Document its non-consing behavior (bug#9482). | ||
| 86 | |||
| 87 | 2011-09-16 Eli Zaretskii <eliz@gnu.org> | ||
| 88 | |||
| 89 | * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see | ||
| 90 | GCC PR/17406) by declaring this function with external scope. | ||
| 91 | |||
| 1 | 2011-09-15 Paul Eggert <eggert@cs.ucla.edu> | 92 | 2011-09-15 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 93 | ||
| 3 | * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514). | 94 | * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514). |
| @@ -1281,7 +1372,7 @@ | |||
| 1281 | underline, overline, and strike-through. | 1372 | underline, overline, and strike-through. |
| 1282 | (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to | 1373 | (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to |
| 1283 | ns_draw_text_decoration. Change treatment of cursor drawing to | 1374 | ns_draw_text_decoration. Change treatment of cursor drawing to |
| 1284 | accomodate underlining, etc. | 1375 | accommodate underlining, etc. |
| 1285 | 1376 | ||
| 1286 | 2011-07-28 Eli Zaretskii <eliz@gnu.org> | 1377 | 2011-07-28 Eli Zaretskii <eliz@gnu.org> |
| 1287 | 1378 | ||
diff --git a/src/bidi.c b/src/bidi.c index bb29647ea88..3efdc1590df 100644 --- a/src/bidi.c +++ b/src/bidi.c | |||
| @@ -1071,15 +1071,25 @@ bidi_at_paragraph_end (EMACS_INT charpos, EMACS_INT bytepos) | |||
| 1071 | return val; | 1071 | return val; |
| 1072 | } | 1072 | } |
| 1073 | 1073 | ||
| 1074 | /* On my 2005-vintage machine, searching back for paragraph start | ||
| 1075 | takes ~1 ms per line. And bidi_paragraph_init is called 4 times | ||
| 1076 | when user types C-p. The number below limits each call to | ||
| 1077 | bidi_paragraph_init to about 10 ms. */ | ||
| 1078 | #define MAX_PARAGRAPH_SEARCH 7500 | ||
| 1079 | |||
| 1074 | /* Find the beginning of this paragraph by looking back in the buffer. | 1080 | /* Find the beginning of this paragraph by looking back in the buffer. |
| 1075 | Value is the byte position of the paragraph's beginning. */ | 1081 | Value is the byte position of the paragraph's beginning, or |
| 1082 | BEGV_BYTE if paragraph_start_re is still not found after looking | ||
| 1083 | back MAX_PARAGRAPH_SEARCH lines in the buffer. */ | ||
| 1076 | static EMACS_INT | 1084 | static EMACS_INT |
| 1077 | bidi_find_paragraph_start (EMACS_INT pos, EMACS_INT pos_byte) | 1085 | bidi_find_paragraph_start (EMACS_INT pos, EMACS_INT pos_byte) |
| 1078 | { | 1086 | { |
| 1079 | Lisp_Object re = paragraph_start_re; | 1087 | Lisp_Object re = paragraph_start_re; |
| 1080 | EMACS_INT limit = ZV, limit_byte = ZV_BYTE; | 1088 | EMACS_INT limit = ZV, limit_byte = ZV_BYTE; |
| 1089 | EMACS_INT n = 0; | ||
| 1081 | 1090 | ||
| 1082 | while (pos_byte > BEGV_BYTE | 1091 | while (pos_byte > BEGV_BYTE |
| 1092 | && n++ < MAX_PARAGRAPH_SEARCH | ||
| 1083 | && fast_looking_at (re, pos, pos_byte, limit, limit_byte, Qnil) < 0) | 1093 | && fast_looking_at (re, pos, pos_byte, limit, limit_byte, Qnil) < 0) |
| 1084 | { | 1094 | { |
| 1085 | /* FIXME: What if the paragraph beginning is covered by a | 1095 | /* FIXME: What if the paragraph beginning is covered by a |
| @@ -1089,6 +1099,8 @@ bidi_find_paragraph_start (EMACS_INT pos, EMACS_INT pos_byte) | |||
| 1089 | pos = find_next_newline_no_quit (pos - 1, -1); | 1099 | pos = find_next_newline_no_quit (pos - 1, -1); |
| 1090 | pos_byte = CHAR_TO_BYTE (pos); | 1100 | pos_byte = CHAR_TO_BYTE (pos); |
| 1091 | } | 1101 | } |
| 1102 | if (n >= MAX_PARAGRAPH_SEARCH) | ||
| 1103 | pos_byte = BEGV_BYTE; | ||
| 1092 | return pos_byte; | 1104 | return pos_byte; |
| 1093 | } | 1105 | } |
| 1094 | 1106 | ||
| @@ -2239,7 +2251,8 @@ bidi_move_to_visually_next (struct bidi_it *bidi_it) | |||
| 2239 | GCPRO1 (bidi_it->string.lstring); | 2251 | GCPRO1 (bidi_it->string.lstring); |
| 2240 | 2252 | ||
| 2241 | /* If we just passed a newline, initialize for the next line. */ | 2253 | /* If we just passed a newline, initialize for the next line. */ |
| 2242 | if (!bidi_it->first_elt && bidi_it->orig_type == NEUTRAL_B) | 2254 | if (!bidi_it->first_elt |
| 2255 | && (bidi_it->ch == '\n' || bidi_it->ch == BIDI_EOB)) | ||
| 2243 | bidi_line_init (bidi_it); | 2256 | bidi_line_init (bidi_it); |
| 2244 | 2257 | ||
| 2245 | /* Prepare the sentinel iterator state, and cache it. When we bump | 2258 | /* Prepare the sentinel iterator state, and cache it. When we bump |
| @@ -2320,7 +2333,8 @@ bidi_move_to_visually_next (struct bidi_it *bidi_it) | |||
| 2320 | reordering, whereas we _must_ know the paragraph base direction | 2333 | reordering, whereas we _must_ know the paragraph base direction |
| 2321 | _before_ we process the paragraph's text, since the base | 2334 | _before_ we process the paragraph's text, since the base |
| 2322 | direction affects the reordering. */ | 2335 | direction affects the reordering. */ |
| 2323 | if (bidi_it->scan_dir == 1 && bidi_it->orig_type == NEUTRAL_B) | 2336 | if (bidi_it->scan_dir == 1 |
| 2337 | && (bidi_it->ch == '\n' || bidi_it->ch == BIDI_EOB)) | ||
| 2324 | { | 2338 | { |
| 2325 | /* The paragraph direction of the entire string, once | 2339 | /* The paragraph direction of the entire string, once |
| 2326 | determined, is in effect for the entire string. Setting the | 2340 | determined, is in effect for the entire string. Setting the |
diff --git a/src/eval.c b/src/eval.c index 57a273cd4aa..32b9d366fc3 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -475,6 +475,14 @@ usage: (setq [SYM VAL]...) */) | |||
| 475 | 475 | ||
| 476 | DEFUN ("quote", Fquote, Squote, 1, UNEVALLED, 0, | 476 | DEFUN ("quote", Fquote, Squote, 1, UNEVALLED, 0, |
| 477 | doc: /* Return the argument, without evaluating it. `(quote x)' yields `x'. | 477 | doc: /* Return the argument, without evaluating it. `(quote x)' yields `x'. |
| 478 | Warning: `quote' does not construct its return value, but just returns | ||
| 479 | the value that was pre-constructed by the Lisp reader (see info node | ||
| 480 | `(elisp)Printed Representation'). | ||
| 481 | This means that '(a . b) is not identical to (cons 'a 'b): the former | ||
| 482 | does not cons. Quoting should be reserved for constants that will | ||
| 483 | never be modified by side-effects, unless you like self-modifying code. | ||
| 484 | See the common pitfall in info node `(elisp)Rearrangement' for an example | ||
| 485 | of unexpected results when a quoted object is modified. | ||
| 478 | usage: (quote ARG) */) | 486 | usage: (quote ARG) */) |
| 479 | (Lisp_Object args) | 487 | (Lisp_Object args) |
| 480 | { | 488 | { |
diff --git a/src/fileio.c b/src/fileio.c index 08be41f9fe4..e335dcf027f 100644 --- a/src/fileio.c +++ b/src/fileio.c | |||
| @@ -3187,6 +3187,7 @@ variable `last-coding-system-used' to the coding system actually used. */) | |||
| 3187 | Lisp_Object p; | 3187 | Lisp_Object p; |
| 3188 | EMACS_INT total = 0; | 3188 | EMACS_INT total = 0; |
| 3189 | int not_regular = 0; | 3189 | int not_regular = 0; |
| 3190 | int save_errno = 0; | ||
| 3190 | char read_buf[READ_BUF_SIZE]; | 3191 | char read_buf[READ_BUF_SIZE]; |
| 3191 | struct coding_system coding; | 3192 | struct coding_system coding; |
| 3192 | char buffer[1 << 14]; | 3193 | char buffer[1 << 14]; |
| @@ -3250,6 +3251,7 @@ variable `last-coding-system-used' to the coding system actually used. */) | |||
| 3250 | #endif /* WINDOWSNT */ | 3251 | #endif /* WINDOWSNT */ |
| 3251 | { | 3252 | { |
| 3252 | badopen: | 3253 | badopen: |
| 3254 | save_errno = errno; | ||
| 3253 | if (NILP (visit)) | 3255 | if (NILP (visit)) |
| 3254 | report_file_error ("Opening input file", Fcons (orig_filename, Qnil)); | 3256 | report_file_error ("Opening input file", Fcons (orig_filename, Qnil)); |
| 3255 | st.st_mtime = -1; | 3257 | st.st_mtime = -1; |
| @@ -4281,6 +4283,7 @@ variable `last-coding-system-used' to the coding system actually used. */) | |||
| 4281 | && current_buffer->modtime == -1) | 4283 | && current_buffer->modtime == -1) |
| 4282 | { | 4284 | { |
| 4283 | /* If visiting nonexistent file, return nil. */ | 4285 | /* If visiting nonexistent file, return nil. */ |
| 4286 | errno = save_errno; | ||
| 4284 | report_file_error ("Opening input file", Fcons (orig_filename, Qnil)); | 4287 | report_file_error ("Opening input file", Fcons (orig_filename, Qnil)); |
| 4285 | } | 4288 | } |
| 4286 | 4289 | ||
| @@ -4618,7 +4621,9 @@ This calls `write-region-annotate-functions' at the start, and | |||
| 4618 | if (ret < 0) | 4621 | if (ret < 0) |
| 4619 | { | 4622 | { |
| 4620 | #ifdef CLASH_DETECTION | 4623 | #ifdef CLASH_DETECTION |
| 4624 | save_errno = errno; | ||
| 4621 | if (!auto_saving) unlock_file (lockname); | 4625 | if (!auto_saving) unlock_file (lockname); |
| 4626 | errno = save_errno; | ||
| 4622 | #endif /* CLASH_DETECTION */ | 4627 | #endif /* CLASH_DETECTION */ |
| 4623 | UNGCPRO; | 4628 | UNGCPRO; |
| 4624 | report_file_error ("Lseek error", Fcons (filename, Qnil)); | 4629 | report_file_error ("Lseek error", Fcons (filename, Qnil)); |
diff --git a/src/image.c b/src/image.c index db201d5a831..ef72745a72f 100644 --- a/src/image.c +++ b/src/image.c | |||
| @@ -6745,10 +6745,20 @@ tiff_size_of_memory (thandle_t data) | |||
| 6745 | return ((tiff_memory_source *) data)->len; | 6745 | return ((tiff_memory_source *) data)->len; |
| 6746 | } | 6746 | } |
| 6747 | 6747 | ||
| 6748 | /* GCC 3.x on x86 Windows targets has a bug that triggers an internal | ||
| 6749 | compiler error compiling tiff_handler, see Bugzilla bug #17406 | ||
| 6750 | (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17406). Declaring | ||
| 6751 | this function as external works around that problem. */ | ||
| 6752 | #if defined (__MINGW32__) && __GNUC__ == 3 | ||
| 6753 | # define MINGW_STATIC | ||
| 6754 | #else | ||
| 6755 | # define MINGW_STATIC static | ||
| 6756 | #endif | ||
| 6748 | 6757 | ||
| 6749 | static void tiff_handler (const char *, const char *, const char *, va_list) | 6758 | MINGW_STATIC void |
| 6759 | tiff_handler (const char *, const char *, const char *, va_list) | ||
| 6750 | ATTRIBUTE_FORMAT_PRINTF (3, 0); | 6760 | ATTRIBUTE_FORMAT_PRINTF (3, 0); |
| 6751 | static void | 6761 | MINGW_STATIC void |
| 6752 | tiff_handler (const char *log_format, const char *title, | 6762 | tiff_handler (const char *log_format, const char *title, |
| 6753 | const char *format, va_list ap) | 6763 | const char *format, va_list ap) |
| 6754 | { | 6764 | { |
| @@ -6762,6 +6772,7 @@ tiff_handler (const char *log_format, const char *title, | |||
| 6762 | add_to_log (log_format, build_string (title), | 6772 | add_to_log (log_format, build_string (title), |
| 6763 | make_string (buf, max (0, min (len, sizeof buf - 1)))); | 6773 | make_string (buf, max (0, min (len, sizeof buf - 1)))); |
| 6764 | } | 6774 | } |
| 6775 | #undef MINGW_STATIC | ||
| 6765 | 6776 | ||
| 6766 | static void tiff_error_handler (const char *, const char *, va_list) | 6777 | static void tiff_error_handler (const char *, const char *, va_list) |
| 6767 | ATTRIBUTE_FORMAT_PRINTF (2, 0); | 6778 | ATTRIBUTE_FORMAT_PRINTF (2, 0); |
diff --git a/src/lread.c b/src/lread.c index 11c4cf8c8f4..2b1b49ab2fe 100644 --- a/src/lread.c +++ b/src/lread.c | |||
| @@ -1965,6 +1965,8 @@ STREAM or the value of `standard-input' may be: | |||
| 1965 | DEFUN ("read-from-string", Fread_from_string, Sread_from_string, 1, 3, 0, | 1965 | DEFUN ("read-from-string", Fread_from_string, Sread_from_string, 1, 3, 0, |
| 1966 | doc: /* Read one Lisp expression which is represented as text by STRING. | 1966 | doc: /* Read one Lisp expression which is represented as text by STRING. |
| 1967 | Returns a cons: (OBJECT-READ . FINAL-STRING-INDEX). | 1967 | Returns a cons: (OBJECT-READ . FINAL-STRING-INDEX). |
| 1968 | FINAL-STRING-INDEX is an integer giving the position of the next | ||
| 1969 | remaining chararacter in STRING. | ||
| 1968 | START and END optionally delimit a substring of STRING from which to read; | 1970 | START and END optionally delimit a substring of STRING from which to read; |
| 1969 | they default to 0 and (length STRING) respectively. */) | 1971 | they default to 0 and (length STRING) respectively. */) |
| 1970 | (Lisp_Object string, Lisp_Object start, Lisp_Object end) | 1972 | (Lisp_Object string, Lisp_Object start, Lisp_Object end) |
diff --git a/src/search.c b/src/search.c index b3d67e6c431..a3b4e1dcbce 100644 --- a/src/search.c +++ b/src/search.c | |||
| @@ -1760,7 +1760,7 @@ boyer_moore (EMACS_INT n, unsigned char *base_pat, | |||
| 1760 | ch = -1; | 1760 | ch = -1; |
| 1761 | } | 1761 | } |
| 1762 | 1762 | ||
| 1763 | if (ch >= 0200) | 1763 | if (ch >= 0200 && multibyte) |
| 1764 | j = (ch & 0x3F) | 0200; | 1764 | j = (ch & 0x3F) | 0200; |
| 1765 | else | 1765 | else |
| 1766 | j = *ptr; | 1766 | j = *ptr; |
| @@ -1779,7 +1779,7 @@ boyer_moore (EMACS_INT n, unsigned char *base_pat, | |||
| 1779 | while (1) | 1779 | while (1) |
| 1780 | { | 1780 | { |
| 1781 | TRANSLATE (ch, inverse_trt, ch); | 1781 | TRANSLATE (ch, inverse_trt, ch); |
| 1782 | if (ch >= 0200) | 1782 | if (ch >= 0200 && multibyte) |
| 1783 | j = (ch & 0x3F) | 0200; | 1783 | j = (ch & 0x3F) | 0200; |
| 1784 | else | 1784 | else |
| 1785 | j = ch; | 1785 | j = ch; |
diff --git a/src/xdisp.c b/src/xdisp.c index ddbbcbb1278..e83ad96b6c8 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -13698,15 +13698,17 @@ set_cursor_from_row (struct window *w, struct glyph_row *row, | |||
| 13698 | /* A truncated row may not include PT among its | 13698 | /* A truncated row may not include PT among its |
| 13699 | character positions. Setting the cursor inside the | 13699 | character positions. Setting the cursor inside the |
| 13700 | scroll margin will trigger recalculation of hscroll | 13700 | scroll margin will trigger recalculation of hscroll |
| 13701 | in hscroll_window_tree. */ | 13701 | in hscroll_window_tree. But if a display string |
| 13702 | || (row->truncated_on_left_p && pt_old < bpos_min) | 13702 | covers point, defer to the string-handling code |
| 13703 | || (row->truncated_on_right_p && pt_old > bpos_max) | 13703 | below to figure this out. */ |
| 13704 | /* Zero-width characters produce no glyphs. */ | ||
| 13705 | || (!string_seen | 13704 | || (!string_seen |
| 13706 | && !empty_line_p | 13705 | && ((row->truncated_on_left_p && pt_old < bpos_min) |
| 13707 | && (row->reversed_p | 13706 | || (row->truncated_on_right_p && pt_old > bpos_max) |
| 13708 | ? glyph_after > glyphs_end | 13707 | /* Zero-width characters produce no glyphs. */ |
| 13709 | : glyph_after < glyphs_end))) | 13708 | || (!empty_line_p |
| 13709 | && (row->reversed_p | ||
| 13710 | ? glyph_after > glyphs_end | ||
| 13711 | : glyph_after < glyphs_end))))) | ||
| 13710 | { | 13712 | { |
| 13711 | cursor = glyph_after; | 13713 | cursor = glyph_after; |
| 13712 | x = -1; | 13714 | x = -1; |
| @@ -18766,11 +18768,6 @@ display_line (struct it *it) | |||
| 18766 | it->current_x = new_x; | 18768 | it->current_x = new_x; |
| 18767 | it->continuation_lines_width += new_x; | 18769 | it->continuation_lines_width += new_x; |
| 18768 | ++it->hpos; | 18770 | ++it->hpos; |
| 18769 | /* Record the maximum and minimum buffer | ||
| 18770 | positions seen so far in glyphs that will be | ||
| 18771 | displayed by this row. */ | ||
| 18772 | if (it->bidi_p) | ||
| 18773 | RECORD_MAX_MIN_POS (it); | ||
| 18774 | if (i == nglyphs - 1) | 18771 | if (i == nglyphs - 1) |
| 18775 | { | 18772 | { |
| 18776 | /* If line-wrap is on, check if a previous | 18773 | /* If line-wrap is on, check if a previous |
| @@ -18785,6 +18782,11 @@ display_line (struct it *it) | |||
| 18785 | || IT_DISPLAYING_WHITESPACE (it))) | 18782 | || IT_DISPLAYING_WHITESPACE (it))) |
| 18786 | goto back_to_wrap; | 18783 | goto back_to_wrap; |
| 18787 | 18784 | ||
| 18785 | /* Record the maximum and minimum buffer | ||
| 18786 | positions seen so far in glyphs that will be | ||
| 18787 | displayed by this row. */ | ||
| 18788 | if (it->bidi_p) | ||
| 18789 | RECORD_MAX_MIN_POS (it); | ||
| 18788 | set_iterator_to_next (it, 1); | 18790 | set_iterator_to_next (it, 1); |
| 18789 | if (IT_OVERFLOW_NEWLINE_INTO_FRINGE (it)) | 18791 | if (IT_OVERFLOW_NEWLINE_INTO_FRINGE (it)) |
| 18790 | { | 18792 | { |
| @@ -18802,6 +18804,8 @@ display_line (struct it *it) | |||
| 18802 | } | 18804 | } |
| 18803 | } | 18805 | } |
| 18804 | } | 18806 | } |
| 18807 | else if (it->bidi_p) | ||
| 18808 | RECORD_MAX_MIN_POS (it); | ||
| 18805 | } | 18809 | } |
| 18806 | else if (CHAR_GLYPH_PADDING_P (*glyph) | 18810 | else if (CHAR_GLYPH_PADDING_P (*glyph) |
| 18807 | && !FRAME_WINDOW_P (it->f)) | 18811 | && !FRAME_WINDOW_P (it->f)) |
| @@ -18932,6 +18936,10 @@ display_line (struct it *it) | |||
| 18932 | xassert (it->first_visible_x <= it->last_visible_x); | 18936 | xassert (it->first_visible_x <= it->last_visible_x); |
| 18933 | } | 18937 | } |
| 18934 | } | 18938 | } |
| 18939 | /* Even if this display element produced no glyphs at all, | ||
| 18940 | we want to record its position. */ | ||
| 18941 | if (it->bidi_p && nglyphs == 0) | ||
| 18942 | RECORD_MAX_MIN_POS (it); | ||
| 18935 | 18943 | ||
| 18936 | row->ascent = max (row->ascent, it->max_ascent); | 18944 | row->ascent = max (row->ascent, it->max_ascent); |
| 18937 | row->height = max (row->height, it->max_ascent + it->max_descent); | 18945 | row->height = max (row->height, it->max_ascent + it->max_descent); |
| @@ -23472,7 +23480,14 @@ produce_stretch_glyph (struct it *it) | |||
| 23472 | 23480 | ||
| 23473 | if (width > 0 && it->line_wrap != TRUNCATE | 23481 | if (width > 0 && it->line_wrap != TRUNCATE |
| 23474 | && it->current_x + width > it->last_visible_x) | 23482 | && it->current_x + width > it->last_visible_x) |
| 23475 | width = it->last_visible_x - it->current_x - 1; | 23483 | { |
| 23484 | width = it->last_visible_x - it->current_x; | ||
| 23485 | #ifdef HAVE_WINDOW_SYSTEM | ||
| 23486 | /* Subtact one more pixel from the stretch width, but only on | ||
| 23487 | GUI frames, since on a TTY each glyph is one "pixel" wide. */ | ||
| 23488 | width -= FRAME_WINDOW_P (it->f); | ||
| 23489 | #endif | ||
| 23490 | } | ||
| 23476 | 23491 | ||
| 23477 | if (width > 0 && height > 0 && it->glyph_row) | 23492 | if (width > 0 && height > 0 && it->glyph_row) |
| 23478 | { | 23493 | { |
| @@ -23484,14 +23499,7 @@ produce_stretch_glyph (struct it *it) | |||
| 23484 | object = it->w->buffer; | 23499 | object = it->w->buffer; |
| 23485 | #ifdef HAVE_WINDOW_SYSTEM | 23500 | #ifdef HAVE_WINDOW_SYSTEM |
| 23486 | if (FRAME_WINDOW_P (it->f)) | 23501 | if (FRAME_WINDOW_P (it->f)) |
| 23487 | { | 23502 | append_stretch_glyph (it, object, width, height, ascent); |
| 23488 | append_stretch_glyph (it, object, width, height, ascent); | ||
| 23489 | it->pixel_width = width; | ||
| 23490 | it->ascent = it->phys_ascent = ascent; | ||
| 23491 | it->descent = it->phys_descent = height - it->ascent; | ||
| 23492 | it->nglyphs = width > 0 && height > 0 ? 1 : 0; | ||
| 23493 | take_vertical_position_into_account (it); | ||
| 23494 | } | ||
| 23495 | else | 23503 | else |
| 23496 | #endif | 23504 | #endif |
| 23497 | { | 23505 | { |
| @@ -23503,6 +23511,19 @@ produce_stretch_glyph (struct it *it) | |||
| 23503 | it->object = o_object; | 23511 | it->object = o_object; |
| 23504 | } | 23512 | } |
| 23505 | } | 23513 | } |
| 23514 | |||
| 23515 | it->pixel_width = width; | ||
| 23516 | #ifdef HAVE_WINDOW_SYSTEM | ||
| 23517 | if (FRAME_WINDOW_P (it->f)) | ||
| 23518 | { | ||
| 23519 | it->ascent = it->phys_ascent = ascent; | ||
| 23520 | it->descent = it->phys_descent = height - it->ascent; | ||
| 23521 | it->nglyphs = width > 0 && height > 0 ? 1 : 0; | ||
| 23522 | take_vertical_position_into_account (it); | ||
| 23523 | } | ||
| 23524 | else | ||
| 23525 | #endif | ||
| 23526 | it->nglyphs = width; | ||
| 23506 | } | 23527 | } |
| 23507 | 23528 | ||
| 23508 | #ifdef HAVE_WINDOW_SYSTEM | 23529 | #ifdef HAVE_WINDOW_SYSTEM |
| @@ -27450,7 +27471,7 @@ expose_window (struct window *w, XRectangle *fr) | |||
| 27450 | { | 27471 | { |
| 27451 | int yb = window_text_bottom_y (w); | 27472 | int yb = window_text_bottom_y (w); |
| 27452 | struct glyph_row *row; | 27473 | struct glyph_row *row; |
| 27453 | int cursor_cleared_p; | 27474 | int cursor_cleared_p, phys_cursor_on_p; |
| 27454 | struct glyph_row *first_overlapping_row, *last_overlapping_row; | 27475 | struct glyph_row *first_overlapping_row, *last_overlapping_row; |
| 27455 | 27476 | ||
| 27456 | TRACE ((stderr, "expose_window (%d, %d, %d, %d)\n", | 27477 | TRACE ((stderr, "expose_window (%d, %d, %d, %d)\n", |
| @@ -27470,6 +27491,13 @@ expose_window (struct window *w, XRectangle *fr) | |||
| 27470 | else | 27491 | else |
| 27471 | cursor_cleared_p = 0; | 27492 | cursor_cleared_p = 0; |
| 27472 | 27493 | ||
| 27494 | /* If the row containing the cursor extends face to end of line, | ||
| 27495 | then expose_area might overwrite the cursor outside the | ||
| 27496 | rectangle and thus notice_overwritten_cursor might clear | ||
| 27497 | w->phys_cursor_on_p. We remember the original value and | ||
| 27498 | check later if it is changed. */ | ||
| 27499 | phys_cursor_on_p = w->phys_cursor_on_p; | ||
| 27500 | |||
| 27473 | /* Update lines intersecting rectangle R. */ | 27501 | /* Update lines intersecting rectangle R. */ |
| 27474 | first_overlapping_row = last_overlapping_row = NULL; | 27502 | first_overlapping_row = last_overlapping_row = NULL; |
| 27475 | for (row = w->current_matrix->rows; | 27503 | for (row = w->current_matrix->rows; |
| @@ -27536,7 +27564,8 @@ expose_window (struct window *w, XRectangle *fr) | |||
| 27536 | x_draw_vertical_border (w); | 27564 | x_draw_vertical_border (w); |
| 27537 | 27565 | ||
| 27538 | /* Turn the cursor on again. */ | 27566 | /* Turn the cursor on again. */ |
| 27539 | if (cursor_cleared_p) | 27567 | if (cursor_cleared_p |
| 27568 | || (phys_cursor_on_p && !w->phys_cursor_on_p)) | ||
| 27540 | update_window_cursor (w, 1); | 27569 | update_window_cursor (w, 1); |
| 27541 | } | 27570 | } |
| 27542 | } | 27571 | } |
diff --git a/src/xfns.c b/src/xfns.c index 998c803a7ad..913cde75d91 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -3369,7 +3369,7 @@ This function is an internal primitive--use `make-frame' instead. */) | |||
| 3369 | /* We need to do this after creating the X window, so that the | 3369 | /* We need to do this after creating the X window, so that the |
| 3370 | icon-creation functions can say whose icon they're describing. */ | 3370 | icon-creation functions can say whose icon they're describing. */ |
| 3371 | x_default_parameter (f, parms, Qicon_type, Qt, | 3371 | x_default_parameter (f, parms, Qicon_type, Qt, |
| 3372 | "bitmapIcon", "BitmapIcon", RES_TYPE_SYMBOL); | 3372 | "bitmapIcon", "BitmapIcon", RES_TYPE_BOOLEAN); |
| 3373 | 3373 | ||
| 3374 | x_default_parameter (f, parms, Qauto_raise, Qnil, | 3374 | x_default_parameter (f, parms, Qauto_raise, Qnil, |
| 3375 | "autoRaise", "AutoRaiseLower", RES_TYPE_BOOLEAN); | 3375 | "autoRaise", "AutoRaiseLower", RES_TYPE_BOOLEAN); |
diff --git a/src/xmenu.c b/src/xmenu.c index cf58e85af10..7fcd2ad3724 100644 --- a/src/xmenu.c +++ b/src/xmenu.c | |||
| @@ -742,7 +742,7 @@ menu_highlight_callback (GtkWidget *widget, gpointer call_data) | |||
| 742 | /* If popup_activated_flag is greater than 1 we are in a popup menu. | 742 | /* If popup_activated_flag is greater than 1 we are in a popup menu. |
| 743 | Don't pass the frame to show_help_event for those. | 743 | Don't pass the frame to show_help_event for those. |
| 744 | Passing frame creates an Emacs event. As we are looping in | 744 | Passing frame creates an Emacs event. As we are looping in |
| 745 | popup_widget_loop, it won't be handeled. Passing NULL shows the tip | 745 | popup_widget_loop, it won't be handled. Passing NULL shows the tip |
| 746 | directly without using an Emacs event. This is what the Lucid code | 746 | directly without using an Emacs event. This is what the Lucid code |
| 747 | does below. */ | 747 | does below. */ |
| 748 | show_help_event (popup_activated_flag <= 1 ? cb_data->cl_data->f : NULL, | 748 | show_help_event (popup_activated_flag <= 1 ? cb_data->cl_data->f : NULL, |
diff --git a/src/xselect.c b/src/xselect.c index 29e8552bb9c..adee1872dba 100644 --- a/src/xselect.c +++ b/src/xselect.c | |||
| @@ -116,6 +116,7 @@ static Lisp_Object Qx_lost_selection_functions, Qx_sent_selection_functions; | |||
| 116 | #define X_SHRT_MIN (-1 - X_SHRT_MAX) | 116 | #define X_SHRT_MIN (-1 - X_SHRT_MAX) |
| 117 | #define X_LONG_MAX 0x7fffffff | 117 | #define X_LONG_MAX 0x7fffffff |
| 118 | #define X_LONG_MIN (-1 - X_LONG_MAX) | 118 | #define X_LONG_MIN (-1 - X_LONG_MAX) |
| 119 | #define X_ULONG_MAX 0xffffffffUL | ||
| 119 | 120 | ||
| 120 | /* If this is a smaller number than the max-request-size of the display, | 121 | /* If this is a smaller number than the max-request-size of the display, |
| 121 | emacs will use INCR selection transfer when the selection is larger | 122 | emacs will use INCR selection transfer when the selection is larger |
| @@ -378,7 +379,8 @@ x_own_selection (Lisp_Object selection_name, Lisp_Object selection_value, | |||
| 378 | 379 | ||
| 379 | /* Given a selection-name and desired type, look up our local copy of | 380 | /* Given a selection-name and desired type, look up our local copy of |
| 380 | the selection value and convert it to the type. | 381 | the selection value and convert it to the type. |
| 381 | The value is nil or a string. | 382 | Return nil, a string, a vector, a symbol, an integer, or a cons |
| 383 | that CONS_TO_INTEGER could plausibly handle. | ||
| 382 | This function is used both for remote requests (LOCAL_REQUEST is zero) | 384 | This function is used both for remote requests (LOCAL_REQUEST is zero) |
| 383 | and for local x-get-selection-internal (LOCAL_REQUEST is nonzero). | 385 | and for local x-get-selection-internal (LOCAL_REQUEST is nonzero). |
| 384 | 386 | ||
| @@ -1718,6 +1720,21 @@ selection_data_to_lisp_data (Display *display, const unsigned char *data, | |||
| 1718 | } | 1720 | } |
| 1719 | } | 1721 | } |
| 1720 | 1722 | ||
| 1723 | /* Convert OBJ to an X long value, and return it as unsigned long. | ||
| 1724 | OBJ should be an integer or a cons representing an integer. | ||
| 1725 | Treat values in the range X_LONG_MAX + 1 .. X_ULONG_MAX as X | ||
| 1726 | unsigned long values: in theory these values are supposed to be | ||
| 1727 | signed but in practice unsigned 32-bit data are communicated via X | ||
| 1728 | selections and we need to support that. */ | ||
| 1729 | static unsigned long | ||
| 1730 | cons_to_x_long (Lisp_Object obj) | ||
| 1731 | { | ||
| 1732 | if (X_ULONG_MAX <= INTMAX_MAX | ||
| 1733 | || XINT (INTEGERP (obj) ? obj : XCAR (obj)) < 0) | ||
| 1734 | return cons_to_signed (obj, X_LONG_MIN, min (X_ULONG_MAX, INTMAX_MAX)); | ||
| 1735 | else | ||
| 1736 | return cons_to_unsigned (obj, X_ULONG_MAX); | ||
| 1737 | } | ||
| 1721 | 1738 | ||
| 1722 | /* Use xfree, not XFree, to free the data obtained with this function. */ | 1739 | /* Use xfree, not XFree, to free the data obtained with this function. */ |
| 1723 | 1740 | ||
| @@ -1783,11 +1800,11 @@ lisp_data_to_selection_data (Display *display, Lisp_Object obj, | |||
| 1783 | || (CONSP (XCDR (obj)) | 1800 | || (CONSP (XCDR (obj)) |
| 1784 | && INTEGERP (XCAR (XCDR (obj))))))) | 1801 | && INTEGERP (XCAR (XCDR (obj))))))) |
| 1785 | { | 1802 | { |
| 1786 | *data_ret = (unsigned char *) xmalloc (sizeof (long) + 1); | 1803 | *data_ret = (unsigned char *) xmalloc (sizeof (unsigned long) + 1); |
| 1787 | *format_ret = 32; | 1804 | *format_ret = 32; |
| 1788 | *size_ret = 1; | 1805 | *size_ret = 1; |
| 1789 | (*data_ret) [sizeof (long)] = 0; | 1806 | (*data_ret) [sizeof (unsigned long)] = 0; |
| 1790 | (*(long **) data_ret) [0] = cons_to_signed (obj, X_LONG_MIN, X_LONG_MAX); | 1807 | (*(unsigned long **) data_ret) [0] = cons_to_x_long (obj); |
| 1791 | if (NILP (type)) type = QINTEGER; | 1808 | if (NILP (type)) type = QINTEGER; |
| 1792 | } | 1809 | } |
| 1793 | else if (VECTORP (obj)) | 1810 | else if (VECTORP (obj)) |
| @@ -1822,15 +1839,15 @@ lisp_data_to_selection_data (Display *display, Lisp_Object obj, | |||
| 1822 | if (NILP (type)) type = QINTEGER; | 1839 | if (NILP (type)) type = QINTEGER; |
| 1823 | for (i = 0; i < size; i++) | 1840 | for (i = 0; i < size; i++) |
| 1824 | { | 1841 | { |
| 1825 | intmax_t v = cons_to_signed (XVECTOR (obj)->contents[i], | 1842 | if (! RANGED_INTEGERP (X_SHRT_MIN, XVECTOR (obj)->contents[i], |
| 1826 | X_LONG_MIN, X_LONG_MAX); | 1843 | X_SHRT_MAX)) |
| 1827 | if (X_SHRT_MIN <= v && v <= X_SHRT_MAX) | ||
| 1828 | { | 1844 | { |
| 1829 | /* Use sizeof (long) even if it is more than 32 bits. | 1845 | /* Use sizeof (long) even if it is more than 32 bits. |
| 1830 | See comment in x_get_window_property and | 1846 | See comment in x_get_window_property and |
| 1831 | x_fill_property_data. */ | 1847 | x_fill_property_data. */ |
| 1832 | data_size = sizeof (long); | 1848 | data_size = sizeof (long); |
| 1833 | format = 32; | 1849 | format = 32; |
| 1850 | break; | ||
| 1834 | } | 1851 | } |
| 1835 | } | 1852 | } |
| 1836 | *data_ret = xnmalloc (size, data_size); | 1853 | *data_ret = xnmalloc (size, data_size); |
| @@ -1838,12 +1855,12 @@ lisp_data_to_selection_data (Display *display, Lisp_Object obj, | |||
| 1838 | *size_ret = size; | 1855 | *size_ret = size; |
| 1839 | for (i = 0; i < size; i++) | 1856 | for (i = 0; i < size; i++) |
| 1840 | { | 1857 | { |
| 1841 | long v = cons_to_signed (XVECTOR (obj)->contents[i], | ||
| 1842 | X_LONG_MIN, X_LONG_MAX); | ||
| 1843 | if (format == 32) | 1858 | if (format == 32) |
| 1844 | (*((long **) data_ret)) [i] = v; | 1859 | (*((unsigned long **) data_ret)) [i] = |
| 1860 | cons_to_x_long (XVECTOR (obj)->contents[i]); | ||
| 1845 | else | 1861 | else |
| 1846 | (*((short **) data_ret)) [i] = v; | 1862 | (*((short **) data_ret)) [i] = |
| 1863 | XINT (XVECTOR (obj)->contents[i]); | ||
| 1847 | } | 1864 | } |
| 1848 | } | 1865 | } |
| 1849 | } | 1866 | } |