diff options
| author | Eli Zaretskii | 2010-01-25 12:42:44 -0500 |
|---|---|---|
| committer | Eli Zaretskii | 2010-01-25 12:42:44 -0500 |
| commit | 639dd35751e5d43072ef14bc679286136a4feae9 (patch) | |
| tree | 93a8f5700a211c913d4628607ee6a10f79ad6790 | |
| parent | b7faba0c9c3d8cb994720e2cccc92a538196d56d (diff) | |
| parent | e2396d80cbf7e9d20c05eff44c1c8f04ecb9341c (diff) | |
| download | emacs-639dd35751e5d43072ef14bc679286136a4feae9.tar.gz emacs-639dd35751e5d43072ef14bc679286136a4feae9.zip | |
Merge from mainline.
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | admin/notes/bugtracker | 89 | ||||
| -rwxr-xr-x | configure | 3 | ||||
| -rw-r--r-- | configure.in | 2 | ||||
| -rw-r--r-- | doc/emacs/ChangeLog | 5 | ||||
| -rw-r--r-- | doc/emacs/programs.texi | 6 | ||||
| -rw-r--r-- | doc/misc/ChangeLog | 6 | ||||
| -rw-r--r-- | doc/misc/cc-mode.texi | 13 | ||||
| -rw-r--r-- | etc/NEWS | 5 | ||||
| -rw-r--r-- | lisp/ChangeLog | 57 | ||||
| -rw-r--r-- | lisp/emacs-lisp/advice.el | 2 | ||||
| -rw-r--r-- | lisp/emacs-lisp/assoc.el | 22 | ||||
| -rw-r--r-- | lisp/net/tramp-smb.el | 10 | ||||
| -rw-r--r-- | lisp/progmodes/ada-mode.el | 6 | ||||
| -rw-r--r-- | lisp/progmodes/python.el | 2 | ||||
| -rw-r--r-- | lisp/term/xterm.el | 29 | ||||
| -rw-r--r-- | lisp/url/ChangeLog | 4 | ||||
| -rw-r--r-- | lisp/url/url-util.el | 1 | ||||
| -rw-r--r-- | lisp/vc-annotate.el | 3 | ||||
| -rw-r--r-- | lisp/vc-bzr.el | 17 | ||||
| -rw-r--r-- | lisp/vc-git.el | 19 | ||||
| -rw-r--r-- | src/ChangeLog | 24 | ||||
| -rw-r--r-- | src/filelock.c | 2 | ||||
| -rw-r--r-- | src/image.c | 14 | ||||
| -rw-r--r-- | src/keymap.c | 43 | ||||
| -rw-r--r-- | src/xfns.c | 26 |
26 files changed, 287 insertions, 128 deletions
| @@ -1,3 +1,8 @@ | |||
| 1 | 2010-01-23 Giorgos Keramidas <keramida@ceid.upatras.gr> (tiny change) | ||
| 2 | |||
| 3 | * configure.in: Check for utmp.h availability (FreeBSD 9.x lacks | ||
| 4 | this header file). | ||
| 5 | |||
| 1 | 2010-01-12 Juanma Barranquero <lekktu@gmail.com> | 6 | 2010-01-12 Juanma Barranquero <lekktu@gmail.com> |
| 2 | 7 | ||
| 3 | * .bzrignore: Ignore all .exe, instead of individual files. | 8 | * .bzrignore: Ignore all .exe, instead of individual files. |
diff --git a/admin/notes/bugtracker b/admin/notes/bugtracker index e253cb6d1b4..1a9f6f2bd4c 100644 --- a/admin/notes/bugtracker +++ b/admin/notes/bugtracker | |||
| @@ -35,15 +35,16 @@ So you need to explicitly CC him/her (and anyone else you like). | |||
| 35 | (Many people think the submitter SHOULD be automatically subscribed | 35 | (Many people think the submitter SHOULD be automatically subscribed |
| 36 | to subsequent discussion, but this does not seem to be implemented. | 36 | to subsequent discussion, but this does not seem to be implemented. |
| 37 | See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=37078) | 37 | See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=37078) |
| 38 | See also http://debbugs.gnu.org/5439 | ||
| 38 | 39 | ||
| 39 | Do NOT send a separate copy to the bug list, since this may generate a | 40 | Do NOT send a separate copy to the bug list address, since this may |
| 40 | new report. The only time to send mail to the bug list is to create a | 41 | generate a new report. The only time to send mail to the bug list |
| 41 | new report. | 42 | address is to create a new report. |
| 42 | 43 | ||
| 43 | Gnus users can add the following to message-dont-reply-to-names; | 44 | Gnus users can add the following to message-dont-reply-to-names; |
| 44 | similarly with Rmail and rmail-dont-reply-to-names: | 45 | similarly with Rmail and rmail-dont-reply-to-names: |
| 45 | 46 | ||
| 46 | "\\(emacs-pretest-bug\\|bug-gnu-emacs\\)@gnu\\.org\\|\ | 47 | "\\(emacs-pretest-bug\\|bug-gnu-emacs\\|bug-\\(e\\|gnu\\)macs\\)@gnu\\.org\\|\ |
| 47 | \\(submit\\|control\\|owner\\)@debbugs\\.gnu\\.org" | 48 | \\(submit\\|control\\|owner\\)@debbugs\\.gnu\\.org" |
| 48 | 49 | ||
| 49 | The "owner@debbugs.gnu.org" entry is there because it appears in the | 50 | The "owner@debbugs.gnu.org" entry is there because it appears in the |
| @@ -58,27 +59,23 @@ reporting.) | |||
| 58 | (e.g. bug-cc-mode@gnu.org), do NOT just use a Cc: header. | 59 | (e.g. bug-cc-mode@gnu.org), do NOT just use a Cc: header. |
| 59 | Instead, use "X-Debbugs-CC:". This ensures the Cc address will get a | 60 | Instead, use "X-Debbugs-CC:". This ensures the Cc address will get a |
| 60 | mail with the bug report number in. If you do not do this, each reply | 61 | mail with the bug report number in. If you do not do this, each reply |
| 61 | in the subsequent discussion will end up creating a new bug. This is | 62 | in the subsequent discussion will end up creating a new bug. |
| 62 | annoying. | 63 | This is annoying. |
| 63 | 64 | ||
| 64 | Note that the way this feature works is perhaps not ideal (Bug#1720). | 65 | If a new report contains X-Debbugs-CC in the input, this is |
| 65 | If X-Debbugs-CC: was specifed by a real header, that header is removed | 66 | converted to a real Cc header in the output. (See Bug#1720). |
| 66 | in the mail sent out to the bug list, and the addresses merged into | 67 | It is also merged into the Resent-CC header (see below). |
| 67 | the Resent-CC header (see below). They don't appear as an explicit CC: | ||
| 68 | header, nor do they appear in the Reply-To: header. So people you | ||
| 69 | X-Debbugs-CC are not included in any following discussion unless they are | ||
| 70 | manually cc'd. So this feature really only serves to notify them that | ||
| 71 | a bug has been filed. It's then up to them to follow any subsequent | ||
| 72 | discussion. | ||
| 73 | |||
| 74 | If X-Debbugs-CC were merged into the Reply-To header, this might work | ||
| 75 | more the way people expect. | ||
| 76 | 68 | ||
| 77 | ** How does Debbugs send out mails? | 69 | ** How does Debbugs send out mails? |
| 78 | 70 | ||
| 79 | The mails are sent out to the bug list with From: and To: unchanged. | 71 | The mails are sent out to the bug list by being resent. The From: |
| 80 | Eg if you file a bug with "submit@debbugs.gnu.org", that | 72 | header is unchanged. In new reports only (at present), the To: |
| 81 | remains in the To: address. They reach the bug list by being resent. | 73 | address is altered as follows. Any "bug-gnu-emacs", |
| 74 | "emacs-pretest-bug", or "submit@debbugs" address is replaced by | ||
| 75 | 123@debbugs in the mail that gets sent out. (This also applies to any | ||
| 76 | Cc: header, though you should be using X-Debbugs-CC instead in new | ||
| 77 | reports). The original header is stored as X-Debbugs-Original-To, if | ||
| 78 | it was changed. Any X-Debbugs-CC is merged into the Cc. | ||
| 82 | 79 | ||
| 83 | Mails arriving at the bug list have the following Resent-* headers: | 80 | Mails arriving at the bug list have the following Resent-* headers: |
| 84 | 81 | ||
| @@ -88,10 +85,6 @@ Resent-CC: maintainer email address, plus any X-Debbugs-CC: entries | |||
| 88 | 85 | ||
| 89 | The "maintainer email address" is "bug-gnu-emacs@gnu.org" in most cases. | 86 | The "maintainer email address" is "bug-gnu-emacs@gnu.org" in most cases. |
| 90 | 87 | ||
| 91 | A new report also has: | ||
| 92 | |||
| 93 | Mail-Followup-To: bug submitter, 123@debbugs.gnu.org | ||
| 94 | |||
| 95 | ** To not get acknowledgement mail from the tracker, | 88 | ** To not get acknowledgement mail from the tracker, |
| 96 | add an "X-Debbugs-No-Ack:" header (with any value). If you use Gnus, | 89 | add an "X-Debbugs-No-Ack:" header (with any value). If you use Gnus, |
| 97 | you can add an element to gnus-posting-styles to do this automatically, eg: | 90 | you can add an element to gnus-posting-styles to do this automatically, eg: |
| @@ -124,10 +117,10 @@ When you close a bug, you get a message matching: | |||
| 124 | ^X-Emacs-PR-Message: closed | 117 | ^X-Emacs-PR-Message: closed |
| 125 | 118 | ||
| 126 | ** How to avoid multiple copies of mails. | 119 | ** How to avoid multiple copies of mails. |
| 127 | When you reply to a bug, respect the Reply-To address, ie send mail | 120 | If you reply to reports in the normal way, this should work fine. |
| 128 | only to the submitter address and the numbered bug address. Do not | 121 | Basically, reply only to the numbered bug address (and any individual |
| 129 | send mail direct to bug-gnu-emacs or emacs-pretest-bug unless you are | 122 | people's addresses). Do not send mail direct to bug-gnu-emacs or |
| 130 | reporting a new bug. | 123 | emacs-pretest-bug unless you are reporting a new bug. |
| 131 | 124 | ||
| 132 | ** To close bug #123 (for example), send mail | 125 | ** To close bug #123 (for example), send mail |
| 133 | 126 | ||
| @@ -195,8 +188,7 @@ tag:tag # all bugs with given tag | |||
| 195 | See <http://wiki.debian.org/bugs.debian.org/usertags> | 188 | See <http://wiki.debian.org/bugs.debian.org/usertags> |
| 196 | 189 | ||
| 197 | "Usertags" are very similar to tags: a set of labels that can be added | 190 | "Usertags" are very similar to tags: a set of labels that can be added |
| 198 | to a bug. There are two differences between normal tags and user | 191 | to a bug. There are two differences between normal tags and user tags: |
| 199 | tags: | ||
| 200 | 192 | ||
| 201 | 1) Anyone can define any valid usertag they like. In contrast, only a | 193 | 1) Anyone can define any valid usertag they like. In contrast, only a |
| 202 | limited, predefined set of normal tags are available (see above). | 194 | limited, predefined set of normal tags are available (see above). |
| @@ -362,7 +354,7 @@ bug number. | |||
| 362 | 354 | ||
| 363 | Similarly, when you close a bug, it can be helpful to include the | 355 | Similarly, when you close a bug, it can be helpful to include the |
| 364 | relevant ChangeLog entry in the message to the bug tracker, so people | 356 | relevant ChangeLog entry in the message to the bug tracker, so people |
| 365 | can see eaxctly what the fix was. | 357 | can see exactly what the fix was. |
| 366 | 358 | ||
| 367 | *** bug-reference-mode | 359 | *** bug-reference-mode |
| 368 | 360 | ||
| @@ -373,6 +365,17 @@ the bug web-pages. | |||
| 373 | 365 | ||
| 374 | http://lists.gnu.org/archive/html/emacs-devel/2009-11/msg00440.html | 366 | http://lists.gnu.org/archive/html/emacs-devel/2009-11/msg00440.html |
| 375 | 367 | ||
| 368 | ** Bazaar stuff | ||
| 369 | |||
| 370 | *** You can use `bzr commit --fixes emacs:123' to mark that a commit fixes | ||
| 371 | Emacs bug 123. You will first need to add a line to your bazaar.conf | ||
| 372 | (untested): | ||
| 373 | |||
| 374 | bugtracker_emacs_url = http://debbugs.gnu.org/{id} | ||
| 375 | |||
| 376 | Note that all this does is add some metadata to the commit, it doesn't | ||
| 377 | actually mark the bug as closed in the tracker. | ||
| 378 | |||
| 376 | ** Gnus-specific voodoo | 379 | ** Gnus-specific voodoo |
| 377 | 380 | ||
| 378 | *** Put point on a bug-number and try: M-x gnus-read-ephemeral-emacs-bug-group | 381 | *** Put point on a bug-number and try: M-x gnus-read-ephemeral-emacs-bug-group |
| @@ -448,7 +451,10 @@ needlessly held for moderation: | |||
| 448 | *** debbugs-submit | 451 | *** debbugs-submit |
| 449 | (quiet|control|submit)@(debbugs\.gnu\.org|emacsbugs\.donarmstrong\.com) | 452 | (quiet|control|submit)@(debbugs\.gnu\.org|emacsbugs\.donarmstrong\.com) |
| 450 | [0-9]+(-done|-quiet|-subscribe)?@(debbugs\.gnu\.org|emacsbugs\.donarmstrong\.com) | 453 | [0-9]+(-done|-quiet|-subscribe)?@(debbugs\.gnu\.org|emacsbugs\.donarmstrong\.com) |
| 451 | (bug-gnu-emacs|emacs-pretest-bug)@gnu\.org | 454 | (bug-gnu-emacs|emacs-pretest-bug|bug-(e|gnu)macs)@gnu\.org |
| 455 | |||
| 456 | bug-emacs and bug-gnumacs are lesser-used aliases from fencepost's | ||
| 457 | /etc/aliases file. | ||
| 452 | 458 | ||
| 453 | *** emacs-bug-tracker | 459 | *** emacs-bug-tracker |
| 454 | sender: bug-gnu-emacs AT gnu.org | 460 | sender: bug-gnu-emacs AT gnu.org |
| @@ -456,3 +462,18 @@ recipient: emacs-bug-tracker AT debbugs\.gnu\.org | |||
| 456 | 462 | ||
| 457 | The latter is because that is the address that debbugs actually sends to. | 463 | The latter is because that is the address that debbugs actually sends to. |
| 458 | An /etc/aliases entry redirects it to the real emacs-bug-tracker address. | 464 | An /etc/aliases entry redirects it to the real emacs-bug-tracker address. |
| 465 | |||
| 466 | ** Administrivia | ||
| 467 | |||
| 468 | The debbugs-submit list should have the administrivia option off, | ||
| 469 | else it can by mistake filter out requests to subscribe to bugs. | ||
| 470 | But, this feature doesn't work anyway (see bug#5439). | ||
| 471 | |||
| 472 | ** How to test changes | ||
| 473 | |||
| 474 | Add an entry to /etc/debbugs/Maintainers like: | ||
| 475 | |||
| 476 | mytest my.email.address | ||
| 477 | |||
| 478 | Then if you do all your testing with 'Package: mytest', the resulting | ||
| 479 | mails should only go to your email address. | ||
| @@ -6665,11 +6665,12 @@ fi | |||
| 6665 | 6665 | ||
| 6666 | 6666 | ||
| 6667 | 6667 | ||
| 6668 | |||
| 6668 | for ac_header in sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \ | 6669 | for ac_header in sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \ |
| 6669 | linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \ | 6670 | linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \ |
| 6670 | termcap.h stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \ | 6671 | termcap.h stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \ |
| 6671 | sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \ | 6672 | sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \ |
| 6672 | sys/utsname.h pwd.h | 6673 | sys/utsname.h pwd.h utmp.h |
| 6673 | do | 6674 | do |
| 6674 | as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` | 6675 | as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` |
| 6675 | if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then | 6676 | if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then |
diff --git a/configure.in b/configure.in index 33671e530ee..82d3dfe4ede 100644 --- a/configure.in +++ b/configure.in | |||
| @@ -1106,7 +1106,7 @@ AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \ | |||
| 1106 | linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \ | 1106 | linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \ |
| 1107 | termcap.h stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \ | 1107 | termcap.h stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \ |
| 1108 | sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \ | 1108 | sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \ |
| 1109 | sys/utsname.h pwd.h) | 1109 | sys/utsname.h pwd.h utmp.h) |
| 1110 | 1110 | ||
| 1111 | AC_MSG_CHECKING(if personality LINUX32 can be set) | 1111 | AC_MSG_CHECKING(if personality LINUX32 can be set) |
| 1112 | AC_TRY_COMPILE([#include <sys/personality.h>], [personality (PER_LINUX32)], | 1112 | AC_TRY_COMPILE([#include <sys/personality.h>], [personality (PER_LINUX32)], |
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 7d7002a6469..39ffa2c2acc 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2010-01-24 Mark A. Hershberger <mah@everybody.org> | ||
| 2 | |||
| 3 | * programs.texi (Other C Commands): Replace reference to obsolete | ||
| 4 | c-subword-mode. | ||
| 5 | |||
| 1 | 2010-01-21 Glenn Morris <rgm@gnu.org> | 6 | 2010-01-21 Glenn Morris <rgm@gnu.org> |
| 2 | 7 | ||
| 3 | * trouble.texi (Bugs): Fix PROBLEMS keybinding. | 8 | * trouble.texi (Bugs): Fix PROBLEMS keybinding. |
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi index ac955956b91..8ebbcf58ed4 100644 --- a/doc/emacs/programs.texi +++ b/doc/emacs/programs.texi | |||
| @@ -1609,13 +1609,13 @@ hungry-delete feature is enabled. | |||
| 1609 | 1609 | ||
| 1610 | @table @kbd | 1610 | @table @kbd |
| 1611 | @item C-c C-w | 1611 | @item C-c C-w |
| 1612 | @itemx M-x c-subword-mode | 1612 | @itemx M-x subword-mode |
| 1613 | @findex c-subword-mode | 1613 | @findex subword-mode |
| 1614 | Enable (or disable) @dfn{subword mode}. In subword mode, Emacs's word | 1614 | Enable (or disable) @dfn{subword mode}. In subword mode, Emacs's word |
| 1615 | commands recognize upper case letters in | 1615 | commands recognize upper case letters in |
| 1616 | @samp{StudlyCapsIdentifiers} as word boundaries. This is indicated by | 1616 | @samp{StudlyCapsIdentifiers} as word boundaries. This is indicated by |
| 1617 | the flag @samp{/w} on the mode line after the mode name | 1617 | the flag @samp{/w} on the mode line after the mode name |
| 1618 | (e.g. @samp{C/law}). You can even use @kbd{M-x c-subword-mode} in | 1618 | (e.g. @samp{C/law}). You can even use @kbd{M-x subword-mode} in |
| 1619 | non-CC Mode buffers. | 1619 | non-CC Mode buffers. |
| 1620 | 1620 | ||
| 1621 | In the GNU project, we recommend using underscores to separate words | 1621 | In the GNU project, we recommend using underscores to separate words |
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 3d39b108049..fe34433c391 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog | |||
| @@ -1,7 +1,11 @@ | |||
| 1 | 2010-01-21 Katsumi Yamaoka <yamaoka@jpl.org> | 1 | 2010-01-24 Mark A. Hershberger <mah@everybody.org> |
| 2 | 2 | ||
| 3 | * gnus.texi (Score File Format): Fix typo. | 3 | * gnus.texi (Score File Format): Fix typo. |
| 4 | 4 | ||
| 5 | 2010-01-21 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 6 | |||
| 7 | * cc-mode.texi: Replace references to obsolete c-subword-mode. | ||
| 8 | |||
| 5 | 2010-01-18 Juanma Barranquero <lekktu@gmail.com> | 9 | 2010-01-18 Juanma Barranquero <lekktu@gmail.com> |
| 6 | 10 | ||
| 7 | * ada-mode.texi (Project File Overview): Fix typo. | 11 | * ada-mode.texi (Project File Overview): Fix typo. |
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi index 6b72c69e05b..bfe09b64244 100644 --- a/doc/misc/cc-mode.texi +++ b/doc/misc/cc-mode.texi | |||
| @@ -1012,7 +1012,7 @@ capitalized word. With prefix argument @var{n}, move @var{n} times. | |||
| 1012 | If @var{n} is negative, move in the opposite direction. | 1012 | If @var{n} is negative, move in the opposite direction. |
| 1013 | 1013 | ||
| 1014 | Note that these two commands have been superseded by | 1014 | Note that these two commands have been superseded by |
| 1015 | @code{c-subword-mode}, which you should use instead. @xref{Subword | 1015 | @code{subword-mode}, which you should use instead. @xref{Subword |
| 1016 | Movement}. They might be removed from a future release of @ccmode{}. | 1016 | Movement}. They might be removed from a future release of @ccmode{}. |
| 1017 | @end table | 1017 | @end table |
| 1018 | 1018 | ||
| @@ -1194,10 +1194,9 @@ Toggle hungry-delete minor mode. | |||
| 1194 | @findex toggle-auto-hungry-state (c-) | 1194 | @findex toggle-auto-hungry-state (c-) |
| 1195 | Toggle both auto-newline and hungry delete minor modes. | 1195 | Toggle both auto-newline and hungry delete minor modes. |
| 1196 | 1196 | ||
| 1197 | @item @kbd{C-c C-w} (@code{M-x c-subword-mode}) | 1197 | @item @kbd{C-c C-w} (@code{M-x subword-mode}) |
| 1198 | @kindex C-c C-w | 1198 | @kindex C-c C-w |
| 1199 | @findex c-subword-mode | 1199 | @findex subword-mode |
| 1200 | @findex subword-mode (c-) | ||
| 1201 | Toggle subword mode. | 1200 | Toggle subword mode. |
| 1202 | 1201 | ||
| 1203 | @item @kbd{M-x c-toggle-syntactic-indentation} | 1202 | @item @kbd{M-x c-toggle-syntactic-indentation} |
| @@ -1694,11 +1693,11 @@ mode turn on automatically, put the following code in your | |||
| 1694 | 1693 | ||
| 1695 | @example | 1694 | @example |
| 1696 | (add-hook 'c-mode-common-hook | 1695 | (add-hook 'c-mode-common-hook |
| 1697 | (lambda () (c-subword-mode 1))) | 1696 | (lambda () (subword-mode 1))) |
| 1698 | @end example | 1697 | @end example |
| 1699 | 1698 | ||
| 1700 | As a bonus, you can also use @code{c-subword-mode} in non-@ccmode{} | 1699 | As a bonus, you can also use @code{subword-mode} in non-@ccmode{} |
| 1701 | buffers by typing @kbd{M-x c-subword-mode}. | 1700 | buffers by typing @kbd{M-x subword-mode}. |
| 1702 | 1701 | ||
| 1703 | @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | 1702 | @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
| 1704 | @node Other Commands, , Subword Movement, Commands | 1703 | @node Other Commands, , Subword Movement, Commands |
| @@ -322,15 +322,14 @@ backends do not support this. | |||
| 322 | **** The short log format for git makes use of the graph display, so | 322 | **** The short log format for git makes use of the graph display, so |
| 323 | it's not supported on git versions earlier than 1.5. | 323 | it's not supported on git versions earlier than 1.5. |
| 324 | 324 | ||
| 325 | **** The new variable vc-git-add-signoff can be used to add a | ||
| 326 | Signed-off-by line when committing. | ||
| 327 | |||
| 328 | **** Support for operating with stashes has been added to vc-dir: the stash list is | 325 | **** Support for operating with stashes has been added to vc-dir: the stash list is |
| 329 | displayed in the *vc-dir* header, stashes can be created, removed, applied and | 326 | displayed in the *vc-dir* header, stashes can be created, removed, applied and |
| 330 | their content displayed. | 327 | their content displayed. |
| 331 | 328 | ||
| 332 | **** vc-dir displays the stash status | 329 | **** vc-dir displays the stash status |
| 333 | 330 | ||
| 331 | **** vc-dir requires at least git-1.5.5. | ||
| 332 | |||
| 334 | *** vc-bzr supports operating with shelves: the shelve list is | 333 | *** vc-bzr supports operating with shelves: the shelve list is |
| 335 | displayed in the *vc-dir* header, shelves can be created, removed and applied. | 334 | displayed in the *vc-dir* header, shelves can be created, removed and applied. |
| 336 | 335 | ||
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 65e171c1381..6af0ffdf5a3 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,6 +1,61 @@ | |||
| 1 | 2010-01-25 Dan Nicolaescu <dann@ics.uci.edu> | ||
| 2 | |||
| 3 | * vc-annotate.el (vc-annotate-revision-at-line): Compare file | ||
| 4 | names too. | ||
| 5 | |||
| 6 | * vc-bzr.el (vc-bzr-print-log): Use the more compact --line option | ||
| 7 | for the short log. | ||
| 8 | (vc-bzr-log-view-mode): Adjust regexp for the above change. | ||
| 9 | |||
| 10 | 2010-01-25 Mark A. Hershberger <mah@everybody.org> | ||
| 11 | |||
| 12 | * progmodes/python.el: Replace reference to obsolete | ||
| 13 | c-subward-mode. | ||
| 14 | |||
| 15 | * vc-bzr.el: (vc-bzr-revision-table) New function. | ||
| 16 | |||
| 17 | 2010-01-25 Eric Hanchrow <eric.hanchrow@gmail.com> (tiny change) | ||
| 18 | |||
| 19 | * vc-git.el (vc-git-dir-status-goto-stage): Pass --relative to the | ||
| 20 | diff-index command. This requires at least git-1.5.5. (Bug#1589). | ||
| 21 | |||
| 22 | 2010-01-24 Dan Nicolaescu <dann@ics.uci.edu> | ||
| 23 | |||
| 24 | Remove support for adding --signoff on commit. | ||
| 25 | Future support will use an incompatible generic mechanism. | ||
| 26 | * vc-git.el (vc-git-add-signoff): Remove variable. | ||
| 27 | (vc-git-toggle-signoff): Remove function. | ||
| 28 | (vc-git-extra-menu-map): Do not bind vc-git-toggle-signoff. | ||
| 29 | |||
| 30 | * term/xterm.el (xterm-maybe-set-dark-background-mode): Rename | ||
| 31 | from xterm-set-background-mode. Return t if the background mode | ||
| 32 | was set. | ||
| 33 | (terminal-init-xterm): Move tty-set-up-initial-frame-faces | ||
| 34 | earlier, call it again in case the background mode has changed. | ||
| 35 | |||
| 36 | 2010-01-23 Dmitri Paduchikh <dpaduch@k66.ru> (tiny change) | ||
| 37 | |||
| 38 | * emacs-lisp/advice.el (ad-set-orig-definition): Fix typo | ||
| 39 | (Bug#3541). | ||
| 40 | |||
| 41 | 2010-01-23 Chong Yidong <cyd@stupidchicken.com> | ||
| 42 | |||
| 43 | * emacs-lisp/assoc.el (aelement): Doc fix. | ||
| 44 | (aput, adelete, amake): Use lexical-let (Bug#5450). | ||
| 45 | |||
| 46 | 2010-01-23 Stephen Leake <stephen_leake@member.fsf.org> | ||
| 47 | |||
| 48 | * progmodes/ada-mode.el (ada-in-paramlist-p): Pragma syntax | ||
| 49 | is the same as subprogram call, not declaration. (Bug#5435). | ||
| 50 | |||
| 51 | 2010-01-23 Michael Albinus <michael.albinus@gmx.de> | ||
| 52 | |||
| 53 | * net/tramp-smb.el (tramp-smb-conf): New defcustom. | ||
| 54 | (tramp-smb-maybe-open-connection): Use it. | ||
| 55 | |||
| 1 | 2010-01-22 Michael Albinus <michael.albinus@gmx.de> | 56 | 2010-01-22 Michael Albinus <michael.albinus@gmx.de> |
| 2 | 57 | ||
| 3 | * net/tramp-imap.el (top): Autoload needed packages. | 58 | * net/tramp-imap.el (top): Autoload needed packages. (Bug#5448) |
| 4 | 59 | ||
| 5 | 2010-01-22 Stefan Monnier <monnier@iro.umontreal.ca> | 60 | 2010-01-22 Stefan Monnier <monnier@iro.umontreal.ca> |
| 6 | 61 | ||
diff --git a/lisp/emacs-lisp/advice.el b/lisp/emacs-lisp/advice.el index bac24b63021..003f70ea4a5 100644 --- a/lisp/emacs-lisp/advice.el +++ b/lisp/emacs-lisp/advice.el | |||
| @@ -2191,7 +2191,7 @@ Redefining advices affect the construction of an advised definition." | |||
| 2191 | 2191 | ||
| 2192 | (defmacro ad-set-orig-definition (function definition) | 2192 | (defmacro ad-set-orig-definition (function definition) |
| 2193 | `(ad-safe-fset | 2193 | `(ad-safe-fset |
| 2194 | (ad-get-advice-info-field function 'origname) ,definition)) | 2194 | (ad-get-advice-info-field ,function 'origname) ,definition)) |
| 2195 | 2195 | ||
| 2196 | (defmacro ad-clear-orig-definition (function) | 2196 | (defmacro ad-clear-orig-definition (function) |
| 2197 | `(fmakunbound (ad-get-advice-info-field ,function 'origname))) | 2197 | `(fmakunbound (ad-get-advice-info-field ,function 'origname))) |
diff --git a/lisp/emacs-lisp/assoc.el b/lisp/emacs-lisp/assoc.el index 8082069a34b..ccab5d90c09 100644 --- a/lisp/emacs-lisp/assoc.el +++ b/lisp/emacs-lisp/assoc.el | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | ;;; assoc.el --- insert/delete/sort functions on association lists | 1 | ;;; assoc.el --- insert/delete/sort functions on association lists |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005, | 3 | ;; Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, |
| 4 | ;; 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. | 4 | ;; 2009, 2010 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Barry A. Warsaw <bwarsaw@cen.com> | 6 | ;; Author: Barry A. Warsaw <bwarsaw@cen.com> |
| 7 | ;; Keywords: extensions | 7 | ;; Keywords: extensions |
| @@ -27,6 +27,7 @@ | |||
| 27 | ;; fetching off key-value pairs in association lists. | 27 | ;; fetching off key-value pairs in association lists. |
| 28 | 28 | ||
| 29 | ;;; Code: | 29 | ;;; Code: |
| 30 | (eval-when-compile (require 'cl)) | ||
| 30 | 31 | ||
| 31 | (defun asort (alist-symbol key) | 32 | (defun asort (alist-symbol key) |
| 32 | "Move a specified key-value pair to the head of an alist. | 33 | "Move a specified key-value pair to the head of an alist. |
| @@ -41,7 +42,8 @@ sorted list." | |||
| 41 | 42 | ||
| 42 | (defun aelement (key value) | 43 | (defun aelement (key value) |
| 43 | "Make a list of a cons cell containing car of KEY and cdr of VALUE. | 44 | "Make a list of a cons cell containing car of KEY and cdr of VALUE. |
| 44 | The returned list is suitable as an element of an alist." | 45 | The returned list is suitable for concatenating with an existing |
| 46 | alist, via `nconc'." | ||
| 45 | (list (cons key value))) | 47 | (list (cons key value))) |
| 46 | 48 | ||
| 47 | 49 | ||
| @@ -71,8 +73,8 @@ If VALUE is not supplied, or is nil, the key-value pair will not be | |||
| 71 | modified, but will be moved to the head of the alist. If the key-value | 73 | modified, but will be moved to the head of the alist. If the key-value |
| 72 | pair cannot be found in the alist, it will be inserted into the head | 74 | pair cannot be found in the alist, it will be inserted into the head |
| 73 | of the alist (with value nil if VALUE is nil or not supplied)." | 75 | of the alist (with value nil if VALUE is nil or not supplied)." |
| 74 | (let ((elem (aelement key value)) | 76 | (lexical-let ((elem (aelement key value)) |
| 75 | alist) | 77 | alist) |
| 76 | (asort alist-symbol key) | 78 | (asort alist-symbol key) |
| 77 | (setq alist (eval alist-symbol)) | 79 | (setq alist (eval alist-symbol)) |
| 78 | (cond ((null alist) (set alist-symbol elem)) | 80 | (cond ((null alist) (set alist-symbol elem)) |
| @@ -86,7 +88,7 @@ of the alist (with value nil if VALUE is nil or not supplied)." | |||
| 86 | Alist is referenced by ALIST-SYMBOL and the key-value pair to remove | 88 | Alist is referenced by ALIST-SYMBOL and the key-value pair to remove |
| 87 | is pair matching KEY. Returns the altered alist." | 89 | is pair matching KEY. Returns the altered alist." |
| 88 | (asort alist-symbol key) | 90 | (asort alist-symbol key) |
| 89 | (let ((alist (eval alist-symbol))) | 91 | (lexical-let ((alist (eval alist-symbol))) |
| 90 | (cond ((null alist) nil) | 92 | (cond ((null alist) nil) |
| 91 | ((anot-head-p alist key) alist) | 93 | ((anot-head-p alist key) alist) |
| 92 | (t (set alist-symbol (cdr alist)))))) | 94 | (t (set alist-symbol (cdr alist)))))) |
| @@ -123,10 +125,10 @@ KEYLIST and VALUELIST should have the same number of elements, but | |||
| 123 | this isn't enforced. If VALUELIST is smaller than KEYLIST, remaining | 125 | this isn't enforced. If VALUELIST is smaller than KEYLIST, remaining |
| 124 | keys are associated with nil. If VALUELIST is larger than KEYLIST, | 126 | keys are associated with nil. If VALUELIST is larger than KEYLIST, |
| 125 | extra values are ignored. Returns the created alist." | 127 | extra values are ignored. Returns the created alist." |
| 126 | (let ((keycar (car keylist)) | 128 | (lexical-let ((keycar (car keylist)) |
| 127 | (keycdr (cdr keylist)) | 129 | (keycdr (cdr keylist)) |
| 128 | (valcar (car valuelist)) | 130 | (valcar (car valuelist)) |
| 129 | (valcdr (cdr valuelist))) | 131 | (valcdr (cdr valuelist))) |
| 130 | (cond ((null keycdr) | 132 | (cond ((null keycdr) |
| 131 | (aput alist-symbol keycar valcar)) | 133 | (aput alist-symbol keycar valcar)) |
| 132 | (t | 134 | (t |
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el index 9d176a1fd3c..e9051f0a435 100644 --- a/lisp/net/tramp-smb.el +++ b/lisp/net/tramp-smb.el | |||
| @@ -61,6 +61,13 @@ | |||
| 61 | :group 'tramp | 61 | :group 'tramp |
| 62 | :type 'string) | 62 | :type 'string) |
| 63 | 63 | ||
| 64 | (defcustom tramp-smb-conf "/dev/null" | ||
| 65 | "*Path of the smb.conf file. | ||
| 66 | If it is nil, no smb.conf will be added to the `tramp-smb-program' | ||
| 67 | call, letting the SMB client use the default one." | ||
| 68 | :group 'tramp | ||
| 69 | :type '(choice (const nil) (file :must-match t))) | ||
| 70 | |||
| 64 | (defvar tramp-smb-version nil | 71 | (defvar tramp-smb-version nil |
| 65 | "*Version string of the SMB client.") | 72 | "*Version string of the SMB client.") |
| 66 | 73 | ||
| @@ -1281,7 +1288,8 @@ connection if a previous connection has died for some reason." | |||
| 1281 | 1288 | ||
| 1282 | (when domain (setq args (append args (list "-W" domain)))) | 1289 | (when domain (setq args (append args (list "-W" domain)))) |
| 1283 | (when port (setq args (append args (list "-p" port)))) | 1290 | (when port (setq args (append args (list "-p" port)))) |
| 1284 | (setq args (append args (list "-s" "/dev/null"))) | 1291 | (when tramp-smb-conf |
| 1292 | (setq args (append args (list "-s" tramp-smb-conf)))) | ||
| 1285 | 1293 | ||
| 1286 | ;; OK, let's go. | 1294 | ;; OK, let's go. |
| 1287 | (tramp-message | 1295 | (tramp-message |
diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el index 3694de23f88..a08e31e2016 100644 --- a/lisp/progmodes/ada-mode.el +++ b/lisp/progmodes/ada-mode.el | |||
| @@ -257,7 +257,7 @@ Note that indentation is calculated only if `ada-indent-comment-as-code' is t. | |||
| 257 | 257 | ||
| 258 | For instance: | 258 | For instance: |
| 259 | A := 1; -- A multi-line comment | 259 | A := 1; -- A multi-line comment |
| 260 | -- aligned if ada-indent-align-comments is t" | 260 | -- aligned if `ada-indent-align-comments' is t" |
| 261 | :type 'boolean :group 'ada) | 261 | :type 'boolean :group 'ada) |
| 262 | 262 | ||
| 263 | (defcustom ada-indent-comment-as-code t | 263 | (defcustom ada-indent-comment-as-code t |
| @@ -4163,7 +4163,7 @@ Return nil if the private is part of the package name, as in | |||
| 4163 | 4163 | ||
| 4164 | 4164 | ||
| 4165 | (defun ada-in-paramlist-p () | 4165 | (defun ada-in-paramlist-p () |
| 4166 | "Return t if point is inside a parameter-list." | 4166 | "Return t if point is inside the parameter-list of a declaration, but not a subprogram call or aggregate." |
| 4167 | (save-excursion | 4167 | (save-excursion |
| 4168 | (and | 4168 | (and |
| 4169 | (ada-search-ignore-string-comment "(\\|)" t nil t) | 4169 | (ada-search-ignore-string-comment "(\\|)" t nil t) |
| @@ -4194,13 +4194,13 @@ Return nil if the private is part of the package name, as in | |||
| 4194 | 4194 | ||
| 4195 | ;; right keyword two words before parenthesis ? | 4195 | ;; right keyword two words before parenthesis ? |
| 4196 | ;; Type is in this list because of discriminants | 4196 | ;; Type is in this list because of discriminants |
| 4197 | ;; pragma is not, because the syntax is that of a subprogram call. | ||
| 4197 | (looking-at (eval-when-compile | 4198 | (looking-at (eval-when-compile |
| 4198 | (concat "\\<\\(" | 4199 | (concat "\\<\\(" |
| 4199 | "procedure\\|function\\|body\\|" | 4200 | "procedure\\|function\\|body\\|" |
| 4200 | "task\\|entry\\|accept\\|" | 4201 | "task\\|entry\\|accept\\|" |
| 4201 | "access[ \t]+procedure\\|" | 4202 | "access[ \t]+procedure\\|" |
| 4202 | "access[ \t]+function\\|" | 4203 | "access[ \t]+function\\|" |
| 4203 | "pragma\\|" | ||
| 4204 | "type\\)\\>")))))) | 4204 | "type\\)\\>")))))) |
| 4205 | 4205 | ||
| 4206 | (defun ada-search-ignore-complex-boolean (regexp backwardp) | 4206 | (defun ada-search-ignore-complex-boolean (regexp backwardp) |
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 94124ad54f0..a6354eff998 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el | |||
| @@ -45,7 +45,7 @@ | |||
| 45 | ;; `forward-into-nomenclature' should be done separately, since it's | 45 | ;; `forward-into-nomenclature' should be done separately, since it's |
| 46 | ;; not specific to Python, and I've installed a minor mode to do the | 46 | ;; not specific to Python, and I've installed a minor mode to do the |
| 47 | ;; job properly in Emacs 23. [CC mode 5.31 contains an incompatible | 47 | ;; job properly in Emacs 23. [CC mode 5.31 contains an incompatible |
| 48 | ;; feature, `c-subword-mode' which is intended to have a similar | 48 | ;; feature, `subword-mode' which is intended to have a similar |
| 49 | ;; effect, but actually only affects word-oriented keybindings.] | 49 | ;; effect, but actually only affects word-oriented keybindings.] |
| 50 | 50 | ||
| 51 | ;; Other things seem more natural or canonical here, e.g. the | 51 | ;; Other things seem more natural or canonical here, e.g. the |
diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el index 203c538609f..d881e6fcc7d 100644 --- a/lisp/term/xterm.el +++ b/lisp/term/xterm.el | |||
| @@ -462,6 +462,7 @@ | |||
| 462 | (set-keymap-parent input-decode-map map))) | 462 | (set-keymap-parent input-decode-map map))) |
| 463 | 463 | ||
| 464 | (xterm-register-default-colors) | 464 | (xterm-register-default-colors) |
| 465 | (tty-set-up-initial-frame-faces) | ||
| 465 | 466 | ||
| 466 | ;; Try to turn on the modifyOtherKeys feature on modern xterms. | 467 | ;; Try to turn on the modifyOtherKeys feature on modern xterms. |
| 467 | ;; When it is turned on many more key bindings work: things like | 468 | ;; When it is turned on many more key bindings work: things like |
| @@ -471,6 +472,7 @@ | |||
| 471 | (let ((coding-system-for-read 'binary) | 472 | (let ((coding-system-for-read 'binary) |
| 472 | (chr nil) | 473 | (chr nil) |
| 473 | (str nil) | 474 | (str nil) |
| 475 | (recompute-faces nil) | ||
| 474 | version) | 476 | version) |
| 475 | ;; Pending input can be mistakenly returned by the calls to | 477 | ;; Pending input can be mistakenly returned by the calls to |
| 476 | ;; read-event below. Discard it. | 478 | ;; read-event below. Discard it. |
| @@ -502,10 +504,11 @@ | |||
| 502 | (while (not (equal (setq chr (read-event nil nil 2)) ?\\)) | 504 | (while (not (equal (setq chr (read-event nil nil 2)) ?\\)) |
| 503 | (setq str (concat str (string chr)))) | 505 | (setq str (concat str (string chr)))) |
| 504 | (when (string-match "11;rgb:\\([a-f0-9]+\\)/\\([a-f0-9]+\\)/\\([a-f0-9]+\\)" str) | 506 | (when (string-match "11;rgb:\\([a-f0-9]+\\)/\\([a-f0-9]+\\)/\\([a-f0-9]+\\)" str) |
| 505 | (xterm-set-background-mode | 507 | (setq recompute-faces |
| 506 | (string-to-number (match-string 1 str) 16) | 508 | (xterm-maybe-set-dark-background-mode |
| 507 | (string-to-number (match-string 2 str) 16) | 509 | (string-to-number (match-string 1 str) 16) |
| 508 | (string-to-number (match-string 3 str) 16)))))) | 510 | (string-to-number (match-string 2 str) 16) |
| 511 | (string-to-number (match-string 3 str) 16))))))) | ||
| 509 | ;; NUMBER2 is the xterm version number, look for something | 512 | ;; NUMBER2 is the xterm version number, look for something |
| 510 | ;; greater than 216, the version when modifyOtherKeys was | 513 | ;; greater than 216, the version when modifyOtherKeys was |
| 511 | ;; introduced. | 514 | ;; introduced. |
| @@ -520,10 +523,16 @@ | |||
| 520 | ;; need to deal with modify-other-keys. | 523 | ;; need to deal with modify-other-keys. |
| 521 | (push (frame-terminal (selected-frame)) | 524 | (push (frame-terminal (selected-frame)) |
| 522 | xterm-modify-other-keys-terminal-list) | 525 | xterm-modify-other-keys-terminal-list) |
| 523 | (xterm-turn-on-modify-other-keys)))))) | 526 | (xterm-turn-on-modify-other-keys)) |
| 524 | 527 | ||
| 525 | ;; This recomputes all the default faces given the colors we've just set up. | 528 | ;; Recompute faces here in case the background mode was |
| 526 | (tty-set-up-initial-frame-faces) | 529 | ;; set to dark. We used to call |
| 530 | ;; `tty-set-up-initial-frame-faces' only once, but that | ||
| 531 | ;; caused the light background faces to be computed | ||
| 532 | ;; incorrectly. See: | ||
| 533 | ;; http://permalink.gmane.org/gmane.emacs.devel/119627 | ||
| 534 | (when recompute-faces | ||
| 535 | (tty-set-up-initial-frame-faces)))))) | ||
| 527 | 536 | ||
| 528 | (run-hooks 'terminal-init-xterm-hook)) | 537 | (run-hooks 'terminal-init-xterm-hook)) |
| 529 | 538 | ||
| @@ -666,11 +675,13 @@ versions of xterm." | |||
| 666 | (delq terminal xterm-modify-other-keys-terminal-list)) | 675 | (delq terminal xterm-modify-other-keys-terminal-list)) |
| 667 | (send-string-to-terminal "\e[>4m" terminal))) | 676 | (send-string-to-terminal "\e[>4m" terminal))) |
| 668 | 677 | ||
| 669 | (defun xterm-set-background-mode (redc greenc bluec) | 678 | (defun xterm-maybe-set-dark-background-mode (redc greenc bluec) |
| 670 | ;; Use the heuristic in `frame-set-background-mode' to decide if a | 679 | ;; Use the heuristic in `frame-set-background-mode' to decide if a |
| 671 | ;; frame is dark. | 680 | ;; frame is dark. |
| 672 | (when (< (+ redc greenc bluec) (* .6 (+ 65535 65535 65535))) | 681 | (when (< (+ redc greenc bluec) (* .6 (+ 65535 65535 65535))) |
| 673 | (set-terminal-parameter nil 'background-mode 'dark))) | 682 | (setq xterm-background-mode-changed t) |
| 683 | (set-terminal-parameter nil 'background-mode 'dark) | ||
| 684 | t)) | ||
| 674 | 685 | ||
| 675 | ;; arch-tag: 12e7ebdd-1e6c-4b25-b0f9-35ace25e855a | 686 | ;; arch-tag: 12e7ebdd-1e6c-4b25-b0f9-35ace25e855a |
| 676 | ;;; xterm.el ends here | 687 | ;;; xterm.el ends here |
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index 8d32f7242b7..2a8c6ebe25b 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2010-01-23 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * url-util.el: Require url-vars (Bug#5459). | ||
| 4 | |||
| 1 | 2009-11-27 Stefan Monnier <monnier@iro.umontreal.ca> | 5 | 2009-11-27 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 6 | ||
| 3 | * url-parse.el (url-generic-parse-url): Bind deactivate-mark. | 7 | * url-parse.el (url-generic-parse-url): Bind deactivate-mark. |
diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el index 8a9cc01e1f3..c0b2595a6e0 100644 --- a/lisp/url/url-util.el +++ b/lisp/url/url-util.el | |||
| @@ -26,6 +26,7 @@ | |||
| 26 | ;;; Code: | 26 | ;;; Code: |
| 27 | 27 | ||
| 28 | (require 'url-parse) | 28 | (require 'url-parse) |
| 29 | (require 'url-vars) | ||
| 29 | (eval-when-compile (require 'cl)) | 30 | (eval-when-compile (require 'cl)) |
| 30 | (autoload 'timezone-parse-date "timezone") | 31 | (autoload 'timezone-parse-date "timezone") |
| 31 | (autoload 'timezone-make-date-arpa-standard "timezone") | 32 | (autoload 'timezone-make-date-arpa-standard "timezone") |
diff --git a/lisp/vc-annotate.el b/lisp/vc-annotate.el index 9f8daad0fde..71839443553 100644 --- a/lisp/vc-annotate.el +++ b/lisp/vc-annotate.el | |||
| @@ -447,7 +447,8 @@ Return a cons (REV . FILENAME)." | |||
| 447 | (let ((rev-at-line (vc-annotate-extract-revision-at-line))) | 447 | (let ((rev-at-line (vc-annotate-extract-revision-at-line))) |
| 448 | (if (not rev-at-line) | 448 | (if (not rev-at-line) |
| 449 | (message "Cannot extract revision number from the current line") | 449 | (message "Cannot extract revision number from the current line") |
| 450 | (if (equal (car rev-at-line) vc-annotate-parent-rev) | 450 | (if (and (equal (car rev-at-line) vc-annotate-parent-rev) |
| 451 | (string= (cdr rev-at-line) vc-annotate-parent-file)) | ||
| 451 | (message "Already at revision %s" rev-at-line) | 452 | (message "Already at revision %s" rev-at-line) |
| 452 | (vc-annotate-warp-revision (car rev-at-line) (cdr rev-at-line))))))) | 453 | (vc-annotate-warp-revision (car rev-at-line) (cdr rev-at-line))))))) |
| 453 | 454 | ||
diff --git a/lisp/vc-bzr.el b/lisp/vc-bzr.el index d04c783ca32..8861fef0388 100644 --- a/lisp/vc-bzr.el +++ b/lisp/vc-bzr.el | |||
| @@ -487,7 +487,7 @@ REV non-nil gets an error." | |||
| 487 | (set (make-local-variable 'log-view-file-re) "\\`a\\`") | 487 | (set (make-local-variable 'log-view-file-re) "\\`a\\`") |
| 488 | (set (make-local-variable 'log-view-message-re) | 488 | (set (make-local-variable 'log-view-message-re) |
| 489 | (if vc-short-log | 489 | (if vc-short-log |
| 490 | "^ *\\([0-9.]+\\) \\(.*?\\)[ \t]+\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}\\)\\( \\[merge\\]\\)?" | 490 | "^ *\\([0-9.]+\\): \\(.*?\\)[ \t]+\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}\\)\\( \\[merge\\]\\)?" |
| 491 | "^ *\\(?:revno: \\([0-9.]+\\)\\|merged: .+\\)")) | 491 | "^ *\\(?:revno: \\([0-9.]+\\)\\|merged: .+\\)")) |
| 492 | (set (make-local-variable 'log-view-font-lock-keywords) | 492 | (set (make-local-variable 'log-view-font-lock-keywords) |
| 493 | ;; log-view-font-lock-keywords is careful to use the buffer-local | 493 | ;; log-view-font-lock-keywords is careful to use the buffer-local |
| @@ -519,7 +519,7 @@ REV non-nil gets an error." | |||
| 519 | (with-current-buffer buffer | 519 | (with-current-buffer buffer |
| 520 | (apply 'vc-bzr-command "log" buffer 'async files | 520 | (apply 'vc-bzr-command "log" buffer 'async files |
| 521 | (append | 521 | (append |
| 522 | (when shortlog '("--short")) | 522 | (when shortlog '("--line")) |
| 523 | (when start-revision (list (format "-r..%s" start-revision))) | 523 | (when start-revision (list (format "-r..%s" start-revision))) |
| 524 | (when limit (list "-l" (format "%s" limit))) | 524 | (when limit (list "-l" (format "%s" limit))) |
| 525 | (if (stringp vc-bzr-log-switches) | 525 | (if (stringp vc-bzr-log-switches) |
| @@ -898,6 +898,19 @@ stream. Standard error output is discarded." | |||
| 898 | (interactive "e") | 898 | (interactive "e") |
| 899 | (vc-dir-at-event e (popup-menu vc-bzr-shelve-menu-map e))) | 899 | (vc-dir-at-event e (popup-menu vc-bzr-shelve-menu-map e))) |
| 900 | 900 | ||
| 901 | (defun vc-bzr-revision-table (files) | ||
| 902 | (let ((vc-bzr-revisions '()) | ||
| 903 | (default-directory (file-name-directory (car files)))) | ||
| 904 | (with-temp-buffer | ||
| 905 | (vc-bzr-command "log" t 0 files "--line") | ||
| 906 | (let ((start (point-min)) | ||
| 907 | (loglines (buffer-substring-no-properties (point-min) (point-max)))) | ||
| 908 | (while (string-match "^\\([0-9]+\\):" loglines) | ||
| 909 | (push (match-string 1 loglines) vc-bzr-revisions) | ||
| 910 | (setq start (+ start (match-end 0))) | ||
| 911 | (setq loglines (buffer-substring-no-properties start (point-max)))))) | ||
| 912 | vc-bzr-revisions)) | ||
| 913 | |||
| 901 | ;;; Revision completion | 914 | ;;; Revision completion |
| 902 | 915 | ||
| 903 | (eval-and-compile | 916 | (eval-and-compile |
diff --git a/lisp/vc-git.el b/lisp/vc-git.el index 52482d9ff4b..0d8e6307d6e 100644 --- a/lisp/vc-git.el +++ b/lisp/vc-git.el | |||
| @@ -118,13 +118,6 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches." | |||
| 118 | :version "23.1" | 118 | :version "23.1" |
| 119 | :group 'vc) | 119 | :group 'vc) |
| 120 | 120 | ||
| 121 | (defcustom vc-git-add-signoff nil | ||
| 122 | "Add a Signed-off-by line when committing." | ||
| 123 | :type 'boolean | ||
| 124 | :version "23.2" | ||
| 125 | :group 'vc) | ||
| 126 | |||
| 127 | |||
| 128 | (defvar git-commits-coding-system 'utf-8 | 121 | (defvar git-commits-coding-system 'utf-8 |
| 129 | "Default coding system for git commits.") | 122 | "Default coding system for git commits.") |
| 130 | 123 | ||
| @@ -388,7 +381,7 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches." | |||
| 388 | (vc-git-command (current-buffer) 'async files "ls-files" "-z" "-o" "-i" | 381 | (vc-git-command (current-buffer) 'async files "ls-files" "-z" "-o" "-i" |
| 389 | "--directory" "--no-empty-directory" "--exclude-standard" "--")) | 382 | "--directory" "--no-empty-directory" "--exclude-standard" "--")) |
| 390 | ('diff-index | 383 | ('diff-index |
| 391 | (vc-git-command (current-buffer) 'async files "diff-index" "-z" "-M" "HEAD" "--"))) | 384 | (vc-git-command (current-buffer) 'async files "diff-index" "--relative" "-z" "-M" "HEAD" "--"))) |
| 392 | (vc-exec-after | 385 | (vc-exec-after |
| 393 | `(vc-git-after-dir-status-stage (quote ,stage) (quote ,files) (quote ,update-function)))) | 386 | `(vc-git-after-dir-status-stage (quote ,stage) (quote ,files) (quote ,update-function)))) |
| 394 | 387 | ||
| @@ -515,7 +508,7 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches." | |||
| 515 | (defun vc-git-checkin (files rev comment) | 508 | (defun vc-git-checkin (files rev comment) |
| 516 | (let ((coding-system-for-write git-commits-coding-system)) | 509 | (let ((coding-system-for-write git-commits-coding-system)) |
| 517 | (vc-git-command nil 0 files "commit" | 510 | (vc-git-command nil 0 files "commit" |
| 518 | (if vc-git-add-signoff "-s") "-m" comment "--only" "--"))) | 511 | "-m" comment "--only" "--"))) |
| 519 | 512 | ||
| 520 | (defun vc-git-find-revision (file rev buffer) | 513 | (defun vc-git-find-revision (file rev buffer) |
| 521 | (let* (process-file-side-effects | 514 | (let* (process-file-side-effects |
| @@ -766,10 +759,6 @@ or BRANCH^ (where \"^\" can be repeated)." | |||
| 766 | (define-key map [git-ss] | 759 | (define-key map [git-ss] |
| 767 | '(menu-item "Show Stash..." vc-git-stash-show | 760 | '(menu-item "Show Stash..." vc-git-stash-show |
| 768 | :help "Show stash contents")) | 761 | :help "Show stash contents")) |
| 769 | (define-key map [git-sig] | ||
| 770 | '(menu-item "Add Signed-off-by on commit" vc-git-toggle-signoff | ||
| 771 | :help "Add Add Signed-off-by when commiting (i.e. add the -s flag)" | ||
| 772 | :button (:toggle . vc-git-add-signoff))) | ||
| 773 | map)) | 762 | map)) |
| 774 | 763 | ||
| 775 | (defun vc-git-extra-menu () vc-git-extra-menu-map) | 764 | (defun vc-git-extra-menu () vc-git-extra-menu-map) |
| @@ -779,10 +768,6 @@ or BRANCH^ (where \"^\" can be repeated)." | |||
| 779 | (defun vc-git-root (file) | 768 | (defun vc-git-root (file) |
| 780 | (vc-find-root file ".git")) | 769 | (vc-find-root file ".git")) |
| 781 | 770 | ||
| 782 | (defun vc-git-toggle-signoff () | ||
| 783 | (interactive) | ||
| 784 | (setq vc-git-add-signoff (not vc-git-add-signoff))) | ||
| 785 | |||
| 786 | ;; Derived from `lgrep'. | 771 | ;; Derived from `lgrep'. |
| 787 | (defun vc-git-grep (regexp &optional files dir) | 772 | (defun vc-git-grep (regexp &optional files dir) |
| 788 | "Run git grep, searching for REGEXP in FILES in directory DIR. | 773 | "Run git grep, searching for REGEXP in FILES in directory DIR. |
diff --git a/src/ChangeLog b/src/ChangeLog index 62337d8db63..96dc0066fd9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,27 @@ | |||
| 1 | 2010-01-25 Jan Djärv <jan.h.d@swipnet.se> | ||
| 2 | |||
| 3 | * xfns.c (Fx_create_frame): If frame height is too big, try | ||
| 4 | sizes 24 and 10. Bug #3643. | ||
| 5 | |||
| 6 | 2010-01-24 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 7 | |||
| 8 | Try and fix bug#788, hopefully for real this time. | ||
| 9 | * keymap.c (shadow_lookup): Add `remap' arg. | ||
| 10 | (describe_map, describe_vector): Update calls to shadow_lookup. | ||
| 11 | (Fwhere_is_internal): Fix up handling of `remapped_sequences' and | ||
| 12 | `remapped' so this flag is applicable to `sequence'. Be careful to | ||
| 13 | perform remapping during shadow_lookup check of remapped_sequences. | ||
| 14 | |||
| 15 | 2010-01-24 Eric Bélanger <snowmaniscool@gmail.com> (tiny change) | ||
| 16 | |||
| 17 | * image.c (png_load): Use png_sig_cmp instead of the obsolete | ||
| 18 | png_check_sig, which has been removed in libpng 1.4. | ||
| 19 | |||
| 20 | 2010-01-23 Giorgos Keramidas <keramida@ceid.upatras.gr> (tiny change) | ||
| 21 | |||
| 22 | * filelock.c: Include utmp.h only when HAVE_UTMP_H (FreeBSD 9.x | ||
| 23 | lacks this header file). | ||
| 24 | |||
| 1 | 2010-01-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | 25 | 2010-01-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> |
| 2 | 26 | ||
| 3 | * xdisp.c (draw_glyphs): Update `start' for left_overwritten case | 27 | * xdisp.c (draw_glyphs): Update `start' for left_overwritten case |
diff --git a/src/filelock.c b/src/filelock.c index 3c92d495060..7c69ea954fc 100644 --- a/src/filelock.c +++ b/src/filelock.c | |||
| @@ -63,7 +63,9 @@ Lisp_Object Vtemporary_file_directory; | |||
| 63 | 63 | ||
| 64 | #ifdef CLASH_DETECTION | 64 | #ifdef CLASH_DETECTION |
| 65 | 65 | ||
| 66 | #ifdef HAVE_UTMP_H | ||
| 66 | #include <utmp.h> | 67 | #include <utmp.h> |
| 68 | #endif | ||
| 67 | 69 | ||
| 68 | #if !defined (S_ISLNK) && defined (S_IFLNK) | 70 | #if !defined (S_ISLNK) && defined (S_IFLNK) |
| 69 | #define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) | 71 | #define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) |
diff --git a/src/image.c b/src/image.c index 9c11f466807..1265b900c6c 100644 --- a/src/image.c +++ b/src/image.c | |||
| @@ -33,7 +33,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 33 | #else | 33 | #else |
| 34 | # include <png.h> | 34 | # include <png.h> |
| 35 | #endif | 35 | #endif |
| 36 | #endif | 36 | #endif |
| 37 | 37 | ||
| 38 | #include <setjmp.h> | 38 | #include <setjmp.h> |
| 39 | 39 | ||
| @@ -3051,7 +3051,7 @@ xbm_load (f, img) | |||
| 3051 | int nbytes, i; | 3051 | int nbytes, i; |
| 3052 | /* Windows mono bitmaps are reversed compared with X. */ | 3052 | /* Windows mono bitmaps are reversed compared with X. */ |
| 3053 | invertedBits = bits; | 3053 | invertedBits = bits; |
| 3054 | nbytes = (img->width + BITS_PER_CHAR - 1) / BITS_PER_CHAR | 3054 | nbytes = (img->width + BITS_PER_CHAR - 1) / BITS_PER_CHAR |
| 3055 | * img->height; | 3055 | * img->height; |
| 3056 | bits = (char *) alloca(nbytes); | 3056 | bits = (char *) alloca(nbytes); |
| 3057 | for (i = 0; i < nbytes; i++) | 3057 | for (i = 0; i < nbytes; i++) |
| @@ -5559,7 +5559,7 @@ png_image_p (object) | |||
| 5559 | /* PNG library details. */ | 5559 | /* PNG library details. */ |
| 5560 | 5560 | ||
| 5561 | DEF_IMGLIB_FN (png_get_io_ptr); | 5561 | DEF_IMGLIB_FN (png_get_io_ptr); |
| 5562 | DEF_IMGLIB_FN (png_check_sig); | 5562 | DEF_IMGLIB_FN (png_sig_cmp); |
| 5563 | DEF_IMGLIB_FN (png_create_read_struct); | 5563 | DEF_IMGLIB_FN (png_create_read_struct); |
| 5564 | DEF_IMGLIB_FN (png_create_info_struct); | 5564 | DEF_IMGLIB_FN (png_create_info_struct); |
| 5565 | DEF_IMGLIB_FN (png_destroy_read_struct); | 5565 | DEF_IMGLIB_FN (png_destroy_read_struct); |
| @@ -5590,7 +5590,7 @@ init_png_functions (Lisp_Object libraries) | |||
| 5590 | return 0; | 5590 | return 0; |
| 5591 | 5591 | ||
| 5592 | LOAD_IMGLIB_FN (library, png_get_io_ptr); | 5592 | LOAD_IMGLIB_FN (library, png_get_io_ptr); |
| 5593 | LOAD_IMGLIB_FN (library, png_check_sig); | 5593 | LOAD_IMGLIB_FN (library, png_sig_cmp); |
| 5594 | LOAD_IMGLIB_FN (library, png_create_read_struct); | 5594 | LOAD_IMGLIB_FN (library, png_create_read_struct); |
| 5595 | LOAD_IMGLIB_FN (library, png_create_info_struct); | 5595 | LOAD_IMGLIB_FN (library, png_create_info_struct); |
| 5596 | LOAD_IMGLIB_FN (library, png_destroy_read_struct); | 5596 | LOAD_IMGLIB_FN (library, png_destroy_read_struct); |
| @@ -5615,7 +5615,7 @@ init_png_functions (Lisp_Object libraries) | |||
| 5615 | #else | 5615 | #else |
| 5616 | 5616 | ||
| 5617 | #define fn_png_get_io_ptr png_get_io_ptr | 5617 | #define fn_png_get_io_ptr png_get_io_ptr |
| 5618 | #define fn_png_check_sig png_check_sig | 5618 | #define fn_png_sig_cmp png_sig_cmp |
| 5619 | #define fn_png_create_read_struct png_create_read_struct | 5619 | #define fn_png_create_read_struct png_create_read_struct |
| 5620 | #define fn_png_create_info_struct png_create_info_struct | 5620 | #define fn_png_create_info_struct png_create_info_struct |
| 5621 | #define fn_png_destroy_read_struct png_destroy_read_struct | 5621 | #define fn_png_destroy_read_struct png_destroy_read_struct |
| @@ -5762,7 +5762,7 @@ png_load (f, img) | |||
| 5762 | 5762 | ||
| 5763 | /* Check PNG signature. */ | 5763 | /* Check PNG signature. */ |
| 5764 | if (fread (sig, 1, sizeof sig, fp) != sizeof sig | 5764 | if (fread (sig, 1, sizeof sig, fp) != sizeof sig |
| 5765 | || !fn_png_check_sig (sig, sizeof sig)) | 5765 | || fn_png_sig_cmp (sig, 0, sizeof sig)) |
| 5766 | { | 5766 | { |
| 5767 | image_error ("Not a PNG file: `%s'", file, Qnil); | 5767 | image_error ("Not a PNG file: `%s'", file, Qnil); |
| 5768 | UNGCPRO; | 5768 | UNGCPRO; |
| @@ -5779,7 +5779,7 @@ png_load (f, img) | |||
| 5779 | 5779 | ||
| 5780 | /* Check PNG signature. */ | 5780 | /* Check PNG signature. */ |
| 5781 | if (tbr.len < sizeof sig | 5781 | if (tbr.len < sizeof sig |
| 5782 | || !fn_png_check_sig (tbr.bytes, sizeof sig)) | 5782 | || fn_png_sig_cmp (tbr.bytes, 0, sizeof sig)) |
| 5783 | { | 5783 | { |
| 5784 | image_error ("Not a PNG image: `%s'", img->spec, Qnil); | 5784 | image_error ("Not a PNG image: `%s'", img->spec, Qnil); |
| 5785 | UNGCPRO; | 5785 | UNGCPRO; |
diff --git a/src/keymap.c b/src/keymap.c index 17666c7efcc..98774d5d685 100644 --- a/src/keymap.c +++ b/src/keymap.c | |||
| @@ -2650,11 +2650,13 @@ static void where_is_internal_1 P_ ((Lisp_Object key, Lisp_Object binding, | |||
| 2650 | Lisp_Object args, void *data)); | 2650 | Lisp_Object args, void *data)); |
| 2651 | 2651 | ||
| 2652 | /* Like Flookup_key, but uses a list of keymaps SHADOW instead of a single map. | 2652 | /* Like Flookup_key, but uses a list of keymaps SHADOW instead of a single map. |
| 2653 | Returns the first non-nil binding found in any of those maps. */ | 2653 | Returns the first non-nil binding found in any of those maps. |
| 2654 | If REMAP is true, pass the result of the lookup through command | ||
| 2655 | remapping before returning it. */ | ||
| 2654 | 2656 | ||
| 2655 | static Lisp_Object | 2657 | static Lisp_Object |
| 2656 | shadow_lookup (shadow, key, flag) | 2658 | shadow_lookup (Lisp_Object shadow, Lisp_Object key, Lisp_Object flag, |
| 2657 | Lisp_Object shadow, key, flag; | 2659 | int remap) |
| 2658 | { | 2660 | { |
| 2659 | Lisp_Object tail, value; | 2661 | Lisp_Object tail, value; |
| 2660 | 2662 | ||
| @@ -2669,7 +2671,15 @@ shadow_lookup (shadow, key, flag) | |||
| 2669 | return Qnil; | 2671 | return Qnil; |
| 2670 | } | 2672 | } |
| 2671 | else if (!NILP (value)) | 2673 | else if (!NILP (value)) |
| 2672 | return value; | 2674 | { |
| 2675 | Lisp_Object remapping; | ||
| 2676 | if (remap && SYMBOLP (value) | ||
| 2677 | && (remapping = Fcommand_remapping (value, Qnil, shadow), | ||
| 2678 | !NILP (remapping))) | ||
| 2679 | return remapping; | ||
| 2680 | else | ||
| 2681 | return value; | ||
| 2682 | } | ||
| 2673 | } | 2683 | } |
| 2674 | return Qnil; | 2684 | return Qnil; |
| 2675 | } | 2685 | } |
| @@ -2860,30 +2870,30 @@ remapped command in the returned list. */) | |||
| 2860 | { | 2870 | { |
| 2861 | /* We have a list of advertized bindings. */ | 2871 | /* We have a list of advertized bindings. */ |
| 2862 | while (CONSP (tem)) | 2872 | while (CONSP (tem)) |
| 2863 | if (EQ (shadow_lookup (keymaps, XCAR (tem), Qnil), definition)) | 2873 | if (EQ (shadow_lookup (keymaps, XCAR (tem), Qnil, 0), definition)) |
| 2864 | return XCAR (tem); | 2874 | return XCAR (tem); |
| 2865 | else | 2875 | else |
| 2866 | tem = XCDR (tem); | 2876 | tem = XCDR (tem); |
| 2867 | if (EQ (shadow_lookup (keymaps, tem, Qnil), definition)) | 2877 | if (EQ (shadow_lookup (keymaps, tem, Qnil, 0), definition)) |
| 2868 | return tem; | 2878 | return tem; |
| 2869 | } | 2879 | } |
| 2870 | 2880 | ||
| 2871 | sequences = Freverse (where_is_internal (definition, keymaps, | 2881 | sequences = Freverse (where_is_internal (definition, keymaps, |
| 2872 | !NILP (noindirect), nomenus)); | 2882 | !NILP (noindirect), nomenus)); |
| 2873 | 2883 | ||
| 2874 | while (CONSP (sequences)) | 2884 | while (CONSP (sequences) |
| 2885 | /* If we're at the end of the `sequences' list and we haven't | ||
| 2886 | considered remapped sequences yet, copy them over and | ||
| 2887 | process them. */ | ||
| 2888 | || (!remapped && (sequences = remapped_sequences, | ||
| 2889 | remapped = 1), | ||
| 2890 | CONSP (sequences))) | ||
| 2875 | { | 2891 | { |
| 2876 | Lisp_Object sequence, function; | 2892 | Lisp_Object sequence, function; |
| 2877 | 2893 | ||
| 2878 | sequence = XCAR (sequences); | 2894 | sequence = XCAR (sequences); |
| 2879 | sequences = XCDR (sequences); | 2895 | sequences = XCDR (sequences); |
| 2880 | 2896 | ||
| 2881 | if (NILP (sequences) && !remapped) | ||
| 2882 | { | ||
| 2883 | sequences = remapped_sequences; | ||
| 2884 | remapped = 1; | ||
| 2885 | } | ||
| 2886 | |||
| 2887 | /* Verify that this key binding is not shadowed by another | 2897 | /* Verify that this key binding is not shadowed by another |
| 2888 | binding for the same key, before we say it exists. | 2898 | binding for the same key, before we say it exists. |
| 2889 | 2899 | ||
| @@ -2893,7 +2903,8 @@ remapped command in the returned list. */) | |||
| 2893 | 2903 | ||
| 2894 | Either nil or number as value from Flookup_key | 2904 | Either nil or number as value from Flookup_key |
| 2895 | means undefined. */ | 2905 | means undefined. */ |
| 2896 | if (!EQ (shadow_lookup (keymaps, sequence, Qnil), definition)) | 2906 | if (!EQ (shadow_lookup (keymaps, sequence, Qnil, remapped), |
| 2907 | definition)) | ||
| 2897 | continue; | 2908 | continue; |
| 2898 | 2909 | ||
| 2899 | /* If the current sequence is a command remapping with | 2910 | /* If the current sequence is a command remapping with |
| @@ -3506,7 +3517,7 @@ describe_map (map, prefix, elt_describer, partial, shadow, | |||
| 3506 | ASET (kludge, 0, event); | 3517 | ASET (kludge, 0, event); |
| 3507 | if (!NILP (shadow)) | 3518 | if (!NILP (shadow)) |
| 3508 | { | 3519 | { |
| 3509 | tem = shadow_lookup (shadow, kludge, Qt); | 3520 | tem = shadow_lookup (shadow, kludge, Qt, 0); |
| 3510 | if (!NILP (tem)) | 3521 | if (!NILP (tem)) |
| 3511 | { | 3522 | { |
| 3512 | /* If both bindings are keymaps, this key is a prefix key, | 3523 | /* If both bindings are keymaps, this key is a prefix key, |
| @@ -3776,7 +3787,7 @@ describe_vector (vector, prefix, args, elt_describer, | |||
| 3776 | { | 3787 | { |
| 3777 | Lisp_Object tem; | 3788 | Lisp_Object tem; |
| 3778 | 3789 | ||
| 3779 | tem = shadow_lookup (shadow, kludge, Qt); | 3790 | tem = shadow_lookup (shadow, kludge, Qt, 0); |
| 3780 | 3791 | ||
| 3781 | if (!NILP (tem)) | 3792 | if (!NILP (tem)) |
| 3782 | { | 3793 | { |
diff --git a/src/xfns.c b/src/xfns.c index 6f18e4e813a..905ed9c576a 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -3518,27 +3518,35 @@ This function is an internal primitive--use `make-frame' instead. */) | |||
| 3518 | window_prompting = x_figure_window_size (f, parms, 1); | 3518 | window_prompting = x_figure_window_size (f, parms, 1); |
| 3519 | 3519 | ||
| 3520 | /* Don't make height higher than display height unless the user asked | 3520 | /* Don't make height higher than display height unless the user asked |
| 3521 | for it. */ | 3521 | for it. Try sizes 24 and 10 if current is too large. */ |
| 3522 | height = FRAME_LINES (f); | 3522 | height = FRAME_LINES (f); |
| 3523 | tem = x_get_arg (dpyinfo, parms, Qheight, 0, 0, RES_TYPE_NUMBER); | 3523 | tem = x_get_arg (dpyinfo, parms, Qheight, 0, 0, RES_TYPE_NUMBER); |
| 3524 | if (EQ (tem, Qunbound)) | 3524 | if (EQ (tem, Qunbound)) |
| 3525 | { | 3525 | { |
| 3526 | int ph = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, FRAME_LINES (f)); | 3526 | int h = FRAME_LINES (f) + FRAME_TOOL_BAR_LINES (f) |
| 3527 | + FRAME_MENU_BAR_LINES (f) + 2; | ||
| 3528 | int ph = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, h); | ||
| 3527 | int dph = DisplayHeight (FRAME_X_DISPLAY (f), FRAME_X_SCREEN_NUMBER (f)); | 3529 | int dph = DisplayHeight (FRAME_X_DISPLAY (f), FRAME_X_SCREEN_NUMBER (f)); |
| 3530 | static int tryheight[] = { 24, 10, 0 } ; | ||
| 3531 | int i; | ||
| 3532 | |||
| 3533 | ph += (FRAME_EXTERNAL_TOOL_BAR (f) ? 32 : 0) /* Gtk toolbar size */ | ||
| 3534 | + (FRAME_EXTERNAL_MENU_BAR (f) ? 24 : 0); /* Arbitrary */ | ||
| 3535 | |||
| 3528 | /* Some desktops have fixed menus above and/or panels below. Try to | 3536 | /* Some desktops have fixed menus above and/or panels below. Try to |
| 3529 | figure out the usable size we have for emacs. */ | 3537 | figure out the usable size we have for emacs. */ |
| 3530 | current_desktop = x_get_current_desktop (f); | 3538 | current_desktop = x_get_current_desktop (f); |
| 3531 | x_get_desktop_workarea (f, current_desktop, &deskw, &deskh); | 3539 | x_get_desktop_workarea (f, current_desktop, &deskw, &deskh); |
| 3532 | if (deskh > 0 && deskh < dph) dph = deskh; | 3540 | if (deskh > 0 && deskh < dph) dph = deskh; |
| 3533 | 3541 | ||
| 3534 | if (ph > dph) | 3542 | /* Allow 40 pixels for manager decorations. */ |
| 3543 | for (i = 0; ph+40 > dph && tryheight[i] != 0; ++i) | ||
| 3535 | { | 3544 | { |
| 3536 | height = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, dph) - | 3545 | height = tryheight[i]; |
| 3537 | FRAME_TOOL_BAR_LINES (f) - FRAME_MENU_BAR_LINES (f); | 3546 | h = height + FRAME_TOOL_BAR_LINES (f) + FRAME_MENU_BAR_LINES (f) + 2; |
| 3538 | if (FRAME_EXTERNAL_TOOL_BAR (f)) | 3547 | ph = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, h) |
| 3539 | height -= 2; /* We can't know how big it will be. */ | 3548 | + (FRAME_EXTERNAL_TOOL_BAR (f) ? 32 : 0) |
| 3540 | if (FRAME_EXTERNAL_MENU_BAR (f)) | 3549 | + (FRAME_EXTERNAL_MENU_BAR (f) ? 24 : 0); |
| 3541 | height -= 2; /* We can't know how big it will be. */ | ||
| 3542 | } | 3550 | } |
| 3543 | } | 3551 | } |
| 3544 | 3552 | ||