Fix write-region and its subroutines for buffers > 2GB.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
8a2cbd72
EZ
12011-04-10 Eli Zaretskii <eliz@gnu.org>
2
3 Fix write-region and its subroutines for buffers > 2GB.
4 * fileio.c (a_write, e_write): Modify declaration of arguments and
5 local variables to support buffers larger than 2GB.
6 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
7
8 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
9 argument, local variables, and return value.
10
11 * lisp.h: Update prototypes of emacs_write and emacs_read.
12
13 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
14
4073e537 152011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 16
1ebfdcb6
PE
17 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
18
b2ded58d
PE
19 Fix more problems found by GCC 4.6.0's static checks.
20
7d66342c
PE
21 * xdisp.c (vmessage): Use a better test for character truncation.
22
bbf47d44
PE
23 * charset.c (load_charset_map): <, not <=, for optimization,
24 and to avoid potential problems with integer overflow.
9248994d 25 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 26 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 27 * editfns.c (Fformat): Likewise.
1e69125e 28 * syntax.c (skip_chars): Likewise.
3befa583 29
e3019616
PE
30 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
31 This also lets GCC 4.6.0 generate slightly better loop code.
32
becfa255
PE
33 * callint.c (Fcall_interactively): <, not <=, for optimization.
34 (Fcall_interactively): Count the number of arguments produced,
35 not the number of arguments given. This is simpler and lets GCC
36 4.6.0 generate slightly better code.
37
dae0cd48
PE
38 * ftfont.c: Distingish more carefully between FcChar8 and char.
39 The previous code passed unsigned char * to a functions like
40 strlen and xstrcasecmp that expect char *, which does not
41 conform to the C standard.
42 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
43 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
44 char * when the C standard requires it.
45
76032d70
PE
46 * keyboard.c (read_char): Remove unused var.
47
eb3f1cc8
PE
48 * eval.c: Port to Windows vsnprintf (Bug#8435).
49 Include <limits.h>.
50 (SIZE_MAX): Define if the headers do not.
51 (verror): Do not give up if vsnprintf returns a negative count.
52 Instead, grow the buffer. This ports to Windows vsnprintf, which
53 does not conform to C99. Problem reported by Eli Zaretskii.
54 Also, simplify the allocation scheme, by avoiding the need for
55 calling realloc, and removing the ALLOCATED variable.
56
70476b54
PE
57 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
58
12020a9e
PE
59 Remove invocations of doprnt, as Emacs now uses vsnprintf.
60 But keep the doprint source code for now, as we might revamp it
61 and use it again (Bug#8435).
ea6c7ae6
PE
62 * lisp.h (doprnt): Remove.
63 * Makefile.in (base_obj): Remove doprnt.o.
64 * deps.mk (doprnt.o): Remove.
65
5fdb398c
PE
66 error: Print 32- and 64-bit integers portably (Bug#8435).
67 Without this change, on typical 64-bit hosts error ("...%d...", N)
68 was used to print both 32- and 64-bit integers N, which relied on
69 undefined behavior.
70 * lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
71 New macro.
72 * lisp.h (error, verror): Mark as printf-like functions.
73 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
74 Report overflow in size calculations when allocating printf buffer.
75 Do not truncate output string at its first null byte.
76 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
77 Truncate the output at a character boundary, since vsnprintf does not
78 do that.
79 * charset.c (check_iso_charset_parameter): Convert internal
80 character to string before calling 'error', since %c now has the
81 printf meaning.
82 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
83 overflow when computing char to be passed to 'error'. Do not
84 pass Lisp_Object to 'error'; pass the integer instead.
85 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
86 formatted with plain %d.
87
b189fa66
PE
88 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
89
bff87ef0
PE
90 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
91
7e2cac20
PE
92 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
93
ce4d90b5
PE
94 * xterm.c (x_catch_errors): Remove duplicate declaration.
95
266c9547
PE
96 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
97
79c49ad2
PE
98 * xdisp.c, lisp.h (message_nolog): Remove; unused.
99
368f4090
JM
1002011-04-10 Jim Meyering <meyering@redhat.com>
101
102 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
103 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
104 return ssize_t not "int", and use size_t as the buffer length.
105 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
106 * gnutls.h: Update declarations.
107 * process.c (read_process_output): Use ssize_t, to match.
108 (send_process): Likewise.
109
a32d4040
CY
1102011-04-09 Chong Yidong <cyd@stupidchicken.com>
111
112 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
113
8546720e 1142011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 115
8546720e
GM
116 * ftfont.c (get_adstyle_property, ftfont_pattern_entity): Use
117 unsigned char, to match FcChar8 type definition.
aac0c6e3 118
8546720e
GM
119 * xterm.c (handle_one_xevent):
120 * xmenu.c (create_and_show_popup_menu):
121 * xselect.c (x_decline_selection_request)
122 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 123
0a2f5c1a 1242011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
125
126 Fix some uses of `int' instead of EMACS_INT.
127 * search.c (string_match_1, fast_string_match)
128 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
129 (scan_buffer, find_next_newline_no_quit)
130 (find_before_next_newline, search_command, Freplace_match)
131 (Fmatch_data): Make some `int' variables be EMACS_INT.
132
133 * xdisp.c (display_count_lines): 3rd argument and return value now
134 EMACS_INT. All callers changed.
135 (pint2hrstr): Last argument is now EMACS_INT.
136
137 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
138 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
139 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
140 (decode_coding_utf_16, decode_coding_emacs_mule)
141 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
142 (decode_coding_ccl, decode_coding_charset)
143 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
144 (decode_coding_iso_2022, decode_coding_emacs_mule)
145 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
146 <char_offset, last_offset>: Declare EMACS_INT.
147 (encode_coding_utf_8, encode_coding_utf_16)
148 (encode_coding_emacs_mule, encode_invocation_designation)
149 (encode_designation_at_bol, encode_coding_iso_2022)
150 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
151 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
152 Declare EMACS_INT.
153 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
154 (encode_invocation_designation): Last argument P_NCHARS is now
155 EMACS_INT.
156 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
157 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
158
159 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
160 All users changed.
161
162 * ccl.c (Fccl_execute_on_string): Declare some variables
163 EMACS_INT.
164
8546720e 1652011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
166
167 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
168
4e19a977
CS
1692011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
170
171 * process.c (Fformat_network_address): Doc fix.
172
87302331
R
1732011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
174
175 * xml.c (parse_region): Avoid creating spurious whiespace nodes.
176
cbb59342
CY
1772011-04-08 Chong Yidong <cyd@stupidchicken.com>
178
179 * keyboard.c (read_char): Call Lisp function help-form-show,
180 instead of using internal_with_output_to_temp_buffer.
181 (Qhelp_form_show): New var.
e0d38eeb 182 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
183
184 * print.c (internal_with_output_to_temp_buffer): Function deleted.
185
186 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
187
e67a13ab
CY
1882011-04-06 Chong Yidong <cyd@stupidchicken.com>
189
190 * process.c (Flist_processes): Removed to Lisp.
191 (list_processes_1): Deleted.
192
973f782d
EZ
1932011-04-06 Eli Zaretskii <eliz@gnu.org>
194
7c106b1e
EZ
195 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
196
973f782d
EZ
197 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
198
41cf7d1a 1992011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 200
ca23cc88
PE
201 Fix more problems found by GCC 4.6.0's static checks.
202
f390e2d5
PE
203 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
204
42eea0d0
PE
205 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
206
b69769da 207 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 208
f9541e84
PE
209 * xdisp.c (vmessage): Mark as a printf-like function.
210
13841b55
PE
211 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
212
c136c10f
PE
213 * sound.c (sound_warning): Don't crash if arg contains a printf format.
214
5e2d4a30
PE
215 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
216 printf-like functions.
217 (tiff_load): Add casts to remove these marks before passing them
218 to system-supplied API.
219
583f48b9
PE
220 * eval.c (Fsignal): Remove excess argument to 'fatal'.
221
b25d760e
PE
222 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
223 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
224 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
225 directly, rather than having caller test rule sign. This avoids
226 some unnecessary tests.
227 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
228 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
229 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 230
bc7b6697 231 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 232 (xfont_open): Avoid unnecessary tests.
bc7b6697 233
27ccc379
PE
234 * composite.c (composition_gstring_put_cache): Use unsigned integer.
235
dcd5c89a
PE
236 * composite.h, composite.c (composition_gstring_put_cache):
237 Use EMACS_INT, not int, for length.
238
b13a45c6
PE
239 * composite.h (COMPOSITION_DECODE_REFS): New macro,
240 breaking out part of COMPOSITION_DECODE_RULE.
241 (COMPOSITION_DECODE_RULE): Use it.
242 * composite.c (get_composition_id): Remove unused local vars,
243 by using the new macro.
244
1e792e4d
PE
245 * textprop.c (set_text_properties_1): Change while to do-while,
246 since the condition is always true at first.
247
dc6c6455 248 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
249 (interval_deletion_adjustment): Return unsigned value.
250 All uses changed.
dc6c6455 251
aba7731a
PE
252 * process.c (list_processes_1, create_pty, read_process_output):
253 (exec_sentinel): Remove vars that were set but not used.
afd4052b 254 (create_pty): Remove unnecessary "volatile"s.
bc57d757 255 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 256 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 257 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 258
fdfc4bf3
PE
259 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
260
fca8fe46 261 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 262 (update_syntax_table): Use unsigned instead of int.
fca8fe46 263
06a0259a 264 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 265 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 266 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 267
e7b9e80f
PE
268 * print.c (print_error_message): Avoid int overflow.
269
56201685
PE
270 * font.c (font_list_entities): Redo for clarity,
271 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
272
78834453 273 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 274 (font_score): Avoid potential overflow in diff calculation.
78834453 275
0bc0b309 276 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 277 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 278
e610eaca
PE
279 * eval.c (funcall_lambda): Rename local to avoid shadowing.
280
b895abce
PE
281 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
282 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
283 can always succeed if overflow has undefined behavior.
284
1f1d9321 285 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 286 (wordify): Omit three unnecessary tests.
1f1d9321 287
c59478bc
PE
288 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
289 All callers changed. This avoids the need for an unused var.
290
79b73827
PE
291 * casefiddle.c (casify_region): Remove var that is set but not used.
292
a4db5dfe
PE
293 * dired.c (file_name_completion): Remove var that is set but not used.
294
43aae36e
PE
295 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
296
2a47c44d 297 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 298 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 299
a37c69bf
PE
300 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
301 Check for integer overflow on size calculations.
302
328ab8e7
PE
303 * buffer.c (Fprevious_overlay_change): Remove var that is set
304 but not used.
305
e5a2a5cb
PE
306 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
307 Remove vars that are set but not used.
8d84a6eb 308 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 309 (timer_check_2): Mark vars as initialized.
e5a2a5cb 310
a60e5f68
PE
311 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
312
f661cb61 313 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 314 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 315
f0397f5a
PE
316 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
317 that are set but not used.
318
8664db06 319 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 320 if XCreateBitmapFromData fails (Bug#8410).
8664db06 321
6abdaa4a
PE
322 * xselect.c (x_get_local_selection, x_handle_property_notify):
323 Remove vars that are set but not used.
324
0ce7538d 325 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 326 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 327
9ae848fc
PE
328 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
329 Remove var that is set but not used.
0b918413
PE
330 (scroll_bar_windows_size): Now size_t, not int.
331 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
332 Check for overflow.
9ae848fc 333
a5a62657
PE
334 * xfaces.c (realize_named_face): Remove vars that are set but not used.
335 (map_tty_color) [!defined MSDOS]: Likewise.
336
5c5cdd39
PE
337 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
338
66ebf983
PE
339 * coding.c: Remove vars that are set but not used.
340 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
341 All callers changed.
342 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
343 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
344 (decode_coding_charset): Remove vars that are set but not used.
345
1be4d761
PE
346 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
347 that is set but not used.
348
47553fa8
PE
349 * print.c (print_object): Remove var that is set but not used.
350
1f7196bf 351 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
352 The gnulib version avoids calling malloc in the usual case,
353 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
354 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
355 * filelock.c (current_lock_owner): Likewise.
356 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
357 * sysdep.c: Include allocator.h, careadlinkat.h.
358 (emacs_no_realloc_allocator): New static constant.
359 (emacs_readlink): New function.
fdb61804
PE
360 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
361 ../lib/careadlinkat.h.
d1fdcab7 362
f84c17c7
SM
3632011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
364
365 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
366 first non-nil return value).
367
ef3862ad
JD
3682011-04-03 Jan Djärv <jan.h.d@swipnet.se>
369
370 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
371 if not defined (Bug#8403).
372
376a7006
JB
3732011-04-02 Juanma Barranquero <lekktu@gmail.com>
374
375 * xdisp.c (display_count_lines): Remove parameter `start',
376 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
377 (get_char_face_and_encoding): Remove parameter `multibyte_p',
378 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
379 (fill_stretch_glyph_string): Remove parameters `row' and `area',
380 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
381 and thereabouts. All callers changed.
382 (get_per_char_metric): Remove parameter `f', unused since
383 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
384
6ca3801d
JM
3852011-04-02 Jim Meyering <meyering@redhat.com>
386
387 do not dereference NULL upon failed strdup
388 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
389 (ns_get_family): Likewise.
390
d8e2b5ba
JB
3912011-04-02 Juanma Barranquero <lekktu@gmail.com>
392
393 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
394
8c74fcbd
JD
3952011-04-02 Jan Djärv <jan.h.d@swipnet.se>
396
397 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
398 later (Bug#8403).
399
7200d79c
SM
4002011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
401
03408648 402 Add lexical binding.
7200d79c 403
03408648
SM
404 * window.c (Ftemp_output_buffer_show): New fun.
405 (Fsave_window_excursion):
406 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
407
408 * lread.c (lisp_file_lexically_bound_p): New function.
409 (Fload): Bind Qlexical_binding.
410 (readevalloop): Remove `evalfun' arg.
411 Bind Qinternal_interpreter_environment.
412 (Feval_buffer): Bind Qlexical_binding.
413 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
414 Mark as dynamic.
415 (syms_of_lread): Declare `lexical-binding'.
416
417 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
418
419 * keyboard.c (eval_dyn): New fun.
420 (menu_item_eval_property): Use it.
ca105506
SM
421
422 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 423
03408648
SM
424 * fns.c (concat, mapcar1): Accept byte-code-functions.
425
426 * eval.c (Fsetq): Handle lexical vars.
427 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
428 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
429 (FletX, Flet): Obey lexical binding.
430 (Fcommandp): Handle closures.
431 (Feval): New `lexical' arg.
432 (eval_sub): New function extracted from Feval. Use it almost
433 everywhere where Feval was used. Look up vars in lexical env.
434 Handle closures.
435 (Ffunctionp): Move from subr.el.
436 (Ffuncall): Handle closures.
437 (apply_lambda): Remove `eval_flags'.
438 (funcall_lambda): Handle closures and new byte-code-functions.
439 (Fspecial_variable_p): New function.
440 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
441 but without exporting it to Lisp.
23aba0ea 442
23aba0ea 443 * doc.c (Fdocumentation, store_function_docstring):
03408648 444 * data.c (Finteractive_form): Handle closures.
23aba0ea 445
03408648
SM
446 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
447 interactive spec.
ba83908c 448
03408648
SM
449 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN): New
450 byte-codes.
451 (exec_byte_code): New function extracted from Fbyte_code to handle new
452 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 453
03408648 454 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 455
03408648 456 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 457
e2abce01
JB
4582011-03-31 Juanma Barranquero <lekktu@gmail.com>
459
460 * xdisp.c (redisplay_internal): Fix prototype.
461
63696a73 4622011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 463
63696a73
EZ
464 * xdisp.c (SCROLL_LIMIT): New macro.
465 (try_scrolling): Use it when setting scroll_limit. Limit
466 scrolling to 100 screen lines.
467 (redisplay_window): Even when falling back on "recentering",
468 position point in the window according to scroll-conservatively,
469 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
470
471 (try_scrolling): When point is above the window, allow searching
472 as far as scroll_max, or one screenful, to compute vertical
473 distance from PT to the scroll margin position. This prevents
474 try_scrolling from unnecessarily failing when
475 scroll-conservatively is set to a value slightly larger than the
476 window height. Clean up the case of PT below the margin at bottom
477 of window: scroll_max can no longer be INT_MAX. When aggressive
478 scrolling is in use, don't let point enter the opposite scroll
479 margin as result of the scroll.
480 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
481 threshold of 100 lines for never-recentering scrolling.
482
e4cc2dfc
JB
4832011-03-31 Juanma Barranquero <lekktu@gmail.com>
484
485 * dispextern.h (move_it_by_lines):
486 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
487 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
488 (message_log_check_duplicate): Remove parameters `prev_bol' and
489 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
490 (redisplay_internal): Remove parameter `preserve_echo_area',
491 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
492
493 * indent.c (Fvertical_motion):
494 * window.c (window_scroll_pixel_based, Frecenter):
495 Don't pass `need_y_p' to `move_it_by_lines'.
496
1c470562
SM
4972011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
498
44f230aa
SM
499 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
500 steal a few bits to be more compact.
501 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
502 Remove unneeded casts.
503
1c470562
SM
504 * bytecode.c (Fbyte_code): CAR and CDR can GC.
505
888adce9
ZK
5062011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
507
508 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
509 binding" message (bug#7967).
510
f838ed7b
PE
5112011-03-30 Paul Eggert <eggert@cs.ucla.edu>
512
77861b95
PE
513 Fix more problems found by GCC 4.6.0's static checks.
514
de6dbc14
PE
515 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
516 Remove unused local var.
517
f838ed7b
PE
518 * editfns.c (Fmessage_box): Remove unused local var.
519
792c7b2b
PE
520 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
521 (note_mode_line_or_margin_highlight, note_mouse_highlight):
522 Omit unused local vars.
c499e557 523 * window.c (shrink_windows): Omit unused local var.
b01a1c29 524 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
525 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
526 Omit unused local var.
527
ba0165e1
PE
528 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
529 Don't assume string length fits in int.
32ad8845 530 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 531 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 532
3c59b4c9
PE
533 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
534 instead of alloca (Bug#8344).
535
a3eed478 536 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 537 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 538
eb4d412d
PE
539 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
540
1658b401
PE
541 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
542 concerns.
543
544 * term.c (produce_glyphless_glyph): Remove unnecessary test.
545
546 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 547
9a2c6e05
PE
548 * keyboard.c (syms_of_keyboard): Use the same style as later
549 in this function when indexing through an array. This also
550 works around GCC bug 48267.
551
03d0a109
PE
552 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
553
44f730c8
PE
554 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
555
fe75f926
PE
556 * chartab.c (sub_char_table_ref_and_range): Redo for slight
557 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
558
ffa8c828
PE
559 * keyboard.c, keyboard.h (num_input_events): Now size_t.
560 This avoids undefined behavior on integer overflow, and is a bit
561 more convenient anyway since it is compared to a size_t variable.
562
c5101a77
PE
563 Variadic C functions now count arguments with size_t, not int.
564 This avoids an unnecessary limitation on 64-bit machines, which
565 caused (substring ...) to crash on large vectors (Bug#8344).
566 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
567 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 568 All variadic functions and their callers changed accordingly.
c5101a77
PE
569 (struct gcpro.nvars): Now size_t, not int. All uses changed.
570 * data.c (arith_driver, float_arith_driver): Likewise.
571 * editfns.c (general_insert_function): Likewise.
572 * eval.c (struct backtrace.nargs, interactive_p)
573 (internal_condition_case_n, run_hook_with_args, apply_lambda)
574 (funcall_lambda, mark_backtrace): Likewise.
575 * fns.c (concat): Likewise.
576 * frame.c (x_set_frame_parameters): Likewise.
577 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
578 0 if not found, not -1. All callers changed.
579
dd3f25f7
PE
580 * alloc.c (garbage_collect): Don't assume stack size fits in int.
581 (stack_copy_size): Now size_t, not int.
582 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
583
461c2ab9
JB
5842011-03-28 Juanma Barranquero <lekktu@gmail.com>
585
586 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
587 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
588 All callers changed.
589
590 * lisp.h (multibyte_char_to_unibyte):
591 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
592 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
593 * character.h (CHAR_TO_BYTE8):
594 * cmds.c (internal_self_insert):
595 * editfns.c (general_insert_function):
596 * keymap.c (push_key_description):
597 * search.c (Freplace_match):
598 * xdisp.c (message_dolog, set_message_1): All callers changed.
599
f6d62986
SM
6002011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
601
602 * keyboard.c (safe_run_hook_funcall): New function.
603 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
604 don't set the hook to nil, but remove the offending function instead.
605 (Qcommand_hook_internal): Remove, unused.
606 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
607 Vcommand_hook_internal.
608
609 * eval.c (enum run_hooks_condition): Remove.
610 (funcall_nil, funcall_not): New functions.
611 (run_hook_with_args): Call each function through a `funcall' argument.
612 Remove `cond' argument, now redundant.
613 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
614 (Frun_hook_with_args_until_failure): Adjust accordingly.
615 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
616
1db5b1ad
JB
6172011-03-28 Juanma Barranquero <lekktu@gmail.com>
618
619 * dispextern.h (string_buffer_position): Remove declaration.
620
621 * print.c (strout): Remove parameter `multibyte', unused since
622 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
623
624 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
625 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
626 All callers changed.
627
628 * w32.c (_wsa_errlist): Use braces for struct initializers.
629
630 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
631 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
632 All callers changed.
633 (string_buffer_position): Likewise. Also, make static (it's never
634 used outside xdisp.c).
635 (cursor_row_p): Remove parameter `w', unused since
636 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
637 (decode_mode_spec): Remove parameter `precision', introduced during
638 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
639 All callers changed.
640
5ffb62aa
JD
6412011-03-27 Jan Djärv <jan.h.d@swipnet.se>
642
643 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
644
461c2ab9 6452011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
646
647 * nsterm.m (ns_menu_bar_is_hidden): New variable.
648 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
649 (ns_update_auto_hide_menu_bar): New functions.
650 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
651 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
652 ns_constrain_all_frames.
653 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
654 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
655
5c380ffb
JD
6562011-03-27 Jan Djärv <jan.h.d@swipnet.se>
657
658 * nsmenu.m (runDialogAt): Remove argument to timer_check.
659
9af30bdf
GM
6602011-03-27 Glenn Morris <rgm@gnu.org>
661
662 * syssignal.h: Replace RETSIGTYPE with void.
663 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
664 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
665 Replace SIGTYPE with void everywhere.
666 * s/usg5-4-common.h (SIGTYPE): Remove definition.
667 * s/template.h (SIGTYPE): Remove commented out definition.
668
e2abce01
JB
6692011-03-26 Eli Zaretskii <eliz@gnu.org>
670
671 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
672 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
673
f868cd8a
JB
6742011-03-26 Juanma Barranquero <lekktu@gmail.com>
675
59eb0929
JB
676 * w32.c (read_unc_volume): Use parameter `henum', instead of
677 global variable `wget_enum_handle'.
678
679 * keymap.c (describe_vector): Remove parameters `indices' and
680 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
681 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
682
f868cd8a
JB
683 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
684
685 * keyboard.c (timer_check): Remove parameter `do_it_now',
686 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
687 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
688 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
689
690 * keyboard.c (read_char):
691 * w32menu.c (w32_menu_display_help):
692 * xmenu.c (show_help_event, menu_help_callback):
693 Adjust calls to `show_help_echo'.
694
695 * gtkutil.c (xg_maybe_add_timer):
696 * keyboard.c (readable_events):
697 * process.c (wait_reading_process_output):
698 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
699
700 * insdel.c (adjust_markers_gap_motion):
701 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
702 (gap_left, gap_right): Don't call it.
703
2ecf6fdb
CY
7042011-03-25 Chong Yidong <cyd@stupidchicken.com>
705
706 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
707 incurred during fontification.
708
6b1f9ba4
JB
7092011-03-25 Juanma Barranquero <lekktu@gmail.com>
710
711 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
712 (DEFVAR_PER_BUFFER): Don't pass it.
713
714 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
715 (scrolling_window): Don't pass it.
716
0f4a96b5
JB
7172011-03-25 Juanma Barranquero <lekktu@gmail.com>
718
719 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
720
721 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
722 and `suffix'.
723 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
724 of variables specific to SELinux and computation of `encoded_absname'.
725
726 * image.c (XPutPixel): Remove unused variable `height'.
727
728 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
729
730 * unexw32.c (get_section_info): Remove unused variable `section'.
731
732 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
733 (system_process_attributes): Remove unused variable `sess'.
734 (sys_read): Remove unused variable `err'.
735
736 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
737 (w32_wnd_proc): Remove unused variable `isdead'.
738 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
739 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
740 (x_create_tip_frame): Remove unused variable `tem'.
741
742 * w32inevt.c (w32_console_read_socket):
743 Remove unused variable `no_events'.
744
745 * w32term.c (x_draw_composite_glyph_string_foreground):
746 Remove unused variable `width'.
747
1149507c
JB
7482011-03-24 Juanma Barranquero <lekktu@gmail.com>
749
750 * w32term.c (x_set_glyph_string_clipping):
751 Don't pass uninitialized region to CombineRgn.
752
9c88f339
JB
7532011-03-23 Juanma Barranquero <lekktu@gmail.com>
754
755 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
756 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
757 (Fx_close_connection): Remove unused variable `i'.
758
759 * w32font.c (w32font_draw): Return number of glyphs.
760 (w32font_open_internal): Remove unused variable `i'.
761 (w32font_driver): Add missing initializer.
762
763 * w32menu.c (utf8to16): Remove unused variable `utf16'.
764 (fill_in_menu): Remove unused variable `items_added'.
765
766 * w32term.c (last_mouse_press_frame): Remove static global variable.
767 (w32_clip_to_row): Remove unused variable `f'.
768 (x_delete_terminal): Remove unused variable `i'.
769
770 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
771 (NOTHING): Remove unused static global variable.
772 (uniscribe_check_otf): Remove unused variable `table'.
773 (uniscribe_font_driver): Add missing initializers.
774
dee091a3
JD
7752011-03-23 Julien Danjou <julien@danjou.info>
776
777 * term.c (Fsuspend_tty, Fresume_tty):
778 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
779 * window.c (temp_output_buffer_show):
780 * insdel.c (signal_before_change):
781 * frame.c (Fhandle_switch_frame):
782 * fileio.c (Fdo_auto_save):
783 * emacs.c (Fkill_emacs):
784 * editfns.c (save_excursion_restore):
785 * cmds.c (internal_self_insert):
786 * callint.c (Fcall_interactively):
787 * buffer.c (Fkill_all_local_variables):
788 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
789 Use Frun_hooks.
0f4a96b5 790 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
dee091a3
JD
791 unconditionnaly since it does the check itself.
792
2c520ab5 7932011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 794
c9c49752
PE
795 Fix more problems found by GCC 4.5.2's static checks.
796
8abc3f12
PE
797 * coding.c (encode_coding_raw_text): Avoid unnecessary test
798 the first time through the loop, since we know p0 < p1 then.
799 This also avoids a gcc -Wstrict-overflow warning.
800
a2d26660
PE
801 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
802 leading to a memory leak, possible in functions like
803 load_charset_map_from_file that can allocate an unbounded number
b12ef411 804 of objects (Bug#8318).
a2d26660 805
916c72e9
PE
806 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
807 that could (at least in theory) be that large.
808
19ab8a18
PE
809 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
810 This is less likely to overflow, and avoids undefined behavior if
811 overflow does occur. All callers changed. Use strtoul to scan
812 for the unsigned long integer.
b7cbbd6f
PE
813 (pint2hrstr): Simplify and tune code slightly.
814 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 815
f0641eff
PE
816 * scroll.c (do_scrolling): Work around GCC bug 48228.
817 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
818
7f650bb9
PE
819 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
820 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
821 (validate_x_resource_name): Simplify count usage.
822 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 823
37dd57d1
PE
824 * fileio.c (Fcopy_file): Report error if fchown or fchmod
825 fail (Bug#8306).
81e56e61 826
699979fc 827 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 828
401bf9b4
PE
829 * process.c (Fmake_network_process): Use socklen_t, not int,
830 where POSIX says socklen_t is required in portable programs.
831 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 832 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
833 (Fmake_network_process, server_accept_connection):
834 (wait_reading_process_output, read_process_output):
835 Likewise.
836
b93aacde
PE
837 * process.c: Rename or move locals to avoid shadowing.
838 (list_processes_1, Fmake_network_process):
839 (read_process_output_error_handler, exec_sentinel_error_handler):
840 Rename or move locals.
4dc343ee 841 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 842 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 843 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 844 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 845 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 846
af8a867c 847 Make tparam.h and terminfo.c consistent.
44f230aa
SM
848 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
849 Include tparam.h instead, since it declares them.
af8a867c
PE
850 * cm.h (PC): Remove extern decl; tparam.h now does this.
851 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
852 * terminfo.c: Include tparam.h, to check interfaces.
853 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
854 (tparam): Adjust signature to match interface in tparam.h;
855 this removes some undefined behavior. Check that outstring and len
856 are zero, which they always are with Emacs.
857 * tparam.h (PC, BC, UP): New extern decls.
858
0248044d 859 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 860 (xftfont_open): Rename locals to avoid shadowing.
0248044d 861
8ff096c1 862 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
863 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
864 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 865 (ftfont_list): Remove unused local.
49eaafba
PE
866 (get_adstyle_property, ftfont_pattern_entity):
867 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
868 Rename locals to avoid shadowing.
8ff096c1 869
e2be39f6
PE
870 * xfont.c (xfont_list_family): Mark var as initialized.
871
c9735e30
PE
872 * xml.c (make_dom): Now static.
873
8f5201ae
PE
874 * composite.c (composition_compute_stop_pos): Rename local to
875 avoid shadowing.
b246f932
PE
876 (composition_reseat_it): Remove unused locals.
877 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 878 (composition_update_it): Mark var as initialized.
11b61122
PE
879 (find_automatic_composition): Mark vars as initialized,
880 with a FIXME (Bug#8290).
8f5201ae 881
760fbc2c
PE
882 character.h: Rename locals to avoid shadowing.
883 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
884 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
885 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
886 (BUF_DEC_POS): Be more systematic about renaming local temporaries
887 to avoid shadowing.
888
ff08eb85
PE
889 * textprop.c (property_change_between_p): Remove; unused.
890
fc7bf025
PE
891 * intervals.c (interval_start_pos): Now static.
892
235d7abc
PE
893 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
894
44f230aa
SM
895 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
896 Rename locals to avoid shadowing.
3e7d6594 897
50060332
PE
898 * sound.c (wav_play, au_play, Fplay_sound_internal):
899 Fix pointer signedness.
d01f234b 900 (alsa_choose_format): Remove unused local var.
c83b8872
PE
901 (wav_play): Initialize a variable to 0, to prevent undefined
902 behavior (Bug#8278).
50060332 903
c4fc4e30
PE
904 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
905
918436ed
PE
906 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
907
c939f91b
PE
908 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
909 clobbering (Bug#8298).
b9c7f648
PE
910 * sysdep.c (sys_subshell): Likewise.
911 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 912
6bd8c144
PE
913 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
914 This should get cleaned up, so that child_setup has the
915 same signature on all platforms.
916
7710357c 917 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 918 (relocate_fd): Rename locals to avoid shadowing.
7710357c 919
c59da222
CY
9202011-03-22 Chong Yidong <cyd@stupidchicken.com>
921
922 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
923 not to be necessary, and produces flickering.
924
66b87493
GM
9252011-03-20 Glenn Morris <rgm@gnu.org>
926
927 * config.in: Remove file.
928
45b6f6d5
JB
9292011-03-20 Juanma Barranquero <lekktu@gmail.com>
930
931 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
932 are now in src/globals.h.
933 (syms_of_minibuf): Remove spurious & from previous change.
934
3ec03f7e
LL
9352011-03-20 Leo <sdl.web@gmail.com>
936
937 * minibuf.c (completing-read-function): New variable.
938 (completing-read-default): Rename from completing-read.
939 (completing-read): Call completing-read-function.
940
b14e3e21
CY
9412011-03-19 Juanma Barranquero <lekktu@gmail.com>
942
943 * xfaces.c (Fx_load_color_file):
944 Read color file from absolute filename (bug#8250).
945
f2b726e6
JB
9462011-03-19 Juanma Barranquero <lekktu@gmail.com>
947
948 * makefile.w32-in: Update dependencies.
949
09f6ff02
EZ
9502011-03-17 Eli Zaretskii <eliz@gnu.org>
951
952 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
953
29a6015a
PE
9542011-03-17 Paul Eggert <eggert@cs.ucla.edu>
955
a3a6c54e
PE
956 Fix more problems found by GCC 4.5.2's static checks.
957
b766f867
PE
958 * process.c (make_serial_process_unwind, send_process_trap):
959 (sigchld_handler): Now static.
960
be02381c
PE
961 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
962 That way, the code declares only the vars that it needs.
963 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
964 * s/cygwin.h (PTY_ITERATION): Likewise.
965 * s/darwin.h (PTY_ITERATION): Likewise.
966 * s/gnu-linux.h (PTY_ITERATION): Likewise.
967
57048744
PE
968 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
969 * process.c (allocate_pty): Don't declare stb unless it's needed.
970
7914961c 971 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
972 (CONSTANTLIM): Remove; unused.
973 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
974 Define only if needed.
7914961c 975
b3967b18
PE
976 * unexelf.c (unexec): Name an expression,
977 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
978 Use a different way to cause a compilation error if anyone uses
979 n rather than nn, a way that does not involve shadowing.
73366a00 980 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 981
29a6015a
PE
982 * deps.mk (unexalpha.o): Remove; unused.
983
43cfc33e 984 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 985 * unexec.h: New file.
ce701a33
PE
986 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
987 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
988 Depend on unexec.h.
989 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
990 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
991 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 992 Change as necessary to match prototype in unexec.h.
ce701a33 993
01f44d5a
PE
994 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
995 shadowing.
4f63c6bb 996 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 997
a6670b0b
PE
998 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
999 Rename locals to avoid shadowing.
1000
cef2010d 1001 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 1002 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 1003
d4d7173a
PE
1004 * print.c (Fredirect_debugging_output): Fix pointer signedess.
1005
f08b802a
PE
1006 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
1007 warning when compiling print.c.
1008
3ddb0639
PE
1009 * font.c (font_unparse_fcname): Abort in an "impossible" situation
1010 instead of using an uninitialized var.
5ad03b97 1011 (font_sort_entities): Mark var as initialized.
3ddb0639 1012
170a2692
PE
1013 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
1014
e663c700
PE
1015 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
1016 pointers to constants.
89bc529a 1017 (font_parse_fcname): Remove unused vars.
7b81e2d0 1018 (font_delete_unmatched): Now static.
ea838e10 1019 (font_get_spec): Remove; unused.
13a547c6
PE
1020 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
1021 (font_update_drivers, Ffont_get_glyphs, font_add_log):
1022 Rename or move locals to avoid shadowing.
e663c700 1023
2a80c887 1024 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 1025 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 1026
1384fa33 1027 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 1028 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 1029
8b2c52e9
PE
1030 * alloc.c (mark_backtrace): Move decl from here ...
1031 * lisp.h: ... to here, so that it can be checked.
1032
475545b5 1033 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 1034 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
1035 (lisp_indirect_variable): Name an expression,
1036 to avoid gcc -Wbad-function-cast warning.
1faed8ae 1037 (Fdefvar): Rename locals to avoid shadowing.
475545b5 1038
b1349114 1039 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 1040 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 1041 Use const pointer when appropriate.
b1349114 1042
a2928364
PE
1043 * lisp.h (get_system_name, get_operating_system_release):
1044 Move decls here, to check interfaces.
1045 * process.c (get_operating_system_release): Move decl to lisp.h.
1046 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
1047 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
1048 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
1049 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
1050 (Fformat_time_string, Fencode_time, Finsert_char):
1051 (Ftranslate_region_internal, Fformat):
1052 Rename or remove local vars to avoid shadowing.
9710023e 1053 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 1054
a415e694
PE
1055 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
1056 avoid shadowing.
1057
8ef4622d
PE
1058 * lisp.h (eassert): Check that the argument compiles, even if
1059 ENABLE_CHECKING is not defined.
1060
946f9a5b
PE
1061 * data.c (Findirect_variable): Name an expression, to avoid
1062 gcc -Wbad-function-cast warning.
112396d6 1063 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 1064 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
1065 (Fmake_variable_buffer_local, Fmake_local_variable):
1066 Mark variables as initialized.
52746918 1067 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 1068
e5aab7e7 1069 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
1070 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
1071 Rename locals to avoid shadowing.
dff45157
PE
1072 (mark_stack): Move local variables into the #ifdef region where
1073 they're used.
7bc26fdb
PE
1074 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
1075 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
1076 needed otherwise.
1077 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
1078 (GC_STRING_CHARS): Remove; not used.
d40d4be1 1079 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 1080
e5aab7e7
PE
1081 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
1082 avoids undefined behavior in theory.
1083
4da60324
PE
1084 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
1085
88043301
PE
1086 Use functions, not macros, for up- and down-casing (Bug#8254).
1087 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
1088 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
1089 to use the following functions instead of these macros.
1090 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
1091 EMACS_INT, since callers assume the returned value fits in int.
1092 (upcase1): Likewise, for UPCASE_TABLE.
1093 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 1094 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 1095 the race-condition problem in the old DOWNCASE.
88043301 1096
19ed5445
PE
1097 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
1098 Rename locals to avoid shadowing.
1099 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
1100 (regex_compile, re_search_2, re_match_2_internal):
1101 Remove unused local vars.
952db0d7
PE
1102 (FREE_VAR): Rewrite so as not to use empty "else",
1103 which gcc can warn about.
da053e48 1104 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
1105 (RETALLOC_IF): Define only if needed.
1106 (WORDCHAR_P): Likewise. This one is never needed, but is used
1107 only in a comment talking about a compiler bug, so put inside
1108 the #if 0 of that comment.
1109 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
1110 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
1111 Remove; unused.
19ed5445 1112
1f3561e4 1113 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
1114 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
1115 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 1116
ded6f8f7
PE
1117 * search.c (simple_search): Remove unused var.
1118
dbd37a95
PE
1119 * dired.c (compile_pattern): Move decl from here ...
1120 * lisp.h: ... to here, so that it can be checked.
1121 (struct re_registers): New forward decl.
1122
7e47afad
PE
1123 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
1124
85f24f61
PE
1125 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
1126 All uses changed.
1127 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
1128 Rename locals to avoid shadowing.
5671df8f 1129 (Fvertical_motion): Mark locals as initialized.
85f24f61 1130
181aa2be 1131 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 1132 (casify_region): Mark local as initialized.
181aa2be 1133
930d429c
PE
1134 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
1135
7082eac6
PE
1136 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
1137 New macros, so that the caller can use some names other than
1138 gcpro1, gcpro2, etc.
1139 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
1140 of the new macros.
1141 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
1142 argument, for consistency with GCPRO2_VAR, etc: it is now the
1143 prefix of the variable, not the variable itself. All uses
1144 changed.
38b2c076
PE
1145 * dired.c (directory_files_internal, file_name_completion):
1146 Rename locals to avoid shadowing.
1147
15206ed9
PE
1148 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
1149 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
1150 dired.c's scmp function, had undefined behavior.
1151 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
1152 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
1153 * buffer.h: ... to here, because these macros use current_buffer,
1154 and the new implementation with inline functions needs to have
1155 current_buffer in scope now, rather than later when the macros
1156 are used.
1157 (downcase, upcase1): New static inline functions.
1158 (DOWNCASE, UPCASE1): Reimplement using these functions.
1159 This avoids undefined behavior in expressions like
1160 DOWNCASE (x) == DOWNCASE (y), which previously suffered
1161 from race conditions in accessing the global variables
1162 case_temp1 and case_temp2.
1163 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
1164 * lisp.h (case_temp1, case_temp2): Remove their decls.
1165 * character.h (ASCII_CHAR_P): Move from here ...
1166 * lisp.h: ... to here, so that the inline functions mentioned
1167 above can use them.
1168
4a6bea26
PE
1169 * dired.c (directory_files_internal_unwind): Now static.
1170
f14b7e14
PE
1171 * fileio.c (file_name_as_directory, directory_file_name):
1172 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
1173 Now static.
2893f146
PE
1174 (file_name_as_directory): Use const pointers when appropriate.
1175 (Fexpand_file_name): Likewise. In particular, newdir might
1176 point at constant storage, so make it a const pointer.
fd4ead52 1177 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
1178 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
1179 signedness issues.
f839df0c
PE
1180 (Fset_file_times, Finsert_file_contents, auto_save_error):
1181 Rename locals to avoid shadowing.
f14b7e14 1182
5716756e 1183 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
1184 (Ftry_completion, Fall_completions): Rename or remove locals
1185 to avoid shadowing.
5716756e 1186
b4c3046a
PE
1187 * marker.c (bytepos_to_charpos): Remove; unused.
1188
b45db522
PE
1189 * lisp.h (verify_bytepos, count_markers): New decls,
1190 so that gcc does not warn that these functions aren't declared.
1191
85876d07
PE
1192 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
1193 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 1194 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 1195 (copy_text): Remove unused local var.
85876d07 1196
03d78a21 1197 * filelock.c (within_one_second): Now static.
b3dd38ab 1198 (lock_file_1): Rename local to avoid shadowing.
03d78a21 1199
5df8f01b
PE
1200 * buffer.c (fix_overlays_before): Mark locals as initialized.
1201 (fix_start_end_in_overlays): Likewise. This function should be
1202 simplified by using pointers-to-pointers, but that's a different
1203 matter.
b1d876f1 1204 (switch_to_buffer_1): Now static.
8f54f30a
PE
1205 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
1206 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 1207
a70072c9 1208 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 1209 Fix pointer signedness issue.
edced198
PE
1210 (sys_subshell): Mark local as volatile if checking for lint,
1211 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 1212 (MAXPATHLEN): Define only if needed.
a70072c9 1213
a0977c44
PE
1214 * process.c (serial_open, serial_configure): Move decls from here ...
1215 * systty.h: ... to here, so that they can be checked.
1216
a884fdcc
PE
1217 * fns.c (get_random, seed_random): Move extern decls from here ...
1218 * lisp.h: ... to here, so that they can be checked.
1219
604efe86 1220 * sysdep.c (reset_io): Now static.
b8950c94 1221 (wait_for_termination_signal): Remove; unused.
604efe86 1222
38fc62d9
PE
1223 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
1224 (copy_keymap_item, append_key, push_text_char_description):
1225 Now static.
1004a21a 1226 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 1227 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
1228 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
1229 (describe_map_tree):
1230 Rename locals to avoid shadowing.
38fc62d9 1231
2f2650da
PE
1232 * keyboard.c: Declare functions static if they are not used elsewhere.
1233 (echo_char, echo_dash, cmd_error, top_level_2):
1234 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
1235 (read_char, kbd_buffer_get_event, make_lispy_position):
1236 (make_lispy_event, make_lispy_movement, apply_modifiers):
1237 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
1238 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
1239 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 1240 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 1241 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 1242
a053e86c 1243 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
1244 (mark_kboards): Move decl here ...
1245 * alloc.c (mark_kboards): ... from here.
a053e86c 1246
4752793e
PE
1247 * lisp.h (force_auto_save_soon): New decl.
1248
74f10ca7 1249 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
1250 (DEFINE_DUMMY_FUNCTION): New macro.
1251 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
1252 Use it.
c03cd23f
PE
1253 (main): Add casts to avoid warnings
1254 if GCC considers string literals to be constants.
74f10ca7 1255
022e70d4
PE
1256 * lisp.h (fatal_error_signal): Add decl, since it's exported.
1257
59d6fe83
PE
1258 * dbusbind.c: Pointer signedness fixes.
1259 (xd_signature, xd_append_arg, xd_initialize):
1260 (Fdbus_call_method, Fdbus_call_method_asynchronously):
1261 (Fdbus_method_return_internal, Fdbus_method_error_internal):
1262 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
1263 (Fdbus_register_signal): Use SSDATA when the context wants char *.
1264
78320123
PE
1265 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
1266 if GCC considers string literals to be constants.
49cebcca 1267 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 1268
35ac2a97
SM
12692011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
1270
fb103ca9
SM
1271 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
1272 (print_preprocess, print_object): New macro to fix last change.
1273
35ac2a97
SM
1274 * print.c (print_preprocess): Don't forget font objects.
1275
62973b41
JB
12762011-03-16 Juanma Barranquero <lekktu@gmail.com>
1277
1278 * emacs.c (USAGE3): Doc fixes.
1279
0e48bb22
AS
12802011-03-15 Andreas Schwab <schwab@linux-m68k.org>
1281
1282 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
1283 structure.
1284
7684e57b
JB
12852011-03-14 Juanma Barranquero <lekktu@gmail.com>
1286
1287 * lisp.h (VWindow_system, Qfile_name_history):
1288 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
1289 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
1290 (w32_system_caret_x, w32_system_caret_y): Declare extern.
1291
1292 * w32select.c: Don't #include "keyboard.h".
c96bbc66 1293 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
1294
1295 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
1296 * w32console.c (detect_input_pending, read_input_pending)
1297 (encode_terminal_code):
1298 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
1299 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
1300 (w32_system_caret_y, Qfile_name_history):
1301 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
1302 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
1303 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
1304 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
1305 * w32proc.c (Qlocal, report_file_error):
1306 * w32term.c (Vwindow_system, updating_frame):
1307 * w32uniscribe.c (initialized, uniscribe_font_driver):
1308 Remove unneeded extern declarations.
1309
2aa46d6c
CY
13102011-03-14 Chong Yidong <cyd@stupidchicken.com>
1311
c96bbc66 1312 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 1313
cffc6f3b
CY
13142011-03-13 Chong Yidong <cyd@stupidchicken.com>
1315
1316 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
1317 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
1318 These macros can no longer be used for assignment.
1319
44f230aa
SM
1320 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
1321 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
1322 (record_buffer_markers, fetch_buffer_markers): New functions for
1323 recording and fetching special buffer markers.
1324 (set_buffer_internal_1, set_buffer_temp): Use them.
1325
1326 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
1327
1328 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
1329
1330 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
1331 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
1332
1333 * xdisp.c (hscroll_window_tree):
1334 (reconsider_clip_changes): Use PT instead of BUF_PT.
1335
d251f04b
EZ
13362011-03-13 Eli Zaretskii <eliz@gnu.org>
1337
1338 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
1339 $(EMACS_ROOT)/lib/intprops.h.
1340
f0c77cd1
PE
13412011-03-13 Paul Eggert <eggert@cs.ucla.edu>
1342
3eca4629
PE
1343 Fix more problems found by GCC 4.5.2's static checks.
1344
7c86ee98
PE
1345 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
1346 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
1347 (xg_free_frame_widgets): Make it clear that a local variable is
1348 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
1349 (gdk_window_get_screen): Make it clear that this macro is needed
1350 only if USE_GTK_TOOLTIP.
1e5524e7
PE
1351 (int_gtk_range_get_value): New function, which avoids a diagnostic
1352 from gcc -Wbad-function-cast.
1353 (xg_set_toolkit_scroll_bar_thumb): Use it.
1354 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
1355 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
1356 (get_utf8_string, xg_get_file_with_chooser):
1357 Rename locals to avoid shadowing.
1358 (create_dialog): Move locals to avoid shadowing.
7c86ee98 1359
41729b81
PE
1360 * xgselect.c (xg_select): Remove unused var.
1361
f0c77cd1
PE
1362 * image.c (four_corners_best): Mark locals as initialized.
1363 (gif_load): Initialize transparent_p to zero (Bug#8238).
1364 Mark another local as initialized.
ec6cf4c6 1365 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 1366
ce0ad53d 1367 * image.c (clear_image_cache): Now static.
d5d5a617 1368 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 1369 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
1370 (x_edge_detection): Remove unnecessary cast that
1371 gcc -Wbad-function-cast diagnoses.
2037898d 1372 (gif_load): Fix pointer signedness.
6ae141d6
PE
1373 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
1374 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 1375
33383987 13762011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 1377
d32df629
PE
1378 Improve quality of tests for time stamp overflow.
1379 For example, without this patch (encode-time 0 0 0 1 1
1380 1152921504606846976) returns the obviously-bogus value (-948597
1381 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
1382 reports time overflow. See
1383 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
1384 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
1385 * editfns.c: Include limits.h and intprops.h.
1386 (TIME_T_MIN, TIME_T_MAX): New macros.
1387 (time_overflow): Move earlier, to before first use.
1388 (hi_time, lo_time): New functions, for an accurate test for
1389 out-of-range times.
1390 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
1391 (Fget_internal_run_time): Don't assume time_t fits in int.
1392 (make_time): Use list2 instead of Fcons twice.
1393 (Fdecode_time): More accurate test for out-of-range times.
1394 (check_tm_member): New function.
1395 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
1396 (lisp_time_argument): Don't rely on undefined left-shift and
1397 right-shift behavior when checking for time stamp overflow.
8be6f318 1398
fe31d94c
PE
1399 * editfns.c (time_overflow): New function, refactoring common code.
1400 (Fformat_time_string, Fdecode_time, Fencode_time):
1401 (Fcurrent_time_string): Use it.
1402
8be6f318
PE
1403 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
1404 * dired.c (make_time): Move to ...
1405 * editfns.c (make_time): ... here.
1406 * systime.h: Note the move.
1407
09d9db2c 14082011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 1409
126bc0dc
YM
1410 * fringe.c (update_window_fringes): Remove unused variables.
1411
c47cbdfd
YM
1412 * unexmacosx.c (copy_data_segment): Also copy __got section.
1413 (Bug#8223)
1414
7ac80be9
EZ
14152011-03-12 Eli Zaretskii <eliz@gnu.org>
1416
c96bbc66 1417 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
1418 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
1419 Constify `char *' arguments and their references according to
1420 prototypes in tparam.h.
1421
ecb0f94d 1422 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 1423
7ac80be9
EZ
1424 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
1425 Adapt all references accordingly.
1426
1427 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
1428
ef1fd07e
TT
14292011-03-11 Tom Tromey <tromey@redhat.com>
1430
1431 * buffer.c (syms_of_buffer): Remove obsolete comment.
1432
7ef4b50c
EZ
14332011-03-11 Eli Zaretskii <eliz@gnu.org>
1434
1435 * termhooks.h (encode_terminal_code): Declare prototype.
1436
1437 * msdos.c (encode_terminal_code): Don't declare prototype.
1438
1439 * term.c (encode_terminal_code): Now external again, used by
1440 w32console.c and msdos.c.
1441
44f230aa
SM
1442 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
1443 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 1444
4b1ec863 14452011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 1446
1714f52b 1447 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 1448
4b1ec863
PE
1449 * fringe.c (update_window_fringes): Mark locals as initialized
1450 (Bug#8227).
1451 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 1452
524c7aa6
PE
1453 * alloc.c (mark_fringe_data): Move decl from here ...
1454 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
1455 to check its interface.
1456 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
1457
a5c0af81 1458 * fontset.c (free_realized_fontset): Now static.
7519b8cd 1459 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 1460 (fontset_font): Mark local as initialized.
a9a06e0b 1461 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 1462
b4716021
PE
1463 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
1464
811e9bac 1465 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 1466 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
1467 (x_own_selection, Fx_disown_selection_internal): Rename locals
1468 to avoid shadowing.
1469 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 1470
7e3ab302
PE
1471 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
1472 so that the caller can use some name other than gcpro1.
1473 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
1474 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
1475 (Fx_backspace_delete_keys_p):
1476 Use them to avoid shadowing, and rename vars to avoid shadowing.
1477 (x_decode_color, x_set_name, x_window): Now static.
6b437900 1478 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 1479 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
1480 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
1481 Remove unused locals.
7e3ab302
PE
1482 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
1483 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
1484 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
1485 macros.
f78faa98 1486
e2b13473
PE
1487 * xterm.h (x_mouse_leave): New decl.
1488
77f23912
PE
1489 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
1490 Remove unused functions.
cdf4ba58
PE
1491 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
1492 (x_calc_absolute_position): Now static.
7411c686 1493 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 1494 Don't declare local "event" unless it's used.
ed7bf3a5
PE
1495 (x_iconify_frame, x_free_frame_resources): Don't declare locals
1496 unless they are used.
38d0b34a
PE
1497 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
1498 (x_fatal_error_signal): Remove; not used.
a6067996
PE
1499 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
1500 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
1501 (x_error_catcher, x_connection_closed, x_error_handler):
1502 (x_error_quitter, xembed_send_message, x_iconify_frame):
1503 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 1504 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 1505 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 1506
44f230aa
SM
1507 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
1508 Rename or move locals to avoid shadowing.
6b463e58 1509 (tty_defined_color, merge_face_heights): Now static.
5967d051 1510 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
1511 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
1512 does not deduce is never used uninitialized.
73719eba
PE
1513 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
1514 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 1515
426994c3 1516 * terminal.c (store_terminal_param): Now static.
5489860b 1517
032f1620 1518 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 1519 (set_frame_menubar): Remove unused local.
d4323972 1520 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
1521 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
1522 since they might point to immutable storage.
281585b0
PE
1523 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
1524 since it's unused otherwise.
032f1620 1525
367c19e5 1526 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 1527 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
1528 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
1529 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 1530 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
1531 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
1532 does not deduce are never used uninitialized.
70739cbe 1533
07b48fa9
PE
1534 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
1535
8868a238 1536 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
1537 * window.c (window_loop, size_window):
1538 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 1539
7e5cf297 1540 * window.c (display_buffer): Now static.
d6550a9f
PE
1541 (size_window): Mark variables that gcc -Wuninitialized
1542 does not deduce are never used uninitialized.
a586633d
PE
1543 * window.h (check_all_windows): New decl, to forestall
1544 gcc -Wmissing-prototypes diagnostic.
5b555da1 1545 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 1546
f6095868
PE
1547 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
1548 shadowing.
1549 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
1550 Include <limits.h>.
1551 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
1552 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
1553 (load_charset_map): Mark variables that gcc -Wuninitialized
1554 does not deduce are never used uninitialized.
53df7c11 1555 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 1556
f38b440c
PE
1557 * coding.c (coding_set_source, coding_set_destination):
1558 Use "else { /* comment */ }" rather than "else /* comment */;"
1559 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
1560 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
1561 a block, when the outer 'i' will do.
1562 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
1563 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
1564 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
1565 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
1566 (Fdecode_sjis_char, Fdefine_coding_system_internal):
1567 Rename locals to avoid shadowing.
1568 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
1569 * coding.c (emacs_mule_char, encode_invocation_designation):
1570 Now static, since they're not used elsewhere.
413bb2db 1571 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 1572 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
1573 (decode_coding_emacs_mule): Mark variables that gcc
1574 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
1575 (detect_coding_iso_2022): Initialize a local variable that might
1576 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 1577 this initialization is needed. (Bug#8211)
5f58e762
PE
1578 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
1579 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
1580 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
1581 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
1582 Remove unused macros.
f38b440c 1583
232b38b9 1584 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 1585 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 1586 * character.c (string_count_byte8): Likewise.
232b38b9 1587
fb90da1b
PE
1588 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
1589 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
1590
fb93dbc2
PE
1591 * chartab.c (copy_sub_char_table): Now static, since it's not used
1592 elsewhere.
5c156ace
PE
1593 (sub_char_table_ref_and_range, char_table_ref_and_range):
1594 Rename locals to avoid shadowing.
bbcd0949 1595 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 1596
7d3b3862 1597 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 1598 (BIDI_BOB): Remove unused macro.
7d3b3862 1599
6be7d3da
PE
1600 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
1601 deduce are never used uninitialized.
c2ed9c8b 1602 * term.c (encode_terminal_code): Likewise.
6be7d3da 1603
75f8807f 1604 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 1605
50938595
PE
1606 * tparam.h: New file.
1607 * term.c, tparam.h: Include it.
1608 * deps.mk (term.o, tparam.o): Depend on tparam.h.
1609 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
1610 Move these decls to tparam.h, and make them agree with what
1611 is actually in tparam.c. The previous trick of using incompatible
1612 decls in different modules does not conform to the C standard.
1613 All callers of tparam changed to use tparam's actual API.
1614 * tparam.c (tparam1, tparam, tgoto):
1615 Use const pointers where appropriate.
1616
fbceeba2
PE
1617 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
1618 * cm.h (struct cm): Likewise.
1619 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
1620 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
1621 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
1622 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
1623 (turn_on_face, init_tty): Likewise.
1624 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 1625
7f3f1250
PE
1626 * term.c (term_mouse_position): Rename local to avoid shadowing.
1627
e6ca6543
PE
1628 * alloc.c (mark_ttys): Move decl from here ...
1629 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
1630
c40f8d15
AS
16312011-03-11 Andreas Schwab <schwab@linux-m68k.org>
1632
1633 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
1634
cfe0661d
JB
16352011-03-09 Juanma Barranquero <lekktu@gmail.com>
1636
1637 * search.c (compile_pattern_1): Remove argument regp, unused since
1638 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
1639 (compile_pattern): Don't pass it.
1640
0afb4571
J
16412011-03-08 Jan Djärv <jan.h.d@swipnet.se>
1642
1643 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
1644 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
1645 for ! HAVE_GTK3.
1646 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
1647
1648 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
1649
1650 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
1651 gdk_window_get_screen, gdk_window_get_geometry,
1652 gdk_x11_window_lookup_for_display and GDK_KEY_g.
1653 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
1654 (xg_get_pixbuf_from_pixmap): New function.
1655 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
1656 to Pixmap, take frame as parameter, remove GdkColormap parameter.
1657 Call xg_get_pixbuf_from_pixmap instead of
1658 gdk_pixbuf_get_from_drawable.
1659 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
1660 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
1661 (xg_check_special_colors): Use GtkStyleContext and its functions
1662 for HAVE_GTK3.
1663 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
1664 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
1665 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
1666 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
1667 Call gtk_widget_get_preferred_size.
0afb4571
J
1668 (xg_frame_resized): gdk_window_get_geometry only takes 5
1669 parameters.
44f230aa
SM
1670 (xg_win_to_widget, xg_event_is_for_menubar):
1671 Call gdk_x11_window_lookup_for_display.
0afb4571
J
1672 (xg_set_widget_bg): New function.
1673 (delete_cb): New function.
1674 (xg_create_frame_widgets): connect delete-event to delete_cb.
1675 Call xg_set_widget_bg. Only set backgrund pixmap for ! HAVE_GTK3
1676 (xg_set_background_color): Call xg_set_widget_bg.
1677 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
1678 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
1679 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
1680 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
1681 if ! HAVE_GTK3.
1682 (update_frame_tool_bar): Call gtk_widget_hide.
1683 (xg_initialize): Use GDK_KEY_g.
1684
1685 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
1686 if ! HAVE_GTK3
1687 (x_session_initialize): Call gdk_x11_set_sm_client_id.
1688
1689 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
1690 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
1691 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
1692
1c2cc4ef
JB
16932011-03-08 Juanma Barranquero <lekktu@gmail.com>
1694
1695 * w32xfns.c (select_palette): Check success of RealizePalette against
1696 GDI_ERROR, not zero.
1697
33383987 1698See ChangeLog.11 for earlier changes.
aac0c6e3
MR
1699
1700;; Local Variables:
1701;; coding: utf-8
aac0c6e3
MR
1702;; End:
1703
33383987 1704 Copyright (C) 2011 Free Software Foundation, Inc.
aac0c6e3
MR
1705
1706 This file is part of GNU Emacs.
1707
1708 GNU Emacs is free software: you can redistribute it and/or modify
1709 it under the terms of the GNU General Public License as published by
1710 the Free Software Foundation, either version 3 of the License, or
1711 (at your option) any later version.
1712
1713 GNU Emacs is distributed in the hope that it will be useful,
1714 but WITHOUT ANY WARRANTY; without even the implied warranty of
1715 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1716 GNU General Public License for more details.
1717
1718 You should have received a copy of the GNU General Public License
1719 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.