diff options
| author | Paul Eggert | 2011-05-22 17:09:23 -0700 |
|---|---|---|
| committer | Paul Eggert | 2011-05-22 17:09:23 -0700 |
| commit | af3d522ffbf83826f80ab8f6d811e19e97c37384 (patch) | |
| tree | 4f3d6047a2e0a30c8374f2da5e02858b0129edac | |
| parent | 37910ab2514f67d12c5b20b63ec6333c02df43c1 (diff) | |
| parent | 7400048f602459209e89da4680ed9cc351ace4ee (diff) | |
| download | emacs-af3d522ffbf83826f80ab8f6d811e19e97c37384.tar.gz emacs-af3d522ffbf83826f80ab8f6d811e19e97c37384.zip | |
Merge from trunk.
| -rw-r--r-- | ChangeLog | 9 | ||||
| -rw-r--r-- | Makefile.in | 2 | ||||
| -rw-r--r-- | admin/ChangeLog | 4 | ||||
| -rw-r--r-- | admin/bzrmerge.el | 3 | ||||
| -rw-r--r-- | doc/emacs/ChangeLog | 5 | ||||
| -rw-r--r-- | doc/emacs/mule.texi | 47 | ||||
| -rw-r--r-- | lib-src/etags.c | 7 | ||||
| -rw-r--r-- | lib/intprops.h | 38 | ||||
| -rw-r--r-- | lib/stdint.in.h | 2 | ||||
| -rw-r--r-- | lisp/ChangeLog | 46 | ||||
| -rw-r--r-- | lisp/dired-aux.el | 19 | ||||
| -rw-r--r-- | lisp/dired.el | 2 | ||||
| -rw-r--r-- | lisp/emacs-lisp/bytecomp.el | 4 | ||||
| -rw-r--r-- | lisp/emacs-lisp/macroexp.el | 10 | ||||
| -rw-r--r-- | lisp/files.el | 260 | ||||
| -rw-r--r-- | lisp/image-mode.el | 3 | ||||
| -rw-r--r-- | lisp/nxml/rng-xsd.el | 2 | ||||
| -rw-r--r-- | lisp/progmodes/grep.el | 4 | ||||
| -rw-r--r-- | lisp/vc/diff-mode.el | 9 | ||||
| -rw-r--r-- | lisp/vc/vc-dir.el | 1 | ||||
| -rw-r--r-- | lisp/wid-edit.el | 6 | ||||
| -rw-r--r-- | m4/mktime.m4 | 19 | ||||
| -rw-r--r-- | m4/readlink.m4 | 5 | ||||
| -rw-r--r-- | src/ChangeLog | 38 | ||||
| -rw-r--r-- | src/Makefile.in | 15 | ||||
| -rw-r--r-- | src/dispnew.c | 30 | ||||
| -rw-r--r-- | src/gnutls.c | 3 | ||||
| -rw-r--r-- | src/xselect.c | 79 |
28 files changed, 413 insertions, 259 deletions
| @@ -1,3 +1,12 @@ | |||
| 1 | 2011-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 | |||
| 6 | 2011-05-21 Andreas Schwab <schwab@linux-m68k.org> | ||
| 7 | |||
| 8 | * Makefile.in (AUTOMAKE_INPUTS): Add $(srcdir)/lib/gnulib.mk. | ||
| 9 | |||
| 1 | 2011-05-20 Eli Zaretskii <eliz@gnu.org> | 10 | 2011-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 | ||
| 425 | AUTOMAKE_INPUTS = @MAINT@ $(srcdir)/aclocal.m4 $(srcdir)/lib/Makefile.am | 425 | AUTOMAKE_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 |
| 428 | am--refresh: $(srcdir)/aclocal.m4 $(srcdir)/configure $(srcdir)/src/config.in | 428 | am--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 @@ | |||
| 1 | 2011-05-21 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * bzrmerge.el (bzrmerge-resolve): Suppress prompts about file-locals. | ||
| 4 | |||
| 1 | 2011-03-07 Chong Yidong <cyd@stupidchicken.com> | 5 | 2011-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 @@ | |||
| 1 | 2011-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 | |||
| 1 | 2011-05-18 Glenn Morris <rgm@gnu.org> | 6 | 2011-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 |
| 919 | reread the file using the correct coding system by typing @kbd{C-x | 919 | reread 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 |
| 921 | Emacs actually used to decode the file, look at the coding system | 921 | prompts for the coding system to use. To see what coding system Emacs |
| 922 | mnemonic letter near the left edge of the mode line (@pxref{Mode | 922 | actually used to decode the file, look at the coding system mnemonic |
| 923 | Line}), or type @kbd{C-h C @key{RET}}. | 923 | letter near the left edge of the mode line (@pxref{Mode Line}), or |
| 924 | type @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} |
| 997 | Use coding system @var{coding} for saving or revisiting the visited | 998 | Use coding system @var{coding} to save or revisit the visited file in |
| 998 | file in the current buffer. | 999 | the 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} |
| 1001 | Specify coding system @var{coding} for the immediately following | 1002 | Specify coding system @var{coding} for the immediately following |
| 1002 | command. | 1003 | command (@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} |
| 1005 | Revisit the current file using the coding system @var{coding}. | 1006 | Revisit 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} |
| 1008 | Convert a region that was decoded using coding system @var{wrong}, | 1010 | Convert 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} |
| 1086 | Use coding system @var{coding} for transferring selections to and from | 1088 | Use coding system @var{coding} for transferring selections to and from |
| 1087 | other window-based applications. | 1089 | other 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} |
| 1090 | Use coding system @var{coding} for transferring @emph{one} | 1092 | Use coding system @var{coding} for transferring @emph{one} |
| 1091 | selection---the next one---to or from another window-based application. | 1093 | selection---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} |
| 1094 | Use coding systems @var{input-coding} and @var{output-coding} for | 1097 | Use coding systems @var{input-coding} and @var{output-coding} for |
| 1095 | subprocess input and output in the current buffer. | 1098 | subprocess 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} | ||
| 1098 | Specify coding system @var{coding} for the immediately following | ||
| 1099 | command. | ||
| 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 | |||
| 1134 | and from a particular subprocess by giving the command in the | 1134 | and from a particular subprocess by giving the command in the |
| 1135 | corresponding buffer. | 1135 | corresponding 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} |
| 1138 | runs or starts a subprocess, to specify the coding system to use for | 1138 | (@code{universal-coding-system-argument}) just before the command that |
| 1139 | communication with that subprocess. | 1139 | runs or starts a subprocess, to specify the coding system for |
| 1140 | communicating 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 |
| 1142 | current language environment. | 1143 | current 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} |
| 1162 | Use coding system @var{coding} for encoding and decoding file | 1163 | Use 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} |
| 1208 | Use coding system @var{coding} for keyboard input. | 1209 | Use 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} |
| 1211 | Use coding system @var{coding} for terminal output. | 1213 | Use 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 @@ | |||
| 1 | 2011-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 | |||
| 6 | 2011-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 | |||
| 11 | 2011-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 | |||
| 16 | 2011-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 | |||
| 24 | 2011-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 | |||
| 30 | 2011-05-21 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 31 | |||
| 32 | * progmodes/grep.el (grep-mode): Fix last change (bug#8684). | ||
| 33 | |||
| 34 | 2011-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 | |||
| 1 | 2011-05-20 Stefan Monnier <monnier@iro.umontreal.ca> | 47 | 2011-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." | |||
| 2892 | That command is designed for interactive use only" fn)) | 2892 | That 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. |
| 3035 | Ignore any specification for `mode:' and `coding:'; | 3035 | Returns an alist of elements (VAR . VAL), where VAR is a variable |
| 3036 | `set-auto-mode' should already have handled `mode:', | 3036 | and 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 | 3038 | by `set-auto-mode' and `set-auto-coding', respectively). | |
| 3039 | If MODE-ONLY is non-nil, all we do is check whether the major | 3039 | Throws an error if the -*- line is malformed. |
| 3040 | mode is specified, returning t if it is specified. Otherwise, | 3040 | |
| 3041 | return an alist of elements (VAR . VAL), where VAR is a variable | 3041 | If MODE-ONLY is non-nil, just returns the symbol specifying the |
| 3042 | and VAL is the specified value." | 3042 | mode, 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. |
| 3147 | If MODE-ONLY is non-nil, all we do is check whether the major mode | 3149 | If MODE-ONLY is non-nil, all we do is check whether a \"mode:\" |
| 3148 | is specified, returning t if it is specified." | 3150 | is specified, and return the corresponding mode symbol, or nil. |
| 3151 | In this case, we try to ignore minor-modes, and only return a | ||
| 3152 | major-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 |
| 2 | dnl Copyright (C) 2002-2003, 2005-2007, 2009-2011 Free Software Foundation, | 2 | dnl Copyright (C) 2002-2003, 2005-2007, 2009-2011 Free Software Foundation, |
| 3 | dnl Inc. | 3 | dnl Inc. |
| 4 | dnl This file is free software; the Free Software Foundation | 4 | dnl 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 | ||
| 237 | AC_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. |
| 238 | AC_DEFUN([gl_PREREQ_MKTIME], | 255 | AC_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 |
| 2 | dnl Copyright (C) 2003, 2007, 2009-2011 Free Software Foundation, Inc. | 2 | dnl Copyright (C) 2003, 2007, 2009-2011 Free Software Foundation, Inc. |
| 3 | dnl This file is free software; the Free Software Foundation | 3 | dnl This file is free software; the Free Software Foundation |
| 4 | dnl gives unlimited permission to copy and/or distribute it, | 4 | dnl 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). | ||
| 52 | AC_DEFUN([gl_FUNC_READLINK_SEPARATE], | 53 | AC_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 | ||
| 25 | 2011-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 | ||
| 36 | 2011-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 | ||
| 43 | 2011-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 | |||
| 51 | 2011-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 | |||
| 58 | 2011-05-22 Paul Eggert <eggert@cs.ucla.edu> | ||
| 59 | |||
| 60 | * xselect.c (QSAVE_TARGETS): New static var, to fix build failure. | ||
| 61 | |||
| 62 | 2011-05-22 Chong Yidong <cyd@stupidchicken.com> | ||
| 63 | |||
| 64 | * xselect.c (syms_of_xselect): Include character.h; use DEFSYM. | ||
| 65 | |||
| 66 | 2011-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 | |||
| 71 | 2011-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 | |||
| 47 | 2011-05-20 Eli Zaretskii <eliz@gnu.org> | 77 | 2011-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 | ||
| 150 | DBUS_CFLAGS = @DBUS_CFLAGS@ | 150 | DBUS_CFLAGS = @DBUS_CFLAGS@ |
| 151 | DBUS_LIBS = @DBUS_LIBS@ | 151 | DBUS_LIBS = @DBUS_LIBS@ |
| 152 | ## dbusbind.o if HAVE_DBUS, else empty. | ||
| 152 | DBUS_OBJ = @DBUS_OBJ@ | 153 | DBUS_OBJ = @DBUS_OBJ@ |
| 153 | 154 | ||
| 154 | GCONF_CFLAGS = @GCONF_CFLAGS@ | 155 | GCONF_CFLAGS = @GCONF_CFLAGS@ |
| 155 | GCONF_LIBS = @GCONF_LIBS@ | 156 | GCONF_LIBS = @GCONF_LIBS@ |
| 156 | 157 | ||
| 158 | ## gtkutil.o if USE_GTK, else empty. | ||
| 157 | GTK_OBJ=@GTK_OBJ@ | 159 | GTK_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). |
| 199 | LIBXMENU=@LIBXMENU@ | 201 | LIBXMENU=@LIBXMENU@ |
| 200 | 202 | ||
| 203 | ## xmenu.o if HAVE_X_WINDOWS, else empty. | ||
| 201 | XMENU_OBJ=@XMENU_OBJ@ | 204 | XMENU_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. | ||
| 202 | XOBJ=@XOBJ@ | 207 | XOBJ=@XOBJ@ |
| 203 | 208 | ||
| 204 | TOOLKIT_LIBW=@TOOLKIT_LIBW@ | 209 | TOOLKIT_LIBW=@TOOLKIT_LIBW@ |
| @@ -241,7 +246,9 @@ MSDOS_X_OBJ = | |||
| 241 | ns_appdir=@ns_appdir@ | 246 | ns_appdir=@ns_appdir@ |
| 242 | ns_appbindir=@ns_appbindir@ | 247 | ns_appbindir=@ns_appbindir@ |
| 243 | ns_appsrc=@ns_appsrc@ | 248 | ns_appsrc=@ns_appsrc@ |
| 249 | ## fontset.o fringe.o image.o if HAVE_NS, else empty. | ||
| 244 | NS_OBJ=@NS_OBJ@ | 250 | NS_OBJ=@NS_OBJ@ |
| 251 | ## nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o if HAVE_NS. | ||
| 245 | NS_OBJC_OBJ=@NS_OBJC_OBJ@ | 252 | NS_OBJC_OBJ=@NS_OBJC_OBJ@ |
| 246 | ## Only set if NS_IMPL_GNUSTEP. | 253 | ## Only set if NS_IMPL_GNUSTEP. |
| 247 | GNU_OBJC_CFLAGS=@GNU_OBJC_CFLAGS@ | 254 | GNU_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. | ||
| 336 | SOME_MACHINE_OBJECTS = dosfns.o msdos.o \ | 345 | SOME_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. |
| 344 | GMALLOC_OBJ=@GMALLOC_OBJ@ | 355 | GMALLOC_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 | ||
| 2007 | DEFUN ("x-own-selection-internal", Fx_own_selection_internal, | 1997 | DEFUN ("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. |
| 2010 | TYPE is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. | 2000 | SELECTION 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.) |
| 2012 | VALUE is typically a string, or a cons of two markers, but may be | 2002 | VALUE is typically a string, or a cons of two markers, but may be |
| 2013 | anything that the functions on `selection-converter-alist' know about. */) | 2003 | anything 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 | ||
| 2077 | DEFUN ("x-disown-selection-internal", Fx_disown_selection_internal, | 2061 | DEFUN ("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 | } |