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