aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2011-07-18 23:10:15 -0700
committerPaul Eggert2011-07-18 23:10:15 -0700
commit7403ff044d82d390bdc4cdd3954448daedcd4571 (patch)
tree2f5ce508e4b20d5641ebd6c86ca61bc8dab401cc
parentd3411f89d34bd1009cae738f917abf477be09882 (diff)
parent15e3a074a6ebdcefd828a1ba14a5a12ff9921034 (diff)
downloademacs-7403ff044d82d390bdc4cdd3954448daedcd4571.tar.gz
emacs-7403ff044d82d390bdc4cdd3954448daedcd4571.zip
Merge from trunk.
-rw-r--r--etc/ChangeLog11
-rw-r--r--etc/MH-E-NEWS5
-rw-r--r--etc/NEWS7
-rw-r--r--etc/charsets/GB180302.map33
-rw-r--r--etc/charsets/GB180304.map10
-rw-r--r--lisp/ChangeLog20
-rw-r--r--lisp/emacs-lisp/cl-loaddefs.el2
-rw-r--r--lisp/image.el2
-rw-r--r--lisp/mh-e/ChangeLog11
-rw-r--r--lisp/mh-e/mh-compat.el12
-rw-r--r--lisp/mh-e/mh-e.el4
-rw-r--r--lisp/mh-e/mh-folder.el8
-rw-r--r--lisp/progmodes/cc-engine.el8
-rw-r--r--lisp/progmodes/cc-fonts.el47
-rw-r--r--lisp/progmodes/cc-langs.el2
-rw-r--r--lisp/progmodes/etags.el2
-rw-r--r--src/ChangeLog36
-rw-r--r--src/alloc.c10
-rw-r--r--src/fileio.c35
-rw-r--r--src/gnutls.c12
-rw-r--r--src/lread.c49
-rw-r--r--src/process.h2
-rw-r--r--src/xdisp.c4
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 @@
12011-07-18 Andreas Schwab <schwab@linux-m68k.org>
2
3 * charsets/GB180302.map: Update to 2005 edition.
4 * charsets/GB180304.map: Likewise.
5
62011-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
12011-07-16 Bill Wohler <wohler@newt.com> 122011-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 @@
3Copyright (C) 2001-2011 Free Software Foundation, Inc. 3Copyright (C) 2001-2011 Free Software Foundation, Inc.
4See the end of the file for license conditions. 4See the end of the file for license conditions.
5 5
6* Changes in MH-E 8.2.93
7
8Version 8.2.93 reverts back to using `switch-to-buffer' which the
9Emacs 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
8Version 8.2.92 actually corrects the error in the modeline glyph when 13Version 8.2.92 actually corrects the error in the modeline glyph when
diff --git a/etc/NEWS b/etc/NEWS
index 70793c7c1d6..ffce9da51e4 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -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.
1080The prog-mode-hook it defines can be used to enable features for
1081programming modes. For example:
1082(add-hook 'prog-mode-hook 'flyspell-prog-mode)
1083enables on the fly spell checking for comments and strings for
1084programming 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 @@
20480xA6B9-0xA6C0 0xE785 20480xA6B9-0xA6C0 0xE785
20490xA6C1-0xA6D1 0x03B1 20490xA6C1-0xA6D1 0x03B1
20500xA6D2-0xA6D8 0x03C3 20500xA6D2-0xA6D8 0x03C3
20510xA6D9-0xA6DF 0xE78D 20510xA6D9 0xFE10
20520xA6DA 0xFE12
20530xA6DB 0xFE11
20540xA6DC-0xA6DF 0xFE13
20520xA6E0-0xA6E1 0xFE35 20550xA6E0-0xA6E1 0xFE35
20530xA6E2-0xA6E3 0xFE39 20560xA6E2-0xA6E3 0xFE39
20540xA6E4-0xA6E5 0xFE3F 20570xA6E4-0xA6E5 0xFE3F
20550xA6E6-0xA6E7 0xFE3D 20580xA6E6-0xA6E7 0xFE3D
20560xA6E8-0xA6EB 0xFE41 20590xA6E8-0xA6EB 0xFE41
20570xA6EC-0xA6ED 0xE794 20600xA6EC-0xA6ED 0xFE17
20580xA6EE-0xA6EF 0xFE3B 20610xA6EE-0xA6EF 0xFE3B
20590xA6F0-0xA6F1 0xFE37 20620xA6F0-0xA6F1 0xFE37
20600xA6F2 0xFE31 20630xA6F2 0xFE31
20610xA6F3 0xE796 20640xA6F3 0xFE19
20620xA6F4-0xA6F5 0xFE33 20650xA6F4-0xA6F5 0xFE33
20630xA6F6-0xA6FE 0xE797 20660xA6F6-0xA6FE 0xE797
20640xA740-0xA77E 0xE706 20670xA740-0xA77E 0xE706
@@ -2124,7 +2127,7 @@
21240xA8B9 0x00FC 21270xA8B9 0x00FC
21250xA8BA 0x00EA 21280xA8BA 0x00EA
21260xA8BB 0x0251 21290xA8BB 0x0251
21270xA8BC 0xE7C7 21300xA8BC 0x1E3F
21280xA8BD 0x0144 21310xA8BD 0x0144
21290xA8BE 0x0148 21320xA8BE 0x0148
21300xA8BF 0x01F9 21330xA8BF 0x01F9
@@ -10385,13 +10388,15 @@
103850xFE4B-0xFE4C 0xFA23 103880xFE4B-0xFE4C 0xFA23
103860xFE4D-0xFE4F 0xFA27 103890xFE4D-0xFE4F 0xFA27
103870xFE50 0x2E81 103900xFE50 0x2E81
103880xFE51-0xFE53 0xE816 103910xFE51 0x00020087
103920xFE52 0x00020089
103930xFE53 0x000200CC
103890xFE54 0x2E84 103940xFE54 0x2E84
103900xFE55 0x3473 103950xFE55 0x3473
103910xFE56 0x3447 103960xFE56 0x3447
103920xFE57 0x2E88 103970xFE57 0x2E88
103930xFE58 0x2E8B 103980xFE58 0x2E8B
103940xFE59 0xE81E 103990xFE59 0x9FB4
103950xFE5A 0x359E 104000xFE5A 0x359E
103960xFE5B 0x361A 104010xFE5B 0x361A
103970xFE5C 0x360E 104020xFE5C 0x360E
@@ -10399,17 +10404,18 @@
103990xFE5E 0x2E97 104040xFE5E 0x2E97
104000xFE5F 0x396E 104050xFE5F 0x396E
104010xFE60 0x3918 104060xFE60 0x3918
104020xFE61 0xE826 104070xFE61 0x9FB5
104030xFE62 0x39CF 104080xFE62 0x39CF
104040xFE63 0x39DF 104090xFE63 0x39DF
104050xFE64 0x3A73 104100xFE64 0x3A73
104060xFE65 0x39D0 104110xFE65 0x39D0
104070xFE66-0xFE67 0xE82B 104120xFE66-0xFE67 0x9FB6
104080xFE68 0x3B4E 104130xFE68 0x3B4E
104090xFE69 0x3C6E 104140xFE69 0x3C6E
104100xFE6A 0x3CE0 104150xFE6A 0x3CE0
104110xFE6B 0x2EA7 104160xFE6B 0x2EA7
104120xFE6C-0xFE6D 0xE831 104170xFE6C 0x000215D7
104180xFE6D 0x9FB8
104130xFE6E 0x2EAA 104190xFE6E 0x2EAA
104140xFE6F 0x4056 104200xFE6F 0x4056
104150xFE70 0x415F 104210xFE70 0x415F
@@ -10417,7 +10423,7 @@
104170xFE72 0x4337 104230xFE72 0x4337
104180xFE73 0x2EB3 104240xFE73 0x2EB3
104190xFE74-0xFE75 0x2EB6 104250xFE74-0xFE75 0x2EB6
104200xFE76 0xE83B 104260xFE76 0x0002298F
104210xFE77 0x43B1 104270xFE77 0x43B1
104220xFE78 0x43AC 104280xFE78 0x43AC
104230xFE79 0x2EBB 104290xFE79 0x2EBB
@@ -10425,7 +10431,7 @@
104250xFE7B 0x44D6 104310xFE7B 0x44D6
104260xFE7C 0x4661 104320xFE7C 0x4661
104270xFE7D 0x464C 104330xFE7D 0x464C
104280xFE7E 0xE843 104340xFE7E 0x9FB9
104290xFE80 0x4723 104350xFE80 0x4723
104300xFE81 0x4729 104360xFE81 0x4729
104310xFE82 0x477C 104370xFE82 0x477C
@@ -10440,12 +10446,13 @@
104400xFE8D 0x499B 104460xFE8D 0x499B
104410xFE8E 0x49B7 104470xFE8E 0x49B7
104420xFE8F 0x49B6 104480xFE8F 0x49B6
104430xFE90-0xFE91 0xE854 104490xFE90 0x9FBA
104500xFE91 0x000241FE
104440xFE92 0x4CA3 104510xFE92 0x4CA3
104450xFE93-0xFE95 0x4C9F 104520xFE93-0xFE95 0x4C9F
104460xFE96 0x4C77 104530xFE96 0x4C77
104470xFE97 0x4CA2 104540xFE97 0x4CA2
104480xFE98-0xFE9E 0x4D13 104550xFE98-0xFE9E 0x4D13
104490xFE9F 0x4DAE 104560xFE9F 0x4DAE
104500xFEA0 0xE864 104570xFEA0 0x9FBB
104510xFEA1-0xFEFE 0xE468 104580xFEA1-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 @@
400x8130CC30-0x8130D134 0x03CA 400x8130CC30-0x8130D134 0x03CA
410x8130D135-0x8130D238 0x0402 410x8130D135-0x8130D238 0x0402
420x8130D239 0x0450 420x8130D239 0x0450
430x8130D330-0x8136A531 0x0452 430x8130D330-0x8135F436 0x0452
440x8135F438-0x8136A531 0x1E40
440x8136A532-0x8136A533 0x2011 450x8136A532-0x8136A533 0x2011
450x8136A534 0x2017 460x8136A534 0x2017
460x8136A535-0x8136A536 0x201A 470x8136A535-0x8136A536 0x201A
@@ -171,8 +172,10 @@
1710x8234EB33-0x8234F633 0x4CA4 1720x8234EB33-0x8234F633 0x4CA4
1720x8234F634-0x82358731 0x4D1A 1730x8234F634-0x82358731 0x4D1A
1730x82358732-0x82358F32 0x4DAF 1740x82358732-0x82358F32 0x4DAF
1740x82358F33-0x8336C738 0x9FA6 1750x82358F33-0x82359036 0x9FA6
1760x82359135-0x8336C738 0x9FBC
1750x8336C739 0xE76C 1770x8336C739 0xE76C
1780x8135F437 0xE7C7
1760x8336C830 0xE7C8 1790x8336C830 0xE7C8
1770x8336C831-0x8336C933 0xE7E7 1800x8336C831-0x8336C933 0xE7E7
1780x8336C934 0xE815 1810x8336C934 0xE815
@@ -196,7 +199,8 @@
1960x84309B39-0x84309C34 0xFA19 1990x84309B39-0x84309C34 0xFA19
1970x84309C35 0xFA22 2000x84309C35 0xFA22
1980x84309C36-0x84309C37 0xFA25 2010x84309C36-0x84309C37 0xFA25
1990x84309C38-0x84318537 0xFA2A 2020x84309C38-0x84318235 0xFA2A
2030x84318336-0x84318537 0xFE1A
2000x84318538 0xFE32 2040x84318538 0xFE32
2010x84318539-0x84318632 0xFE45 2050x84318539-0x84318632 0xFE45
2020x84318633 0xFE53 2060x84318633 0xFE53
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index ae54b3733f6..0ea3d94a01f 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,25 @@
12011-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
12011-07-17 Lars Magne Ingebrigtsen <larsi@gnus.org> 172011-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'.
389IMAGE is displayed by putting an overlay into the current buffer with a 389IMAGE 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
391image. STRING is defaulted if you omit it. 391image. STRING is defaulted if you omit it.
392The overlay created will have the `put-overlay' property set to t. 392The overlay created will have the `put-image' property set to t.
393POS may be an integer or marker. 393POS may be an integer or marker.
394AREA is where to display the image. AREA nil or omitted means 394AREA is where to display the image. AREA nil or omitted means
395display it in the text area, a value of `left-margin' means 395display 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 @@
12011-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
12011-07-16 Bill Wohler <wohler@newt.com> 122011-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.
257Another window will be used only if the buffer can't be shown in
258the selected window, usually because it is dedicated to another
259buffer. Optional arguments BUFFER-OR-NAME, NORECORD and LABEL are
260as for `pop-to-buffer'. This macro is used by Emacs versions that
261lack the `pop-to-buffer-same-window' function, introduced in
262Emacs 24. The function `switch-to-buffer' is used instead and
263LABEL 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.
1788Make it the current folder." 1788Make 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
1351on level 2 only and so aren't combined with `c-complex-decl-matchers'." 1395on 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.
526This is on the form that fits inside [ ] in a regexp." 526This 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."
1860Stops when a match is found. 1860Stops when a match is found.
1861To continue searching for next match, use command \\[tags-loop-continue]. 1861To continue searching for next match, use command \\[tags-loop-continue].
1862 1862
1863If `file-list-form' is non-nil, it should be a form that, when 1863If FILE-LIST-FORM is non-nil, it should be a form that, when
1864evaluated, will return a list of file names. The search will be 1864evaluated, will return a list of file names. The search will be
1865restricted to these files. 1865restricted 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
322011-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
492011-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
1132011-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
3062011-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
3202011-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
3282011-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
3122011-07-17 Paul Eggert <eggert@cs.ucla.edu> 3362011-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