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