diff options
| author | Paul Eggert | 2011-07-18 23:10:15 -0700 |
|---|---|---|
| committer | Paul Eggert | 2011-07-18 23:10:15 -0700 |
| commit | 7403ff044d82d390bdc4cdd3954448daedcd4571 (patch) | |
| tree | 2f5ce508e4b20d5641ebd6c86ca61bc8dab401cc | |
| parent | d3411f89d34bd1009cae738f917abf477be09882 (diff) | |
| parent | 15e3a074a6ebdcefd828a1ba14a5a12ff9921034 (diff) | |
| download | emacs-7403ff044d82d390bdc4cdd3954448daedcd4571.tar.gz emacs-7403ff044d82d390bdc4cdd3954448daedcd4571.zip | |
Merge from trunk.
| -rw-r--r-- | etc/ChangeLog | 11 | ||||
| -rw-r--r-- | etc/MH-E-NEWS | 5 | ||||
| -rw-r--r-- | etc/NEWS | 7 | ||||
| -rw-r--r-- | etc/charsets/GB180302.map | 33 | ||||
| -rw-r--r-- | etc/charsets/GB180304.map | 10 | ||||
| -rw-r--r-- | lisp/ChangeLog | 20 | ||||
| -rw-r--r-- | lisp/emacs-lisp/cl-loaddefs.el | 2 | ||||
| -rw-r--r-- | lisp/image.el | 2 | ||||
| -rw-r--r-- | lisp/mh-e/ChangeLog | 11 | ||||
| -rw-r--r-- | lisp/mh-e/mh-compat.el | 12 | ||||
| -rw-r--r-- | lisp/mh-e/mh-e.el | 4 | ||||
| -rw-r--r-- | lisp/mh-e/mh-folder.el | 8 | ||||
| -rw-r--r-- | lisp/progmodes/cc-engine.el | 8 | ||||
| -rw-r--r-- | lisp/progmodes/cc-fonts.el | 47 | ||||
| -rw-r--r-- | lisp/progmodes/cc-langs.el | 2 | ||||
| -rw-r--r-- | lisp/progmodes/etags.el | 2 | ||||
| -rw-r--r-- | src/ChangeLog | 36 | ||||
| -rw-r--r-- | src/alloc.c | 10 | ||||
| -rw-r--r-- | src/fileio.c | 35 | ||||
| -rw-r--r-- | src/gnutls.c | 12 | ||||
| -rw-r--r-- | src/lread.c | 49 | ||||
| -rw-r--r-- | src/process.h | 2 | ||||
| -rw-r--r-- | src/xdisp.c | 4 |
23 files changed, 237 insertions, 95 deletions
diff --git a/etc/ChangeLog b/etc/ChangeLog index cf856429f01..dfe4630e5bb 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog | |||
| @@ -1,3 +1,14 @@ | |||
| 1 | 2011-07-18 Andreas Schwab <schwab@linux-m68k.org> | ||
| 2 | |||
| 3 | * charsets/GB180302.map: Update to 2005 edition. | ||
| 4 | * charsets/GB180304.map: Likewise. | ||
| 5 | |||
| 6 | 2011-07-17 Bill Wohler <wohler@newt.com> | ||
| 7 | |||
| 8 | Release MH-E version 8.2.93. | ||
| 9 | |||
| 10 | * NEWS, MH-E-NEWS: Update for MH-E release 8.2.93. | ||
| 11 | |||
| 1 | 2011-07-16 Bill Wohler <wohler@newt.com> | 12 | 2011-07-16 Bill Wohler <wohler@newt.com> |
| 2 | 13 | ||
| 3 | Release MH-E version 8.2.92. | 14 | Release MH-E version 8.2.92. |
diff --git a/etc/MH-E-NEWS b/etc/MH-E-NEWS index b5b2a8b5867..e61d1d93603 100644 --- a/etc/MH-E-NEWS +++ b/etc/MH-E-NEWS | |||
| @@ -3,6 +3,11 @@ | |||
| 3 | Copyright (C) 2001-2011 Free Software Foundation, Inc. | 3 | Copyright (C) 2001-2011 Free Software Foundation, Inc. |
| 4 | See the end of the file for license conditions. | 4 | See the end of the file for license conditions. |
| 5 | 5 | ||
| 6 | * Changes in MH-E 8.2.93 | ||
| 7 | |||
| 8 | Version 8.2.93 reverts back to using `switch-to-buffer' which the | ||
| 9 | Emacs developers decided was fine to call from programs after all. | ||
| 10 | |||
| 6 | * Changes in MH-E 8.2.92 | 11 | * Changes in MH-E 8.2.92 |
| 7 | 12 | ||
| 8 | Version 8.2.92 actually corrects the error in the modeline glyph when | 13 | Version 8.2.92 actually corrects the error in the modeline glyph when |
| @@ -488,7 +488,7 @@ $ESHELL nor variable `explicit-shell-file-name' is set. | |||
| 488 | 488 | ||
| 489 | ** MH-E | 489 | ** MH-E |
| 490 | 490 | ||
| 491 | *** Upgraded to MH-E version 8.2.92. See MH-E-NEWS for details. | 491 | *** Upgraded to MH-E version 8.2.93. See MH-E-NEWS for details. |
| 492 | 492 | ||
| 493 | ** comint and modes derived from it use the generic completion code. | 493 | ** comint and modes derived from it use the generic completion code. |
| 494 | 494 | ||
| @@ -1077,6 +1077,11 @@ syntactic rules. | |||
| 1077 | ** Syntax tables support a new "comment style c" additionally to style b. | 1077 | ** Syntax tables support a new "comment style c" additionally to style b. |
| 1078 | ** frame-local variables cannot be let-bound any more. | 1078 | ** frame-local variables cannot be let-bound any more. |
| 1079 | ** prog-mode is a new major-mode meant to be the parent of programming mode. | 1079 | ** prog-mode is a new major-mode meant to be the parent of programming mode. |
| 1080 | The prog-mode-hook it defines can be used to enable features for | ||
| 1081 | programming modes. For example: | ||
| 1082 | (add-hook 'prog-mode-hook 'flyspell-prog-mode) | ||
| 1083 | enables on the fly spell checking for comments and strings for | ||
| 1084 | programming modes. | ||
| 1080 | ** define-minor-mode accepts a new keyword :variable. | 1085 | ** define-minor-mode accepts a new keyword :variable. |
| 1081 | 1086 | ||
| 1082 | ** `delete-file' and `delete-directory' now accept optional arg TRASH. | 1087 | ** `delete-file' and `delete-directory' now accept optional arg TRASH. |
diff --git a/etc/charsets/GB180302.map b/etc/charsets/GB180302.map index a001f22153f..ee7e0ecd42e 100644 --- a/etc/charsets/GB180302.map +++ b/etc/charsets/GB180302.map | |||
| @@ -2048,17 +2048,20 @@ | |||
| 2048 | 0xA6B9-0xA6C0 0xE785 | 2048 | 0xA6B9-0xA6C0 0xE785 |
| 2049 | 0xA6C1-0xA6D1 0x03B1 | 2049 | 0xA6C1-0xA6D1 0x03B1 |
| 2050 | 0xA6D2-0xA6D8 0x03C3 | 2050 | 0xA6D2-0xA6D8 0x03C3 |
| 2051 | 0xA6D9-0xA6DF 0xE78D | 2051 | 0xA6D9 0xFE10 |
| 2052 | 0xA6DA 0xFE12 | ||
| 2053 | 0xA6DB 0xFE11 | ||
| 2054 | 0xA6DC-0xA6DF 0xFE13 | ||
| 2052 | 0xA6E0-0xA6E1 0xFE35 | 2055 | 0xA6E0-0xA6E1 0xFE35 |
| 2053 | 0xA6E2-0xA6E3 0xFE39 | 2056 | 0xA6E2-0xA6E3 0xFE39 |
| 2054 | 0xA6E4-0xA6E5 0xFE3F | 2057 | 0xA6E4-0xA6E5 0xFE3F |
| 2055 | 0xA6E6-0xA6E7 0xFE3D | 2058 | 0xA6E6-0xA6E7 0xFE3D |
| 2056 | 0xA6E8-0xA6EB 0xFE41 | 2059 | 0xA6E8-0xA6EB 0xFE41 |
| 2057 | 0xA6EC-0xA6ED 0xE794 | 2060 | 0xA6EC-0xA6ED 0xFE17 |
| 2058 | 0xA6EE-0xA6EF 0xFE3B | 2061 | 0xA6EE-0xA6EF 0xFE3B |
| 2059 | 0xA6F0-0xA6F1 0xFE37 | 2062 | 0xA6F0-0xA6F1 0xFE37 |
| 2060 | 0xA6F2 0xFE31 | 2063 | 0xA6F2 0xFE31 |
| 2061 | 0xA6F3 0xE796 | 2064 | 0xA6F3 0xFE19 |
| 2062 | 0xA6F4-0xA6F5 0xFE33 | 2065 | 0xA6F4-0xA6F5 0xFE33 |
| 2063 | 0xA6F6-0xA6FE 0xE797 | 2066 | 0xA6F6-0xA6FE 0xE797 |
| 2064 | 0xA740-0xA77E 0xE706 | 2067 | 0xA740-0xA77E 0xE706 |
| @@ -2124,7 +2127,7 @@ | |||
| 2124 | 0xA8B9 0x00FC | 2127 | 0xA8B9 0x00FC |
| 2125 | 0xA8BA 0x00EA | 2128 | 0xA8BA 0x00EA |
| 2126 | 0xA8BB 0x0251 | 2129 | 0xA8BB 0x0251 |
| 2127 | 0xA8BC 0xE7C7 | 2130 | 0xA8BC 0x1E3F |
| 2128 | 0xA8BD 0x0144 | 2131 | 0xA8BD 0x0144 |
| 2129 | 0xA8BE 0x0148 | 2132 | 0xA8BE 0x0148 |
| 2130 | 0xA8BF 0x01F9 | 2133 | 0xA8BF 0x01F9 |
| @@ -10385,13 +10388,15 @@ | |||
| 10385 | 0xFE4B-0xFE4C 0xFA23 | 10388 | 0xFE4B-0xFE4C 0xFA23 |
| 10386 | 0xFE4D-0xFE4F 0xFA27 | 10389 | 0xFE4D-0xFE4F 0xFA27 |
| 10387 | 0xFE50 0x2E81 | 10390 | 0xFE50 0x2E81 |
| 10388 | 0xFE51-0xFE53 0xE816 | 10391 | 0xFE51 0x00020087 |
| 10392 | 0xFE52 0x00020089 | ||
| 10393 | 0xFE53 0x000200CC | ||
| 10389 | 0xFE54 0x2E84 | 10394 | 0xFE54 0x2E84 |
| 10390 | 0xFE55 0x3473 | 10395 | 0xFE55 0x3473 |
| 10391 | 0xFE56 0x3447 | 10396 | 0xFE56 0x3447 |
| 10392 | 0xFE57 0x2E88 | 10397 | 0xFE57 0x2E88 |
| 10393 | 0xFE58 0x2E8B | 10398 | 0xFE58 0x2E8B |
| 10394 | 0xFE59 0xE81E | 10399 | 0xFE59 0x9FB4 |
| 10395 | 0xFE5A 0x359E | 10400 | 0xFE5A 0x359E |
| 10396 | 0xFE5B 0x361A | 10401 | 0xFE5B 0x361A |
| 10397 | 0xFE5C 0x360E | 10402 | 0xFE5C 0x360E |
| @@ -10399,17 +10404,18 @@ | |||
| 10399 | 0xFE5E 0x2E97 | 10404 | 0xFE5E 0x2E97 |
| 10400 | 0xFE5F 0x396E | 10405 | 0xFE5F 0x396E |
| 10401 | 0xFE60 0x3918 | 10406 | 0xFE60 0x3918 |
| 10402 | 0xFE61 0xE826 | 10407 | 0xFE61 0x9FB5 |
| 10403 | 0xFE62 0x39CF | 10408 | 0xFE62 0x39CF |
| 10404 | 0xFE63 0x39DF | 10409 | 0xFE63 0x39DF |
| 10405 | 0xFE64 0x3A73 | 10410 | 0xFE64 0x3A73 |
| 10406 | 0xFE65 0x39D0 | 10411 | 0xFE65 0x39D0 |
| 10407 | 0xFE66-0xFE67 0xE82B | 10412 | 0xFE66-0xFE67 0x9FB6 |
| 10408 | 0xFE68 0x3B4E | 10413 | 0xFE68 0x3B4E |
| 10409 | 0xFE69 0x3C6E | 10414 | 0xFE69 0x3C6E |
| 10410 | 0xFE6A 0x3CE0 | 10415 | 0xFE6A 0x3CE0 |
| 10411 | 0xFE6B 0x2EA7 | 10416 | 0xFE6B 0x2EA7 |
| 10412 | 0xFE6C-0xFE6D 0xE831 | 10417 | 0xFE6C 0x000215D7 |
| 10418 | 0xFE6D 0x9FB8 | ||
| 10413 | 0xFE6E 0x2EAA | 10419 | 0xFE6E 0x2EAA |
| 10414 | 0xFE6F 0x4056 | 10420 | 0xFE6F 0x4056 |
| 10415 | 0xFE70 0x415F | 10421 | 0xFE70 0x415F |
| @@ -10417,7 +10423,7 @@ | |||
| 10417 | 0xFE72 0x4337 | 10423 | 0xFE72 0x4337 |
| 10418 | 0xFE73 0x2EB3 | 10424 | 0xFE73 0x2EB3 |
| 10419 | 0xFE74-0xFE75 0x2EB6 | 10425 | 0xFE74-0xFE75 0x2EB6 |
| 10420 | 0xFE76 0xE83B | 10426 | 0xFE76 0x0002298F |
| 10421 | 0xFE77 0x43B1 | 10427 | 0xFE77 0x43B1 |
| 10422 | 0xFE78 0x43AC | 10428 | 0xFE78 0x43AC |
| 10423 | 0xFE79 0x2EBB | 10429 | 0xFE79 0x2EBB |
| @@ -10425,7 +10431,7 @@ | |||
| 10425 | 0xFE7B 0x44D6 | 10431 | 0xFE7B 0x44D6 |
| 10426 | 0xFE7C 0x4661 | 10432 | 0xFE7C 0x4661 |
| 10427 | 0xFE7D 0x464C | 10433 | 0xFE7D 0x464C |
| 10428 | 0xFE7E 0xE843 | 10434 | 0xFE7E 0x9FB9 |
| 10429 | 0xFE80 0x4723 | 10435 | 0xFE80 0x4723 |
| 10430 | 0xFE81 0x4729 | 10436 | 0xFE81 0x4729 |
| 10431 | 0xFE82 0x477C | 10437 | 0xFE82 0x477C |
| @@ -10440,12 +10446,13 @@ | |||
| 10440 | 0xFE8D 0x499B | 10446 | 0xFE8D 0x499B |
| 10441 | 0xFE8E 0x49B7 | 10447 | 0xFE8E 0x49B7 |
| 10442 | 0xFE8F 0x49B6 | 10448 | 0xFE8F 0x49B6 |
| 10443 | 0xFE90-0xFE91 0xE854 | 10449 | 0xFE90 0x9FBA |
| 10450 | 0xFE91 0x000241FE | ||
| 10444 | 0xFE92 0x4CA3 | 10451 | 0xFE92 0x4CA3 |
| 10445 | 0xFE93-0xFE95 0x4C9F | 10452 | 0xFE93-0xFE95 0x4C9F |
| 10446 | 0xFE96 0x4C77 | 10453 | 0xFE96 0x4C77 |
| 10447 | 0xFE97 0x4CA2 | 10454 | 0xFE97 0x4CA2 |
| 10448 | 0xFE98-0xFE9E 0x4D13 | 10455 | 0xFE98-0xFE9E 0x4D13 |
| 10449 | 0xFE9F 0x4DAE | 10456 | 0xFE9F 0x4DAE |
| 10450 | 0xFEA0 0xE864 | 10457 | 0xFEA0 0x9FBB |
| 10451 | 0xFEA1-0xFEFE 0xE468 | 10458 | 0xFEA1-0xFEFE 0xE468 |
diff --git a/etc/charsets/GB180304.map b/etc/charsets/GB180304.map index e81eacff601..31352e266c8 100644 --- a/etc/charsets/GB180304.map +++ b/etc/charsets/GB180304.map | |||
| @@ -40,7 +40,8 @@ | |||
| 40 | 0x8130CC30-0x8130D134 0x03CA | 40 | 0x8130CC30-0x8130D134 0x03CA |
| 41 | 0x8130D135-0x8130D238 0x0402 | 41 | 0x8130D135-0x8130D238 0x0402 |
| 42 | 0x8130D239 0x0450 | 42 | 0x8130D239 0x0450 |
| 43 | 0x8130D330-0x8136A531 0x0452 | 43 | 0x8130D330-0x8135F436 0x0452 |
| 44 | 0x8135F438-0x8136A531 0x1E40 | ||
| 44 | 0x8136A532-0x8136A533 0x2011 | 45 | 0x8136A532-0x8136A533 0x2011 |
| 45 | 0x8136A534 0x2017 | 46 | 0x8136A534 0x2017 |
| 46 | 0x8136A535-0x8136A536 0x201A | 47 | 0x8136A535-0x8136A536 0x201A |
| @@ -171,8 +172,10 @@ | |||
| 171 | 0x8234EB33-0x8234F633 0x4CA4 | 172 | 0x8234EB33-0x8234F633 0x4CA4 |
| 172 | 0x8234F634-0x82358731 0x4D1A | 173 | 0x8234F634-0x82358731 0x4D1A |
| 173 | 0x82358732-0x82358F32 0x4DAF | 174 | 0x82358732-0x82358F32 0x4DAF |
| 174 | 0x82358F33-0x8336C738 0x9FA6 | 175 | 0x82358F33-0x82359036 0x9FA6 |
| 176 | 0x82359135-0x8336C738 0x9FBC | ||
| 175 | 0x8336C739 0xE76C | 177 | 0x8336C739 0xE76C |
| 178 | 0x8135F437 0xE7C7 | ||
| 176 | 0x8336C830 0xE7C8 | 179 | 0x8336C830 0xE7C8 |
| 177 | 0x8336C831-0x8336C933 0xE7E7 | 180 | 0x8336C831-0x8336C933 0xE7E7 |
| 178 | 0x8336C934 0xE815 | 181 | 0x8336C934 0xE815 |
| @@ -196,7 +199,8 @@ | |||
| 196 | 0x84309B39-0x84309C34 0xFA19 | 199 | 0x84309B39-0x84309C34 0xFA19 |
| 197 | 0x84309C35 0xFA22 | 200 | 0x84309C35 0xFA22 |
| 198 | 0x84309C36-0x84309C37 0xFA25 | 201 | 0x84309C36-0x84309C37 0xFA25 |
| 199 | 0x84309C38-0x84318537 0xFA2A | 202 | 0x84309C38-0x84318235 0xFA2A |
| 203 | 0x84318336-0x84318537 0xFE1A | ||
| 200 | 0x84318538 0xFE32 | 204 | 0x84318538 0xFE32 |
| 201 | 0x84318539-0x84318632 0xFE45 | 205 | 0x84318539-0x84318632 0xFE45 |
| 202 | 0x84318633 0xFE53 | 206 | 0x84318633 0xFE53 |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ae54b3733f6..0ea3d94a01f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,5 +1,25 @@ | |||
| 1 | 2011-07-18 Alan Mackenzie <acm@muc.de> | ||
| 2 | |||
| 3 | Fontify declarators properly when, e.g., a jit-lock chunk begins | ||
| 4 | inside a declaration. | ||
| 5 | |||
| 6 | * progmodes/cc-langs.el (c-symbol-chars): Correct a typo. | ||
| 7 | |||
| 8 | * progmodes/cc-fonts.el (c-font-lock-enclosing-decls): New | ||
| 9 | function. | ||
| 10 | (c-complex-decl-matchers): Insert reference to | ||
| 11 | c-font-lock-enclosing-decls. | ||
| 12 | |||
| 13 | * progmodes/cc-engine.el (c-backward-single-comment): | ||
| 14 | (c-backward-comments): Bind open-paren-in-column-0-is-defun-start | ||
| 15 | to nil around calls to (forward-comment -1). | ||
| 16 | |||
| 1 | 2011-07-17 Lars Magne Ingebrigtsen <larsi@gnus.org> | 17 | 2011-07-17 Lars Magne Ingebrigtsen <larsi@gnus.org> |
| 2 | 18 | ||
| 19 | * image.el (put-image): Doc typo fix. | ||
| 20 | |||
| 21 | * progmodes/etags.el (tags-search): Doc typo fix. | ||
| 22 | |||
| 3 | * mail/smtpmail.el (smtpmail-via-smtp): Query the user for | 23 | * mail/smtpmail.el (smtpmail-via-smtp): Query the user for |
| 4 | password if we get errors 550 to 554. | 24 | password if we get errors 550 to 554. |
| 5 | 25 | ||
diff --git a/lisp/emacs-lisp/cl-loaddefs.el b/lisp/emacs-lisp/cl-loaddefs.el index f0c72a0b269..270211f6a78 100644 --- a/lisp/emacs-lisp/cl-loaddefs.el +++ b/lisp/emacs-lisp/cl-loaddefs.el | |||
| @@ -282,7 +282,7 @@ Not documented | |||
| 282 | ;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist | 282 | ;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist |
| 283 | ;;;;;; do* do loop return-from return block etypecase typecase ecase | 283 | ;;;;;; do* do loop return-from return block etypecase typecase ecase |
| 284 | ;;;;;; case load-time-value eval-when destructuring-bind function* | 284 | ;;;;;; case load-time-value eval-when destructuring-bind function* |
| 285 | ;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "2261724608e3223036b863d214f7dc0c") | 285 | ;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "9452c0e16fd960fce5c19e5c067a7160") |
| 286 | ;;; Generated autoloads from cl-macs.el | 286 | ;;; Generated autoloads from cl-macs.el |
| 287 | 287 | ||
| 288 | (autoload 'gensym "cl-macs" "\ | 288 | (autoload 'gensym "cl-macs" "\ |
diff --git a/lisp/image.el b/lisp/image.el index b67367ad436..c6862622639 100644 --- a/lisp/image.el +++ b/lisp/image.el | |||
| @@ -389,7 +389,7 @@ IMAGE must be an image created with `create-image' or `defimage'. | |||
| 389 | IMAGE is displayed by putting an overlay into the current buffer with a | 389 | IMAGE is displayed by putting an overlay into the current buffer with a |
| 390 | `before-string' STRING that has a `display' property whose value is the | 390 | `before-string' STRING that has a `display' property whose value is the |
| 391 | image. STRING is defaulted if you omit it. | 391 | image. STRING is defaulted if you omit it. |
| 392 | The overlay created will have the `put-overlay' property set to t. | 392 | The overlay created will have the `put-image' property set to t. |
| 393 | POS may be an integer or marker. | 393 | POS may be an integer or marker. |
| 394 | AREA is where to display the image. AREA nil or omitted means | 394 | AREA is where to display the image. AREA nil or omitted means |
| 395 | display it in the text area, a value of `left-margin' means | 395 | display it in the text area, a value of `left-margin' means |
diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog index 431c15b2346..731aaf25f3d 100644 --- a/lisp/mh-e/ChangeLog +++ b/lisp/mh-e/ChangeLog | |||
| @@ -1,3 +1,14 @@ | |||
| 1 | 2011-07-17 Bill Wohler <wohler@newt.com> | ||
| 2 | |||
| 3 | Release MH-E version 8.2.93. | ||
| 4 | |||
| 5 | * mh-e.el (Version, mh-version): Update for release 8.2.93. | ||
| 6 | |||
| 7 | * mh-compat.el (mh-pop-to-buffer-same-window): Delete. | ||
| 8 | * mh-folder.el (mh-inc-folder, mh-modify, mh-scan-folder) | ||
| 9 | (mh-make-folder): Revert to switch-to-buffer, as the Emacs folks | ||
| 10 | decided that it was fine to use it in programs. | ||
| 11 | |||
| 1 | 2011-07-16 Bill Wohler <wohler@newt.com> | 12 | 2011-07-16 Bill Wohler <wohler@newt.com> |
| 2 | 13 | ||
| 3 | Release MH-E version 8.2.92. | 14 | Release MH-E version 8.2.92. |
diff --git a/lisp/mh-e/mh-compat.el b/lisp/mh-e/mh-compat.el index 16dfe05b094..07c558f60cc 100644 --- a/lisp/mh-e/mh-compat.el +++ b/lisp/mh-e/mh-compat.el | |||
| @@ -251,18 +251,6 @@ The argument STRING is ignored." | |||
| 251 | (buffer-substring-no-properties | 251 | (buffer-substring-no-properties |
| 252 | (match-beginning num) (match-end num))) | 252 | (match-beginning num) (match-end num))) |
| 253 | 253 | ||
| 254 | (defun-mh mh-pop-to-buffer-same-window | ||
| 255 | pop-to-buffer-same-window (&optional buffer-or-name norecord label) | ||
| 256 | "Pop to buffer specified by BUFFER-OR-NAME in the selected window. | ||
| 257 | Another window will be used only if the buffer can't be shown in | ||
| 258 | the selected window, usually because it is dedicated to another | ||
| 259 | buffer. Optional arguments BUFFER-OR-NAME, NORECORD and LABEL are | ||
| 260 | as for `pop-to-buffer'. This macro is used by Emacs versions that | ||
| 261 | lack the `pop-to-buffer-same-window' function, introduced in | ||
| 262 | Emacs 24. The function `switch-to-buffer' is used instead and | ||
| 263 | LABEL is ignored." | ||
| 264 | (switch-to-buffer buffer-or-name norecord)) | ||
| 265 | |||
| 266 | (defun-mh mh-replace-regexp-in-string replace-regexp-in-string | 254 | (defun-mh mh-replace-regexp-in-string replace-regexp-in-string |
| 267 | (regexp rep string &optional fixedcase literal subexp start) | 255 | (regexp rep string &optional fixedcase literal subexp start) |
| 268 | "Replace REGEXP with REP everywhere in STRING and return result. | 256 | "Replace REGEXP with REP everywhere in STRING and return result. |
diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el index 1e7b07eb6dc..5562a310f29 100644 --- a/lisp/mh-e/mh-e.el +++ b/lisp/mh-e/mh-e.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | 5 | ||
| 6 | ;; Author: Bill Wohler <wohler@newt.com> | 6 | ;; Author: Bill Wohler <wohler@newt.com> |
| 7 | ;; Maintainer: Bill Wohler <wohler@newt.com> | 7 | ;; Maintainer: Bill Wohler <wohler@newt.com> |
| 8 | ;; Version: 8.2.92 | 8 | ;; Version: 8.2.93 |
| 9 | ;; Keywords: mail | 9 | ;; Keywords: mail |
| 10 | 10 | ||
| 11 | ;; This file is part of GNU Emacs. | 11 | ;; This file is part of GNU Emacs. |
| @@ -127,7 +127,7 @@ | |||
| 127 | ;; Try to keep variables local to a single file. Provide accessors if | 127 | ;; Try to keep variables local to a single file. Provide accessors if |
| 128 | ;; variables are shared. Use this section as a last resort. | 128 | ;; variables are shared. Use this section as a last resort. |
| 129 | 129 | ||
| 130 | (defconst mh-version "8.2.92" "Version number of MH-E.") | 130 | (defconst mh-version "8.2.93" "Version number of MH-E.") |
| 131 | 131 | ||
| 132 | ;; Variants | 132 | ;; Variants |
| 133 | 133 | ||
diff --git a/lisp/mh-e/mh-folder.el b/lisp/mh-e/mh-folder.el index 1d9a79d0deb..40febd641de 100644 --- a/lisp/mh-e/mh-folder.el +++ b/lisp/mh-e/mh-folder.el | |||
| @@ -795,7 +795,7 @@ instead." | |||
| 795 | (setq threading-needed-flag mh-show-threads-flag) | 795 | (setq threading-needed-flag mh-show-threads-flag) |
| 796 | (setq mh-previous-window-config config)) | 796 | (setq mh-previous-window-config config)) |
| 797 | ((not (eq (current-buffer) (get-buffer folder))) | 797 | ((not (eq (current-buffer) (get-buffer folder))) |
| 798 | (mh-pop-to-buffer-same-window folder) | 798 | (switch-to-buffer folder) |
| 799 | (setq mh-previous-window-config config)))) | 799 | (setq mh-previous-window-config config)))) |
| 800 | (mh-get-new-mail file) | 800 | (mh-get-new-mail file) |
| 801 | (when (and threading-needed-flag | 801 | (when (and threading-needed-flag |
| @@ -855,7 +855,7 @@ From a program, edit MESSAGE; nil means edit current message." | |||
| 855 | 855 | ||
| 856 | ;; Just show the edit buffer... | 856 | ;; Just show the edit buffer... |
| 857 | (delete-other-windows) | 857 | (delete-other-windows) |
| 858 | (mh-pop-to-buffer-same-window edit-buffer))) | 858 | (switch-to-buffer edit-buffer))) |
| 859 | 859 | ||
| 860 | ;;;###mh-autoload | 860 | ;;;###mh-autoload |
| 861 | (defun mh-next-button (&optional backward-flag) | 861 | (defun mh-next-button (&optional backward-flag) |
| @@ -1705,7 +1705,7 @@ DONT-EXEC-PENDING is non-nil." | |||
| 1705 | (unless dont-exec-pending | 1705 | (unless dont-exec-pending |
| 1706 | (mh-process-or-undo-commands folder) | 1706 | (mh-process-or-undo-commands folder) |
| 1707 | (mh-reset-threads-and-narrowing)) | 1707 | (mh-reset-threads-and-narrowing)) |
| 1708 | (mh-pop-to-buffer-same-window folder))) | 1708 | (switch-to-buffer folder))) |
| 1709 | (mh-regenerate-headers range) | 1709 | (mh-regenerate-headers range) |
| 1710 | (if (zerop (buffer-size)) | 1710 | (if (zerop (buffer-size)) |
| 1711 | (if (equal range "all") | 1711 | (if (equal range "all") |
| @@ -1786,7 +1786,7 @@ Also removes all content from the folder buffer." | |||
| 1786 | (defun mh-make-folder (name) | 1786 | (defun mh-make-folder (name) |
| 1787 | "Create a new mail folder called NAME. | 1787 | "Create a new mail folder called NAME. |
| 1788 | Make it the current folder." | 1788 | Make it the current folder." |
| 1789 | (mh-pop-to-buffer-same-window name) | 1789 | (switch-to-buffer name) |
| 1790 | (setq buffer-read-only nil) | 1790 | (setq buffer-read-only nil) |
| 1791 | (erase-buffer) | 1791 | (erase-buffer) |
| 1792 | (if mh-adaptive-cmd-note-flag | 1792 | (if mh-adaptive-cmd-note-flag |
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index 38f66b4504e..a6fd28be21d 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el | |||
| @@ -1301,12 +1301,13 @@ This function does not do any hidden buffer changes." | |||
| 1301 | ;; same line. | 1301 | ;; same line. |
| 1302 | (re-search-forward "\\=\\s *[\n\r]" start t) | 1302 | (re-search-forward "\\=\\s *[\n\r]" start t) |
| 1303 | 1303 | ||
| 1304 | (if (if (forward-comment -1) | 1304 | (if (if (let (open-paren-in-column-0-is-defun-start) (forward-comment -1)) |
| 1305 | (if (eolp) | 1305 | (if (eolp) |
| 1306 | ;; If forward-comment above succeeded and we're at eol | 1306 | ;; If forward-comment above succeeded and we're at eol |
| 1307 | ;; then the newline we moved over above didn't end a | 1307 | ;; then the newline we moved over above didn't end a |
| 1308 | ;; line comment, so we give it another go. | 1308 | ;; line comment, so we give it another go. |
| 1309 | (forward-comment -1) | 1309 | (let (open-paren-in-column-0-is-defun-start) |
| 1310 | (forward-comment -1)) | ||
| 1310 | t)) | 1311 | t)) |
| 1311 | 1312 | ||
| 1312 | ;; Emacs <= 20 and XEmacs move back over the closer of a | 1313 | ;; Emacs <= 20 and XEmacs move back over the closer of a |
| @@ -1333,7 +1334,8 @@ comment at the start of cc-engine.el for more info." | |||
| 1333 | ;; return t when moving backwards at bob. | 1334 | ;; return t when moving backwards at bob. |
| 1334 | (not (bobp)) | 1335 | (not (bobp)) |
| 1335 | 1336 | ||
| 1336 | (if (forward-comment -1) | 1337 | (if (let (open-paren-in-column-0-is-defun-start) |
| 1338 | (forward-comment -1)) | ||
| 1337 | (if (looking-at "\\*/") | 1339 | (if (looking-at "\\*/") |
| 1338 | ;; Emacs <= 20 and XEmacs move back over the | 1340 | ;; Emacs <= 20 and XEmacs move back over the |
| 1339 | ;; closer of a block comment that lacks an opener. | 1341 | ;; closer of a block comment that lacks an opener. |
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el index 600bbc76e9a..0500d48ddbc 100644 --- a/lisp/progmodes/cc-fonts.el +++ b/lisp/progmodes/cc-fonts.el | |||
| @@ -1346,6 +1346,50 @@ casts and declarations are fontified. Used on level 2 and higher." | |||
| 1346 | (c-font-lock-declarators limit t nil))) | 1346 | (c-font-lock-declarators limit t nil))) |
| 1347 | nil) | 1347 | nil) |
| 1348 | 1348 | ||
| 1349 | (defun c-font-lock-enclosing-decls (limit) | ||
| 1350 | ;; Fontify the declarators of (nested) declarations we're in the middle of. | ||
| 1351 | ;; This is mainly for when a jit-lock etc. chunk starts inside the brace | ||
| 1352 | ;; block of a struct/union/class, etc. | ||
| 1353 | ;; | ||
| 1354 | ;; This function will be called from font-lock for a region bounded by POINT | ||
| 1355 | ;; and LIMIT, as though it were to identify a keyword for | ||
| 1356 | ;; font-lock-keyword-face. It always returns NIL to inhibit this and | ||
| 1357 | ;; prevent a repeat invocation. See elisp/lispref page "Search-based | ||
| 1358 | ;; Fontification". | ||
| 1359 | (let* ((paren-state (c-parse-state)) | ||
| 1360 | (start (point)) | ||
| 1361 | decl-context bo-decl in-typedef type-type ps-elt) | ||
| 1362 | |||
| 1363 | ;; First, are we actually in a "local" declaration? | ||
| 1364 | (setq decl-context (c-beginning-of-decl-1) | ||
| 1365 | bo-decl (point) | ||
| 1366 | in-typedef (looking-at c-typedef-key)) | ||
| 1367 | (if in-typedef (c-forward-token-2)) | ||
| 1368 | (when (and (eq (car decl-context) 'same) | ||
| 1369 | (< bo-decl start)) | ||
| 1370 | ;; Are we genuinely at a type? | ||
| 1371 | (setq type-type (c-forward-type t)) | ||
| 1372 | (if (and type-type | ||
| 1373 | (or (not (eq type-type 'maybe)) | ||
| 1374 | (looking-at c-symbol-key))) | ||
| 1375 | (c-font-lock-declarators limit t in-typedef))) | ||
| 1376 | |||
| 1377 | ;; Secondly, are we in any nested struct/union/class/etc. braces? | ||
| 1378 | (while paren-state | ||
| 1379 | (setq ps-elt (car paren-state) | ||
| 1380 | paren-state (cdr paren-state)) | ||
| 1381 | (when (and (atom ps-elt) | ||
| 1382 | (eq (char-after ps-elt) ?\{)) | ||
| 1383 | (goto-char ps-elt) | ||
| 1384 | (setq decl-context (c-beginning-of-decl-1) | ||
| 1385 | in-typedef (looking-at c-typedef-key)) | ||
| 1386 | (if in-typedef (c-forward-token-2)) | ||
| 1387 | (when (looking-at c-opt-block-decls-with-vars-key) | ||
| 1388 | (goto-char ps-elt) | ||
| 1389 | (when (c-safe (c-forward-sexp)) | ||
| 1390 | (c-forward-syntactic-ws) | ||
| 1391 | (c-font-lock-declarators limit t in-typedef))))))) | ||
| 1392 | |||
| 1349 | (c-lang-defconst c-simple-decl-matchers | 1393 | (c-lang-defconst c-simple-decl-matchers |
| 1350 | "Simple font lock matchers for types and declarations. These are used | 1394 | "Simple font lock matchers for types and declarations. These are used |
| 1351 | on level 2 only and so aren't combined with `c-complex-decl-matchers'." | 1395 | on level 2 only and so aren't combined with `c-complex-decl-matchers'." |
| @@ -1452,6 +1496,9 @@ on level 2 only and so aren't combined with `c-complex-decl-matchers'." | |||
| 1452 | ;; Fontify all declarations, casts and normal labels. | 1496 | ;; Fontify all declarations, casts and normal labels. |
| 1453 | c-font-lock-declarations | 1497 | c-font-lock-declarations |
| 1454 | 1498 | ||
| 1499 | ;; Fontify declarators when POINT is within their declaration. | ||
| 1500 | c-font-lock-enclosing-decls | ||
| 1501 | |||
| 1455 | ;; Fontify angle bracket arglists like templates in C++. | 1502 | ;; Fontify angle bracket arglists like templates in C++. |
| 1456 | ,@(when (c-lang-const c-recognize-<>-arglists) | 1503 | ,@(when (c-lang-const c-recognize-<>-arglists) |
| 1457 | `(c-font-lock-<>-arglists)) | 1504 | `(c-font-lock-<>-arglists)) |
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el index a6459e1724f..9ce23a080d6 100644 --- a/lisp/progmodes/cc-langs.el +++ b/lisp/progmodes/cc-langs.el | |||
| @@ -523,7 +523,7 @@ operator at the top level." | |||
| 523 | 523 | ||
| 524 | (c-lang-defconst c-symbol-chars | 524 | (c-lang-defconst c-symbol-chars |
| 525 | "Set of characters that can be part of a symbol. | 525 | "Set of characters that can be part of a symbol. |
| 526 | This is on the form that fits inside [ ] in a regexp." | 526 | This is of the form that fits inside [ ] in a regexp." |
| 527 | ;; Pike note: With the backquote identifiers this would include most | 527 | ;; Pike note: With the backquote identifiers this would include most |
| 528 | ;; operator chars too, but they are handled with other means instead. | 528 | ;; operator chars too, but they are handled with other means instead. |
| 529 | t (concat c-alnum "_$") | 529 | t (concat c-alnum "_$") |
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index 385adf1af0a..da073ceb258 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el | |||
| @@ -1860,7 +1860,7 @@ nil, we exit; otherwise we scan the next file." | |||
| 1860 | Stops when a match is found. | 1860 | Stops when a match is found. |
| 1861 | To continue searching for next match, use command \\[tags-loop-continue]. | 1861 | To continue searching for next match, use command \\[tags-loop-continue]. |
| 1862 | 1862 | ||
| 1863 | If `file-list-form' is non-nil, it should be a form that, when | 1863 | If FILE-LIST-FORM is non-nil, it should be a form that, when |
| 1864 | evaluated, will return a list of file names. The search will be | 1864 | evaluated, will return a list of file names. The search will be |
| 1865 | restricted to these files. | 1865 | restricted to these files. |
| 1866 | 1866 | ||
diff --git a/src/ChangeLog b/src/ChangeLog index cf75596f422..f7f68b41838 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -29,8 +29,6 @@ | |||
| 29 | now that we have two such functions. All uses changed. | 29 | now that we have two such functions. All uses changed. |
| 30 | (sanitize_char_width): New inline function. | 30 | (sanitize_char_width): New inline function. |
| 31 | 31 | ||
| 32 | 2011-07-18 Paul Eggert <eggert@cs.ucla.edu> | ||
| 33 | |||
| 34 | Don't assume that tab-width fits in int. | 32 | Don't assume that tab-width fits in int. |
| 35 | * character.h (sanitize_width): New inline function. | 33 | * character.h (sanitize_width): New inline function. |
| 36 | (SANE_TAB_WIDTH): New macro. | 34 | (SANE_TAB_WIDTH): New macro. |
| @@ -46,8 +44,6 @@ | |||
| 46 | Remove unreachable code. | 44 | Remove unreachable code. |
| 47 | (read_hex, load_charset_map_from_file): Check for integer overflow. | 45 | (read_hex, load_charset_map_from_file): Check for integer overflow. |
| 48 | 46 | ||
| 49 | 2011-07-17 Paul Eggert <eggert@cs.ucla.edu> | ||
| 50 | |||
| 51 | * xterm.c: don't go over XClientMessageEvent limit | 47 | * xterm.c: don't go over XClientMessageEvent limit |
| 52 | (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed. | 48 | (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed. |
| 53 | (x_send_scroll_bar_event): Likewise. Check that the size does not | 49 | (x_send_scroll_bar_event): Likewise. Check that the size does not |
| @@ -110,8 +106,6 @@ | |||
| 110 | (gs_load): Use printmax_t to print the widest integers possible. | 106 | (gs_load): Use printmax_t to print the widest integers possible. |
| 111 | Check for integer overflow when computing image height and width. | 107 | Check for integer overflow when computing image height and width. |
| 112 | 108 | ||
| 113 | 2011-07-17 Paul Eggert <eggert@cs.ucla.edu> | ||
| 114 | |||
| 115 | Integer signedness and overflow and related fixes. (Bug#9079) | 109 | Integer signedness and overflow and related fixes. (Bug#9079) |
| 116 | 110 | ||
| 117 | * bidi.c: Integer size and overflow fixes. | 111 | * bidi.c: Integer size and overflow fixes. |
| @@ -309,6 +303,36 @@ | |||
| 309 | Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally | 303 | Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally |
| 310 | well either way, and we prefer signed to unsigned. | 304 | well either way, and we prefer signed to unsigned. |
| 311 | 305 | ||
| 306 | 2011-07-18 Paul Eggert <eggert@cs.ucla.edu> | ||
| 307 | |||
| 308 | * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask. | ||
| 309 | This fixes some race conditions on the permissions of any newly | ||
| 310 | created file. | ||
| 311 | |||
| 312 | * alloc.c (valid_pointer_p): Use pipe, not open. | ||
| 313 | This fixes some permissions issues when debugging. | ||
| 314 | |||
| 315 | * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002) | ||
| 316 | If fchown fails to set both uid and gid, try to set just gid, | ||
| 317 | as that is sometimes allowed. Adjust the file's mode to eliminate | ||
| 318 | setuid or setgid bits that are inappropriate if fchown fails. | ||
| 319 | |||
| 320 | 2011-07-18 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 321 | |||
| 322 | * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ | ||
| 323 | to compare Lisp_Objects. | ||
| 324 | * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to | ||
| 325 | global_gnutls_log_level, don't mistake it for a Lisp_Object. | ||
| 326 | (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses. | ||
| 327 | |||
| 328 | 2011-07-17 Andreas Schwab <schwab@linux-m68k.org> | ||
| 329 | |||
| 330 | * lread.c (read_integer): Unread even EOF character. | ||
| 331 | (read1): Likewise. Properly record start position of symbol. | ||
| 332 | |||
| 333 | * lread.c (read1): Read `#:' as empty uninterned symbol if no | ||
| 334 | symbol character follows. | ||
| 335 | |||
| 312 | 2011-07-17 Paul Eggert <eggert@cs.ucla.edu> | 336 | 2011-07-17 Paul Eggert <eggert@cs.ucla.edu> |
| 313 | 337 | ||
| 314 | * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002) | 338 | * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002) |
diff --git a/src/alloc.c b/src/alloc.c index 5848e797b4b..eb0185a8e35 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -4430,18 +4430,18 @@ valid_pointer_p (void *p) | |||
| 4430 | #ifdef WINDOWSNT | 4430 | #ifdef WINDOWSNT |
| 4431 | return w32_valid_pointer_p (p, 16); | 4431 | return w32_valid_pointer_p (p, 16); |
| 4432 | #else | 4432 | #else |
| 4433 | int fd; | 4433 | int fd[2]; |
| 4434 | 4434 | ||
| 4435 | /* Obviously, we cannot just access it (we would SEGV trying), so we | 4435 | /* Obviously, we cannot just access it (we would SEGV trying), so we |
| 4436 | trick the o/s to tell us whether p is a valid pointer. | 4436 | trick the o/s to tell us whether p is a valid pointer. |
| 4437 | Unfortunately, we cannot use NULL_DEVICE here, as emacs_write may | 4437 | Unfortunately, we cannot use NULL_DEVICE here, as emacs_write may |
| 4438 | not validate p in that case. */ | 4438 | not validate p in that case. */ |
| 4439 | 4439 | ||
| 4440 | if ((fd = emacs_open ("__Valid__Lisp__Object__", O_CREAT | O_WRONLY | O_TRUNC, 0666)) >= 0) | 4440 | if (pipe (fd) == 0) |
| 4441 | { | 4441 | { |
| 4442 | int valid = (emacs_write (fd, (char *)p, 16) == 16); | 4442 | int valid = (emacs_write (fd[1], (char *) p, 16) == 16); |
| 4443 | emacs_close (fd); | 4443 | emacs_close (fd[1]); |
| 4444 | unlink ("__Valid__Lisp__Object__"); | 4444 | emacs_close (fd[0]); |
| 4445 | return valid; | 4445 | return valid; |
| 4446 | } | 4446 | } |
| 4447 | 4447 | ||
diff --git a/src/fileio.c b/src/fileio.c index af11e927059..60ee35bb399 100644 --- a/src/fileio.c +++ b/src/fileio.c | |||
| @@ -38,8 +38,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 38 | #include <selinux/context.h> | 38 | #include <selinux/context.h> |
| 39 | #endif | 39 | #endif |
| 40 | 40 | ||
| 41 | #include <ignore-value.h> | ||
| 42 | |||
| 43 | #include "lisp.h" | 41 | #include "lisp.h" |
| 44 | #include "intervals.h" | 42 | #include "intervals.h" |
| 45 | #include "buffer.h" | 43 | #include "buffer.h" |
| @@ -1939,10 +1937,19 @@ on the system, we copy the SELinux context of FILE to NEWNAME. */) | |||
| 1939 | | (NILP (ok_if_already_exists) ? O_EXCL : 0), | 1937 | | (NILP (ok_if_already_exists) ? O_EXCL : 0), |
| 1940 | S_IREAD | S_IWRITE); | 1938 | S_IREAD | S_IWRITE); |
| 1941 | #else /* not MSDOS */ | 1939 | #else /* not MSDOS */ |
| 1942 | ofd = emacs_open (SSDATA (encoded_newname), | 1940 | { |
| 1943 | O_WRONLY | O_TRUNC | O_CREAT | 1941 | int new_mask = 0666; |
| 1944 | | (NILP (ok_if_already_exists) ? O_EXCL : 0), | 1942 | if (input_file_statable_p) |
| 1945 | 0666); | 1943 | { |
| 1944 | if (!NILP (preserve_uid_gid)) | ||
| 1945 | new_mask = 0600; | ||
| 1946 | new_mask &= st.st_mode; | ||
| 1947 | } | ||
| 1948 | ofd = emacs_open (SSDATA (encoded_newname), | ||
| 1949 | (O_WRONLY | O_TRUNC | O_CREAT | ||
| 1950 | | (NILP (ok_if_already_exists) ? O_EXCL : 0)), | ||
| 1951 | new_mask); | ||
| 1952 | } | ||
| 1946 | #endif /* not MSDOS */ | 1953 | #endif /* not MSDOS */ |
| 1947 | if (ofd < 0) | 1954 | if (ofd < 0) |
| 1948 | report_file_error ("Opening output file", Fcons (newname, Qnil)); | 1955 | report_file_error ("Opening output file", Fcons (newname, Qnil)); |
| @@ -1961,9 +1968,21 @@ on the system, we copy the SELinux context of FILE to NEWNAME. */) | |||
| 1961 | owner and group. */ | 1968 | owner and group. */ |
| 1962 | if (input_file_statable_p) | 1969 | if (input_file_statable_p) |
| 1963 | { | 1970 | { |
| 1971 | int mode_mask = 07777; | ||
| 1964 | if (!NILP (preserve_uid_gid)) | 1972 | if (!NILP (preserve_uid_gid)) |
| 1965 | ignore_value (fchown (ofd, st.st_uid, st.st_gid)); | 1973 | { |
| 1966 | if (fchmod (ofd, st.st_mode & 07777) != 0) | 1974 | /* Attempt to change owner and group. If that doesn't work |
| 1975 | attempt to change just the group, as that is sometimes allowed. | ||
| 1976 | Adjust the mode mask to eliminate setuid or setgid bits | ||
| 1977 | that are inappropriate if the owner and group are wrong. */ | ||
| 1978 | if (fchown (ofd, st.st_uid, st.st_gid) != 0) | ||
| 1979 | { | ||
| 1980 | mode_mask &= ~06000; | ||
| 1981 | if (fchown (ofd, -1, st.st_gid) == 0) | ||
| 1982 | mode_mask |= 02000; | ||
| 1983 | } | ||
| 1984 | } | ||
| 1985 | if (fchmod (ofd, st.st_mode & mode_mask) != 0) | ||
| 1967 | report_file_error ("Doing chmod", Fcons (newname, Qnil)); | 1986 | report_file_error ("Doing chmod", Fcons (newname, Qnil)); |
| 1968 | } | 1987 | } |
| 1969 | #endif /* not MSDOS */ | 1988 | #endif /* not MSDOS */ |
diff --git a/src/gnutls.c b/src/gnutls.c index 52e80a69ae5..3175f55041d 100644 --- a/src/gnutls.c +++ b/src/gnutls.c | |||
| @@ -193,8 +193,7 @@ init_gnutls_functions (Lisp_Object libraries) | |||
| 193 | LOAD_GNUTLS_FN (library, gnutls_x509_crt_import); | 193 | LOAD_GNUTLS_FN (library, gnutls_x509_crt_import); |
| 194 | LOAD_GNUTLS_FN (library, gnutls_x509_crt_init); | 194 | LOAD_GNUTLS_FN (library, gnutls_x509_crt_init); |
| 195 | 195 | ||
| 196 | if (NUMBERP (Vgnutls_log_level)) | 196 | max_log_level = global_gnutls_log_level; |
| 197 | max_log_level = XINT (Vgnutls_log_level); | ||
| 198 | 197 | ||
| 199 | GNUTLS_LOG2 (1, max_log_level, "GnuTLS library loaded:", | 198 | GNUTLS_LOG2 (1, max_log_level, "GnuTLS library loaded:", |
| 200 | SDATA (Fget (Qgnutls_dll, QCloaded_from))); | 199 | SDATA (Fget (Qgnutls_dll, QCloaded_from))); |
| @@ -406,8 +405,7 @@ emacs_gnutls_handle_error (gnutls_session_t session, int err) | |||
| 406 | if (err >= 0) | 405 | if (err >= 0) |
| 407 | return 0; | 406 | return 0; |
| 408 | 407 | ||
| 409 | if (NUMBERP (Vgnutls_log_level)) | 408 | max_log_level = global_gnutls_log_level; |
| 410 | max_log_level = XINT (Vgnutls_log_level); | ||
| 411 | 409 | ||
| 412 | /* TODO: use gnutls-error-fatalp and gnutls-error-string. */ | 410 | /* TODO: use gnutls-error-fatalp and gnutls-error-string. */ |
| 413 | 411 | ||
| @@ -1155,9 +1153,9 @@ syms_of_gnutls (void) | |||
| 1155 | defsubr (&Sgnutls_bye); | 1153 | defsubr (&Sgnutls_bye); |
| 1156 | defsubr (&Sgnutls_available_p); | 1154 | defsubr (&Sgnutls_available_p); |
| 1157 | 1155 | ||
| 1158 | DEFVAR_INT ("gnutls-log-level", Vgnutls_log_level, | 1156 | DEFVAR_INT ("gnutls-log-level", global_gnutls_log_level, |
| 1159 | doc: /* Logging level used by the GnuTLS functions. */); | 1157 | doc: /* Logging level used by the GnuTLS functions. */); |
| 1160 | Vgnutls_log_level = make_number (0); | 1158 | global_gnutls_log_level = 0; |
| 1161 | } | 1159 | } |
| 1162 | 1160 | ||
| 1163 | #endif /* HAVE_GNUTLS */ | 1161 | #endif /* HAVE_GNUTLS */ |
diff --git a/src/lread.c b/src/lread.c index c80ac430671..c0de95dd121 100644 --- a/src/lread.c +++ b/src/lread.c | |||
| @@ -2327,8 +2327,7 @@ read_integer (Lisp_Object readcharfun, EMACS_INT radix) | |||
| 2327 | c = READCHAR; | 2327 | c = READCHAR; |
| 2328 | } | 2328 | } |
| 2329 | 2329 | ||
| 2330 | if (c >= 0) | 2330 | UNREAD (c); |
| 2331 | UNREAD (c); | ||
| 2332 | *p = '\0'; | 2331 | *p = '\0'; |
| 2333 | } | 2332 | } |
| 2334 | 2333 | ||
| @@ -2583,8 +2582,7 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list) | |||
| 2583 | nskip *= 10; | 2582 | nskip *= 10; |
| 2584 | nskip += c - '0'; | 2583 | nskip += c - '0'; |
| 2585 | } | 2584 | } |
| 2586 | if (c >= 0) | 2585 | UNREAD (c); |
| 2587 | UNREAD (c); | ||
| 2588 | 2586 | ||
| 2589 | if (load_force_doc_strings | 2587 | if (load_force_doc_strings |
| 2590 | && (EQ (readcharfun, Qget_file_char) | 2588 | && (EQ (readcharfun, Qget_file_char) |
| @@ -2660,7 +2658,17 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list) | |||
| 2660 | { | 2658 | { |
| 2661 | uninterned_symbol = 1; | 2659 | uninterned_symbol = 1; |
| 2662 | c = READCHAR; | 2660 | c = READCHAR; |
| 2663 | goto default_label; | 2661 | if (!(c > 040 |
| 2662 | && c != 0x8a0 | ||
| 2663 | && (c >= 0200 | ||
| 2664 | || strchr ("\"';()[]#`,", c) == NULL))) | ||
| 2665 | { | ||
| 2666 | /* No symbol character follows, this is the empty | ||
| 2667 | symbol. */ | ||
| 2668 | UNREAD (c); | ||
| 2669 | return Fmake_symbol (build_string ("")); | ||
| 2670 | } | ||
| 2671 | goto read_symbol; | ||
| 2664 | } | 2672 | } |
| 2665 | /* Reader forms that can reuse previously read objects. */ | 2673 | /* Reader forms that can reuse previously read objects. */ |
| 2666 | if (c >= '0' && c <= '9') | 2674 | if (c >= '0' && c <= '9') |
| @@ -2841,7 +2849,7 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list) | |||
| 2841 | next_char = READCHAR; | 2849 | next_char = READCHAR; |
| 2842 | ok = (next_char <= 040 | 2850 | ok = (next_char <= 040 |
| 2843 | || (next_char < 0200 | 2851 | || (next_char < 0200 |
| 2844 | && (strchr ("\"';()[]#?`,.", next_char)))); | 2852 | && strchr ("\"';()[]#?`,.", next_char) != NULL)); |
| 2845 | UNREAD (next_char); | 2853 | UNREAD (next_char); |
| 2846 | if (ok) | 2854 | if (ok) |
| 2847 | return make_number (c); | 2855 | return make_number (c); |
| @@ -2966,11 +2974,6 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list) | |||
| 2966 | /* Otherwise, READ_BUFFER contains only ASCII. */ | 2974 | /* Otherwise, READ_BUFFER contains only ASCII. */ |
| 2967 | } | 2975 | } |
| 2968 | 2976 | ||
| 2969 | /* We want readchar_count to be the number of characters, not | ||
| 2970 | bytes. Hence we adjust for multibyte characters in the | ||
| 2971 | string. ... But it doesn't seem to be necessary, because | ||
| 2972 | READCHAR *does* read multibyte characters from buffers. */ | ||
| 2973 | /* readchar_count -= (p - read_buffer) - nchars; */ | ||
| 2974 | if (read_pure) | 2977 | if (read_pure) |
| 2975 | return make_pure_string (read_buffer, nchars, p - read_buffer, | 2978 | return make_pure_string (read_buffer, nchars, p - read_buffer, |
| 2976 | (force_multibyte | 2979 | (force_multibyte |
| @@ -2987,7 +2990,7 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list) | |||
| 2987 | 2990 | ||
| 2988 | if (next_char <= 040 | 2991 | if (next_char <= 040 |
| 2989 | || (next_char < 0200 | 2992 | || (next_char < 0200 |
| 2990 | && (strchr ("\"';([#?`,", next_char)))) | 2993 | && strchr ("\"';([#?`,", next_char) != NULL)) |
| 2991 | { | 2994 | { |
| 2992 | *pch = c; | 2995 | *pch = c; |
| 2993 | return Qnil; | 2996 | return Qnil; |
| @@ -3002,9 +3005,12 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list) | |||
| 3002 | if (c <= 040) goto retry; | 3005 | if (c <= 040) goto retry; |
| 3003 | if (c == 0x8a0) /* NBSP */ | 3006 | if (c == 0x8a0) /* NBSP */ |
| 3004 | goto retry; | 3007 | goto retry; |
| 3008 | |||
| 3009 | read_symbol: | ||
| 3005 | { | 3010 | { |
| 3006 | char *p = read_buffer; | 3011 | char *p = read_buffer; |
| 3007 | int quoted = 0; | 3012 | int quoted = 0; |
| 3013 | EMACS_INT start_position = readchar_count - 1; | ||
| 3008 | 3014 | ||
| 3009 | { | 3015 | { |
| 3010 | char *end = read_buffer + read_buffer_size; | 3016 | char *end = read_buffer + read_buffer_size; |
| @@ -3035,10 +3041,11 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list) | |||
| 3035 | else | 3041 | else |
| 3036 | *p++ = c; | 3042 | *p++ = c; |
| 3037 | c = READCHAR; | 3043 | c = READCHAR; |
| 3038 | } while (c > 040 | 3044 | } |
| 3039 | && c != 0x8a0 /* NBSP */ | 3045 | while (c > 040 |
| 3040 | && (c >= 0200 | 3046 | && c != 0x8a0 /* NBSP */ |
| 3041 | || !(strchr ("\"';()[]#`,", c)))); | 3047 | && (c >= 0200 |
| 3048 | || strchr ("\"';()[]#`,", c) == NULL)); | ||
| 3042 | 3049 | ||
| 3043 | if (p == end) | 3050 | if (p == end) |
| 3044 | { | 3051 | { |
| @@ -3051,8 +3058,7 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list) | |||
| 3051 | end = read_buffer + read_buffer_size; | 3058 | end = read_buffer + read_buffer_size; |
| 3052 | } | 3059 | } |
| 3053 | *p = 0; | 3060 | *p = 0; |
| 3054 | if (c >= 0) | 3061 | UNREAD (c); |
| 3055 | UNREAD (c); | ||
| 3056 | } | 3062 | } |
| 3057 | 3063 | ||
| 3058 | if (!quoted && !uninterned_symbol) | 3064 | if (!quoted && !uninterned_symbol) |
| @@ -3080,12 +3086,7 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list) | |||
| 3080 | if (EQ (Vread_with_symbol_positions, Qt) | 3086 | if (EQ (Vread_with_symbol_positions, Qt) |
| 3081 | || EQ (Vread_with_symbol_positions, readcharfun)) | 3087 | || EQ (Vread_with_symbol_positions, readcharfun)) |
| 3082 | Vread_symbol_positions_list = | 3088 | Vread_symbol_positions_list = |
| 3083 | /* Kind of a hack; this will probably fail if characters | 3089 | Fcons (Fcons (result, make_number (start_position)), |
| 3084 | in the symbol name were escaped. Not really a big | ||
| 3085 | deal, though. */ | ||
| 3086 | Fcons (Fcons (result, | ||
| 3087 | make_number (readchar_count | ||
| 3088 | - XFASTINT (Flength (Fsymbol_name (result))))), | ||
| 3089 | Vread_symbol_positions_list); | 3090 | Vread_symbol_positions_list); |
| 3090 | return result; | 3091 | return result; |
| 3091 | } | 3092 | } |
diff --git a/src/process.h b/src/process.h index 4866a8c1022..aff9e970f63 100644 --- a/src/process.h +++ b/src/process.h | |||
| @@ -141,7 +141,7 @@ struct Lisp_Process | |||
| 141 | /* Every field in the preceding structure except for the first two | 141 | /* Every field in the preceding structure except for the first two |
| 142 | must be a Lisp_Object, for GC's sake. */ | 142 | must be a Lisp_Object, for GC's sake. */ |
| 143 | 143 | ||
| 144 | #define ChannelMask(n) (1<<(n)) | 144 | #define ChannelMask(n) (1 << (n)) |
| 145 | 145 | ||
| 146 | /* True if we are about to fork off a synchronous process or if we | 146 | /* True if we are about to fork off a synchronous process or if we |
| 147 | are waiting for it. */ | 147 | are waiting for it. */ |
diff --git a/src/xdisp.c b/src/xdisp.c index 9d521ea7aaf..43f60abb812 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -6942,7 +6942,7 @@ next_element_from_string (struct it *it) | |||
| 6942 | struct text_pos position; | 6942 | struct text_pos position; |
| 6943 | 6943 | ||
| 6944 | xassert (STRINGP (it->string)); | 6944 | xassert (STRINGP (it->string)); |
| 6945 | xassert (!it->bidi_p || it->string == it->bidi_it.string.lstring); | 6945 | xassert (!it->bidi_p || EQ (it->string, it->bidi_it.string.lstring)); |
| 6946 | xassert (IT_STRING_CHARPOS (*it) >= 0); | 6946 | xassert (IT_STRING_CHARPOS (*it) >= 0); |
| 6947 | position = it->current.string_pos; | 6947 | position = it->current.string_pos; |
| 6948 | 6948 | ||
| @@ -7256,7 +7256,7 @@ next_element_from_buffer (struct it *it) | |||
| 7256 | xassert (IT_CHARPOS (*it) >= BEGV); | 7256 | xassert (IT_CHARPOS (*it) >= BEGV); |
| 7257 | xassert (NILP (it->string) && !it->s); | 7257 | xassert (NILP (it->string) && !it->s); |
| 7258 | xassert (!it->bidi_p | 7258 | xassert (!it->bidi_p |
| 7259 | || (it->bidi_it.string.lstring == Qnil | 7259 | || (EQ (it->bidi_it.string.lstring, Qnil) |
| 7260 | && it->bidi_it.string.s == NULL)); | 7260 | && it->bidi_it.string.s == NULL)); |
| 7261 | 7261 | ||
| 7262 | /* With bidi reordering, the character to display might not be the | 7262 | /* With bidi reordering, the character to display might not be the |