aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2011-05-22 17:09:23 -0700
committerPaul Eggert2011-05-22 17:09:23 -0700
commitaf3d522ffbf83826f80ab8f6d811e19e97c37384 (patch)
tree4f3d6047a2e0a30c8374f2da5e02858b0129edac
parent37910ab2514f67d12c5b20b63ec6333c02df43c1 (diff)
parent7400048f602459209e89da4680ed9cc351ace4ee (diff)
downloademacs-af3d522ffbf83826f80ab8f6d811e19e97c37384.tar.gz
emacs-af3d522ffbf83826f80ab8f6d811e19e97c37384.zip
Merge from trunk.
-rw-r--r--ChangeLog9
-rw-r--r--Makefile.in2
-rw-r--r--admin/ChangeLog4
-rw-r--r--admin/bzrmerge.el3
-rw-r--r--doc/emacs/ChangeLog5
-rw-r--r--doc/emacs/mule.texi47
-rw-r--r--lib-src/etags.c7
-rw-r--r--lib/intprops.h38
-rw-r--r--lib/stdint.in.h2
-rw-r--r--lisp/ChangeLog46
-rw-r--r--lisp/dired-aux.el19
-rw-r--r--lisp/dired.el2
-rw-r--r--lisp/emacs-lisp/bytecomp.el4
-rw-r--r--lisp/emacs-lisp/macroexp.el10
-rw-r--r--lisp/files.el260
-rw-r--r--lisp/image-mode.el3
-rw-r--r--lisp/nxml/rng-xsd.el2
-rw-r--r--lisp/progmodes/grep.el4
-rw-r--r--lisp/vc/diff-mode.el9
-rw-r--r--lisp/vc/vc-dir.el1
-rw-r--r--lisp/wid-edit.el6
-rw-r--r--m4/mktime.m419
-rw-r--r--m4/readlink.m45
-rw-r--r--src/ChangeLog38
-rw-r--r--src/Makefile.in15
-rw-r--r--src/dispnew.c30
-rw-r--r--src/gnutls.c3
-rw-r--r--src/xselect.c79
28 files changed, 413 insertions, 259 deletions
diff --git a/ChangeLog b/ChangeLog
index 99d5c667f76..a3c17418bd7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
12011-05-22 Paul Eggert <eggert@cs.ucla.edu>
2
3 * lib/intprops.h, lib/stdint.in.h, m4/mktime.m4, m4/readlink.m4:
4 Merge from gnulib.
5
62011-05-21 Andreas Schwab <schwab@linux-m68k.org>
7
8 * Makefile.in (AUTOMAKE_INPUTS): Add $(srcdir)/lib/gnulib.mk.
9
12011-05-20 Eli Zaretskii <eliz@gnu.org> 102011-05-20 Eli Zaretskii <eliz@gnu.org>
2 11
3 * .bzrignore: Add lib/stdio.in-h, lib/stdbool.h, and lib/stdint.h. 12 * .bzrignore: Add lib/stdio.in-h, lib/stdbool.h, and lib/stdint.h.
diff --git a/Makefile.in b/Makefile.in
index 5127563be35..1c0dbb9c27e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -422,7 +422,7 @@ ACLOCAL_INPUTS = @MAINT@ $(srcdir)/m4/$(DOS_gnulib_comp.m4)
422$(srcdir)/aclocal.m4: $(ACLOCAL_INPUTS) 422$(srcdir)/aclocal.m4: $(ACLOCAL_INPUTS)
423 cd $(srcdir) && aclocal -I m4 423 cd $(srcdir) && aclocal -I m4
424 424
425AUTOMAKE_INPUTS = @MAINT@ $(srcdir)/aclocal.m4 $(srcdir)/lib/Makefile.am 425AUTOMAKE_INPUTS = @MAINT@ $(srcdir)/aclocal.m4 $(srcdir)/lib/Makefile.am $(srcdir)/lib/gnulib.mk
426$(srcdir)/lib/Makefile.in: $(AUTOMAKE_INPUTS) 426$(srcdir)/lib/Makefile.in: $(AUTOMAKE_INPUTS)
427 cd $(srcdir) && automake --gnu -a -c lib/Makefile 427 cd $(srcdir) && automake --gnu -a -c lib/Makefile
428am--refresh: $(srcdir)/aclocal.m4 $(srcdir)/configure $(srcdir)/src/config.in 428am--refresh: $(srcdir)/aclocal.m4 $(srcdir)/configure $(srcdir)/src/config.in
diff --git a/admin/ChangeLog b/admin/ChangeLog
index 853c1941a92..7aaeb1d5ee2 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,3 +1,7 @@
12011-05-21 Glenn Morris <rgm@gnu.org>
2
3 * bzrmerge.el (bzrmerge-resolve): Suppress prompts about file-locals.
4
12011-03-07 Chong Yidong <cyd@stupidchicken.com> 52011-03-07 Chong Yidong <cyd@stupidchicken.com>
2 6
3 * Version 23.3 released. 7 * Version 23.3 released.
diff --git a/admin/bzrmerge.el b/admin/bzrmerge.el
index 33cbae22a6c..583f0d88866 100644
--- a/admin/bzrmerge.el
+++ b/admin/bzrmerge.el
@@ -146,7 +146,8 @@ are both lists of revnos, in oldest-first order."
146 (unless (file-exists-p file) (error "Bzrmerge-resolve: Can't find %s" file)) 146 (unless (file-exists-p file) (error "Bzrmerge-resolve: Can't find %s" file))
147 (with-demoted-errors 147 (with-demoted-errors
148 (let ((exists (find-buffer-visiting file))) 148 (let ((exists (find-buffer-visiting file)))
149 (with-current-buffer (find-file-noselect file) 149 (with-current-buffer (let ((enable-local-variables :safe))
150 (find-file-noselect file))
150 (if (buffer-modified-p) 151 (if (buffer-modified-p)
151 (error "Unsaved changes in %s" (current-buffer))) 152 (error "Unsaved changes in %s" (current-buffer)))
152 (save-excursion 153 (save-excursion
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 1f236ef4206..2bf07904172 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,8 @@
12011-05-22 Chong Yidong <cyd@stupidchicken.com>
2
3 * mule.texi (Specify Coding, Text Coding, Communication Coding):
4 (File Name Coding, Terminal Coding): Add command names (Bug#8312).
5
12011-05-18 Glenn Morris <rgm@gnu.org> 62011-05-18 Glenn Morris <rgm@gnu.org>
2 7
3 * ack.texi (Acknowledgments): Remove fakemail.c. 8 * ack.texi (Acknowledgments): Remove fakemail.c.
diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi
index 1a4d0d33bc6..a721e0c204b 100644
--- a/doc/emacs/mule.texi
+++ b/doc/emacs/mule.texi
@@ -916,11 +916,12 @@ written in the Emacs internal character code).
916@section Specifying a File's Coding System 916@section Specifying a File's Coding System
917 917
918 If Emacs recognizes the encoding of a file incorrectly, you can 918 If Emacs recognizes the encoding of a file incorrectly, you can
919reread the file using the correct coding system by typing @kbd{C-x 919reread the file using the correct coding system with @kbd{C-x
920@key{RET} r @var{coding-system} @key{RET}}. To see what coding system 920@key{RET} r} (@code{revert-buffer-with-coding-system}). This command
921Emacs actually used to decode the file, look at the coding system 921prompts for the coding system to use. To see what coding system Emacs
922mnemonic letter near the left edge of the mode line (@pxref{Mode 922actually used to decode the file, look at the coding system mnemonic
923Line}), or type @kbd{C-h C @key{RET}}. 923letter near the left edge of the mode line (@pxref{Mode Line}), or
924type @kbd{C-h C} (@code{describe-coding-system}).
924 925
925@vindex coding 926@vindex coding
926 You can specify the coding system for a particular file in the file 927 You can specify the coding system for a particular file in the file
@@ -994,15 +995,16 @@ one:
994 995
995@table @kbd 996@table @kbd
996@item C-x @key{RET} f @var{coding} @key{RET} 997@item C-x @key{RET} f @var{coding} @key{RET}
997Use coding system @var{coding} for saving or revisiting the visited 998Use coding system @var{coding} to save or revisit the visited file in
998file in the current buffer. 999the current buffer (@code{set-buffer-file-coding-system})
999 1000
1000@item C-x @key{RET} c @var{coding} @key{RET} 1001@item C-x @key{RET} c @var{coding} @key{RET}
1001Specify coding system @var{coding} for the immediately following 1002Specify coding system @var{coding} for the immediately following
1002command. 1003command (@code{universal-coding-system-argument}).
1003 1004
1004@item C-x @key{RET} r @var{coding} @key{RET} 1005@item C-x @key{RET} r @var{coding} @key{RET}
1005Revisit the current file using the coding system @var{coding}. 1006Revisit the current file using the coding system @var{coding}
1007(@code{revert-buffer-with-coding-system}).
1006 1008
1007@item M-x recode-region @key{RET} @var{right} @key{RET} @var{wrong} @key{RET} 1009@item M-x recode-region @key{RET} @var{right} @key{RET} @var{wrong} @key{RET}
1008Convert a region that was decoded using coding system @var{wrong}, 1010Convert a region that was decoded using coding system @var{wrong},
@@ -1084,19 +1086,17 @@ in communication with other processes.
1084@table @kbd 1086@table @kbd
1085@item C-x @key{RET} x @var{coding} @key{RET} 1087@item C-x @key{RET} x @var{coding} @key{RET}
1086Use coding system @var{coding} for transferring selections to and from 1088Use coding system @var{coding} for transferring selections to and from
1087other window-based applications. 1089other window-based applications (@code{set-selection-coding-system}).
1088 1090
1089@item C-x @key{RET} X @var{coding} @key{RET} 1091@item C-x @key{RET} X @var{coding} @key{RET}
1090Use coding system @var{coding} for transferring @emph{one} 1092Use coding system @var{coding} for transferring @emph{one}
1091selection---the next one---to or from another window-based application. 1093selection---the next one---to or from another window-based application
1094(@code{set-next-selection-coding-system}).
1092 1095
1093@item C-x @key{RET} p @var{input-coding} @key{RET} @var{output-coding} @key{RET} 1096@item C-x @key{RET} p @var{input-coding} @key{RET} @var{output-coding} @key{RET}
1094Use coding systems @var{input-coding} and @var{output-coding} for 1097Use coding systems @var{input-coding} and @var{output-coding} for
1095subprocess input and output in the current buffer. 1098subprocess input and output in the current buffer
1096 1099(@code{set-buffer-process-coding-system}).
1097@item C-x @key{RET} c @var{coding} @key{RET}
1098Specify coding system @var{coding} for the immediately following
1099command.
1100@end table 1100@end table
1101 1101
1102@kindex C-x RET x 1102@kindex C-x RET x
@@ -1134,9 +1134,10 @@ own buffer, and thus you can use this command to specify translation to
1134and from a particular subprocess by giving the command in the 1134and from a particular subprocess by giving the command in the
1135corresponding buffer. 1135corresponding buffer.
1136 1136
1137 You can also use @kbd{C-x @key{RET} c} just before the command that 1137 You can also use @kbd{C-x @key{RET} c}
1138runs or starts a subprocess, to specify the coding system to use for 1138(@code{universal-coding-system-argument}) just before the command that
1139communication with that subprocess. 1139runs or starts a subprocess, to specify the coding system for
1140communicating with that subprocess. @xref{Text Coding}.
1140 1141
1141 The default for translation of process input and output depends on the 1142 The default for translation of process input and output depends on the
1142current language environment. 1143current language environment.
@@ -1160,7 +1161,7 @@ the text representation.)
1160@table @kbd 1161@table @kbd
1161@item C-x @key{RET} F @var{coding} @key{RET} 1162@item C-x @key{RET} F @var{coding} @key{RET}
1162Use coding system @var{coding} for encoding and decoding file 1163Use coding system @var{coding} for encoding and decoding file
1163@emph{names}. 1164@emph{names} (@code{set-file-name-coding-system}).
1164@end table 1165@end table
1165 1166
1166@vindex file-name-coding-system 1167@vindex file-name-coding-system
@@ -1205,10 +1206,12 @@ system, and the coding system to which you wish to convert.
1205 1206
1206@table @kbd 1207@table @kbd
1207@item C-x @key{RET} k @var{coding} @key{RET} 1208@item C-x @key{RET} k @var{coding} @key{RET}
1208Use coding system @var{coding} for keyboard input. 1209Use coding system @var{coding} for keyboard input
1210(@code{set-keyboard-coding-system}).
1209 1211
1210@item C-x @key{RET} t @var{coding} @key{RET} 1212@item C-x @key{RET} t @var{coding} @key{RET}
1211Use coding system @var{coding} for terminal output. 1213Use coding system @var{coding} for terminal output
1214(@code{set-terminal-coding-system}).
1212@end table 1215@end table
1213 1216
1214@kindex C-x RET t 1217@kindex C-x RET t
diff --git a/lib-src/etags.c b/lib-src/etags.c
index a2cdf26abc7..097f6842c07 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -93,8 +93,11 @@ char pot_etags_version[] = "@(#) pot revision number is 17.38.1.4";
93 93
94#ifdef HAVE_CONFIG_H 94#ifdef HAVE_CONFIG_H
95# include <config.h> 95# include <config.h>
96 /* On some systems, Emacs defines static as nothing for the sake 96 /* This is probably not necessary any more. On some systems, config.h
97 of unexec. We don't want that here since we don't use unexec. */ 97 used to define static as nothing for the sake of unexec. We don't
98 want that here since we don't use unexec. None of these systems
99 are supported any more, but the idea is still mentioned in
100 etc/PROBLEMS. */
98# undef static 101# undef static
99# ifndef PTR /* for XEmacs */ 102# ifndef PTR /* for XEmacs */
100# define PTR void * 103# define PTR void *
diff --git a/lib/intprops.h b/lib/intprops.h
index a84bd6af531..293204ab43a 100644
--- a/lib/intprops.h
+++ b/lib/intprops.h
@@ -27,6 +27,10 @@
27 E should not have side effects. */ 27 E should not have side effects. */
28#define _GL_INT_CONVERT(e, v) ((e) - (e) + (v)) 28#define _GL_INT_CONVERT(e, v) ((e) - (e) + (v))
29 29
30/* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see
31 <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00406.html>. */
32#define _GL_INT_NEGATE_CONVERT(e, v) ((e) - (e) - (v))
33
30/* The extra casts in the following macros work around compiler bugs, 34/* The extra casts in the following macros work around compiler bugs,
31 e.g., in Cray C 5.0.3.0. */ 35 e.g., in Cray C 5.0.3.0. */
32 36
@@ -50,7 +54,7 @@
50 54
51/* Return 1 if the integer expression E, after integer promotion, has 55/* Return 1 if the integer expression E, after integer promotion, has
52 a signed type. E should not have side effects. */ 56 a signed type. E should not have side effects. */
53#define _GL_INT_SIGNED(e) (_GL_INT_CONVERT (e, -1) < 0) 57#define _GL_INT_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0)
54 58
55 59
56/* Minimum and maximum values for integer types and expressions. These 60/* Minimum and maximum values for integer types and expressions. These
@@ -79,7 +83,7 @@
79#define _GL_INT_MAXIMUM(e) \ 83#define _GL_INT_MAXIMUM(e) \
80 (_GL_INT_SIGNED (e) \ 84 (_GL_INT_SIGNED (e) \
81 ? _GL_SIGNED_INT_MAXIMUM (e) \ 85 ? _GL_SIGNED_INT_MAXIMUM (e) \
82 : _GL_INT_CONVERT (e, -1)) 86 : _GL_INT_NEGATE_CONVERT (e, 1))
83#define _GL_SIGNED_INT_MAXIMUM(e) \ 87#define _GL_SIGNED_INT_MAXIMUM(e) \
84 (((_GL_INT_CONVERT (e, 1) << (sizeof ((e) + 0) * CHAR_BIT - 2)) - 1) * 2 + 1) 88 (((_GL_INT_CONVERT (e, 1) << (sizeof ((e) + 0) * CHAR_BIT - 2)) - 1) * 2 + 1)
85 89
@@ -179,16 +183,21 @@
179 : 0 < (a)) 183 : 0 < (a))
180 184
181/* Return 1 if A * B would overflow in [MIN,MAX] arithmetic. 185/* Return 1 if A * B would overflow in [MIN,MAX] arithmetic.
182 See above for restrictions. */ 186 See above for restrictions. Avoid && and || as they tickle
187 bugs in Sun C 5.11 2010/08/13 and other compilers; see
188 <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00401.html>. */
183#define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max) \ 189#define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max) \
184 ((b) < 0 \ 190 ((b) < 0 \
185 ? ((a) < 0 \ 191 ? ((a) < 0 \
186 ? (a) < (max) / (b) \ 192 ? (a) < (max) / (b) \
187 : (b) < -1 && (min) / (b) < (a)) \ 193 : (b) == -1 \
188 : (0 < (b) \ 194 ? 0 \
189 && ((a) < 0 \ 195 : (min) / (b) < (a)) \
190 ? (a) < (min) / (b) \ 196 : (b) == 0 \
191 : (max) / (b) < (a)))) 197 ? 0 \
198 : ((a) < 0 \
199 ? (a) < (min) / (b) \
200 : (max) / (b) < (a)))
192 201
193/* Return 1 if A / B would overflow in [MIN,MAX] arithmetic. 202/* Return 1 if A / B would overflow in [MIN,MAX] arithmetic.
194 See above for restrictions. Do not check for division by zero. */ 203 See above for restrictions. Do not check for division by zero. */
@@ -234,11 +243,11 @@
234 (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a)))) \ 243 (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a)))) \
235 || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max)) 244 || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max))
236#define _GL_DIVIDE_OVERFLOW(a, b, min, max) \ 245#define _GL_DIVIDE_OVERFLOW(a, b, min, max) \
237 ((min) < 0 ? (b) == _GL_INT_CONVERT (min, -1) && (a) < - (max) \ 246 ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \
238 : (a) < 0 ? (b) <= (a) + (b) - 1 \ 247 : (a) < 0 ? (b) <= (a) + (b) - 1 \
239 : (b) < 0 && (a) + (b) <= (a)) 248 : (b) < 0 && (a) + (b) <= (a))
240#define _GL_REMAINDER_OVERFLOW(a, b, min, max) \ 249#define _GL_REMAINDER_OVERFLOW(a, b, min, max) \
241 ((min) < 0 ? (b) == _GL_INT_CONVERT (min, -1) && (a) < - (max) \ 250 ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \
242 : (a) < 0 ? (a) % (b) != ((max) - (b) + 1) % (b) \ 251 : (a) < 0 ? (a) % (b) != ((max) - (b) + 1) % (b) \
243 : (b) < 0 && ! _GL_UNSIGNED_NEG_MULTIPLE (a, b, max)) 252 : (b) < 0 && ! _GL_UNSIGNED_NEG_MULTIPLE (a, b, max))
244 253
@@ -302,13 +311,10 @@
302/* Return 1 if the expression A <op> B would overflow, 311/* Return 1 if the expression A <op> B would overflow,
303 where OP_RESULT_OVERFLOW (A, B, MIN, MAX) does the actual test, 312 where OP_RESULT_OVERFLOW (A, B, MIN, MAX) does the actual test,
304 assuming MIN and MAX are the minimum and maximum for the result type. 313 assuming MIN and MAX are the minimum and maximum for the result type.
305 314 Arguments should be free of side effects. */
306 This macro assumes that A | B is a valid integer if both A and B are,
307 which is true of all known practical hosts. If this is a problem
308 for you, please let us know how to fix it for your host. */
309#define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow) \ 315#define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow) \
310 op_result_overflow (a, b, \ 316 op_result_overflow (a, b, \
311 _GL_INT_MINIMUM ((a) | (b)), \ 317 _GL_INT_MINIMUM ((b) - (b) + (a)), \
312 _GL_INT_MAXIMUM ((a) | (b))) 318 _GL_INT_MAXIMUM ((b) - (b) + (a)))
313 319
314#endif /* _GL_INTPROPS_H */ 320#endif /* _GL_INTPROPS_H */
diff --git a/lib/stdint.in.h b/lib/stdint.in.h
index b32227bb04c..376b96a785d 100644
--- a/lib/stdint.in.h
+++ b/lib/stdint.in.h
@@ -93,7 +93,7 @@
93 93
94#undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H 94#undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
95 95
96/* Minimum and maximum values for a integer type under the usual assumption. 96/* Minimum and maximum values for an integer type under the usual assumption.
97 Return an unspecified value if BITS == 0, adding a check to pacify 97 Return an unspecified value if BITS == 0, adding a check to pacify
98 picky compilers. */ 98 picky compilers. */
99 99
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 05a7d63bb3d..506348601ee 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,49 @@
12011-05-22 Yuanle Song <sylecn@gmail.com>
2
3 * nxml/rng-xsd.el (rng-xsd-check-pattern): Use case-sensitive
4 matching (Bug#8516).
5
62011-01-22 Jari Aalto <jari.aalto@cante.net>
7
8 * vc/vc-dir.el (vc-default-dir-printer): Give edited tag a
9 different face (Bug#8178).
10
112011-05-22 Chong Yidong <cyd@stupidchicken.com>
12
13 * vc/diff-mode.el (diff-changed): Don't use terminal specs for
14 defface (Bug#8144).
15
162011-05-22 Stefan Monnier <monnier@iro.umontreal.ca>
17
18 * emacs-lisp/macroexp.el (macroexpand-all-1): Convert ' to #' for
19 funcall as well (bug#8712). Warn when performing those conversions.
20 * emacs-lisp/bytecomp.el (byte-compile-form): Fix error report.
21
22 * progmodes/grep.el (grep-mode): Fix it for good (bug#8684)!
23
242011-05-22 Glenn Morris <rgm@gnu.org>
25
26 * files.el (hack-local-variables-prop-line): Small simplifications.
27 (hack-local-variables, hack-local-variables-prop-line):
28 If MODE-ONLY, return the mode, rather than just `t'.
29
302011-05-21 Stefan Monnier <monnier@iro.umontreal.ca>
31
32 * progmodes/grep.el (grep-mode): Fix last change (bug#8684).
33
342011-05-21 Glenn Morris <rgm@gnu.org>
35
36 * files.el (hack-local-variables-prop-line, hack-local-variables):
37 If only interested in the mode, don't bother doing the other stuff.
38
39 * image-mode.el (image-after-revert-hook):
40 Redraw all frames on which the image is visible. (Bug#8567)
41
42 * dired-aux.el (dired-touch-initial): Just use current-time. (Bug#6887)
43
44 * wid-edit.el (widget-checklist-match-inline):
45 Fix 2011-04-19 change. (Bug#8649)
46
12011-05-20 Stefan Monnier <monnier@iro.umontreal.ca> 472011-05-20 Stefan Monnier <monnier@iro.umontreal.ca>
2 48
3 * emacs-lisp/checkdoc.el (checkdoc-sentencespace-region-engine): 49 * emacs-lisp/checkdoc.el (checkdoc-sentencespace-region-engine):
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 059a635cded..8e4b3b5c6a6 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -229,14 +229,17 @@ List has a form of (file-name full-file-name (attribute-list))."
229 229
230(defun dired-touch-initial (files) 230(defun dired-touch-initial (files)
231 "Create initial input value for `touch' command." 231 "Create initial input value for `touch' command."
232 (let (initial) 232 ;; Nobody can explain what this version is supposed to do. (Bug#6887)
233 (while files 233 ;; Also, the manual says it uses "the present time".
234 (let ((current (nth 5 (file-attributes (car files))))) 234 ;;; (let (initial)
235 (if (and initial (not (equal initial current))) 235 ;;; (while files
236 (setq initial (current-time) files nil) 236 ;;; (let ((current (nth 5 (file-attributes (car files)))))
237 (setq initial current)) 237 ;;; (if (and initial (not (equal initial current)))
238 (setq files (cdr files)))) 238 ;;; (setq initial (current-time) files nil)
239 (format-time-string "%Y%m%d%H%M.%S" initial))) 239 ;;; (setq initial current))
240 ;;; (setq files (cdr files))))
241 ;;; (format-time-string "%Y%m%d%H%M.%S" initial)))
242 (format-time-string "%Y%m%d%H%M.%S" (current-time)))
240 243
241(defun dired-do-chxxx (attribute-name program op-symbol arg) 244(defun dired-do-chxxx (attribute-name program op-symbol arg)
242 ;; Change file attributes (mode, group, owner, timestamp) of marked files and 245 ;; Change file attributes (mode, group, owner, timestamp) of marked files and
diff --git a/lisp/dired.el b/lisp/dired.el
index c581597494c..48cdc2a2e26 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -3629,7 +3629,7 @@ Ask means pop up a menu for the user to select one of copy, move or link."
3629;;;;;; dired-run-shell-command dired-do-shell-command dired-do-async-shell-command 3629;;;;;; dired-run-shell-command dired-do-shell-command dired-do-async-shell-command
3630;;;;;; dired-clean-directory dired-do-print dired-do-touch dired-do-chown 3630;;;;;; dired-clean-directory dired-do-print dired-do-touch dired-do-chown
3631;;;;;; dired-do-chgrp dired-do-chmod dired-compare-directories dired-backup-diff 3631;;;;;; dired-do-chgrp dired-do-chmod dired-compare-directories dired-backup-diff
3632;;;;;; dired-diff) "dired-aux" "dired-aux.el" "e34e1bbdb701078d52466c319d8e0cda") 3632;;;;;; dired-diff) "dired-aux" "dired-aux.el" "7efcfe4f9e0913ae4a87be014010c27f")
3633;;; Generated autoloads from dired-aux.el 3633;;; Generated autoloads from dired-aux.el
3634 3634
3635(autoload 'dired-diff "dired-aux" "\ 3635(autoload 'dired-diff "dired-aux" "\
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index e7f2115a848..49b39b6a1f9 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -2892,8 +2892,8 @@ If FORM is a lambda or a macro, byte-compile it as a function."
2892That command is designed for interactive use only" fn)) 2892That command is designed for interactive use only" fn))
2893 (if (and (fboundp (car form)) 2893 (if (and (fboundp (car form))
2894 (eq (car-safe (symbol-function (car form))) 'macro)) 2894 (eq (car-safe (symbol-function (car form))) 'macro))
2895 (byte-compile-report-error 2895 (byte-compile-log-warning
2896 (format "Forgot to expand macro %s" (car form)))) 2896 (format "Forgot to expand macro %s" (car form)) nil :error))
2897 (if (and handler 2897 (if (and handler
2898 ;; Make sure that function exists. This is important 2898 ;; Make sure that function exists. This is important
2899 ;; for CL compiler macros since the symbol may be 2899 ;; for CL compiler macros since the symbol may be
diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el
index f0a075ace37..ccfdf2e0551 100644
--- a/lisp/emacs-lisp/macroexp.el
+++ b/lisp/emacs-lisp/macroexp.el
@@ -169,14 +169,22 @@ Assumes the caller has bound `macroexpand-all-environment'."
169 ;; here, so that any code that cares about the difference will 169 ;; here, so that any code that cares about the difference will
170 ;; see the same transformation. 170 ;; see the same transformation.
171 ;; First arg is a function: 171 ;; First arg is a function:
172 (`(,(and fun (or `apply `mapcar `mapatoms `mapconcat `mapc)) 172 (`(,(and fun (or `funcall `apply `mapcar `mapatoms `mapconcat `mapc))
173 ',(and f `(lambda . ,_)) . ,args) 173 ',(and f `(lambda . ,_)) . ,args)
174 (byte-compile-log-warning
175 (format "%s quoted with ' rather than with #'"
176 (list 'lambda (nth 1 f) '...))
177 t)
174 ;; We don't use `maybe-cons' since there's clearly a change. 178 ;; We don't use `maybe-cons' since there's clearly a change.
175 (cons fun 179 (cons fun
176 (cons (macroexpand-all-1 (list 'function f)) 180 (cons (macroexpand-all-1 (list 'function f))
177 (macroexpand-all-forms args)))) 181 (macroexpand-all-forms args))))
178 ;; Second arg is a function: 182 ;; Second arg is a function:
179 (`(,(and fun (or `sort)) ,arg1 ',(and f `(lambda . ,_)) . ,args) 183 (`(,(and fun (or `sort)) ,arg1 ',(and f `(lambda . ,_)) . ,args)
184 (byte-compile-log-warning
185 (format "%s quoted with ' rather than with #'"
186 (list 'lambda (nth 1 f) '...))
187 t)
180 ;; We don't use `maybe-cons' since there's clearly a change. 188 ;; We don't use `maybe-cons' since there's clearly a change.
181 (cons fun 189 (cons fun
182 (cons (macroexpand-all-1 arg1) 190 (cons (macroexpand-all-1 arg1)
diff --git a/lisp/files.el b/lisp/files.el
index 200b9b1d303..24a0e0a5b62 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -3032,60 +3032,62 @@ n -- to ignore the local variables list.")
3032 3032
3033(defun hack-local-variables-prop-line (&optional mode-only) 3033(defun hack-local-variables-prop-line (&optional mode-only)
3034 "Return local variables specified in the -*- line. 3034 "Return local variables specified in the -*- line.
3035Ignore any specification for `mode:' and `coding:'; 3035Returns an alist of elements (VAR . VAL), where VAR is a variable
3036`set-auto-mode' should already have handled `mode:', 3036and VAL is the specified value. Ignores any specification for
3037`set-auto-coding' should already have handled `coding:'. 3037`mode:' and `coding:' (which should have already been handled
3038 3038by `set-auto-mode' and `set-auto-coding', respectively).
3039If MODE-ONLY is non-nil, all we do is check whether the major 3039Throws an error if the -*- line is malformed.
3040mode is specified, returning t if it is specified. Otherwise, 3040
3041return an alist of elements (VAR . VAL), where VAR is a variable 3041If MODE-ONLY is non-nil, just returns the symbol specifying the
3042and VAL is the specified value." 3042mode, if there is one, otherwise nil."
3043 (save-excursion 3043 (save-excursion
3044 (goto-char (point-min)) 3044 (goto-char (point-min))
3045 (let ((end (set-auto-mode-1)) 3045 (let ((end (set-auto-mode-1))
3046 result mode-specified) 3046 result)
3047 ;; Parse the -*- line into the RESULT alist.
3048 ;; Also set MODE-SPECIFIED if we see a spec or `mode'.
3049 (cond ((not end) 3047 (cond ((not end)
3050 nil) 3048 nil)
3051 ((looking-at "[ \t]*\\([^ \t\n\r:;]+\\)\\([ \t]*-\\*-\\)") 3049 ((looking-at "[ \t]*\\([^ \t\n\r:;]+\\)\\([ \t]*-\\*-\\)")
3052 ;; Simple form: "-*- MODENAME -*-". Already handled. 3050 ;; Simple form: "-*- MODENAME -*-".
3053 (setq mode-specified t) 3051 (if mode-only
3054 nil) 3052 (intern (concat (match-string 1) "-mode"))))
3055 (t 3053 (t
3056 ;; Hairy form: '-*-' [ <variable> ':' <value> ';' ]* '-*-' 3054 ;; Hairy form: '-*-' [ <variable> ':' <value> ';' ]* '-*-'
3057 ;; (last ";" is optional). 3055 ;; (last ";" is optional).
3058 (while (< (point) end) 3056 ;; If MODE-ONLY, just check for `mode'.
3057 ;; Otherwise, parse the -*- line into the RESULT alist.
3058 (while (and (or (not mode-only)
3059 (not result))
3060 (< (point) end))
3059 (or (looking-at "[ \t]*\\([^ \t\n:]+\\)[ \t]*:[ \t]*") 3061 (or (looking-at "[ \t]*\\([^ \t\n:]+\\)[ \t]*:[ \t]*")
3060 (error "Malformed -*- line")) 3062 (error "Malformed -*- line"))
3061 (goto-char (match-end 0)) 3063 (goto-char (match-end 0))
3062 ;; There used to be a downcase here, 3064 ;; There used to be a downcase here,
3063 ;; but the manual didn't say so, 3065 ;; but the manual didn't say so,
3064 ;; and people want to set var names that aren't all lc. 3066 ;; and people want to set var names that aren't all lc.
3065 (let ((key (intern (match-string 1))) 3067 (let* ((key (intern (match-string 1)))
3066 (val (save-restriction 3068 (val (save-restriction
3067 (narrow-to-region (point) end) 3069 (narrow-to-region (point) end)
3068 (let ((read-circle nil)) 3070 (let ((read-circle nil))
3069 (read (current-buffer)))))) 3071 (read (current-buffer)))))
3070 ;; It is traditional to ignore 3072 ;; It is traditional to ignore
3071 ;; case when checking for `mode' in set-auto-mode, 3073 ;; case when checking for `mode' in set-auto-mode,
3072 ;; so we must do that here as well. 3074 ;; so we must do that here as well.
3073 ;; That is inconsistent, but we're stuck with it. 3075 ;; That is inconsistent, but we're stuck with it.
3074 ;; The same can be said for `coding' in set-auto-coding. 3076 ;; The same can be said for `coding' in set-auto-coding.
3075 (or (and (equal (downcase (symbol-name key)) "mode") 3077 (keyname (downcase (symbol-name key))))
3076 (setq mode-specified t)) 3078 (if mode-only
3077 (equal (downcase (symbol-name key)) "coding") 3079 (and (equal keyname "mode")
3078 (condition-case nil 3080 (setq result
3079 (push (cons (if (eq key 'eval) 3081 (intern (concat (symbol-name val) "-mode"))))
3080 'eval 3082 (or (equal keyname "coding")
3081 (indirect-variable key)) 3083 (condition-case nil
3082 val) result) 3084 (push (cons (if (eq key 'eval)
3083 (error nil))) 3085 'eval
3084 (skip-chars-forward " \t;"))))) 3086 (indirect-variable key))
3085 3087 val) result)
3086 (if mode-only 3088 (error nil))))
3087 mode-specified 3089 (skip-chars-forward " \t;")))
3088 result)))) 3090 result)))))
3089 3091
3090(defun hack-local-variables-filter (variables dir-name) 3092(defun hack-local-variables-filter (variables dir-name)
3091 "Filter local variable settings, querying the user if necessary. 3093 "Filter local variable settings, querying the user if necessary.
@@ -3144,8 +3146,10 @@ DIR-NAME is the name of the associated directory. Otherwise it is nil."
3144 3146
3145(defun hack-local-variables (&optional mode-only) 3147(defun hack-local-variables (&optional mode-only)
3146 "Parse and put into effect this buffer's local variables spec. 3148 "Parse and put into effect this buffer's local variables spec.
3147If MODE-ONLY is non-nil, all we do is check whether the major mode 3149If MODE-ONLY is non-nil, all we do is check whether a \"mode:\"
3148is specified, returning t if it is specified." 3150is specified, and return the corresponding mode symbol, or nil.
3151In this case, we try to ignore minor-modes, and only return a
3152major-mode."
3149 (let ((enable-local-variables 3153 (let ((enable-local-variables
3150 (and local-enable-local-variables enable-local-variables)) 3154 (and local-enable-local-variables enable-local-variables))
3151 result) 3155 result)
@@ -3154,88 +3158,98 @@ is specified, returning t if it is specified."
3154 (report-errors "Directory-local variables error: %s" 3158 (report-errors "Directory-local variables error: %s"
3155 (hack-dir-local-variables))) 3159 (hack-dir-local-variables)))
3156 (when (or mode-only enable-local-variables) 3160 (when (or mode-only enable-local-variables)
3157 (setq result (hack-local-variables-prop-line mode-only)) 3161 ;; If MODE-ONLY is non-nil, and the prop line specifies a mode,
3158 ;; Look for "Local variables:" line in last page. 3162 ;; then we're done, and have no need to scan further.
3159 (save-excursion 3163 (unless (and (setq result (hack-local-variables-prop-line mode-only))
3160 (goto-char (point-max)) 3164 mode-only)
3161 (search-backward "\n\^L" (max (- (point-max) 3000) (point-min)) 3165 ;; Look for "Local variables:" line in last page.
3162 'move) 3166 (save-excursion
3163 (when (let ((case-fold-search t)) 3167 (goto-char (point-max))
3164 (search-forward "Local Variables:" nil t)) 3168 (search-backward "\n\^L" (max (- (point-max) 3000) (point-min))
3165 (skip-chars-forward " \t") 3169 'move)
3166 ;; suffix is what comes after "local variables:" in its line. 3170 (when (let ((case-fold-search t))
3167 ;; prefix is what comes before "local variables:" in its line. 3171 (search-forward "Local Variables:" nil t))
3168 (let ((suffix 3172 (skip-chars-forward " \t")
3169 (concat 3173 ;; suffix is what comes after "local variables:" in its line.
3170 (regexp-quote (buffer-substring (point) 3174 ;; prefix is what comes before "local variables:" in its line.
3171 (line-end-position))) 3175 (let ((suffix
3172 "$")) 3176 (concat
3173 (prefix 3177 (regexp-quote (buffer-substring (point)
3174 (concat "^" (regexp-quote 3178 (line-end-position)))
3175 (buffer-substring (line-beginning-position) 3179 "$"))
3176 (match-beginning 0))))) 3180 (prefix
3177 beg) 3181 (concat "^" (regexp-quote
3178 3182 (buffer-substring (line-beginning-position)
3179 (forward-line 1) 3183 (match-beginning 0)))))
3180 (let ((startpos (point)) 3184 beg)
3181 endpos 3185
3182 (thisbuf (current-buffer))) 3186 (forward-line 1)
3183 (save-excursion 3187 (let ((startpos (point))
3184 (unless (let ((case-fold-search t)) 3188 endpos
3185 (re-search-forward 3189 (thisbuf (current-buffer)))
3186 (concat prefix "[ \t]*End:[ \t]*" suffix) 3190 (save-excursion
3187 nil t)) 3191 (unless (let ((case-fold-search t))
3188 ;; This used to be an error, but really all it means is 3192 (re-search-forward
3189 ;; that this may simply not be a local-variables section, 3193 (concat prefix "[ \t]*End:[ \t]*" suffix)
3190 ;; so just ignore it. 3194 nil t))
3191 (message "Local variables list is not properly terminated")) 3195 ;; This used to be an error, but really all it means is
3192 (beginning-of-line) 3196 ;; that this may simply not be a local-variables section,
3193 (setq endpos (point))) 3197 ;; so just ignore it.
3194 3198 (message "Local variables list is not properly terminated"))
3195 (with-temp-buffer 3199 (beginning-of-line)
3196 (insert-buffer-substring thisbuf startpos endpos) 3200 (setq endpos (point)))
3197 (goto-char (point-min)) 3201
3198 (subst-char-in-region (point) (point-max) ?\^m ?\n) 3202 (with-temp-buffer
3199 (while (not (eobp)) 3203 (insert-buffer-substring thisbuf startpos endpos)
3200 ;; Discard the prefix. 3204 (goto-char (point-min))
3201 (if (looking-at prefix) 3205 (subst-char-in-region (point) (point-max) ?\^m ?\n)
3202 (delete-region (point) (match-end 0)) 3206 (while (not (eobp))
3203 (error "Local variables entry is missing the prefix")) 3207 ;; Discard the prefix.
3204 (end-of-line) 3208 (if (looking-at prefix)
3205 ;; Discard the suffix. 3209 (delete-region (point) (match-end 0))
3206 (if (looking-back suffix) 3210 (error "Local variables entry is missing the prefix"))
3207 (delete-region (match-beginning 0) (point)) 3211 (end-of-line)
3208 (error "Local variables entry is missing the suffix")) 3212 ;; Discard the suffix.
3209 (forward-line 1)) 3213 (if (looking-back suffix)
3210 (goto-char (point-min)) 3214 (delete-region (match-beginning 0) (point))
3211 3215 (error "Local variables entry is missing the suffix"))
3212 (while (not (eobp)) 3216 (forward-line 1))
3213 ;; Find the variable name; strip whitespace. 3217 (goto-char (point-min))
3214 (skip-chars-forward " \t") 3218
3215 (setq beg (point)) 3219 (while (and (not (eobp))
3216 (skip-chars-forward "^:\n") 3220 (or (not mode-only)
3217 (if (eolp) (error "Missing colon in local variables entry")) 3221 (not result)))
3218 (skip-chars-backward " \t") 3222 ;; Find the variable name; strip whitespace.
3219 (let* ((str (buffer-substring beg (point))) 3223 (skip-chars-forward " \t")
3220 (var (let ((read-circle nil)) 3224 (setq beg (point))
3221 (read str))) 3225 (skip-chars-forward "^:\n")
3222 val) 3226 (if (eolp) (error "Missing colon in local variables entry"))
3223 ;; Read the variable value. 3227 (skip-chars-backward " \t")
3224 (skip-chars-forward "^:") 3228 (let* ((str (buffer-substring beg (point)))
3225 (forward-char 1) 3229 (var (let ((read-circle nil))
3226 (let ((read-circle nil)) 3230 (read str)))
3227 (setq val (read (current-buffer)))) 3231 val val2)
3228 (if mode-only 3232 ;; Read the variable value.
3229 (if (eq var 'mode) 3233 (skip-chars-forward "^:")
3230 (setq result t)) 3234 (forward-char 1)
3231 (unless (eq var 'coding) 3235 (let ((read-circle nil))
3232 (condition-case nil 3236 (setq val (read (current-buffer))))
3233 (push (cons (if (eq var 'eval) 3237 (if mode-only
3234 'eval 3238 (and (eq var 'mode)
3235 (indirect-variable var)) 3239 ;; Specifying minor-modes via mode: is
3236 val) result) 3240 ;; deprecated, but try to reject them anyway.
3237 (error nil))))) 3241 (not (string-match
3238 (forward-line 1)))))))) 3242 "-minor\\'"
3243 (setq val2 (symbol-name val))))
3244 (setq result (intern (concat val2 "-mode"))))
3245 (unless (eq var 'coding)
3246 (condition-case nil
3247 (push (cons (if (eq var 'eval)
3248 'eval
3249 (indirect-variable var))
3250 val) result)
3251 (error nil)))))
3252 (forward-line 1)))))))))
3239 ;; Now we've read all the local variables. 3253 ;; Now we've read all the local variables.
3240 ;; If MODE-ONLY is non-nil, return whether the mode was specified. 3254 ;; If MODE-ONLY is non-nil, return whether the mode was specified.
3241 (cond (mode-only result) 3255 (cond (mode-only result)
diff --git a/lisp/image-mode.el b/lisp/image-mode.el
index 17f006e81a1..f4eb5eeaf45 100644
--- a/lisp/image-mode.el
+++ b/lisp/image-mode.el
@@ -532,7 +532,8 @@ the image by calling `image-mode'."
532 (when (image-get-display-property) 532 (when (image-get-display-property)
533 (image-toggle-display-text) 533 (image-toggle-display-text)
534 ;; Update image display. 534 ;; Update image display.
535 (redraw-frame (selected-frame)) 535 (mapc (lambda (window) (redraw-frame (window-frame window)))
536 (get-buffer-window-list (current-buffer) 'nomini 'visible))
536 (image-toggle-display-image))) 537 (image-toggle-display-image)))
537 538
538 539
diff --git a/lisp/nxml/rng-xsd.el b/lisp/nxml/rng-xsd.el
index 266f8daac9e..b481039fdab 100644
--- a/lisp/nxml/rng-xsd.el
+++ b/lisp/nxml/rng-xsd.el
@@ -238,7 +238,7 @@ must be equal."
238 obj))) 238 obj)))
239 239
240(defun rng-xsd-check-pattern (str regexp convert &rest args) 240(defun rng-xsd-check-pattern (str regexp convert &rest args)
241 (and (string-match regexp str) 241 (and (let ((case-fold-search nil)) (string-match regexp str))
242 (apply convert (cons str args)))) 242 (apply convert (cons str args))))
243 243
244 244
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el
index 3b819a149b2..db8e82193b3 100644
--- a/lisp/progmodes/grep.el
+++ b/lisp/progmodes/grep.el
@@ -698,7 +698,9 @@ This function is called from `compilation-filter-hook'."
698 grep-hit-face) 698 grep-hit-face)
699 (set (make-local-variable 'compilation-error-regexp-alist) 699 (set (make-local-variable 'compilation-error-regexp-alist)
700 grep-regexp-alist) 700 grep-regexp-alist)
701 (set (make-local-variable 'compilation-directory-matcher) nil) 701 ;; compilation-directory-matcher can't be nil, so we set it to a regexp that
702 ;; can never match.
703 (set (make-local-variable 'compilation-directory-matcher) '("\\`a\\`"))
702 (set (make-local-variable 'compilation-process-setup-function) 704 (set (make-local-variable 'compilation-process-setup-function)
703 'grep-process-setup) 705 'grep-process-setup)
704 (set (make-local-variable 'compilation-disable-input) t) 706 (set (make-local-variable 'compilation-disable-input) t)
diff --git a/lisp/vc/diff-mode.el b/lisp/vc/diff-mode.el
index 56ebe868a2d..392973e08fe 100644
--- a/lisp/vc/diff-mode.el
+++ b/lisp/vc/diff-mode.el
@@ -295,9 +295,14 @@ try to refine the current hunk, as well."
295(defvar diff-added-face 'diff-added) 295(defvar diff-added-face 'diff-added)
296 296
297(defface diff-changed 297(defface diff-changed
298 '((((type tty pc) (class color) (background light)) 298 ;; We normally apply a `shadow'-based face on the `diff-context'
299 ;; face, and keep `diff-changed' the default.
300 '((((class color grayscale) (min-colors 88)))
301 ;; If the terminal lacks sufficient colors for shadowing,
302 ;; highlight changed lines explicitly.
303 (((class color) (background light))
299 :foreground "magenta" :weight bold :slant italic) 304 :foreground "magenta" :weight bold :slant italic)
300 (((type tty pc) (class color) (background dark)) 305 (((class color) (background dark))
301 :foreground "yellow" :weight bold :slant italic)) 306 :foreground "yellow" :weight bold :slant italic))
302 "`diff-mode' face used to highlight changed lines." 307 "`diff-mode' face used to highlight changed lines."
303 :group 'diff-mode) 308 :group 'diff-mode)
diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el
index 01b6f2fc26e..5f3a9a21b59 100644
--- a/lisp/vc/vc-dir.el
+++ b/lisp/vc/vc-dir.el
@@ -1238,6 +1238,7 @@ These are the commands available for use in the file status buffer:
1238 (format "%-20s" state) 1238 (format "%-20s" state)
1239 'face (cond ((eq state 'up-to-date) 'font-lock-builtin-face) 1239 'face (cond ((eq state 'up-to-date) 'font-lock-builtin-face)
1240 ((memq state '(missing conflict)) 'font-lock-warning-face) 1240 ((memq state '(missing conflict)) 'font-lock-warning-face)
1241 ((eq state 'edited) 'font-lock-constant-face)
1241 (t 'font-lock-variable-name-face)) 1242 (t 'font-lock-variable-name-face))
1242 'mouse-face 'highlight) 1243 'mouse-face 'highlight)
1243 " " 1244 " "
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 31cc8ad9ca9..7b7813db94b 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -2283,9 +2283,9 @@ If the item is checked, CHOSEN is a cons whose cdr is the value."
2283 (while vals 2283 (while vals
2284 (let ((answer (widget-checklist-match-up args vals))) 2284 (let ((answer (widget-checklist-match-up args vals)))
2285 (cond (answer 2285 (cond (answer
2286 (let ((vals (widget-match-inline answer vals))) 2286 (let ((vals2 (widget-match-inline answer vals)))
2287 (setq found (append found (car vals)) 2287 (setq found (append found (car vals2))
2288 vals (cdr vals) 2288 vals (cdr vals2)
2289 args (delq answer args)))) 2289 args (delq answer args))))
2290 (greedy 2290 (greedy
2291 (setq rest (append rest (list (car vals))) 2291 (setq rest (append rest (list (car vals)))
diff --git a/m4/mktime.m4 b/m4/mktime.m4
index 56b2416d619..01167a1ec0e 100644
--- a/m4/mktime.m4
+++ b/m4/mktime.m4
@@ -1,4 +1,4 @@
1# serial 19 1# serial 20
2dnl Copyright (C) 2002-2003, 2005-2007, 2009-2011 Free Software Foundation, 2dnl Copyright (C) 2002-2003, 2005-2007, 2009-2011 Free Software Foundation,
3dnl Inc. 3dnl Inc.
4dnl This file is free software; the Free Software Foundation 4dnl This file is free software; the Free Software Foundation
@@ -234,6 +234,23 @@ AC_DEFUN([gl_FUNC_MKTIME],
234 fi 234 fi
235]) 235])
236 236
237AC_DEFUN([gl_FUNC_MKTIME_INTERNAL], [
238 AC_REQUIRE([gl_FUNC_MKTIME])
239 if test $REPLACE_MKTIME = 0; then
240 dnl BeOS has __mktime_internal in libc, but other platforms don't.
241 AC_CHECK_FUNC([__mktime_internal],
242 [AC_DEFINE([mktime_internal], [__mktime_internal],
243 [Define to the real name of the mktime_internal function.])
244 ],
245 [dnl mktime works but it doesn't export __mktime_internal,
246 dnl so we need to substitute our own mktime implementation.
247 REPLACE_MKTIME=1
248 AC_LIBOBJ([mktime])
249 gl_PREREQ_MKTIME
250 ])
251 fi
252])
253
237# Prerequisites of lib/mktime.c. 254# Prerequisites of lib/mktime.c.
238AC_DEFUN([gl_PREREQ_MKTIME], 255AC_DEFUN([gl_PREREQ_MKTIME],
239[ 256[
diff --git a/m4/readlink.m4 b/m4/readlink.m4
index a502ca560fe..ec737d3f408 100644
--- a/m4/readlink.m4
+++ b/m4/readlink.m4
@@ -1,4 +1,4 @@
1# readlink.m4 serial 9 1# readlink.m4 serial 10
2dnl Copyright (C) 2003, 2007, 2009-2011 Free Software Foundation, Inc. 2dnl Copyright (C) 2003, 2007, 2009-2011 Free Software Foundation, Inc.
3dnl This file is free software; the Free Software Foundation 3dnl This file is free software; the Free Software Foundation
4dnl gives unlimited permission to copy and/or distribute it, 4dnl gives unlimited permission to copy and/or distribute it,
@@ -48,7 +48,8 @@ AC_DEFUN([gl_FUNC_READLINK],
48 fi 48 fi
49]) 49])
50 50
51# Like gl_FUNC_READLINK, except prepare for separate compilation (no AC_LIBOBJ). 51# Like gl_FUNC_READLINK, except prepare for separate compilation
52# (no REPLACE_READLINK, no AC_LIBOBJ).
52AC_DEFUN([gl_FUNC_READLINK_SEPARATE], 53AC_DEFUN([gl_FUNC_READLINK_SEPARATE],
53[ 54[
54 AC_CHECK_FUNCS_ONCE([readlink]) 55 AC_CHECK_FUNCS_ONCE([readlink])
diff --git a/src/ChangeLog b/src/ChangeLog
index b74d831d707..74f0bd52a5d 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -22,8 +22,6 @@
22 22
23 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN. 23 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
24 24
252011-05-21 Paul Eggert <eggert@cs.ucla.edu>
26
27 * data.c: Avoid integer truncation in expressions involving floats. 25 * data.c: Avoid integer truncation in expressions involving floats.
28 * data.c: Include <intprops.h>. 26 * data.c: Include <intprops.h>.
29 (arith_driver): When there's an integer overflow in an expression 27 (arith_driver): When there's an integer overflow in an expression
@@ -33,8 +31,6 @@
33 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero. 31 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
34 Do not rely on undefined behavior after integer overflow. 32 Do not rely on undefined behavior after integer overflow.
35 33
362011-05-20 Paul Eggert <eggert@cs.ucla.edu>
37
38 merge count_size_as_multibyte, parse_str_to_multibyte 34 merge count_size_as_multibyte, parse_str_to_multibyte
39 * character.c, character.h (count_size_as_multibyte): 35 * character.c, character.h (count_size_as_multibyte):
40 Renamed from parse_str_to_multibyte; all uses changed. 36 Renamed from parse_str_to_multibyte; all uses changed.
@@ -44,6 +40,40 @@
44 a character than a buffer op, so better that it's in character.c. 40 a character than a buffer op, so better that it's in character.c.
45 * fns.c, print.c: Adjust to above changes. 41 * fns.c, print.c: Adjust to above changes.
46 42
432011-05-22 Paul Eggert <eggert@cs.ucla.edu>
44
45 * gnutls.c: Remove unused macros.
46 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
47 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
48 Remove macros that are defined and never used.
49 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
50
512011-05-22 Chong Yidong <cyd@stupidchicken.com>
52
53 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
54 (Fx_get_selection_internal): Minor cleanup.
55 (Fx_own_selection_internal): Rename arguments for consistency with
56 select.el.
57
582011-05-22 Paul Eggert <eggert@cs.ucla.edu>
59
60 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
61
622011-05-22 Chong Yidong <cyd@stupidchicken.com>
63
64 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
65
662011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
67
68 * dispnew.c (scrolling_window): Don't exclude the case that the
69 last enabled row in the desired matrix touches the bottom boundary.
70
712011-05-21 Glenn Morris <rgm@gnu.org>
72
73 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
74 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
75 and add some more files.
76
472011-05-20 Eli Zaretskii <eliz@gnu.org> 772011-05-20 Eli Zaretskii <eliz@gnu.org>
48 78
49 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to 79 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
diff --git a/src/Makefile.in b/src/Makefile.in
index 557a6f54748..c4250b90633 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -149,11 +149,13 @@ M17N_FLT_LIBS = @M17N_FLT_LIBS@
149 149
150DBUS_CFLAGS = @DBUS_CFLAGS@ 150DBUS_CFLAGS = @DBUS_CFLAGS@
151DBUS_LIBS = @DBUS_LIBS@ 151DBUS_LIBS = @DBUS_LIBS@
152## dbusbind.o if HAVE_DBUS, else empty.
152DBUS_OBJ = @DBUS_OBJ@ 153DBUS_OBJ = @DBUS_OBJ@
153 154
154GCONF_CFLAGS = @GCONF_CFLAGS@ 155GCONF_CFLAGS = @GCONF_CFLAGS@
155GCONF_LIBS = @GCONF_LIBS@ 156GCONF_LIBS = @GCONF_LIBS@
156 157
158## gtkutil.o if USE_GTK, else empty.
157GTK_OBJ=@GTK_OBJ@ 159GTK_OBJ=@GTK_OBJ@
158 160
159## -ltermcap, or -lncurses, or -lcurses, or "". 161## -ltermcap, or -lncurses, or -lcurses, or "".
@@ -198,7 +200,10 @@ OLDXMENU_DEPS=@OLDXMENU_DEPS@
198## Else $(OLDXMENU). 200## Else $(OLDXMENU).
199LIBXMENU=@LIBXMENU@ 201LIBXMENU=@LIBXMENU@
200 202
203## xmenu.o if HAVE_X_WINDOWS, else empty.
201XMENU_OBJ=@XMENU_OBJ@ 204XMENU_OBJ=@XMENU_OBJ@
205## xterm.o xfns.o xselect.o xrdb.o fontset.o xsmfns.o fringe.o image.o
206## xsettings.o xgselect.o if HAVE_X_WINDOWS, else empty.
202XOBJ=@XOBJ@ 207XOBJ=@XOBJ@
203 208
204TOOLKIT_LIBW=@TOOLKIT_LIBW@ 209TOOLKIT_LIBW=@TOOLKIT_LIBW@
@@ -241,7 +246,9 @@ MSDOS_X_OBJ =
241ns_appdir=@ns_appdir@ 246ns_appdir=@ns_appdir@
242ns_appbindir=@ns_appbindir@ 247ns_appbindir=@ns_appbindir@
243ns_appsrc=@ns_appsrc@ 248ns_appsrc=@ns_appsrc@
249## fontset.o fringe.o image.o if HAVE_NS, else empty.
244NS_OBJ=@NS_OBJ@ 250NS_OBJ=@NS_OBJ@
251## nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o if HAVE_NS.
245NS_OBJC_OBJ=@NS_OBJC_OBJ@ 252NS_OBJC_OBJ=@NS_OBJC_OBJ@
246## Only set if NS_IMPL_GNUSTEP. 253## Only set if NS_IMPL_GNUSTEP.
247GNU_OBJC_CFLAGS=@GNU_OBJC_CFLAGS@ 254GNU_OBJC_CFLAGS=@GNU_OBJC_CFLAGS@
@@ -333,12 +340,16 @@ obj = $(base_obj) $(NS_OBJC_OBJ)
333 340
334## Object files used on some machine or other. 341## Object files used on some machine or other.
335## These go in the DOC file on all machines in case they are needed. 342## These go in the DOC file on all machines in case they are needed.
343## Some of them have no DOC entries, but it does no harm to have them
344## in the list, in case they ever add any such entries.
336SOME_MACHINE_OBJECTS = dosfns.o msdos.o \ 345SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
337 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \ 346 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
338 fontset.o dbusbind.o \ 347 fontset.o dbusbind.o \
339 nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \ 348 nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
340 w32.o w32console.o w32fns.o w32heap.o w32inevt.o \ 349 w32.o w32console.o w32fns.o w32heap.o w32inevt.o \
341 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o $(FONT_OBJ) 350 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o \
351 w16select.o widget.o xfont.o ftfont.o xftfont.o ftxfont.o gtkutil.o \
352 xsettings.o xgselect.o termcap.o
342 353
343## gmalloc.o if !SYSTEM_MALLOC && !DOUG_LEA_MALLOC, else empty. 354## gmalloc.o if !SYSTEM_MALLOC && !DOUG_LEA_MALLOC, else empty.
344GMALLOC_OBJ=@GMALLOC_OBJ@ 355GMALLOC_OBJ=@GMALLOC_OBJ@
@@ -411,7 +422,7 @@ emacs$(EXEEXT): temacs$(EXEEXT) $(etc)/DOC $(lisp)
411$(etc)/DOC: $(libsrc)/make-docfile$(EXEEXT) $(obj) $(lisp) 422$(etc)/DOC: $(libsrc)/make-docfile$(EXEEXT) $(obj) $(lisp)
412 -rm -f $(etc)/DOC 423 -rm -f $(etc)/DOC
413 $(libsrc)/make-docfile -d $(srcdir) $(SOME_MACHINE_OBJECTS) $(obj) > $(etc)/DOC 424 $(libsrc)/make-docfile -d $(srcdir) $(SOME_MACHINE_OBJECTS) $(obj) > $(etc)/DOC
414 $(libsrc)/make-docfile -a $(etc)/DOC -d $(srcdir) `sed -n -e 's| \\\\||' -e 's|^[ ]*$$(lispsource)|../lisp|p' $(srcdir)/lisp.mk` 425 $(libsrc)/make-docfile -a $(etc)/DOC -d $(lispsource) `sed -n -e 's| \\\\||' -e 's|^[ ]*$$(lispsource)/||p' $(srcdir)/lisp.mk`
415 426
416$(libsrc)/make-docfile$(EXEEXT): 427$(libsrc)/make-docfile$(EXEEXT):
417 cd $(libsrc); $(MAKE) $(MFLAGS) make-docfile$(EXEEXT) 428 cd $(libsrc); $(MAKE) $(MFLAGS) make-docfile$(EXEEXT)
diff --git a/src/dispnew.c b/src/dispnew.c
index 0457d650b3a..41f486baf16 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -4330,23 +4330,29 @@ scrolling_window (struct window *w, int header_line_p)
4330 4330
4331 first_old = first_new = i; 4331 first_old = first_new = i;
4332 4332
4333 /* Set last_new to the index + 1 of the last enabled row in the 4333 /* Set last_new to the index + 1 of the row that reaches the
4334 desired matrix. */ 4334 bottom boundary in the desired matrix. Give up if we find a
4335 disabled row before we reach the bottom boundary. */
4335 i = first_new + 1; 4336 i = first_new + 1;
4336 while (i < desired_matrix->nrows - 1 4337 while (i < desired_matrix->nrows - 1)
4337 && MATRIX_ROW (desired_matrix, i)->enabled_p 4338 {
4338 && MATRIX_ROW_BOTTOM_Y (MATRIX_ROW (desired_matrix, i)) <= yb) 4339 int bottom;
4339 ++i;
4340 4340
4341 if (!MATRIX_ROW (desired_matrix, i)->enabled_p) 4341 if (!MATRIX_ROW (desired_matrix, i)->enabled_p)
4342 return 0; 4342 return 0;
4343 bottom = MATRIX_ROW_BOTTOM_Y (MATRIX_ROW (desired_matrix, i));
4344 if (bottom <= yb)
4345 ++i;
4346 if (bottom >= yb)
4347 break;
4348 }
4343 4349
4344 last_new = i; 4350 last_new = i;
4345 4351
4346 /* Set last_old to the index + 1 of the last enabled row in the 4352 /* Set last_old to the index + 1 of the row that reaches the bottom
4347 current matrix. We don't look at the enabled flag here because 4353 boundary in the current matrix. We don't look at the enabled
4348 we plan to reuse part of the display even if other parts are 4354 flag here because we plan to reuse part of the display even if
4349 disabled. */ 4355 other parts are disabled. */
4350 i = first_old + 1; 4356 i = first_old + 1;
4351 while (i < current_matrix->nrows - 1) 4357 while (i < current_matrix->nrows - 1)
4352 { 4358 {
diff --git a/src/gnutls.c b/src/gnutls.c
index 540bfaac25c..5558fb9ee0b 100644
--- a/src/gnutls.c
+++ b/src/gnutls.c
@@ -221,10 +221,7 @@ init_gnutls_functions (Lisp_Object libraries)
221#define fn_gnutls_record_send gnutls_record_send 221#define fn_gnutls_record_send gnutls_record_send
222#define fn_gnutls_strerror gnutls_strerror 222#define fn_gnutls_strerror gnutls_strerror
223#define fn_gnutls_transport_set_errno gnutls_transport_set_errno 223#define fn_gnutls_transport_set_errno gnutls_transport_set_errno
224#define fn_gnutls_transport_set_lowat gnutls_transport_set_lowat
225#define fn_gnutls_transport_set_ptr2 gnutls_transport_set_ptr2 224#define fn_gnutls_transport_set_ptr2 gnutls_transport_set_ptr2
226#define fn_gnutls_transport_set_pull_function gnutls_transport_set_pull_function
227#define fn_gnutls_transport_set_push_function gnutls_transport_set_push_function
228#define fn_gnutls_x509_crt_check_hostname gnutls_x509_crt_check_hostname 225#define fn_gnutls_x509_crt_check_hostname gnutls_x509_crt_check_hostname
229#define fn_gnutls_x509_crt_deinit gnutls_x509_crt_deinit 226#define fn_gnutls_x509_crt_deinit gnutls_x509_crt_deinit
230#define fn_gnutls_x509_crt_import gnutls_x509_crt_import 227#define fn_gnutls_x509_crt_import gnutls_x509_crt_import
diff --git a/src/xselect.c b/src/xselect.c
index 3ddd4c54b49..c4e9fbf9ff7 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -38,6 +38,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
38#include "process.h" 38#include "process.h"
39#include "termhooks.h" 39#include "termhooks.h"
40#include "keyboard.h" 40#include "keyboard.h"
41#include "character.h"
41 42
42#include <X11/Xproto.h> 43#include <X11/Xproto.h>
43 44
@@ -400,17 +401,6 @@ x_get_local_selection (Lisp_Object selection_symbol, Lisp_Object target_type, in
400 handler_fn = Qnil; 401 handler_fn = Qnil;
401 value = XCAR (XCDR (XCDR (local_value))); 402 value = XCAR (XCDR (XCDR (local_value)));
402 } 403 }
403#if 0
404 else if (EQ (target_type, QDELETE))
405 {
406 handler_fn = Qnil;
407 Fx_disown_selection_internal
408 (selection_symbol,
409 XCAR (XCDR (XCDR (local_value))));
410 value = QNULL;
411 }
412#endif
413
414#if 0 /* #### MULTIPLE doesn't work yet */ 404#if 0 /* #### MULTIPLE doesn't work yet */
415 else if (CONSP (target_type) 405 else if (CONSP (target_type)
416 && XCAR (target_type) == QMULTIPLE) 406 && XCAR (target_type) == QMULTIPLE)
@@ -2006,18 +1996,18 @@ x_handle_selection_notify (XSelectionEvent *event)
2006 1996
2007DEFUN ("x-own-selection-internal", Fx_own_selection_internal, 1997DEFUN ("x-own-selection-internal", Fx_own_selection_internal,
2008 Sx_own_selection_internal, 2, 2, 0, 1998 Sx_own_selection_internal, 2, 2, 0,
2009 doc: /* Assert an X selection of the given TYPE with the given VALUE. 1999 doc: /* Assert an X selection of type SELECTION and value VALUE.
2010TYPE is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. 2000SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'.
2011\(Those are literal upper-case symbol names, since that's what X expects.) 2001\(Those are literal upper-case symbol names, since that's what X expects.)
2012VALUE is typically a string, or a cons of two markers, but may be 2002VALUE is typically a string, or a cons of two markers, but may be
2013anything that the functions on `selection-converter-alist' know about. */) 2003anything that the functions on `selection-converter-alist' know about. */)
2014 (Lisp_Object selection_name, Lisp_Object selection_value) 2004 (Lisp_Object selection, Lisp_Object value)
2015{ 2005{
2016 check_x (); 2006 check_x ();
2017 CHECK_SYMBOL (selection_name); 2007 CHECK_SYMBOL (selection);
2018 if (NILP (selection_value)) error ("SELECTION-VALUE may not be nil"); 2008 if (NILP (value)) error ("VALUE may not be nil");
2019 x_own_selection (selection_name, selection_value); 2009 x_own_selection (selection, value);
2020 return selection_value; 2010 return value;
2021} 2011}
2022 2012
2023 2013
@@ -2056,22 +2046,16 @@ selections. If omitted, defaults to the time for the last event. */)
2056 val = x_get_local_selection (selection_symbol, target_type, 1); 2046 val = x_get_local_selection (selection_symbol, target_type, 1);
2057 2047
2058 if (NILP (val)) 2048 if (NILP (val))
2059 { 2049 RETURN_UNGCPRO (x_get_foreign_selection (selection_symbol,
2060 val = x_get_foreign_selection (selection_symbol, target_type, time_stamp); 2050 target_type, time_stamp));
2061 goto DONE;
2062 }
2063 2051
2064 if (CONSP (val) 2052 if (CONSP (val) && SYMBOLP (XCAR (val)))
2065 && SYMBOLP (XCAR (val)))
2066 { 2053 {
2067 val = XCDR (val); 2054 val = XCDR (val);
2068 if (CONSP (val) && NILP (XCDR (val))) 2055 if (CONSP (val) && NILP (XCDR (val)))
2069 val = XCAR (val); 2056 val = XCAR (val);
2070 } 2057 }
2071 val = clean_local_selection_data (val); 2058 RETURN_UNGCPRO (clean_local_selection_data (val));
2072 DONE:
2073 UNGCPRO;
2074 return val;
2075} 2059}
2076 2060
2077DEFUN ("x-disown-selection-internal", Fx_disown_selection_internal, 2061DEFUN ("x-disown-selection-internal", Fx_disown_selection_internal,
@@ -2651,25 +2635,22 @@ A value of 0 means wait as long as necessary. This is initialized from the
2651 x_selection_timeout = 0; 2635 x_selection_timeout = 0;
2652 2636
2653 /* QPRIMARY is defined in keyboard.c. */ 2637 /* QPRIMARY is defined in keyboard.c. */
2654 QSECONDARY = intern_c_string ("SECONDARY"); staticpro (&QSECONDARY); 2638 DEFSYM (QSECONDARY, "SECONDARY");
2655 QSTRING = intern_c_string ("STRING"); staticpro (&QSTRING); 2639 DEFSYM (QSTRING, "STRING");
2656 QINTEGER = intern_c_string ("INTEGER"); staticpro (&QINTEGER); 2640 DEFSYM (QINTEGER, "INTEGER");
2657 QCLIPBOARD = intern_c_string ("CLIPBOARD"); staticpro (&QCLIPBOARD); 2641 DEFSYM (QCLIPBOARD, "CLIPBOARD");
2658 QTIMESTAMP = intern_c_string ("TIMESTAMP"); staticpro (&QTIMESTAMP); 2642 DEFSYM (QTIMESTAMP, "TIMESTAMP");
2659 QTEXT = intern_c_string ("TEXT"); staticpro (&QTEXT); 2643 DEFSYM (QTEXT, "TEXT");
2660 QCOMPOUND_TEXT = intern_c_string ("COMPOUND_TEXT"); staticpro (&QCOMPOUND_TEXT); 2644 DEFSYM (QCOMPOUND_TEXT, "COMPOUND_TEXT");
2661 QUTF8_STRING = intern_c_string ("UTF8_STRING"); staticpro (&QUTF8_STRING); 2645 DEFSYM (QUTF8_STRING, "UTF8_STRING");
2662 QDELETE = intern_c_string ("DELETE"); staticpro (&QDELETE); 2646 DEFSYM (QDELETE, "DELETE");
2663 QMULTIPLE = intern_c_string ("MULTIPLE"); staticpro (&QMULTIPLE); 2647 DEFSYM (QMULTIPLE, "MULTIPLE");
2664 QINCR = intern_c_string ("INCR"); staticpro (&QINCR); 2648 DEFSYM (QINCR, "INCR");
2665 QEMACS_TMP = intern_c_string ("_EMACS_TMP_"); staticpro (&QEMACS_TMP); 2649 DEFSYM (QEMACS_TMP, "_EMACS_TMP_");
2666 QTARGETS = intern_c_string ("TARGETS"); staticpro (&QTARGETS); 2650 DEFSYM (QTARGETS, "TARGETS");
2667 QATOM = intern_c_string ("ATOM"); staticpro (&QATOM); 2651 DEFSYM (QATOM, "ATOM");
2668 QATOM_PAIR = intern_c_string ("ATOM_PAIR"); staticpro (&QATOM_PAIR); 2652 DEFSYM (QATOM_PAIR, "ATOM_PAIR");
2669 QNULL = intern_c_string ("NULL"); staticpro (&QNULL); 2653 DEFSYM (QNULL, "NULL");
2670 Qcompound_text_with_extensions = intern_c_string ("compound-text-with-extensions"); 2654 DEFSYM (Qcompound_text_with_extensions, "compound-text-with-extensions");
2671 staticpro (&Qcompound_text_with_extensions); 2655 DEFSYM (Qforeign_selection, "foreign-selection");
2672
2673 Qforeign_selection = intern_c_string ("foreign-selection");
2674 staticpro (&Qforeign_selection);
2675} 2656}