Added to bidi.c support functions for reordering display strings.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
58b9f433
EZ
12011-06-23 Eli Zaretskii <eliz@gnu.org>
2
3 * dispextern.h (bidi_push_it, bidi_pop_it): Add prototypes.
4
5 * bidi.c (bidi_push_it, bidi_pop_it): New functions.
6 (bidi_initialize): Initialize the bidi cache start stack pointer.
7 (bidi_cache_ensure_space): New function, refactored from part of
8 bidi_cache_iterator_state.
9
40eb66c4
EZ
102011-06-18 Eli Zaretskii <eliz@gnu.org>
11
acb28818
EZ
12 * xdisp.c (tool_bar_lines_needed, redisplay_tool_bar)
13 (display_menu_bar): Force left-to-right direction. Add a FIXME
14 comment for making that be controlled by a user option.
15
16 * bidi.c (bidi_move_to_visually_next): GCPRO the Lisp string we
17 are iterating.
18
ca3122a0
EZ
19 * term.c (produce_glyphs): Add IT_GLYPHLESS to the values of
20 it->what accepted by the xassert. Fixes a gratuitous crash in an
21 Emacs built with -DXASSERTS.
22
cc7245e4
EZ
23 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
24 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
25 and vector-like objects.
26
4d3a8bb4 27 * xdisp.c (face_before_or_after_it_pos): Support bidi iteration.
40eb66c4
EZ
28 (next_element_from_c_string): Handle the case of the first string
29 character that is not the first one in the visual order.
1ace7267
EZ
30 (get_visually_first_element): New function, refactored from common
31 parts of next_element_from_buffer, next_element_from_string, and
32 next_element_from_c_string.
40eb66c4 33
578b494e
EZ
342011-06-16 Eli Zaretskii <eliz@gnu.org>
35
36 * xdisp.c (init_iterator): Don't initialize it->bidi_p for strings
37 here.
38 (reseat_to_string): Initialize it->bidi_p for strings here.
39 (next_element_from_string, next_element_from_c_string)
40 (next_element_from_buffer): Add xassert's for correspondence
41 between IT's object being iterated and it->bidi_it.string
42 structure.
43
44 * bidi.c (bidi_level_of_next_char): Fix the logic for looking up
45 the sentinel state in the cache.
46
9f257352
EZ
472011-06-13 Eli Zaretskii <eliz@gnu.org>
48
49 * xdisp.c (compute_display_string_pos)
50 (compute_display_string_end, reseat_to_string): Don't assume
51 it->bidi_it.string.s always points to string.lstring's data.
52
53 * bidi.c (bidi_fetch_char, bidi_paragraph_init)
54 (bidi_resolve_explicit_1, bidi_resolve_explicit)
55 (bidi_resolve_weak, bidi_level_of_next_char): Don't assume
56 string.s always points to string.lstring's data.
57
f23590cc
EZ
582011-06-11 Eli Zaretskii <eliz@gnu.org>
59
60 * xdisp.c (set_iterator_to_next): Advance string position
61 correctly when padding it with blanks.
62
4b988f8b
EZ
632011-06-11 Eli Zaretskii <eliz@gnu.org>
64
65 * xdisp.c (next_element_from_buffer): Improve commentary for when
66 the iterator is before prev_stop.
34c48e57
EZ
67 (init_iterator): Initialize bidi_p from the default value of
68 bidi-display-reordering, not from buffer-local value. Use the
69 buffer-local value only if initializing for buffer iteration.
70 (handle_invisible_prop): Support invisible properties on strings
71 that are being bidi-reordered.
72 (reseat_to_string): Enable bidi-related code.
73 (set_iterator_to_next): Support bidi reordering of C strings and
74 Lisp strings.
75 (next_element_from_string): Support bidi reordering of Lisp
76 strings.
77 (handle_stop_backwards): Support Lisp strings as well.
78 (display_mode_line, display_mode_element): Temporarily force L2R
79 paragraph direction.
80 (display_string): Support display of R2L glyph rows. Use
81 IT_STRING_CHARPOS when displaying from a Lisp string.
4b988f8b 82
9f4ef500
EZ
832011-06-10 Eli Zaretskii <eliz@gnu.org>
84
85 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
86 itb.string.lstring.
87 (compute_display_string_pos, compute_display_string_end):
88 Fix calculation of the object to scan. Fixes an error when using
89 arrow keys.
90 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
91 base_level_stop; instead, set base_level_stop to BEGV. Fixes
92 crashes in vertical-motion.
93
6db161be
EZ
942011-06-09 Eli Zaretskii <eliz@gnu.org>
95
96 * xdisp.c (compute_display_string_pos): First arg is now struct
97 `text_pos *'; all callers changed. Support display properties on
98 Lisp strings.
99 (compute_display_string_end): Support display properties on Lisp
100 strings.
101 (init_iterator, reseat_1, reseat_to_string): Initialize the
102 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
103 when iterating on a string not from display properties).
104
105 * bidi.c (bidi_fetch_char): Support strings with display
106 properties.
107
108 * dispextern.h (struct bidi_string_data): New member bufpos.
109 (compute_display_string_pos): Update prototype.
110
bb269206
EZ
1112011-06-09 Eli Zaretskii <eliz@gnu.org>
112
113 * bidi.c (bidi_level_of_next_char): Allow the sentinel "position"
114 to pass the test for valid cached positions.
115
116 * xdisp.c (init_iterator): Call bidi_init_it only of a valid
117 buffer position was specified. Initialize paragraph_embedding to
118 L2R.
119 (reseat_to_string): Initialize the bidi iterator (for now ifdef'ed
120 out).
121 (display_string): If we need to ignore text properties of
122 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
123 original value of -1 will not work with bidi.)
124
125 * dispextern.h (struct bidi_string_data): New member lstring.
126
d9334cb7
EZ
1272011-06-09 Eli Zaretskii <eliz@gnu.org>
128
129 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
130 itb.string.s to NULL (avoids a crash in bidi_paragraph_init).
131
87e67904
EZ
1322011-06-08 Eli Zaretskii <eliz@gnu.org>
133
134 * bidi.c (bidi_paragraph_info): Delete unused struct.
135 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
136 (bidi_cache_start): New variable.
137 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
138 to zero.
139 (bidi_cache_fetch_state, bidi_cache_search)
140 (bidi_cache_find_level_change, bidi_cache_iterator_state)
141 (bidi_cache_find, bidi_peek_at_next_level)
142 (bidi_level_of_next_char, bidi_find_other_level_edge)
143 (bidi_move_to_visually_next): Compare cache index with
144 bidi_cache_start rather than with zero.
145 (bidi_fetch_char): Accept new argument STRING; all callers
146 changed. Support iteration over a string.
147 (bidi_paragraph_init, bidi_resolve_explicit_1)
148 (bidi_resolve_explicit, bidi_resolve_weak)
149 (bidi_level_of_next_char, bidi_move_to_visually_next): Support
150 iteration over a string.
151 (bidi_set_sor_type, bidi_resolve_explicit_1)
152 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
153 can now be zero (for strings); special values 0 and -1 were
154 changed to -1 and -2, respectively.
155 (bidi_char_at_pos): New function.
156 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
157 Call it instead of FETCH_MULTIBYTE_CHAR.
158 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
159 initialized to valid values.
160 (bidi_init_it): Don't initialize charpos and bytepos with invalid
161 values.
162
163 * xdisp.c (compute_display_string_pos)
164 (compute_display_string_end): Accept additional argument STRING.
165 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
166 (reseat_to_string): Initialize bidi_it->string.s and
167 bidi_it->string.schars.
168
169 * dispextern.h (struct bidi_string_data): New structure.
170 (struct bidi_it): New member `string'. Make flag members be 1-bit
171 fields, and put them last in the struct.
172 (compute_display_string_pos, compute_display_string_end): Update
173 prototypes.
174
9d68c2a9
EZ
1752011-06-04 Eli Zaretskii <eliz@gnu.org>
176
177 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
178
57f97249
EZ
1792011-06-03 Eli Zaretskii <eliz@gnu.org>
180
181 * bidi.c (bidi_fetch_char_advance): Remove unused and
182 unimplemented function.
183
c40e2fb2
EZ
1842011-05-28 Eli Zaretskii <eliz@gnu.org>
185
0e14fe90
EZ
186 * xdisp.c (set_cursor_from_row): Set start and stop points
187 according to the row's direction when priming the loop that looks
188 for the glyph on which to display cursor.
189 (single_display_spec_intangible_p): Function deleted.
190 (display_prop_intangible_p): Reimplement to call
191 handle_display_spec instead of single_display_spec_intangible_p.
192 Accept 3 additional arguments needed by handle_display_spec. This
193 fixes incorrect cursor motion across display property with complex
194 values: lists, `(when COND...)' forms, etc.
195 (single_display_spec_string_p): Support property values that are
196 lists with the argument STRING its top-level element.
197 (display_prop_string_p): Fix the condition for processing a
198 property that is a list to be consistent with handle_display_spec.
199
200 * keyboard.c (adjust_point_for_property): Adjust the call to
201 display_prop_intangible_p to its new signature.
202
203 * dispextern.h (display_prop_intangible_p): Adjust prototype.
c40e2fb2 204
fc6f18ce
EZ
2052011-05-21 Eli Zaretskii <eliz@gnu.org>
206
207 * xdisp.c (handle_display_spec): New function, refactored from the
208 last portion of handle_display_prop.
209 (compute_display_string_pos): Accept additional argument
210 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
211 value of a `display' property is a "replacing spec".
212 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
213 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
214 the display property, but just return a value indicating whether
215 the display property will replace the characters it covers.
216 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
217 frame_window_p members of struct bidi_it.
218
219 * bidi.c (bidi_fetch_char): Accept additional argument
220 FRAME_WINDOW_P and pass it to compute_display_string_pos. All
221 callers changed.
222 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
223 it to initialize the frame_window_p member of struct bidi_it.
224
225 * dispextern.h (struct bidi_it): New member frame_window_p.
226 (bidi_init_it, compute_display_string_pos): Update prototypes.
227
102ebb00
EZ
2282011-05-14 Eli Zaretskii <eliz@gnu.org>
229
7b600102
EZ
230 * xdisp.c (compute_display_string_pos): Non-trivial implementation.
231 (compute_display_string_end): New function.
683a44f7
EZ
232 (push_it): Accept second argument POSITION, where pop_it should
233 jump to continue iteration.
7b600102
EZ
234
235 * dispextern.h (compute_display_string_end): Declare prototype.
236
237 * bidi.c (bidi_resolve_explicit_1): Use ZV for disp_pos.
238 (bidi_fetch_char): Implement support for runs of characters
239 covered by display strings.
240
102ebb00 241 * bidi.c (bidi_fetch_char): Accept also character position
7b600102
EZ
242 corresponding to BYTEPOS. DISP_POS is now a character position,
243 not a byte position. All callers changed.
102ebb00
EZ
244 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
245 (bidi_resolve_explicit, bidi_resolve_weak)
246 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
247 bidi_it->nchars is non-positive.
248 (bidi_level_of_next_char): Don't try to lookup the cache for the
249 next/previous character if nothing is cached there yet, or if we
250 were just reseat()'ed to a new position.
251 (bidi_paragraph_init, bidi_resolve_explicit_1)
252 (bidi_level_of_next_char): Fix arguments in the calls to
253 bidi_fetch_char.
254
182ce2d2
EZ
2552011-05-10 Eli Zaretskii <eliz@gnu.org>
256
257 * xdisp.c (compute_display_string_pos): New function.
258 (reseat_1): Initialize bidi_it.disp_pos.
259
260 * bidi.c (bidi_copy_it): Use offsetof.
261 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
262 (bidi_cache_search, bidi_cache_iterator_state)
263 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
264 (bidi_level_of_next_char, bidi_move_to_visually_next): Support
265 character positions inside a run of characters covered by a
266 display string.
267 (bidi_paragraph_init, bidi_resolve_explicit_1)
268 (bidi_level_of_next_char): Call bidi_fetch_char and
269 bidi_fetch_char_advance instead of FETCH_CHAR and
270 FETCH_CHAR_ADVANCE.
271 (bidi_init_it): Initialize new members.
272 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
273 definitions.
274 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
275 instead of using explicit *_CHAR codes.
276 (bidi_resolve_explicit, bidi_resolve_weak): Use
277 FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
278 bidirectional text is supported only in multibyte buffers.
279
280 * dispextern.h (struct bidi_it): New members nchars and disp_pos.
281 ch_len is now EMACS_INT.
282 (compute_display_string_pos): Declare prototype.
283
57679c86
AS
2842011-05-09 Andreas Schwab <schwab@linux-m68k.org>
285
286 * w32menu.c (set_frame_menubar): Fix submenu allocation.
287
888c9e86
EZ
2882011-05-07 Eli Zaretskii <eliz@gnu.org>
289
b0512a1d
EZ
290 * w32console.c (Fset_screen_color): Doc fix.
291 (Fget_screen_color): New function.
292 (syms_of_ntterm): Defsubr it.
293
888c9e86
EZ
294 * callproc.c (call_process_cleanup): Don't close and unlink the
295 temporary file if Fcall_process didn't create it in the first
296 place.
297 (Fcall_process): Don't create tempfile if stdout of the child
298 process will be redirected to a file specified with `:file'.
299 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
300 cue to call_process_cleanup not to close that handle.
301
4d3fcc8e
BK
3022011-05-07 Ben Key <bkey76@gmail.com>
303
304 * makefile.w32-in: The bootstrap-temacs rule now makes use of
305 one of two shell specific rules, either bootstrap-temacs-CMD or
306 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
307 to the previous implementation of the bootstrap-temacs rule.
308 The bootstrap-temacs-CMD rule is similar to the previous
309 implementation of the bootstrap-temacs rule except that it
310 makes use of the ESC_CFLAGS variable instead of the CFLAGS
311 variable.
312
313 These changes, along with some changes to nt/configure.bat,
314 nt/gmake.defs, and nt/nmake.defs, are required to extend my
315 earlier fix to add support for --cflags and --ldflags options
316 that include quotes so that it works whether make uses cmd or
317 sh as the shell.
318
b4289b64
MA
3192011-05-06 Michael Albinus <michael.albinus@gmx.de>
320
321 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
322 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
323 is a constant.
324 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
325 a string. Handle both cases.
326 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
327 (Fdbus_register_method): Use Qinvalid_function.
328
af4c0e28
JB
3292011-05-06 Juanma Barranquero <lekktu@gmail.com>
330
331 * makefile.w32-in: Update dependencies.
332 (LISP_H): Add inttypes.h and stdin.h.
333 (PROCESS_H): Add unistd.h.
334
c51453d9
EZ
3352011-05-06 Eli Zaretskii <eliz@gnu.org>
336
337 * lread.c: Include limits.h (fixes the MS-Windows build broken by
338 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
339
8ff0ac3c 3402011-05-06 Paul Eggert <eggert@cs.ucla.edu>
c032b5f8 341
4c4b566b
PE
342 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
343
aab2b9b5
PE
344 * term.c (vfatal): Remove stray call to va_end.
345 It's not needed and the C Standard doesn't allow it here anyway.
346
c378da0b
PE
347 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
348 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
349
288b08c7
PE
350 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
351 bytes.
352
e3601888
PE
353 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
354
db6c0e74
PE
355 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
356
dd5963ea
PE
357 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
358
88c9450f
PE
359 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
360
2f9442b8
PE
361 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
362
c032b5f8
PE
363 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
364 * charset.c (Fdefine_charset_internal): Don't initialize
365 charset.code_space[15]. The value was garbage, on hosts with
2d38271b 366 32-bit int (Bug#8600).
a108c10b
PE
367
368 * lread.c (read_integer): Be more consistent with string-to-number.
369 Use string_to_number to do the actual conversion; this avoids
370 rounding errors and fixes some other screwups. Without this fix,
371 for example, #x1fffffffffffffff was misread as -2305843009213693952.
372 (digit_to_number): Move earlier, for benefit of read_integer.
373 Return -1 if the digit is out of range for the base, -2 if it is
48e400f0 374 not a digit in any supported base. (Bug#8602)
a108c10b 375
ad5f9eea
PE
376 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
377
aec1708a
PE
378 * dispnew.c (scrolling_window): Return 1 if we scrolled,
379 to match comment at start of function. This also removes a
380 GCC warning about overflow in a 32+64-bit port.
381
47be4ab5
PE
382 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
383
371cac43
PE
384 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
385 Reported by Stefan Monnier in
386 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
387 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages): Use
388 SYMBOLP-guarded XSYMBOL, not XPNTR.
389
d01a7826
PE
390 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
391 (EMACS_UINTPTR): Likewise, with uintptr_t.
392
7fd47d5c
PE
393 * lisp.h: Prefer 64-bit EMACS_INT if available.
394 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
395 on 32-bit hosts that have 64-bit int, so that they can access
396 large files.
122b0c86
PE
397 However, temporarily disable this change unless the temporary
398 symbol WIDE_EMACS_INT is defined.
7fd47d5c 399
8727937b
PE
400 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
401
8ac068ac
PE
402 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
403 This removes an assumption that EMACS_INT and long are the same
404 width as pointers. The assumption is true for Emacs porting targets
405 now, but we want to make other targets possible.
406 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
407 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
408 In the rest of the code, change types of integers that hold casted
409 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
410 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
411 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
412 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
413 No need to cast type when ORing.
414 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
415 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
416 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
417 assume EMACS_INT is the same width as char *.
418 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
419 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
420 Remove no-longer-needed casts.
421 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
422 (xg_tool_bar_help_callback, xg_make_tool_item):
423 Use EMACS_INTPTR to hold an integer
424 that will be cast to void *; this can avoid a GCC warning
425 if EMACS_INT is not the same width as void *.
426 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
427 * xdisp.c (display_echo_area_1, resize_mini_window_1):
428 (current_message_1, set_message_1):
429 Use a local to convert to proper width without a cast.
430 * xmenu.c (dialog_selection_callback): Likewise.
431
ede49d71
PE
432 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
433 Also, don't assume VALBITS / RAND_BITS is less than 5,
434 and don't rely on undefined behavior when shifting a 1 left into
435 the sign bit.
436 * lisp.h (get_random): Change signature to match.
437
2f30ecd0
PE
438 * lread.c (hash_string): Use size_t, not int, for hash computation.
439 Normally we prefer signed values; but hashing is special, because
440 it's better to use unsigned division on hash table sizes so that
441 the remainder is nonnegative. Also, size_t is the natural width
442 for hashing into memory. The previous code used 'int', which doesn't
443 retain enough info to hash well into very large tables.
444 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
445
2a866e7b
PE
446 * dbusbind.c: Don't possibly lose pointer info when converting.
447 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
448 Use XPNTR rather than XHASH, so that the high-order bits of
449 the pointer aren't lost when converting through void *.
450
51639eac
PE
451 * eval.c (Fautoload): Don't double-shift a pointer.
452
92394119
PE
453 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
454
dbdb9a7c
JB
4552011-05-06 Juanma Barranquero <lekktu@gmail.com>
456
457 * gnutls.c (DEF_GNUTLS_FN):
458 * image.c (DEF_IMGLIB_FN): Make function pointers static.
459
db7a0b4f
AS
4602011-05-05 Andreas Schwab <schwab@linux-m68k.org>
461
462 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
463 marker. (Bug#8610)
464
f7ff1b0f 4652011-05-05 Eli Zaretskii <eliz@gnu.org>
fab624aa
EZ
466
467 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
468 New version that can reserve upto 2GB of heap space.
469
f7ff1b0f 4702011-05-05 Chong Yidong <cyd@stupidchicken.com>
45cb8994
CY
471
472 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
473
639c109b
TZ
4742011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
475
476 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
477 `gnutls_certificate_set_x509_key_file'.
478
d2127135
JB
4792011-05-05 Juanma Barranquero <lekktu@gmail.com>
480
481 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
482 Update dependencies.
483
e968f4f3
JB
4842011-05-04 Juanma Barranquero <lekktu@gmail.com>
485
486 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
487 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
488 Remove unused parameter `fildes'.
489 * process.c (read_process_output, send_process): Don't pass it.
490
84d358f0
JB
4912011-05-04 Juanma Barranquero <lekktu@gmail.com>
492
493 Fix previous change: the library cache is defined in w32.c.
494 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
495 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
496
0898ca10
JB
4972011-05-04 Juanma Barranquero <lekktu@gmail.com>
498
499 Implement dynamic loading of GnuTLS on Windows.
500
501 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
502 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
503 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
504 Declare.
505
506 * gnutls.c (Qgnutls_dll): Define.
507 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
508 (gnutls_*): Declare function pointers.
509 (init_gnutls_functions): New function to initialize function pointers.
510 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
511 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
512 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
513 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
514 (emacs_gnutls_write, emacs_gnutls_read)
515 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
516 (Fgnutls_available_p): New function.
517 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
518 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
519 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
520
521 * image.c: Include w32.h.
522 (Vimage_type_cache): Delete.
523 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
524 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
525 (w32_delayed_load): Move to w32.c.
526
527 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
528
529 * w32.c (QCloaded_from, Vlibrary_cache): Define.
530 (w32_delayed_load): Move from image.c. When loading a library, record
531 its filename in the :loaded-from property of the library id.
532 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
533 Initialize and staticpro them.
534 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
535
536 * process.c: Include lisp.h before w32.h, not after.
537 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
538 instead of gnutls_record_check_pending.
539
540 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
541
ff4de4aa
TZ
5422011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
543
544 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
545 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
546 as passed in.
547
abe95abb
JD
5482011-05-03 Jan Djärv <jan.h.d@swipnet.se>
549
550 * xterm.c (x_set_frame_alpha): Do not set property on anything
551 else than FRAME_X_OUTER_WINDOW (Bug#8608).
552
e16e55d4
JB
5532011-05-02 Juanma Barranquero <lekktu@gmail.com>
554
555 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
556
bafcf6a5
JB
5572011-05-02 Juanma Barranquero <lekktu@gmail.com>
558
559 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
560 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
561 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
562 (gnutls_global_initialized, Qgnutls_bootprop_priority)
563 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
564 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
565 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
566 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
567 (Qgnutls_bootprop_callbacks_verify): Make static.
568
e7a6747f
AS
5692011-05-01 Andreas Schwab <schwab@linux-m68k.org>
570
19ed11ba
AS
571 * callproc.c: Indentation fixup.
572
e7a6747f
AS
573 * sysdep.c (wait_for_termination_1): Make static.
574 (wait_for_termination, interruptible_wait_for_termination): Move
575 after wait_for_termination_1.
576
1ef14cb4
LMI
5772011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
578
579 * sysdep.c (interruptible_wait_for_termination): New function
580 which is like wait_for_termination, but allows keyboard
581 interruptions.
582
583 * callproc.c (Fcall_process): Add (:file "file") as an option for
584 the STDOUT buffer.
585 (Fcall_process_region): Ditto.
586
330d880c
EZ
5872011-04-30 Eli Zaretskii <eliz@gnu.org>
588
8db90b73
EZ
589 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
590 rather than `XVECTOR (FOO)->size'.
591
330d880c
EZ
592 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
593 inttypes.h, as a gnulib replacement is used if it not available in
594 system headers.
595
15cbd324
EZ
5962011-04-21 Eli Zaretskii <eliz@gnu.org>
597
598 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
599 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
600 of MOST_POSITIVE_FIXNUM. (Bug#8528)
601
602 * coding.c (coding_alloc_by_realloc): Error out if destination
603 will grow beyond MOST_POSITIVE_FIXNUM.
604 (decode_coding_emacs_mule): Abort if there isn't enough place in
605 charbuf for the composition carryover bytes. Reserve an extra
606 space for up to 2 characters produced in a loop.
607 (decode_coding_iso_2022): Abort if there isn't enough place in
608 charbuf for the composition carryover bytes.
609
6102011-04-21 Eli Zaretskii <eliz@gnu.org>
afda1437 611
ae940cca
EZ
612 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
613 aborting when %lld or %lll format is passed.
614 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
615 %llo or %llx format is passed. (Bug#8545)
616
03ab8921
EZ
617 * window.c (window_scroll_line_based): Use a marker instead of
618 simple variables to record original value of point. (Bug#7952)
619
afda1437
EZ
620 * doprnt.c (doprnt): Fix the case where a multibyte sequence
621 produced by %s or %c overflows available buffer space. (Bug#8545)
622
f76dee0c
PE
6232011-04-28 Paul Eggert <eggert@cs.ucla.edu>
624
625 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
283cdbef 626 (SIZE_MAX): Move defn after all includes, as they might #define it.
f76dee0c 627
fdc5744d
JB
6282011-04-28 Juanma Barranquero <lekktu@gmail.com>
629
630 * w32.c (init_environment): Warn about defaulting HOME to C:\.
631
638f053a
JB
6322011-04-28 Juanma Barranquero <lekktu@gmail.com>
633
634 * keyboard.c (Qdelayed_warnings_hook): Define.
635 (command_loop_1): Run `delayed-warnings-hook'
636 if Vdelayed_warnings_list is non-nil.
637 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
638 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
639
d178f871
EZ
6402011-04-28 Eli Zaretskii <eliz@gnu.org>
641
642 * doprnt.c (doprnt): Don't return value smaller than the buffer
643 size if the message was truncated. (Bug#8545).
644
b124fd93
JB
6452011-04-28 Juanma Barranquero <lekktu@gmail.com>
646
647 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
648 (Fx_window_property): #if-0 the whole functions, not just the bodies.
649
e810457d
PE
6502011-04-27 Paul Eggert <eggert@cs.ucla.edu>
651
652 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
653
ea51cceb
JB
6542011-04-27 Juanma Barranquero <lekktu@gmail.com>
655
656 * makefile.w32-in: Update dependencies.
657
94dcfacf
EZ
6582011-04-27 Eli Zaretskii <eliz@gnu.org>
659
660 Improve `doprnt' and its usage. (Bug#8545)
661 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
662 `format_end'. Remove support for %l as a conversion specifier.
663 Don't use xrealloc. Improve diagnostics when the %l size modifier
664 is used. Update the commentary.
665
666 * eval.c (verror): Simplify calculation of size_t.
667
668 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
669 messages.
670
f61f41d7
PE
6712011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
672
673 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
674 change.
675
96fb4434
PE
6762011-04-27 Paul Eggert <eggert@cs.ucla.edu>
677
678 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
679 This makes this file independent of the recent pseudovector change.
680
671875da 6812011-04-26 Paul Eggert <eggert@cs.ucla.edu>
eab3844f 682
69e9b5a3
PE
683 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
684
b5f869a7 685 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
7754e151 686 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
8d4c3955 687 Remove unused local.
c8926152 688 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
080e5a8d 689
841a1577 690 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
eab3844f
PE
691 GCC 4.6.0 optimizes based on type-based alias analysis. For
692 example, if b is of type struct buffer * and v of type struct
693 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
694 != &v->size, and therefore "v->size = 1; b->size = 2; return
695 v->size;" must therefore return 1. This assumption is incorrect
696 for Emacs, since it type-puns struct Lisp_Vector * with many other
697 types. To fix this problem, this patch adds a new type struct
f904488f 698 vectorlike_header that documents the constraints on layout of vectors
eab3844f
PE
699 and pseudovectors, and helps optimizing compilers not get fooled
700 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
701 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
f904488f
PE
702 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
703 the size member.
eab3844f
PE
704 (XSETPVECTYPE): Rewrite in terms of new macro.
705 (XSETPVECTYPESIZE): New macro, specifying both type and size.
706 This is a bit clearer, and further avoids the possibility of
707 undesirable aliasing.
708 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
f904488f 709 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
eab3844f
PE
710 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
711 since Lisp_Subr is a special case (no "next" field).
f904488f
PE
712 (ASIZE): Now uses header.size rather than size. All
713 previous uses of XVECTOR (foo)->size replaced to use this macro,
714 to avoid the hassle of writing XVECTOR (foo)->header.size.
715 (struct vectorlike_header): New type.
eab3844f
PE
716 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
717 object, to help avoid aliasing.
718 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
719 (SUBRP): Likewise, since Lisp_Subr is a special case.
720 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
721 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
722 (struct Lisp_Hash_Table): Combine first two members into a single
f904488f 723 struct vectorlike_header member. All uses of "size" and "next" members
eab3844f
PE
724 changed to be "header.size" and "header.next".
725 * buffer.h (struct buffer): Likewise.
726 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
727 * frame.h (struct frame): Likewise.
728 * process.h (struct Lisp_Process): Likewise.
729 * termhooks.h (struct terminal): Likewise.
730 * window.c (struct save_window_data, struct saved_window): Likewise.
731 * window.h (struct window): Likewise.
732 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
733 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
734 * buffer.c (init_buffer_once): Likewise.
735 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
736 special case.
737 * process.c (Fformat_network_address): Use local var for size,
738 for brevity.
739
0df1eac5
PE
740 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
741
847ab9d1 742 Make the Lisp reader and string-to-float more consistent (Bug#8525)
452f4150
PE
743 * data.c (atof): Remove decl; no longer used or needed.
744 (digit_to_number): Move to lread.c.
745 (Fstring_to_number): Use new string_to_number function, to be
746 consistent with how the Lisp reader treats infinities and NaNs.
747 Do not assume that floating-point numbers represent EMACS_INT
748 without losing information; this is not true on most 64-bit hosts.
749 Avoid double-rounding errors, by insisting on integers when
750 parsing non-base-10 numbers, as the documentation specifies.
751 * lisp.h (string_to_number): New decl, replacing ...
752 (isfloat_string): Remove.
bc0a5c13 753 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
d78050d6 754 (read1): Do not accept +. and -. as integers; this
452f4150
PE
755 appears to have been a coding error. Similarly, do not accept
756 strings like +-1e0 as floating point numbers. Do not report
757 overflow for integer overflows unless the base is not 10 which
758 means we have no simple and reliable way to continue.
759 Break out the floating-point parsing into a new
760 function string_to_number, so that Fstring_to_number parses
761 floating point numbers consistently with the Lisp reader.
762 (digit_to_number): Moved here from data.c. Make it static inline.
763 (E_CHAR, EXP_INT): Remove, replacing with ...
764 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
765 (string_to_number): New function, replacing isfloat_string.
766 This function checks for valid syntax and produces the resulting
767 Lisp float number too. Rework it so that string-to-number
bc0a5c13 768 no longer mishandles examples like "1.0e+". Use strtoumax,
d78050d6
PE
769 so that overflow for non-base-10 numbers is reported only when
770 there's no portable and simple way to convert to floating point.
452f4150 771
67769ffc
PE
772 * textprop.c (set_text_properties_1): Rewrite for clarity,
773 and to avoid GCC warning about integer overflow.
774
c20db43f
PE
775 * intervals.h (struct interval): Use EMACS_INT for members
776 where EMACS_UINT might cause problems. See
777 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
778 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
779 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
780 All uses changed.
37aa2f85
PE
781 (offset_intervals): Tell GCC not to worry about length overflow
782 when negating a negative length.
c20db43f 783
2538aa2f
PE
784 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
785 (overrun_check_free): Likewise.
786
f2d3008d
PE
787 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
788 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
789 word size.
790
ec8df744
PE
791 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
792 (gnutls_make_error): Rename local to avoid shadowing.
793 (gnutls_emacs_global_deinit): ifdef out; not used.
794 (Fgnutls_boot): Use const for pointer to readonly storage.
795 Comment out unused local. Fix pointer signedness problems.
796
640ee02d
PE
797 * lread.c (openp): Don't stuff size_t into an 'int'.
798 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
799 about possible signed overflow.
800
6048fb2a
PE
801 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
802 (GDK_KEY_g): Don't define if already defined.
803 (xg_prepare_tooltip): Avoid pointer signedness problem.
804 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
805
fa3c87e1
PE
806 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
807 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
808
2172544b
PE
809 * xfns.c (Fx_window_property): Simplify a bit,
810 to make a bit faster and to avoid GCC 4.6.0 warning.
811 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
812
9b821a21
PE
813 * fns.c (internal_equal): Don't assume size_t fits in int.
814
3c616cfa
PE
815 * alloc.c (compact_small_strings): Tighten assertion a little.
816
c2982e87
PE
817 Replace pEd with more-general pI, and fix some printf arg casts.
818 * lisp.h (pI): New macro, generalizing old pEd macro to other
819 conversion specifiers. For example, use "...%"pI"d..." rather
820 than "...%"pEd"...".
821 (pEd): Remove. All uses replaced with similar uses of pI.
822 * src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h: Likewise.
823 * alloc.c (check_pure_size): Don't overflow by converting size to int.
824 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
825 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
826 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
827 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
828 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
829 64-bit hosts.
830 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
831 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
832 * print.c (safe_debug_print, print_object): Likewise.
833 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
834 to int.
6f04d126
PE
835 Use pI instead of if-then-else-abort. Use %p to avoid casts,
836 avoiding the 0 flag, which is not portable.
c2982e87
PE
837 * process.c (Fmake_network_process): Use pI to avoid cast.
838 * region-cache.c (pp_cache): Likewise.
839 * xdisp.c (decode_mode_spec): Likewise.
840 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
841 behavior on 64-bit hosts with printf arg.
6f04d126 842 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
c2982e87
PE
843 (x_stop_queuing_selection_requests): Likewise.
844 (x_get_window_property): Don't truncate byte count to an 'int'
845 when tracing.
0b432f21 846
5e073ec7
PE
847 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
848 here, since it parses constructs like leading '-' and spaces,
849 which are not wanted; and it overflows with large numbers.
850 Instead, simply match F[0-9]+, which is what is wanted anyway.
851
36372bf9
PE
852 * alloc.c: Remove unportable assumptions about struct layout.
853 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
854 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
855 (allocate_vectorlike, make_pure_vector): Use the new macros,
856 plus offsetof, to remove unportable assumptions about struct layout.
857 These assumptions hold on all porting targets that I know of, but
858 they are not guaranteed, they're easy to remove, and removing them
859 makes further changes easier.
860
0b432f21
PE
861 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
862 This doesn't fix a bug but makes the code clearer.
bfd1c781
PE
863 (string_overrun_cookie): Now const. Use initializers that
864 don't formally overflow signed char, to avoid warnings.
000098c1
PE
865 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
866 can cause Emacs to crash when string overrun checking is enabled.
c7bda33c
PE
867 (allocate_buffer): Don't assume sizeof (struct buffer) is a
868 multiple of sizeof (EMACS_INT); it need not be, if
869 alignof(EMACS_INT) < sizeof (EMACS_INT).
d0f4e1f5 870 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
0b432f21 871
895009e1
JB
8722011-04-26 Juanma Barranquero <lekktu@gmail.com>
873
874 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
875
6a7a1b0b
TZ
8762011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
877
878 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
b5f869a7 879 supposed to be handshaking. (Bug#8556)
6a7a1b0b
TZ
880 Reported by Paul Eggert <eggert@cs.ucla.edu>.
881
841a1577 8822011-04-26 Daniel Colascione <dan.colascione@gmail.com>
0438ce91
DC
883
884 * lisp.h (Qdebug): List symbol.
895009e1 885 * eval.c (Qdebug): Restore global linkage.
0438ce91
DC
886 * keyboard.c (debug-on-event): New variable.
887 (handle_user_signal): Break into debugger when debug-on-event
888 matches the current signal symbol.
889
f2d3ba6f
DN
8902011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
891
892 * alloc.c (check_sblock, check_string_bytes)
893 (check_string_free_list): Convert to standard C.
894
42ce4c63
TZ
8952011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
896
897 * w32.c (emacs_gnutls_push): Fix typo.
898
825cd63c
EZ
8992011-04-25 Eli Zaretskii <eliz@gnu.org>
900
fb11d64d
EZ
901 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
902 "cast to pointer from integer of different size".
903
825cd63c
EZ
904 Improve doprnt and its use in verror. (Bug#8545)
905 * doprnt.c (doprnt): Document the set of format control sequences
906 supported by the function. Use SAFE_ALLOCA instead of always
907 using `alloca'.
908
909 * eval.c (verror): Don't limit the buffer size at size_max-1, that
910 is one byte too soon. Don't use xrealloc; instead xfree and
911 xmalloc anew.
912
e061a11b
TZ
9132011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
914
915 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
916 callbacks stage.
917
918 * gnutls.c: Renamed global_initialized to
919 gnutls_global_initialized. Added internals for the
920 :verify-hostname-error, :verify-error, and :verify-flags
921 parameters of `gnutls-boot' and documented those parameters in the
922 docstring. Start callback support.
923 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
924 unless a fatal error occured. Call gnutls_alert_send_appropriate
925 on error. Return error code.
926 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
927 (emacs_gnutls_read): Likewise.
928 (Fgnutls_boot): Return handshake error code.
929 (emacs_gnutls_handle_error): New function.
930 (wsaerror_to_errno): Likewise.
931
932 * w32.h (emacs_gnutls_pull): Add prototype.
933 (emacs_gnutls_push): Likewise.
934
935 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
936 (emacs_gnutls_push): Likewise.
937
9382011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
939
940 * process.c (wait_reading_process_output): Check if GnuTLS
941 buffered some data internally if no FDs are set for TLS
942 connections.
943
944 * makefile.w32-in (OBJ2): Add gnutls.$(O).
945 (LIBS): Link to USER_LIBS.
946 ($(BLD)/gnutls.$(0)): New target.
947
fa6996bc
EZ
9482011-04-24 Eli Zaretskii <eliz@gnu.org>
949
eb35682e
EZ
950 * xdisp.c (handle_single_display_spec): Rename the
951 display_replaced_before_p argument into display_replaced_p, to
952 make it consistent with the commentary. Fix typos in the
953 commentary.
954
e2ad650c
EZ
955 * textprop.c (syms_of_textprop): Remove dead code.
956 (copy_text_properties): Delete obsolete commentary about an
957 interface that was deleted long ago. Fix typos in the description
958 of arguments.
959
1b2de274
EZ
960 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
961 to changes in oldXMenu/XMenu.h from 2011-04-16.
962 <menu_help_message, prev_menu_help_message>: Constify.
963 (IT_menu_make_room): menu->help_text is now `const char **';
964 adjust.
965
966 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
967 to changes in oldXMenu/XMenu.h from 2011-04-16.
968 (struct XMenu): Declare `help_text' `const char **'.
969
970 * xfaces.c <Qunspecified>: Make extern again.
971
972 * syntax.c: Include sys/types.h before including regex.h, as
973 required by Posix.
974
762b15be
EZ
975 * doc.c (get_doc_string): Improve the format passed to `error'.
976
977 * doprnt.c (doprnt): Improve commentary.
978
979 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
980
981 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
982 them with etags.
983
f1052e5d
EZ
984 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
985 changes in globals.h immediately force recompilation.
762b15be
EZ
986 (TAGS): Depend on $(CURDIR)/m/intel386.h and
987 $(CURDIR)/s/ms-w32.h.
988 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
f1052e5d 989
fa6996bc
EZ
990 * character.c (Fchar_direction): Function deleted.
991 (syms_of_character): Don't defsubr it.
992 <char-direction-table>: Deleted.
993
e6c3da20
EZ
9942011-04-23 Eli Zaretskii <eliz@gnu.org>
995
996 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
997 * doprnt.c: Include limits.h.
998 (SIZE_MAX): New macro.
999 (doprnt): Return a size_t value. 2nd arg is now size_t. Many
1000 local variables are now size_t instead of int or unsigned.
1001 Improve overflow protection. Support `l' modifier for integer
1002 conversions. Support %l conversion. Don't assume an EMACS_INT
1003 argument for integer conversions and for %c.
1004
1005 * lisp.h (doprnt): Restore prototype.
1006
1007 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
1008 $(SRC)/character.h.
1009
1010 * Makefile.in (base_obj): Add back doprnt.o.
1011
1012 * deps.mk (doprnt.o): Add back prerequisites.
1013 (callint.o): Depend on character.h.
1014
1015 * eval.c (internal_lisp_condition_case): Include the handler
1016 representation in the error message.
1017 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
1018 when breaking from the loop.
1019
1020 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
1021
1022 * callint.c (Fcall_interactively): When displaying error message
1023 about invalid control letter, pass the character's codepoint, not
1024 a pointer to its multibyte form. Improve display of the character
1025 in octal and display also its hex code.
1026
1027 * character.c (char_string): Use %x to display the (unsigned)
1028 codepoint of an invalid character, to avoid displaying a bogus
1029 negative value.
1030
1031 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
1032 `error', not SYMBOL_NAME itself.
1033
1034 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
1035 character arguments to `error'.
1036
1037 * charset.c (check_iso_charset_parameter): Fix incorrect argument
1038 to `error' in error message about FINAL_CHAR argument. Make sure
1039 FINAL_CHAR is a character, and use %c when it is passed as
1040 argument to `error'.
1041
4ffd0d6b 10422011-04-23 Eli Zaretskii <eliz@gnu.org>
97a93095
EZ
1043
1044 * s/ms-w32.h (localtime): Redirect to sys_localtime.
1045
1046 * w32.c: Include <time.h>.
1047 (sys_localtime): New function.
1048
4ffd0d6b 10492011-04-23 Chong Yidong <cyd@stupidchicken.com>
c17819f4
CY
1050
1051 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
1052
4ffd0d6b 1053 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
aac0c6e3 1054
4ffd0d6b 10552011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
aac0c6e3 1056
4ffd0d6b
GM
1057 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
1058 zombies (Bug#8467).
aac0c6e3 1059
04c56954
EZ
10602011-04-19 Eli Zaretskii <eliz@gnu.org>
1061
1062 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
1063 gl_state.e_property when gl_state.object is Qt.
1064
1065 * insdel.c (make_gap_larger): Remove limitation of buffer size
1066 to <= INT_MAX.
1067
16a43933
CY
10682011-04-18 Chong Yidong <cyd@stupidchicken.com>
1069
1070 * xdisp.c (lookup_glyphless_char_display)
1071 (produce_glyphless_glyph): Handle cons cell entry in
1072 glyphless-char-display.
1073 (Vglyphless_char_display): Document it.
1074
1075 * term.c (produce_glyphless_glyph): Handle cons cell entry in
1076 glyphless-char-display.
1077
4581706e
CY
10782011-04-17 Chong Yidong <cyd@stupidchicken.com>
1079
1080 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
1081
1082 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
1083
1084 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
1085 definition for no-X builds.
1086
4887c6e2 10872011-04-16 Paul Eggert <eggert@cs.ucla.edu>
764430a3 1088
fd35b6f9
PE
1089 Static checks with GCC 4.6.0 and non-default toolkits.
1090
5c1ccb01
PE
1091 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
1092
006c5daa
PE
1093 * process.c (keyboard_bit_set): Define only if SIGIO.
1094 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
1095 (send_process): Repair possible setjmp clobbering.
1096
efc736d3
PE
1097 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
1098
4e2fe2e6
PE
1099 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
1100
f97334a2
PE
1101 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
1102
4e75f29d
PE
1103 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
1104 Define only if needed.
1105
90efadd1
PE
1106 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
1107 by pacifying GCC about it. Maybe it's time to retire it?
875975e9 1108 * xfaces.c (USG, __TIMEVAL__): Likewise.
90efadd1 1109
3c647824
PE
1110 * dispextern.h (struct redisplay_interface): Rename param
1111 to avoid shadowing.
e264f262 1112 * termhooks.h (struct terminal): Likewise.
761383f4 1113 * xterm.c (xembed_send_message): Likewise.
3c647824 1114
b58c5c4a
PE
1115 * insdel.c (make_gap_smaller): Define only if
1116 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
1117
cad59032
PE
1118 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
1119 it.
1120
c339dc2e
PE
1121 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
1122 so that we aren't warned about unused symbols.
1123
91a3e27b
PE
1124 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
1125
399c71d3 1126 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
7a3fb125 1127
8ffc96f5
PE
1128 * xfns.c (x_real_positions): Mark locals as initialized.
1129
eef9bc79
PE
1130 * xmenu.c (xmenu_show): Don't use uninitialized vars.
1131
098db9dd
PE
1132 * xterm.c: Fix problems found by static analysis with other toolkits.
1133 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
dda3aedd
PE
1134 (x_dispatch_event): Declare static if USE_GTK, and
1135 define if USE_GTK || USE_X_TOOLKIT.
098db9dd 1136 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
dda3aedd 1137 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
841a1577
JB
1138 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
1139 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
098db9dd 1140
eb18f6cc
PE
1141 * xmenu.c (menu_help_callback): Pointer type fixes.
1142 Use const pointers when pointing at readonly data. Avoid pointer
1143 signedness clashes.
1144 (FALSE): Remove unused macro.
1145 (update_frame_menubar): Remove unused decl.
1146
1fe72bf8
PE
1147 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
1148
60d9e1db
PE
1149 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
1150 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
1151 (single_menu_item): Rename local to avoid shadowing.
1152
39261c26
PE
1153 * keyboard.c (make_lispy_event): Remove unused local var.
1154
018c5e19
PE
1155 * frame.c, frame.h (x_get_resource_string): Bring this back, but
1156 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
1157
63d2b86e
PE
1158 * bitmaps: Change bitmaps from unsigned char back to the X11
1159 compatible char. Avoid the old compiler warnings about
1160 out-of-range initializers by using, for example, '\xab' rather
1161 than 0xab.
1162
aefd87e1
PE
1163 * xgselect.c (xgselect_initialize): Check vs interface
1164 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
1165
bf501fb9
PE
1166 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
1167
e9829fdf
PE
1168 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
1169 to read-only memory.
1170
1086c095
PE
1171 * fns.c (vector): Remove; this old hack is no longer needed.
1172
2baccd04 1173 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
401f10cb 1174 Remove unused var.
dde42981 1175 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
2baccd04 1176
72391843 1177 * xrdb.c (x_load_resources): Omit unused local.
3565b346 1178
436c16df 1179 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
8a94ea33 1180 (x_window): Rename locals to avoid shadowing.
dc5ddd85 1181 (USG): Use the kludged USG macro, to pacify gcc.
436c16df 1182
92bb796d 1183 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
bbbef9e1 1184 (x_term_init): Remove local to avoid shadowing.
92bb796d 1185
764430a3 1186 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
4887c6e2
PE
1187
1188 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
1189 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
1190
d1dfb56c
EZ
11912011-04-16 Eli Zaretskii <eliz@gnu.org>
1192
c4354cb4
EZ
1193 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
1194
d1dfb56c
EZ
1195 Fix regex.c, syntax.c and friends for buffers > 2GB.
1196 * syntax.h (struct gl_state_s): Declare character position members
1197 EMACS_INT.
1198
1199 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
1200
1201 * textprop.c (verify_interval_modification, interval_of): Declare
1202 arguments EMACS_INT.
1203
1204 * intervals.c (adjust_intervals_for_insertion): Declare arguments
1205 EMACS_INT.
1206
1207 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
1208
1209 * indent.c (Fvertical_motion): Local variable it_start is now
1210 EMACS_INT.
1211
1212 * regex.c (re_match, re_match_2, re_match_2_internal)
1213 (bcmp_translate, regcomp, regexec, print_double_string)
1214 (group_in_compile_stack, re_search, re_search_2, regex_compile)
1215 (re_compile_pattern, re_exec): Declare arguments and local
1216 variables `size_t' and `ssize_t' and return values `regoff_t', as
1217 appropriate.
1218 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
1219 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
1220 <compile_stack_type>: `size' and `avail' are now `size_t'.
1221
1222 * regex.h <regoff_t>: Use ssize_t, not int.
1223 (re_search, re_search_2, re_match, re_match_2): Arguments that
1224 specify buffer/string position and length are now ssize_t and
1225 size_t. Return type is regoff_t.
1226
613052cd
BK
12272011-04-16 Ben Key <bkey76@gmail.com>
1228
1229 * nsfont.m: Fixed bugs in ns_get_family and
1230 ns_descriptor_to_entity that were caused by using free to
1231 deallocate memory blocks that were allocated by xmalloc (via
1232 xstrdup). This caused Emacs to crash when compiled with
1233 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
1234 --enable-checking=xmallocoverrun). xfree is now used to
1235 deallocate these memory blocks.
1236
4170f62f 12372011-04-15 Paul Eggert <eggert@cs.ucla.edu>
3e047f51 1238
71b41406
PE
1239 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
1240
9587a89d
PE
1241 emacs_write: Accept and return EMACS_INT for sizes.
1242 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
1243 et seq.
1244 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
1245 Accept and return EMACS_INT.
1246 (emacs_gnutls_write): Return the number of bytes written on
1247 partial writes.
1248 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
273a5f82
PE
1249 (emacs_read, emacs_write): Remove check for negative size, as the
1250 Emacs source code has been audited now.
9587a89d
PE
1251 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
1252 (emacs_read, emacs_write): Use it.
273a5f82
PE
1253 * process.c (send_process): Adjust to the new signatures of
1254 emacs_write and emacs_gnutls_write. Do not attempt to store
1255 a byte offset into an 'int'; it might overflow.
9587a89d 1256 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
273a5f82 1257
3e047f51
PE
1258 * sound.c: Don't assume sizes fit in 'int'.
1259 (struct sound_device.period_size, alsa_period_size):
9c3c56a7 1260 Return EMACS_INT, not int.
3e047f51 1261 (struct sound_device.write, vox_write, alsa_write):
9c3c56a7
PE
1262 Accept EMACS_INT, not int.
1263 (wav_play, au_play): Use EMACS_INT to store sizes and to
3e047f51
PE
1264 record read return values.
1265
cc39a9db
BK
12662011-04-15 Ben Key <bkey76@gmail.com>
1267
c9d0ec6d
JB
1268 * keyboard.c (Qundefined): Don't declare static since it is used
1269 in nsfns.m.
1270 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
1271 static since they are used in nsfont.m.
cc39a9db 1272
6c60eb9f
SM
12732011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
1274
1275 * process.c (Qprocessp): Don't declare static.
1276 * lisp.h (Qprocessp): Declare again.
1277
7990b61a
JB
12782011-04-15 Juanma Barranquero <lekktu@gmail.com>
1279
1280 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
1281
5d4cb038
PE
12822011-04-14 Paul Eggert <eggert@cs.ucla.edu>
1283
8bd7b830 1284 Improve C-level modularity by making more things 'static'.
cd64ea1d 1285
e3b27b31
PE
1286 Don't publish debugger-only interfaces to other modules.
1287 * lisp.h (safe_debug_print, debug_output_compilation_hack):
1288 (verify_bytepos, count_markers): Move decls to the only modules
1289 that need them.
1290 * region-cache.h (pp_cache): Likewise.
1291 * window.h (check_all_windows): Likewise.
1292 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
1293
5d4cb038
PE
1294 * sysdep.c (croak): Now static, if
1295 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
1296 * syssignal.h (croak): Declare only if not static.
69003fd8
PE
1297
1298 * alloc.c (refill_memory_reserve): Now static if
1299 !defined REL_ALLOC || defined SYSTEM_MALLOC.
1300 * lisp.h (refill_memory_reserve): Declare only if not static.
93ea6e8f 1301
e87b6180
PE
1302 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
1303 Define only if USE_LUCID.
1304
ac64929e
PE
1305 * xrdb.c (x_customization_string, x_rm_string): Now static.
1306
6f37259d
PE
1307 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
1308 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
1309
1683e3ab
PE
1310 * xdisp.c (draw_row_with_mouse_face): Now static.
1311 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
1312
de9c2632
PE
1313 * window.h (check_all_windows): Mark externally visible.
1314
2b96acb7
PE
1315 * window.c (window_deletion_count): Now static.
1316
1317 * undo.c: Make symbols static if they're not exported.
1318 (last_undo_buffer, last_boundary_position, pending_boundary):
1319 Now static.
1320
50436f33
PE
1321 * textprop.c (interval_insert_behind_hooks): Now static.
1322 (interval_insert_in_front_hooks): Likewise.
1323
64520e5c
PE
1324 * term.c: Make symbols static if they're not exported.
1325 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
1326 (max_frame_lines, tty_set_terminal_modes):
1327 (tty_reset_terminal_modes, tty_turn_off_highlight):
1328 (get_tty_terminal): Now static.
1329 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
1330 * termhooks.h (term_mouse_moveto): Do not declare if
8bd7b830 1331 HAVE_WINDOW_SYSTEM.
64520e5c
PE
1332 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
1333 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
1334
1fa53021
PE
1335 * sysdep.c: Make symbols static if they're not exported.
1336 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
1337 Now static.
1338 (sigprocmask_set, full_mask): Remove; unused.
1339 (wait_debugging): Mark as visible.
1340 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
1341 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
1342
d4b43b22
PE
1343 * syntax.c (syntax_temp): Define only if !__GNUC__.
1344
b7c513d0
PE
1345 * sound.c (current_sound_device, current_sound): Now static.
1346
989b29ad
PE
1347 * search.c (searchbufs, searchbuf_head): Now static.
1348
13a55a78
PE
1349 * scroll.c (scroll_cost): Remove; unused.
1350 * dispextern.h (scroll_cost): Remove decl.
1351
de68a1fc
PE
1352 * region-cache.h (pp_cache): Mark as externally visible.
1353
40ccffa6
PE
1354 * process.c: Make symbols static if they're not exported.
1355 (process_tick, update_tick, create_process, chan_process):
1356 (Vprocess_alist, proc_buffered_char, datagram_access):
1357 (fd_callback_data, send_process_frame, process_sent_to): Now static.
1358 (deactivate_process): Mark defn as static, as well as decl.
1359 * lisp.h (create_process): Remove decl.
1360 * process.h (chan_process, Vprocess_alist): Remove decls.
1361
ad64fc97
PE
1362 * print.c: Make symbols static if they're not exported.
1363 (print_depth, new_backquote_output, being_printed, print_buffer):
1364 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
1365 (print_interval, print_number_index, initial_stderr_stream):
1366 Now static.
1367 * lisp.h (Fprinc): Remove decl.
1368 (debug_output_compilation_hack): Mark as externally visible.
1369
adddb265
PE
1370 * sysdep.c (croak): Move decl from here to syssignal.h.
1371 * syssignal.h (croak): Put it here, so the API can be checked when
1372 'croak' is called from dissociate_if_controlling_tty.
1373
1717ede2
PE
1374 * minibuf.c: Make symbols static if they're not exported.
1375 (minibuf_save_list, choose_minibuf_frame): Now static.
1376 * lisp.h (choose_minibuf_frame): Remove decl.
1377
fa5fb2bc
PE
1378 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
1379
1e3890d1
PE
1380 * lread.c: Make symbols static if they're not exported.
1381 (read_objects, initial_obarray, oblookup_last_bucket_number):
1382 Now static.
1383 (make_symbol): Remove; unused.
1384 * lisp.h (initial_obarray, make_symbol): Remove decls.
1385
8a1414fa
PE
1386 * keyboard.c: Make symbols static if they're not exported.
1387 (single_kboard, recent_keys_index, total_keys, recent_keys):
1388 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
1389 (this_single_command_key_start, echoing, last_auto_save):
1390 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
1391 (command_loop, echo_now, keyboard_init_hook, help_char_p):
1392 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
1393 (Vlispy_mouse_stem, double_click_count):
1394 Now static.
1395 (force_auto_save_soon): Define only if SIGDANGER.
1396 (ignore_mouse_drag_p): Now static if
1397 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
1398 (print_help): Remove; unused.
1399 (stop_character, last_timer_event): Mark as externally visible.
1400 * keyboard.h (ignore_mouse_drag_p): Declare only if
1401 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
1402 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
1403 * lisp.h (echoing): Remove decl.
1404 (force_auto_save_soon): Declare only if SIGDANGER.
1405 * xdisp.c (redisplay_window): Simplify code, to make it more
1406 obvious that ignore_mouse_drag_p is not accessed if !defined
1407 USE_GTK && !defined HAVE_NS.
1408
93ea6e8f
PE
1409 * intervals.c: Make symbols static if they're not exported.
1410 (merge_properties_sticky, merge_interval_right, delete_interval):
1411 Now static.
1412 * intervals.h (merge_interval_right, delete_interval): Remove decls.
1413
77382fcc
PE
1414 * insdel.c: Make symbols static if they're not exported.
1415 However, leave prepare_to_modify_buffer alone. It's never
1416 called from outside this function, but that appears to be a bug.
1417 (combine_after_change_list, combine_after_change_buffer):
4889fc82 1418 (adjust_after_replace, signal_before_change): Now static.
77382fcc
PE
1419 (adjust_after_replace_noundo): Remove; unused.
1420 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
4889fc82 1421 (signal_before_change): Remove decls.
77382fcc 1422
9306c32e
PE
1423 * indent.c (val_compute_motion, val_vmotion): Now static.
1424
cd44d2eb
PE
1425 * image.c: Make symbols static if they're not exported.
1426 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
1427 if USE_GTK.
1428 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
1429 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
1430
ad9a7a06
PE
1431 * fringe.c (standard_bitmaps): Now static.
1432 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
1433
81626931
PE
1434 * frame.c: Make symbols static if they're not exported.
1435 (x_report_frame_params, make_terminal_frame): Now static.
1436 (get_frame_param): Now static, unless HAVE_NS.
1437 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
1438 (x_get_resource_string): Remove; not used.
1439 * frame.h (make_terminal_frame, x_report_frame_params):
1440 (x_get_resource_string); Remove decls.
1441 (x_fullscreen_adjust): Declare only if WINDOWSNT.
1442 * lisp.h (get_frame_param): Declare only if HAVE_NS.
1443
239f9db9
PE
1444 * font.c, fontset.c: Make symbols static if they're not exported.
1445 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
1446 (FACE_SUITABLE_FOR_CHAR_P): Use it.
1447 * font.c (font_close_object): Now static.
1448 * font.h (font_close_object): Remove.
1449 * fontset.c (FONTSET_OBJLIST): Remove.
1450 (free_realized_fontset) #if-0 the body, which does nothing.
1451 (face_suitable_for_char_p): #if-0, as it's never called.
1452 * fontset.h (face_suitable_for_char_p): Remove decl.
1453 * xfaces.c (face_at_string_position): Use
1454 FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
1455 since 0 is always ASCII.
1456
dfcf3579
PE
1457 * fns.c (weak_hash_tables): Now static.
1458
5045092b
PE
1459 * fileio.c: Make symbols static if they're not exported.
1460 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
1461 (Vwrite_region_annotation_buffers): Now static.
1462
57a96f5c
PE
1463 * eval.c: Make symbols static if they're not exported.
1464 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
1465 * lisp.h (backtrace_list): Remove decl.
1466
35f08c38
PE
1467 * emacs.c: Make symbols static if they're not exported.
1468 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
1469 (fatal_error_code, fatal_error_signal_hook, standard_args):
1470 Now static.
1471 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
1472 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
1473 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
1474 * lisp.h (fatal_error_signal_hook): Remove decl.
1475 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
1476
f44bd759
PE
1477 * editfns.c: Move a (normally-unused) function to its only use.
1478 * editfns.c, lisp.h (get_operating_system_release): Remove.
1479 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
1480 worth the hassle of breaking this out.
1481
b532497d
PE
1482 * xterm.c: Make symbols static if they're not exported.
1483 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
1484 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
1485 (x_destroy_window, x_delete_display):
1486 Now static.
1487 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
1488 (x_mouse_leave): Remove; unused.
1489 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
1490 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
1491 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
1492 Remove decls.
1493 (x_mouse_leave): Declare only if WINDOWSNT.
1494 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
1495 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
1496 USE_X_TOOLKIT.
1497
1675728f
PE
1498 * ftxfont.c: Make symbols static if they're not exported.
1499 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
1500 HAVE_FREETYPE.
1501 * font.h (ftxfont_driver): Likewise.
1502
e4cebfca
PE
1503 * xfns.c: Make symbols static if they're not exported.
1504 (x_last_font_name, x_display_info_for_name):
1505 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
1506 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
1507 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
1508 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
1509 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
1510 (last_show_tip_args): Now static.
1511 (xic_defaut_fontset, xic_create_fontsetname): Define only if
1512 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
1513 (x_screen_planes): Remove; unused.
1514 * dispextern.h (x_screen_planes): Remove decl.
1515
5bf46f05
PE
1516 * dispnew.c: Make symbols static if they're not exported.
1517 * dispextern.h (redraw_garbaged_frames, scrolling):
1518 (increment_row_positions): Remove.
1519 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
1520 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
1521 Now static.
1522 (redraw_garbaged_frames): Remove; unused.
1523
435f4c28
PE
1524 * xfaces.c: Make symbols static if they're not exported.
1525 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
1526 Remove decls.
1527 * xterm.h (defined_color): Remove decls.
1528 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
1529 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
1530 (menu_face_changed_default, defined_color, free_realized_face):
1531 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
1532 (ascii_face_of_lisp_face): Remove; unused.
1533
8524aef3
PE
1534 * xdisp.c: Make symbols static if they're not exported.
1535 * dispextern.h (scratch_glyph_row, window_box_edges):
1536 (glyph_to_pixel_coords, set_cursor_from_row):
1537 (get_next_display_element, set_iterator_to_next):
1538 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
1539 (show_mouse_face): Remove decls
1540 * frame.h (message_buf_print): Likewise.
1541 * lisp.h (pop_message, set_message, check_point_in_composition):
1542 Likewise.
1543 * xterm.h (set_vertical_scroll_bar): Likewise.
1544 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
1545 (message_buf_print, scratch_glyph_row, displayed_buffer):
1546 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
1547 (get_next_display_element, show_mouse_face, window_box_edges):
1548 (frame_to_window_pixel_xy, check_point_in_composition):
1549 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
1550 (glyph_to_pixel_coords): Remove; unused.
1551
16390cd2
PE
1552 * dired.c (file_name_completion): Now static.
1553
1554 * dbusbind.c (xd_in_read_queued_messages): Now static.
1555
a25f4dfa
PE
1556 * lisp.h (circular_list_error, FOREACH): Remove; unused.
1557 * data.c (circular_list_error): Remove.
1558
14a9c8df
PE
1559 * commands.h (last_point_position, last_point_position_buffer):
1560 (last_point_position_window): Remove decls.
1561 * keyboard.c: Make these variables static.
1562
74ab6df5
PE
1563 * coding.h (coding, code_convert_region, encode_coding_gap): Remove
1564 decls.
1565 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
1566 (iso_code_class, detect_coding, code_convert_region): Now static.
1567 (encode_coding_gap): Remove; unused.
1568
38dfbee1
PE
1569 * chartab.c (chartab_chars, chartab_bits): Now static.
1570
a2cb4e63
PE
1571 * charset.h (charset_iso_8859_1): Remove decl.
1572 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
1573 Now static.
1574
127198fd
PE
1575 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
1576 * ccl.c (Vccl_program_table): Now static.
1577 (check_ccl_update): Remove; unused.
1578
d85b608f
PE
1579 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
1580 * category.h: ... from here.
1581 * category.c (check_category_table, set_category_set): Now static.
1582
31cd66f3
PE
1583 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
1584 * lisp.h: Remove these decls.
1585
c358e587
PE
1586 * buffer.c (buffer_count): Remove unused var.
1587
e78aecca
PE
1588 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
1589 so that it's not optimized away.
1590 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
1591 * dispextern.h (bidi_dump_cached_states): Remove, since it's
1592 exported only to the debugger.
1593
e192d7d3
PE
1594 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
1595 * atimer.h (run_all_atimers): Removed; not exported.
1596
92470028
PE
1597 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
1598 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
1599 was inaccessible from Lisp.
1600 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
1601 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
1602
244ed907
PE
1603 alloc.c: Import and export fewer symbols, and remove unused items.
1604 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
1605 is defined.
1606 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
1607 it's not optimized away by whole-program optimization.
1608 (message_enable_multibyte, free_misc): Remove.
1609 (catchlist, handlerlist, mark_backtrace):
1610 Declare only if BYTE_MARK_STACK.
1611 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
1612 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
1613 (message_enable_multibyte): Remove decl.
1614 (free_misc, interval_free_list, float_block, float_block_index):
1615 (n_float_blocks, float_free_list, cons_block, cons_block_index):
1616 (cons_free_list, last_marked_index):
1617 Now static.
1618 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
1619 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
1620 (mark_backtrace): Define only if BYTE_MARK_STACK.
1621 * xdisp.c (message_enable_multibyte): Now static.
1622
61c2b50e 1623 Declare Lisp_Object Q* variables to be 'static' if not exported.
955cbe7b
PE
1624 This makes it easier for human readers (and static analyzers)
1625 to see whether these variables are used from other modules.
1626 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
1627 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
1628 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
1629 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
1630 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
1631 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
1632 * xmenu.c, xselect.c:
1633 Declare Q* vars static if they are not used in other modules.
1634 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
1635 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
1636 Remove decls of unexported vars.
1637 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
1638
95c82688
PE
1639 * lisp.h (DEFINE_FUNC): Make sname 'static'.
1640
16a97296
PE
1641 Make Emacs functions such as Fatom 'static' by default.
1642 This makes it easier for human readers (and static analyzers)
1643 to see whether these functions can be called from other modules.
1644 DEFUN now defines a static function. To make the function external
1645 so that it can be used in other C modules, use the new macro DEFUE.
8bd7b830
PE
1646 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
1647 (Finit_image_library):
16a97296
PE
1648 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
1649 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
1650 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
1651 Remove decls, since these functions are now static.
1652 (Funintern, Fget_internal_run_time): New decls, since these functions
1653 were already external.
95c82688 1654
16a97296
PE
1655 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
1656 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
1657 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
1658 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
1659 * keyboard.c, keymap.c, lread.c:
1660 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
1661 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
1662 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
1663 Mark functions with DEFUE instead of DEFUN,
1664 if they are used in other modules.
1665 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
1666 decls for now-static functions.
1667 * buffer.h (Fdelete_overlay): Remove decl.
1668 * callproc.c (Fgetenv_internal): Mark as internal.
1669 * composite.c (Fremove_list_of_text_properties): Remove decl.
1670 (Fcomposition_get_gstring): New forward static decl.
1671 * composite.h (Fcomposite_get_gstring): Remove decl.
1672 * dired.c (Ffile_attributes): New forward static decl.
1673 * doc.c (Fdocumntation_property): New forward static decl.
1674 * eval.c (Ffetch_bytecode): New forward static decl.
1675 (Funintern): Remove extern decl; now in .h file where it belongs.
1676 * fileio.c (Fmake_symbolic_link): New forward static decl.
1677 * image.c (Finit_image_library): New forward static decl.
1678 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
1679 * intervals.h (Fprevious_property_change):
1680 (Fremove_list_of_text_properties): Remove decls.
1681 * keyboard.c (Fthis_command_keys): Remove decl.
1682 (Fcommand_execute): New forward static decl.
1683 * keymap.c (Flookup_key): New forward static decl.
1684 (Fcopy_keymap): Now static.
1685 * keymap.h (Flookup_key): Remove decl.
1686 * process.c (Fget_process): New forward static decl.
1687 (Fprocess_datagram_address): Mark as internal.
1688 * syntax.c (Fsyntax_table_p): New forward static decl.
1689 (skip_chars): Remove duplicate decl.
1690 * textprop.c (Fprevious_property_change): New forward static decl.
1691 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
1692 Now internal.
1693 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
1694 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
1695
785bbd42
PE
1696 * editfns.c (Fformat): Remove unreachable code.
1697
8b913b57
AS
16982011-04-14 Andreas Schwab <schwab@linux-m68k.org>
1699
1700 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
1701 change. (Bug#8496)
1702
a6744a35
EZ
17032011-04-13 Eli Zaretskii <eliz@gnu.org>
1704
1705 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
1706 when at ZV. (Bug#8487)
1707
e7974947
AS
17082011-04-12 Andreas Schwab <schwab@linux-m68k.org>
1709
baad03f0
AS
1710 * charset.c (Fclear_charset_maps): Use xfree instead of free.
1711 (Bug#8437)
1712 * keyboard.c (parse_tool_bar_item): Likewise.
1713 * sound.c (sound_cleanup, alsa_close): Likewise.
1714 * termcap.c (tgetent): Likewise.
1715 * xfns.c (x_default_font_parameter): Likewise.
1716 * xsettings.c (read_and_apply_settings): Likewise.
1717
e7974947
AS
1718 * alloc.c (overrun_check_malloc, overrun_check_realloc)
1719 (overrun_check_free): Protoize.
1720
28272684
PE
17212011-04-12 Paul Eggert <eggert@cs.ucla.edu>
1722
1723 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
1724 since callers should never pass a negative size.
1725 Change the signature to match that of plain 'read' and 'write'; see
1726 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
1727 * lisp.h: Update prototypes of emacs_write and emacs_read.
1728
11997c76
EZ
17292011-04-11 Eli Zaretskii <eliz@gnu.org>
1730
1731 * xdisp.c (redisplay_window): Don't try to determine the character
1732 position of the scroll margin if the window start point w->startp
e896f03c 1733 is outside the buffer's accessible region. (Bug#8468)
11997c76 1734
8a2cbd72
EZ
17352011-04-10 Eli Zaretskii <eliz@gnu.org>
1736
1737 Fix write-region and its subroutines for buffers > 2GB.
1738 * fileio.c (a_write, e_write): Modify declaration of arguments and
1739 local variables to support buffers larger than 2GB.
1740 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
1741
1742 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
1743 argument, local variables, and return value.
1744
1745 * lisp.h: Update prototypes of emacs_write and emacs_read.
1746
1747 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
1748
4073e537 17492011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 1750
1ebfdcb6
PE
1751 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
1752
b2ded58d
PE
1753 Fix more problems found by GCC 4.6.0's static checks.
1754
7d66342c
PE
1755 * xdisp.c (vmessage): Use a better test for character truncation.
1756
bbf47d44
PE
1757 * charset.c (load_charset_map): <, not <=, for optimization,
1758 and to avoid potential problems with integer overflow.
9248994d 1759 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 1760 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 1761 * editfns.c (Fformat): Likewise.
1e69125e 1762 * syntax.c (skip_chars): Likewise.
3befa583 1763
e3019616
PE
1764 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
1765 This also lets GCC 4.6.0 generate slightly better loop code.
1766
becfa255
PE
1767 * callint.c (Fcall_interactively): <, not <=, for optimization.
1768 (Fcall_interactively): Count the number of arguments produced,
1769 not the number of arguments given. This is simpler and lets GCC
1770 4.6.0 generate slightly better code.
1771
dae0cd48
PE
1772 * ftfont.c: Distingish more carefully between FcChar8 and char.
1773 The previous code passed unsigned char * to a functions like
1774 strlen and xstrcasecmp that expect char *, which does not
1775 conform to the C standard.
1776 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
1777 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
1778 char * when the C standard requires it.
1779
76032d70
PE
1780 * keyboard.c (read_char): Remove unused var.
1781
eb3f1cc8
PE
1782 * eval.c: Port to Windows vsnprintf (Bug#8435).
1783 Include <limits.h>.
1784 (SIZE_MAX): Define if the headers do not.
1785 (verror): Do not give up if vsnprintf returns a negative count.
1786 Instead, grow the buffer. This ports to Windows vsnprintf, which
1787 does not conform to C99. Problem reported by Eli Zaretskii.
1788 Also, simplify the allocation scheme, by avoiding the need for
1789 calling realloc, and removing the ALLOCATED variable.
1790
70476b54
PE
1791 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
1792
12020a9e
PE
1793 Remove invocations of doprnt, as Emacs now uses vsnprintf.
1794 But keep the doprint source code for now, as we might revamp it
1795 and use it again (Bug#8435).
ea6c7ae6
PE
1796 * lisp.h (doprnt): Remove.
1797 * Makefile.in (base_obj): Remove doprnt.o.
1798 * deps.mk (doprnt.o): Remove.
1799
5fdb398c
PE
1800 error: Print 32- and 64-bit integers portably (Bug#8435).
1801 Without this change, on typical 64-bit hosts error ("...%d...", N)
1802 was used to print both 32- and 64-bit integers N, which relied on
1803 undefined behavior.
1804 * lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
1805 New macro.
1806 * lisp.h (error, verror): Mark as printf-like functions.
1807 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
1808 Report overflow in size calculations when allocating printf buffer.
1809 Do not truncate output string at its first null byte.
1810 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
1811 Truncate the output at a character boundary, since vsnprintf does not
1812 do that.
1813 * charset.c (check_iso_charset_parameter): Convert internal
1814 character to string before calling 'error', since %c now has the
1815 printf meaning.
1816 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
1817 overflow when computing char to be passed to 'error'. Do not
1818 pass Lisp_Object to 'error'; pass the integer instead.
1819 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
1820 formatted with plain %d.
1821
b189fa66
PE
1822 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
1823
bff87ef0
PE
1824 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
1825
7e2cac20
PE
1826 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
1827
ce4d90b5
PE
1828 * xterm.c (x_catch_errors): Remove duplicate declaration.
1829
266c9547
PE
1830 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
1831
79c49ad2
PE
1832 * xdisp.c, lisp.h (message_nolog): Remove; unused.
1833
368f4090
JM
18342011-04-10 Jim Meyering <meyering@redhat.com>
1835
1836 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
1837 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
1838 return ssize_t not "int", and use size_t as the buffer length.
1839 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
1840 * gnutls.h: Update declarations.
1841 * process.c (read_process_output): Use ssize_t, to match.
1842 (send_process): Likewise.
1843
a32d4040
CY
18442011-04-09 Chong Yidong <cyd@stupidchicken.com>
1845
1846 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
1847
8546720e 18482011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 1849
8546720e
GM
1850 * ftfont.c (get_adstyle_property, ftfont_pattern_entity): Use
1851 unsigned char, to match FcChar8 type definition.
aac0c6e3 1852
8546720e
GM
1853 * xterm.c (handle_one_xevent):
1854 * xmenu.c (create_and_show_popup_menu):
1855 * xselect.c (x_decline_selection_request)
1856 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 1857
0a2f5c1a 18582011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
1859
1860 Fix some uses of `int' instead of EMACS_INT.
1861 * search.c (string_match_1, fast_string_match)
1862 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
1863 (scan_buffer, find_next_newline_no_quit)
1864 (find_before_next_newline, search_command, Freplace_match)
1865 (Fmatch_data): Make some `int' variables be EMACS_INT.
1866
1867 * xdisp.c (display_count_lines): 3rd argument and return value now
1868 EMACS_INT. All callers changed.
1869 (pint2hrstr): Last argument is now EMACS_INT.
1870
1871 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
1872 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
1873 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
1874 (decode_coding_utf_16, decode_coding_emacs_mule)
1875 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
1876 (decode_coding_ccl, decode_coding_charset)
1877 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
1878 (decode_coding_iso_2022, decode_coding_emacs_mule)
1879 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
1880 <char_offset, last_offset>: Declare EMACS_INT.
1881 (encode_coding_utf_8, encode_coding_utf_16)
1882 (encode_coding_emacs_mule, encode_invocation_designation)
1883 (encode_designation_at_bol, encode_coding_iso_2022)
1884 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
1885 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
1886 Declare EMACS_INT.
1887 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
1888 (encode_invocation_designation): Last argument P_NCHARS is now
1889 EMACS_INT.
1890 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
1891 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
1892
1893 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
1894 All users changed.
1895
1896 * ccl.c (Fccl_execute_on_string): Declare some variables
1897 EMACS_INT.
1898
8546720e 18992011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
1900
1901 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
1902
4e19a977
CS
19032011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
1904
1905 * process.c (Fformat_network_address): Doc fix.
1906
87302331
R
19072011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
1908
1909 * xml.c (parse_region): Avoid creating spurious whiespace nodes.
1910
cbb59342
CY
19112011-04-08 Chong Yidong <cyd@stupidchicken.com>
1912
1913 * keyboard.c (read_char): Call Lisp function help-form-show,
1914 instead of using internal_with_output_to_temp_buffer.
1915 (Qhelp_form_show): New var.
e0d38eeb 1916 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
1917
1918 * print.c (internal_with_output_to_temp_buffer): Function deleted.
1919
1920 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
1921
e67a13ab
CY
19222011-04-06 Chong Yidong <cyd@stupidchicken.com>
1923
1924 * process.c (Flist_processes): Removed to Lisp.
1925 (list_processes_1): Deleted.
1926
973f782d
EZ
19272011-04-06 Eli Zaretskii <eliz@gnu.org>
1928
7c106b1e
EZ
1929 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
1930
973f782d
EZ
1931 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
1932
41cf7d1a 19332011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 1934
ca23cc88
PE
1935 Fix more problems found by GCC 4.6.0's static checks.
1936
f390e2d5
PE
1937 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
1938
42eea0d0
PE
1939 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
1940
b69769da 1941 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 1942
f9541e84
PE
1943 * xdisp.c (vmessage): Mark as a printf-like function.
1944
13841b55
PE
1945 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
1946
c136c10f
PE
1947 * sound.c (sound_warning): Don't crash if arg contains a printf format.
1948
5e2d4a30
PE
1949 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
1950 printf-like functions.
1951 (tiff_load): Add casts to remove these marks before passing them
1952 to system-supplied API.
1953
583f48b9
PE
1954 * eval.c (Fsignal): Remove excess argument to 'fatal'.
1955
b25d760e
PE
1956 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
1957 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
1958 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
1959 directly, rather than having caller test rule sign. This avoids
1960 some unnecessary tests.
1961 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
1962 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
1963 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 1964
bc7b6697 1965 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 1966 (xfont_open): Avoid unnecessary tests.
bc7b6697 1967
27ccc379
PE
1968 * composite.c (composition_gstring_put_cache): Use unsigned integer.
1969
dcd5c89a
PE
1970 * composite.h, composite.c (composition_gstring_put_cache):
1971 Use EMACS_INT, not int, for length.
1972
b13a45c6
PE
1973 * composite.h (COMPOSITION_DECODE_REFS): New macro,
1974 breaking out part of COMPOSITION_DECODE_RULE.
1975 (COMPOSITION_DECODE_RULE): Use it.
1976 * composite.c (get_composition_id): Remove unused local vars,
1977 by using the new macro.
1978
1e792e4d
PE
1979 * textprop.c (set_text_properties_1): Change while to do-while,
1980 since the condition is always true at first.
1981
dc6c6455 1982 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
1983 (interval_deletion_adjustment): Return unsigned value.
1984 All uses changed.
dc6c6455 1985
aba7731a
PE
1986 * process.c (list_processes_1, create_pty, read_process_output):
1987 (exec_sentinel): Remove vars that were set but not used.
afd4052b 1988 (create_pty): Remove unnecessary "volatile"s.
bc57d757 1989 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 1990 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 1991 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 1992
fdfc4bf3
PE
1993 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
1994
fca8fe46 1995 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 1996 (update_syntax_table): Use unsigned instead of int.
fca8fe46 1997
06a0259a 1998 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 1999 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 2000 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 2001
e7b9e80f
PE
2002 * print.c (print_error_message): Avoid int overflow.
2003
56201685
PE
2004 * font.c (font_list_entities): Redo for clarity,
2005 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
2006
78834453 2007 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 2008 (font_score): Avoid potential overflow in diff calculation.
78834453 2009
0bc0b309 2010 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 2011 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 2012
e610eaca
PE
2013 * eval.c (funcall_lambda): Rename local to avoid shadowing.
2014
b895abce
PE
2015 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
2016 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
2017 can always succeed if overflow has undefined behavior.
2018
1f1d9321 2019 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 2020 (wordify): Omit three unnecessary tests.
1f1d9321 2021
c59478bc
PE
2022 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
2023 All callers changed. This avoids the need for an unused var.
2024
79b73827
PE
2025 * casefiddle.c (casify_region): Remove var that is set but not used.
2026
a4db5dfe
PE
2027 * dired.c (file_name_completion): Remove var that is set but not used.
2028
43aae36e
PE
2029 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
2030
2a47c44d 2031 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 2032 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 2033
a37c69bf
PE
2034 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
2035 Check for integer overflow on size calculations.
2036
328ab8e7
PE
2037 * buffer.c (Fprevious_overlay_change): Remove var that is set
2038 but not used.
2039
e5a2a5cb
PE
2040 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
2041 Remove vars that are set but not used.
8d84a6eb 2042 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 2043 (timer_check_2): Mark vars as initialized.
e5a2a5cb 2044
a60e5f68
PE
2045 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
2046
f661cb61 2047 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 2048 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 2049
f0397f5a
PE
2050 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
2051 that are set but not used.
2052
8664db06 2053 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 2054 if XCreateBitmapFromData fails (Bug#8410).
8664db06 2055
6abdaa4a
PE
2056 * xselect.c (x_get_local_selection, x_handle_property_notify):
2057 Remove vars that are set but not used.
2058
0ce7538d 2059 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 2060 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 2061
9ae848fc
PE
2062 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
2063 Remove var that is set but not used.
0b918413
PE
2064 (scroll_bar_windows_size): Now size_t, not int.
2065 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
2066 Check for overflow.
9ae848fc 2067
a5a62657
PE
2068 * xfaces.c (realize_named_face): Remove vars that are set but not used.
2069 (map_tty_color) [!defined MSDOS]: Likewise.
2070
5c5cdd39
PE
2071 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
2072
66ebf983
PE
2073 * coding.c: Remove vars that are set but not used.
2074 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
2075 All callers changed.
2076 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
2077 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
2078 (decode_coding_charset): Remove vars that are set but not used.
2079
1be4d761
PE
2080 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
2081 that is set but not used.
2082
47553fa8
PE
2083 * print.c (print_object): Remove var that is set but not used.
2084
1f7196bf 2085 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
2086 The gnulib version avoids calling malloc in the usual case,
2087 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
2088 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
2089 * filelock.c (current_lock_owner): Likewise.
2090 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
2091 * sysdep.c: Include allocator.h, careadlinkat.h.
2092 (emacs_no_realloc_allocator): New static constant.
2093 (emacs_readlink): New function.
fdb61804
PE
2094 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
2095 ../lib/careadlinkat.h.
d1fdcab7 2096
f84c17c7
SM
20972011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
2098
2099 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
2100 first non-nil return value).
2101
ef3862ad
JD
21022011-04-03 Jan Djärv <jan.h.d@swipnet.se>
2103
2104 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
2105 if not defined (Bug#8403).
2106
376a7006
JB
21072011-04-02 Juanma Barranquero <lekktu@gmail.com>
2108
2109 * xdisp.c (display_count_lines): Remove parameter `start',
2110 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
2111 (get_char_face_and_encoding): Remove parameter `multibyte_p',
2112 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
2113 (fill_stretch_glyph_string): Remove parameters `row' and `area',
2114 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
2115 and thereabouts. All callers changed.
2116 (get_per_char_metric): Remove parameter `f', unused since
2117 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
2118
6ca3801d
JM
21192011-04-02 Jim Meyering <meyering@redhat.com>
2120
2121 do not dereference NULL upon failed strdup
2122 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
2123 (ns_get_family): Likewise.
2124
d8e2b5ba
JB
21252011-04-02 Juanma Barranquero <lekktu@gmail.com>
2126
2127 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
2128
8c74fcbd
JD
21292011-04-02 Jan Djärv <jan.h.d@swipnet.se>
2130
2131 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
2132 later (Bug#8403).
2133
7200d79c
SM
21342011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
2135
03408648 2136 Add lexical binding.
7200d79c 2137
03408648
SM
2138 * window.c (Ftemp_output_buffer_show): New fun.
2139 (Fsave_window_excursion):
2140 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
2141
2142 * lread.c (lisp_file_lexically_bound_p): New function.
2143 (Fload): Bind Qlexical_binding.
2144 (readevalloop): Remove `evalfun' arg.
2145 Bind Qinternal_interpreter_environment.
2146 (Feval_buffer): Bind Qlexical_binding.
2147 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
2148 Mark as dynamic.
2149 (syms_of_lread): Declare `lexical-binding'.
2150
2151 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
2152
2153 * keyboard.c (eval_dyn): New fun.
2154 (menu_item_eval_property): Use it.
ca105506
SM
2155
2156 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 2157
03408648
SM
2158 * fns.c (concat, mapcar1): Accept byte-code-functions.
2159
2160 * eval.c (Fsetq): Handle lexical vars.
2161 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
2162 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
2163 (FletX, Flet): Obey lexical binding.
2164 (Fcommandp): Handle closures.
2165 (Feval): New `lexical' arg.
2166 (eval_sub): New function extracted from Feval. Use it almost
2167 everywhere where Feval was used. Look up vars in lexical env.
2168 Handle closures.
2169 (Ffunctionp): Move from subr.el.
2170 (Ffuncall): Handle closures.
2171 (apply_lambda): Remove `eval_flags'.
2172 (funcall_lambda): Handle closures and new byte-code-functions.
2173 (Fspecial_variable_p): New function.
2174 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
2175 but without exporting it to Lisp.
23aba0ea 2176
23aba0ea 2177 * doc.c (Fdocumentation, store_function_docstring):
03408648 2178 * data.c (Finteractive_form): Handle closures.
23aba0ea 2179
03408648
SM
2180 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
2181 interactive spec.
ba83908c 2182
03408648
SM
2183 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN): New
2184 byte-codes.
2185 (exec_byte_code): New function extracted from Fbyte_code to handle new
2186 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 2187
03408648 2188 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 2189
03408648 2190 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 2191
e2abce01
JB
21922011-03-31 Juanma Barranquero <lekktu@gmail.com>
2193
2194 * xdisp.c (redisplay_internal): Fix prototype.
2195
63696a73 21962011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 2197
63696a73
EZ
2198 * xdisp.c (SCROLL_LIMIT): New macro.
2199 (try_scrolling): Use it when setting scroll_limit. Limit
2200 scrolling to 100 screen lines.
2201 (redisplay_window): Even when falling back on "recentering",
2202 position point in the window according to scroll-conservatively,
2203 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
2204
2205 (try_scrolling): When point is above the window, allow searching
2206 as far as scroll_max, or one screenful, to compute vertical
2207 distance from PT to the scroll margin position. This prevents
2208 try_scrolling from unnecessarily failing when
2209 scroll-conservatively is set to a value slightly larger than the
2210 window height. Clean up the case of PT below the margin at bottom
2211 of window: scroll_max can no longer be INT_MAX. When aggressive
2212 scrolling is in use, don't let point enter the opposite scroll
2213 margin as result of the scroll.
2214 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
2215 threshold of 100 lines for never-recentering scrolling.
2216
e4cc2dfc
JB
22172011-03-31 Juanma Barranquero <lekktu@gmail.com>
2218
2219 * dispextern.h (move_it_by_lines):
2220 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
2221 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
2222 (message_log_check_duplicate): Remove parameters `prev_bol' and
2223 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
2224 (redisplay_internal): Remove parameter `preserve_echo_area',
2225 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
2226
2227 * indent.c (Fvertical_motion):
2228 * window.c (window_scroll_pixel_based, Frecenter):
2229 Don't pass `need_y_p' to `move_it_by_lines'.
2230
1c470562
SM
22312011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
2232
44f230aa
SM
2233 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
2234 steal a few bits to be more compact.
2235 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
2236 Remove unneeded casts.
2237
1c470562
SM
2238 * bytecode.c (Fbyte_code): CAR and CDR can GC.
2239
888adce9
ZK
22402011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
2241
2242 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
2243 binding" message (bug#7967).
2244
f838ed7b
PE
22452011-03-30 Paul Eggert <eggert@cs.ucla.edu>
2246
77861b95
PE
2247 Fix more problems found by GCC 4.6.0's static checks.
2248
de6dbc14
PE
2249 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
2250 Remove unused local var.
2251
f838ed7b
PE
2252 * editfns.c (Fmessage_box): Remove unused local var.
2253
792c7b2b
PE
2254 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
2255 (note_mode_line_or_margin_highlight, note_mouse_highlight):
2256 Omit unused local vars.
c499e557 2257 * window.c (shrink_windows): Omit unused local var.
b01a1c29 2258 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
2259 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
2260 Omit unused local var.
2261
ba0165e1
PE
2262 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
2263 Don't assume string length fits in int.
32ad8845 2264 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 2265 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 2266
3c59b4c9
PE
2267 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
2268 instead of alloca (Bug#8344).
2269
a3eed478 2270 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 2271 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 2272
eb4d412d
PE
2273 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
2274
1658b401
PE
2275 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
2276 concerns.
2277
2278 * term.c (produce_glyphless_glyph): Remove unnecessary test.
2279
2280 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 2281
9a2c6e05
PE
2282 * keyboard.c (syms_of_keyboard): Use the same style as later
2283 in this function when indexing through an array. This also
2284 works around GCC bug 48267.
2285
03d0a109
PE
2286 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
2287
44f730c8
PE
2288 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
2289
fe75f926
PE
2290 * chartab.c (sub_char_table_ref_and_range): Redo for slight
2291 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
2292
ffa8c828
PE
2293 * keyboard.c, keyboard.h (num_input_events): Now size_t.
2294 This avoids undefined behavior on integer overflow, and is a bit
2295 more convenient anyway since it is compared to a size_t variable.
2296
c5101a77
PE
2297 Variadic C functions now count arguments with size_t, not int.
2298 This avoids an unnecessary limitation on 64-bit machines, which
2299 caused (substring ...) to crash on large vectors (Bug#8344).
2300 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
2301 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 2302 All variadic functions and their callers changed accordingly.
c5101a77
PE
2303 (struct gcpro.nvars): Now size_t, not int. All uses changed.
2304 * data.c (arith_driver, float_arith_driver): Likewise.
2305 * editfns.c (general_insert_function): Likewise.
2306 * eval.c (struct backtrace.nargs, interactive_p)
2307 (internal_condition_case_n, run_hook_with_args, apply_lambda)
2308 (funcall_lambda, mark_backtrace): Likewise.
2309 * fns.c (concat): Likewise.
2310 * frame.c (x_set_frame_parameters): Likewise.
2311 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
2312 0 if not found, not -1. All callers changed.
2313
dd3f25f7
PE
2314 * alloc.c (garbage_collect): Don't assume stack size fits in int.
2315 (stack_copy_size): Now size_t, not int.
2316 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
2317
461c2ab9
JB
23182011-03-28 Juanma Barranquero <lekktu@gmail.com>
2319
2320 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
2321 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
2322 All callers changed.
2323
2324 * lisp.h (multibyte_char_to_unibyte):
2325 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
2326 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
2327 * character.h (CHAR_TO_BYTE8):
2328 * cmds.c (internal_self_insert):
2329 * editfns.c (general_insert_function):
2330 * keymap.c (push_key_description):
2331 * search.c (Freplace_match):
2332 * xdisp.c (message_dolog, set_message_1): All callers changed.
2333
f6d62986
SM
23342011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
2335
2336 * keyboard.c (safe_run_hook_funcall): New function.
2337 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
2338 don't set the hook to nil, but remove the offending function instead.
2339 (Qcommand_hook_internal): Remove, unused.
2340 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
2341 Vcommand_hook_internal.
2342
2343 * eval.c (enum run_hooks_condition): Remove.
2344 (funcall_nil, funcall_not): New functions.
2345 (run_hook_with_args): Call each function through a `funcall' argument.
2346 Remove `cond' argument, now redundant.
2347 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
2348 (Frun_hook_with_args_until_failure): Adjust accordingly.
2349 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
2350
1db5b1ad
JB
23512011-03-28 Juanma Barranquero <lekktu@gmail.com>
2352
2353 * dispextern.h (string_buffer_position): Remove declaration.
2354
2355 * print.c (strout): Remove parameter `multibyte', unused since
2356 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
2357
2358 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
2359 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
2360 All callers changed.
2361
2362 * w32.c (_wsa_errlist): Use braces for struct initializers.
2363
2364 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
2365 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
2366 All callers changed.
2367 (string_buffer_position): Likewise. Also, make static (it's never
2368 used outside xdisp.c).
2369 (cursor_row_p): Remove parameter `w', unused since
2370 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
2371 (decode_mode_spec): Remove parameter `precision', introduced during
2372 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
2373 All callers changed.
2374
5ffb62aa
JD
23752011-03-27 Jan Djärv <jan.h.d@swipnet.se>
2376
2377 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
2378
461c2ab9 23792011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
2380
2381 * nsterm.m (ns_menu_bar_is_hidden): New variable.
2382 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
2383 (ns_update_auto_hide_menu_bar): New functions.
2384 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
2385 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
2386 ns_constrain_all_frames.
2387 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
2388 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
2389
5c380ffb
JD
23902011-03-27 Jan Djärv <jan.h.d@swipnet.se>
2391
2392 * nsmenu.m (runDialogAt): Remove argument to timer_check.
2393
9af30bdf
GM
23942011-03-27 Glenn Morris <rgm@gnu.org>
2395
2396 * syssignal.h: Replace RETSIGTYPE with void.
2397 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
2398 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
2399 Replace SIGTYPE with void everywhere.
2400 * s/usg5-4-common.h (SIGTYPE): Remove definition.
2401 * s/template.h (SIGTYPE): Remove commented out definition.
2402
e2abce01
JB
24032011-03-26 Eli Zaretskii <eliz@gnu.org>
2404
2405 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
2406 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
2407
f868cd8a
JB
24082011-03-26 Juanma Barranquero <lekktu@gmail.com>
2409
59eb0929
JB
2410 * w32.c (read_unc_volume): Use parameter `henum', instead of
2411 global variable `wget_enum_handle'.
2412
2413 * keymap.c (describe_vector): Remove parameters `indices' and
2414 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
2415 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
2416
f868cd8a
JB
2417 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
2418
2419 * keyboard.c (timer_check): Remove parameter `do_it_now',
2420 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
2421 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
2422 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
2423
2424 * keyboard.c (read_char):
2425 * w32menu.c (w32_menu_display_help):
2426 * xmenu.c (show_help_event, menu_help_callback):
2427 Adjust calls to `show_help_echo'.
2428
2429 * gtkutil.c (xg_maybe_add_timer):
2430 * keyboard.c (readable_events):
2431 * process.c (wait_reading_process_output):
2432 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
2433
2434 * insdel.c (adjust_markers_gap_motion):
2435 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
2436 (gap_left, gap_right): Don't call it.
2437
2ecf6fdb
CY
24382011-03-25 Chong Yidong <cyd@stupidchicken.com>
2439
2440 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
2441 incurred during fontification.
2442
6b1f9ba4
JB
24432011-03-25 Juanma Barranquero <lekktu@gmail.com>
2444
2445 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
2446 (DEFVAR_PER_BUFFER): Don't pass it.
2447
2448 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
2449 (scrolling_window): Don't pass it.
2450
0f4a96b5
JB
24512011-03-25 Juanma Barranquero <lekktu@gmail.com>
2452
2453 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
2454
2455 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
2456 and `suffix'.
2457 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
2458 of variables specific to SELinux and computation of `encoded_absname'.
2459
2460 * image.c (XPutPixel): Remove unused variable `height'.
2461
2462 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
2463
2464 * unexw32.c (get_section_info): Remove unused variable `section'.
2465
2466 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
2467 (system_process_attributes): Remove unused variable `sess'.
2468 (sys_read): Remove unused variable `err'.
2469
2470 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
2471 (w32_wnd_proc): Remove unused variable `isdead'.
2472 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
2473 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
2474 (x_create_tip_frame): Remove unused variable `tem'.
2475
2476 * w32inevt.c (w32_console_read_socket):
2477 Remove unused variable `no_events'.
2478
2479 * w32term.c (x_draw_composite_glyph_string_foreground):
2480 Remove unused variable `width'.
2481
1149507c
JB
24822011-03-24 Juanma Barranquero <lekktu@gmail.com>
2483
2484 * w32term.c (x_set_glyph_string_clipping):
2485 Don't pass uninitialized region to CombineRgn.
2486
9c88f339
JB
24872011-03-23 Juanma Barranquero <lekktu@gmail.com>
2488
2489 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
2490 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
2491 (Fx_close_connection): Remove unused variable `i'.
2492
2493 * w32font.c (w32font_draw): Return number of glyphs.
2494 (w32font_open_internal): Remove unused variable `i'.
2495 (w32font_driver): Add missing initializer.
2496
2497 * w32menu.c (utf8to16): Remove unused variable `utf16'.
2498 (fill_in_menu): Remove unused variable `items_added'.
2499
2500 * w32term.c (last_mouse_press_frame): Remove static global variable.
2501 (w32_clip_to_row): Remove unused variable `f'.
2502 (x_delete_terminal): Remove unused variable `i'.
2503
2504 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
2505 (NOTHING): Remove unused static global variable.
2506 (uniscribe_check_otf): Remove unused variable `table'.
2507 (uniscribe_font_driver): Add missing initializers.
2508
dee091a3
JD
25092011-03-23 Julien Danjou <julien@danjou.info>
2510
2511 * term.c (Fsuspend_tty, Fresume_tty):
2512 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
2513 * window.c (temp_output_buffer_show):
2514 * insdel.c (signal_before_change):
2515 * frame.c (Fhandle_switch_frame):
2516 * fileio.c (Fdo_auto_save):
2517 * emacs.c (Fkill_emacs):
2518 * editfns.c (save_excursion_restore):
2519 * cmds.c (internal_self_insert):
2520 * callint.c (Fcall_interactively):
2521 * buffer.c (Fkill_all_local_variables):
2522 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
2523 Use Frun_hooks.
0f4a96b5 2524 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
dee091a3
JD
2525 unconditionnaly since it does the check itself.
2526
2c520ab5 25272011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 2528
c9c49752
PE
2529 Fix more problems found by GCC 4.5.2's static checks.
2530
8abc3f12
PE
2531 * coding.c (encode_coding_raw_text): Avoid unnecessary test
2532 the first time through the loop, since we know p0 < p1 then.
2533 This also avoids a gcc -Wstrict-overflow warning.
2534
a2d26660
PE
2535 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
2536 leading to a memory leak, possible in functions like
2537 load_charset_map_from_file that can allocate an unbounded number
b12ef411 2538 of objects (Bug#8318).
a2d26660 2539
916c72e9
PE
2540 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
2541 that could (at least in theory) be that large.
2542
19ab8a18
PE
2543 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
2544 This is less likely to overflow, and avoids undefined behavior if
2545 overflow does occur. All callers changed. Use strtoul to scan
2546 for the unsigned long integer.
b7cbbd6f
PE
2547 (pint2hrstr): Simplify and tune code slightly.
2548 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 2549
f0641eff
PE
2550 * scroll.c (do_scrolling): Work around GCC bug 48228.
2551 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
2552
7f650bb9
PE
2553 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
2554 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
2555 (validate_x_resource_name): Simplify count usage.
2556 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 2557
37dd57d1
PE
2558 * fileio.c (Fcopy_file): Report error if fchown or fchmod
2559 fail (Bug#8306).
81e56e61 2560
699979fc 2561 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 2562
401bf9b4
PE
2563 * process.c (Fmake_network_process): Use socklen_t, not int,
2564 where POSIX says socklen_t is required in portable programs.
2565 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 2566 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
2567 (Fmake_network_process, server_accept_connection):
2568 (wait_reading_process_output, read_process_output):
2569 Likewise.
2570
b93aacde
PE
2571 * process.c: Rename or move locals to avoid shadowing.
2572 (list_processes_1, Fmake_network_process):
2573 (read_process_output_error_handler, exec_sentinel_error_handler):
2574 Rename or move locals.
4dc343ee 2575 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 2576 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 2577 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 2578 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 2579 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 2580
af8a867c 2581 Make tparam.h and terminfo.c consistent.
44f230aa
SM
2582 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
2583 Include tparam.h instead, since it declares them.
af8a867c
PE
2584 * cm.h (PC): Remove extern decl; tparam.h now does this.
2585 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
2586 * terminfo.c: Include tparam.h, to check interfaces.
2587 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
2588 (tparam): Adjust signature to match interface in tparam.h;
2589 this removes some undefined behavior. Check that outstring and len
2590 are zero, which they always are with Emacs.
2591 * tparam.h (PC, BC, UP): New extern decls.
2592
0248044d 2593 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 2594 (xftfont_open): Rename locals to avoid shadowing.
0248044d 2595
8ff096c1 2596 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
2597 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
2598 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 2599 (ftfont_list): Remove unused local.
49eaafba
PE
2600 (get_adstyle_property, ftfont_pattern_entity):
2601 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
2602 Rename locals to avoid shadowing.
8ff096c1 2603
e2be39f6
PE
2604 * xfont.c (xfont_list_family): Mark var as initialized.
2605
c9735e30
PE
2606 * xml.c (make_dom): Now static.
2607
8f5201ae
PE
2608 * composite.c (composition_compute_stop_pos): Rename local to
2609 avoid shadowing.
b246f932
PE
2610 (composition_reseat_it): Remove unused locals.
2611 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 2612 (composition_update_it): Mark var as initialized.
11b61122
PE
2613 (find_automatic_composition): Mark vars as initialized,
2614 with a FIXME (Bug#8290).
8f5201ae 2615
760fbc2c
PE
2616 character.h: Rename locals to avoid shadowing.
2617 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
2618 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
2619 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
2620 (BUF_DEC_POS): Be more systematic about renaming local temporaries
2621 to avoid shadowing.
2622
ff08eb85
PE
2623 * textprop.c (property_change_between_p): Remove; unused.
2624
fc7bf025
PE
2625 * intervals.c (interval_start_pos): Now static.
2626
235d7abc
PE
2627 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
2628
44f230aa
SM
2629 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
2630 Rename locals to avoid shadowing.
3e7d6594 2631
50060332
PE
2632 * sound.c (wav_play, au_play, Fplay_sound_internal):
2633 Fix pointer signedness.
d01f234b 2634 (alsa_choose_format): Remove unused local var.
c83b8872
PE
2635 (wav_play): Initialize a variable to 0, to prevent undefined
2636 behavior (Bug#8278).
50060332 2637
c4fc4e30
PE
2638 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
2639
918436ed
PE
2640 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
2641
c939f91b
PE
2642 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
2643 clobbering (Bug#8298).
b9c7f648
PE
2644 * sysdep.c (sys_subshell): Likewise.
2645 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 2646
6bd8c144
PE
2647 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
2648 This should get cleaned up, so that child_setup has the
2649 same signature on all platforms.
2650
7710357c 2651 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 2652 (relocate_fd): Rename locals to avoid shadowing.
7710357c 2653
c59da222
CY
26542011-03-22 Chong Yidong <cyd@stupidchicken.com>
2655
2656 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
2657 not to be necessary, and produces flickering.
2658
66b87493
GM
26592011-03-20 Glenn Morris <rgm@gnu.org>
2660
2661 * config.in: Remove file.
2662
45b6f6d5
JB
26632011-03-20 Juanma Barranquero <lekktu@gmail.com>
2664
2665 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
2666 are now in src/globals.h.
2667 (syms_of_minibuf): Remove spurious & from previous change.
2668
3ec03f7e
LL
26692011-03-20 Leo <sdl.web@gmail.com>
2670
2671 * minibuf.c (completing-read-function): New variable.
2672 (completing-read-default): Rename from completing-read.
2673 (completing-read): Call completing-read-function.
2674
b14e3e21
CY
26752011-03-19 Juanma Barranquero <lekktu@gmail.com>
2676
2677 * xfaces.c (Fx_load_color_file):
2678 Read color file from absolute filename (bug#8250).
2679
f2b726e6
JB
26802011-03-19 Juanma Barranquero <lekktu@gmail.com>
2681
2682 * makefile.w32-in: Update dependencies.
2683
09f6ff02
EZ
26842011-03-17 Eli Zaretskii <eliz@gnu.org>
2685
2686 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
2687
29a6015a
PE
26882011-03-17 Paul Eggert <eggert@cs.ucla.edu>
2689
a3a6c54e
PE
2690 Fix more problems found by GCC 4.5.2's static checks.
2691
b766f867
PE
2692 * process.c (make_serial_process_unwind, send_process_trap):
2693 (sigchld_handler): Now static.
2694
be02381c
PE
2695 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
2696 That way, the code declares only the vars that it needs.
2697 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
2698 * s/cygwin.h (PTY_ITERATION): Likewise.
2699 * s/darwin.h (PTY_ITERATION): Likewise.
2700 * s/gnu-linux.h (PTY_ITERATION): Likewise.
2701
57048744
PE
2702 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
2703 * process.c (allocate_pty): Don't declare stb unless it's needed.
2704
7914961c 2705 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
2706 (CONSTANTLIM): Remove; unused.
2707 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
2708 Define only if needed.
7914961c 2709
b3967b18
PE
2710 * unexelf.c (unexec): Name an expression,
2711 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
2712 Use a different way to cause a compilation error if anyone uses
2713 n rather than nn, a way that does not involve shadowing.
73366a00 2714 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 2715
29a6015a
PE
2716 * deps.mk (unexalpha.o): Remove; unused.
2717
43cfc33e 2718 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 2719 * unexec.h: New file.
ce701a33
PE
2720 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
2721 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
2722 Depend on unexec.h.
2723 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
2724 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
2725 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 2726 Change as necessary to match prototype in unexec.h.
ce701a33 2727
01f44d5a
PE
2728 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
2729 shadowing.
4f63c6bb 2730 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 2731
a6670b0b
PE
2732 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
2733 Rename locals to avoid shadowing.
2734
cef2010d 2735 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 2736 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 2737
d4d7173a
PE
2738 * print.c (Fredirect_debugging_output): Fix pointer signedess.
2739
f08b802a
PE
2740 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
2741 warning when compiling print.c.
2742
3ddb0639
PE
2743 * font.c (font_unparse_fcname): Abort in an "impossible" situation
2744 instead of using an uninitialized var.
5ad03b97 2745 (font_sort_entities): Mark var as initialized.
3ddb0639 2746
170a2692
PE
2747 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
2748
e663c700
PE
2749 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
2750 pointers to constants.
89bc529a 2751 (font_parse_fcname): Remove unused vars.
7b81e2d0 2752 (font_delete_unmatched): Now static.
ea838e10 2753 (font_get_spec): Remove; unused.
13a547c6
PE
2754 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
2755 (font_update_drivers, Ffont_get_glyphs, font_add_log):
2756 Rename or move locals to avoid shadowing.
e663c700 2757
2a80c887 2758 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 2759 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 2760
1384fa33 2761 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 2762 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 2763
8b2c52e9
PE
2764 * alloc.c (mark_backtrace): Move decl from here ...
2765 * lisp.h: ... to here, so that it can be checked.
2766
475545b5 2767 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 2768 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
2769 (lisp_indirect_variable): Name an expression,
2770 to avoid gcc -Wbad-function-cast warning.
1faed8ae 2771 (Fdefvar): Rename locals to avoid shadowing.
475545b5 2772
b1349114 2773 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 2774 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 2775 Use const pointer when appropriate.
b1349114 2776
a2928364
PE
2777 * lisp.h (get_system_name, get_operating_system_release):
2778 Move decls here, to check interfaces.
2779 * process.c (get_operating_system_release): Move decl to lisp.h.
2780 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
2781 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
2782 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
2783 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
2784 (Fformat_time_string, Fencode_time, Finsert_char):
2785 (Ftranslate_region_internal, Fformat):
2786 Rename or remove local vars to avoid shadowing.
9710023e 2787 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 2788
a415e694
PE
2789 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
2790 avoid shadowing.
2791
8ef4622d
PE
2792 * lisp.h (eassert): Check that the argument compiles, even if
2793 ENABLE_CHECKING is not defined.
2794
946f9a5b
PE
2795 * data.c (Findirect_variable): Name an expression, to avoid
2796 gcc -Wbad-function-cast warning.
112396d6 2797 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 2798 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
2799 (Fmake_variable_buffer_local, Fmake_local_variable):
2800 Mark variables as initialized.
52746918 2801 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 2802
e5aab7e7 2803 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
2804 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
2805 Rename locals to avoid shadowing.
dff45157
PE
2806 (mark_stack): Move local variables into the #ifdef region where
2807 they're used.
7bc26fdb
PE
2808 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
2809 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
2810 needed otherwise.
2811 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
2812 (GC_STRING_CHARS): Remove; not used.
d40d4be1 2813 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 2814
e5aab7e7
PE
2815 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
2816 avoids undefined behavior in theory.
2817
4da60324
PE
2818 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
2819
88043301
PE
2820 Use functions, not macros, for up- and down-casing (Bug#8254).
2821 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
2822 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
2823 to use the following functions instead of these macros.
2824 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
2825 EMACS_INT, since callers assume the returned value fits in int.
2826 (upcase1): Likewise, for UPCASE_TABLE.
2827 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 2828 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 2829 the race-condition problem in the old DOWNCASE.
88043301 2830
19ed5445
PE
2831 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
2832 Rename locals to avoid shadowing.
2833 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
2834 (regex_compile, re_search_2, re_match_2_internal):
2835 Remove unused local vars.
952db0d7
PE
2836 (FREE_VAR): Rewrite so as not to use empty "else",
2837 which gcc can warn about.
da053e48 2838 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
2839 (RETALLOC_IF): Define only if needed.
2840 (WORDCHAR_P): Likewise. This one is never needed, but is used
2841 only in a comment talking about a compiler bug, so put inside
2842 the #if 0 of that comment.
2843 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
2844 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
2845 Remove; unused.
19ed5445 2846
1f3561e4 2847 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
2848 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
2849 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 2850
ded6f8f7
PE
2851 * search.c (simple_search): Remove unused var.
2852
dbd37a95
PE
2853 * dired.c (compile_pattern): Move decl from here ...
2854 * lisp.h: ... to here, so that it can be checked.
2855 (struct re_registers): New forward decl.
2856
7e47afad
PE
2857 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
2858
85f24f61
PE
2859 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
2860 All uses changed.
2861 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
2862 Rename locals to avoid shadowing.
5671df8f 2863 (Fvertical_motion): Mark locals as initialized.
85f24f61 2864
181aa2be 2865 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 2866 (casify_region): Mark local as initialized.
181aa2be 2867
930d429c
PE
2868 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
2869
7082eac6
PE
2870 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
2871 New macros, so that the caller can use some names other than
2872 gcpro1, gcpro2, etc.
2873 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
2874 of the new macros.
2875 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
2876 argument, for consistency with GCPRO2_VAR, etc: it is now the
2877 prefix of the variable, not the variable itself. All uses
2878 changed.
38b2c076
PE
2879 * dired.c (directory_files_internal, file_name_completion):
2880 Rename locals to avoid shadowing.
2881
15206ed9
PE
2882 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
2883 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
2884 dired.c's scmp function, had undefined behavior.
2885 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
2886 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
2887 * buffer.h: ... to here, because these macros use current_buffer,
2888 and the new implementation with inline functions needs to have
2889 current_buffer in scope now, rather than later when the macros
2890 are used.
2891 (downcase, upcase1): New static inline functions.
2892 (DOWNCASE, UPCASE1): Reimplement using these functions.
2893 This avoids undefined behavior in expressions like
2894 DOWNCASE (x) == DOWNCASE (y), which previously suffered
2895 from race conditions in accessing the global variables
2896 case_temp1 and case_temp2.
2897 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
2898 * lisp.h (case_temp1, case_temp2): Remove their decls.
2899 * character.h (ASCII_CHAR_P): Move from here ...
2900 * lisp.h: ... to here, so that the inline functions mentioned
2901 above can use them.
2902
4a6bea26
PE
2903 * dired.c (directory_files_internal_unwind): Now static.
2904
f14b7e14
PE
2905 * fileio.c (file_name_as_directory, directory_file_name):
2906 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
2907 Now static.
2893f146
PE
2908 (file_name_as_directory): Use const pointers when appropriate.
2909 (Fexpand_file_name): Likewise. In particular, newdir might
2910 point at constant storage, so make it a const pointer.
fd4ead52 2911 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
2912 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
2913 signedness issues.
f839df0c
PE
2914 (Fset_file_times, Finsert_file_contents, auto_save_error):
2915 Rename locals to avoid shadowing.
f14b7e14 2916
5716756e 2917 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
2918 (Ftry_completion, Fall_completions): Rename or remove locals
2919 to avoid shadowing.
5716756e 2920
b4c3046a
PE
2921 * marker.c (bytepos_to_charpos): Remove; unused.
2922
b45db522
PE
2923 * lisp.h (verify_bytepos, count_markers): New decls,
2924 so that gcc does not warn that these functions aren't declared.
2925
85876d07
PE
2926 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
2927 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 2928 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 2929 (copy_text): Remove unused local var.
85876d07 2930
03d78a21 2931 * filelock.c (within_one_second): Now static.
b3dd38ab 2932 (lock_file_1): Rename local to avoid shadowing.
03d78a21 2933
5df8f01b
PE
2934 * buffer.c (fix_overlays_before): Mark locals as initialized.
2935 (fix_start_end_in_overlays): Likewise. This function should be
2936 simplified by using pointers-to-pointers, but that's a different
2937 matter.
b1d876f1 2938 (switch_to_buffer_1): Now static.
8f54f30a
PE
2939 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
2940 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 2941
a70072c9 2942 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 2943 Fix pointer signedness issue.
edced198
PE
2944 (sys_subshell): Mark local as volatile if checking for lint,
2945 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 2946 (MAXPATHLEN): Define only if needed.
a70072c9 2947
a0977c44
PE
2948 * process.c (serial_open, serial_configure): Move decls from here ...
2949 * systty.h: ... to here, so that they can be checked.
2950
a884fdcc
PE
2951 * fns.c (get_random, seed_random): Move extern decls from here ...
2952 * lisp.h: ... to here, so that they can be checked.
2953
604efe86 2954 * sysdep.c (reset_io): Now static.
b8950c94 2955 (wait_for_termination_signal): Remove; unused.
604efe86 2956
38fc62d9
PE
2957 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
2958 (copy_keymap_item, append_key, push_text_char_description):
2959 Now static.
1004a21a 2960 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 2961 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
2962 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
2963 (describe_map_tree):
2964 Rename locals to avoid shadowing.
38fc62d9 2965
2f2650da
PE
2966 * keyboard.c: Declare functions static if they are not used elsewhere.
2967 (echo_char, echo_dash, cmd_error, top_level_2):
2968 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
2969 (read_char, kbd_buffer_get_event, make_lispy_position):
2970 (make_lispy_event, make_lispy_movement, apply_modifiers):
2971 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
2972 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
2973 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 2974 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 2975 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 2976
a053e86c 2977 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
2978 (mark_kboards): Move decl here ...
2979 * alloc.c (mark_kboards): ... from here.
a053e86c 2980
4752793e
PE
2981 * lisp.h (force_auto_save_soon): New decl.
2982
74f10ca7 2983 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
2984 (DEFINE_DUMMY_FUNCTION): New macro.
2985 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
2986 Use it.
c03cd23f
PE
2987 (main): Add casts to avoid warnings
2988 if GCC considers string literals to be constants.
74f10ca7 2989
022e70d4
PE
2990 * lisp.h (fatal_error_signal): Add decl, since it's exported.
2991
59d6fe83
PE
2992 * dbusbind.c: Pointer signedness fixes.
2993 (xd_signature, xd_append_arg, xd_initialize):
2994 (Fdbus_call_method, Fdbus_call_method_asynchronously):
2995 (Fdbus_method_return_internal, Fdbus_method_error_internal):
2996 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
2997 (Fdbus_register_signal): Use SSDATA when the context wants char *.
2998
78320123
PE
2999 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
3000 if GCC considers string literals to be constants.
49cebcca 3001 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 3002
35ac2a97
SM
30032011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
3004
fb103ca9
SM
3005 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
3006 (print_preprocess, print_object): New macro to fix last change.
3007
35ac2a97
SM
3008 * print.c (print_preprocess): Don't forget font objects.
3009
62973b41
JB
30102011-03-16 Juanma Barranquero <lekktu@gmail.com>
3011
3012 * emacs.c (USAGE3): Doc fixes.
3013
0e48bb22
AS
30142011-03-15 Andreas Schwab <schwab@linux-m68k.org>
3015
3016 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
3017 structure.
3018
7684e57b
JB
30192011-03-14 Juanma Barranquero <lekktu@gmail.com>
3020
3021 * lisp.h (VWindow_system, Qfile_name_history):
3022 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
3023 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
3024 (w32_system_caret_x, w32_system_caret_y): Declare extern.
3025
3026 * w32select.c: Don't #include "keyboard.h".
c96bbc66 3027 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
3028
3029 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
3030 * w32console.c (detect_input_pending, read_input_pending)
3031 (encode_terminal_code):
3032 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
3033 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
3034 (w32_system_caret_y, Qfile_name_history):
3035 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
3036 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
3037 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
3038 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
3039 * w32proc.c (Qlocal, report_file_error):
3040 * w32term.c (Vwindow_system, updating_frame):
3041 * w32uniscribe.c (initialized, uniscribe_font_driver):
3042 Remove unneeded extern declarations.
3043
2aa46d6c
CY
30442011-03-14 Chong Yidong <cyd@stupidchicken.com>
3045
c96bbc66 3046 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 3047
cffc6f3b
CY
30482011-03-13 Chong Yidong <cyd@stupidchicken.com>
3049
3050 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
3051 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
3052 These macros can no longer be used for assignment.
3053
44f230aa
SM
3054 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
3055 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
3056 (record_buffer_markers, fetch_buffer_markers): New functions for
3057 recording and fetching special buffer markers.
3058 (set_buffer_internal_1, set_buffer_temp): Use them.
3059
3060 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
3061
3062 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
3063
3064 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
3065 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
3066
3067 * xdisp.c (hscroll_window_tree):
3068 (reconsider_clip_changes): Use PT instead of BUF_PT.
3069
d251f04b
EZ
30702011-03-13 Eli Zaretskii <eliz@gnu.org>
3071
3072 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
3073 $(EMACS_ROOT)/lib/intprops.h.
3074
f0c77cd1
PE
30752011-03-13 Paul Eggert <eggert@cs.ucla.edu>
3076
3eca4629
PE
3077 Fix more problems found by GCC 4.5.2's static checks.
3078
7c86ee98
PE
3079 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
3080 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
3081 (xg_free_frame_widgets): Make it clear that a local variable is
3082 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
3083 (gdk_window_get_screen): Make it clear that this macro is needed
3084 only if USE_GTK_TOOLTIP.
1e5524e7
PE
3085 (int_gtk_range_get_value): New function, which avoids a diagnostic
3086 from gcc -Wbad-function-cast.
3087 (xg_set_toolkit_scroll_bar_thumb): Use it.
3088 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
3089 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
3090 (get_utf8_string, xg_get_file_with_chooser):
3091 Rename locals to avoid shadowing.
3092 (create_dialog): Move locals to avoid shadowing.
7c86ee98 3093
41729b81
PE
3094 * xgselect.c (xg_select): Remove unused var.
3095
f0c77cd1
PE
3096 * image.c (four_corners_best): Mark locals as initialized.
3097 (gif_load): Initialize transparent_p to zero (Bug#8238).
3098 Mark another local as initialized.
ec6cf4c6 3099 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 3100
ce0ad53d 3101 * image.c (clear_image_cache): Now static.
d5d5a617 3102 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 3103 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
3104 (x_edge_detection): Remove unnecessary cast that
3105 gcc -Wbad-function-cast diagnoses.
2037898d 3106 (gif_load): Fix pointer signedness.
6ae141d6
PE
3107 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
3108 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 3109
33383987 31102011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 3111
d32df629
PE
3112 Improve quality of tests for time stamp overflow.
3113 For example, without this patch (encode-time 0 0 0 1 1
3114 1152921504606846976) returns the obviously-bogus value (-948597
3115 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
3116 reports time overflow. See
3117 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
3118 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
3119 * editfns.c: Include limits.h and intprops.h.
3120 (TIME_T_MIN, TIME_T_MAX): New macros.
3121 (time_overflow): Move earlier, to before first use.
3122 (hi_time, lo_time): New functions, for an accurate test for
3123 out-of-range times.
3124 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
3125 (Fget_internal_run_time): Don't assume time_t fits in int.
3126 (make_time): Use list2 instead of Fcons twice.
3127 (Fdecode_time): More accurate test for out-of-range times.
3128 (check_tm_member): New function.
3129 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
3130 (lisp_time_argument): Don't rely on undefined left-shift and
3131 right-shift behavior when checking for time stamp overflow.
8be6f318 3132
fe31d94c
PE
3133 * editfns.c (time_overflow): New function, refactoring common code.
3134 (Fformat_time_string, Fdecode_time, Fencode_time):
3135 (Fcurrent_time_string): Use it.
3136
8be6f318
PE
3137 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
3138 * dired.c (make_time): Move to ...
3139 * editfns.c (make_time): ... here.
3140 * systime.h: Note the move.
3141
09d9db2c 31422011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 3143
126bc0dc
YM
3144 * fringe.c (update_window_fringes): Remove unused variables.
3145
c47cbdfd
YM
3146 * unexmacosx.c (copy_data_segment): Also copy __got section.
3147 (Bug#8223)
3148
7ac80be9
EZ
31492011-03-12 Eli Zaretskii <eliz@gnu.org>
3150
c96bbc66 3151 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
3152 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
3153 Constify `char *' arguments and their references according to
3154 prototypes in tparam.h.
3155
ecb0f94d 3156 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 3157
7ac80be9
EZ
3158 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
3159 Adapt all references accordingly.
3160
3161 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
3162
ef1fd07e
TT
31632011-03-11 Tom Tromey <tromey@redhat.com>
3164
3165 * buffer.c (syms_of_buffer): Remove obsolete comment.
3166
7ef4b50c
EZ
31672011-03-11 Eli Zaretskii <eliz@gnu.org>
3168
3169 * termhooks.h (encode_terminal_code): Declare prototype.
3170
3171 * msdos.c (encode_terminal_code): Don't declare prototype.
3172
3173 * term.c (encode_terminal_code): Now external again, used by
3174 w32console.c and msdos.c.
3175
44f230aa
SM
3176 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
3177 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 3178
4b1ec863 31792011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 3180
1714f52b 3181 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 3182
4b1ec863
PE
3183 * fringe.c (update_window_fringes): Mark locals as initialized
3184 (Bug#8227).
3185 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 3186
524c7aa6
PE
3187 * alloc.c (mark_fringe_data): Move decl from here ...
3188 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
3189 to check its interface.
3190 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
3191
a5c0af81 3192 * fontset.c (free_realized_fontset): Now static.
7519b8cd 3193 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 3194 (fontset_font): Mark local as initialized.
a9a06e0b 3195 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 3196
b4716021
PE
3197 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
3198
811e9bac 3199 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 3200 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
3201 (x_own_selection, Fx_disown_selection_internal): Rename locals
3202 to avoid shadowing.
3203 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 3204
7e3ab302
PE
3205 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
3206 so that the caller can use some name other than gcpro1.
3207 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
3208 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
3209 (Fx_backspace_delete_keys_p):
3210 Use them to avoid shadowing, and rename vars to avoid shadowing.
3211 (x_decode_color, x_set_name, x_window): Now static.
6b437900 3212 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 3213 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
3214 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
3215 Remove unused locals.
7e3ab302
PE
3216 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
3217 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
3218 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
3219 macros.
f78faa98 3220
e2b13473
PE
3221 * xterm.h (x_mouse_leave): New decl.
3222
77f23912
PE
3223 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
3224 Remove unused functions.
cdf4ba58
PE
3225 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
3226 (x_calc_absolute_position): Now static.
7411c686 3227 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 3228 Don't declare local "event" unless it's used.
ed7bf3a5
PE
3229 (x_iconify_frame, x_free_frame_resources): Don't declare locals
3230 unless they are used.
38d0b34a
PE
3231 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
3232 (x_fatal_error_signal): Remove; not used.
a6067996
PE
3233 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
3234 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
3235 (x_error_catcher, x_connection_closed, x_error_handler):
3236 (x_error_quitter, xembed_send_message, x_iconify_frame):
3237 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 3238 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 3239 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 3240
44f230aa
SM
3241 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
3242 Rename or move locals to avoid shadowing.
6b463e58 3243 (tty_defined_color, merge_face_heights): Now static.
5967d051 3244 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
3245 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
3246 does not deduce is never used uninitialized.
73719eba
PE
3247 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
3248 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 3249
426994c3 3250 * terminal.c (store_terminal_param): Now static.
5489860b 3251
032f1620 3252 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 3253 (set_frame_menubar): Remove unused local.
d4323972 3254 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
3255 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
3256 since they might point to immutable storage.
281585b0
PE
3257 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
3258 since it's unused otherwise.
032f1620 3259
367c19e5 3260 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 3261 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
3262 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
3263 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 3264 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
3265 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
3266 does not deduce are never used uninitialized.
70739cbe 3267
07b48fa9
PE
3268 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
3269
8868a238 3270 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
3271 * window.c (window_loop, size_window):
3272 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 3273
7e5cf297 3274 * window.c (display_buffer): Now static.
d6550a9f
PE
3275 (size_window): Mark variables that gcc -Wuninitialized
3276 does not deduce are never used uninitialized.
a586633d
PE
3277 * window.h (check_all_windows): New decl, to forestall
3278 gcc -Wmissing-prototypes diagnostic.
5b555da1 3279 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 3280
f6095868
PE
3281 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
3282 shadowing.
3283 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
3284 Include <limits.h>.
3285 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
3286 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
3287 (load_charset_map): Mark variables that gcc -Wuninitialized
3288 does not deduce are never used uninitialized.
53df7c11 3289 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 3290
f38b440c
PE
3291 * coding.c (coding_set_source, coding_set_destination):
3292 Use "else { /* comment */ }" rather than "else /* comment */;"
3293 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
3294 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
3295 a block, when the outer 'i' will do.
3296 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
3297 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
3298 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
3299 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
3300 (Fdecode_sjis_char, Fdefine_coding_system_internal):
3301 Rename locals to avoid shadowing.
3302 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
3303 * coding.c (emacs_mule_char, encode_invocation_designation):
3304 Now static, since they're not used elsewhere.
413bb2db 3305 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 3306 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
3307 (decode_coding_emacs_mule): Mark variables that gcc
3308 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
3309 (detect_coding_iso_2022): Initialize a local variable that might
3310 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 3311 this initialization is needed. (Bug#8211)
5f58e762
PE
3312 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
3313 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
3314 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
3315 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
3316 Remove unused macros.
f38b440c 3317
232b38b9 3318 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 3319 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 3320 * character.c (string_count_byte8): Likewise.
232b38b9 3321
fb90da1b
PE
3322 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
3323 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
3324
fb93dbc2
PE
3325 * chartab.c (copy_sub_char_table): Now static, since it's not used
3326 elsewhere.
5c156ace
PE
3327 (sub_char_table_ref_and_range, char_table_ref_and_range):
3328 Rename locals to avoid shadowing.
bbcd0949 3329 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 3330
7d3b3862 3331 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 3332 (BIDI_BOB): Remove unused macro.
7d3b3862 3333
6be7d3da
PE
3334 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
3335 deduce are never used uninitialized.
c2ed9c8b 3336 * term.c (encode_terminal_code): Likewise.
6be7d3da 3337
75f8807f 3338 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 3339
50938595
PE
3340 * tparam.h: New file.
3341 * term.c, tparam.h: Include it.
3342 * deps.mk (term.o, tparam.o): Depend on tparam.h.
3343 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
3344 Move these decls to tparam.h, and make them agree with what
3345 is actually in tparam.c. The previous trick of using incompatible
3346 decls in different modules does not conform to the C standard.
3347 All callers of tparam changed to use tparam's actual API.
3348 * tparam.c (tparam1, tparam, tgoto):
3349 Use const pointers where appropriate.
3350
fbceeba2
PE
3351 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
3352 * cm.h (struct cm): Likewise.
3353 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
3354 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
3355 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
3356 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
3357 (turn_on_face, init_tty): Likewise.
3358 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 3359
7f3f1250
PE
3360 * term.c (term_mouse_position): Rename local to avoid shadowing.
3361
e6ca6543
PE
3362 * alloc.c (mark_ttys): Move decl from here ...
3363 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
3364
c40f8d15
AS
33652011-03-11 Andreas Schwab <schwab@linux-m68k.org>
3366
3367 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
3368
cfe0661d
JB
33692011-03-09 Juanma Barranquero <lekktu@gmail.com>
3370
3371 * search.c (compile_pattern_1): Remove argument regp, unused since
3372 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
3373 (compile_pattern): Don't pass it.
3374
0afb4571
J
33752011-03-08 Jan Djärv <jan.h.d@swipnet.se>
3376
3377 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
3378 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
3379 for ! HAVE_GTK3.
3380 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
3381
3382 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
3383
3384 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
3385 gdk_window_get_screen, gdk_window_get_geometry,
3386 gdk_x11_window_lookup_for_display and GDK_KEY_g.
3387 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
3388 (xg_get_pixbuf_from_pixmap): New function.
3389 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
3390 to Pixmap, take frame as parameter, remove GdkColormap parameter.
3391 Call xg_get_pixbuf_from_pixmap instead of
3392 gdk_pixbuf_get_from_drawable.
3393 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
3394 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
3395 (xg_check_special_colors): Use GtkStyleContext and its functions
3396 for HAVE_GTK3.
3397 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
3398 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
3399 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
3400 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
3401 Call gtk_widget_get_preferred_size.
0afb4571
J
3402 (xg_frame_resized): gdk_window_get_geometry only takes 5
3403 parameters.
44f230aa
SM
3404 (xg_win_to_widget, xg_event_is_for_menubar):
3405 Call gdk_x11_window_lookup_for_display.
0afb4571
J
3406 (xg_set_widget_bg): New function.
3407 (delete_cb): New function.
895009e1 3408 (xg_create_frame_widgets): Connect delete-event to delete_cb.
0afb4571
J
3409 Call xg_set_widget_bg. Only set backgrund pixmap for ! HAVE_GTK3
3410 (xg_set_background_color): Call xg_set_widget_bg.
3411 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
3412 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
3413 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
3414 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
3415 if ! HAVE_GTK3.
3416 (update_frame_tool_bar): Call gtk_widget_hide.
3417 (xg_initialize): Use GDK_KEY_g.
3418
3419 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
3420 if ! HAVE_GTK3
3421 (x_session_initialize): Call gdk_x11_set_sm_client_id.
3422
3423 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
3424 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
3425 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
3426
1c2cc4ef
JB
34272011-03-08 Juanma Barranquero <lekktu@gmail.com>
3428
3429 * w32xfns.c (select_palette): Check success of RealizePalette against
3430 GDI_ERROR, not zero.
3431
33383987 3432See ChangeLog.11 for earlier changes.
aac0c6e3
MR
3433
3434;; Local Variables:
3435;; coding: utf-8
aac0c6e3
MR
3436;; End:
3437
33383987 3438 Copyright (C) 2011 Free Software Foundation, Inc.
aac0c6e3
MR
3439
3440 This file is part of GNU Emacs.
3441
3442 GNU Emacs is free software: you can redistribute it and/or modify
3443 it under the terms of the GNU General Public License as published by
3444 the Free Software Foundation, either version 3 of the License, or
3445 (at your option) any later version.
3446
3447 GNU Emacs is distributed in the hope that it will be useful,
3448 but WITHOUT ANY WARRANTY; without even the implied warranty of
3449 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3450 GNU General Public License for more details.
3451
3452 You should have received a copy of the GNU General Public License
3453 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.