]> code.delx.au - gnu-emacs/blob - src/ChangeLog
* lisp.h (WIDE_EMACS_INT): Now defaults to 1.
[gnu-emacs] / src / ChangeLog
1 2011-06-02 Paul Eggert <eggert@cs.ucla.edu>
2
3 * lisp.h (WIDE_EMACS_INT): Now defaults to 1.
4
5 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
6 if b->modtime has its maximal value.
7
8 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
9
10 * lisp.h: Include <intprops.h>, as it'll useful in later changes.
11 * character.c, data.c, editfns.c, insdel.c, intervals.c:
12 Don't include <intprops.h>, since lisp.h does.
13
14 Don't assume time_t can fit into int.
15 * buffer.h (struct buffer.modtime): Now time_t, not int.
16 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
17 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
18
19 Minor fixes for signed vs unsigned integers.
20 * character.h (MAYBE_UNIFY_CHAR):
21 * charset.c (maybe_unify_char):
22 * keyboard.c (read_char, reorder_modifiers):
23 XINT -> XFASTINT, since the integer must be nonnegative.
24 * ftfont.c (ftfont_spec_pattern):
25 * keymap.c (access_keymap, silly_event_symbol_error):
26 XUINT -> XFASTINT, since the integer must be nonnegative.
27 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
28 since it makes no difference and we prefer signed.
29 * keyboard.c (record_char): Use XUINT when all the neighbors do.
30 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
31 nonnegative.
32
33 2011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
34
35 Make it possible to build with GCC-4.6+ -O2 -flto.
36
37 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
38
39 2011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
40
41 * minibuf.c (get_minibuffer, read_minibuf_unwind):
42 Call minibuffer-inactive-mode.
43
44 2011-05-31 Juanma Barranquero <lekktu@gmail.com>
45
46 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
47 Update dependencies.
48
49 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
50
51 * data.c (init_data): Remove code for UTS, this system is not
52 supported anymore.
53
54 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
55
56 Don't force ./temacs to start in terminal mode.
57
58 * frame.c (make_initial_frame): Initialize faces in all cases, not
59 only when CANNOT_DUMP is defined.
60 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
61
62 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
63
64 * dispnew.c (add_window_display_history): Use const for the string
65 pointer. Remove declaration, not needed.
66
67 2011-05-31 Paul Eggert <eggert@cs.ucla.edu>
68
69 Use 'inline', not 'INLINE'.
70 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
71 * alloc.c, fontset.c (INLINE): Remove.
72 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
73 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
74 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
75 * gmalloc.c (register_heapinfo): Use inline unconditionally.
76 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
77
78 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
79
80 Make it possible to run ./temacs.
81
82 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
83 syms_of_callproc does the same thing. Remove test for
84 "initialized", do it in the caller.
85 * emacs.c (main): Avoid calling set_initial_environment when dumping.
86
87 2011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
88
89 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
90 (read_minibuf): Use get_minibuffer.
91 (syms_of_minibuf): Use DEFSYM.
92 (Qmetadata): New var.
93 * data.c (Qbuffer): Don't make it static.
94 (syms_of_data): Use DEFSYM.
95
96 2011-05-31 Paul Eggert <eggert@cs.ucla.edu>
97
98 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
99 (CCL_CODE_MIN): New macro.
100
101 2011-05-30 Paul Eggert <eggert@cs.ucla.edu>
102
103 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
104
105 * eval.c (Qdebug): Now static.
106 * lisp.h (Qdebug): Remove decl. This reverts a part of the
107 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
108 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
109
110 2011-05-29 Chong Yidong <cyd@stupidchicken.com>
111
112 * image.c: Various fixes to ImageMagick code comments.
113 (Fimagemagick_types): Doc fix.
114
115 2011-05-29 Paul Eggert <eggert@cs.ucla.edu>
116
117 Minor fixes prompted by GCC 4.6.0 warnings.
118
119 * xselect.c (converted_selections, conversion_fail_tag): Now static.
120
121 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
122 (x_clipboard_manager_save_all): Move extern decl to ...
123 * xterm.h: ... here, so that it can be checked for consistency.
124
125 2011-05-29 Chong Yidong <cyd@stupidchicken.com>
126
127 * xselect.c (x_clipboard_manager_save_frame)
128 (x_clipboard_manager_save_all): New functions.
129 (Fx_clipboard_manager_save): Lisp function deleted.
130
131 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
132 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
133
134 * xterm.h: Update prototype.
135
136 2011-05-28 William Xu <william.xwl@gmail.com>
137
138 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
139 exiting (Bug#8239).
140
141 2011-05-28 Jim Meyering <meyering@redhat.com>
142
143 Avoid a sign-extension bug in crypto_hash_function.
144 * fns.c (to_uchar): Define.
145 (crypto_hash_function): Use it to convert some newly-signed
146 variables to unsigned, to avoid sign-extension bugs. For example,
147 without this change, (md5 "truc") would evaluate to
148 45723a2aff78ff4fff7fff1114760e62 rather than the expected
149 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
150 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
151
152 2011-05-27 Paul Eggert <eggert@cs.ucla.edu>
153
154 Integer overflow fixes.
155
156 * dbusbind.c: Serial number integer overflow fixes.
157 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
158 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
159 to hold a serial number that is too large for a fixnum.
160 (Fdbus_method_return_internal, Fdbus_method_error_internal):
161 Check for serial numbers out of range. Decode any serial number
162 that was so large that it became a float. (Bug#8722)
163
164 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
165 (Fdbus_call_method, Fdbus_call_method_asynchronously):
166 Use XFASTINT rather than XUINT when numbers are nonnegative.
167 (xd_append_arg, Fdbus_method_return_internal):
168 (Fdbus_method_error_internal): Likewise. Also, for unsigned
169 arguments, check that Lisp number is nonnegative, rather than
170 silently wrapping negative numbers around. (Bug#8722)
171 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
172 (Bug#8722)
173
174 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
175
176 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
177
178 ccl: add integer overflow checks
179 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
180 (IN_INT_RANGE): New macros.
181 (ccl_driver): Use them to check for integer overflow when
182 decoding a CCL program. Many of the new checks are whether XINT (x)
183 fits in int; it doesn't always, on 64-bit hosts. The new version
184 doesn't catch all possible integer overflows, but it's an
185 improvement. (Bug#8719)
186
187 * alloc.c (make_event_array): Use XINT, not XUINT.
188 There's no need for unsigned here.
189
190 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
191 This follows up to the 2011-05-06 change that substituted uintptr_t
192 for EMACS_INT. This case wasn't caught back then.
193
194 Rework Fformat to avoid integer overflow issues.
195 * editfns.c: Include <float.h> unconditionally, as it's everywhere
196 now (part of C89). Include <verify.h>.
197 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
198 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
199 (Fformat): Avoid the prepass trying to compute sizes; it was only
200 approximate and thus did not catch overflow reliably. Instead, walk
201 through the format just once, formatting and computing sizes as we go,
202 checking for integer overflow at every step, and allocating a larger
203 buffer as needed. Keep track separately whether the format is
204 multibyte. Keep only the most-recently calculated precision, rather
205 than them all. Record whether each argument has been converted to
206 string. Use EMACS_INT, not int, for byte and char and arg counts.
207 Support field widths and precisions larger than INT_MAX. Avoid
208 sprintf's undefined behavior with conversion specifications such as %#d
209 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
210 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
211 formatting out-of-range floating point numbers with int
212 formats. (Bug#8668)
213
214 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
215
216 * data.c: Avoid integer truncation in expressions involving floats.
217 * data.c: Include <intprops.h>.
218 (arith_driver): When there's an integer overflow in an expression
219 involving floating point, convert the integers to floating point
220 so that the resulting value does not suffer from catastrophic
221 integer truncation. For example, on a 64-bit host (* 4
222 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
223 Do not rely on undefined behavior after integer overflow.
224
225 merge count_size_as_multibyte, parse_str_to_multibyte
226 * character.c, character.h (count_size_as_multibyte):
227 Rename from parse_str_to_multibyte; all uses changed.
228 Check for integer overflow.
229 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
230 since it's now a duplicate of the other. This is more of
231 a character than a buffer op, so better that it's in character.c.
232 * fns.c, print.c: Adjust to above changes.
233
234 2011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
235
236 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
237
238 2011-05-27 Paul Eggert <eggert@cs.ucla.edu>
239
240 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
241 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
242 (x_clipboard_manager_save): Now static.
243 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
244
245 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
246 (crypto_hash_function): Now static.
247 Fix pointer signedness problems. Avoid unnecessary initializations.
248
249 2011-05-27 Chong Yidong <cyd@stupidchicken.com>
250
251 * termhooks.h (Vselection_alist): Make it terminal-local.
252
253 * terminal.c (create_terminal): Initialize it.
254
255 * xselect.c: Support for clipboard managers.
256 (Vselection_alist): Move to termhooks.h as terminal-local var.
257 (LOCAL_SELECTION): New macro.
258 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
259 (symbol_to_x_atom): Remove gratuitous arg.
260 (x_handle_selection_request, lisp_data_to_selection_data)
261 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
262 (x_own_selection, x_get_local_selection, x_convert_selection):
263 New arg, specifying work frame. Use terminal-local Vselection_alist.
264 (some_frame_on_display): Delete unused function.
265 (Fx_own_selection_internal, Fx_get_selection_internal)
266 (Fx_disown_selection_internal, Fx_selection_owner_p)
267 (Fx_selection_exists_p): New optional frame arg.
268 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
269 (x_handle_selection_clear): Don't treat other terminals with the
270 same keyboard specially. Use the terminal-local Vselection_alist.
271 (x_clear_frame_selections): Use Frun_hook_with_args.
272
273 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
274
275 * xterm.h: Add support for those atoms.
276
277 2011-05-26 Chong Yidong <cyd@stupidchicken.com>
278
279 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
280 (converted_selections, conversion_fail_tag): New global variables.
281 (x_selection_request_lisp_error): Free the above.
282 (x_get_local_selection): Remove unnecessary code.
283 (x_reply_selection_request): Args changed; handle arbitrary array
284 of converted selections stored in converted_selections.
285 Separate the XChangeProperty and SelectionNotify steps.
286 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
287 (x_convert_selection): New function.
288 (x_handle_selection_event): Simplify.
289 (x_get_foreign_selection): Don't ignore incoming requests while
290 waiting for an answer; this will fail when we implement
291 SAVE_TARGETS, and seems unnecessary anyway.
292 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
293 (Vx_sent_selection_functions): Doc fix.
294
295 2011-05-26 Leo Liu <sdl.web@gmail.com>
296
297 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
298
299 2011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
300
301 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
302
303 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
304 for fringe update if it has periodic bitmap.
305 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
306 and fringe_bitmap_periodic_p.
307
308 * fringe.c (get_fringe_bitmap_data): New function.
309 (draw_fringe_bitmap_1, update_window_fringes): Use it.
310 (update_window_fringes): Record periodicity of fringe bitmap in glyph
311 row. Mark glyph row for fringe update if periodicity changed.
312
313 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
314 for fringe update unless it has periodic bitmap.
315
316 2011-05-25 Kenichi Handa <handa@m17n.org>
317
318 * xdisp.c (get_next_display_element): Set correct it->face_id for
319 a static composition.
320
321 2011-05-24 Leo Liu <sdl.web@gmail.com>
322
323 * deps.mk (fns.o):
324 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
325
326 * fns.c (crypto_hash_function, Fsha1): New function.
327 (Fmd5): Use crypto_hash_function.
328 (syms_of_fns): Add Ssha1.
329
330 2011-05-22 Paul Eggert <eggert@cs.ucla.edu>
331
332 * gnutls.c: Remove unused macros.
333 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
334 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
335 Remove macros that are defined and never used.
336 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
337
338 2011-05-22 Chong Yidong <cyd@stupidchicken.com>
339
340 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
341 (Fx_get_selection_internal): Minor cleanup.
342 (Fx_own_selection_internal): Rename arguments for consistency with
343 select.el.
344
345 2011-05-22 Paul Eggert <eggert@cs.ucla.edu>
346
347 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
348
349 2011-05-22 Chong Yidong <cyd@stupidchicken.com>
350
351 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
352
353 2011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
354
355 * dispnew.c (scrolling_window): Don't exclude the case that the
356 last enabled row in the desired matrix touches the bottom boundary.
357
358 2011-05-21 Glenn Morris <rgm@gnu.org>
359
360 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
361 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
362 and add some more files.
363
364 2011-05-20 Eli Zaretskii <eliz@gnu.org>
365
366 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
367 report_file_error introduced by the change from 2011-05-07.
368
369 2011-05-20 Paul Eggert <eggert@cs.ucla.edu>
370
371 * systime.h (Time): Define only if emacs is defined.
372 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
373 where the include path doesn't have X11/X.h by default. See
374 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
375
376 2011-05-20 Kenichi Handa <handa@m17n.org>
377
378 * composite.c (find_automatic_composition): Fix previous change.
379
380 2011-05-20 Glenn Morris <rgm@gnu.org>
381
382 * lisp.mk: New file, split from Makefile.in.
383 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
384 (shortlisp): Remove.
385 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
386
387 2011-05-19 Glenn Morris <rgm@gnu.org>
388
389 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
390 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
391 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
392 (lisp): Set the order to that of loadup.el.
393 (shortlisp): Make it a copy of $lisp.
394 (SOME_MACHINE_LISP): Remove.
395 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
396 Use just $shortlisp, not $SOME_MACHINE_LISP too.
397
398 2011-05-18 Kenichi Handa <handa@m17n.org>
399
400 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
401 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
402 (find_automatic_composition): Mostly rewrite for efficiency.
403
404 2011-05-18 Juanma Barranquero <lekktu@gmail.com>
405
406 * makefile.w32-in: Update dependencies.
407
408 2011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
409
410 * menu.c: Include limits.h (fixes the MS-Windows build broken by
411 revision 104625).
412
413 2011-05-18 Paul Eggert <eggert@cs.ucla.edu>
414
415 Fix some integer overflow issues, such as string length overflow.
416
417 * insdel.c (count_size_as_multibyte): Check for string overflow.
418
419 * character.c (lisp_string_width): Check for string overflow.
420 Use EMACS_INT, not int, for string indexes and lengths; in
421 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
422 the resulting string length overflows an EMACS_INT; instead,
423 report a string overflow if no precision given. When checking for
424 precision exhaustion, use a check that cannot possibly have
425 integer overflow. (Bug#8675)
426 * character.h (lisp_string_width): Adjust to new signature.
427
428 * alloc.c (string_overflow): New function.
429 (Fmake_string): Use it. This doesn't change behavior, but saves
430 a few bytes and will simplify future changes.
431 * character.c (string_escape_byte8): Likewise.
432 * lisp.h (string_overflow): New decl.
433
434 Fixups, following up to the user-interface timestamp change.
435 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
436 for UI timestamps, instead of unsigned long.
437 * msdos.c (mouse_get_pos): Likewise.
438 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
439 * w32gui.h (Time): Define by including "systime.h" rather than by
440 declaring it ourselves. (Bug#8664)
441
442 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
443 * image.c (clear_image_cache): Likewise.
444
445 * term.c (term_mouse_position): Don't assume time_t wraparound.
446
447 Be more systematic about user-interface timestamps.
448 Before, the code sometimes used 'Time', sometimes 'unsigned long',
449 and sometimes 'EMACS_UINT', to represent these timestamps.
450 This change causes it to use 'Time' uniformly, as that's what X uses.
451 This makes the code easier to follow, and makes it easier to catch
452 integer overflow bugs such as Bug#8664.
453 * frame.c (Fmouse_position, Fmouse_pixel_position):
454 Use Time, not unsigned long, for user-interface timestamps.
455 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
456 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
457 * keyboard.h (last_event_timestamp): Likewise.
458 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
459 * menu.h (xmenu_show): Likewise.
460 * term.c (term_mouse_position): Likewise.
461 * termhooks.h (struct input_event.timestamp): Likewise.
462 (struct terminal.mouse_position_hook): Likewise.
463 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
464 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
465 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
466 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
467 what it was before.
468 * menu.h, termhooks.h: Include "systime.h", for Time.
469
470 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
471 Don't assume that the difference between two unsigned long values
472 can fit into an integer. At this point, we know button_down_time
473 <= event->timestamp, so the difference must be nonnegative, so
474 there's no need to cast the result if double-click-time is
475 nonnegative, as it should be; check that it's nonnegative, just in
476 case. This bug is triggered when events are more than 2**31 ms
477 apart (about 25 days). (Bug#8664)
478
479 * xselect.c (last_event_timestamp): Remove duplicate decl.
480 (x_own_selection): Remove needless cast to unsigned long.
481
482 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
483 that always fit in int. Use a sentinel instead of a counter, to
484 avoid a temp and to allay GCC's concerns about possible int overflow.
485 * frame.h (struct frame): Use int for menu_bar_items_used
486 instead of EMACS_INT, since it always fits in int.
487
488 * menu.c (grow_menu_items): Check for int overflow.
489
490 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
491
492 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
493 Before, the code was not consistent. These values cannot exceed
494 2**31 - 1 so there's no need to make them unsigned.
495 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
496 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
497 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
498 as modifiers.
499 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
500
501 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
502 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
503 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
504 presumably because the widths might not match.
505
506 * window.c (size_window): Avoid needless test at loop start.
507
508 2011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
509
510 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
511
512 2011-05-12 Drew Adams <drew.adams@oracle.com>
513
514 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
515
516 2011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
517
518 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
519 `width' to `bar_area_x' and `bar_area_width', respectively.
520 (x_scroll_run): Take account of fringe background extension.
521
522 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
523 Rename local vars `left' and `width' to `bar_area_x' and
524 `bar_area_width', respectively.
525 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
526 background extension.
527
528 2011-05-10 Jim Meyering <meyering@redhat.com>
529
530 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
531
532 2011-05-10 Juanma Barranquero <lekktu@gmail.com>
533
534 * image.c (Finit_image_library): Return t for built-in image types,
535 like pbm and xbm. (Bug#8640)
536
537 2011-05-09 Andreas Schwab <schwab@linux-m68k.org>
538
539 * w32menu.c (set_frame_menubar): Fix submenu allocation.
540
541 2011-05-07 Eli Zaretskii <eliz@gnu.org>
542
543 * w32console.c (Fset_screen_color): Doc fix.
544 (Fget_screen_color): New function.
545 (syms_of_ntterm): Defsubr it.
546
547 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
548 unlink the temporary file if Fcall_process didn't create it in the
549 first place.
550 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
551 child process will be redirected to a file specified with `:file'.
552 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
553 cue to call_process_cleanup not to close that handle.
554
555 2011-05-07 Ben Key <bkey76@gmail.com>
556
557 * makefile.w32-in: The bootstrap-temacs rule now makes use of
558 one of two shell specific rules, either bootstrap-temacs-CMD or
559 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
560 to the previous implementation of the bootstrap-temacs rule.
561 The bootstrap-temacs-CMD rule is similar to the previous
562 implementation of the bootstrap-temacs rule except that it
563 makes use of the ESC_CFLAGS variable instead of the CFLAGS
564 variable.
565
566 These changes, along with some changes to nt/configure.bat,
567 nt/gmake.defs, and nt/nmake.defs, are required to extend my
568 earlier fix to add support for --cflags and --ldflags options
569 that include quotes so that it works whether make uses cmd or
570 sh as the shell.
571
572 2011-05-06 Michael Albinus <michael.albinus@gmx.de>
573
574 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
575 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
576 is a constant.
577 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
578 a string. Handle both cases.
579 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
580 (Fdbus_register_method): Use Qinvalid_function.
581
582 2011-05-06 Juanma Barranquero <lekktu@gmail.com>
583
584 * makefile.w32-in: Update dependencies.
585 (LISP_H): Add inttypes.h and stdin.h.
586 (PROCESS_H): Add unistd.h.
587
588 2011-05-06 Eli Zaretskii <eliz@gnu.org>
589
590 * lread.c: Include limits.h (fixes the MS-Windows build broken by
591 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
592
593 2011-05-06 Paul Eggert <eggert@cs.ucla.edu>
594
595 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
596
597 * term.c (vfatal): Remove stray call to va_end.
598 It's not needed and the C Standard doesn't allow it here anyway.
599
600 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
601 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
602
603 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
604 bytes.
605
606 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
607
608 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
609
610 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
611
612 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
613
614 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
615
616 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
617 * charset.c (Fdefine_charset_internal): Don't initialize
618 charset.code_space[15]. The value was garbage, on hosts with
619 32-bit int (Bug#8600).
620
621 * lread.c (read_integer): Be more consistent with string-to-number.
622 Use string_to_number to do the actual conversion; this avoids
623 rounding errors and fixes some other screwups. Without this fix,
624 for example, #x1fffffffffffffff was misread as -2305843009213693952.
625 (digit_to_number): Move earlier, for benefit of read_integer.
626 Return -1 if the digit is out of range for the base, -2 if it is
627 not a digit in any supported base. (Bug#8602)
628
629 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
630
631 * dispnew.c (scrolling_window): Return 1 if we scrolled,
632 to match comment at start of function. This also removes a
633 GCC warning about overflow in a 32+64-bit port.
634
635 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
636
637 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
638 Reported by Stefan Monnier in
639 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
640 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
641 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
642
643 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
644 (EMACS_UINTPTR): Likewise, with uintptr_t.
645
646 * lisp.h: Prefer 64-bit EMACS_INT if available.
647 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
648 on 32-bit hosts that have 64-bit int, so that they can access
649 large files.
650 However, temporarily disable this change unless the temporary
651 symbol WIDE_EMACS_INT is defined.
652
653 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
654
655 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
656 This removes an assumption that EMACS_INT and long are the same
657 width as pointers. The assumption is true for Emacs porting targets
658 now, but we want to make other targets possible.
659 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
660 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
661 In the rest of the code, change types of integers that hold casted
662 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
663 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
664 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
665 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
666 No need to cast type when ORing.
667 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
668 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
669 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
670 assume EMACS_INT is the same width as char *.
671 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
672 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
673 Remove no-longer-needed casts.
674 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
675 (xg_tool_bar_help_callback, xg_make_tool_item):
676 Use EMACS_INTPTR to hold an integer
677 that will be cast to void *; this can avoid a GCC warning
678 if EMACS_INT is not the same width as void *.
679 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
680 * xdisp.c (display_echo_area_1, resize_mini_window_1):
681 (current_message_1, set_message_1):
682 Use a local to convert to proper width without a cast.
683 * xmenu.c (dialog_selection_callback): Likewise.
684
685 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
686 Also, don't assume VALBITS / RAND_BITS is less than 5,
687 and don't rely on undefined behavior when shifting a 1 left into
688 the sign bit.
689 * lisp.h (get_random): Change signature to match.
690
691 * lread.c (hash_string): Use size_t, not int, for hash computation.
692 Normally we prefer signed values; but hashing is special, because
693 it's better to use unsigned division on hash table sizes so that
694 the remainder is nonnegative. Also, size_t is the natural width
695 for hashing into memory. The previous code used 'int', which doesn't
696 retain enough info to hash well into very large tables.
697 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
698
699 * dbusbind.c: Don't possibly lose pointer info when converting.
700 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
701 Use XPNTR rather than XHASH, so that the high-order bits of
702 the pointer aren't lost when converting through void *.
703
704 * eval.c (Fautoload): Don't double-shift a pointer.
705
706 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
707
708 2011-05-06 Juanma Barranquero <lekktu@gmail.com>
709
710 * gnutls.c (DEF_GNUTLS_FN):
711 * image.c (DEF_IMGLIB_FN): Make function pointers static.
712
713 2011-05-05 Andreas Schwab <schwab@linux-m68k.org>
714
715 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
716 marker. (Bug#8610)
717
718 2011-05-05 Eli Zaretskii <eliz@gnu.org>
719
720 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
721 New version that can reserve upto 2GB of heap space.
722
723 2011-05-05 Chong Yidong <cyd@stupidchicken.com>
724
725 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
726
727 2011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
728
729 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
730 `gnutls_certificate_set_x509_key_file'.
731
732 2011-05-05 Juanma Barranquero <lekktu@gmail.com>
733
734 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
735 Update dependencies.
736
737 2011-05-04 Juanma Barranquero <lekktu@gmail.com>
738
739 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
740 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
741 Remove unused parameter `fildes'.
742 * process.c (read_process_output, send_process): Don't pass it.
743
744 2011-05-04 Juanma Barranquero <lekktu@gmail.com>
745
746 Fix previous change: the library cache is defined in w32.c.
747 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
748 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
749
750 2011-05-04 Juanma Barranquero <lekktu@gmail.com>
751
752 Implement dynamic loading of GnuTLS on Windows.
753
754 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
755 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
756 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
757 Declare.
758
759 * gnutls.c (Qgnutls_dll): Define.
760 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
761 (gnutls_*): Declare function pointers.
762 (init_gnutls_functions): New function to initialize function pointers.
763 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
764 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
765 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
766 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
767 (emacs_gnutls_write, emacs_gnutls_read)
768 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
769 (Fgnutls_available_p): New function.
770 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
771 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
772 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
773
774 * image.c: Include w32.h.
775 (Vimage_type_cache): Delete.
776 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
777 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
778 (w32_delayed_load): Move to w32.c.
779
780 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
781
782 * w32.c (QCloaded_from, Vlibrary_cache): Define.
783 (w32_delayed_load): Move from image.c. When loading a library, record
784 its filename in the :loaded-from property of the library id.
785 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
786 Initialize and staticpro them.
787 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
788
789 * process.c: Include lisp.h before w32.h, not after.
790 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
791 instead of gnutls_record_check_pending.
792
793 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
794
795 2011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
796
797 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
798 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
799 as passed in.
800
801 2011-05-03 Jan Djärv <jan.h.d@swipnet.se>
802
803 * xterm.c (x_set_frame_alpha): Do not set property on anything
804 else than FRAME_X_OUTER_WINDOW (Bug#8608).
805
806 2011-05-02 Juanma Barranquero <lekktu@gmail.com>
807
808 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
809
810 2011-05-02 Juanma Barranquero <lekktu@gmail.com>
811
812 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
813 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
814 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
815 (gnutls_global_initialized, Qgnutls_bootprop_priority)
816 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
817 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
818 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
819 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
820 (Qgnutls_bootprop_callbacks_verify): Make static.
821
822 2011-05-01 Andreas Schwab <schwab@linux-m68k.org>
823
824 * callproc.c: Indentation fixup.
825
826 * sysdep.c (wait_for_termination_1): Make static.
827 (wait_for_termination, interruptible_wait_for_termination):
828 Move after wait_for_termination_1.
829
830 2011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
831
832 * sysdep.c (interruptible_wait_for_termination): New function
833 which is like wait_for_termination, but allows keyboard
834 interruptions.
835
836 * callproc.c (Fcall_process): Add (:file "file") as an option for
837 the STDOUT buffer.
838 (Fcall_process_region): Ditto.
839
840 2011-04-30 Eli Zaretskii <eliz@gnu.org>
841
842 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
843 rather than `XVECTOR (FOO)->size'.
844
845 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
846 inttypes.h, as a gnulib replacement is used if it not available in
847 system headers.
848
849 2011-04-21 Eli Zaretskii <eliz@gnu.org>
850
851 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
852 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
853 of MOST_POSITIVE_FIXNUM. (Bug#8528)
854
855 * coding.c (coding_alloc_by_realloc): Error out if destination
856 will grow beyond MOST_POSITIVE_FIXNUM.
857 (decode_coding_emacs_mule): Abort if there isn't enough place in
858 charbuf for the composition carryover bytes. Reserve an extra
859 space for up to 2 characters produced in a loop.
860 (decode_coding_iso_2022): Abort if there isn't enough place in
861 charbuf for the composition carryover bytes.
862
863 2011-04-21 Eli Zaretskii <eliz@gnu.org>
864
865 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
866 aborting when %lld or %lll format is passed.
867 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
868 %llo or %llx format is passed. (Bug#8545)
869
870 * window.c (window_scroll_line_based): Use a marker instead of
871 simple variables to record original value of point. (Bug#7952)
872
873 * doprnt.c (doprnt): Fix the case where a multibyte sequence
874 produced by %s or %c overflows available buffer space. (Bug#8545)
875
876 2011-04-28 Paul Eggert <eggert@cs.ucla.edu>
877
878 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
879 (SIZE_MAX): Move defn after all includes, as they might #define it.
880
881 2011-04-28 Juanma Barranquero <lekktu@gmail.com>
882
883 * w32.c (init_environment): Warn about defaulting HOME to C:\.
884
885 2011-04-28 Juanma Barranquero <lekktu@gmail.com>
886
887 * keyboard.c (Qdelayed_warnings_hook): Define.
888 (command_loop_1): Run `delayed-warnings-hook'
889 if Vdelayed_warnings_list is non-nil.
890 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
891 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
892
893 2011-04-28 Eli Zaretskii <eliz@gnu.org>
894
895 * doprnt.c (doprnt): Don't return value smaller than the buffer
896 size if the message was truncated. (Bug#8545).
897
898 2011-04-28 Juanma Barranquero <lekktu@gmail.com>
899
900 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
901 (Fx_window_property): #if-0 the whole functions, not just the bodies.
902
903 2011-04-27 Paul Eggert <eggert@cs.ucla.edu>
904
905 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
906
907 2011-04-27 Juanma Barranquero <lekktu@gmail.com>
908
909 * makefile.w32-in: Update dependencies.
910
911 2011-04-27 Eli Zaretskii <eliz@gnu.org>
912
913 Improve `doprnt' and its usage. (Bug#8545)
914 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
915 `format_end'. Remove support for %l as a conversion specifier.
916 Don't use xrealloc. Improve diagnostics when the %l size modifier
917 is used. Update the commentary.
918
919 * eval.c (verror): Simplify calculation of size_t.
920
921 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
922 messages.
923
924 2011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
925
926 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
927 change.
928
929 2011-04-27 Paul Eggert <eggert@cs.ucla.edu>
930
931 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
932 This makes this file independent of the recent pseudovector change.
933
934 2011-04-26 Paul Eggert <eggert@cs.ucla.edu>
935
936 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
937
938 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
939 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
940 Remove unused local.
941 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
942
943 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
944 GCC 4.6.0 optimizes based on type-based alias analysis.
945 For example, if b is of type struct buffer * and v of type struct
946 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
947 != &v->size, and therefore "v->size = 1; b->size = 2; return
948 v->size;" must therefore return 1. This assumption is incorrect
949 for Emacs, since it type-puns struct Lisp_Vector * with many other
950 types. To fix this problem, this patch adds a new type struct
951 vectorlike_header that documents the constraints on layout of vectors
952 and pseudovectors, and helps optimizing compilers not get fooled
953 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
954 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
955 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
956 the size member.
957 (XSETPVECTYPE): Rewrite in terms of new macro.
958 (XSETPVECTYPESIZE): New macro, specifying both type and size.
959 This is a bit clearer, and further avoids the possibility of
960 undesirable aliasing.
961 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
962 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
963 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
964 since Lisp_Subr is a special case (no "next" field).
965 (ASIZE): Now uses header.size rather than size.
966 All previous uses of XVECTOR (foo)->size replaced to use this macro,
967 to avoid the hassle of writing XVECTOR (foo)->header.size.
968 (struct vectorlike_header): New type.
969 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
970 object, to help avoid aliasing.
971 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
972 (SUBRP): Likewise, since Lisp_Subr is a special case.
973 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
974 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
975 (struct Lisp_Hash_Table): Combine first two members into a single
976 struct vectorlike_header member. All uses of "size" and "next" members
977 changed to be "header.size" and "header.next".
978 * buffer.h (struct buffer): Likewise.
979 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
980 * frame.h (struct frame): Likewise.
981 * process.h (struct Lisp_Process): Likewise.
982 * termhooks.h (struct terminal): Likewise.
983 * window.c (struct save_window_data, struct saved_window): Likewise.
984 * window.h (struct window): Likewise.
985 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
986 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
987 * buffer.c (init_buffer_once): Likewise.
988 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
989 special case.
990 * process.c (Fformat_network_address): Use local var for size,
991 for brevity.
992
993 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
994
995 Make the Lisp reader and string-to-float more consistent (Bug#8525)
996 * data.c (atof): Remove decl; no longer used or needed.
997 (digit_to_number): Move to lread.c.
998 (Fstring_to_number): Use new string_to_number function, to be
999 consistent with how the Lisp reader treats infinities and NaNs.
1000 Do not assume that floating-point numbers represent EMACS_INT
1001 without losing information; this is not true on most 64-bit hosts.
1002 Avoid double-rounding errors, by insisting on integers when
1003 parsing non-base-10 numbers, as the documentation specifies.
1004 * lisp.h (string_to_number): New decl, replacing ...
1005 (isfloat_string): Remove.
1006 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
1007 (read1): Do not accept +. and -. as integers; this
1008 appears to have been a coding error. Similarly, do not accept
1009 strings like +-1e0 as floating point numbers. Do not report
1010 overflow for integer overflows unless the base is not 10 which
1011 means we have no simple and reliable way to continue.
1012 Break out the floating-point parsing into a new
1013 function string_to_number, so that Fstring_to_number parses
1014 floating point numbers consistently with the Lisp reader.
1015 (digit_to_number): Move here from data.c. Make it static inline.
1016 (E_CHAR, EXP_INT): Remove, replacing with ...
1017 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
1018 (string_to_number): New function, replacing isfloat_string.
1019 This function checks for valid syntax and produces the resulting
1020 Lisp float number too. Rework it so that string-to-number
1021 no longer mishandles examples like "1.0e+". Use strtoumax,
1022 so that overflow for non-base-10 numbers is reported only when
1023 there's no portable and simple way to convert to floating point.
1024
1025 * textprop.c (set_text_properties_1): Rewrite for clarity,
1026 and to avoid GCC warning about integer overflow.
1027
1028 * intervals.h (struct interval): Use EMACS_INT for members
1029 where EMACS_UINT might cause problems. See
1030 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
1031 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
1032 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
1033 All uses changed.
1034 (offset_intervals): Tell GCC not to worry about length overflow
1035 when negating a negative length.
1036
1037 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
1038 (overrun_check_free): Likewise.
1039
1040 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
1041 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
1042 word size.
1043
1044 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
1045 (gnutls_make_error): Rename local to avoid shadowing.
1046 (gnutls_emacs_global_deinit): ifdef out; not used.
1047 (Fgnutls_boot): Use const for pointer to readonly storage.
1048 Comment out unused local. Fix pointer signedness problems.
1049
1050 * lread.c (openp): Don't stuff size_t into an 'int'.
1051 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
1052 about possible signed overflow.
1053
1054 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
1055 (GDK_KEY_g): Don't define if already defined.
1056 (xg_prepare_tooltip): Avoid pointer signedness problem.
1057 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
1058
1059 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
1060 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
1061
1062 * xfns.c (Fx_window_property): Simplify a bit,
1063 to make a bit faster and to avoid GCC 4.6.0 warning.
1064 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
1065
1066 * fns.c (internal_equal): Don't assume size_t fits in int.
1067
1068 * alloc.c (compact_small_strings): Tighten assertion a little.
1069
1070 Replace pEd with more-general pI, and fix some printf arg casts.
1071 * lisp.h (pI): New macro, generalizing old pEd macro to other
1072 conversion specifiers. For example, use "...%"pI"d..." rather
1073 than "...%"pEd"...".
1074 (pEd): Remove. All uses replaced with similar uses of pI.
1075 * src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h: Likewise.
1076 * alloc.c (check_pure_size): Don't overflow by converting size to int.
1077 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
1078 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
1079 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
1080 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
1081 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
1082 64-bit hosts.
1083 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
1084 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
1085 * print.c (safe_debug_print, print_object): Likewise.
1086 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
1087 to int.
1088 Use pI instead of if-then-else-abort. Use %p to avoid casts,
1089 avoiding the 0 flag, which is not portable.
1090 * process.c (Fmake_network_process): Use pI to avoid cast.
1091 * region-cache.c (pp_cache): Likewise.
1092 * xdisp.c (decode_mode_spec): Likewise.
1093 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
1094 behavior on 64-bit hosts with printf arg.
1095 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
1096 (x_stop_queuing_selection_requests): Likewise.
1097 (x_get_window_property): Don't truncate byte count to an 'int'
1098 when tracing.
1099
1100 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
1101 here, since it parses constructs like leading '-' and spaces,
1102 which are not wanted; and it overflows with large numbers.
1103 Instead, simply match F[0-9]+, which is what is wanted anyway.
1104
1105 * alloc.c: Remove unportable assumptions about struct layout.
1106 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
1107 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
1108 (allocate_vectorlike, make_pure_vector): Use the new macros,
1109 plus offsetof, to remove unportable assumptions about struct layout.
1110 These assumptions hold on all porting targets that I know of, but
1111 they are not guaranteed, they're easy to remove, and removing them
1112 makes further changes easier.
1113
1114 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
1115 This doesn't fix a bug but makes the code clearer.
1116 (string_overrun_cookie): Now const. Use initializers that
1117 don't formally overflow signed char, to avoid warnings.
1118 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
1119 can cause Emacs to crash when string overrun checking is enabled.
1120 (allocate_buffer): Don't assume sizeof (struct buffer) is a
1121 multiple of sizeof (EMACS_INT); it need not be, if
1122 alignof(EMACS_INT) < sizeof (EMACS_INT).
1123 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
1124
1125 2011-04-26 Juanma Barranquero <lekktu@gmail.com>
1126
1127 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
1128
1129 2011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
1130
1131 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
1132 supposed to be handshaking. (Bug#8556)
1133 Reported by Paul Eggert <eggert@cs.ucla.edu>.
1134
1135 2011-04-26 Daniel Colascione <dan.colascione@gmail.com>
1136
1137 * lisp.h (Qdebug): List symbol.
1138 * eval.c (Qdebug): Restore global linkage.
1139 * keyboard.c (debug-on-event): New variable.
1140 (handle_user_signal): Break into debugger when debug-on-event
1141 matches the current signal symbol.
1142
1143 2011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
1144
1145 * alloc.c (check_sblock, check_string_bytes)
1146 (check_string_free_list): Convert to standard C.
1147
1148 2011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
1149
1150 * w32.c (emacs_gnutls_push): Fix typo.
1151
1152 2011-04-25 Eli Zaretskii <eliz@gnu.org>
1153
1154 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
1155 "cast to pointer from integer of different size".
1156
1157 Improve doprnt and its use in verror. (Bug#8545)
1158 * doprnt.c (doprnt): Document the set of format control sequences
1159 supported by the function. Use SAFE_ALLOCA instead of always
1160 using `alloca'.
1161
1162 * eval.c (verror): Don't limit the buffer size at size_max-1, that
1163 is one byte too soon. Don't use xrealloc; instead xfree and
1164 xmalloc anew.
1165
1166 2011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
1167
1168 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
1169 callbacks stage.
1170
1171 * gnutls.c: Renamed global_initialized to
1172 gnutls_global_initialized. Added internals for the
1173 :verify-hostname-error, :verify-error, and :verify-flags
1174 parameters of `gnutls-boot' and documented those parameters in the
1175 docstring. Start callback support.
1176 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
1177 unless a fatal error occured. Call gnutls_alert_send_appropriate
1178 on error. Return error code.
1179 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
1180 (emacs_gnutls_read): Likewise.
1181 (Fgnutls_boot): Return handshake error code.
1182 (emacs_gnutls_handle_error): New function.
1183 (wsaerror_to_errno): Likewise.
1184
1185 * w32.h (emacs_gnutls_pull): Add prototype.
1186 (emacs_gnutls_push): Likewise.
1187
1188 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
1189 (emacs_gnutls_push): Likewise.
1190
1191 2011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
1192
1193 * process.c (wait_reading_process_output): Check if GnuTLS
1194 buffered some data internally if no FDs are set for TLS
1195 connections.
1196
1197 * makefile.w32-in (OBJ2): Add gnutls.$(O).
1198 (LIBS): Link to USER_LIBS.
1199 ($(BLD)/gnutls.$(0)): New target.
1200
1201 2011-04-24 Eli Zaretskii <eliz@gnu.org>
1202
1203 * xdisp.c (handle_single_display_spec): Rename the
1204 display_replaced_before_p argument into display_replaced_p, to
1205 make it consistent with the commentary. Fix typos in the
1206 commentary.
1207
1208 * textprop.c (syms_of_textprop): Remove dead code.
1209 (copy_text_properties): Delete obsolete commentary about an
1210 interface that was deleted long ago. Fix typos in the description
1211 of arguments.
1212
1213 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
1214 to changes in oldXMenu/XMenu.h from 2011-04-16.
1215 <menu_help_message, prev_menu_help_message>: Constify.
1216 (IT_menu_make_room): menu->help_text is now `const char **';
1217 adjust.
1218
1219 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
1220 to changes in oldXMenu/XMenu.h from 2011-04-16.
1221 (struct XMenu): Declare `help_text' `const char **'.
1222
1223 * xfaces.c <Qunspecified>: Make extern again.
1224
1225 * syntax.c: Include sys/types.h before including regex.h, as
1226 required by Posix.
1227
1228 * doc.c (get_doc_string): Improve the format passed to `error'.
1229
1230 * doprnt.c (doprnt): Improve commentary.
1231
1232 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
1233
1234 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
1235 them with etags.
1236
1237 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
1238 changes in globals.h immediately force recompilation.
1239 (TAGS): Depend on $(CURDIR)/m/intel386.h and
1240 $(CURDIR)/s/ms-w32.h.
1241 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
1242
1243 * character.c (Fchar_direction): Function deleted.
1244 (syms_of_character): Don't defsubr it.
1245 <char-direction-table>: Deleted.
1246
1247 2011-04-23 Eli Zaretskii <eliz@gnu.org>
1248
1249 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
1250 * doprnt.c: Include limits.h.
1251 (SIZE_MAX): New macro.
1252 (doprnt): Return a size_t value. 2nd arg is now size_t.
1253 Many local variables are now size_t instead of int or unsigned.
1254 Improve overflow protection. Support `l' modifier for integer
1255 conversions. Support %l conversion. Don't assume an EMACS_INT
1256 argument for integer conversions and for %c.
1257
1258 * lisp.h (doprnt): Restore prototype.
1259
1260 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
1261 $(SRC)/character.h.
1262
1263 * Makefile.in (base_obj): Add back doprnt.o.
1264
1265 * deps.mk (doprnt.o): Add back prerequisites.
1266 (callint.o): Depend on character.h.
1267
1268 * eval.c (internal_lisp_condition_case): Include the handler
1269 representation in the error message.
1270 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
1271 when breaking from the loop.
1272
1273 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
1274
1275 * callint.c (Fcall_interactively): When displaying error message
1276 about invalid control letter, pass the character's codepoint, not
1277 a pointer to its multibyte form. Improve display of the character
1278 in octal and display also its hex code.
1279
1280 * character.c (char_string): Use %x to display the (unsigned)
1281 codepoint of an invalid character, to avoid displaying a bogus
1282 negative value.
1283
1284 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
1285 `error', not SYMBOL_NAME itself.
1286
1287 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
1288 character arguments to `error'.
1289
1290 * charset.c (check_iso_charset_parameter): Fix incorrect argument
1291 to `error' in error message about FINAL_CHAR argument. Make sure
1292 FINAL_CHAR is a character, and use %c when it is passed as
1293 argument to `error'.
1294
1295 2011-04-23 Eli Zaretskii <eliz@gnu.org>
1296
1297 * s/ms-w32.h (localtime): Redirect to sys_localtime.
1298
1299 * w32.c: Include <time.h>.
1300 (sys_localtime): New function.
1301
1302 2011-04-23 Chong Yidong <cyd@stupidchicken.com>
1303
1304 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
1305
1306 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
1307
1308 2011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
1309
1310 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
1311 zombies (Bug#8467).
1312
1313 2011-04-19 Eli Zaretskii <eliz@gnu.org>
1314
1315 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
1316 gl_state.e_property when gl_state.object is Qt.
1317
1318 * insdel.c (make_gap_larger): Remove limitation of buffer size
1319 to <= INT_MAX.
1320
1321 2011-04-18 Chong Yidong <cyd@stupidchicken.com>
1322
1323 * xdisp.c (lookup_glyphless_char_display)
1324 (produce_glyphless_glyph): Handle cons cell entry in
1325 glyphless-char-display.
1326 (Vglyphless_char_display): Document it.
1327
1328 * term.c (produce_glyphless_glyph): Handle cons cell entry in
1329 glyphless-char-display.
1330
1331 2011-04-17 Chong Yidong <cyd@stupidchicken.com>
1332
1333 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
1334
1335 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
1336
1337 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
1338 definition for no-X builds.
1339
1340 2011-04-16 Paul Eggert <eggert@cs.ucla.edu>
1341
1342 Static checks with GCC 4.6.0 and non-default toolkits.
1343
1344 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
1345
1346 * process.c (keyboard_bit_set): Define only if SIGIO.
1347 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
1348 (send_process): Repair possible setjmp clobbering.
1349
1350 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
1351
1352 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
1353
1354 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
1355
1356 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
1357 Define only if needed.
1358
1359 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
1360 by pacifying GCC about it. Maybe it's time to retire it?
1361 * xfaces.c (USG, __TIMEVAL__): Likewise.
1362
1363 * dispextern.h (struct redisplay_interface): Rename param
1364 to avoid shadowing.
1365 * termhooks.h (struct terminal): Likewise.
1366 * xterm.c (xembed_send_message): Likewise.
1367
1368 * insdel.c (make_gap_smaller): Define only if
1369 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
1370
1371 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
1372 it.
1373
1374 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
1375 so that we aren't warned about unused symbols.
1376
1377 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
1378
1379 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
1380
1381 * xfns.c (x_real_positions): Mark locals as initialized.
1382
1383 * xmenu.c (xmenu_show): Don't use uninitialized vars.
1384
1385 * xterm.c: Fix problems found by static analysis with other toolkits.
1386 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
1387 (x_dispatch_event): Declare static if USE_GTK, and
1388 define if USE_GTK || USE_X_TOOLKIT.
1389 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
1390 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
1391 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
1392 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
1393
1394 * xmenu.c (menu_help_callback): Pointer type fixes.
1395 Use const pointers when pointing at readonly data. Avoid pointer
1396 signedness clashes.
1397 (FALSE): Remove unused macro.
1398 (update_frame_menubar): Remove unused decl.
1399
1400 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
1401
1402 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
1403 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
1404 (single_menu_item): Rename local to avoid shadowing.
1405
1406 * keyboard.c (make_lispy_event): Remove unused local var.
1407
1408 * frame.c, frame.h (x_get_resource_string): Bring this back, but
1409 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
1410
1411 * bitmaps: Change bitmaps from unsigned char back to the X11
1412 compatible char. Avoid the old compiler warnings about
1413 out-of-range initializers by using, for example, '\xab' rather
1414 than 0xab.
1415
1416 * xgselect.c (xgselect_initialize): Check vs interface
1417 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
1418
1419 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
1420
1421 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
1422 to read-only memory.
1423
1424 * fns.c (vector): Remove; this old hack is no longer needed.
1425
1426 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
1427 Remove unused var.
1428 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
1429
1430 * xrdb.c (x_load_resources): Omit unused local.
1431
1432 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
1433 (x_window): Rename locals to avoid shadowing.
1434 (USG): Use the kludged USG macro, to pacify gcc.
1435
1436 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
1437 (x_term_init): Remove local to avoid shadowing.
1438
1439 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
1440
1441 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
1442 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
1443
1444 2011-04-16 Eli Zaretskii <eliz@gnu.org>
1445
1446 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
1447
1448 Fix regex.c, syntax.c and friends for buffers > 2GB.
1449 * syntax.h (struct gl_state_s): Declare character position members
1450 EMACS_INT.
1451
1452 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
1453
1454 * textprop.c (verify_interval_modification, interval_of):
1455 Declare arguments EMACS_INT.
1456
1457 * intervals.c (adjust_intervals_for_insertion): Declare arguments
1458 EMACS_INT.
1459
1460 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
1461
1462 * indent.c (Fvertical_motion): Local variable it_start is now
1463 EMACS_INT.
1464
1465 * regex.c (re_match, re_match_2, re_match_2_internal)
1466 (bcmp_translate, regcomp, regexec, print_double_string)
1467 (group_in_compile_stack, re_search, re_search_2, regex_compile)
1468 (re_compile_pattern, re_exec): Declare arguments and local
1469 variables `size_t' and `ssize_t' and return values `regoff_t', as
1470 appropriate.
1471 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
1472 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
1473 <compile_stack_type>: `size' and `avail' are now `size_t'.
1474
1475 * regex.h <regoff_t>: Use ssize_t, not int.
1476 (re_search, re_search_2, re_match, re_match_2): Arguments that
1477 specify buffer/string position and length are now ssize_t and
1478 size_t. Return type is regoff_t.
1479
1480 2011-04-16 Ben Key <bkey76@gmail.com>
1481
1482 * nsfont.m: Fixed bugs in ns_get_family and
1483 ns_descriptor_to_entity that were caused by using free to
1484 deallocate memory blocks that were allocated by xmalloc (via
1485 xstrdup). This caused Emacs to crash when compiled with
1486 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
1487 --enable-checking=xmallocoverrun). xfree is now used to
1488 deallocate these memory blocks.
1489
1490 2011-04-15 Paul Eggert <eggert@cs.ucla.edu>
1491
1492 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
1493
1494 emacs_write: Accept and return EMACS_INT for sizes.
1495 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
1496 et seq.
1497 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
1498 Accept and return EMACS_INT.
1499 (emacs_gnutls_write): Return the number of bytes written on
1500 partial writes.
1501 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
1502 (emacs_read, emacs_write): Remove check for negative size, as the
1503 Emacs source code has been audited now.
1504 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
1505 (emacs_read, emacs_write): Use it.
1506 * process.c (send_process): Adjust to the new signatures of
1507 emacs_write and emacs_gnutls_write. Do not attempt to store
1508 a byte offset into an 'int'; it might overflow.
1509 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
1510
1511 * sound.c: Don't assume sizes fit in 'int'.
1512 (struct sound_device.period_size, alsa_period_size):
1513 Return EMACS_INT, not int.
1514 (struct sound_device.write, vox_write, alsa_write):
1515 Accept EMACS_INT, not int.
1516 (wav_play, au_play): Use EMACS_INT to store sizes and to
1517 record read return values.
1518
1519 2011-04-15 Ben Key <bkey76@gmail.com>
1520
1521 * keyboard.c (Qundefined): Don't declare static since it is used
1522 in nsfns.m.
1523 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
1524 static since they are used in nsfont.m.
1525
1526 2011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
1527
1528 * process.c (Qprocessp): Don't declare static.
1529 * lisp.h (Qprocessp): Declare again.
1530
1531 2011-04-15 Juanma Barranquero <lekktu@gmail.com>
1532
1533 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
1534
1535 2011-04-14 Paul Eggert <eggert@cs.ucla.edu>
1536
1537 Improve C-level modularity by making more things 'static'.
1538
1539 Don't publish debugger-only interfaces to other modules.
1540 * lisp.h (safe_debug_print, debug_output_compilation_hack):
1541 (verify_bytepos, count_markers): Move decls to the only modules
1542 that need them.
1543 * region-cache.h (pp_cache): Likewise.
1544 * window.h (check_all_windows): Likewise.
1545 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
1546
1547 * sysdep.c (croak): Now static, if
1548 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
1549 * syssignal.h (croak): Declare only if not static.
1550
1551 * alloc.c (refill_memory_reserve): Now static if
1552 !defined REL_ALLOC || defined SYSTEM_MALLOC.
1553 * lisp.h (refill_memory_reserve): Declare only if not static.
1554
1555 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
1556 Define only if USE_LUCID.
1557
1558 * xrdb.c (x_customization_string, x_rm_string): Now static.
1559
1560 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
1561 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
1562
1563 * xdisp.c (draw_row_with_mouse_face): Now static.
1564 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
1565
1566 * window.h (check_all_windows): Mark externally visible.
1567
1568 * window.c (window_deletion_count): Now static.
1569
1570 * undo.c: Make symbols static if they're not exported.
1571 (last_undo_buffer, last_boundary_position, pending_boundary):
1572 Now static.
1573
1574 * textprop.c (interval_insert_behind_hooks): Now static.
1575 (interval_insert_in_front_hooks): Likewise.
1576
1577 * term.c: Make symbols static if they're not exported.
1578 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
1579 (max_frame_lines, tty_set_terminal_modes):
1580 (tty_reset_terminal_modes, tty_turn_off_highlight):
1581 (get_tty_terminal): Now static.
1582 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
1583 * termhooks.h (term_mouse_moveto): Do not declare if
1584 HAVE_WINDOW_SYSTEM.
1585 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
1586 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
1587
1588 * sysdep.c: Make symbols static if they're not exported.
1589 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
1590 Now static.
1591 (sigprocmask_set, full_mask): Remove; unused.
1592 (wait_debugging): Mark as visible.
1593 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
1594 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
1595
1596 * syntax.c (syntax_temp): Define only if !__GNUC__.
1597
1598 * sound.c (current_sound_device, current_sound): Now static.
1599
1600 * search.c (searchbufs, searchbuf_head): Now static.
1601
1602 * scroll.c (scroll_cost): Remove; unused.
1603 * dispextern.h (scroll_cost): Remove decl.
1604
1605 * region-cache.h (pp_cache): Mark as externally visible.
1606
1607 * process.c: Make symbols static if they're not exported.
1608 (process_tick, update_tick, create_process, chan_process):
1609 (Vprocess_alist, proc_buffered_char, datagram_access):
1610 (fd_callback_data, send_process_frame, process_sent_to): Now static.
1611 (deactivate_process): Mark defn as static, as well as decl.
1612 * lisp.h (create_process): Remove decl.
1613 * process.h (chan_process, Vprocess_alist): Remove decls.
1614
1615 * print.c: Make symbols static if they're not exported.
1616 (print_depth, new_backquote_output, being_printed, print_buffer):
1617 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
1618 (print_interval, print_number_index, initial_stderr_stream):
1619 Now static.
1620 * lisp.h (Fprinc): Remove decl.
1621 (debug_output_compilation_hack): Mark as externally visible.
1622
1623 * sysdep.c (croak): Move decl from here to syssignal.h.
1624 * syssignal.h (croak): Put it here, so the API can be checked when
1625 'croak' is called from dissociate_if_controlling_tty.
1626
1627 * minibuf.c: Make symbols static if they're not exported.
1628 (minibuf_save_list, choose_minibuf_frame): Now static.
1629 * lisp.h (choose_minibuf_frame): Remove decl.
1630
1631 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
1632
1633 * lread.c: Make symbols static if they're not exported.
1634 (read_objects, initial_obarray, oblookup_last_bucket_number):
1635 Now static.
1636 (make_symbol): Remove; unused.
1637 * lisp.h (initial_obarray, make_symbol): Remove decls.
1638
1639 * keyboard.c: Make symbols static if they're not exported.
1640 (single_kboard, recent_keys_index, total_keys, recent_keys):
1641 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
1642 (this_single_command_key_start, echoing, last_auto_save):
1643 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
1644 (command_loop, echo_now, keyboard_init_hook, help_char_p):
1645 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
1646 (Vlispy_mouse_stem, double_click_count):
1647 Now static.
1648 (force_auto_save_soon): Define only if SIGDANGER.
1649 (ignore_mouse_drag_p): Now static if
1650 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
1651 (print_help): Remove; unused.
1652 (stop_character, last_timer_event): Mark as externally visible.
1653 * keyboard.h (ignore_mouse_drag_p): Declare only if
1654 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
1655 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
1656 * lisp.h (echoing): Remove decl.
1657 (force_auto_save_soon): Declare only if SIGDANGER.
1658 * xdisp.c (redisplay_window): Simplify code, to make it more
1659 obvious that ignore_mouse_drag_p is not accessed if !defined
1660 USE_GTK && !defined HAVE_NS.
1661
1662 * intervals.c: Make symbols static if they're not exported.
1663 (merge_properties_sticky, merge_interval_right, delete_interval):
1664 Now static.
1665 * intervals.h (merge_interval_right, delete_interval): Remove decls.
1666
1667 * insdel.c: Make symbols static if they're not exported.
1668 However, leave prepare_to_modify_buffer alone. It's never
1669 called from outside this function, but that appears to be a bug.
1670 (combine_after_change_list, combine_after_change_buffer):
1671 (adjust_after_replace, signal_before_change): Now static.
1672 (adjust_after_replace_noundo): Remove; unused.
1673 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
1674 (signal_before_change): Remove decls.
1675
1676 * indent.c (val_compute_motion, val_vmotion): Now static.
1677
1678 * image.c: Make symbols static if they're not exported.
1679 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
1680 if USE_GTK.
1681 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
1682 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
1683
1684 * fringe.c (standard_bitmaps): Now static.
1685 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
1686
1687 * frame.c: Make symbols static if they're not exported.
1688 (x_report_frame_params, make_terminal_frame): Now static.
1689 (get_frame_param): Now static, unless HAVE_NS.
1690 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
1691 (x_get_resource_string): Remove; not used.
1692 * frame.h (make_terminal_frame, x_report_frame_params):
1693 (x_get_resource_string); Remove decls.
1694 (x_fullscreen_adjust): Declare only if WINDOWSNT.
1695 * lisp.h (get_frame_param): Declare only if HAVE_NS.
1696
1697 * font.c, fontset.c: Make symbols static if they're not exported.
1698 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
1699 (FACE_SUITABLE_FOR_CHAR_P): Use it.
1700 * font.c (font_close_object): Now static.
1701 * font.h (font_close_object): Remove.
1702 * fontset.c (FONTSET_OBJLIST): Remove.
1703 (free_realized_fontset) #if-0 the body, which does nothing.
1704 (face_suitable_for_char_p): #if-0, as it's never called.
1705 * fontset.h (face_suitable_for_char_p): Remove decl.
1706 * xfaces.c (face_at_string_position):
1707 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
1708 since 0 is always ASCII.
1709
1710 * fns.c (weak_hash_tables): Now static.
1711
1712 * fileio.c: Make symbols static if they're not exported.
1713 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
1714 (Vwrite_region_annotation_buffers): Now static.
1715
1716 * eval.c: Make symbols static if they're not exported.
1717 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
1718 * lisp.h (backtrace_list): Remove decl.
1719
1720 * emacs.c: Make symbols static if they're not exported.
1721 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
1722 (fatal_error_code, fatal_error_signal_hook, standard_args):
1723 Now static.
1724 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
1725 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
1726 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
1727 * lisp.h (fatal_error_signal_hook): Remove decl.
1728 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
1729
1730 * editfns.c: Move a (normally-unused) function to its only use.
1731 * editfns.c, lisp.h (get_operating_system_release): Remove.
1732 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
1733 worth the hassle of breaking this out.
1734
1735 * xterm.c: Make symbols static if they're not exported.
1736 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
1737 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
1738 (x_destroy_window, x_delete_display):
1739 Now static.
1740 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
1741 (x_mouse_leave): Remove; unused.
1742 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
1743 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
1744 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
1745 Remove decls.
1746 (x_mouse_leave): Declare only if WINDOWSNT.
1747 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
1748 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
1749 USE_X_TOOLKIT.
1750
1751 * ftxfont.c: Make symbols static if they're not exported.
1752 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
1753 HAVE_FREETYPE.
1754 * font.h (ftxfont_driver): Likewise.
1755
1756 * xfns.c: Make symbols static if they're not exported.
1757 (x_last_font_name, x_display_info_for_name):
1758 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
1759 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
1760 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
1761 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
1762 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
1763 (last_show_tip_args): Now static.
1764 (xic_defaut_fontset, xic_create_fontsetname): Define only if
1765 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
1766 (x_screen_planes): Remove; unused.
1767 * dispextern.h (x_screen_planes): Remove decl.
1768
1769 * dispnew.c: Make symbols static if they're not exported.
1770 * dispextern.h (redraw_garbaged_frames, scrolling):
1771 (increment_row_positions): Remove.
1772 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
1773 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
1774 Now static.
1775 (redraw_garbaged_frames): Remove; unused.
1776
1777 * xfaces.c: Make symbols static if they're not exported.
1778 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
1779 Remove decls.
1780 * xterm.h (defined_color): Remove decls.
1781 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
1782 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
1783 (menu_face_changed_default, defined_color, free_realized_face):
1784 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
1785 (ascii_face_of_lisp_face): Remove; unused.
1786
1787 * xdisp.c: Make symbols static if they're not exported.
1788 * dispextern.h (scratch_glyph_row, window_box_edges):
1789 (glyph_to_pixel_coords, set_cursor_from_row):
1790 (get_next_display_element, set_iterator_to_next):
1791 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
1792 (show_mouse_face): Remove decls
1793 * frame.h (message_buf_print): Likewise.
1794 * lisp.h (pop_message, set_message, check_point_in_composition):
1795 Likewise.
1796 * xterm.h (set_vertical_scroll_bar): Likewise.
1797 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
1798 (message_buf_print, scratch_glyph_row, displayed_buffer):
1799 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
1800 (get_next_display_element, show_mouse_face, window_box_edges):
1801 (frame_to_window_pixel_xy, check_point_in_composition):
1802 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
1803 (glyph_to_pixel_coords): Remove; unused.
1804
1805 * dired.c (file_name_completion): Now static.
1806
1807 * dbusbind.c (xd_in_read_queued_messages): Now static.
1808
1809 * lisp.h (circular_list_error, FOREACH): Remove; unused.
1810 * data.c (circular_list_error): Remove.
1811
1812 * commands.h (last_point_position, last_point_position_buffer):
1813 (last_point_position_window): Remove decls.
1814 * keyboard.c: Make these variables static.
1815
1816 * coding.h (coding, code_convert_region, encode_coding_gap):
1817 Remove decls.
1818 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
1819 (iso_code_class, detect_coding, code_convert_region): Now static.
1820 (encode_coding_gap): Remove; unused.
1821
1822 * chartab.c (chartab_chars, chartab_bits): Now static.
1823
1824 * charset.h (charset_iso_8859_1): Remove decl.
1825 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
1826 Now static.
1827
1828 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
1829 * ccl.c (Vccl_program_table): Now static.
1830 (check_ccl_update): Remove; unused.
1831
1832 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
1833 * category.h: ... from here.
1834 * category.c (check_category_table, set_category_set): Now static.
1835
1836 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
1837 * lisp.h: Remove these decls.
1838
1839 * buffer.c (buffer_count): Remove unused var.
1840
1841 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
1842 so that it's not optimized away.
1843 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
1844 * dispextern.h (bidi_dump_cached_states): Remove, since it's
1845 exported only to the debugger.
1846
1847 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
1848 * atimer.h (run_all_atimers): Remove; not exported.
1849
1850 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
1851 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
1852 was inaccessible from Lisp.
1853 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
1854 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
1855
1856 alloc.c: Import and export fewer symbols, and remove unused items.
1857 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
1858 is defined.
1859 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
1860 it's not optimized away by whole-program optimization.
1861 (message_enable_multibyte, free_misc): Remove.
1862 (catchlist, handlerlist, mark_backtrace):
1863 Declare only if BYTE_MARK_STACK.
1864 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
1865 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
1866 (message_enable_multibyte): Remove decl.
1867 (free_misc, interval_free_list, float_block, float_block_index):
1868 (n_float_blocks, float_free_list, cons_block, cons_block_index):
1869 (cons_free_list, last_marked_index):
1870 Now static.
1871 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
1872 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
1873 (mark_backtrace): Define only if BYTE_MARK_STACK.
1874 * xdisp.c (message_enable_multibyte): Now static.
1875
1876 Declare Lisp_Object Q* variables to be 'static' if not exported.
1877 This makes it easier for human readers (and static analyzers)
1878 to see whether these variables are used from other modules.
1879 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
1880 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
1881 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
1882 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
1883 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
1884 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
1885 * xmenu.c, xselect.c:
1886 Declare Q* vars static if they are not used in other modules.
1887 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
1888 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
1889 Remove decls of unexported vars.
1890 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
1891
1892 * lisp.h (DEFINE_FUNC): Make sname 'static'.
1893
1894 Make Emacs functions such as Fatom 'static' by default.
1895 This makes it easier for human readers (and static analyzers)
1896 to see whether these functions can be called from other modules.
1897 DEFUN now defines a static function. To make the function external
1898 so that it can be used in other C modules, use the new macro DEFUE.
1899 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
1900 (Finit_image_library):
1901 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
1902 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
1903 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
1904 Remove decls, since these functions are now static.
1905 (Funintern, Fget_internal_run_time): New decls, since these functions
1906 were already external.
1907
1908 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
1909 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
1910 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
1911 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
1912 * keyboard.c, keymap.c, lread.c:
1913 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
1914 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
1915 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
1916 Mark functions with DEFUE instead of DEFUN,
1917 if they are used in other modules.
1918 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
1919 decls for now-static functions.
1920 * buffer.h (Fdelete_overlay): Remove decl.
1921 * callproc.c (Fgetenv_internal): Mark as internal.
1922 * composite.c (Fremove_list_of_text_properties): Remove decl.
1923 (Fcomposition_get_gstring): New forward static decl.
1924 * composite.h (Fcomposite_get_gstring): Remove decl.
1925 * dired.c (Ffile_attributes): New forward static decl.
1926 * doc.c (Fdocumntation_property): New forward static decl.
1927 * eval.c (Ffetch_bytecode): New forward static decl.
1928 (Funintern): Remove extern decl; now in .h file where it belongs.
1929 * fileio.c (Fmake_symbolic_link): New forward static decl.
1930 * image.c (Finit_image_library): New forward static decl.
1931 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
1932 * intervals.h (Fprevious_property_change):
1933 (Fremove_list_of_text_properties): Remove decls.
1934 * keyboard.c (Fthis_command_keys): Remove decl.
1935 (Fcommand_execute): New forward static decl.
1936 * keymap.c (Flookup_key): New forward static decl.
1937 (Fcopy_keymap): Now static.
1938 * keymap.h (Flookup_key): Remove decl.
1939 * process.c (Fget_process): New forward static decl.
1940 (Fprocess_datagram_address): Mark as internal.
1941 * syntax.c (Fsyntax_table_p): New forward static decl.
1942 (skip_chars): Remove duplicate decl.
1943 * textprop.c (Fprevious_property_change): New forward static decl.
1944 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
1945 Now internal.
1946 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
1947 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
1948
1949 * editfns.c (Fformat): Remove unreachable code.
1950
1951 2011-04-14 Andreas Schwab <schwab@linux-m68k.org>
1952
1953 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
1954 change. (Bug#8496)
1955
1956 2011-04-13 Eli Zaretskii <eliz@gnu.org>
1957
1958 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
1959 when at ZV. (Bug#8487)
1960
1961 2011-04-12 Andreas Schwab <schwab@linux-m68k.org>
1962
1963 * charset.c (Fclear_charset_maps): Use xfree instead of free.
1964 (Bug#8437)
1965 * keyboard.c (parse_tool_bar_item): Likewise.
1966 * sound.c (sound_cleanup, alsa_close): Likewise.
1967 * termcap.c (tgetent): Likewise.
1968 * xfns.c (x_default_font_parameter): Likewise.
1969 * xsettings.c (read_and_apply_settings): Likewise.
1970
1971 * alloc.c (overrun_check_malloc, overrun_check_realloc)
1972 (overrun_check_free): Protoize.
1973
1974 2011-04-12 Paul Eggert <eggert@cs.ucla.edu>
1975
1976 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
1977 since callers should never pass a negative size.
1978 Change the signature to match that of plain 'read' and 'write'; see
1979 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
1980 * lisp.h: Update prototypes of emacs_write and emacs_read.
1981
1982 2011-04-11 Eli Zaretskii <eliz@gnu.org>
1983
1984 * xdisp.c (redisplay_window): Don't try to determine the character
1985 position of the scroll margin if the window start point w->startp
1986 is outside the buffer's accessible region. (Bug#8468)
1987
1988 2011-04-10 Eli Zaretskii <eliz@gnu.org>
1989
1990 Fix write-region and its subroutines for buffers > 2GB.
1991 * fileio.c (a_write, e_write): Modify declaration of arguments and
1992 local variables to support buffers larger than 2GB.
1993 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
1994
1995 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
1996 argument, local variables, and return value.
1997
1998 * lisp.h: Update prototypes of emacs_write and emacs_read.
1999
2000 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
2001
2002 2011-04-10 Paul Eggert <eggert@cs.ucla.edu>
2003
2004 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
2005
2006 Fix more problems found by GCC 4.6.0's static checks.
2007
2008 * xdisp.c (vmessage): Use a better test for character truncation.
2009
2010 * charset.c (load_charset_map): <, not <=, for optimization,
2011 and to avoid potential problems with integer overflow.
2012 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
2013 * casetab.c (set_identity, shuffle): Likewise.
2014 * editfns.c (Fformat): Likewise.
2015 * syntax.c (skip_chars): Likewise.
2016
2017 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
2018 This also lets GCC 4.6.0 generate slightly better loop code.
2019
2020 * callint.c (Fcall_interactively): <, not <=, for optimization.
2021 (Fcall_interactively): Count the number of arguments produced,
2022 not the number of arguments given. This is simpler and lets GCC
2023 4.6.0 generate slightly better code.
2024
2025 * ftfont.c: Distingish more carefully between FcChar8 and char.
2026 The previous code passed unsigned char * to a functions like
2027 strlen and xstrcasecmp that expect char *, which does not
2028 conform to the C standard.
2029 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
2030 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
2031 char * when the C standard requires it.
2032
2033 * keyboard.c (read_char): Remove unused var.
2034
2035 * eval.c: Port to Windows vsnprintf (Bug#8435).
2036 Include <limits.h>.
2037 (SIZE_MAX): Define if the headers do not.
2038 (verror): Do not give up if vsnprintf returns a negative count.
2039 Instead, grow the buffer. This ports to Windows vsnprintf, which
2040 does not conform to C99. Problem reported by Eli Zaretskii.
2041 Also, simplify the allocation scheme, by avoiding the need for
2042 calling realloc, and removing the ALLOCATED variable.
2043
2044 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
2045
2046 Remove invocations of doprnt, as Emacs now uses vsnprintf.
2047 But keep the doprint source code for now, as we might revamp it
2048 and use it again (Bug#8435).
2049 * lisp.h (doprnt): Remove.
2050 * Makefile.in (base_obj): Remove doprnt.o.
2051 * deps.mk (doprnt.o): Remove.
2052
2053 error: Print 32- and 64-bit integers portably (Bug#8435).
2054 Without this change, on typical 64-bit hosts error ("...%d...", N)
2055 was used to print both 32- and 64-bit integers N, which relied on
2056 undefined behavior.
2057 * lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
2058 New macro.
2059 * lisp.h (error, verror): Mark as printf-like functions.
2060 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
2061 Report overflow in size calculations when allocating printf buffer.
2062 Do not truncate output string at its first null byte.
2063 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
2064 Truncate the output at a character boundary, since vsnprintf does not
2065 do that.
2066 * charset.c (check_iso_charset_parameter): Convert internal
2067 character to string before calling 'error', since %c now has the
2068 printf meaning.
2069 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
2070 overflow when computing char to be passed to 'error'. Do not
2071 pass Lisp_Object to 'error'; pass the integer instead.
2072 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
2073 formatted with plain %d.
2074
2075 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
2076
2077 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
2078
2079 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
2080
2081 * xterm.c (x_catch_errors): Remove duplicate declaration.
2082
2083 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
2084
2085 * xdisp.c, lisp.h (message_nolog): Remove; unused.
2086
2087 2011-04-10 Jim Meyering <meyering@redhat.com>
2088
2089 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
2090 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
2091 return ssize_t not "int", and use size_t as the buffer length.
2092 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
2093 * gnutls.h: Update declarations.
2094 * process.c (read_process_output): Use ssize_t, to match.
2095 (send_process): Likewise.
2096
2097 2011-04-09 Chong Yidong <cyd@stupidchicken.com>
2098
2099 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
2100
2101 2011-04-09 Chong Yidong <cyd@stupidchicken.com>
2102
2103 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
2104 Use unsigned char, to match FcChar8 type definition.
2105
2106 * xterm.c (handle_one_xevent):
2107 * xmenu.c (create_and_show_popup_menu):
2108 * xselect.c (x_decline_selection_request)
2109 (x_reply_selection_request): Avoid type-punned deref of X events.
2110
2111 2011-04-09 Eli Zaretskii <eliz@gnu.org>
2112
2113 Fix some uses of `int' instead of EMACS_INT.
2114 * search.c (string_match_1, fast_string_match)
2115 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
2116 (scan_buffer, find_next_newline_no_quit)
2117 (find_before_next_newline, search_command, Freplace_match)
2118 (Fmatch_data): Make some `int' variables be EMACS_INT.
2119
2120 * xdisp.c (display_count_lines): 3rd argument and return value now
2121 EMACS_INT. All callers changed.
2122 (pint2hrstr): Last argument is now EMACS_INT.
2123
2124 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
2125 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
2126 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
2127 (decode_coding_utf_16, decode_coding_emacs_mule)
2128 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
2129 (decode_coding_ccl, decode_coding_charset)
2130 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
2131 (decode_coding_iso_2022, decode_coding_emacs_mule)
2132 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
2133 <char_offset, last_offset>: Declare EMACS_INT.
2134 (encode_coding_utf_8, encode_coding_utf_16)
2135 (encode_coding_emacs_mule, encode_invocation_designation)
2136 (encode_designation_at_bol, encode_coding_iso_2022)
2137 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
2138 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
2139 Declare EMACS_INT.
2140 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
2141 (encode_invocation_designation): Last argument P_NCHARS is now
2142 EMACS_INT.
2143 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
2144 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
2145
2146 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
2147 All users changed.
2148
2149 * ccl.c (Fccl_execute_on_string): Declare some variables
2150 EMACS_INT.
2151
2152 2011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
2153
2154 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
2155
2156 2011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
2157
2158 * process.c (Fformat_network_address): Doc fix.
2159
2160 2011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
2161
2162 * xml.c (parse_region): Avoid creating spurious whiespace nodes.
2163
2164 2011-04-08 Chong Yidong <cyd@stupidchicken.com>
2165
2166 * keyboard.c (read_char): Call Lisp function help-form-show,
2167 instead of using internal_with_output_to_temp_buffer.
2168 (Qhelp_form_show): New var.
2169 (syms_of_keyboard): Use DEFSYM macro.
2170
2171 * print.c (internal_with_output_to_temp_buffer): Function deleted.
2172
2173 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
2174
2175 2011-04-06 Chong Yidong <cyd@stupidchicken.com>
2176
2177 * process.c (Flist_processes): Remove to Lisp.
2178 (list_processes_1): Delete.
2179
2180 2011-04-06 Eli Zaretskii <eliz@gnu.org>
2181
2182 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
2183
2184 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
2185
2186 2011-04-06 Paul Eggert <eggert@cs.ucla.edu>
2187
2188 Fix more problems found by GCC 4.6.0's static checks.
2189
2190 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
2191
2192 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
2193
2194 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
2195
2196 * xdisp.c (vmessage): Mark as a printf-like function.
2197
2198 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
2199
2200 * sound.c (sound_warning): Don't crash if arg contains a printf format.
2201
2202 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
2203 printf-like functions.
2204 (tiff_load): Add casts to remove these marks before passing them
2205 to system-supplied API.
2206
2207 * eval.c (Fsignal): Remove excess argument to 'fatal'.
2208
2209 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
2210 This avoids several warnings with gcc -Wstrict-overflow.
2211 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
2212 directly, rather than having caller test rule sign. This avoids
2213 some unnecessary tests.
2214 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
2215 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
2216 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
2217
2218 * xfont.c (xfont_text_extents): Remove var that was set but not used.
2219 (xfont_open): Avoid unnecessary tests.
2220
2221 * composite.c (composition_gstring_put_cache): Use unsigned integer.
2222
2223 * composite.h, composite.c (composition_gstring_put_cache):
2224 Use EMACS_INT, not int, for length.
2225
2226 * composite.h (COMPOSITION_DECODE_REFS): New macro,
2227 breaking out part of COMPOSITION_DECODE_RULE.
2228 (COMPOSITION_DECODE_RULE): Use it.
2229 * composite.c (get_composition_id): Remove unused local vars,
2230 by using the new macro.
2231
2232 * textprop.c (set_text_properties_1): Change while to do-while,
2233 since the condition is always true at first.
2234
2235 * intervals.c (graft_intervals_into_buffer): Mark var as used.
2236 (interval_deletion_adjustment): Return unsigned value.
2237 All uses changed.
2238
2239 * process.c (list_processes_1, create_pty, read_process_output):
2240 (exec_sentinel): Remove vars that were set but not used.
2241 (create_pty): Remove unnecessary "volatile"s.
2242 (Fnetwork_interface_info): Avoid possibility of int overflow.
2243 (read_process_output): Do adaptive read buffering even if carryover.
2244 (read_process_output): Simplify nbytes computation if buffered.
2245
2246 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
2247
2248 * syntax.c (scan_words): Remove var that was set but not used.
2249 (update_syntax_table): Use unsigned instead of int.
2250
2251 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
2252 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
2253 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
2254
2255 * print.c (print_error_message): Avoid int overflow.
2256
2257 * font.c (font_list_entities): Redo for clarity,
2258 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
2259
2260 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
2261 (font_score): Avoid potential overflow in diff calculation.
2262
2263 * fns.c (substring_both): Remove var that is set but not used.
2264 (sxhash): Redo loop for clarity and to avoid wraparound warning.
2265
2266 * eval.c (funcall_lambda): Rename local to avoid shadowing.
2267
2268 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
2269 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
2270 can always succeed if overflow has undefined behavior.
2271
2272 * search.c (boyer_moore, wordify): Remove vars set but not used.
2273 (wordify): Omit three unnecessary tests.
2274
2275 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
2276 All callers changed. This avoids the need for an unused var.
2277
2278 * casefiddle.c (casify_region): Remove var that is set but not used.
2279
2280 * dired.c (file_name_completion): Remove var that is set but not used.
2281
2282 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
2283
2284 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
2285 (Finsert_file_contents): Remove unnecessary code checking fd.
2286
2287 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
2288 Check for integer overflow on size calculations.
2289
2290 * buffer.c (Fprevious_overlay_change): Remove var that is set
2291 but not used.
2292
2293 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
2294 Remove vars that are set but not used.
2295 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
2296 (timer_check_2): Mark vars as initialized.
2297
2298 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
2299
2300 * image.c (lookup_image): Remove var that is set but not used.
2301 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
2302
2303 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
2304 that are set but not used.
2305
2306 * xfns.c (make_invisible_cursor): Don't return garbage
2307 if XCreateBitmapFromData fails (Bug#8410).
2308
2309 * xselect.c (x_get_local_selection, x_handle_property_notify):
2310 Remove vars that are set but not used.
2311
2312 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
2313 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
2314
2315 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
2316 Remove var that is set but not used.
2317 (scroll_bar_windows_size): Now size_t, not int.
2318 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
2319 Check for overflow.
2320
2321 * xfaces.c (realize_named_face): Remove vars that are set but not used.
2322 (map_tty_color) [!defined MSDOS]: Likewise.
2323
2324 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
2325
2326 * coding.c: Remove vars that are set but not used.
2327 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
2328 All callers changed.
2329 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
2330 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
2331 (decode_coding_charset): Remove vars that are set but not used.
2332
2333 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
2334 that is set but not used.
2335
2336 * print.c (print_object): Remove var that is set but not used.
2337
2338 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
2339 The gnulib version avoids calling malloc in the usual case,
2340 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
2341 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
2342 * filelock.c (current_lock_owner): Likewise.
2343 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
2344 * sysdep.c: Include allocator.h, careadlinkat.h.
2345 (emacs_no_realloc_allocator): New static constant.
2346 (emacs_readlink): New function.
2347 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
2348 ../lib/careadlinkat.h.
2349
2350 2011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
2351
2352 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
2353 first non-nil return value).
2354
2355 2011-04-03 Jan Djärv <jan.h.d@swipnet.se>
2356
2357 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
2358 if not defined (Bug#8403).
2359
2360 2011-04-02 Juanma Barranquero <lekktu@gmail.com>
2361
2362 * xdisp.c (display_count_lines): Remove parameter `start',
2363 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
2364 (get_char_face_and_encoding): Remove parameter `multibyte_p',
2365 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
2366 (fill_stretch_glyph_string): Remove parameters `row' and `area',
2367 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
2368 and thereabouts. All callers changed.
2369 (get_per_char_metric): Remove parameter `f', unused since
2370 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
2371
2372 2011-04-02 Jim Meyering <meyering@redhat.com>
2373
2374 do not dereference NULL upon failed strdup
2375 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
2376 (ns_get_family): Likewise.
2377
2378 2011-04-02 Juanma Barranquero <lekktu@gmail.com>
2379
2380 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
2381
2382 2011-04-02 Jan Djärv <jan.h.d@swipnet.se>
2383
2384 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
2385 later (Bug#8403).
2386
2387 2011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
2388
2389 Add lexical binding.
2390
2391 * window.c (Ftemp_output_buffer_show): New fun.
2392 (Fsave_window_excursion):
2393 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
2394
2395 * lread.c (lisp_file_lexically_bound_p): New function.
2396 (Fload): Bind Qlexical_binding.
2397 (readevalloop): Remove `evalfun' arg.
2398 Bind Qinternal_interpreter_environment.
2399 (Feval_buffer): Bind Qlexical_binding.
2400 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
2401 Mark as dynamic.
2402 (syms_of_lread): Declare `lexical-binding'.
2403
2404 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
2405
2406 * keyboard.c (eval_dyn): New fun.
2407 (menu_item_eval_property): Use it.
2408
2409 * image.c (parse_image_spec): Use Ffunctionp.
2410
2411 * fns.c (concat, mapcar1): Accept byte-code-functions.
2412
2413 * eval.c (Fsetq): Handle lexical vars.
2414 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
2415 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
2416 (FletX, Flet): Obey lexical binding.
2417 (Fcommandp): Handle closures.
2418 (Feval): New `lexical' arg.
2419 (eval_sub): New function extracted from Feval. Use it almost
2420 everywhere where Feval was used. Look up vars in lexical env.
2421 Handle closures.
2422 (Ffunctionp): Move from subr.el.
2423 (Ffuncall): Handle closures.
2424 (apply_lambda): Remove `eval_flags'.
2425 (funcall_lambda): Handle closures and new byte-code-functions.
2426 (Fspecial_variable_p): New function.
2427 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
2428 but without exporting it to Lisp.
2429
2430 * doc.c (Fdocumentation, store_function_docstring):
2431 * data.c (Finteractive_form): Handle closures.
2432
2433 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
2434 interactive spec.
2435
2436 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
2437 New byte-codes.
2438 (exec_byte_code): New function extracted from Fbyte_code to handle new
2439 calling convention for byte-code-functions. Add new byte-codes.
2440
2441 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
2442
2443 * alloc.c (Fmake_symbol): Init new `declared_special' field.
2444
2445 2011-03-31 Juanma Barranquero <lekktu@gmail.com>
2446
2447 * xdisp.c (redisplay_internal): Fix prototype.
2448
2449 2011-03-31 Eli Zaretskii <eliz@gnu.org>
2450
2451 * xdisp.c (SCROLL_LIMIT): New macro.
2452 (try_scrolling): Use it when setting scroll_limit.
2453 Limit scrolling to 100 screen lines.
2454 (redisplay_window): Even when falling back on "recentering",
2455 position point in the window according to scroll-conservatively,
2456 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
2457
2458 (try_scrolling): When point is above the window, allow searching
2459 as far as scroll_max, or one screenful, to compute vertical
2460 distance from PT to the scroll margin position. This prevents
2461 try_scrolling from unnecessarily failing when
2462 scroll-conservatively is set to a value slightly larger than the
2463 window height. Clean up the case of PT below the margin at bottom
2464 of window: scroll_max can no longer be INT_MAX. When aggressive
2465 scrolling is in use, don't let point enter the opposite scroll
2466 margin as result of the scroll.
2467 (syms_of_xdisp) <scroll-conservatively>: Document the
2468 threshold of 100 lines for never-recentering scrolling.
2469
2470 2011-03-31 Juanma Barranquero <lekktu@gmail.com>
2471
2472 * dispextern.h (move_it_by_lines):
2473 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
2474 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
2475 (message_log_check_duplicate): Remove parameters `prev_bol' and
2476 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
2477 (redisplay_internal): Remove parameter `preserve_echo_area',
2478 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
2479
2480 * indent.c (Fvertical_motion):
2481 * window.c (window_scroll_pixel_based, Frecenter):
2482 Don't pass `need_y_p' to `move_it_by_lines'.
2483
2484 2011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
2485
2486 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
2487 steal a few bits to be more compact.
2488 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
2489 Remove unneeded casts.
2490
2491 * bytecode.c (Fbyte_code): CAR and CDR can GC.
2492
2493 2011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
2494
2495 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
2496 binding" message (bug#7967).
2497
2498 2011-03-30 Paul Eggert <eggert@cs.ucla.edu>
2499
2500 Fix more problems found by GCC 4.6.0's static checks.
2501
2502 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
2503 Remove unused local var.
2504
2505 * editfns.c (Fmessage_box): Remove unused local var.
2506
2507 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
2508 (note_mode_line_or_margin_highlight, note_mouse_highlight):
2509 Omit unused local vars.
2510 * window.c (shrink_windows): Omit unused local var.
2511 * menu.c (digest_single_submenu): Omit unused local var.
2512 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
2513 Omit unused local var.
2514
2515 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
2516 Don't assume string length fits in int.
2517 (keyremap_step, read_key_sequence): Use size_t for sizes.
2518 (read_key_sequence): Don't check last_real_key_start redundantly.
2519
2520 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
2521 instead of alloca (Bug#8344).
2522
2523 * eval.c (Fbacktrace): Don't assume nargs fits in int.
2524 (Fbacktrace_frame): Don't assume nframes fits in int.
2525
2526 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
2527
2528 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
2529 concerns.
2530
2531 * term.c (produce_glyphless_glyph): Remove unnecessary test.
2532
2533 * cm.c (calccost): Turn while-do into do-while, for clarity.
2534
2535 * keyboard.c (syms_of_keyboard): Use the same style as later
2536 in this function when indexing through an array. This also
2537 works around GCC bug 48267.
2538
2539 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
2540
2541 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
2542
2543 * chartab.c (sub_char_table_ref_and_range): Redo for slight
2544 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
2545
2546 * keyboard.c, keyboard.h (num_input_events): Now size_t.
2547 This avoids undefined behavior on integer overflow, and is a bit
2548 more convenient anyway since it is compared to a size_t variable.
2549
2550 Variadic C functions now count arguments with size_t, not int.
2551 This avoids an unnecessary limitation on 64-bit machines, which
2552 caused (substring ...) to crash on large vectors (Bug#8344).
2553 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
2554 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
2555 All variadic functions and their callers changed accordingly.
2556 (struct gcpro.nvars): Now size_t, not int. All uses changed.
2557 * data.c (arith_driver, float_arith_driver): Likewise.
2558 * editfns.c (general_insert_function): Likewise.
2559 * eval.c (struct backtrace.nargs, interactive_p)
2560 (internal_condition_case_n, run_hook_with_args, apply_lambda)
2561 (funcall_lambda, mark_backtrace): Likewise.
2562 * fns.c (concat): Likewise.
2563 * frame.c (x_set_frame_parameters): Likewise.
2564 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
2565 0 if not found, not -1. All callers changed.
2566
2567 * alloc.c (garbage_collect): Don't assume stack size fits in int.
2568 (stack_copy_size): Now size_t, not int.
2569 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
2570
2571 2011-03-28 Juanma Barranquero <lekktu@gmail.com>
2572
2573 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
2574 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
2575 All callers changed.
2576
2577 * lisp.h (multibyte_char_to_unibyte):
2578 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
2579 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
2580 * character.h (CHAR_TO_BYTE8):
2581 * cmds.c (internal_self_insert):
2582 * editfns.c (general_insert_function):
2583 * keymap.c (push_key_description):
2584 * search.c (Freplace_match):
2585 * xdisp.c (message_dolog, set_message_1): All callers changed.
2586
2587 2011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
2588
2589 * keyboard.c (safe_run_hook_funcall): New function.
2590 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
2591 don't set the hook to nil, but remove the offending function instead.
2592 (Qcommand_hook_internal): Remove, unused.
2593 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
2594 Vcommand_hook_internal.
2595
2596 * eval.c (enum run_hooks_condition): Remove.
2597 (funcall_nil, funcall_not): New functions.
2598 (run_hook_with_args): Call each function through a `funcall' argument.
2599 Remove `cond' argument, now redundant.
2600 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
2601 (Frun_hook_with_args_until_failure): Adjust accordingly.
2602 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
2603
2604 2011-03-28 Juanma Barranquero <lekktu@gmail.com>
2605
2606 * dispextern.h (string_buffer_position): Remove declaration.
2607
2608 * print.c (strout): Remove parameter `multibyte', unused since
2609 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
2610
2611 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
2612 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
2613 All callers changed.
2614
2615 * w32.c (_wsa_errlist): Use braces for struct initializers.
2616
2617 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
2618 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
2619 All callers changed.
2620 (string_buffer_position): Likewise. Also, make static (it's never
2621 used outside xdisp.c).
2622 (cursor_row_p): Remove parameter `w', unused since
2623 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
2624 (decode_mode_spec): Remove parameter `precision', introduced during
2625 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
2626 All callers changed.
2627
2628 2011-03-27 Jan Djärv <jan.h.d@swipnet.se>
2629
2630 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
2631
2632 2011-03-27 Anders Lindgren <andlind@gmail.com>
2633
2634 * nsterm.m (ns_menu_bar_is_hidden): New variable.
2635 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
2636 (ns_update_auto_hide_menu_bar): New functions.
2637 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
2638 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
2639 ns_constrain_all_frames.
2640 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
2641 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
2642
2643 2011-03-27 Jan Djärv <jan.h.d@swipnet.se>
2644
2645 * nsmenu.m (runDialogAt): Remove argument to timer_check.
2646
2647 2011-03-27 Glenn Morris <rgm@gnu.org>
2648
2649 * syssignal.h: Replace RETSIGTYPE with void.
2650 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
2651 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
2652 Replace SIGTYPE with void everywhere.
2653 * s/usg5-4-common.h (SIGTYPE): Remove definition.
2654 * s/template.h (SIGTYPE): Remove commented out definition.
2655
2656 2011-03-26 Eli Zaretskii <eliz@gnu.org>
2657
2658 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
2659 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
2660
2661 2011-03-26 Juanma Barranquero <lekktu@gmail.com>
2662
2663 * w32.c (read_unc_volume): Use parameter `henum', instead of
2664 global variable `wget_enum_handle'.
2665
2666 * keymap.c (describe_vector): Remove parameters `indices' and
2667 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
2668 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
2669
2670 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
2671
2672 * keyboard.c (timer_check): Remove parameter `do_it_now',
2673 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
2674 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
2675 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
2676
2677 * keyboard.c (read_char):
2678 * w32menu.c (w32_menu_display_help):
2679 * xmenu.c (show_help_event, menu_help_callback):
2680 Adjust calls to `show_help_echo'.
2681
2682 * gtkutil.c (xg_maybe_add_timer):
2683 * keyboard.c (readable_events):
2684 * process.c (wait_reading_process_output):
2685 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
2686
2687 * insdel.c (adjust_markers_gap_motion):
2688 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
2689 (gap_left, gap_right): Don't call it.
2690
2691 2011-03-25 Chong Yidong <cyd@stupidchicken.com>
2692
2693 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
2694 incurred during fontification.
2695
2696 2011-03-25 Juanma Barranquero <lekktu@gmail.com>
2697
2698 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
2699 (DEFVAR_PER_BUFFER): Don't pass it.
2700
2701 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
2702 (scrolling_window): Don't pass it.
2703
2704 2011-03-25 Juanma Barranquero <lekktu@gmail.com>
2705
2706 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
2707
2708 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
2709 and `suffix'.
2710 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
2711 of variables specific to SELinux and computation of `encoded_absname'.
2712
2713 * image.c (XPutPixel): Remove unused variable `height'.
2714
2715 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
2716
2717 * unexw32.c (get_section_info): Remove unused variable `section'.
2718
2719 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
2720 (system_process_attributes): Remove unused variable `sess'.
2721 (sys_read): Remove unused variable `err'.
2722
2723 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
2724 (w32_wnd_proc): Remove unused variable `isdead'.
2725 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
2726 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
2727 (x_create_tip_frame): Remove unused variable `tem'.
2728
2729 * w32inevt.c (w32_console_read_socket):
2730 Remove unused variable `no_events'.
2731
2732 * w32term.c (x_draw_composite_glyph_string_foreground):
2733 Remove unused variable `width'.
2734
2735 2011-03-24 Juanma Barranquero <lekktu@gmail.com>
2736
2737 * w32term.c (x_set_glyph_string_clipping):
2738 Don't pass uninitialized region to CombineRgn.
2739
2740 2011-03-23 Juanma Barranquero <lekktu@gmail.com>
2741
2742 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
2743 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
2744 (Fx_close_connection): Remove unused variable `i'.
2745
2746 * w32font.c (w32font_draw): Return number of glyphs.
2747 (w32font_open_internal): Remove unused variable `i'.
2748 (w32font_driver): Add missing initializer.
2749
2750 * w32menu.c (utf8to16): Remove unused variable `utf16'.
2751 (fill_in_menu): Remove unused variable `items_added'.
2752
2753 * w32term.c (last_mouse_press_frame): Remove static global variable.
2754 (w32_clip_to_row): Remove unused variable `f'.
2755 (x_delete_terminal): Remove unused variable `i'.
2756
2757 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
2758 (NOTHING): Remove unused static global variable.
2759 (uniscribe_check_otf): Remove unused variable `table'.
2760 (uniscribe_font_driver): Add missing initializers.
2761
2762 2011-03-23 Julien Danjou <julien@danjou.info>
2763
2764 * term.c (Fsuspend_tty, Fresume_tty):
2765 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
2766 * window.c (temp_output_buffer_show):
2767 * insdel.c (signal_before_change):
2768 * frame.c (Fhandle_switch_frame):
2769 * fileio.c (Fdo_auto_save):
2770 * emacs.c (Fkill_emacs):
2771 * editfns.c (save_excursion_restore):
2772 * cmds.c (internal_self_insert):
2773 * callint.c (Fcall_interactively):
2774 * buffer.c (Fkill_all_local_variables):
2775 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
2776 Use Frun_hooks.
2777 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
2778 unconditionnaly since it does the check itself.
2779
2780 2011-03-23 Paul Eggert <eggert@cs.ucla.edu>
2781
2782 Fix more problems found by GCC 4.5.2's static checks.
2783
2784 * coding.c (encode_coding_raw_text): Avoid unnecessary test
2785 the first time through the loop, since we know p0 < p1 then.
2786 This also avoids a gcc -Wstrict-overflow warning.
2787
2788 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
2789 leading to a memory leak, possible in functions like
2790 load_charset_map_from_file that can allocate an unbounded number
2791 of objects (Bug#8318).
2792
2793 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
2794 that could (at least in theory) be that large.
2795
2796 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
2797 This is less likely to overflow, and avoids undefined behavior if
2798 overflow does occur. All callers changed. Use strtoul to scan
2799 for the unsigned long integer.
2800 (pint2hrstr): Simplify and tune code slightly.
2801 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
2802
2803 * scroll.c (do_scrolling): Work around GCC bug 48228.
2804 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
2805
2806 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
2807 This also avoids a warning with gcc -Wstrict-overflow.
2808 (validate_x_resource_name): Simplify count usage.
2809 This also avoids a warning with gcc -Wstrict-overflow.
2810
2811 * fileio.c (Fcopy_file): Report error if fchown or fchmod
2812 fail (Bug#8306).
2813
2814 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
2815
2816 * process.c (Fmake_network_process): Use socklen_t, not int,
2817 where POSIX says socklen_t is required in portable programs.
2818 This fixes a porting bug on hosts like 64-bit HP-UX, where
2819 socklen_t is wider than int (Bug#8277).
2820 (Fmake_network_process, server_accept_connection):
2821 (wait_reading_process_output, read_process_output):
2822 Likewise.
2823
2824 * process.c: Rename or move locals to avoid shadowing.
2825 (list_processes_1, Fmake_network_process):
2826 (read_process_output_error_handler, exec_sentinel_error_handler):
2827 Rename or move locals.
2828 (Fmake_network_process): Define label "retry_connect" only if needed.
2829 (Fnetwork_interface_info): Fix pointer signedness.
2830 (process_send_signal): Add cast to avoid pointer signedness problem.
2831 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
2832 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
2833
2834 Make tparam.h and terminfo.c consistent.
2835 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
2836 Include tparam.h instead, since it declares them.
2837 * cm.h (PC): Remove extern decl; tparam.h now does this.
2838 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
2839 * terminfo.c: Include tparam.h, to check interfaces.
2840 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
2841 (tparam): Adjust signature to match interface in tparam.h;
2842 this removes some undefined behavior. Check that outstring and len
2843 are zero, which they always are with Emacs.
2844 * tparam.h (PC, BC, UP): New extern decls.
2845
2846 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
2847 (xftfont_open): Rename locals to avoid shadowing.
2848
2849 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
2850 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
2851 (OTF_TAG_SYM): Omit macro if not needed.
2852 (ftfont_list): Remove unused local.
2853 (get_adstyle_property, ftfont_pattern_entity):
2854 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
2855 Rename locals to avoid shadowing.
2856
2857 * xfont.c (xfont_list_family): Mark var as initialized.
2858
2859 * xml.c (make_dom): Now static.
2860
2861 * composite.c (composition_compute_stop_pos): Rename local to
2862 avoid shadowing.
2863 (composition_reseat_it): Remove unused locals.
2864 (find_automatic_composition, composition_adjust_point): Likewise.
2865 (composition_update_it): Mark var as initialized.
2866 (find_automatic_composition): Mark vars as initialized,
2867 with a FIXME (Bug#8290).
2868
2869 character.h: Rename locals to avoid shadowing.
2870 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
2871 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
2872 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
2873 (BUF_DEC_POS): Be more systematic about renaming local temporaries
2874 to avoid shadowing.
2875
2876 * textprop.c (property_change_between_p): Remove; unused.
2877
2878 * intervals.c (interval_start_pos): Now static.
2879
2880 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
2881
2882 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
2883 Rename locals to avoid shadowing.
2884
2885 * sound.c (wav_play, au_play, Fplay_sound_internal):
2886 Fix pointer signedness.
2887 (alsa_choose_format): Remove unused local var.
2888 (wav_play): Initialize a variable to 0, to prevent undefined
2889 behavior (Bug#8278).
2890
2891 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
2892
2893 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
2894
2895 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
2896 clobbering (Bug#8298).
2897 * sysdep.c (sys_subshell): Likewise.
2898 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
2899
2900 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
2901 This should get cleaned up, so that child_setup has the
2902 same signature on all platforms.
2903
2904 * callproc.c (call_process_cleanup): Now static.
2905 (relocate_fd): Rename locals to avoid shadowing.
2906
2907 2011-03-22 Chong Yidong <cyd@stupidchicken.com>
2908
2909 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
2910 not to be necessary, and produces flickering.
2911
2912 2011-03-20 Glenn Morris <rgm@gnu.org>
2913
2914 * config.in: Remove file.
2915
2916 2011-03-20 Juanma Barranquero <lekktu@gmail.com>
2917
2918 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
2919 are now in src/globals.h.
2920 (syms_of_minibuf): Remove spurious & from previous change.
2921
2922 2011-03-20 Leo <sdl.web@gmail.com>
2923
2924 * minibuf.c (completing-read-function): New variable.
2925 (completing-read-default): Rename from completing-read.
2926 (completing-read): Call completing-read-function.
2927
2928 2011-03-19 Juanma Barranquero <lekktu@gmail.com>
2929
2930 * xfaces.c (Fx_load_color_file):
2931 Read color file from absolute filename (bug#8250).
2932
2933 2011-03-19 Juanma Barranquero <lekktu@gmail.com>
2934
2935 * makefile.w32-in: Update dependencies.
2936
2937 2011-03-17 Eli Zaretskii <eliz@gnu.org>
2938
2939 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
2940
2941 2011-03-17 Paul Eggert <eggert@cs.ucla.edu>
2942
2943 Fix more problems found by GCC 4.5.2's static checks.
2944
2945 * process.c (make_serial_process_unwind, send_process_trap):
2946 (sigchld_handler): Now static.
2947
2948 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
2949 That way, the code declares only the vars that it needs.
2950 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
2951 * s/cygwin.h (PTY_ITERATION): Likewise.
2952 * s/darwin.h (PTY_ITERATION): Likewise.
2953 * s/gnu-linux.h (PTY_ITERATION): Likewise.
2954
2955 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
2956 * process.c (allocate_pty): Don't declare stb unless it's needed.
2957
2958 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
2959 (CONSTANTLIM): Remove; unused.
2960 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
2961 Define only if needed.
2962
2963 * unexelf.c (unexec): Name an expression,
2964 to avoid gcc -Wbad-function-cast warning.
2965 Use a different way to cause a compilation error if anyone uses
2966 n rather than nn, a way that does not involve shadowing.
2967 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
2968
2969 * deps.mk (unexalpha.o): Remove; unused.
2970
2971 New file unexec.h, the (simple) interface for unexec (Bug#8267).
2972 * unexec.h: New file.
2973 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
2974 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
2975 Depend on unexec.h.
2976 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
2977 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
2978 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
2979 Change as necessary to match prototype in unexec.h.
2980
2981 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
2982 shadowing.
2983 (back_comment, skip_chars): Mark vars as initialized.
2984
2985 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
2986 Rename locals to avoid shadowing.
2987
2988 * lread.c (read1): Rewrite so as not to use empty "else".
2989 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
2990
2991 * print.c (Fredirect_debugging_output): Fix pointer signedess.
2992
2993 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
2994 warning when compiling print.c.
2995
2996 * font.c (font_unparse_fcname): Abort in an "impossible" situation
2997 instead of using an uninitialized var.
2998 (font_sort_entities): Mark var as initialized.
2999
3000 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
3001
3002 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
3003 pointers to constants.
3004 (font_parse_fcname): Remove unused vars.
3005 (font_delete_unmatched): Now static.
3006 (font_get_spec): Remove; unused.
3007 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
3008 (font_update_drivers, Ffont_get_glyphs, font_add_log):
3009 Rename or move locals to avoid shadowing.
3010
3011 * fns.c (require_nesting_list, require_unwind): Now static.
3012 (Ffillarray): Rename locals to avoid shadowing.
3013
3014 * floatfns.c (domain_error2): Define only if needed.
3015 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
3016
3017 * alloc.c (mark_backtrace): Move decl from here ...
3018 * lisp.h: ... to here, so that it can be checked.
3019
3020 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
3021 (Fdefvar): Rewrite so as not to use empty "else".
3022 (lisp_indirect_variable): Name an expression,
3023 to avoid gcc -Wbad-function-cast warning.
3024 (Fdefvar): Rename locals to avoid shadowing.
3025
3026 * callint.c (quotify_arg, quotify_args): Now static.
3027 (Fcall_interactively): Rename locals to avoid shadowing.
3028 Use const pointer when appropriate.
3029
3030 * lisp.h (get_system_name, get_operating_system_release):
3031 Move decls here, to check interfaces.
3032 * process.c (get_operating_system_release): Move decl to lisp.h.
3033 * xrdb.c (get_system_name): Likewise.
3034 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
3035 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
3036 some of which prompt warnings from gcc -Wbad-function-cast.
3037 (Fformat_time_string, Fencode_time, Finsert_char):
3038 (Ftranslate_region_internal, Fformat):
3039 Rename or remove local vars to avoid shadowing.
3040 (Ftranslate_region_internal): Mark var as initialized.
3041
3042 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
3043 avoid shadowing.
3044
3045 * lisp.h (eassert): Check that the argument compiles, even if
3046 ENABLE_CHECKING is not defined.
3047
3048 * data.c (Findirect_variable): Name an expression, to avoid
3049 gcc -Wbad-function-cast warning.
3050 (default_value, arithcompare, arith_driver, arith_error): Now static.
3051 (store_symval_forwarding): Rename local to avoid shadowing.
3052 (Fmake_variable_buffer_local, Fmake_local_variable):
3053 Mark variables as initialized.
3054 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
3055
3056 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
3057 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
3058 Rename locals to avoid shadowing.
3059 (mark_stack): Move local variables into the #ifdef region where
3060 they're used.
3061 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
3062 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
3063 needed otherwise.
3064 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
3065 (GC_STRING_CHARS): Remove; not used.
3066 (Fmemory_limit): Cast sbrk's returned value to char *.
3067
3068 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
3069 avoids undefined behavior in theory.
3070
3071 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
3072
3073 Use functions, not macros, for up- and down-casing (Bug#8254).
3074 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
3075 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
3076 to use the following functions instead of these macros.
3077 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
3078 EMACS_INT, since callers assume the returned value fits in int.
3079 (upcase1): Likewise, for UPCASE_TABLE.
3080 (uppercasep, lowercasep, upcase): New static inline functions.
3081 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
3082 the race-condition problem in the old DOWNCASE.
3083
3084 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
3085 Rename locals to avoid shadowing.
3086 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
3087 (regex_compile, re_search_2, re_match_2_internal):
3088 Remove unused local vars.
3089 (FREE_VAR): Rewrite so as not to use empty "else",
3090 which gcc can warn about.
3091 (regex_compile, re_match_2_internal): Mark locals as initialized.
3092 (RETALLOC_IF): Define only if needed.
3093 (WORDCHAR_P): Likewise. This one is never needed, but is used
3094 only in a comment talking about a compiler bug, so put inside
3095 the #if 0 of that comment.
3096 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
3097 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
3098 Remove; unused.
3099
3100 * search.c (boyer_moore): Rename locals to avoid shadowing.
3101 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
3102 (PREV_CHAR_BOUNDARY): Likewise.
3103
3104 * search.c (simple_search): Remove unused var.
3105
3106 * dired.c (compile_pattern): Move decl from here ...
3107 * lisp.h: ... to here, so that it can be checked.
3108 (struct re_registers): New forward decl.
3109
3110 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
3111
3112 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
3113 All uses changed.
3114 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
3115 Rename locals to avoid shadowing.
3116 (Fvertical_motion): Mark locals as initialized.
3117
3118 * casefiddle.c (casify_object, casify_region): Now static.
3119 (casify_region): Mark local as initialized.
3120
3121 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
3122
3123 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
3124 New macros, so that the caller can use some names other than
3125 gcpro1, gcpro2, etc.
3126 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
3127 of the new macros.
3128 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
3129 argument, for consistency with GCPRO2_VAR, etc: it is now the
3130 prefix of the variable, not the variable itself. All uses
3131 changed.
3132 * dired.c (directory_files_internal, file_name_completion):
3133 Rename locals to avoid shadowing.
3134
3135 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
3136 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
3137 dired.c's scmp function, had undefined behavior.
3138 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
3139 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
3140 * buffer.h: ... to here, because these macros use current_buffer,
3141 and the new implementation with inline functions needs to have
3142 current_buffer in scope now, rather than later when the macros
3143 are used.
3144 (downcase, upcase1): New static inline functions.
3145 (DOWNCASE, UPCASE1): Reimplement using these functions.
3146 This avoids undefined behavior in expressions like
3147 DOWNCASE (x) == DOWNCASE (y), which previously suffered
3148 from race conditions in accessing the global variables
3149 case_temp1 and case_temp2.
3150 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
3151 * lisp.h (case_temp1, case_temp2): Remove their decls.
3152 * character.h (ASCII_CHAR_P): Move from here ...
3153 * lisp.h: ... to here, so that the inline functions mentioned
3154 above can use them.
3155
3156 * dired.c (directory_files_internal_unwind): Now static.
3157
3158 * fileio.c (file_name_as_directory, directory_file_name):
3159 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
3160 Now static.
3161 (file_name_as_directory): Use const pointers when appropriate.
3162 (Fexpand_file_name): Likewise. In particular, newdir might
3163 point at constant storage, so make it a const pointer.
3164 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
3165 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
3166 signedness issues.
3167 (Fset_file_times, Finsert_file_contents, auto_save_error):
3168 Rename locals to avoid shadowing.
3169
3170 * minibuf.c (choose_minibuf_frame_1): Now static.
3171 (Ftry_completion, Fall_completions): Rename or remove locals
3172 to avoid shadowing.
3173
3174 * marker.c (bytepos_to_charpos): Remove; unused.
3175
3176 * lisp.h (verify_bytepos, count_markers): New decls,
3177 so that gcc does not warn that these functions aren't declared.
3178
3179 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
3180 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
3181 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
3182 (copy_text): Remove unused local var.
3183
3184 * filelock.c (within_one_second): Now static.
3185 (lock_file_1): Rename local to avoid shadowing.
3186
3187 * buffer.c (fix_overlays_before): Mark locals as initialized.
3188 (fix_start_end_in_overlays): Likewise. This function should be
3189 simplified by using pointers-to-pointers, but that's a different
3190 matter.
3191 (switch_to_buffer_1): Now static.
3192 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
3193 (report_overlay_modification): Rename locals to avoid shadowing.
3194
3195 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
3196 Fix pointer signedness issue.
3197 (sys_subshell): Mark local as volatile if checking for lint,
3198 to suppress a gcc -Wclobbered warning that does not seem to be right.
3199 (MAXPATHLEN): Define only if needed.
3200
3201 * process.c (serial_open, serial_configure): Move decls from here ...
3202 * systty.h: ... to here, so that they can be checked.
3203
3204 * fns.c (get_random, seed_random): Move extern decls from here ...
3205 * lisp.h: ... to here, so that they can be checked.
3206
3207 * sysdep.c (reset_io): Now static.
3208 (wait_for_termination_signal): Remove; unused.
3209
3210 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
3211 (copy_keymap_item, append_key, push_text_char_description):
3212 Now static.
3213 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
3214 (DENSE_TABLE_SIZE): Remove; unused.
3215 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
3216 (describe_map_tree):
3217 Rename locals to avoid shadowing.
3218
3219 * keyboard.c: Declare functions static if they are not used elsewhere.
3220 (echo_char, echo_dash, cmd_error, top_level_2):
3221 (poll_for_input, handle_async_input): Now static.
3222 (read_char, kbd_buffer_get_event, make_lispy_position):
3223 (make_lispy_event, make_lispy_movement, apply_modifiers):
3224 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
3225 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
3226 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
3227 (read_key_sequence, read_char): Mark locals as initialized.
3228 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
3229
3230 * keyboard.h (make_ctrl_char): New decl.
3231 (mark_kboards): Move decl here ...
3232 * alloc.c (mark_kboards): ... from here.
3233
3234 * lisp.h (force_auto_save_soon): New decl.
3235
3236 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
3237 (DEFINE_DUMMY_FUNCTION): New macro.
3238 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
3239 Use it.
3240 (main): Add casts to avoid warnings
3241 if GCC considers string literals to be constants.
3242
3243 * lisp.h (fatal_error_signal): Add decl, since it's exported.
3244
3245 * dbusbind.c: Pointer signedness fixes.
3246 (xd_signature, xd_append_arg, xd_initialize):
3247 (Fdbus_call_method, Fdbus_call_method_asynchronously):
3248 (Fdbus_method_return_internal, Fdbus_method_error_internal):
3249 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
3250 (Fdbus_register_signal): Use SSDATA when the context wants char *.
3251
3252 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
3253 if GCC considers string literals to be constants.
3254 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
3255
3256 2011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
3257
3258 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
3259 (print_preprocess, print_object): New macro to fix last change.
3260
3261 * print.c (print_preprocess): Don't forget font objects.
3262
3263 2011-03-16 Juanma Barranquero <lekktu@gmail.com>
3264
3265 * emacs.c (USAGE3): Doc fixes.
3266
3267 2011-03-15 Andreas Schwab <schwab@linux-m68k.org>
3268
3269 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
3270 structure.
3271
3272 2011-03-14 Juanma Barranquero <lekktu@gmail.com>
3273
3274 * lisp.h (VWindow_system, Qfile_name_history):
3275 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
3276 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
3277 (w32_system_caret_x, w32_system_caret_y): Declare extern.
3278
3279 * w32select.c: Don't #include "keyboard.h".
3280 (run_protected): Add extern declaration for waiting_for_input.
3281
3282 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
3283 * w32console.c (detect_input_pending, read_input_pending)
3284 (encode_terminal_code):
3285 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
3286 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
3287 (w32_system_caret_y, Qfile_name_history):
3288 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
3289 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
3290 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
3291 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
3292 * w32proc.c (Qlocal, report_file_error):
3293 * w32term.c (Vwindow_system, updating_frame):
3294 * w32uniscribe.c (initialized, uniscribe_font_driver):
3295 Remove unneeded extern declarations.
3296
3297 2011-03-14 Chong Yidong <cyd@stupidchicken.com>
3298
3299 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
3300
3301 2011-03-13 Chong Yidong <cyd@stupidchicken.com>
3302
3303 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
3304 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
3305 These macros can no longer be used for assignment.
3306
3307 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
3308 Assign struct members directly, instead of using BUF_BEGV etc.
3309 (record_buffer_markers, fetch_buffer_markers): New functions for
3310 recording and fetching special buffer markers.
3311 (set_buffer_internal_1, set_buffer_temp): Use them.
3312
3313 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
3314
3315 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
3316
3317 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
3318 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
3319
3320 * xdisp.c (hscroll_window_tree):
3321 (reconsider_clip_changes): Use PT instead of BUF_PT.
3322
3323 2011-03-13 Eli Zaretskii <eliz@gnu.org>
3324
3325 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
3326 $(EMACS_ROOT)/lib/intprops.h.
3327
3328 2011-03-13 Paul Eggert <eggert@cs.ucla.edu>
3329
3330 Fix more problems found by GCC 4.5.2's static checks.
3331
3332 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
3333 to unsigned char * to avoid compiler diagnostic.
3334 (xg_free_frame_widgets): Make it clear that a local variable is
3335 needed only if USE_GTK_TOOLTIP.
3336 (gdk_window_get_screen): Make it clear that this macro is needed
3337 only if USE_GTK_TOOLTIP.
3338 (int_gtk_range_get_value): New function, which avoids a diagnostic
3339 from gcc -Wbad-function-cast.
3340 (xg_set_toolkit_scroll_bar_thumb): Use it.
3341 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
3342 diagnostic from gcc -Wbad-function-cast.
3343 (get_utf8_string, xg_get_file_with_chooser):
3344 Rename locals to avoid shadowing.
3345 (create_dialog): Move locals to avoid shadowing.
3346
3347 * xgselect.c (xg_select): Remove unused var.
3348
3349 * image.c (four_corners_best): Mark locals as initialized.
3350 (gif_load): Initialize transparent_p to zero (Bug#8238).
3351 Mark another local as initialized.
3352 (my_png_error, my_error_exit): Mark with NO_RETURN.
3353
3354 * image.c (clear_image_cache): Now static.
3355 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
3356 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
3357 (x_edge_detection): Remove unnecessary cast that
3358 gcc -Wbad-function-cast diagnoses.
3359 (gif_load): Fix pointer signedness.
3360 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
3361 (jpeg_load, gif_load): Rename locals to avoid shadowing.
3362
3363 2011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3364
3365 Improve quality of tests for time stamp overflow.
3366 For example, without this patch (encode-time 0 0 0 1 1
3367 1152921504606846976) returns the obviously-bogus value (-948597
3368 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
3369 reports time overflow. See
3370 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
3371 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
3372 * editfns.c: Include limits.h and intprops.h.
3373 (TIME_T_MIN, TIME_T_MAX): New macros.
3374 (time_overflow): Move earlier, to before first use.
3375 (hi_time, lo_time): New functions, for an accurate test for
3376 out-of-range times.
3377 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
3378 (Fget_internal_run_time): Don't assume time_t fits in int.
3379 (make_time): Use list2 instead of Fcons twice.
3380 (Fdecode_time): More accurate test for out-of-range times.
3381 (check_tm_member): New function.
3382 (Fencode_time): Use it, to test for out-of-range times.
3383 (lisp_time_argument): Don't rely on undefined left-shift and
3384 right-shift behavior when checking for time stamp overflow.
3385
3386 * editfns.c (time_overflow): New function, refactoring common code.
3387 (Fformat_time_string, Fdecode_time, Fencode_time):
3388 (Fcurrent_time_string): Use it.
3389
3390 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
3391 * dired.c (make_time): Move to ...
3392 * editfns.c (make_time): ... here.
3393 * systime.h: Note the move.
3394
3395 2011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3396
3397 * fringe.c (update_window_fringes): Remove unused variables.
3398
3399 * unexmacosx.c (copy_data_segment): Also copy __got section.
3400 (Bug#8223)
3401
3402 2011-03-12 Eli Zaretskii <eliz@gnu.org>
3403
3404 * termcap.c [MSDOS]: Include "msdos.h".
3405 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
3406 Constify `char *' arguments and their references according to
3407 prototypes in tparam.h.
3408
3409 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
3410
3411 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
3412 Adapt all references accordingly.
3413
3414 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
3415
3416 2011-03-11 Tom Tromey <tromey@redhat.com>
3417
3418 * buffer.c (syms_of_buffer): Remove obsolete comment.
3419
3420 2011-03-11 Eli Zaretskii <eliz@gnu.org>
3421
3422 * termhooks.h (encode_terminal_code): Declare prototype.
3423
3424 * msdos.c (encode_terminal_code): Don't declare prototype.
3425
3426 * term.c (encode_terminal_code): Now external again, used by
3427 w32console.c and msdos.c.
3428
3429 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
3430 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
3431
3432 2011-03-11 Paul Eggert <eggert@cs.ucla.edu>
3433
3434 Fix some minor problems found by GCC 4.5.2's static checks.
3435
3436 * fringe.c (update_window_fringes): Mark locals as initialized
3437 (Bug#8227).
3438 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
3439
3440 * alloc.c (mark_fringe_data): Move decl from here ...
3441 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
3442 to check its interface.
3443 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
3444
3445 * fontset.c (free_realized_fontset): Now static.
3446 (Fset_fontset_font): Rename local to avoid shadowing.
3447 (fontset_font): Mark local as initialized.
3448 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
3449
3450 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
3451
3452 * xselect.c (x_disown_buffer_selections): Remove; not used.
3453 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
3454 (x_own_selection, Fx_disown_selection_internal): Rename locals
3455 to avoid shadowing.
3456 (x_handle_dnd_message): Remove local to avoid shadowing.
3457
3458 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
3459 so that the caller can use some name other than gcpro1.
3460 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
3461 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
3462 (Fx_backspace_delete_keys_p):
3463 Use them to avoid shadowing, and rename vars to avoid shadowing.
3464 (x_decode_color, x_set_name, x_window): Now static.
3465 (Fx_create_frame): Add braces to silence GCC warning.
3466 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
3467 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
3468 Remove unused locals.
3469 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
3470 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
3471 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
3472 macros.
3473
3474 * xterm.h (x_mouse_leave): New decl.
3475
3476 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
3477 Remove unused functions.
3478 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
3479 (x_calc_absolute_position): Now static.
3480 (XTread_socket): Don't define label "out" unless it's used.
3481 Don't declare local "event" unless it's used.
3482 (x_iconify_frame, x_free_frame_resources): Don't declare locals
3483 unless they are used.
3484 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
3485 (x_fatal_error_signal): Remove; not used.
3486 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
3487 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
3488 (x_error_catcher, x_connection_closed, x_error_handler):
3489 (x_error_quitter, xembed_send_message, x_iconify_frame):
3490 (my_log_handler): Rename locals to avoid shadowing.
3491 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
3492 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
3493
3494 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
3495 Rename or move locals to avoid shadowing.
3496 (tty_defined_color, merge_face_heights): Now static.
3497 (free_realized_faces_for_fontset): Remove; not used.
3498 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
3499 does not deduce is never used uninitialized.
3500 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
3501 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
3502
3503 * terminal.c (store_terminal_param): Now static.
3504
3505 * xmenu.c (menu_highlight_callback): Now static.
3506 (set_frame_menubar): Remove unused local.
3507 (xmenu_show): Rename parameter to avoid shadowing.
3508 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
3509 since they might point to immutable storage.
3510 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
3511 since it's unused otherwise.
3512
3513 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
3514 Add a FIXME, since the code still doesn't look right. (Bug#8215)
3515 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
3516 avoids a gcc -Wuninitialized diagnostic.
3517 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
3518 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
3519 does not deduce are never used uninitialized.
3520
3521 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
3522
3523 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
3524 * window.c (window_loop, size_window):
3525 (run_window_configuration_change_hook, enlarge_window): Likewise.
3526
3527 * window.c (display_buffer): Now static.
3528 (size_window): Mark variables that gcc -Wuninitialized
3529 does not deduce are never used uninitialized.
3530 * window.h (check_all_windows): New decl, to forestall
3531 gcc -Wmissing-prototypes diagnostic.
3532 * dispextern.h (bidi_dump_cached_states): Likewise.
3533
3534 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
3535 shadowing.
3536 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
3537 Include <limits.h>.
3538 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
3539 and to avoid gcc -Wuninitialized warning.
3540 (load_charset_map): Mark variables that gcc -Wuninitialized
3541 does not deduce are never used uninitialized.
3542 (load_charset): Abort instead of using uninitialized var (Bug#8229).
3543
3544 * coding.c (coding_set_source, coding_set_destination):
3545 Use "else { /* comment */ }" rather than "else /* comment */;"
3546 for clarity, and to avoid gcc -Wempty-body warning.
3547 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
3548 a block, when the outer 'i' will do.
3549 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
3550 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
3551 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
3552 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
3553 (Fdecode_sjis_char, Fdefine_coding_system_internal):
3554 Rename locals to avoid shadowing.
3555 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
3556 * coding.c (emacs_mule_char, encode_invocation_designation):
3557 Now static, since they're not used elsewhere.
3558 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
3559 (decode_coding_object, encode_coding_object, detect_coding_system):
3560 (decode_coding_emacs_mule): Mark variables that gcc
3561 -Wuninitialized does not deduce are never used uninitialized.
3562 (detect_coding_iso_2022): Initialize a local variable that might
3563 be used uninitialized. Leave a FIXME because it's not clear that
3564 this initialization is needed. (Bug#8211)
3565 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
3566 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
3567 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
3568 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
3569 Remove unused macros.
3570
3571 * category.c (hash_get_category_set): Remove unused local var.
3572 (copy_category_table): Now static, since it's not used elsewhere.
3573 * character.c (string_count_byte8): Likewise.
3574
3575 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
3576 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
3577
3578 * chartab.c (copy_sub_char_table): Now static, since it's not used
3579 elsewhere.
3580 (sub_char_table_ref_and_range, char_table_ref_and_range):
3581 Rename locals to avoid shadowing.
3582 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
3583
3584 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
3585 (BIDI_BOB): Remove unused macro.
3586
3587 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
3588 deduce are never used uninitialized.
3589 * term.c (encode_terminal_code): Likewise.
3590
3591 * term.c (encode_terminal_code): Now static. Remove unused local.
3592
3593 * tparam.h: New file.
3594 * term.c, tparam.h: Include it.
3595 * deps.mk (term.o, tparam.o): Depend on tparam.h.
3596 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
3597 Move these decls to tparam.h, and make them agree with what
3598 is actually in tparam.c. The previous trick of using incompatible
3599 decls in different modules does not conform to the C standard.
3600 All callers of tparam changed to use tparam's actual API.
3601 * tparam.c (tparam1, tparam, tgoto):
3602 Use const pointers where appropriate.
3603
3604 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
3605 * cm.h (struct cm): Likewise.
3606 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
3607 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
3608 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
3609 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
3610 (turn_on_face, init_tty): Likewise.
3611 * termchar.h (struct tty_display_info): Likewise.
3612
3613 * term.c (term_mouse_position): Rename local to avoid shadowing.
3614
3615 * alloc.c (mark_ttys): Move decl from here ...
3616 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
3617
3618 2011-03-11 Andreas Schwab <schwab@linux-m68k.org>
3619
3620 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
3621
3622 2011-03-09 Juanma Barranquero <lekktu@gmail.com>
3623
3624 * search.c (compile_pattern_1): Remove argument regp, unused since
3625 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
3626 (compile_pattern): Don't pass it.
3627
3628 2011-03-08 Jan Djärv <jan.h.d@swipnet.se>
3629
3630 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
3631 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
3632 for ! HAVE_GTK3.
3633 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
3634
3635 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
3636
3637 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
3638 gdk_window_get_screen, gdk_window_get_geometry,
3639 gdk_x11_window_lookup_for_display and GDK_KEY_g.
3640 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
3641 (xg_get_pixbuf_from_pixmap): New function.
3642 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
3643 to Pixmap, take frame as parameter, remove GdkColormap parameter.
3644 Call xg_get_pixbuf_from_pixmap instead of
3645 gdk_pixbuf_get_from_drawable.
3646 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
3647 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
3648 (xg_check_special_colors): Use GtkStyleContext and its functions
3649 for HAVE_GTK3.
3650 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
3651 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
3652 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
3653 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
3654 Call gtk_widget_get_preferred_size.
3655 (xg_frame_resized): gdk_window_get_geometry only takes 5
3656 parameters.
3657 (xg_win_to_widget, xg_event_is_for_menubar):
3658 Call gdk_x11_window_lookup_for_display.
3659 (xg_set_widget_bg): New function.
3660 (delete_cb): New function.
3661 (xg_create_frame_widgets): Connect delete-event to delete_cb.
3662 Call xg_set_widget_bg. Only set backgrund pixmap for ! HAVE_GTK3
3663 (xg_set_background_color): Call xg_set_widget_bg.
3664 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
3665 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
3666 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
3667 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
3668 if ! HAVE_GTK3.
3669 (update_frame_tool_bar): Call gtk_widget_hide.
3670 (xg_initialize): Use GDK_KEY_g.
3671
3672 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
3673 if ! HAVE_GTK3
3674 (x_session_initialize): Call gdk_x11_set_sm_client_id.
3675
3676 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
3677 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
3678 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
3679
3680 2011-03-08 Juanma Barranquero <lekktu@gmail.com>
3681
3682 * w32xfns.c (select_palette): Check success of RealizePalette against
3683 GDI_ERROR, not zero.
3684
3685 See ChangeLog.11 for earlier changes.
3686
3687 ;; Local Variables:
3688 ;; coding: utf-8
3689 ;; End:
3690
3691 Copyright (C) 2011 Free Software Foundation, Inc.
3692
3693 This file is part of GNU Emacs.
3694
3695 GNU Emacs is free software: you can redistribute it and/or modify
3696 it under the terms of the GNU General Public License as published by
3697 the Free Software Foundation, either version 3 of the License, or
3698 (at your option) any later version.
3699
3700 GNU Emacs is distributed in the hope that it will be useful,
3701 but WITHOUT ANY WARRANTY; without even the implied warranty of
3702 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3703 GNU General Public License for more details.
3704
3705 You should have received a copy of the GNU General Public License
3706 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.