Be more systematic about _setjmp vs setjmp.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
af26b72c
PE
12012-09-04 Paul Eggert <eggert@cs.ucla.edu>
2
3 Be more systematic about _setjmp vs setjmp.
4 * alloc.c (test_setjmp, mark_stack):
5 * image.c (PNG_LONGJMP) [PNG_LIBPNG_VER < 10500]:
6 (PNG_JMPBUF) [! (PNG_LIBPNG_VER < 10500)]:
7 (png_load, my_error_exit, jpeg_load):
8 * process.c (send_process_trap, send_process):
9 Uniformly prefer _setjmp and _longjmp to setjmp and longjmp.
10 The underscored versions are up to 30x faster on some hosts.
11 Formerly, the code used setjmp+longjmp sometimes and
12 _setjmp+_longjmp at other times, with no particular reason to
13 prefer setjmp+longjmp.
14
26d4541d
PE
152012-09-03 Paul Eggert <eggert@cs.ucla.edu>
16
d42f4f0f 17 Fix minor problem found by static checking.
26d4541d 18 * buffer.c (Fdelete_all_overlays): Return nil.
26d4541d 19
c5e28e39
MR
202012-09-03 Martin Rudalics <rudalics@gmx.at>
21
22 * buffer.c (Fdelete_all_overlays): New function.
23
3eab3ca9
CY
242012-09-03 Chong Yidong <cyd@gnu.org>
25
26 * gtkutil.c: Add extern decl for Qxft.
27
c04889f8
PE
282012-09-02 Paul Eggert <eggert@cs.ucla.edu>
29
1882aa38
PE
30 * emacs.c, eval.c: Use bool for boolean.
31 * emacs.c (initialized, inhibit_window_system, running_asynch_code):
32 (malloc_using_checking) [DOUG_LEA_MALLOC]:
33 (display_arg) [HAVE_X_WINDOWS || HAVE_NS]:
34 (noninteractive, no_site_lisp, fatal_error_in_progress, argmatch)
35 (main, decode_env_path, Fdaemon_initialized):
36 * eval.c (call_debugger, Finteractive_p, interactive_p):
37 (unwind_to_catch, Fsignal, wants_debugger, skip_debugger)
38 (maybe_call_debugger, Fbacktrace):
39 * process.c (read_process_output, exec_sentinel):
40 Use bool for booleans.
41 * emacs.c (shut_down_emacs): Omit unused boolean argument NO_X.
42 All callers changed.
43 * eval.c (interactive_p): Omit always-true boolean argument
44 EXCLUDE_SUBRS_P. All callers changed.
45 * dispextern.h, lisp.h: Reflect above API changes.
46 * firstfile.c (dummy): Use the address of 'main', whose signature
47 won't change, instead of the address of 'initialize', whose
48 signature just changed from int to bool.
49 * lisp.h (fatal_error_in_progress): New decl of boolean, moved here ...
50 * msdos.c (fatal_error_in_progress): ... from here.
51 * xdisp.c (redisplaying_p): Now a boolean. Set it to 1 instead
52 of incrementing it.
53 (redisplay_internal, unwind_redisplay): Simply clear
54 REDISPLAYING_P when unwinding, instead of saving its previous,
55 always-false value and then restoring it.
56
a411ac43
PE
57 Clean up some extern decls.
58 Mostly, this hoists extern decls out of .c files and into .h files.
59 That way, we're more likely to catch errors if the interfaces change.
60 * alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not
61 declare xg_mark_data.
62 * dispextern.h (x_frame_parm_handlers):
63 * font.h (Qxft):
64 * lisp.h (Qlexical_binding, Qinternal_interpreter_environment)
65 (Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold)
66 (Qultra_bold, Qoblique, Qitalic):
67 Move extern decl here from .c file.
68 * alloc.c (xg_mark_data) [USE_GTK]:
69 * doc.c (Qclosure):
70 * eval.c (Qlexical_binding):
71 * fns.c (time) [!HAVE_UNISTD_H]:
72 * gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light)
73 (Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic):
74 * image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]:
75 * lread.c (Qinternal_interpreter_environment):
76 * minibuf.c (Qbuffer):
77 * process.c (QCfamily, QCfilter):
78 * widget.c (free_frame_faces):
79 * xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]:
80 * xfont.c (x_clear_errors):
81 * xterm.c (x_frame_parm_handlers):
82 Remove now-redundant extern decls.
83 * keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]:
84 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic):
85 Now static.
86 * xfaces.c: Remove unnecessary static decls.
87 * xterm.c (updating_frame): Remove decl of nonexistent object.
88
c04889f8
PE
89 * Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS)
90 when building globals.h, as the objects that are not built on
91 this host are not needed to compile C files on this host.
92
8b339673
JD
932012-09-02 Jan Djärv <jan.h.d@swipnet.se>
94
95 * gtkutil.h: Remove prototype for x_wm_set_size_hint.
96
97 * frame.h: Add missing prototype for x_wm_set_size_hint.
98
a08d4ba7
PE
992012-09-02 Paul Eggert <eggert@cs.ucla.edu>
100
101 * doc.c, editfns.c, insdel.c, intervals.c: Use bool for boolean.
102 * doc.c (read_bytecode_char, get_doc_string, reread_doc_file)
103 (Fdocumentation, Fdocumentation_property, Fsnarf_documentation)
104 (Fsubstitute_command_keys):
105 * editfns.c (region_limit, find_field, Fconstrain_to_field)
106 (save_excursion_save, save_excursion_restore)
107 (disassemble_lisp_time, decode_time_components, emacs_nmemftime)
108 (format_time_string, general_insert_function)
109 (make_buffer_string, make_buffer_string_both)
110 (Fsubst_char_in_region, Ftranslate_region_internal, Fformat):
111 * insdel.c (check_markers, gap_left, adjust_markers_for_insert)
112 (copy_text, insert_1, insert_1_both, insert_from_string)
113 (insert_from_string_before_markers, insert_from_string_1)
114 (insert_from_buffer, insert_from_buffer_1, replace_range)
115 (replace_range_2, del_range_1, del_range_byte, del_range_both)
116 (del_range_2, modify_region):
117 * intervals.c (intervals_equal, balance_possible_root_interval)
118 (adjust_intervals_for_insertion, merge_properties_sticky)
119 (graft_intervals_into_buffer, lookup_char_property)
120 (adjust_for_invis_intang, set_point_both)
121 (get_property_and_range, compare_string_intervals)
122 (set_intervals_multibyte_1, set_intervals_multibyte):
123 * keyboard.c (decode_timer):
124 Use bool for boolean.
125 * intervals.h, lisp.h, systime.h: Reflect above API changes.
126 * editfns.c (struct info): Use 1-bit unsigned bitfields for booleans.
127
48c948de
CY
1282012-09-02 Chong Yidong <cyd@gnu.org>
129
130 * keymap.c (push_key_description): Print M-TAB as C-M-i
131 (Bug#11758).
132
6c49a40b
JB
1332012-09-02 Juanma Barranquero <lekktu@gmail.com>
134
135 * makefile.w32-in (CCL_H, W32FONT_H): New macros.
136 (ATIMER_H, FONT_H, $(BLD)/alloc.$(O), $(BLD)/callproc.$(O))
137 ($(BLD)/editfns.$(O), $(BLD)/ccl.$(O), $(BLD)/chartab.$(O))
138 ($(BLD)/coding.$(O), $(BLD)/sysdep.$(O), $(BLD)/fontset.$(O))
139 ($(BLD)/sysdep.$(O), $(BLD)/w32fns.$(O), $(BLD)/keyboard.$(O))
140 ($(BLD)/w32term.$(O), $(BLD)/w32menu.$(O), $(BLD)/process.$(O))
141 ($(BLD)/w32font.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
142
4dfbd238
EZ
1432012-09-01 Eli Zaretskii <eliz@gnu.org>
144
7e510e28
EZ
145 * w32uniscribe.c (uniscribe_shape): Handle correctly the case of
146 more than one grapheme cluster passed to the shaper: compute the
147 offset adjustment values separately for each cluster. (Bug#11860)
148
4dfbd238
EZ
149 * image.c: Restore mistakenly removed inclusion of w32.h. Without
150 it, GCC doesn't see prototypes of w32_delayed_load, and complains
151 about implicit conversions from integer to pointer.
152
86571ae0
DC
1532012-09-01 Daniel Colascione <dancol@dancol.org>
154
155 * w32fns.c (x_display_info_for_name): Prevent crash if w32 window
156 system used too early.
157
0e23ef9d
PE
1582012-09-01 Paul Eggert <eggert@cs.ucla.edu>
159
160 Better seed support for (random).
161 * emacs.c (main): Call init_random.
162 * fns.c (Frandom): Set the seed from a string argument, if given.
163 Remove long-obsolete Gentzel cruft.
164 * lisp.h, sysdep.c (seed_random): Now takes address and size, not long.
165 (init_random): New function.
166
17a2cbbd
DC
1672012-09-01 Daniel Colascione <dancol@dancol.org>
168
169 * xterm.h: Add header guards. Declare x_menubar_window_to_frame.
170 Remove x_set_frame_alpha, x_bitmap_icon, x_make_frame_visible,
171 x_make_frame_invisible, x_iconify_frame, x_free_frame_resources,
172 x_wm_set_size_hint, x_query_colors, x_real_positions,
173 x_set_menu_bar_lines, x_char_width, x_char_height, x_sync,
174 x_set_tool_bar_lines, x_activate_menubar, and free_frame_menubar,
175 all of which have been moved to common code.
176
177 * xfaces.c: Include TERM_HEADER instead of listing all possible
178 window-system headers.
179
180 * w32xfns.c (x_sync): Correct definition of x_sync (a no-op here)
181 to match header.
182
183 * w32term.h (FRAME_X_WINDOW): Use FRAME_W32_WINDOW instead of
184 directly accessing frame internals.
185
f18cbb28 186 * w32font.h: Include font.h. Define syms_of_w32font and
17a2cbbd
DC
187 globals_of_w32font.
188
189 * process.c: Include TERM_HEADER instead of listing all possible
190 window-system headers.
191
192 * nsterm.h: Remove declarations now in frame.h. Define
193 FRAME_X_SCREEN, FRAME_X_VISUAL.
194
195 * menu.c: Include TERM_HEADER instead of listing all possible
196 window-system headers.
197
198 * keyboard.h: Declare ignore_mouse_drag_p whenever we have a
199 window system.
200
201 * keyboard.c: Include TERM_HEADER instead of listing all possible
202 window-system headers.
203
204 * image.c: Include TERM_HEADER instead of listing all possible
205 window-system headers. Declare Vlibrary_cache when compiling for
206 Windows.
207
208 * gtkutil.h (xg_list_node_): Include xterm.h to pick up needed
209 window system declarations.
210
211 * frame.h: Move common functions here: set_frame_menubar,
212 x_set_window_size, x_sync, x_get_focus_frame,
213 x_set_mouse_position, x_set_mouse_pixel_position,
214 x_make_frame_visible, x_make_frame_invisible, x_iconify_frame,
215 x_char_width, x_char_height, x_pixel_width, x_pixel_height,
216 x_set_frame_alpha, x_set_menu_bar_lines, x_set_tool_bar_lines,
217 x_activate_menubar, x_real_positions, x_bitmap_icon,
218 x_set_menu_bar_lines, free_frame_menubar, x_free_frame_resources,
219 and x_query_colors.
220
221 * frame.c: Include TERM_HEADER instead of listing all possible
222 window-system headers.
223
224 * font.c: Include TERM_HEADER instead of listing all possible
225 window-system headers.
226
227 * emacs.c: Include TERM_HEADER.
228
f18cbb28
EZ
229 * dispnew.c: Include TERM_HEADER instead of listing all possible
230 window-system headers.
17a2cbbd 231
f18cbb28 232 * ccl.h: Include character.h.
17a2cbbd
DC
233
234 * Makefile.in: Define WINDOW_SYSTEM_OBJ to hold objects needed for
235 the current window system; include in list of objects to link into
236 Emacs.
237
c650a5de
DA
2382012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
239
240 Remove mark_ttys function and fix tty_display_info initialization.
241 * lisp.h (mark_ttys): Remove prototype.
242 * alloc.c (Fgarbage_collect): Remove redundant (and the only) call
243 to mark_ttys because all possible values of 'top_frame' slot are
244 the frames which are reachable from Vframe_list.
245 * term.c (mark_ttys): Remove.
246 (init_tty): Safely initialize 'top_frame' slot with Qnil.
247
4e0f6479
DA
2482012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
249
250 Change struct frame bitfields from unsigned char to unsigned.
251 * frame.h (struct frame): Change type of 'display_preempted',
252 'visible', 'iconified', 'has_minibuffer', 'wants_modeline',
253 'auto_raise', 'auto_lower', 'no_split', 'explicit_name',
254 'window_sizes_changed', 'mouse_moved' and 'pointer_invisible'
255 bitfields from unsigned char to unsigned.
256
8b96a52c
DA
2572012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
258
259 Remove unused member of struct x_output and struct w32_output.
260 * xterm.h (struct x_output): Remove unused field 'needs_exposure'.
261 * w32term.h (struct w32_output): Likewise.
262
b4444c8a
JD
2632012-08-30 Jan Djärv <jan.h.d@swipnet.se>
264
265 * gtkutil.c (x_wm_set_size_hint): Use 1 col for base_width so it
266 does not become zero (Bug#12234).
267
b98521db
PE
2682012-08-30 Paul Eggert <eggert@cs.ucla.edu>
269
270 * dispnew.c (update_frame_1): Pacify gcc -Wstrict-overflow
271 for GCC 4.7.1 x86-64.
272
31d02438
GM
2732012-08-30 Glenn Morris <rgm@gnu.org>
274
275 * lread.c (init_lread): For out-of-tree builds, only add the
276 source directory's site-lisp dir to the load-path if it exists,
277 consistent with in-tree builds. (Bug#12302)
278
7f8941d8
JD
2792012-08-28 Jan Djärv <jan.h.d@swipnet.se>
280
281 * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize
282 button_values to NULL. Call setStykeMask so dialogs get a close button.
283 (windowShouldClose:): Set window_closed.
284 (dealloc): New member, free button_values.
285 (process_dialog:): Make member function. Remove window argument,
286 replace window with self. Count buttons and allocate and store values
287 in button_values.
288 (addButton:value:row:): value is int with the name tag. Call setTag
289 with tag. Remove return self, declare return value as void.
290 (addString:row:): Remove return self, declare return value as void.
291 (addSplit): Remove return self, declare return value as void.
292 (clicked:): Remove return self, declare return value as void.
293 Set dialog_return to button_values[seltag]. Code formatting change.
294 (initFromContents:isQuestion:): Adjust call to process_dialog.
295 Code formatting change.
296 (timeout_handler:): Set timer_fired to YES.
297 (runDialogAt:): Set timer_fired to NO.
298 Handle click on close button as quit.
299
300 * nsterm.h (EmacsDialogPanel): Make timer_fired BOOL.
301 Add window_closed and button_values. Add void as return value for
302 add(Button|String|Split). addButton takes int instead of Lisp_Object.
303 Add process_dialog as new member.
304
eada0861 3052012-08-28 Eli Zaretskii <eliz@gnu.org>
19c17fc1 306
eada0861
GM
307 * ralloc.c (free_bloc): Don't dereference a 'heap' structure if it
308 is not one of the heaps we manage. (Bug#12242)
309
3102012-08-28 Glenn Morris <rgm@gnu.org>
311
312 * eval.c (Fcalled_interactively_p): Doc fix. (Bug#11747)
313
457294dd
MR
3142012-08-28 Martin Rudalics <rudalics@gmx.at>
315
316 * window.c (Fset_window_configuration): Remove handling of
37b9743e
MR
317 auto-buffer-name window parameter. Install revision of reverted
318 fix.
457294dd 319
4f2daf31
DA
3202012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
321
322 Do not allow to set major mode for a dead buffer.
323 * buffer.c (Fset_buffer_major_mode): Signal an error
324 if the buffer is dead.
325 (Fother_buffer, other_buffer_safely): Remove redundant
326 nested declaration.
327
66322887
DA
3282012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
329
330 Always use set_buffer_if_live to restore original buffer at unwind.
331 * buffer.h (record_unwind_current_buffer): New function.
332 * bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c:
333 * keyboard.c, keymap.c, minibuf.c, print.c, process.c, textprop.c:
334 * undo.c, window.c: Adjust users.
335 * buffer.c (set_buffer_if_live): Fix comment.
336
a3d794a1
DA
3372012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
338
339 Fix usage of set_buffer_internal.
340 * buffer.h (set_buffer_internal): Make it BUFFER_INLINE.
341 * buffer.c (set_buffer_if_live): Use set_buffer_internal.
342 * coding.c (decode_coding): Omit redundant test.
343 * fileio.c (decide_coding_unwind): Likewise.
344 * fns.c (secure_hash): Likewise.
345 * insdel.c (modify_region): Likewise.
346 * keyboard.c (command_loop_1): Likewise.
347 * print.c (PRINTFINISH): Likewise.
348 * xdisp.c (run_window_scroll_functions): Use set_buffer_internal.
349
59ea14cd
PE
3502012-08-27 Paul Eggert <eggert@cs.ucla.edu>
351
352 * dispnew.c: Use bool for boolean.
353 (frame_garbaged, display_completed, delayed_size_change)
354 (fonts_changed_p, add_window_display_history)
355 (add_frame_display_history, verify_row_hash)
356 (adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p)
357 (row_equal_p, realloc_glyph_pool)
358 (allocate_matrices_for_frame_redisplay)
359 (showing_window_margins_p)
360 (adjust_frame_glyphs_for_frame_redisplay)
361 (build_frame_matrix_from_leaf_window, make_current)
362 (mirrored_line_dance, mirror_line_dance, update_frame)
363 (update_window_tree, update_single_window)
364 (check_current_matrix_flags, update_window, update_text_area)
365 (update_window_line, set_window_update_flags, scrolling_window)
366 (update_frame_1, scrolling, buffer_posn_from_coords)
367 (do_pending_window_change, change_frame_size)
368 (change_frame_size_1, sit_for):
369 Use bool for boolean.
370 (clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows,
371 and remove last int (actually boolean) argument, which was always 0.
372 All callers changed.
373 * dispextern.h, frame.h, lisp.h: Reflect above API changes.
374 * dispextern.h (struct composition_it): Use bool for boolean.
375 (struct glyph_matrix): Don't assume buffer sizes can fit in 'int'.
376 (struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf.
377 * dired.c (file_name_completion):
378 Use bool for boolean. (This was missed in an earlier change.)
379
95072a94
MR
3802012-08-27 Martin Rudalics <rudalics@gmx.at>
381
382 * window.c (Fset_window_configuration): Revert first part of
383 last change.
384
0f19feff
JD
3852012-08-27 Jan Djärv <jan.h.d@swipnet.se>
386
387 * nsterm.h (NSPanel): New class variable dialog_return.
388
389 * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize
390 dialog_return.
391 (windowShouldClose:): Use stop instead of stopModalWithCode.
392 (clicked:): Ditto, and also set dialog_return (Bug#12258).
393 (timeout_handler:): Use stop instead of abortModal. Send a dummy
394 event.
395 (runDialogAt:): Make ret Lisp_Object. Set it from dialog_return when
396 modal loop returns.
397
f10fe38f
PE
3982012-08-27 Paul Eggert <eggert@cs.ucla.edu>
399
de1339b0
PE
400 * composite.c, data.c, dbusbind.c, dired.c: Use bool for booleans.
401 * composite.c (find_composition, composition_gstring_p)
402 (composition_reseat_it, find_automatic_composition):
403 * data.c (let_shadows_buffer_binding_p)
404 (let_shadows_global_binding_p, set_internal, make_blv)
405 (Fmake_variable_buffer_local, Fmake_local_variable)
406 (Fmake_variable_frame_local, arithcompare, cons_to_unsigned)
407 (cons_to_signed, arith_driver):
408 * dbusbind.c (xd_in_read_queued_messages):
409 * dired.c (directory_files_internal, file_name_completion):
410 Use bool for booleans.
411 * dired.c (file_name_completion):
412 * process.h (fd_callback):
413 Omit int (actually boolean) argument. It wasn't being used.
414 All uses changed.
415 * composite.h, lisp.h: Reflect above API changes.
416
f10fe38f
PE
417 * cmds.c, coding.c: Use bool for booleans.
418 * cmds.c (move_point, Fself_insert_command):
419 * coding.h (struct composition status, struct coding_system):
420 * coding.c (detect_coding_utf_8, encode_coding_utf_8)
421 (detect_coding_utf_16, encode_coding_utf_16, detect_coding_emacs_mule)
422 (emacs_mule_char, decode_coding_emacs_mule)
423 (encode_coding_emacs_mule, detect_coding_iso_2022)
424 (decode_coding_iso_2022, encode_invocation_designation)
425 (encode_designation_at_bol, encode_coding_iso_2022)
426 (detect_coding_sjis, detect_coding_big5, decode_coding_sjis)
427 (decode_coding_big5, encode_coding_sjis, encode_coding_big5)
428 (detect_coding_ccl, encode_coding_ccl, decode_coding_raw_text)
429 (encode_coding_raw_text, detect_coding_charset)
430 (decode_coding_charset, encode_coding_charset, detect_eol)
431 (detect_coding, get_translation_table, produce_chars)
432 (consume_chars, reused_workbuf_in_use)
433 (make_conversion_work_buffer, code_conversion_save)
434 (decode_coding_object, encode_coding_object)
435 (detect_coding_system, char_encodable_p)
436 (Funencodable_char_position, code_convert_region)
437 (code_convert_string, code_convert_string_norecord)
438 (Fset_coding_system_priority):
439 * fileio.c (Finsert_file_contents):
440 Use bool for booleans.
441 * coding.h, lisp.h: Reflect above API changes.
442 * coding.c: Remove unnecessary static function decls.
443 (detect_coding): Use unsigned, not signed, to copy an unsigned field.
444 (decode_coding, encode_coding, decode_coding_gap): Return 'void',
445 not a boolean 'int', since callers never look at the return value.
446 (ALLOC_CONVERSION_WORK_AREA): Assume caller returns 'void', not 'int'.
447 * coding.h (decoding_buffer_size, encoding_buffer_size)
448 (emacs_mule_string_char): Remove unused extern decls.
449 (struct iso_2022_spec, struct coding_system):
450 Use 'unsigned int : 1' for boolean fields, since there's more than one.
451 (struct emacs_mule_spec): Remove unused field 'full_support'.
452 All initializations removed.
453 * cmds.c (internal_self_insert): Don't assume EMACS_INT fits in 'int'.
454
5474c384
DA
4552012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
456
f10fe38f 457 Fix spare memory change (Bug#12286).
5474c384
DA
458 * alloc.c (mark_maybe_pointer): Handle MEM_TYPE_SPARE.
459 (valid_lisp_object_p): Likewise.
460
c4b6914d
MR
4612012-08-27 Martin Rudalics <rudalics@gmx.at>
462
463 * window.c (Fset_window_configuration): Record any window's old
464 buffer if it's replaced (see Bug#8789). If the new current
465 buffer doesn't appear in the selected window, go to its old
466 point (Bug#12208).
467
35aaa1ea
DA
4682012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
469
470 Special MEM_TYPE_SPARE to denote reserved memory.
471 * alloc.c (enum mem_type): New memory type.
472 (refill_memory_reserve): Use new type for spare memory.
473 This prevents live_cons_p and live_string_p from incorrect
474 detection of uninitialized objects from spare memory as live.
475
6af64513
PE
4762012-08-26 Paul Eggert <eggert@cs.ucla.edu>
477
8b2e00a3
PE
478 Spelling fixes.
479 * Makefile.in (.PHONY): versioclean -> versionclean.
480
b52d6985
PE
481 Remove unused external symbols.
482 * data.c (Qcons, Qfloat, Qmisc, Qstring, Qvector):
483 * window.c (Qwindow_valid_p, decode_valid_window):
484 Now static, not extern.
485 * data.c (Qinterval): Remove; unused.
486 (syms_of_data): Do not define 'interval'.
487 * lisp.h (Qinteger, Qstring, Qmisc, Qvector, Qfloat, Qcons):
488 * window.h (decode_valid_window):
489 Remove decls.
490
d5172d4f
PE
491 * character.c, charset.c, chartab.c: Use bool for booleans.
492 * character.c (lisp_string_width, string_count_byte8)
493 (string_escape_byte8):
494 * charset.c (charset_map_loaded, load_charset_map, read_hex):
495 (load_charset_map_from_file, map_charset_chars)
496 (Fdefine_charset_internal, define_charset_internal)
497 (Fdeclare_equiv_charset, find_charsets_in_text)
498 (Ffind_charset_region, char_charset, Fiso_charset):
499 * chartab.c (sub_char_table_ref, sub_char_table_ref_and_range)
500 (sub_char_table_set, sub_char_table_set_range)
501 (char_table_set_range, optimize_sub_char_table)
502 (map_sub_char_table):
503 Use bool for boolean.
504 * character.c (str_to_unibyte): Omit last boolean argument; it was
505 always 0. All callers changed.
506 * character.h, charset.h: Adjust to match previous changes.
507 * character.h (char_printable_p): Remove decl of nonexistent function.
508 * charset.h (struct charset): Members code_linear_p, iso_chars_96,
509 ascii_compatible_p, supplementary_p, compact_codes_p, unified_p
510 are all boolean, so make them single-bit bitfields.
511
6af64513
PE
512 * lisp.h (ASET): Remove attempt to detect side effects.
513 It was meant to be temporary and it often doesn't work,
514 because when IDX has side effects the behavior of IDX==IDX
515 is undefined. See Stefan Monnier in
516 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00762.html>.
517
e1f29348
BR
5182012-08-26 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
519
520 * lisp.h (functionp): New function (extracted from Ffunctionp).
521 (FUNCTIONP): Use it.
522 * eval.c (Ffunctionp): Use it.
523
17c05d74
PE
5242012-08-25 Paul Eggert <eggert@cs.ucla.edu>
525
0f46bc75
PE
526 * xgselect.c (xg_select): Use auto storage for the GPollFD buffer
527 as that's faster and simpler than static storage. Don't bother
528 with the g_main_context_query overhead if g_main_context_pending
529 says no events are pending.
530 (gfds, gfds_size): Remove these static vars.
531 (xgselect_initialize): Remove; no longer needed.
532 All uses and decls removed.
533
ee4c0f69
PE
534 * emacs.c (fatal_error_signal_hook): Remove.
535 All uses removed. This leftover from old code was always 0.
536
17c05d74
PE
537 * casefiddle.c, casetab.c, category.c: Use bool for boolean.
538 * casefiddle.c (casify_object, casify_region):
539 * casetab.c (set_case_table):
540 * category.c, category.h (word_boundary_p):
541 * category.h (CHAR_HAS_CATEGORY):
542 Use bool for booleans, instead of int.
543
391ceac5
EZ
5442012-08-25 Eli Zaretskii <eliz@gnu.org>
545
546 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on $(GNU_LIB)/execinfo.h.
547
2f221583
PE
5482012-08-25 Paul Eggert <eggert@cs.ucla.edu>
549
f4a681b0
PE
550 On assertion failure, print backtrace if available.
551 * alloc.c [ENABLE_CHECKING]: Include <execinfo.h>.
552 (die) [ENABLE_CHECKING]: Print a backtrace if available.
553 * Makefile.in (LIB_EXECINFO): New macro.
554 (LIBES): Use it.
555
2f221583
PE
556 * bytecode.c, callint.c, callproc.c: Use bool for boolean.
557 * bytecode.c (exec_byte_code):
558 * callint.c (check_mark, Fcall_interactively):
559 * callproc.c (Fcall_process, add_env, child_setup, getenv_internal_1)
560 (getenv_internal, sync_process_alive, call_process_exited):
561 * lisp.h (USE_SAFE_ALLOCA):
562 Use bool for booleans, instead of int.
563 * lisp.h, process.h: Adjust prototypes to match above changes.
564 * callint.c (Fcall_interactively): Don't assume the mark's
565 offset fits in 'int'.
566
37ef52bb
PE
5672012-08-24 Paul Eggert <eggert@cs.ucla.edu>
568
569 * buffer.c, buffer.h: Use bool for boolean.
570 * buffer.c (reset_buffer_local_variables)
571 (buffer_lisp_local_variables, Fset_buffer_modified_p)
572 (Frestore_buffer_modified_p, Fset_buffer_multibyte):
573 (overlays_at, overlays_in, mouse_face_overlay_overlaps)
574 (overlay_touches_p, overlay_strings, Foverlay_put)
575 (report_overlay_modification, call_overlay_mod_hooks):
576 (mmap_enlarge, mmap_set_vars):
577 * buffer.h (buffer_has_overlays, uppercasep, lowercasep):
578 Use bool for booleans, instead of int.
579 * buffer.c (compact_buffer, mmap_free_1): Return void, not int,
580 since the 1-or-0 return value is always ignored anyway.
581 (mmap_initialized_p):
582 * buffer.h (struct buffer_text.inhibit_shrinking): Now bool, not int.
583 * buffer.h, lisp.h: Adjust prototypes to match above changes.
584
2cc21167
PE
5852012-08-23 Paul Eggert <eggert@cs.ucla.edu>
586
587 * bidi.c: Use bool for boolean.
588 This is a bit more readable, and makes the text segment of bidi.o
589 0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15).
590 Presumably it's faster too.
591 (bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level):
592 Now bool.
593 (bidi_cache_find_level_change, bidi_cache_iterator_state)
594 (bidi_unshelve_cache, bidi_init_it, bidi_count_bytes)
595 (bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init)
596 (bidi_explicit_dir_char, bidi_level_of_next_char)
597 (bidi_find_other_level_edge, bidi_move_to_visually_next):
598 Use bool for booleans, instead of int.
599 * dispextern.h (bidi_init_it, bidi_paragraph_init)
600 (bidi_unshelve_cache): Adjust decls to match code.
601
7db4ddf4
MR
6022012-08-23 Martin Rudalics <rudalics@gmx.at>
603
604 * keyboard.c (Fposn_at_x_y): Do not allow internal window as
605 argument.
606
b1bb8011
PE
6072012-08-23 Paul Eggert <eggert@cs.ucla.edu>
608
609 * atimer.c, atimer.h (turn_on_atimers): Use bool for boolean.
610 * atimer.h: Include <stdbool.h>.
611
ff687885
DN
6122012-08-22 Dan Nicolaescu <dann@gnu.org>
613
614 * frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_NS_P): Change to
615 compile time tests instead of run time tests on systems that do
616 not use them.
617 (FRAME_MAC_P): Remove leftover from deleted code.
618 * frame.c (syms_of_frame): Remove leftover from deleted code.
619
4ce7a138
JD
6202012-08-22 Jan Djärv <jan.h.d@swipnet.se>
621
622 * nsterm.m (insertText:): Don't clear modifiers if code is space.
623
d733ec6d
PE
6242012-08-22 Paul Eggert <eggert@cs.ucla.edu>
625
626 * fontset.c (FONTSET_ADD): Return void, not Lisp_Object.
627 Otherwise, the compiler complains about (A?B:C) where B is void
628 and C is Lisp_Object. This fixes an incompatibility with Sun C 5.12.
629 (fontset_add): Return void, for FONTSET_ADD.
630
d0d2d26f
PE
6312012-08-21 Paul Eggert <eggert@cs.ucla.edu>
632
fce31d69
PE
633 * alloc.c: Use bool for booleans.
634 (gc_in_progress, abort_on_gc)
635 (setjmp_tested_p) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
636 (dont_register_blocks) [GC_MALLOC_CHECK]:
637 (suppress_checking) [ENABLE_CHECKING]: Now bool, not int.
638 (check_string_bytes, make_specified_string, memory_full)
639 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
640 (live_misc_p, live_vector_p, live_buffer_p, mark_maybe_object)
641 (mark_stack, valid_pointer_p, make_pure_string)
642 (Fgarbage_collect, survives_gc_p, gc_sweep):
643 Use bool for booleans, instead of int.
644 (test_setjmp) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
645 Remove unused local.
646 * alloc.c (PURE_POINTER_P):
647 * lisp.h (STRING_MULTIBYTE): Document that it returns a boolean.
648 * editfns.c (Fformat):
649 * fileio.c (Fexpand_file_name, Fsubstitute_in_file_name)
650 (Fdo_auto_save):
651 * fns.c (sweep_weak_table):
652 * lisp.h (suppress_checking, push_message, survives_gc_p)
653 (make_pure_string, gc_in_progress, abort_on_gc):
654 * lread.c (readchar, read1):
655 * print.c (Fprin1_to_string):
656 * xdisp.c (push_message):
657 Use bool for booleans affected directly or indirectly by
658 alloc.c's changes.
659
d0d2d26f
PE
660 Make recently-introduced setters macros.
661 * fontset.c (set_fontset_id, set_fontset_name, set_fontset_ascii)
662 (set_fontset_base, set_fontset_frame, set_fontset_nofont_face)
663 (set_fontset_default, set_fontset_fallback): Rename from their
664 upper-case counterparts, and make them functions rather than macros.
665 This is more consistent with the other recently-introduced setters.
666 These don't need to be inline, since they're local.
667
d18e2bb6
JD
6682012-08-21 Jan Djärv <jan.h.d@swipnet.se>
669
670 * nsterm.m (fd_handler:): Alloc and release a NSAutoreleasePool in
671 the loop (Bug#12247).
672
1b9d9d16
PE
6732012-08-21 Paul Eggert <eggert@cs.ucla.edu>
674
675 * lisp.h (vcopy): Use memcpy rather than our own loop.
676 This fixes a performance regression introduced by the recent
677 addition of vcopy. This means 'vcopy' will need to be modified
678 for a copying collector, but that's OK. Also, tighten the
679 checking in the assertion.
680
b2f09701
EZ
6812012-08-21 Eli Zaretskii <eliz@gnu.org>
682
683 * w32uniscribe.c (uniscribe_shape): Fix producing gstring
684 components for RTL text (Bug#11860). Adjust X-OFFSET of each
685 non-base glyph for the width of the base character, according to
e1f29348
BR
686 what x_draw_composite_glyph_string_foreground expects.
687 Generate WADJUST value according to composition_gstring_width's
b2f09701
EZ
688 expectations, to produce correct width of the composed character.
689 Reverse the sign of the DU offset produced by ScriptPlace.
690
9b994fed
PE
6912012-08-21 Paul Eggert <eggert@cs.ucla.edu>
692
693 * dbusbind.c (xd_remove_watch): Do not assume C99 comments.
694
086ca913
DA
6952012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
696
697 Avoid direct writes to contents member of struct Lisp_Vector.
698 * lisp.h (vcopy): New function to copy data into vector.
699 * dispnew.c (Fframe_or_buffer_changed_p): Use AREF and ASET.
700 * fns.c (Ffillarray): Use ASET.
701 * keyboard.c (timer_check_2): Use AREF and ASET.
702 (append_tool_bar_item, Frecent_keys): Use vcopy.
703 * lread.c (read_vector): Use ASET.
704 * msdos.c (Frecent_doskeys): Use vcopy.
705 * xface.c (Finternal_copy_lisp_face): Use vcopy.
706 (Finternal_merge_in_global_face): Use ASET and vcopy.
707 * xfont.c (xfont_list_pattern): Likewise.
708
5481664a
MR
7092012-08-21 Martin Rudalics <rudalics@gmx.at>
710
711 * window.c (Fwindow_point): For the selected window always return
712 the position of its buffer's point.
713 (Fset_window_point): For the selected window always go in its
714 buffer to the specified position.
715
6d470bdd
DA
7162012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
717
718 Setter macros for fontsets.
719 * fontset.c (SET_FONTSET_ID, SET_FONTSET_NAME, SET_FONTSET_ASCII)
720 (SET_FONTSET_BASE, SET_FONTSET_FRAME, SET_FONTSET_NOFONT_FACE)
721 (SET_FONTSET_DEFAULT, SET_FONTSET_FALLBACK): New macros.
722 Adjust users.
723
24564fe1
GM
7242012-08-20 Glenn Morris <rgm@gnu.org>
725
726 * Makefile.in (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
727 Don't assume that `ln -f' works.
728
0a05a035
EZ
7292012-08-20 Eli Zaretskii <eliz@gnu.org>
730
731 * .gdbinit: Use "set $dummy = ..." to avoid warnings from GDB 7.5
732 and later about non-assignments with no effect. See discussion at
733 http://sourceware.org/ml/gdb-patches/2012-08/msg00518.html for
734 details.
735
e46f2325
DA
7362012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
737
738 Inline setter functions for Lisp_Objects slots of struct specbinding.
739 * eval.c (set_specpdl_symbol, set_specpdl_old_value): New functions.
740 Adjust users.
741
734fbd86
MR
7422012-08-20 Martin Rudalics <rudalics@gmx.at>
743
744 * window.c (select_window): Always make selected window's buffer
745 current.
746
f1a95992
DA
7472012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
748
749 Use AREF and ASET for docstrings of category tables.
750 * category.h (CATEGORY_DOCSTRING): Use AREF.
751 (SET_CATEGORY_DOCSTRING): Use ASET.
752 * category.c (Fdefine_category): Use SET_CATEGORY_DOCSTRING.
753
e83064be
DA
7542012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
755
756 Inline setter functions for hash table members.
757 * lisp.h (set_hash_key, set_hash_value, set_hash_next)
758 (set_hash_hash, set_hash_index): Rename with _slot suffix.
759 (set_hash_key_and_value, set_hash_index, set_hash_next)
760 (set_hash_hash): New functions.
761 * charset.c, fns.c: Adjust users.
762
4ce60d2e
DA
7632012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
764
765 Inline getter and setter functions for per-buffer values.
766 * buffer.h (per_buffer_default, set_per_buffer_default)
767 (per_buffer_value, set_per_buffer_value): New functions.
768 (PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove.
769 * buffer.c, data.c: Adjust users.
770
c06c9690
JB
7712012-08-20 Juanma Barranquero <lekktu@gmail.com>
772
773 * makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies.
774
32bd4250
PE
7752012-08-19 Paul Eggert <eggert@cs.ucla.edu>
776
bad03192 777 Rely on <config.h> + <unistd.h> to declare 'environ',
b69a6d22
PE
778 as gnulib does this if the system doesn't.
779 * callproc.c, editfns.c, process.c (environ) [!USE_CRT_DLL]:
72279493
EZ
780 Remove declaration. MS-Windows declares it on stdlib.h which is
781 included by conf_post.h.
b69a6d22
PE
782 * emacs.c (environ) [DOUG_LEA_MALLOC]:
783 * vm-limit.c (environ) [ORDINARY_LINK]: Remove decl.
784 * vm-limit.c: Include <unistd.h>, for 'environ'.
785
22d7feb2
PE
786 * unexaix.c, unexcoff.c: Include "mem-limits.h".
787 (start_of_data): Remove decl; mem-limits.h provides it.
788
32bd4250
PE
789 * xdisp.c (handle_invisible_prop): Make it a bit faster
790 and avoid a gcc -Wmaybe-uninitialized diagnostic.
791
450809af
CY
7922012-08-19 Chong Yidong <cyd@gnu.org>
793
794 * xdisp.c (handle_invisible_prop): Fix ellipses at overlay string
795 ends (Bug#3874).
796
9e677988
AS
7972012-08-19 Andreas Schwab <schwab@linux-m68k.org>
798
6b1319ce
AS
799 * .gdbinit: Use call instead of set when calling a function in the
800 inferior.
801
9e677988
AS
802 * data.c (set_internal): Don't use set_blv_found.
803 (Fkill_local_variable): Likewise.
804
d7191076
AA
8052012-08-18 Alp Aker <alp.tekin.aker@gmail.com>
806
807 * nsfont.m (ns_ascii_average_width): Ensure the string
808 ascii_printable is initialized with a null-terminated character
809 array. Otherwise, it can contain undesired extra characters.
810
e757f1c6
PE
8112012-08-18 Paul Eggert <eggert@cs.ucla.edu>
812
813 port new setting code to Sun C 5.8 2005/10/13
814 * chartab.c, lisp.h (char_table_set, char_table_set_range):
815 Return void, not Lisp_Object. Otherwise, the compiler
816 complains about (A?B:C) where B is void and C is Lisp_Object
817 when compiling CHAR_TABLE_SET, due to the recent change to
818 the API of sub_char_table_set_contents.
819
a999ce26
CY
8202012-08-18 Chong Yidong <cyd@gnu.org>
821
822 * xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE
823 for the string case (Bug#3874).
824
3f22b86f
PE
8252012-08-18 Paul Eggert <eggert@cs.ucla.edu>
826
39eb03f1
PE
827 * buffer.h (BSET): Remove (Bug#12215).
828 Replace all uses with calls to new setter functions.
829 (bset_bidi_paragraph_direction, bset_case_canon_table)
830 (bset_case_eqv_table, bset_directory, bset_display_count)
831 (bset_display_time, bset_downcase_table)
832 (bset_enable_multibyte_characters, bset_filename, bset_keymap)
833 (bset_last_selected_window, bset_local_var_alist)
834 (bset_mark_active, bset_point_before_scroll, bset_read_only)
835 (bset_truncate_lines, bset_undo_list, bset_upcase_table)
836 (bset_width_table):
837 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
838 (bset_auto_fill_function, bset_auto_save_file_format)
839 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
840 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
841 (bset_cache_long_line_scans, bset_case_fold_search)
842 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
843 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
844 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
845 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
846 (bset_header_line_format, bset_indicate_buffer_boundaries)
847 (bset_indicate_empty_lines, bset_invisibility_spec)
848 (bset_left_fringe_width, bset_major_mode, bset_mark)
849 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
850 (bset_name, bset_overwrite_mode, bset_pt_marker)
851 (bset_right_fringe_width, bset_save_length)
852 (bset_scroll_bar_width, bset_scroll_down_aggressively)
853 (bset_scroll_up_aggressively, bset_selective_display)
854 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
855 (bset_word_wrap, bset_zv_marker):
856 * category.c (bset_category_table):
857 * syntax.c (bset_syntax_table):
858 New setter functions.
859
6a09a33b
PE
860 * process.h (PSET): Remove (Bug#12215).
861 Replace all uses with calls to new setter functions.
862 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
863 (PROCESS_INLINE): New macro.
864 (pset_childp): New setter function.
865 (pset_gnutls_cred_type) [HAVE_GNUTLS]: New setter function.
866 * process.c (PROCESS_INLINE):
867 Define to EXTERN_INLINE, so that the corresponding functions
868 are compiled into code.
869 (pset_buffer, pset_command, pset_decode_coding_system)
870 (pset_decoding_buf, pset_encode_coding_system)
871 (pset_encoding_buf, pset_filter, pset_log, pset_mark, pset_name)
872 (pset_plist, pset_sentinel, pset_status, pset_tty_name)
873 (pset_type, pset_write_queue): New setter functions.
874
e8c17b81
PE
875 * window.h (WSET): Remove (Bug#12215).
876 Replace all uses with calls to new setter functions.
877 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
878 (WINDOW_INLINE): New macro.
879 (wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev)
880 (wset_redisplay_end_trigger, wset_top_line, wset_total_cols)
881 (wset_total_lines, wset_vertical_scroll_bar)
882 (wset_window_end_pos, wset_window_end_valid)
883 (wset_window_end_vpos): New setter functions.
884 * window.c (WINDOW_INLINE):
885 Define to EXTERN_INLINE, so that the corresponding functions
886 are compiled into code.
887 (wset_combination_limit, wset_dedicated, wset_display_table)
888 (wset_hchild, wset_left_fringe_width, wset_left_margin_cols)
889 (wset_new_normal, wset_new_total, wset_next_buffers)
890 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
891 (wset_prev_buffers, wset_right_fringe_width)
892 (wset_right_margin_cols, wset_scroll_bar_width, wset_start)
893 (wset_temslot, wset_vchild, wset_vertical_scroll_bar_type)
894 (wset_window_parameters):
895 * xdisp.c (wset_base_line_number, wset_base_line_pos)
896 (wset_column_number_displayed, wset_region_showing):
897 New setter functions.
898
3f22b86f
PE
899 * termhooks.h (TSET): Remove (Bug#12215).
900 Replace all uses with calls to new setter functions.
901 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
902 (TERMHOOKS_INLINE): New macro.
903 (tset_charset_list, tset_selection_alist): New setter functions.
904 * terminal.c (TERMHOOKS_INLINE):
905 Define to EXTERN_INLINE, so that the corresponding functions
906 are compiled into code.
907 (tset_param_alist): New setter function.
908
742af32f
PE
9092012-08-17 Paul Eggert <eggert@cs.ucla.edu>
910
15dbb4d6
PE
911 * keyboard.h (KSET): Remove (Bug#12215).
912 Replace all uses with calls to new setter functions.
913 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
914 (KEYBOARD_INLINE): New macro.
915 (kset_default_minibuffer_frame, kset_defining_kbd_macro)
916 (kset_input_decode_map, kset_last_command, kset_last_kbd_macro)
917 (kset_prefix_arg, kset_system_key_alist, kset_window_system):
918 New setter functions.
919 * keyboard.c (KEYBOARD_INLINE):
920 Define to EXTERN_INLINE, so that the corresponding functions
921 are compiled into code.
922 (kset_echo_string, kset_kbd_queue)
923 (kset_keyboard_translate_table, kset_last_prefix_arg)
924 (kset_last_repeatable_command, kset_local_function_key_map)
925 (kset_overriding_terminal_local_map, kset_real_last_command)
926 (kset_system_key_syms): New setter functions.
927
f00af5b1
PE
928 * frame.h (FSET): Remove (Bug#12215).
929 Replace all uses with calls to new setter functions.
930 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
931 (FRAME_INLINE): New macro.
932 (fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars)
933 (fset_current_tool_bar_string, fset_desired_tool_bar_string)
934 (fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items)
935 (fset_menu_bar_vector, fset_menu_bar_window, fset_name)
936 (fset_param_alist, fset_root_window, fset_scroll_bars)
937 (fset_selected_window, fset_title, fset_tool_bar_items)
938 (fset_tool_bar_position, fset_tool_bar_window): New functions.
939 * frame.c (FRAME_INLINE):
940 Define to EXTERN_INLINE, so that the corresponding functions
941 are compiled into code.
942 (fset_buffer_predicate, fset_minibuffer_window): New setter functions.
943
0c94c8d6
PE
944 A few more naming-convention fixes for getters and setters.
945 * buffer.c (set_buffer_overlays_before): Move here from buffer.h,
946 and rename from buffer_overlays_set_before.
947 (set_buffer_overlays_after): Move here from buffer.h, and rename
948 from buffer_overlays_set_after.
949 * buffer.h (buffer_intervals): Rename from buffer_get_intervals.
950 All uses changed.
951 (set_buffer_intervals): Rename from buffer_set_intervals.
952 * intervals.c (set_interval_object): Move here from intervals.h,
953 and rename from interval_set_object.
954 (set_interval_left): Move here from intervals.h, and rename from
955 interval_set_left.
956 (set_interval_right): Move here from intervals.h, and rename from
957 interval_set_right.
958 (copy_interval_parent): Move here from intervals.h, and rename from
959 interval_copy_parent.
960 * intervals.h (set_interval_parent): Rename from interval_set_parent.
961 (set_interval_plist): Rename from interval_set_plist.
962 Return void, not Lisp_Object, since no caller uses the result.
963 * lisp.h (string_intervals): Rename from string_get_intervals.
964 (set_string_intervals): Rename from string_set_intervals.
965
34dabdb7
PE
966 * lisp.h (set_char_table_extras): Rename from char_table_set_extras.
967 (set_char_table_contents): Rename from char_table_set_contents.
0b390a9d 968 (set_sub_char_table_contents): Rename from sub_char_table_set_contents.
34dabdb7
PE
969 All uses changed. See the end of
970 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00549.html>.
971
742af32f
PE
972 * lisp.h (CSET): Remove (Bug#12215).
973 (set_char_table_ascii, set_char_table_defalt, set_char_table_parent)
974 (set_char_table_purpose): New functions,
975 replacing CSET. All uses changed. For example, replace
976 "CSET (XCHAR_TABLE (char_table), parent, parent);" with
c24eb18a 977 "set_char_table_parent (char_table, parent);".
742af32f
PE
978 The old version was confusing because it used the same name
979 'parent' for two different things.
980
a04e2c62
DA
9812012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
982
983 Functions to get and set Lisp_Object fields of buffer-local variables.
984 * lisp.h (blv_found, set_blv_found, blv_value, set_blv_value)
985 (set_blv_where, set_blv_defcell, set_blv_valcell): New functions.
986 (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove.
987 * data.c, eval.c, frame.c: Adjust users.
988
383dcbf9
CY
9892012-08-17 Chong Yidong <cyd@gnu.org>
990
991 * xfaces.c (merge_face_vectors): If the target font specfies a
992 font spec, make the font's attributes take precedence over
993 directly-specified attributes.
994 (merge_face_ref): Recognize :font.
995
44386687
DA
9962012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
997
998 Do not use memcpy for copying intervals.
999 * intervals.c (reproduce_interval): New function.
1000 (reproduce_tree, reproduce_tree_obj): Use it.
1001 (reproduce_tree_obj): Remove prototype.
1002
927c7216
PE
10032012-08-17 Paul Eggert <eggert@cs.ucla.edu>
1004
1005 * lisp.h (duration_to_sec_usec): Remove unused decl.
1006
93044f7b
AA
10072012-08-17 Alp Aker <alp.tekin.aker@gmail.com>
1008
1009 * nsfont.m (ns_ascii_average_width): Send initWithFormat selector
1010 to an allocated instance of NSString, not to the class itself.
1011
9851e4a5
JB
10122012-08-17 Juanma Barranquero <lekktu@gmail.com>
1013
1014 * makefile.w32-in (C_CTYPE_H): New macro.
1015 (LISP_H, $(BLD)/ccl.$(O), $(BLD)/doc.$(O), $(BLD)/w32console.$(O)):
1016 ($(BLD)/fontset.$(O), $(BLD)/frame.$(O), $(BLD)/composite.$(O)):
1017 ($(BLD)/sysdep.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
1018
620f13b0
PE
10192012-08-16 Paul Eggert <eggert@cs.ucla.edu>
1020
1021 Use ASCII tests for character types.
1022 * category.c, dispnew.c, doprnt.c, editfns.c, syntax.c, term.c:
1023 * xfns.c, xterm.c:
1024 Don't include <ctype.h>; was not needed.
1025 * charset.c, doc.c, fileio.c, font.c, frame.c, gtkutil.c, image.c:
1026 * sysdep.c, xfaces.c:
1027 Include <c-ctype.h> instead of <ctype.h>.
1028 * nsterm.m: Include <c-ctype.h>.
1029 * charset.c (read_hex):
1030 * doc.c (Fsnarf_documentation):
1031 * fileio.c (IS_DRIVE) [WINDOWSNT]:
1032 (DRIVE_LETTER) [DOS_NT]:
1033 (Ffile_name_directory, Fexpand_file_name)
1034 (Fsubstitute_in_file_name):
1035 * font.c (font_parse_xlfd, font_parse_fcname):
1036 * frame.c (x_set_font_backend):
1037 * gtkutil.c (xg_get_font):
1038 * image.c (xbm_scan, xpm_scan, pbm_scan_number):
1039 * nsimage.m (hexchar):
1040 * nsterm.m (ns_xlfd_to_fontname):
1041 * sysdep.c (system_process_attributes):
1042 * xfaces.c (hash_string_case_insensitive):
1043 Use C-locale tests instead of locale-specific tests for character
1044 types, since we want the ASCII interpretation here, not the
1045 interpretation suitable for whatever happens to be the current locale.
1046
52162052
MR
10472012-08-16 Martin Rudalics <rudalics@gmx.at>
1048
1049 Consistently check windows for validity/liveness
1050 (Bug#11984, Bug#12025, Bug#12026).
1051 * lisp.h (CHECK_VALID_WINDOW): New macro.
1052 * window.c (decode_window): Rename to decode_live_window.
1053 (decode_valid_window, Fwindow_valid_p): New functions.
1054 (Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p)
1055 (Fframe_first_window, Fframe_selected_window, Fwindow_parent)
1056 (Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling)
1057 (Fwindow_prev_sibling, Fwindow_combination_limit)
1058 (Fset_window_combination_limit, Fwindow_use_time)
1059 (Fwindow_total_height, Fwindow_total_width, Fwindow_new_total)
1060 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column)
1061 (Fwindow_top_line, Fwindow_body_height, Fwindow_body_width)
1062 (Fwindow_hscroll, Fset_window_hscroll)
1063 (Fwindow_redisplay_end_trigger)
1064 (Fset_window_redisplay_end_trigger, Fwindow_edges)
1065 (Fwindow_pixel_edges, Fwindow_absolute_pixel_edges)
1066 (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
1067 (Fcoordinates_in_window_p, Fwindow_point, Fwindow_start)
1068 (Fwindow_end, Fset_window_point, Fset_window_start)
1069 (Fpos_visible_in_window_p, Fwindow_line_height)
1070 (Fwindow_dedicated_p, Fset_window_dedicated_p)
1071 (Fwindow_prev_buffers, Fset_window_prev_buffers)
1072 (Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter)
1073 (Fset_window_parameter, Fwindow_display_table)
1074 (Fset_window_display_table, Fdelete_other_windows_internal)
1075 (Fset_window_buffer, Fset_window_new_total)
1076 (Fset_window_new_normal, Fdelete_window_internal)
1077 (Fwindow_text_height, Fset_window_margins, Fwindow_margins)
1078 (Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars)
1079 (Fwindow_scroll_bars): Check whether argument window is a valid or
1080 live window. Update doc-strings.
1081 (syms_of_window): New symbol Qwindow_valid_p.
1082 * keyboard.c (Fposn_at_x_y): Check whether argument
1083 frame_or_window denotes a valid window.
1084
2751c80f
DA
10852012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
1086
1087 Fix previous char table change.
1088 * lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
1089 * chartab.c (optimize_sub_char_table): Likewise.
1090
032a42c8
CY
10912012-08-16 Chong Yidong <cyd@gnu.org>
1092
a2d19368
CY
1093 * gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228).
1094
032a42c8
CY
1095 * xfont.c (xfont_open):
1096 * xftfont.c (xftfont_open): Set the font's max_width field.
1097
1098 * nsfont.m (nsfont_open): Similar to the Xft backend, set
1099 min_width to space_width and average_width to the average over
1100 printable ASCII characters.
1101 (ns_char_width): Code cleanup.
1102 (ns_ascii_average_width): New utility function.
1103
1104 * font.h (struct font): Update comments.
1105
a098c930
DA
11062012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
1107
032a42c8 1108 Simple interface to set Lisp_Object fields of character tables.
a098c930
DA
1109 * lisp.h (CSET): New macro.
1110 (char_table_set_extras, char_table_set_contents)
1111 (sub_char_table_set_contents): New function.
1112 * casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c:
1113 * syntax.c: Adjust users.
1114
8be3a09c
SM
11152012-08-16 Stefan Monnier <monnier@iro.umontreal.ca>
1116
1117 * eval.c (eval_sub): Bind lexical-binding.
1118 * lread.c (Qlexical_binding): Make non-static.
1119
ac4845a6
JD
11202012-08-15 Jan Djärv <jan.h.d@swipnet.se>
1121
ddee6515
JD
1122 * nsmenu.m (popupSession): Remove.
1123 (pop_down_menu): Remove endModalSession.
1124 (timeout_handler:): New method.
1125 (runDialogAt:): Get next timeout. Start a NSTimer with that timeout.
1126 Call runModalForWindow. Check timer_fired when it returns.
1127 If not set, cancel timer and break out of loop.
1128 Otherwise loop again, with a new timeout.
1129
1130 * nsterm.m: Include fcntl.h if present.
1131 (fd_entry, t_readfds, inNsSelect): Remove.
1132 (select_writefds, select_valid, select_timeout, selfds)
1133 (select_mutex, apploopnr): Add.
1134 (EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr.
1135 Otherwise call kbd_buffer_store_event.
1136 (ns_send_appdefined): Remove release of fd_entry.
1137 (ns_read_socket): Always send appdefined. Remove inNsSelect check.
1138 Increment and decrement apploopnr.
1139 (ns_select): If no file descriptors, just do a NSTimer.
1140 Otherwise copy read/write masks and start select thread (fd_handler).
1141 Start main loop and wait for application defined event.
1142 Inform select thread to stop selecting after main loop is exited.
1143 (ns_term_init): Create selfds pipe and set non-blocking.
1144 Initialize select_mutex. Start the select thread (fd_handler).
1145 (fd_handler:): Loop forever, wait for info from the main thread
1146 to either start or stop selecting. When select returns, send
1147 and appdefined event.
1148 (sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set.
1149 If not call kbd_buffer_store_event.
1150
1151 * nsterm.h (EmacsApp): fd_handler takes id argument.
1152 (EmacsDialogPanel): Add timer_fired and timeout_handler.
1153
ac4845a6
JD
1154 * gtkutil.c (xg_mark_data): Use FRAME_X_P.
1155
eb424fe3
EZ
11562012-08-15 Eli Zaretskii <eliz@gnu.org>
1157
1158 * region-cache.c (move_cache_gap): Update gap_len using the actual
1159 growth of the boundaries array. Do not change cache_len.
1160 (Bug#12196)
1161
4e6a86c6
DA
11622012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
1163
1164 Generalize and cleanup font subsystem checks.
1165 * font.h (FONT_DEBUG, font_assert): Remove.
8be3a09c
SM
1166 * font.c, fontset.c, w32font.c, xfont.c, xftfont.c:
1167 Change font_assert to eassert. Use eassert where appropriate.
4e6a86c6 1168
5bf192ca
DA
11692012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
1170
1171 * gtkutil.c (xg_get_font): Use pango_units_to_double.
1172
f2045622
CY
11732012-08-15 Chong Yidong <cyd@gnu.org>
1174
8be3a09c
SM
1175 * gtkutil.c (xg_get_font): Rename from xg_get_font_name.
1176 When using the new font chooser, use gtk_font_chooser_get_font_desc to
1177 extract the font descriptor instead of just the font name.
1178 In that case, return a font spec instead of a string.
f2045622
CY
1179 (x_last_font_name): Move to this file from xfns.c.
1180
1181 * xfns.c (Fx_select_font): The return value can also be a font
1182 spec. Move x_last_font_name management to gtkutil.c.
1183
1184 * xfaces.c: Make font weight and style symbols non-static.
1185
7f6feb56
SM
11862012-08-15 Stefan Monnier <monnier@iro.umontreal.ca>
1187
1188 * minibuf.c (read_minibuf): Ignore caller's inhibit-read-only
1189 (bug#12117).
1190
fecbd8ff
SM
11912012-08-14 Stefan Monnier <monnier@iro.umontreal.ca>
1192
1193 * alloc.c (Fgarbage_collect): Use plural form consistently.
1194
9b8d5165
EZ
11952012-08-14 Eli Zaretskii <eliz@gnu.org>
1196
1197 * keyboard.c (command_loop_1): Reset ignore_mouse_drag_p flag each
1198 iteration through the command loop. Fixes a problem whereby mouse
1199 movements are ignored until the first mouse click.
1200
f5d9e83a
PE
12012012-08-14 Paul Eggert <eggert@cs.ucla.edu>
1202
1203 Use bool, not int, for Lisp booleans.
1204 This is more natural, and on my platform (GCC 4.7.1 x86-64) it
1205 makes Emacs a bit smaller and presumably a bit faster.
1206 * lisp.h: Include <stdbool.h>.
1207 (struct Lisp_Boolfwd, defvar_bool):
1208 * lread.c (defvar_bool): Use bool, not int, for Lisp booleans.
1209 * regex.c [!emacs]: Include <stdbool.h>.
1210 (false, true): Remove; <stdbool.h> does this for us now.
1211
55802e4a
CY
12122012-08-14 Chong Yidong <cyd@gnu.org>
1213
4abcdac8
CY
1214 * character.c (Fcharacterp): Doc fix (Bug#12076).
1215
1216 * data.c (Findirect_variable): Doc fix (Bug#11040).
1217
55802e4a
CY
1218 * chartab.c (Fmap_char_table): Doc fix (Bug#12061).
1219
1220 * editfns.c (Fformat): Doc fix (Bug#12059).
4abcdac8 1221 (Fsave_current_buffer): Doc fix (Bug#11542).
55802e4a 1222
8e99d072
BR
12232012-08-14 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
1224
1225 * keyboard.c (access_keymap_keyremap): Accept anonymous functions
1226 (bug#12022).
1227
08908aca
MR
12282012-08-14 Martin Rudalics <rudalics@gmx.at>
1229
1230 * frame.c (make_frame_without_minibuffer, make_minibuffer_frame)
1231 (delete_frame, Fmake_frame_invisible, Ficonify_frame):
1232 * minibuf.c (choose_minibuf_frame, read_minibuf):
1233 * w32fns.c (x_create_tip_frame):
1234 * xfns.c (x_create_tip_frame): Call set_window_buffer instead of
1235 Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).
1236
56120d6f
PE
12372012-08-14 Paul Eggert <eggert@cs.ucla.edu>
1238
1239 * intervals.c (offset_intervals): Remove obsolete comment.
1240
67b77c0b
AS
12412012-08-14 Andreas Schwab <schwab@linux-m68k.org>
1242
1243 * gtkutil.c (find_rtl_image, update_frame_tool_bar): Use NILP.
1244
f48b82fd
GR
12452012-08-14 Gergely Risko <gergely@risko.hu>
1246
1247 * coding.c (decode_coding): Record buffer modification before
1248 disabling undo_list (Bug#11773).
1249
fd318b54
DA
12502012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
1251
1252 Revert and cleanup some recent overlay changes.
1253 * buffer.h (enum overlay_type): Remove.
1254 (buffer_get_overlays, buffer_set_overlays): Likewise.
1255 (buffer_set_overlays_before, buffer_set_overlays_after):
1256 New function. Adjust users.
1257 (unchain_both): Add eassert.
1258
41a62dd9
DA
12592012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
1260
1261 * gtkutil.c (update_frame_tool_bar): Use EQ where appropriate.
1262
5884c324
PE
12632012-08-14 Paul Eggert <eggert@cs.ucla.edu>
1264
1265 * gtkutil.c (xg_mark_data): Don't assume C99.
1266
ca06f160
JD
12672012-08-13 Jan Djärv <jan.h.d@swipnet.se>
1268
1269 * gtkutil.c (xg_frame_tb_info): New struct.
1270 (TB_INFO_KEY): New define.
1271 (xg_free_frame_widgets): Free xg_frame_tb_info for frame if present.
1272 (xg_mark_data): Mark Lisp_Objects in xg_frame_tb_info.
1273 (xg_create_tool_bar): Allocate and initialize a xg_frame_tb_info
1274 if not present.
1275 (update_frame_tool_bar): Return early if data in xg_frame_tb_info
1276 is up to date. Otherwise store new data.
1277 (free_frame_tool_bar): Free xg_frame_tb_info if present.
1278
7864a3f7
DA
12792012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
1280
1281 Use KSET for write access to Lisp_Object members of struct kboard.
1282 * keyboard.h (KSET): New macro.
1283 * callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c:
1284 * msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c:
1285 * xterm.c: Adjust users.
1286
4c31be61
DA
12872012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
1288
1289 Use BSET for write access to Lisp_Object members of struct buffer.
1290 * buffer.h (BSET): New macro.
1291 * buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c:
1292 * fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c:
1293 * minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c:
1294 * window.c, xdisp.c, xfns.c: Adjust users.
1295
14ae4239
BT
12962012-08-11 BT Templeton <bpt@hcoop.net> (tiny change)
1297
1298 * lread.c (syms_of_lread): Initialize Vlexical_binding.
1299
32bcadb4
JD
13002012-08-11 Jan Djärv <jan.h.d@swipnet.se>
1301
3d29b2ce
JD
1302 * nsterm.m (not_in_argv): New function.
1303 (application:openFile, application:openTempFile:):
1304 (application:openFileWithoutUI:, application:openFiles:): Open file
1305 if not_in_argv returns non-zero (bug#12171).
1306
32bcadb4 1307 * gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER)
14ae4239
BT
1308 (gtk_font_chooser_set_font, gtk_font_chooser_get_font):
1309 Define for Gtk+ versions less than 3.2.
32bcadb4
JD
1310 (xg_get_font_name): Use those functions/macros here.
1311 Reported by Frans Oilinki <moilinki@gmail.com>.
1312
9ff9402d 13132012-08-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
8ccd072a
YM
1314
1315 * unexmacosx.c (copy_data_segment): Copy initialized data in
1316 statically linked libraries from input file rather than memory.
1317
db74a5fc
YM
1318 * unexmacosx.c (print_load_command_name): Add cases LC_MAIN,
1319 LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS.
1320 (dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data.
1321
25e65510
GM
13222012-08-10 Glenn Morris <rgm@gnu.org>
1323
1324 * conf_post.h (IF_LINT, lint_assume): Move here from lisp.h.
1325 * lisp.h (IF_LINT, lint_assume): Move to conf_post.h.
1326
7961135c
DA
13272012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
1328
1329 Fix last change to allow compilation with low optimization levels.
1330 * intervals.c (INTERVALS_INLINE): Define to EXTERN_INLINE.
1331 Reported by Jan Djärv <jan.h.d@swipnet.se>.
1332
42b3a444
DA
13332012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
1334
1335 Use common inline syntax in intervals.h.
1336 * intervals.h (INTERVALS_INLINE): New macro.
1337 Change all users from LISP_INLINE.
1338
9fb0c957
DA
13392012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
1340
1341 Define Qnone once for all platforms.
1342 * frame.c (Qnone): Define here.
1343 (syms_of_frame): DEFSYM it.
1344 * lisp.h (Qnone): New declaration.
1345 * nsfns.m, nsterm.h, nsterm.m, w32fns.c, w32font.c:
1346 * xfns.c: Remove duplication. Adjust users.
1347
65e8ee52
DA
13482012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
1349
1350 Remove unused macros from intervals.h.
1351 * intervals.h (MERGE_INSERTIONS, DISPLAY_INVISIBLE_GLYPH): Remove.
1352 * intervals.c: Adjust comment.
1353
9b855fd6
EZ
13542012-08-10 Eli Zaretskii <eliz@gnu.org>
1355
1356 * w32fns.c <w32_unicode_gui>: New static variable.
1357 (globals_of_w32fns): Initialize it according to os_subtype.
1358 (w32_init_class, w32_msg_pump, w32_wnd_proc): Use it instead of
1359 testing os_subtype.
1360
39cb9e56 13612012-08-10 Joakim Hårsman <joakim.harsman@gmail.com> (tiny change)
d30be705
EZ
1362 Eli Zaretskii <eliz@gnu.org>
1363
1364 Fix bug #10299 with Unicode characters sent by customized
1365 keyboards created by MSKLC.
1366 * w32fns.c (INIT_WINDOW_CLASS): New macro.
1367 (w32_init_class): Use it to initialize the Emacs class with either
1368 ANSI or Unicode API calls.
1369 (w32_msg_pump): Call GetMessageW and DispatchMessageW on NT and
1370 later.
1371 (w32_wnd_proc): If the character code sent by WM_CHAR or
1372 WM_SYSCHAR is above 255, post a WM_UNICHAR message, not the
1373 original message. Call DefWindowProcW on NT and later.
1374
9374581a
GM
13752012-08-10 Glenn Morris <rgm@gnu.org>
1376
4b94e8cf
GM
1377 * Makefile.in (config_h): Fix conf_post.h out-of-tree build location.
1378
9374581a
GM
1379 * lisp.h (DIRECTORY_SEP): Let configure set it.
1380
a2752828
DA
13812012-08-09 Dmitry Antipov <dmantipov@yandex.ru>
1382
1383 Use TSET for write access to Lisp_Object slots of struct terminal.
1384 * termhooks.h (TSET): New macro.
1385 * coding.c, terminal.c, xselect.c: Adjust users.
1386
cc92c454
SM
13872012-08-08 Stefan Monnier <monnier@iro.umontreal.ca>
1388
1389 * xdisp.c (safe_eval_handler): Remove prototype. Receive args describing
1390 the failing expression, include them in the error message.
1391 * eval.c (internal_condition_case_n): Pass nargs and args to hfun.
1392 * lisp.h (internal_condition_case_n): Update declaration.
1393
4cb3e6b3
DA
13942012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
1395
1396 Inline functions to examine and change buffer overlays.
1397 * buffer.c (unchain_both): New function.
1398 * buffer.h (buffer_get_overlays, buffer_set_overlays):
1399 (buffer_has_overlays): New function.
1400 (enum overlay_type): New enum.
1401 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c:
1402 * insdel.c, intervals.c, print.c, xdisp.c: Adjust users.
1403
8707c1e5
DA
14042012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
1405
1406 Inline functions to examine and change buffer intervals.
1407 * alloc.c (mark_interval_tree): Remove.
1408 (MARK_INTERVAL_TREE): Simplify.
1409 (UNMARK_BALANCE_INTERVALS): Remove. Adjust users.
1410 * intervals.c (buffer_balance_intervals): New function.
1411 (graft_intervals_into_buffer): Adjust indentation.
1412 (set_intervals_multibyte): Simplify.
1413 * buffer.h (BUF_INTERVALS): Remove.
1414 (buffer_get_intervals, buffer_set_intervals): New function.
1415 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c, insdel.c:
1416 * intervals.c, textprop.c: Adjust users.
1417
ad8c997f
DA
14182012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
1419
1420 Inline functions to examine and change string intervals.
1421 * lisp.h (STRING_INTERVALS, STRING_SET_INTERVALS): Remove.
1422 (string_get_intervals, string_set_intervals): New function.
1423 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
1424 * lread.c, print.c, textprop.c: Adjust users.
1425
32ac3a6b
GM
14262012-08-08 Glenn Morris <rgm@gnu.org>
1427
1428 * lisp.mk (lisp): Remove language/persian.elc.
1429
77c7bcb1
DA
14302012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
1431
1432 Cleanup intervals.
1433 * intervals.h (NULL_INTERVAL, DEFAULT_INTERVAL): Remove.
1434 (NULL_INTERVAL_P): Likewise. Adjust users.
14ae4239
BT
1435 (FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P):
1436 Adjust comment. Move under #if 0.
77c7bcb1
DA
1437 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
1438 * print.c, syntax.c, textprop.c, xdisp.c: Adjust users.
1439
9c08a8d4
DA
14402012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
1441
1442 Check total length of intervals with eassert.
1443 * intervals.h (CHECK_TOTAL_LENGTH): Remove.
1444 * intervals.c: Change all users to eassert.
1445
26d16b35
EZ
14462012-08-07 Eli Zaretskii <eliz@gnu.org>
1447
14ae4239
BT
1448 * .gdbinit (xframe, xwindow, nextcons, xcar, xcdr, xlist):
1449 Rename fields to match removal of FGET and WGET and disuse of
26d16b35
EZ
1450 INTERNAL_FIELD in Lisp_Cons.
1451
c644523b
DA
14522012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
1453
1454 Revert and cleanup Lisp_Cons, Lisp_Misc and Lisp_Symbol things.
1455 * lisp.h (struct Lisp_Symbol): Change xname to meaningful
1456 name since all xname users are fixed long time ago. Do not
1457 use INTERNAL_FIELD.
1458 (set_symbol_name, set_symbol_function, set_symbol_plist):
1459 (set_symbol_next, set_overlay_plist): New function.
1460 (struct Lisp_Cons): Do not use INTERNAL_FIELD.
1461 (struct Lisp_Overlay): Likewise.
1462 (CVAR, MVAR, SVAR): Remove.
1463 * alloc.c, buffer.c, buffer.h, bytecode.c, cmds.c, data.c:
1464 * doc.c, eval.c, fns.c, keyboard.c, lread.c, nsselect.m:
1465 * xterm.c: Adjust users.
1466 * .gdbinit: Change to use name field of struct Lisp_Symbol
1467 where appropriate.
1468
6a3d20cc
DA
14692012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
1470
1471 Basic functions to set Lisp_Object and pointer slots of intervals.
1472 * intervals.h (interval_set_parent, interval_set_object):
1473 (interval_set_left, interval_set_right, interval_set_plist):
1474 (interval_copy_parent): New function.
1475 (SET_INTERVAL_OBJECT, SET_INTERVAL_PARENT, INTERVAL_PTR_SIZE): Remove.
14ae4239
BT
1476 (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE):
1477 Adjust indentation.
6a3d20cc
DA
1478 (INTERVAL_SIZE): Remove. Adjust users.
1479 * alloc.c, intervals.c, lread.c, textprop.c: Use new functions.
1480
4d2b044c
DA
14812012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
1482
1483 Drop PGET and revert read access to Lisp_Objects slots of Lisp_Process.
1484 * process.h (PGET): Remove.
1485 (struct Lisp_Process): Do not use INTERNAL_FIELD.
1486 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
1487
d3d50620
DA
14882012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
1489
1490 Drop WGET and revert read access to Lisp_Objects slots of struct window.
1491 * window.h (WGET): Remove.
1492 (struct window): Do not use INTERNAL_FIELD.
1493 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
1494 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
1495 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
1496 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
1497 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
1498 Adjust users.
1499
d10a51dc
CY
15002012-08-07 Chong Yidong <cyd@gnu.org>
1501
1502 * window.c (Fwindow_edges, Fwindow_pixel_edges)
1503 (Fwindow_absolute_pixel_edges, Fdelete_other_windows_internal)
1504 (Fdelete_window_internal): Signal an error if the window is not on
1505 a live frame (Bug#12025).
1506
e69b0960
DA
15072012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
1508
1509 Drop FGET and revert read access to Lisp_Objects slots of struct frame.
1510 * frame.h (FGET): Remove.
1511 (struct frame): Do not use INTERNAL_FIELD.
1512 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
1513 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
1514 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
1515 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
1516
25a20a3a
JB
15172012-08-06 Juanma Barranquero <lekktu@gmail.com>
1518
1519 * w32.c: Silence compiler warnings.
1520 (map_w32_filename): Remove unused variable `is_fat'.
1521 (chase_symlinks): Add parentheses around expression.
1522
1c6f11f4
GM
15232012-08-06 Glenn Morris <rgm@gnu.org>
1524
1db4583a
GM
1525 * sysdep.c: Respect BROKEN_GETWD.
1526
1c6f11f4
GM
1527 * dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT):
1528 Let configure handle it.
1529 (stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it.
1530
2b90362b
DA
15312012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
1532
1533 Use GCALIGNMENT where appropriate.
1534 * alloc.c (XMALLOC_HEADER_ALIGNMENT, roundup_size):
1535 (union aligned_Lisp_Symbol, union aligned_Lisp_Misc):
1536 (mark_maybe_pointer, pure_alloc): Change to use GCALIGNMENT.
1537
5f50daf2
EZ
15382012-08-06 Eli Zaretskii <eliz@gnu.org>
1539
14ae4239
BT
1540 * w32menu.c (set_frame_menubar, initialize_frame_menubar):
1541 Don't use FRAME_MENU_BAR_ITEMS as an lvalue.
5f50daf2 1542
cbcc7007
SM
15432012-08-06 Stefan Monnier <monnier@iro.umontreal.ca>
1544
1545 * buffer.h (struct buffer): Revert `indirections' to a simple int;
1546 that should be sufficient for everyone.
1547
4d365fa4
JD
15482012-08-06 Jan Djärv <jan.h.d@swipnet.se>
1549
1550 * keyboard.c (timer_check_2): Add break so timer_check returns next
1551 timeout.
1552
dd86bd82
DA
15532012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
1554
1555 Fix Windows build errors introduced after converting to WGET and WSET.
1556 * w32term.c (w32_set_vertical_scroll_bar): Change to use WSET.
1557 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
1558
054e1668
JD
15592012-08-06 Jan Djärv <jan.h.d@swipnet.se>
1560
1561 * nsterm.m (ns_frame_rehighlight): Use FSET.
1562
1563 * nsmenu.m (ns_update_menubar): Use FSET.
1564
21238f11
DA
15652012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
1566
1567 Separate read and write access to Lisp_Object slots of Lisp_Process.
1568 * process.h (PGET, PSET): New macros similar to AREF and ASET.
1569 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
1570
077288cf
DA
15712012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
1572
1573 Separate read and write access to Lisp_Object slots of struct window.
1574 * window.h (WGET, WSET): New macros similar to AREF and ASET.
1575 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
1576 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
1577 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
1578 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
1579 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
1580 Adjust users.
1581
71688bd7
DA
15822012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
1583
1584 Fix Windows build errors introduced after converting to FGET and FSET.
1585 * w32term.c (x_frame_rehighlight, x_scroll_bar_create):
1586 (w32_condemn_scroll_bars, w32_redeem_scroll_bar):
1587 (w32_judge_scroll_bars): Change to use FSET.
1588 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
1589
f99bac93
DA
15902012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
1591
1592 Fix replacement typo.
1593 * window.c (replace_window): Set root_window instead of
1594 selected_window. This fixes a total window subsystem
1595 malfunction reported by Bastien Guerry <bzg@gnu.org>.
1596
8c2a0f2d
GM
15972012-08-06 Glenn Morris <rgm@gnu.org>
1598
1599 * lisp.mk (lisp): Add language/persian.elc.
1600
edd74c35
DA
16012012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
1602
1603 Separate read and write access to Lisp_Object slots of struct frame.
1604 * frame.h (FGET, FSET): New macros similar to AREF and ASET.
1605 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
1606 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
1607 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
1608 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
1609
8671676c
AS
16102012-08-05 Andreas Schwab <schwab@linux-m68k.org>
1611
1612 * emacs.c (decode_env_path): Only use defaulted if WINDOWSNT.
1613
663e2b3f
DA
16142012-08-05 Dmitry Antipov <dmantipov@yandex.ru>
1615
1616 Generalize common compile-time constants.
1617 * lisp.h (header_size, bool_header_size, word_size): Now here.
1618 (struct Lisp_Vector): Add comment.
1619 (struct Lisp_Bool_Vector): Move up to define handy constants.
1620 (VECSIZE, PSEUDOVECSIZE): Simplify.
1621 (SAFE_ALLOCA_LISP): Use new constant. Adjust indentation.
1622 * buffer.c, buffer.h, bytecode.c, callint.c, eval.c, fns.c:
1623 * font.c, fontset.c, keyboard.c, keymap.c, macros.c, menu.c:
1624 * msdos.c, w32menu.c, w32term.h, window.c, xdisp.c, xfaces.c:
1625 * xfont.c, xmenu.c: Use word_size where appropriate.
1626
d32e47af
LM
16272012-08-05 Lawrence Mitchell <wence@gmx.li>
1628
1629 * search.c (Freplace_match): Treat \? in the replacement text
1630 literally (Bug#8161).
1631
e5d9c0d1
CY
16322012-08-05 Chong Yidong <cyd@gnu.org>
1633
1634 * term.c (Vsuspend_tty_functions, Vresume_tty_functions):
1635 * frame.c (Vdelete_frame_functions):
1636 * emacs.c (Vkill_emacs_hook): Doc fix.
1637
8da0576b
EZ
16382012-08-04 Eli Zaretskii <eliz@gnu.org>
1639
1640 * xfns.c (x_set_menu_bar_lines): Fix compilation error in
1641 --with-x-toolkit=no builds.
1642 Reported by Carsten Mattner <carstenmattner@gmail.com>.
1643
02676e5d
CY
16442012-08-04 Chong Yidong <cyd@gnu.org>
1645
1646 * syntax.c (Fmodify_syntax_entry): Doc fix.
1647
97147da9
EZ
16482012-08-04 Eli Zaretskii <eliz@gnu.org>
1649
76151e2c
EZ
1650 Fix startup warnings about ../site-lisp on MS-Windows. (Bug#11959)
1651 * w32.c (init_environment): Change the default values of many
1652 environment variables in dflt_envvars[] to NULL, to avoid pushing
14ae4239
BT
1653 them into environment when they were not already defined.
1654 Remove the code that deletes site-lisp subdirectories from the default
76151e2c 1655 value of EMACSLOADPATH, as it is no longer needed.
14ae4239
BT
1656 (check_windows_init_file): Now external, not static.
1657 Use Vload_path as is, without adding anything, as this function is now
76151e2c
EZ
1658 called when Vload_path is already set up.
1659
1660 * w32.h (check_windows_init_file): Add prototype.
1661
1662 * emacs.c (init_cmdargs) [WINDOWSNT]: When running from the build
1663 directory, ignore the /*/i386/ tail in Vinvocation_directory, for
1664 compatibility with Posix platforms.
1665 (main): Move the call to check_windows_init_file to here from
1666 w32.c.
1667 (decode_env_path) [WINDOWSNT]: Expand the %emacs_dir%/ prefix, if
1668 any, in the DEFALT argument into the root of the Emacs build or
1669 installation tree, as appropriate.
1670
1671 * callproc.c (init_callproc_1): Call decode_env_path instead of
1672 doing its equivalent by hand.
1673 (init_callproc): Replace DOS_NT condition with MSDOS, thus letting
1674 the code that sets Vexec_path run on MS-Windows.
1675
1676 * lread.c (init_lread): Add comments to #ifdef's.
1677
97147da9
EZ
1678 * msdos.c (dos_set_window_size, IT_update_begin)
1679 (IT_frame_up_to_date, IT_set_frame_parameters): Use FVAR and WVAR
1680 instead of direct references.
1681
185ee146
PE
16822012-08-04 Paul Eggert <eggert@cs.ucla.edu>
1683
1684 Export DEFAULT_REHASH_* to GDB.
1685 * lisp.h (DEFAULT_REHASH_THRESHOLD, DEFAULT_REHASH_SIZE):
1686 Now constants, not macros.
1687
8834c57a
PE
16882012-08-03 Paul Eggert <eggert@cs.ucla.edu>
1689
98c6f1e3
PE
1690 Remove unnecessary casts involving pointers.
1691 These casts are no longer needed now that we assume C89 or later,
1692 since they involve casting to or from void *.
1693 * alloc.c (make_pure_string, make_pure_c_string, pure_cons)
1694 (make_pure_float, make_pure_vector):
1695 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP):
1696 * macros.c (Fstart_kbd_macro):
1697 * menu.c (find_and_return_menu_selection):
1698 * minibuf.c (read_minibuf_noninteractive):
1699 * sysdep.c (closedir):
1700 * xdisp.c (x_produce_glyphs):
1701 * xfaces.c (compare_fonts_by_sort_order):
1702 * xfns.c (x_real_positions, select_visual):
1703 * xselect.c (x_stop_queuing_selection_requests)
1704 (x_get_window_property, x_get_window_property_as_lisp_data):
1705 * xterm.c (x_set_frame_alpha, x_find_modifier_meanings):
1706 Remove unnecessary pointer casts.
1707 * alloc.c (record_xmalloc): New function.
1708 * lisp.h (record_xmalloc): New decl.
1709 (SAFE_ALLOCA): Now takes just one arg -- the size -- and acts
1710 more like a function. This is because the pointer cast is not
1711 needed. All uses changed.
1712 * print.c (print_string, print_error_message): Avoid length recalc.
1713
8834c57a
PE
1714 Improve fix for macroexp crash with debugging (Bug#12118).
1715 * lisp.h (ASET) [ENABLE_CHECKING]: Pay attention to
1716 ARRAY_MARK_FLAG when checking subscripts, because ASET is
1717 not supposed to be invoked from the garbage collector.
1718 See Andreas Schwab in <http://bugs.gnu.org/12118#25>.
1719 (gc_aset): New function, which is like ASET but can be
1720 used in the garbage collector.
1721 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
1722 (set_hash_index): Use it instead of ASET.
1723
6dad7178
EZ
17242012-08-03 Eli Zaretskii <eliz@gnu.org>
1725
1726 Support symlinks on latest versions of MS-Windows.
1727 * w32.c: Include winioctl.h and aclapi.h.
1728 (is_symlink, chase_symlinks, enable_privilege, restore_privilege)
1729 (revert_to_self): Forward declarations of static functions.
1730 <static BOOL g_b_init_get_security_info>:
1731 <g_b_init_create_symbolic_link>: New static flags.
1732 (globals_of_w32): Initialize them to zero.
1733 (GetSecurityInfo_Proc, CreateSymbolicLink_Proc): New typedefs.
1734 (map_w32_filename): Improve commentary. Simplify switch.
1735 (SYMBOLIC_LINK_FLAG_DIRECTORY): Define if not defined in system
1736 headers (most versions of MinGW w32api don't).
1737 (get_security_info, create_symbolic_link)
1738 (get_file_security_desc_by_handle, is_symlink, chase_symlinks):
1739 New functions.
1740 (sys_access, sys_chmod): Call 'chase_symlinks' to resolve symlinks
1741 in the argument file name.
1742 (sys_access): Call unc_volume_file_attributes only if
1743 GetFileAttributes fails with network-related error codes.
1744 (sys_rename): Diagnose renaming of a symlink when the user doesn't
1745 have the required privileges.
14ae4239 1746 (get_file_security_desc_by_name): Rename from
6dad7178
EZ
1747 get_file_security_desc.
1748 (stat_worker): New function, with most of the guts of 'stat', and
14ae4239
BT
1749 with addition of handling of symlinks and support for 'lstat'.
1750 If possible, get file's attributes and security information by
6dad7178
EZ
1751 handle, not by name. Produce S_IFLNK bit for symlinks, when
1752 called from 'lstat'.
1753 (stat, lstat): New functions, call 'stat_worker'.
1754 (symlink, readlink, careadlinkat): Rewritten to create and resolve
1755 symlinks when the underlying filesystem supports them.
1756
f162bcc3
PE
17572012-08-02 Paul Eggert <eggert@cs.ucla.edu>
1758
79ea6c20
PE
1759 Fix macroexp crash on Windows with debugging (Bug#12118).
1760 * lisp.h (ASET) [ENABLE_CHECKING]: Ignore ARRAY_MARK_FLAG when
1761 checking subscripts; problem introduced with the recent
1762 "ASET (a, i, v)" rather than "AREF (a, i) = v" patch.
1763 (ARRAY_MARK_FLAG): Now a macro as well as a constant,
1764 since it's used in non-static inline functions now.
1765
c0ce93fd
PE
1766 * xfaces.c (face_at_buffer_position, face_for_overlay_string):
1767 Don't assume buffer size fits in 'int'. Remove unused local.
c71f5156 1768
f162bcc3
PE
1769 Use C99-style 'extern inline' if available.
1770 * buffer.h (BUFFER_INLINE):
1771 * category.h (CATEGORY_INLINE):
1772 * character.h (CHARACTER_INLINE):
1773 * charset.h (CHARSET_INLINE):
1774 * composite.h (COMPOSITE_INLINE):
1775 * dispextern.h (DISPEXTERN_INLINE):
1776 * lisp.h (LISP_INLINE):
1777 * systime.h (SYSTIME_INLINE):
1778 New macro, replacing 'static inline' in this header.
1779 * buffer.h, category.h, character.h, charset.h, composite.h:
1780 * dispextern.h, lisp.h, systime.h:
1781 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
1782 * alloc.c (LISP_INLINE):
1783 * buffer.c (BUFFER_INLINE):
1784 * category.c (CATEGORY_INLINE):
1785 * character.c (CHARACTER_INLINE):
1786 * charset.c (CHARSET_INLINE):
1787 * composite.c (COMPOSITE_INLINE):
1788 * dispnew.c (DISPEXTERN_INLINE):
1789 * sysdep.c (SYSTIME_INLINE):
1790 Define to EXTERN_INLINE, so that the corresponding functions
1791 are compiled into code.
1792 * conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN)
1793 (INLINE_HEADER_END): New macros.
1794 * lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant,
1795 since it's used in non-static inline functions now.
a8333d03 1796 (VALMASK) [!USE_LSB_TAG]: Likewise.
f162bcc3 1797
837b365b
GM
17982012-08-02 Glenn Morris <rgm@gnu.org>
1799
d66b744d
GM
1800 * s/: Remove empty directory.
1801
837b365b
GM
1802 * s/ms-w32.h: Move to ../nt/inc.
1803 * makefile.w32-in (TAGS, TAGS-gmake, MS_W32_H):
1804 Update for new ms-w32.h location.
1805
13294f95
PE
18062012-08-02 Paul Eggert <eggert@cs.ucla.edu>
1807
1808 Port to Solaris 8.
1809 * syswait.h (WRETCODE): Remove, consistently with ../configure.ac.
1810
90df0db3
GM
18112012-08-02 Glenn Morris <rgm@gnu.org>
1812
1813 * nsterm.m (ns_exec_path, ns_load_path): Use SEPCHAR rather than
1814 hard-coding the path separator.
1815
4939150c
PE
18162012-08-01 Paul Eggert <eggert@cs.ucla.edu>
1817
1818 Use "ASET (a, i, v)" rather than "AREF (a, i) = v".
1819 This how ASET and AREF are supposed to work, and makes
1820 it easier to think about future improvements. See
1821 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00026.html>.
1822 * charset.h (set_charset_attr): New function.
1823 All lvalue-style uses of CHARSET_DECODER etc. changed to use it.
1824 * lisp.h (ASET): Rewrite so as not to use AREF in an lvalue style.
1825 (aref_addr): New function. All uses of &AREF(...) changed.
1826 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
1827 (set_hash_index): New functions. All lvalue-style uses of
1828 HASH_KEY etc. changed.
1829 * keyboard.c (set_prop): New function. All lvalue-style uses
1830 of PROP changed.
1831
947b2afd
AA
18322012-08-01 Alp Aker <alp.tekin.aker@gmail.com>
1833
1834 * nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar)
1835 (EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:)
1836 (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114)
1837 * nsfns.m (ns_set_name_as_filename): Likewise.
1838 * nsmenu.m (ns_update_menubar): Likewise.
1839 * nsselect.m (symbol_to_nsstring): Adjust to use SVAR.
1840
4f5d0325
EZ
18412012-08-01 Eli Zaretskii <eliz@gnu.org>
1842
2008beae
EZ
1843 * .gdbinit (xcar, xcdr, xlist, xwindow, nextcons, xprintsym):
1844 Adapt to latest changes in field names of the corresponding Lisp
288479f6 1845 objects.
2008beae 1846
4f5d0325
EZ
1847 * xdisp.c (try_window_id): Use WVAR in IF_DEBUG code.
1848
fe3cc771
GM
18492012-08-01 Glenn Morris <rgm@gnu.org>
1850
1851 * s/msdos.h: Remove file.
1852 * conf_post.h [MSDOS]: New section, moved from s/msdos.h.
1853 * Makefile.in (S_FILE): Remove.
1854 (config_h): Remove S_FILE.
1855
c90acc54
JB
18562012-08-01 Juanma Barranquero <lekktu@gmail.com>
1857
1858 * s/ms-w32.h (DEVICE_SEP, IS_DIRECTORY_SEP, IS_ANY_SEP):
1859 Remove; moved to nt/config.nt.
1860
d8a05828
DA
18612012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
1862
1863 Use INTERNAL_FIELD for conses and overlays.
1864 * lisp.h (struct Lisp_Cons): Use INTERNAL_FIELD.
1865 Remove obsolete comment.
1866 (MVAR): New macro.
1867 (struct Lisp_Overlay): Use INTERNAL_FIELD.
1868 * alloc.c, buffer.c, buffer.h, fns.c: Adjust users.
1869
8271d590
DA
18702012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
1871
1872 Use INTERNAL_FIELD for symbols.
1873 * lisp.h (SVAR): New macro. Adjust users.
1874 * alloc.c, bytecode.c, cmds.c, data.c, doc.c, eval.c:
1875 * fns.c, keyboard.c, lread.c, xterm.c: Users changed.
1876
3193acd2
DA
18772012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
1878
1879 Use INTERNAL_FIELD for processes.
1880 * process.h (PVAR): New macro. Adjust style.
1881 (struct Lisp_Process): Change Lisp_Object members to INTERNAL_FIELD.
1882 * print.c, process.c, sysdep.c, w32.c, xdisp.c: Users changed.
1883
3a45383a
DA
18842012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
1885
1886 Use INTERNAL_FIELD for windows.
1887 * window.h (WVAR): New macro.
1888 (struct window): Change Lisp_Object members to INTERNAL_FIELD.
1889 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
1890 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
1891 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, nsterm.m, print.c:
1892 * textprop.c, w32fns.c, w32menu.c, w32term.c, window.c, xdisp.c:
1893 * xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
1894
c1dbc63c
PE
18952012-08-01 Paul Eggert <eggert@cs.ucla.edu>
1896
1897 * coding.h (CODING_ATTR_FLUSHING): Remove; unused and wouldn't work.
1898
5c0c0e8a
GM
18992012-08-01 Glenn Morris <rgm@gnu.org>
1900
1901 * lisp.h (IS_DIRECTORY_SEP, IS_DEVICE_SEP, IS_ANY_SEP):
1902 Move to configure.ac.
1903
552a99b4
JB
19042012-08-01 Juanma Barranquero <lekktu@gmail.com>
1905
1906 * makefile.w32-in (CONFIG_H): Update dependencies.
1907 (CONF_POST_H): New macro.
1908
1909 * s/ms-w32.h (SEPCHAR, NULL_DEVICE): Remove; moved to nt/config.nt.
1910
8d8e2dfe
GM
19112012-07-31 Glenn Morris <rgm@gnu.org>
1912
bc96620a
GM
1913 * Makefile.in (S_FILE): No longer set by configure.
1914
476b1b2d
GM
1915 * conf_post.h (config_opsysfile): Move earlier, so that WINDOWSNT
1916 is available.
1917 (alloca.h) [WINDOWSNT]: Don't include it on MS Windows.
1918
b2c7a106
GM
1919 * process.h (NULL_DEVICE):
1920 * emacs.c (SEPCHAR):
1921 * editfns.c (USER_FULL_NAME): Let configure set them.
1922
d53d062a
GM
1923 * s/README, s/template.h: Remove files.
1924
4515017f
GM
1925 * conf_post.h [HPUX]: Undefine HAVE_RANDOM and HAVE_RINT.
1926
8d8e2dfe
GM
1927 * conf_post.h (AMPERSAND_FULL_NAME, subprocesses):
1928 Move to configure.ac.
1929
5b20b3cc
EZ
19302012-07-31 Eli Zaretskii <eliz@gnu.org>
1931
1e0afd9a
EZ
1932 * .gdbinit (xframe): Adapt to introduction of FVAR and the
1933 resulting renaming of 'struct frame' members.
1934
5b20b3cc
EZ
1935 * w32menu.c (w32_menu_show): Revert bogus introduction of FVAR.
1936
1937 * fontset.c (dump_fontset): Fix compilation with ENABLE_CHECKING
1938 after introduction of FVAR.
1939
f1310128
JD
19402012-07-31 Jan Djärv <jan.h.d@swipnet.se>
1941
79e721e0
JD
1942 * nsmenu.m (update_frame_tool_bar): Change key from NSObject* to id.
1943
1944 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Use drawInRect
1945 instead of compositeToPoint.
1946 (applicationShouldTerminate): Pass NS String literal to NSRunAlertPanel.
1947
8d7c7eed 1948 * nsfns.m, nsmenu.m, nsterm.m: Adopt to struct frame/FVAR changes.
f1310128 1949
e34f7f79
DA
19502012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
1951
1952 Generalize INTERNAL_FIELD between buffers, keyboards and frames.
1953 * lisp.h (INTERNAL_FIELD): New macro.
14ae4239 1954 * buffer.h (BUFFER_INTERNAL_FIELD): Remove.
e34f7f79
DA
1955 (BVAR): Change to use INTERNAL_FIELD.
1956 * keyboard.h (KBOARD_INTERNAL_FIELD): Likewise.
1957 (KVAR): Change to use INTERNAL_FIELD.
1958 * frame.h (FVAR): New macro.
1959 (struct frame): Use INTERNAL_FIELD for all Lisp_Object fields.
3a45383a
DA
1960 * alloc.c, buffer.c, data.c, dispnew.c, dosfns.c, eval.c, frame.c:
1961 * fringe.c, gtkutil.c, minibuf.c, nsfns.m, nsterm.m, print.c:
1962 * term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
e34f7f79
DA
1963 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
1964
c09bfb2f
DA
19652012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
1966
1967 Miscellaneous fixes for non-default X toolkits.
1968 * xfns.c (Fx_file_dialog): Change to SSDATA to avoid warnings.
1969 * xterm.c (x_frame_of_widget): Remove redundant prototype.
1970 Move under #ifdef USE_LUCID.
1971 (x_create_toolkit_scroll_bar): Adjust scroll_bar_name
1972 definition and usage to avoid warnings.
1973
14c114ae
JD
19742012-07-31 Jan Djärv <jan.h.d@swipnet.se>
1975
1976 * nsterm.m (openFiles): Fix previous checkin.
1977
3bd21e82
PE
19782012-07-31 Paul Eggert <eggert@cs.ucla.edu>
1979
1980 * indent.c (compute_motion): Remove unused local.
1981
c1529ded
GM
19822012-07-31 Glenn Morris <rgm@gnu.org>
1983
400d5621
GM
1984 * s/usg5-4-common.h (wait3, WRETCODE): Let configure set them.
1985
268e2432
GM
1986 * conf_post.h [USG5_4]:
1987 Move remaining contents of s/usg5-4-common.h here.
1988 * s/usg5-4-common.h: Remove file.
1989
7552f3ee
GM
1990 * conf_post.h [IRIX6_5]: Move remaining contents of s/irix6-5.h here.
1991 * s/irix6-5.h: Remove file.
1992
6a381852
GM
1993 * conf_post.h [DARWIN_OS]: Move remaining contents of s/darwin.h here.
1994 * s/darwin.h: Remove file.
1995
c1529ded
GM
1996 * conf_post.h [HPUX]: Move random, srandom here from s/hpux10-20.h.
1997 * s/hpux10-20.h: Remove file, which is now empty.
1998
b429a4ee
GM
19992012-07-30 Glenn Morris <rgm@gnu.org>
2000
2001 * conf_post.h: New, split from configure.ac's AH_BOTTOM.
2002 * Makefile.in (config_h): Add conf_post.h.
2003 * makefile.w32-in (CONFIG_H): Add conf_post.h.
2004
adff3182
JD
20052012-07-30 Jan Djärv <jan.h.d@swipnet.se>
2006
2007 * nsterm.m (ns_do_open_file): New variable.
b9031d69 2008 (ns_term_init): Set ns_do_open_file to YES after run returns.
14ae4239
BT
2009 (openFile, openTempFile, openFileWithoutUI, openFiles):
2010 Open files only if ns_do_open_file.
adff3182 2011
c32af1e4
PE
20122012-07-30 Paul Eggert <eggert@cs.ucla.edu>
2013
7393bcbb
PE
2014 * lisp.h (SWITCH_ENUM_CAST): Remove. All uses removed.
2015 This no-op macro hasn't been needed for many years.
2016 * src/regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise.
2017
c32af1e4
PE
2018 Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB.
2019 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits.
2020 * lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for
2021 gdb_make_enums_visible.
2022 (TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros.
2023 (DIRECTORY_SEP): Now a constant, not a macro.
2024
302fc036
EZ
20252012-07-30 Eli Zaretskii <eliz@gnu.org>
2026
2027 * w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to
2028 w32_kbd_patch_key as the 2nd arg. (Bug#12082)
2029
2030 * w32term.c <w32_keyboard_codepage>: Renamed from
2031 keyboard_codepage and now external. All users changed.
2032
2033 * w32term.h: Add declaration of w32_keyboard_codepage.
2034
2035 * w32inevt.c (w32_kbd_patch_key): Accept an additional argument --
2036 the codepage to translate keys to Unicode. If this argument is
2037 -1, use the value returned by GetConsoleCP. All callers changed.
2038
88fb40b4
PE
20392012-07-30 Paul Eggert <eggert@cs.ucla.edu>
2040
0aee6912
PE
2041 Update .PHONY listings in makefiles.
2042 * Makefile.in (.PHONY): Add all, mostlyclean, clean,
2043 bootstrap-clean, distclean, maintainer-clean, versioclean,
2044 extraclean, frc.
2045
88fb40b4
PE
2046 * lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t.
2047 This is a bit clearer. Fix some commentary typos.
2048
0a763bd1
GM
20492012-07-30 Glenn Morris <rgm@gnu.org>
2050
32bac6d6
GM
2051 * s/netbsd.h: Let configure include signal.h if needed.
2052 Remove file, which is now empty.
2053
b65e7c46
GM
2054 * s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND):
2055 Let configure set them.
2056 * s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND):
2057 No more need to undefine.
0a763bd1 2058
169304bd
AS
20592012-07-30 Andreas Schwab <schwab@linux-m68k.org>
2060
2061 * keymap.c (Fkey_description): Don't remove 0x80 bit from
2062 non-single-byte char when adding meta modifier. (Bug#12090)
2063
6cd7a139
DA
20642012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
2065
2066 Convert safe_call to use variable number of arguments.
2067 * xdisp.c (safe_call): Convert to use varargs. Adjust users.
2068 (safe_call2): Fix comment.
2069 * lisp.h (safe_call): Adjust prototype.
2070 * coding.c (encode_coding_object): Change to use safe_call2.
2071 * xfaces.c (merge_face_heights): Change to use safe_call1.
2072
d34d6ffc
GM
20732012-07-30 Glenn Morris <rgm@gnu.org>
2074
7b8a48e4 2075 * s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h
227f5bd0 2076 does that unconditionally. Remove file, which is now empty.
7b8a48e4 2077
d34d6ffc
GM
2078 * s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h:
2079 Remove empty files.
2080
03a660a6
PE
20812012-07-30 Paul Eggert <eggert@cs.ucla.edu>
2082
2083 Export to GDB most of lisp.h's remaining object-like macros.
2084 * lisp.h (min, max): Move earlier, because they're used earlier now.
2085 (INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK)
2086 (CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0)
2087 (CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3)
2088 (DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE)
2089 (COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING)
2090 (COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT)
2091 (CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS)
2092 (MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA):
2093 Now constants, for GDB. They need not be macros.
2094 (MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND):
2095 Now constants, for GDB, as well as macros, for static initializers.
2096 (CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS):
2097 Move to after the definition of struct Lisp_Char_Table,
2098 since the former now needs that type defined.
2099 (enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS)
2100 (enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits)
2101 (enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA):
2102 New enums, for gdb_make_enums_visible.
2103 (GLYPH_MODE_LINE_FACE): Remove; unused.
88fb40b4 2104 * alloc.c (STRING_BYTES_MAX): Now a constant, not a macro.
03a660a6
PE
2105 (gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum
2106 CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE,
2107 enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled,
2108 enum maxargs, enum MAX_ALLOCA.
2109 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove.
2110 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove;
2111 no longer needed, now that they are done in lisp.h.
2112
e499d0ee
DA
21132012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
2114
2115 Cleanup string bytes checking.
2116 * alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove. Convert
2117 all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES.
2118 (check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES.
2119 (check_sblock, compact_small_strings): Simplify.
2120
d5040d2d
PE
21212012-07-29 Paul Eggert <eggert@cs.ucla.edu>
2122
2123 * lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove.
2124 These macros are confusing and no longer need to be defined, as
2125 the enum values now suffice. All uses replaced with definiens.
2126 (Lisp_Int1, Lisp_String): Define directly; this is clearer.
2127
7f259ae6
JB
21282012-07-29 Juanma Barranquero <lekktu@gmail.com>
2129
2130 * makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O))
2131 ($(BLD)/w32console.$(O)): Update dependencies.
2132
7e63e0c3
DA
21332012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
2134
2135 Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check.
2136 * lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long
2137 time. Adjust users.
2138 (CHECK_CONS_LIST): Remove. Convert all users to check_cons_list.
2139
ffd817eb
JD
21402012-07-29 Jan Djärv <jan.h.d@swipnet.se>
2141
2142 * lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before
2143 setting sitelisp (Bug#12010).
2144
417a7a0e
EZ
21452012-07-29 Eli Zaretskii <eliz@gnu.org>
2146
14ae4239 2147 * w32heap.h (OS_9X): Rename from OS_WINDOWS_95.
417a7a0e
EZ
2148
2149 * w32heap.c (cache_system_info):
2150 * w32.c (sys_rename):
2151 * w32proc.c (find_child_console, sys_kill): All users changed.
2152
387d4d92
PE
21532012-07-29 Paul Eggert <eggert@cs.ucla.edu>
2154
2155 * alloc.c (Fgarbage_collect): Indent as per usual Emacs style.
2156
55a6cca6
EZ
21572012-07-29 Eli Zaretskii <eliz@gnu.org>
2158
2159 * makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h.
2160
dbcf001c
DA
21612012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
2162
2163 Cleanup statistics calculation in Fgarbage_collect.
14ae4239
BT
2164 * alloc.c (Fgarbage_collect): Rename t1 to meaningful start.
2165 Fix zombies percentage calculation. Simplify elapsed time calculation.
dbcf001c 2166
e2688e4a
DA
21672012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
2168
2169 Generalize marker debugging code under MARKER_DEBUG and use eassert.
2170 * insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove.
2171 (gap_left, gap_right, adjust_markers_for_delete, insert_1_both)
2172 (insert_from_string_1, insert_from_gap, insert_from_buffer_1)
2173 (replace_range, replace_range_2, del_range_2): Change to eassert.
2174 * marker.c (byte_char_debug_check): Adjust style.
2175
b46a6a83
PE
21762012-07-29 Paul Eggert <eggert@cs.ucla.edu>
2177
2178 Don't use the abbreviation "win" to refer to Windows (Bug#10421).
2179 * regex.c (MAX_BUF_SIZE): Remove some incorrect and
2180 long-ago-commented-out code that talks about "WIN32".
2181 * w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
2182 All uses changed.
2183
e32a5799
PE
21842012-07-28 Paul Eggert <eggert@cs.ucla.edu>
2185
2186 Use Gnulib stdalign module (Bug#9772, Bug#9960).
2187 * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
2188 Simplify by using alignof.
2189 (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
2190 * lisp.h: Include <stdalign.h>.
2191 (GCALIGNMENT): New macro and constant.
2192 (DECL_ALIGN): Remove. All uses replaced by alignas (GCALIGNMENT).
2193 (USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
2194 (stdalign): New macro, if not already defined.
2195
df81cd29
EZ
21962012-07-28 Eli Zaretskii <eliz@gnu.org>
2197
01bd1b0d
EZ
2198 Fix non-ASCII input in non-GUI frames on MS-Windows. (Bug#12055)
2199 * w32inevt.c: Include w32inevt.h.
2200 (w32_read_console_input): New inline function, calls either
2201 ReadConsoleInputA or ReadConsoleInputW, depending on the value of
2202 w32_console_unicode_input.
2203 (fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
2204 (w32_kbd_patch_key, key_event): Use the codepage returned by
2205 GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
2206 (key_event): use uChar.UnicodeChar only if
2207 w32_console_unicode_input is non-zero.
2208
2209 * w32console.c: Include w32heap.h.
2210 <w32_console_unicode_input>: New global variable.
2211 (initialize_w32_display): Set w32_console_unicode_input to 1 on NT
2212 family of Windows, zero otherwise.
2213
2214 * w32inevt.h: Declare w32_console_unicode_input.
2215
df81cd29
EZ
2216 * xdisp.c (init_iterator): Don't reference tip_frame in a build
2217 --without-x. (Bug#11742)
2218
c20fdd9e
PE
22192012-07-27 Paul Eggert <eggert@cs.ucla.edu>
2220
2221 Adjust GDB to reflect pvec_type changes (Bug#12036).
2222 * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the
14ae4239
BT
2223 2012-07-04 changes to pseudovector representation.
2224 Problem reported by Eli Zaretskii in <http://bugs.gnu.org/12036#30>.
c20fdd9e 2225
32770973 22262012-07-27 Michael Albinus <michael.albinus@gmx.de>
e518bc71
MA
2227
2228 * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session
2229 bus address.
2230 (xd_close_bus, Fdbus_init_bus): Handle reference counter properly.
2231
3438fe21
EZ
22322012-07-27 Eli Zaretskii <eliz@gnu.org>
2233
bcfbc9de
EZ
2234 * alloc.c (listn): Fix the order the arguments are consed onto the
2235 list.
2236
3438fe21
EZ
2237 * lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
2238 enumeration constants, as PURE and HEAP are too general, and clash
2239 with other headers and sources, such as gmalloc.c and the
2240 MS-Windows system headers. All users changed.
2241
eeaea515
DA
22422012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
2243
2244 Revert last save_excursion_save and save_excursion_restore changes.
2245 * alloc.c, editfns.c, marker.c, lisp.h: Revert.
2246 Lots of crashes reported by Chong Yidong <cyd@gnu.org>.
2247
073c88c2
DA
22482012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
2249
2250 Fix recently-introduced typos in Windows port.
2251 Reported by Martin Rudalics <rudalics@gmx.at>.
2252 * w32.c (init_environment): Replace comma with semicolon.
eeaea515 2253 * w32fns.c (syms_of_w32fns): Add missing parenthesis.
073c88c2 2254
4706125e
PE
22552012-07-27 Paul Eggert <eggert@cs.ucla.edu>
2256
2257 Improve GDB symbol export (Bug#12036).
2258 * .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different
2259 arms of an 'if', not using conditional expressions; otherwise GDB
2260 complains about the types in the unevaluated arm when the argument
2261 is an integer literal.
2262 (xgetint): Simplify expression.
2263 * alloc.c (gdb_make_enums_visible): New constant. This ports to
2264 GCC 3.4.2 the export of symbols to GDB. Problem reported by Eli
2265 Zaretskii in <http://bugs.gnu.org/12036#13>.
2266 * lisp.h (PUBLISH_TO_GDB): Remove. All uses removed. No longer
2267 needed now that we have gdb_make_enums_visible.
2268 (enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits)
2269 (enum enum_USE_LSB_TAG):
2270 New enum types, packaging up enums that need to be exported to GDB.
2271
694b6c97
DA
22722012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
2273
2274 Utility function to make a list from specified amount of objects.
2275 * lisp.h (enum constype): New datatype.
2276 (listn): New prototype.
2277 * alloc.c (listn): New function.
2278 (Fmemory_use_count, syms_of_alloc): Use it.
2279 * buffer.c (syms_of_buffer): Likewise.
2280 * callint.c (syms_of_callint): Likewise.
2281 * charset.c (define_charset_internal): Likewise.
2282 * coding.c (syms_of_coding): Likewise.
2283 * keymap.c (syms_of_keymap): Likewise.
2284 * search.c (syms_of_search): Likewise.
2285 * syntax.c (syms_of_syntax): Likewise.
2286 * w32.c (init_environment): Likewise.
2287 * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
2288 * xdisp.c (syms_of_xdisp): Likewise.
2289 * xfns.c (syms_of_xfns): Likewise.
2290
6195f384
DA
22912012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
2292
2293 Fast save_excursion_save and save_excursion_restore.
2294 * lisp.h (struct Lisp_Excursion): New data type.
2295 (PVEC_EXCURSION): New pseudovector type.
2296 (XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
2297 to deal with it. Adjust comments.
2298 (init_marker, attach_marker): New prototype.
2299 (unchain_marker): Adjust prototype.
2300 * marker.c (attach_marker): Change to global.
2301 (init_marker): New function.
2302 * alloc.c (Fmake_marker, build_marker): Use it.
2303 (build_marker): More easserts.
2304 (mark_object): Handle struct Lisp_Excursion.
2305 * editfns.c (save_excursion_save, save_excursion_restore):
2306 Reimplement to use struct Lisp_Excursion. Add comments.
2307
5eceb8fb
PE
23082012-07-26 Paul Eggert <eggert@cs.ucla.edu>
2309
2310 Fix export of symbols to GDB (Bug#12036).
2311 * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL)
2312 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from
2313 emacs.c, as this is a more-suitable home. Had this been done earlier
2314 the fix for 12036 would have avoided some of the problems noted in
2315 <http://bugs.gnu.org/12036#13> by Eli Zaretskii, as the scope problems
2316 would have been more obvious.
562157c8
PE
2317 * emacs.c: Do not include <verify.h>; no longer needed.
2318 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS)
5eceb8fb
PE
2319 (gdb_GCTYPEBITS, gdb_USE_LSB_TAG)
2320 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
2321 Remove; now done in lisp.h.
2322 * lisp.h (PUBLISH_TO_GDB): New macro.
2323 (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type)
2324 (DATA_SEG_BITS): Use it.
2325 (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB.
2326 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB.
2327 * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need
2328 not be usable in #if. This simplifies things.
2329
d6749401
JB
23302012-07-26 Juanma Barranquero <lekktu@gmail.com>
2331
2332 * makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies.
2333
1781b9e9
PE
23342012-07-26 Paul Eggert <eggert@cs.ucla.edu>
2335
d89518db 2336 Simplify export of symbols to GDB (Bug#12036).
1781b9e9
PE
2337 * .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix =
2338 $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway).
2339 (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr):
2340 Adjust to changes in lisp.h and emacs.c, by using
2341 CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead
2342 of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits,
2343 INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of
2344 gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS
2345 instead of gdb_valbits.
2346 (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use
2347 PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG
2348 instead of gdb_array_mark_flag.
2349 (xboolvector): Get size from $->size, not $->header.size.
2350 Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants.
2351 (xreload, hook-run, hookpost-run): Remove.
2352 * emacs.c: Include <verify.h>.
2353 (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits)
2354 (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type):
2355 Remove.
2356 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS)
2357 (gdb_USE_LSB_TAG): New enum constants.
2358 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
2359 Also define these as enum constants, so they're visible to GDB.
2360 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros.
2361 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these
2362 as constants, so they're visible to GDB.
2363 * lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS)
2364 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR):
2365 Now enum constants, not macros, so they're visible to GDB.
2366 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is
2367 more convenient now. All uses changed.
2368 (VALMASK) [USE_LSB_TAG]: Also define in this case.
2369 * mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change.
2370
3628596a
DA
23712012-07-26 Dmitry Antipov <dmantipov@yandex.ru>
2372
2373 Explicitly free restriction data that are not needed anymore.
2374 * editfns.c (save_restriction_restore): Free restriction data.
2375
7abaf5cc
SM
23762012-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
2377
2378 * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
2379 add argument, tune behavior, and adjust all callers.
2380
71f88e00
PE
23812012-07-25 Paul Eggert <eggert@cs.ucla.edu>
2382
2383 Use typedef for EMACS_INT, EMACS_UINT.
2384 * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
2385 than macros. This simplifies debugging in the usual case, since
2386 it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
2387 and it allows expressions involving EMACS_INT casts.
2388 * .gdbinit (xreload): Simplify by using EMACS_INT cast.
2389
57ec3034
JD
23902012-07-25 Jan Djärv <jan.h.d@swipnet.se>
2391
2392 * nsterm.m (ns_read_socket): Return early if there is a modal
2393 window (Bug#12043).
2394
8137e7b3
MR
23952012-07-25 Martin Rudalics <rudalics@gmx.at>
2396
2397 * frame.c (Fredirect_frame_focus): In doc-string don't mention
2398 that FOCUS-FRAME can be omitted.
2399
04e9897c
DA
24002012-07-25 Dmitry Antipov <dmantipov@yandex.ru>
2401
2402 Adjust buffer text indirection counters at the end of Fkill_buffer.
2403 * buffer.c (Fkill_buffer): Adjust indirection counters when the
2404 buffer is definitely dead. This should really fix an issue reported
2405 by Christoph Scholtes again. (Bug#12007).
2406 (init_buffer_once): Initialize indirection counters of
2407 buffer_defaults and buffer_local_symbols (for sanity and safety).
2408
8a0484e1
EZ
24092012-07-24 Eli Zaretskii <eliz@gnu.org>
2410
2411 * xdisp.c (init_iterator): Don't compute dimensions of truncation
2412 and continuation glyphs on tooltip frames, leave them at zero.
2413 Avoids continued lines in tooltips. (Bug#11832)
2414
fa691a83
DA
24152012-07-24 Dmitry Antipov <dmantipov@yandex.ru>
2416
2417 Simplify copy_overlay.
04e9897c 2418 * buffer.c (copy_overlay): Simplify. Use build_marker.
fa691a83
DA
2419 * lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks.
2420
436bc8e0
EZ
24212012-07-23 Eli Zaretskii <eliz@gnu.org>
2422
2423 * print.c (print_object): Don't crash when a frame's name is nil
2424 or invalid. (Bug#12025)
2425
2426 * window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as
2427 it signals an error when a tooltip frame is being created.
2428
d7a7fda3
DA
24292012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
2430
2431 Cleanup miscellaneous objects allocation and initialization.
2432 * alloc.c (allocate_misc): Change to static. Add argument to
2433 specify the subtype. Adjust comment and users.
2434 (build_overlay): New function.
2435 * buffer.c (copy_overlays, Fmake_overlay): Use it.
2436 * lisp.h (struct Lisp_Overlay): Remove obsolete comment.
2437 (allocate_misc): Remove prototype.
2438 (build_overlay): Add prototype.
2439
24402012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
372f8ffc
DA
2441
2442 Swap buffer text indirection counters in Fbuffer_swap_text.
2443 * buffer.c (Fbuffer_swap_text): Swap indirections too.
2444 This avoids crash reported by Christoph Scholtes at
2445 http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html.
2446
9d7fa573
JD
24472012-07-22 Jan Djärv <jan.h.d@swipnet.se>
2448
2449 * nsmenu.m (Popdown_data): New struct.
2450 (pop_down_menu): p->pointer is Popdown_data. Release the pool and
2451 free Popdown_data.
2452 (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu.
2453 (initWithContentRect): Make imgView and contentView non-static
2454 and autorelease them. Also autorelease img and matrix (Bug#12005).
2455 (dealloc): Remove (Bug#12005).
2456
0dd6d66d
DA
24572012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
2458
2459 Adjust consing_since_gc when objects are explicitly freed.
2460 * alloc.c (GC_DEFAULT_THRESHOLD): New macro.
2461 (Fgarbage_collect): Use it. Change minimum to 1/10 of default.
2462 (free_cons, free_misc): Subtract object size from consing_since_gc.
2463
d36d71df
DA
24642012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
2465
2466 Simplify and cleanup markers positioning code.
2467 * marker.c (attach_marker): More useful eassert.
2468 (live_buffer, set_marker_internal): New function.
2469 (Fset_marker, set_marker_restricted): Use set_marker_internal.
2470 (set_marker_both, set_marker_restricted_both): Use live_buffer.
2471
fb9ea40f
PE
24722012-07-22 Paul Eggert <eggert@cs.ucla.edu>
2473
2474 * buffer.h (struct buffer.indirections): Now ptrdiff_t, not int,
2475 as it's limited by the amount of memory, not by INT_MAX.
2476
2d5c5f7d
EZ
24772012-07-21 Eli Zaretskii <eliz@gnu.org>
2478
07fb592e
EZ
2479 * keyboard.c (keys_of_keyboard): Bind language-change to 'ignore'
2480 in special-event-map. See the discussion at
2481 http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00417.html
2482 for the reasons.
2483
37a9eac8 2484 * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning
14ae4239
BT
2485 info.dwItemData. Fixes crashes on 64-bit Windows.
2486 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
2d5c5f7d 2487
c4328746
JD
24882012-07-21 Jan Djärv <jan.h.d@swipnet.se>
2489
2490 * nsterm.m (accessibilityAttributeValue): New function. (Bug#11134).
4b17afa7 2491 (conversationIdentifier): Return value is NSInteger.
784051c4 2492 * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA.
c4328746 2493
6e5d1c12
CY
24942012-07-21 Chong Yidong <cyd@gnu.org>
2495
2496 * window.c (decode_any_window): Signal an error if the window is
2497 on a dead frame (Bug#11984).
2498
9928463d
DA
24992012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
2500
2501 Add indirection counting to speed up Fkill_buffer.
2502 * buffer.h (struct buffer): New member.
2503 * buffer.c (Fget_buffer_create): Set indirection counter to 0.
2504 (Fmake_indirect_buffer): Set indirection counter to -1, increment
2505 base buffer indirection counter.
2506 (compact_buffer): If ENABLE_CHECKING, verify indirection counters.
2507 (Fkill_buffer): Adjust indirection counters as needed, don't walk
2508 through buffer list if indirection counter is 0.
2509
f8643a6b
DA
25102012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
2511
2512 Extend the value returned by Fgarbage_collect with heap statistics.
2513 * alloc.c (Qheap): New symbol.
2514 (syms_of_alloc): DEFSYM it.
2515 (Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data.
2516 (Fmemory_free): Remove.
2517 (syms_of_alloc): Don't defsubr it.
2518 * buffer.c (Fcompact_buffer): Remove.
2519 (syms_of_buffer): Don't defsubr it.
2520
dac616ff
DA
25212012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
2522
2523 Make maybe_gc inline.
2524 Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline).
2525 * lisp.h (consing_since_gc, gc_relative_threshold)
2526 (memory_full_cons_threshold): Revert declaration.
2527 (maybe_gc): Remove prototype, define as inline.
2528 * alloc.c: Remove old commented-out code.
2529 (consing_since_gc, gc_relative_threshold)
2530 (memory_full_cons_threshold): Revert to global.
2531 (maybe_gc): Remove.
2532
d7ea76b4
DA
25332012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
2534
2535 Simple wrapper for make_unibyte_string, adjust font_open_by_name.
2536 * lisp.h (build_unibyte_string): New function.
2537 * dosfns.c, fileio.c, fns.c, ftfont.c, process.c:
2538 * sysdep.c, w32fns.c, xfns.c: Use it.
2539 * font.c (font_open_by_name): Change 2nd and 3rd args to the only arg
2540 of type Lisp_Object to avoid redundant calls to make_unibyte_string.
2541 Adjust users accordingly.
2542 * font.h (font_open_by_name): Adjust prototype.
2543
765e61e3
DA
25442012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
2545
2546 Cleanup calls to Fgarbage_collect.
2547 * lisp.h (maybe_gc): New prototype.
2548 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
2549 Remove declarations.
2550 * alloc.c (maybe_gc): New function.
2551 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
2552 Make them static.
2553 * bytecode.c (MAYBE_GC): Use maybe_gc.
2554 * eval.c (eval_sub, Ffuncall): Likewise.
2555 * keyboard.c (read_char): Likewise. Adjust call to maybe_gc
2556 to avoid dependency from auto-save feature.
2557
52b852c7
PE
25582012-07-19 Paul Eggert <eggert@cs.ucla.edu>
2559
2560 * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'.
2561 (FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from
2562 'for_each_per_buffer_object_at'.
2563 All uses changed. It's better to use upper-case for macros that
2564 cannot be implemented as functions, to give the reader a clue
2565 that they're special.
2566
5db81e33
SM
25672012-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
2568
2569 * alloc.c (Fgarbage_collect): Tweak docstring.
2570
5b835e1d
DA
25712012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
2572
2573 Tweak the value returned from Fgarbage_collect again.
2574 * alloc.c (Fgarbage_collect): New return value, as confirmed in
2575 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00418.html.
2576 Adjust documentation.
2577 (total_vector_bytes): Rename to total_vector_slots, adjust
2578 accounting.
2579 (total_free_vector_bytes): Rename to total_free_vector_slots,
2580 adjust accounting.
2581 (Qstring_bytes, Qvector_slots): New symbols.
2582 (syms_of_alloc): DEFSYM them.
2583
9cd47b72
DA
25842012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
2585
2586 Buffer compaction primitive which may be used from Lisp.
2587 * buffer.c (compact_buffer, Fcompact_buffer): New function.
2588 (syms_of_buffer): Register Fcompact_buffer.
2589 * alloc.c (Fgarbage_collect): Use compact_buffer.
2590 * buffer.h (compact_buffer): New prototype.
2591 (struct buffer_text): New member.
2592
d17337e5
DA
25932012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
2594
2595 New macro to iterate over all buffers, miscellaneous cleanups.
2596 * lisp.h (all_buffers): Remove declaration.
2597 * buffer.h (all_buffers): Add declaration, with comment.
2598 (for_each_buffer): New macro.
2599 * alloc.c (Fgarbage_collect, mark_object): Use it.
2600 * buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte)
2601 (init_buffer): Likewise.
2602 * data.c (Fset_default): Likewise.
2603 * coding.c (code_conversion_restore): Remove redundant check
2604 for dead buffer.
2605 * buffer.c (Fkill_buffer): Likewise. Remove obsolete comment.
2606
60cfd278
AS
26072012-07-18 Andreas Schwab <schwab@linux-m68k.org>
2608
2609 Fix bug that created negative-length intervals.
2610 * intervals.c (merge_interval_right, merge_interval_left):
2611 Do not zero out this interval if it is absorbed by its children,
2612 as this interval's total length doesn't change in that case. See
2613 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00403.html>.
2614
d06714cb
PE
26152012-07-18 Paul Eggert <eggert@cs.ucla.edu>
2616
83713154
PE
2617 * alloc.c (Fmake_bool_vector): Fix off-by-8 bug
2618 when invoking (make-bool-vector N t) and N is a positive
2619 multiple of 8 -- the last 8 bits were mistakenly cleared.
2620
d06714cb
PE
2621 Remove some struct layout assumptions in bool vectors.
2622 * alloc.c (bool_header_size): New constant.
2623 (header_size, word_size): Move earlier, as they're now used earlier.
2624 Use 'word_size' in a few more places, where it's appropriate.
2625 (Fmake_bool_vector, sweep_vectors): Don't assume that there is no
2626 padding before the data member of a bool vector.
2627 (sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather
2628 than doing the check by hand with an abort ().
2629
464d5a5e
SM
26302012-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
2631
5fbc0409
SM
2632 * eval.c (Fdefvar): Don't check constants since we only set the var if
2633 it's not yet defined anyway (bug#11904).
2634
464d5a5e
SM
2635 * lisp.h (last_undo_boundary): Declare new var.
2636 * keyboard.c (command_loop_1): Set it.
2637 * cmds.c (Fself_insert_command): Use it to only remove boundaries that
2638 were auto-added by the command loop (bug#11774).
2639
8dc2e44a
AS
26402012-07-18 Andreas Schwab <schwab@linux-m68k.org>
2641
2642 * w32font.c (Qsymbol): Remove local definition.
2643 (syms_of_w32font): Don't DEFSYM it.
2644
169925ec
DA
26452012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
2646
2647 Fix sweep_vectors to handle large bool vectors correctly.
2648 * alloc.c (sweep_vectors): Account total_vector_bytes for
2649 bool vectors larger than VBLOCK_BYTES_MAX.
2650
5fbfb018
CY
26512012-07-18 Chong Yidong <cyd@gnu.org>
2652
2653 * frame.c (x_set_frame_parameters): Revert bogus change introduced
2654 in 2012-05-25 commit by Paul Eggert (Bug#11738).
2655
3ab6e069
DA
26562012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
2657
2658 Return more descriptive data from Fgarbage_collect.
2659 Suggested by Stefan Monnier in
2660 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00369.html.
2661 * alloc.c (bounded_number): New function.
2662 (total_buffers, total_vectors): New variable.
2663 (total_string_size): Rename to total_string_bytes, adjust users.
2664 (total_vector_size): Rename to total_vector_bytes, adjust users.
2665 (sweep_vectors): Account total_vectors and total_vector_bytes.
2666 (Fgarbage_collect): New return value. Adjust documentation.
2667 (gc_sweep): Account total_buffers.
2668 (Fmemory_free, Fmemory_use_counts): Use bounded_number.
2669 (VECTOR_SIZE): Remove.
2670 * data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global.
2671 (Qinterval, Qmisc): New symbols.
2672 (syms_of_data): Initialize them.
2673 * lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat)
2674 (Qcons, Qbuffer): New declarations.
2675
6d02fe5b
PE
26762012-07-17 Paul Eggert <eggert@cs.ucla.edu>
2677
2678 * alloc.c (Fmemory_free): Account for memory-free's own storage.
2679 Round up, not down. Improve doc.
2680
b7ffe040
DA
26812012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
2682
2683 Restore old code in allocate_string_data to avoid Faset breakage.
2684 Reported by Julien Danjou <julien@danjou.info> in
2685 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00371.html.
2686 * alloc.c (allocate_string_data): Restore old code with minor
2687 adjustments, fix comment to explain this subtle issue.
2688
4dc7c8d5
SM
26892012-07-17 Eli Zaretskii <eliz@gnu.org>
2690
2691 Remove FILE_SYSTEM_CASE.
2692 * s/msdos.h (FILE_SYSTEM_CASE): Don't define.
2693
2694 * fileio.c (FILE_SYSTEM_CASE): Don't define.
2695 (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE.
2696 Fixes problems on MS-DOS with Vtemp_file_name_pattern when
2697 call-process-region passes it through expand-file-name.
2698
2699 * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE.
2700
27012012-07-17 Andreas Schwab <schwab@linux-m68k.org>
2702
2703 Fix crash when creating indirect buffer (Bug#11917)
2704 * buffer.c (buffer_lisp_local_variables): Add argument CLONE.
2705 Don't handle unbound variables specially if non-zero.
2706 (Fbuffer_local_variables): Pass zero.
2707 (clone_per_buffer_values): Pass non-zero.
2708
27092012-07-17 Andreas Schwab <schwab@linux-m68k.org>
2710
2711 * gnutls.c (emacs_gnutls_handshake): Revert last change. Add QUIT
2712 to make the loop interruptible.
2713
27142012-07-17 Andreas Schwab <schwab@linux-m68k.org>
2715
2716 * gnutls.c (emacs_gnutls_handshake): Only retry if
2717 GNUTLS_E_INTERRUPTED.
2718
cce7fefc
DA
27192012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
2720
2721 Cleanup and convert miscellaneous checks to eassert.
2722 * alloc.c (mark_interval): Fix comment, partially rephrase
2723 old comment from intervals.h (see below).
2724 * intervals.c (find_interval, adjust_intervals_for_insertion)
2725 (delete_interval, adjust_intervals_for_deletion)
2726 (graft_intervals_into_buffer, temp_set_point_both, copy_intervals):
2727 Convert to eassert.
2728 (adjust_intervals_for_insertion, make_new_interval):
2729 Remove obsolete and unused code.
2730 * intervals.h (struct interval): Remove obsolete comment.
2731 * textprotp.c (erase_properties): Remove unused code.
2732 (Fadd_text_properties, set_text_properties_1, Fremove_text_properties)
2733 (Fremove_list_of_text_properties): Convert to eassert.
2734
9ea10cc3
CY
27352012-07-17 Chong Yidong <cyd@gnu.org>
2736
2737 * editfns.c (Finsert_char): Doc fix.
2738
3900d5de
DA
27392012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
2740
2741 Fix previous change to make Fmemory_free always accurate.
2742 * alloc.c (make_interval): Update total_free_intervals.
2743 (make_float): Likewise for total_free_floats.
2744 (free_cons, Fcons): Likewise for total_free_conses.
2745 (SETUP_ON_FREE_LIST, allocate_vector_from_block):
2746 Likewise for total_free_vector_bytes.
2747 (Fmake_symbol): Likewise for total_free_symbols.
2748 (bytes_free): Remove.
2749
7098646f
DA
27502012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
2751
2752 Simple free memory accounting feature.
2753 * alloc.c (bytes_free, total_free_vector_bytes): New variable.
2754 (sweep_vectors): Accumulate size of free vectors.
2755 (Fgarbage_collect): Setup bytes_free.
2756 (Fmemory_free): New function.
2757 (syms_of_alloc): Register it.
2758
22657b40
DA
27592012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
2760
2761 Cleanup overlays checking.
2762 * buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP.
2763 * buffer.c (overlay_touches_p, recenter_overlay_lists): Change to
2764 eassert and OVERLAYP.
2765 (sort_overlays): Change to use OVERLAYP.
2766
ddfc8813
RK
27672012-07-16 René Kyllingstad <Rene@Kyllingstad.com> (tiny change)
2768
2769 * editfns.c (Finsert_char): Make it interactive, and make the
2770 second arg optional. Copy interactive spec and docstring from
2771 ucs-insert.
2772
7c26cf3c
PE
27732012-07-17 Paul Eggert <eggert@cs.ucla.edu>
2774
2775 * floatfns.c (Fabs): Do not wrap fabs inside IN_FLOAT (Bug#11913).
2776 Unlike the other wrapped functions, fabs has an unspecified
2777 effect on errno.
2778
5d127af9
JD
27792012-07-16 Jan Djärv <jan.h.d@swipnet.se>
2780
2781 * nsterm.m (keyDown): Interpret flags without left/right bits
2782 as the left key (Bug#11670).
2783
6a0dd1d7
DA
27842012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
2785
2786 Remove empty and useless init functions.
2787 * lisp.h (init_character_once, init_fns, init_image)
2788 (init_filelock, init_sound): Remove prototype.
2789 * character.c (init_character_once): Remove.
2790 * filelock.c (init_filelock): Likewise.
2791 * fns.c (init_fns): Likewise.
2792 * image.c (init_image): Likewise.
2793 * sound.c (init_sound): Likewise.
2794 * emacs.c (main): Adjust accordingly.
2795
7a6136fd
DA
27962012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
2797
2798 * gtkutil.h: Tiny cleanups.
2799 (use_old_gtk_file_dialog): Remove useless declaration.
2800 (xg_uses_old_file_dialog): Add suggested const attribute.
2801
ce811ad9
EZ
28022012-07-15 Eli Zaretskii <eliz@gnu.org>
2803
2804 * bidi.c (MAX_STRONG_CHAR_SEARCH): New macro.
2805 (bidi_paragraph_init): Use it to limit search forward for a strong
2806 directional character in abnormally large paragraphs full of
2807 neutral or weak characters. (Bug#11943)
2808
c9adfeaa
SF
28092012-07-15 Stefano Facchini <stefano.facchini@gmail.com> (tiny change)
2810
2811 * gtkutil.c (xg_create_tool_bar): Apply "primary-toolbar" style to
2812 the toolbar (Bug#9451).
2813 (xg_make_tool_item): Give the widget event box a transparent
2814 background.
2815
fff62aa9
DA
28162012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
2817
2818 Cleanup basic allocation variables and functions.
2819 * alloc.c (ignore_warnings, init_intervals, init_float)
2820 (init_cons, init_symbol, init_marker): Remove.
2821 (interval_block_index): Initialize to INTERVAL_BLOCK_SIZE.
2822 (float_block_index): Initialize to FLOAT_BLOCK_SIZE.
2823 (cons_block_index): Initialize to CONS_BLOCK_SIZE.
2824 (symbol_block_size): Initialize to SYMBOL_BLOCK_SIZE.
2825 (marker_block_index): Initialize to MARKER_BLOCK_SIZE.
2826 (staticidx, init_alloc_once, init_strings, free_ablock):
2827 Remove redundant initialization.
2828 * fns.c (init_weak_hash_tables): Remove.
2829 * lisp.h (init_weak_hash_tables): Remove prototype.
2830
9730daca
DA
28312012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
2832
2833 Use zero_vector where appropriate.
2834 * alloc.c (zero_vector): Define as Lisp_Object. Adjust users
2835 accordingly.
2836 * lisp.h (zero_vector): New declaration.
2837 * font.c (null_vector): Remove.
2838 (syms_of_font): Remove initialization and staticpro.
2839 (font_list_entities, font_find_for_lface): Change to use zero_vector.
2840 * keymap.c (Faccessible_keymaps): Likewise.
2841
2e2d2a13
LL
28422012-07-15 Leo Liu <sdl.web@gmail.com>
2843
2844 * fringe.c: Fix typo in comments.
2845
cd276f6e
LL
28462012-07-14 Leo Liu <sdl.web@gmail.com>
2847
2848 * fringe.c: Add a new bitmap exclamation-mark.
2849
5a1131d9
EZ
28502012-07-14 Eli Zaretskii <eliz@gnu.org>
2851
2852 * gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference.
2853
2854 * s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE)
2855 (HAVE_MENUS): Don't define, defined by editing config.in with
2856 msdos/sed2v2.inp.
2857 (GMALLOC_INHIBIT_VALLOC): Don't define.
2858 (MODE_LINE_BINARY_TEXT): Remove, not used anymore.
2859
22e983b7
JB
28602012-07-14 Juanma Barranquero <lekktu@gmail.com>
2861
2862 * s/ms-w32.h (GC_SETJMP_WORKS, GC_MARK_STACK): Set in nt/config.nt.
2863
5b3f250f
GM
28642012-07-14 Glenn Morris <rgm@gnu.org>
2865
2866 * s/aix4-2.h, s/freebsd.h, s/gnu-linux.h, s/hpux10-20.h:
2867 * s/irix6-5.h, s/netbsd.h, s/sol2-6.h, s/unixware.h:
2868 Let configure set GC_SETJMP_WORKS, GC_MARK_STACK.
2869
33d63ff4
GM
28702012-07-13 Glenn Morris <rgm@gnu.org>
2871
5b633342
GM
2872 * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Let configure set it.
2873
33d63ff4
GM
2874 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Let configure set it.
2875 * s/irix6-5.h (SETUP_SLAVE_PTY): No more need to unset it.
2876
b55b9f85
JD
28772012-07-13 Jan Djärv <jan.h.d@swipnet.se>
2878
0dc8cf50
JD
2879 * nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP.
2880 (x_free_frame_resources): Pass x_free_frame_resources to NSTRACE.
2881 (ns_lisp_to_color, ns_string_to_lispmod, ns_term_init)
2882 (ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA
2883 where appropriate.
2884 (ns_exec_path, ns_load_path, changeFont): Put () around assignment used
2885 as boolean expression.
2886 (x_set_window_size): Remove unused variable toolbar.
2887 (ns_get_color_default, ns_mod_to_lisp): Remove.
2888 (ns_mouse_position): Remove unused variables xchar and ychar.
2889 (ns_compute_glyph_string_overhangs): Remove unused variable face.
2890 (ns_set_vertical_scroll_bar): Remove unused variable count.
2891 (ns_delete_terminal): Remove unused variable i.
2892 (ns_term_init): Remove unused variables r, g and b.
2893 (mouseDown): Remove unused variable window.
2894 (windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP.
2895 (initFrameFromEmacs): Remove unused variable vbextra.
2896 (mouseEntered): Remove unused variables p and dpyinfo.
2897 (mouseExited): Remove unused variables p and r.
2898 (ns_define_frame_cursor, ns_clear_frame_area)
2899 (ns_draw_window_cursor, ns_initialize_display_info): Make static.
2900 (menuDown): Assign [sender tag] to variable and cast the variable.
2901
2902 * nsterm.h (menuDown): Add id as type to argument sender.
2903 (ns_display_info_for_name): Add Lisp_Object argument.
2904 (ns_term_init): Add Lisp_Object argument.
2905 (ns_map_event_to_object): Add void argument.
2906 (ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct
2907 prototype with arguments and only declare if __OBJC__.
2908 (nxatoms_of_nsselect): Add void argument.
2909 (ns_lisp_to_cursor_type): Add Lisp_Object argument.
2910 (ns_alloc_autorelease_pool): Add void argument.
2911 (ns_release_autorelease_pool): Add void* argument.
2912 (ns_get_defaults_value): Add const char* argument.
2913
2914 * nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog)
2915 (initFromContents): Use SSDATA where appropriate.
2916 (ns_update_menubar): Add braces to ambigous if-else.
2917 (initWithTitle): Put () around assignment in if statement.
2918 (ns_menu_show): Remove unused variables window and keymap.
2919 (update_frame_tool_bar): Remove unused variable selected_p.
2920 (initWithContentRect): Remove unused variable this_cmd_name.
2921
2922 * nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where
2923 appropriate.
2924 (setXBMColor): Remove unused variable len.
2925 (setPixmapData): Put () around assignment in loop statement.
2926
2927 * nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script)
2928 (ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA
2929 where appropriate.
2930 (ns_get_covering_families, ns_findfonts, nsfont_list_family): Put ()
2931 around assignment in loop statement.
2932 (nsfont_open): Remove unused variable i.
2933 (nsfont_open): Remove unused variable len.
2934 (nsfont_draw): Remove unused variable cs.
2935
2936 * nsfns.m (x_set_icon_name, ns_set_name_internal)
2937 (ns_set_name_as_filename, ns_implicitly_set_icon_type)
2938 (x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name)
2939 (Fns_get_resource, Fns_set_resource, Fx_open_connection)
2940 (Fns_font_name, Fns_perform_service)
2941 (Fns_convert_utf8_nfd_to_nfc, ns_do_applescript)
2942 (Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate.
2943 (ns_set_name): Remove unused variable view.
2944 (x_set_menu_bar_lines): Remove unused variable olines.
2945 (x_set_tool_bar_lines): Remove unused variable root_window.
2946 (Fns_list_colors): Put () around assignment in while statement.
2947 (Fns_perform_service): Remove unused variable len.
2948 (Fns_display_usable_bounds): Remove unused variable top.
2949 (syms_of_nsfns): Remove unused variable i.
2950
b55b9f85
JD
2951 * nsmenu.m (ns_update_menubar): Exchange place of argument 2 and 3 to
2952 memcpy (Bug#11907).
2953
ed9265fc 29542012-07-13 Kalle Kankare <kalle.kankare@iki.fi> (tiny change)
2277de02
JD
2955
2956 * image.c (Fimagemagick_types): Initialize ex with GetExceptionInfo
2957 and free it with DestroyExceptionInfo (Bug#11558).
2958
ef099b57
JB
29592012-07-13 Juanma Barranquero <lekktu@gmail.com>
2960
2961 * s/ms-w32.h (FIRST_PTY_LETTER, HAVE_SOCKETS): Move to nt/config.nt.
2962 (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE___BUILTIN_UNWIND_INIT):
2963 Set here, not in nt/config.nt.
2964
ea814a5d
EZ
29652012-07-13 Eli Zaretskii <eliz@gnu.org>
2966
2967 * xdisp.c (move_it_in_display_line_to): On GUI terminals, allow
2968 cursor overflow into the last glyph on display line when the right
2969 fringe is off. (Bug#11832)
2970
1a952767
PE
29712012-07-13 Paul Eggert <eggert@cs.ucla.edu>
2972
2973 * xdisp.c (produce_special_glyphs): Now static.
2974 * dispextern.h (produce_special_glyphs): Remove decl.
2975
983188fd
GM
29762012-07-13 Glenn Morris <rgm@gnu.org>
2977
8d7c7eed 2978 * s/bsd-common.h, s/cygwin.h: Remove empty files.
32fb4bb6
GM
2979 * s/freebsd.h, s/netbsd.h: Do not include bsd-common.h.
2980
983188fd
GM
2981 * s/usg5-4-common.h (USG, USG5):
2982 * s/template.h (USG5, USG, HPUX, BSD4_2, BSD_SYSTEM):
2983 * s/sol2-6.h (SOLARIS2):
2984 * s/irix6-5.h (IRIX6_5):
2985 * s/hpux10-20.h (USG, USG5, HPUX):
2986 * s/gnu-linux.h (USG, GNU_LINUX):
2987 * s/freebsd.h (BSD_SYSTEM):
2988 * s/darwin.h (BSD4_2, BSD_SYSTEM, DARWIN_OS):
2989 * s/cygwin.h (CYGWIN):
2990 * s/bsd-common.h (BSD_SYSTEM, BSD4_2):
2991 * s/aix4-2.h (USG, USG5, _AIX): Move "system type" macros to configure.
2992
d1e68667 29932012-07-13 BT Templeton <bpt@hcoop.net> (tiny change)
24ef80ae
PE
2994
2995 * nsfont.m (ns_charset_covers): Don't abort if no bitmap (Bug#11853).
24ef80ae 2996
6de0e799
GM
29972012-07-13 Glenn Morris <rgm@gnu.org>
2998
739ae010
GM
2999 * s/usg5-4-common.h (NSIG_MINIMUM): Let configure set it.
3000
dbee5793
GM
3001 * s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE.
3002
6de0e799
GM
3003 * process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION.
3004 * s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro.
3005
b82da769
GM
30062012-07-12 Glenn Morris <rgm@gnu.org>
3007
4fae5a7a 3008 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure.
b82da769
GM
3009
3010 * process.c (init_process_emacs): Rename from init_process.
3011 The old name is also the name of a Mach system call.
3012 * lisp.h, emacs.c: Update for this name change.
3013 * nsgui.h, sysselect.h, s/darwin.h: Remove workaround that is no
3014 longer needed.
3015
5a979817
EZ
30162012-07-12 Eli Zaretskii <eliz@gnu.org>
3017
3018 * xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in
3019 memmove call that removes glyphs covered by the left truncation
3020 glyph. Improve commentary.
3021 (display_line): Fix display of continuation glyphs on GUI frames
3022 when the right fringe is turned off and variable-size fonts are
3023 used in the window. Move the code that appends a stretch glyph to
3024 produce_special_glyphs, so that it could be used for truncation
3025 and continuation glyphs alike.
3026 (produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch
3027 glyph of a suitably computed width, to align the special glyphs at
3028 the window margin. Code moved from display_line. (Bug#11832)
3029
3e91a053
GM
30302012-07-12 Glenn Morris <rgm@gnu.org>
3031
ba9e4b84
GM
3032 * s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES.
3033
3034 * s/gnu-linux.h, s/hpux10-20.h:
3035 Do not unconditionally define HAVE_XRMSETDATABASE.
3036
3e91a053
GM
3037 * s/gnu-linux.h (UNIX98_PTYS): Let configure set it.
3038
b300b1f4
PE
30392012-07-12 Paul Eggert <eggert@cs.ucla.edu>
3040
3041 Fix typos that broke OS X build.
3042 Reported by Randal L. Schwartz in
3043 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00225.html>.
3044 * nsterm.m (ns_timeout): Add missing local decl.
3045 (ns_get_color): snprintf -> sprintf, to fix typo.
3046
6e777848
GM
30472012-07-12 Glenn Morris <rgm@gnu.org>
3048
3f922c37
GM
3049 * src/s/aix4-2.h, src/s/cygwin.h, src/s/darwin.h:
3050 * src/s/gnu-linux.h, src/s/hpux10-20.h, src/s/irix6-5.h:
3051 * src/s/sol2-6.h, src/s/unixware.h, src/s/usg5-4-common.h:
3052 Move PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF to configure.
3053
0ab7b23a
GM
3054 * s/cygwin.h, s/darwin.h, s/gnu-linux.h, s/irix6-5.h:
3055 Move PTY_OPEN to configure.
3056
6e777848
GM
3057 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
3058 * s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h, s/template.h:
3059 * s/usg5-4-common.h: Move FIRST_PTY_LETTER, PTY_ITERATION to configure.
3060
4a7edc24
DA
30612012-07-12 Dmitry Antipov <dmantipov@yandex.ru>
3062
3063 Use empty_unibyte_string where applicable.
3064 * keyboard.c (parse_tool_bar_item): Use empty_unibyte_string.
3065 * lread.c (read1): Likewise.
3066 * xsettings.c (syms_of_xsettings): Likewise.
3067
308aab79
GM
30682012-07-12 Glenn Morris <rgm@gnu.org>
3069
42bd1719
GM
3070 * s/cygwin.h (G_SLICE_ALWAYS_MALLOC):
3071 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN):
7ccad002
GM
3072 * s/irix6-5.h (SETPGRP_RELEASES_CTTY, PREFER_VSUSP):
3073 * s/hpux10-20.h (RUN_TIME_REMAP):
3074 * s/bsd-common.h (TABDLY): Move to configure.
3075
3076 * s/hpux10-20.h, s/sol2-6.h: Move XOS_NEEDS_TIME_H to configure.
3077
3078 * s/bsd-common.h, s/darwin.h: Move TAB3 to configure.
3079
ea0bbd17 3080 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
42bd1719 3081 (BROKEN_SIGPOLL, BROKEN_GET_CURRENT_DIR_NAME): Let configure set them.
ea0bbd17
GM
3082
3083 * s/darwin.h (NO_ABORT, NO_MATHERR): Let configure set them.
51c3b9b4 3084
308aab79
GM
3085 * s/bsd-common.h, s/cygwin.h, s/gnu-linux.h, s/irix6-5.h:
3086 * s/template.h: Move NARROWPROTO to configure.
3087
ee1cf5cf
GM
30882012-07-11 Glenn Morris <rgm@gnu.org>
3089
30fe9bf4
GM
3090 * s/gnu-linux.h, s/sol2-6.h: No longer define POSIX,
3091 unused since 2011-01-17 change to systty.h.
3092
ee1cf5cf
GM
3093 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h, s/gnu-linux.h:
3094 * s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
3095 Move HAVE_PTYS and HAVE_SOCKETS to configure.
3096
63e47e07
PE
30972012-07-11 Paul Eggert <eggert@cs.ucla.edu>
3098
3099 * s/sol2-6.h (HAVE_LIBKSTAT): Remove. (Bug#11914)
3100
c43fb4c3
GM
31012012-07-11 Glenn Morris <rgm@gnu.org>
3102
3103 * s/darwin.h, s/gnu-linux.h, s/template.h:
3104 Move INTERRUPT_INPUT to configure.
3105
e8df9267
DA
31062012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
3107
3108 Minor adjustments to interning code.
3109 * lisp.h (intern, intern_c_string): Redefine as static inline
3110 wrappers for intern_1 and intern_c_string_1, respectively.
3111 (intern_1, intern_c_string_1): Rename prototypes.
14ae4239
BT
3112 * lread.c (intern_1, intern_c_string_1, oblookup):
3113 Simplify Vobarray checking.
e8df9267
DA
3114 * font.c (font_intern_prop): Likewise. Adjust comment.
3115 * w32font.c (intern_font_name): Likewise.
3116
34348bd4
AS
31172012-07-11 Andreas Schwab <schwab@linux-m68k.org>
3118
d96a1e0c
AS
3119 * gnutls.c (Fgnutls_boot): Properly parse :keylist argument.
3120
34348bd4
AS
3121 * coding.c (Fdefine_coding_system_internal): Use XCAR/XCDR instead
3122 of Fcar/Fcdr if possible.
3123 * font.c (check_otf_features): Likewise.
3124 * fontset.c (Fnew_fontset): Likewise.
3125 * gnutls.c (Fgnutls_boot): Likewise.
3126 * minibuf.c (read_minibuf): Likewise.
3127 * msdos.c (IT_set_frame_parameters): Likewise.
3128 * xmenu.c (Fx_popup_dialog): Likewise.
3129 * w32menu.c (Fx_popup_dialog): Likewise.
3130
c8add24e
GM
31312012-07-11 Glenn Morris <rgm@gnu.org>
3132
4b575b3c
GM
3133 * s/bsd-common.h, s/cygwin.h: No need to undefine INTERRUPT_INPUT,
3134 since nothing has defined it on these platforms.
3135
09f4e3b0
GM
3136 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h:
3137 * s/irix6-5.h: Move SIGNALS_VIA_CHARACTERS to configure.
3138
172bedef
GM
3139 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
3140 * s/gnu-linux.h, s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
3141 Move CLASH_DETECTION to configure.
3142
249685df
GM
3143 * s/gnu.h: Remove file, which is now empty.
3144
c8add24e
GM
3145 * s/gnu.h, s/gnu-linux.h:
3146 Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure.
3147
b41253a3
JW
31482012-07-11 John Wiegley <johnw@newartisans.com>
3149
3150 * alloc.c (mark_memory): Guard the "no_address_safety_analysis"
3151 function attribute, so we only use it if it exists in the
3152 compiler.
3153
d923b542
DA
31542012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
3155
3156 Avoid call to strlen in fast_c_string_match_ignore_case.
3157 * search.c (fast_c_string_match_ignore_case): Change to use
3158 length argument. Adjust users accordingly.
3159 * lisp.h (fast_c_string_match_ignore_case): Adjust prototype.
3160
5ebbef1d
PE
31612012-07-11 Paul Eggert <eggert@cs.ucla.edu>
3162
bb352260
PE
3163 Assume mkdir, rmdir.
3164 * sysdep.c (mkdir) [!HAVE_MKDIR]: Remove.
3165 * sysdep.c (rmdir) [!HAVE_RMDIR]: Remove.
3166
57054ddd
PE
3167 Assume rename.
3168 * sysdep.c (rename) [!HAVE_RENAME]: Remove.
3169
b747d3f7
PE
3170 Assume perror.
3171 * s/hpux10-20.h (HAVE_PERROR): Remove.
3172 * sysdep.c (perror) [HPUX && !HAVE_PERROR]:
3173 Remove dummy definition, as this problem was obsolete long ago.
3174
5ebbef1d
PE
3175 Assume strerror.
3176 * sysdep.c (strerror) [!HAVE_STRERROR && !WINDOWSNT]: Remove.
3177
984e7f30
DA
31782012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
3179
3180 Avoid calls to strlen in font processing functions.
3181 * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname)
14ae4239
BT
3182 (font_open_by_name): Change to use length argument.
3183 Adjust users accordingly.
d923b542
DA
3184 * font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd):
3185 Adjust prototypes.
3186 * xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd):
3187 Change to return ptrdiff_t.
984e7f30
DA
3188 (xfont_list_pattern, xfont_match): Use length returned by
3189 xfont_decode_coding_xlfd.
3190 * xfns.c (x_default_font_parameter): Omit useless xstrdup.
3191
20e94fdd
GM
31922012-07-11 Glenn Morris <rgm@gnu.org>
3193
9d596af3
GM
3194 * s/darwin.h, s/freebsd.h, s/netbsd.h:
3195 Move DONT_REOPEN_PTY to configure.
3196
20e94fdd
GM
3197 * sound.c (DEFAULT_SOUND_DEVICE) [!WINDOWSNT]:
3198 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Let configure set it.
3199
e99a530f
PE
32002012-07-10 Paul Eggert <eggert@cs.ucla.edu>
3201
22ffb973
PE
3202 Remove "#define unix" that is no longer needed (Bug#11905).
3203 * s/aix4-2.h (unix): Remove; no longer needed.
3204
e9a9ae03
PE
3205 EMACS_TIME simplification (Bug#11875).
3206 This replaces macros (which typically do not work in GDB)
3207 with functions, typedefs and enums, making the code easier to debug.
3208 The functional style also makes code easier to read and maintain.
3209 * systime.h: Include <sys/time.h> on all hosts, not just if
3210 WINDOWSNT, since 'struct timeval' is needed in general.
3211 (EMACS_TIME): Now a typedef, not a macro.
3212 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
3213 not macros.
3214 (EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
3215 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
3216 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
3217 (EMACS_TIME_LE): Now functions, not macros.
3218 (EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
3219 (EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
3220 which are not functions. All uses rewritten to use:
3221 (make_emacs_time): New function.
3222 (EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
3223 (EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
3224 not functions. All uses rewritten to use the following, respectively:
3225 (emacs_secs_addr, invalid_emacs_time, get_emacs_time)
3226 (add_emacs_time, sub_emacs_time): New functions.
ed9265fc 3227 * atimer.c: Don't include <sys/time.h>, as "systime.h" does this.
e9a9ae03
PE
3228 * fileio.c (Fcopy_file):
3229 * xterm.c (XTflash): Get the current time closer to when it's used.
3230 * makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
3231
ffacb126
PE
3232 * bytecode.c (targets): Suppress -Woverride-init warnings.
3233
e99a530f
PE
3234 Simplify by avoiding confusing use of strncpy etc.
3235 * doc.c (Fsnarf_documentation):
3236 * fileio.c (Ffile_name_directory, Fsubstitute_in_file_name):
3237 * frame.c (Fmake_terminal_frame):
3238 * gtkutil.c (get_utf8_string):
3239 * lread.c (openp):
3240 * nsmenu.m (ns_update_menubar):
3241 * regex.c (regerror):
3242 Prefer memcpy to strncpy and strncat when either will do.
3243 * fileio.c (Fsubstitute_in_file_name):
3244 * keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached)
3245 (menu_separator_name_p):
3246 * nsmenu.m (ns_update_menubar):
3247 Prefer memcmp to strncmp when either will do.
3248 * nsterm.m: Include <ftoastr.h>.
3249 (ns_get_color):
3250 * s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF):
3251 Prefer snprintf to strncpy.
3252 * nsterm.m (ns_term_init):
3253 * widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy.
3254 * nsterm.m (ns_term_init):
3255 Avoid the need for strncpy, by using build_string or
3256 make_unibyte_string directly. Use dtoastr, not snprintf.
3257 * process.c (Fmake_network_process): Diagnose service names that
3258 are too long, rather than silently truncating them or creating
3259 non-null-terminated names.
3260 (Fnetwork_interface_info): Likewise, for interface names.
3261 * sysdep.c (system_process_attributes) [GNU_LINUX]:
3262 Prefer sprintf to strncat.
3263 * xdisp.c (debug_method_add) [GLYPH_DEBUG]:
3264 Prefer vsnprintf to vsprintf + strncpy.
3265
c59592b3
GM
32662012-07-10 Glenn Morris <rgm@gnu.org>
3267
3268 * dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]:
3269 Clarify fallback case.
3270
7d7bbefd
DA
32712012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
3272
3273 Use XCAR and XCDR instead of Fcar and Fcdr where possible.
3274 * callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c,
3275 * frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c,
d923b542 3276 * w32menu.c, window.c, xmenu.c: Change to use XCAR and XCDR
7d7bbefd
DA
3277 where argument type is known to be a Lisp_Cons.
3278
3a4c8000
TT
32792012-07-10 Tom Tromey <tromey@redhat.com>
3280
3281 * bytecode.c (BYTE_CODE_THREADED): New macro.
3282 (BYTE_CODES): New macro. Replaces all old byte-code defines.
3283 (enum byte_code_op): New type.
3284 (CASE, NEXT, FIRST, CASE_DEFAULT, CASE_ABORT): New macros.
3285 (exec_byte_code): Use them. Use token threading when applicable.
3286
2a0213a6
DA
32872012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
3288
3289 Optimize pure C strings initialization.
3290 * lisp.h (make_pure_string): Fix prototype.
3291 (build_pure_c_string): New function, defined as static inline. This
3292 provides a better opportunity to optimize away calls to strlen when
3293 the function is called with compile-time constant argument.
3294 * alloc.c (make_pure_c_string): Fix comment. Change to add nchars
3295 argument, adjust users accordingly. Use build_pure_c_string where
3296 appropriate.
3297 * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
3298 * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
3299 * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
3300
cb1caeaf
DA
33012012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
3302
3303 Avoid calls to strlen in miscellaneous functions.
3304 * buffer.c (init_buffer): Use precalculated len, adjust if needed.
3305 * font.c (Ffont_xlfd_name): Likewise. Change to call make_string.
3306 * lread.c (openp): Likewise.
3307
c293e30c
DA
33082012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
3309
3310 Avoid calls to strlen in path processing functions.
3311 * fileio.c (file_name_as_directory): Add comment. Change to add
3312 srclen argument and return the length of result. Adjust users
3313 accordingly.
3314 (directory_file_name): Fix comment. Change to add srclen argument,
14ae4239
BT
3315 swap 1st and 2nd arguments to obey the common convention.
3316 Adjust users accordingly.
c293e30c
DA
3317 * filelock.c (fill_in_lock_file_name): Avoid calls to strlen.
3318
9e059e3f
GM
33192012-07-10 Glenn Morris <rgm@gnu.org>
3320
d02eb359
GM
3321 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h:
3322 Move PENDING_OUTPUT_COUNT definition to configure.
3323
882cf227
GM
3324 * s/irix6-5.h (DATA_START, DATA_SEG_BITS):
3325 * s/hpux10-20.h (DATA_SEG_BITS, DATA_START):
3326 * s/gnu.h (DATA_START): Move definitions to configure.
3327
af6e839f
GM
3328 * s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards.
3329 We include usg5-4-common.h, which defines them both.
3330
40289a12
GM
3331 * s/gnu.h: Don't include fcntl.h (every file in Emacs that uses
3332 O_RDONLY already includes it).
3333
9e059e3f
GM
3334 Stop ns builds setting the EMACSLOADPATH environment variable.
3335 * nsterm.m (ns_load_path): Rename from ns_init_paths.
3336 Now it does not set EMACSLOADPATH, just returns the load-path string.
3337 * nsterm.h: Update accordingly.
3338 * lread.c [HAVE_NS]: Include nsterm.h.
3339 (init_lread) [HAVE_NS]: Use ns_load_path.
3340 * emacs.c (main) [HAVE_NS]: No longer call ns_init_paths.
3341
7c4e8ec0
GM
33422012-07-09 Glenn Morris <rgm@gnu.org>
3343
d4f600ff
GM
3344 * s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here,
3345 since the included bsd-common.h does so.
3346
cbb31951
GM
3347 Stop ns builds setting the EMACSPATH environment variable.
3348 * nsterm.m (ns_exec_path): New function, split from ns_init_paths.
3349 (ns_init_paths): Do not set EMACSPATH.
3350 * nsterm.h (ns_exec_path): Add it.
3351 * callproc.c (init_callproc_1, init_callproc) [HAVE_NS]:
3352 Use ns_exec_path.
3353
7c4e8ec0
GM
3354 * nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return.
3355
26bccfae
PE
33562012-07-09 Paul Eggert <eggert@cs.ucla.edu>
3357
a0bee46f
PE
3358 * process.c (wait_reading_process_output): 'waitchannels' was unset
3359 when read_kbd || !NILP (wait_for_cell); fix this.
3360
5994c183
PE
3361 Add GCC-style 'const' attribute to functions that can use it.
3362 * character.h (char_resolve_modifier_mask):
3363 * keyboard.h (make_ctrl_char):
3364 * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe)
3365 (init_character_once, next_almost_prime, init_fns, init_image)
3366 (flush_pending_output, init_sound):
3367 * mem-limits.h (start_of_data):
3368 * menu.h (finish_menu_items):
3369 Add ATTRIBUTE_CONST.
3370 * emacs.c (DEFINE_DUMMY_FUNCTION):
3371 Declare the dummy function with ATTRIBUTE_CONST.
3372 * lisp.h (Fbyteorder, Fmax_char, Fidentity):
3373 Add decls with ATTRIBUTE_CONST.
3374
26bccfae
PE
3375 Minor improvements to make_formatted_string.
3376 * alloc.c (make_formatted_string): Prefer int to ptrdiff_t
3377 where int is good enough, as vsprintf returns an int.
3378 * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF.
3379
a8290ec3
DA
33802012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
3381
3382 Use make_formatted_string to avoid double length calculation.
3383 * lisp.h (make_formatted_string): New prototype.
3384 * alloc.c (make_formatted_string): New function.
3385 * buffer.c (Fgenerate_new_buffer_name): Use it.
3386 * dbus.c (syms_of_dbusbind): Likewise.
3387 * editfns.c (Fcurrent_time_zone): Likewise.
3388 * filelock.c (get_boot_time): Likewise.
3389 * frame.c (make_terminal_frame, set_term_frame_name)
3390 (x_report_frame_params): Likewise.
3391 * image.c (gs_load): Likewise.
3392 * minibuf.c (get_minibuffer): Likewise.
3393 * msdos.c (dos_set_window_size): Likewise.
3394 * process.c (make_process): Likewise.
3395 * xdisp.c (ensure_echo_area_buffers): Likewise.
3396 * xsettings.c (apply_xft_settings): Likewise.
3397
d01ba2f1
GM
33982012-07-09 Glenn Morris <rgm@gnu.org>
3399
3400 Stop ns builds polluting the environment with EMACSDATA, EMACSDOC.
3401 * nsterm.m (ns_etc_directory): New function, split from ns_init_paths.
3402 (ns_init_paths): Do not set EMACSDATA, EMACSDOC.
3403 * nsterm.h (ns_etc_directory): Add it.
3404 * callproc.c [HAVE_NS]: Include nsterm.h.
3405 (init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory.
3406
f1f924b6
DA
34072012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
3408
3409 Move marker debugging code under MARKER_DEBUG.
3410 * marker.c (MARKER_DEBUG): Move marker debugging code under
3411 #ifdef MARKER_DEBUG because byte_char_debug_check is too slow
3412 for bootstrap with --enable-checking (~3x slowdown reported
3413 by Juanma Barranquero <lekktu@gmail.com>).
3414 (verify_bytepos): Move under #ifdef MARKER_DEBUG.
3415
ab531b66
PE
34162012-07-08 Paul Eggert <eggert@cs.ucla.edu>
3417
3418 * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t.
3419 See <http://bugs.gnu.org/11825#29>.
3420
c4b3bc8a
EZ
34212012-07-08 Eli Zaretskii <eliz@gnu.org>
3422
3423 * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph
3424 has no font, use the frame's font. (Bug#11813)
3434fe8a
EZ
3425 (display_line): Add commentary about displaying truncation glyphs
3426 on GUI frames.
3427 (produce_special_glyphs): Move here from term.c.
3428
3429 * term.c (produce_special_glyphs): Move to xdisp.c.
3430
3431 * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c
3432 section.
c4b3bc8a 3433
b676b881
AS
34342012-07-07 Andreas Schwab <schwab@linux-m68k.org>
3435
f17c5273
AS
3436 * xdisp.c (display_line): Avoid warning about implicit declaration
3437 of FRAME_FONT.
3438
298819b9
AS
3439 * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM.
3440
b676b881
AS
3441 * lisp.h: Remove empty conditional.
3442
6045c4fd
PE
34432012-07-07 Paul Eggert <eggert@cs.ucla.edu>
3444
b3350bf9
PE
3445 * lread.c (load_path_check): Now static.
3446
6045c4fd
PE
3447 Fix some minor --with-ns problems found by static checking.
3448 * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
3449 (x_set_font) [!HAVE_X_WINDOWS]:
3450 * image.c (xpm_load_image) [HAVE_NS]:
3451 (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
3452 (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
3453 Remove unused local.
3454 (Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
3455 (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
3456 * image.c (x_create_bitmap_from_file) [HAVE_NS]:
3457 (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
3458 * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
3459 * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
3460 Fix pointer signedness problem.
3461 * xfaces.c (FRAME_X_FONT_TABLE):
3462 * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
3463
929e7845
GM
34642012-07-07 Glenn Morris <rgm@gnu.org>
3465
3466 * lread.c (load_path_check): New function, split from init_lread.
3467 (init_lread): Reorganize. Motivation:
3468 If EMACSLOADPATH is set, check/warn about that rather than the
3469 defaults, which we are not going to use. Hence we can remove
3470 the turn_off_warning and WINDOWSNT || HAVE_NS tests.
3471 Don't warn if site-lisp directories are missing.
3472 If not installed, start from a blank load-path, since
3473 PATH_LOADSEARCH refers to the eventual installation directories.
3474
58dd0aa4
EZ
34752012-07-07 Eli Zaretskii <eliz@gnu.org>
3476
3477 Support truncation and continuation glyphs on GUI frames, when
3478 fringes are disabled. (Bug#11832)
3479 * xdisp.c (init_iterator): Get dimensions of truncation and
14ae4239
BT
3480 continuation glyphs even if on GUI frames.
3481 Adjust it->last_visible_x on GUI frames when the left or right fringes,
58dd0aa4
EZ
3482 or both, are absent.
3483 (start_display, move_it_in_display_line_to): Handle the case of a
3484 GUI frame without a fringe to display continuation or truncation
3485 glyphs.
3486 (insert_left_trunc_glyphs): Support GUI frames: make sure
3487 truncation glyphs overwrite enough glyphs from the current line to
3488 have sufficient space in pixels.
3489 (display_line): Support truncation and continuation glyphs on GUI
3490 frames. If some spare pixels are left on the line after inserting
3491 the truncation glyphs, fill that space with a stretch glyph of a
3492 suitably computed width.
3493
3494 * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not
3495 produce_glyphs, to support GUI sessions.
3496
31571fd7
PE
34972012-07-07 Paul Eggert <eggert@cs.ucla.edu>
3498
5a16b9bc
PE
3499 * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781).
3500
f3047c75
PE
3501 * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797).
3502
31571fd7
PE
3503 Do not require float-time's arg to fit in time_t (Bug#11825).
3504 This works better on hosts where time_t is unsigned, and where
3505 float-time is applied to the (negative) difference between two times.
3506 * editfns.c (decode_time_components): Last arg is now double *,
3507 not int *, and means to store all the result as a double, without
3508 worrying about whether the seconds part fits in time_t.
3509 All callers changed.
3510 (lisp_time_argument): Remove last int * arg, as it's no longer needed.
3511 All callers changed.
3512 (Ffloat_time): Do not fail merely because the specified time falls
3513 outside of time_t range.
3514
4516fbef
GM
35152012-07-07 Glenn Morris <rgm@gnu.org>
3516
3517 * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV):
3518 * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM):
3519 * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively).
3520
07adc2c6
JB
35212012-07-07 Juanma Barranquero <lekktu@gmail.com>
3522
3523 * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)):
3524 Update dependencies.
3525
3526 * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp.
3527
fd573f31
PE
35282012-07-06 Paul Eggert <eggert@cs.ucla.edu>
3529
fee5959d
PE
3530 Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
3531 * dispextern.h, nsfns.m, nsterm.m: Include <c-strcase.h>.
3532 * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp.
3533 * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp.
3534 * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp.
3535 * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove.
3536
fd573f31
PE
3537 * xfont.c (compare_font_names): Redo to omit the need for casts.
3538
ddadbc0e
AS
35392012-07-06 Andreas Schwab <schwab@linux-m68k.org>
3540
fca8d6b6
AS
3541 * xfns.c (Fx_change_window_property): Doc fix.
3542 * w32fns.c (Fx_change_window_property): Doc fix.
3543
ddadbc0e
AS
3544 * w32fns.c (Fx_window_property): Accept the same arguments as the
3545 X Windows version. Doc fix.
3546 * xfns.c (Fx_window_property): Doc fix. (Bug#11870)
3547
ed9265fc 35482012-07-06 Juanma Barranquero <lekktu@gmail.com>
f247498e
JB
3549 Eli Zaretskii <eliz@gnu.org>
3550
3551 * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt.
3552 Windows-specific code from nt/config.nt moved here.
3553 Obsolete settings removed.
3554
216ee680
PE
35552012-07-06 Paul Eggert <eggert@cs.ucla.edu>
3556
3557 * process.c: Avoid unnecessary calls to gettime.
3558 (wait_reading_process_output): Don't get the time of day
3559 when gobbling data immediately and not waiting, as there's no need
3560 for it in that case. This removes a FIXME.
3561
bdd091e4
JD
35622012-07-06 Jan Djärv <jan.h.d@swipnet.se>
3563
3564 * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3
3565 is defined (Bug#11768).
3566
9d44f8ce
DA
35672012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
3568
3569 Fix marker debugging code.
3570 * marker.c (byte_char_debug_check): Do not perform the check
3571 if buffer is not multibyte.
090bd7cb
JB
3572 (buf_charpos_to_bytepos, buf_bytepos_to_charpos):
3573 Call byte_char_debug_check with correct arguments.
9d44f8ce 3574
90fc4786
DA
35752012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
3576
3577 Compile marker debugging code only if ENABLE_CHECKING is defined.
090bd7cb
JB
3578 * marker.c (byte_char_debug_check, count_markers):
3579 Use only if ENABLE_CHECKING is defined.
90fc4786
DA
3580 (byte_debug_flag): Remove.
3581 (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos):
3582 Always call byte_char_debug_check if ENABLE_CHECKING is defined.
3583
7b7ae965
DA
35842012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
3585
4e57b342
DA
3586 Avoid code repetition in marker-related functions.
3587 * marker.c (attach_marker): New function.
3588 (Fset_marker, set_marker_restricted, set_marker_both)
3589 (set_marker_restricted_both): Use it.
3590 (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at):
3591 Consistently rename charno to charpos.
3592 (marker_position): Add eassert.
3593 (marker_byte_position): Convert to eassert.
3594
35952012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
3596
3597 Simplify list operations in unchain_overlay and unchain_marker.
7b7ae965 3598 * buffer.c (unchain_overlay): Simplify. Add comment.
4e57b342 3599 * marker.c (unchain_marker): Simplify. Fix comments.
7b7ae965 3600
657924ff
DA
36012012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
3602
3603 Introduce fast path for the widely used marker operation.
3604 * alloc.c (build_marker): New function.
3605 * lisp.h (build_marker): New prototype.
3606 * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
3607 * composite.c (autocmp_chars): Likewise.
3608 * editfns.c (buildmark): Remove.
3609 (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
3610 (save_restriction_save): Use build_marker.
3611 * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
3612 * window.c (save_window_save): Likewise.
3613
041a49a6
DA
36142012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
3615
3616 Do not use Fdelete_overlay in delete_all_overlays
3617 to avoid redundant calls to unchain_overlay.
3618 * buffer.c (drop_overlay): New function.
3619 (delete_all_overlays, Fdelete_overlay): Use it.
3620 * minibuf.c (get_minibuffer): Fix comment.
3621
7dca65a4
PE
36222012-07-06 Paul Eggert <eggert@cs.ucla.edu>
3623
3624 Port to OpenBSD 5.1 amd64.
3625 * sysdep.c [BSD_SYSTEM]: Include <sys/param.h> before <sys/sysctl.h>.
3626 This is needed for OpenBSD, and should be harmless on all BSD systems.
3627 Also, include <sys/sysctl.h>, as it should be available on all
3628 BSD_SYSTEM hosts given that we're already calling sysctl in that case.
3629 (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but
3630 use p_pid member, not kp_proc.pid.
3631
8eb876e2
GM
36322012-07-06 Glenn Morris <rgm@gnu.org>
3633
3634 * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows.
3635
38182d90
PE
36362012-07-05 Paul Eggert <eggert@cs.ucla.edu>
3637
3638 More xmalloc and related cleanup.
3639 * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
3640 * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
3641 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
3642 * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
3643 * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
3644 * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
3645 * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
3646 * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
3647 * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
3648 * xterm.c:
3649 Omit needless casts involving void * pointers and allocation.
3650 Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
3651 as the former is more robust if P's type is changed.
3652 Prefer xzalloc to xmalloc + memset 0.
3653 Simplify malloc-or-realloc to realloc.
3654 Don't worry about xmalloc returning a null pointer.
3655 Prefer xstrdup to xmalloc + strcpy.
3656 * editfns.c (Fmessage_box): Grow message_text by at least 80 when
3657 growing it.
3658 * keyboard.c (apply_modifiers_uncached): Prefer local array to
3659 alloca of a constant.
3660
6dd5a677
EZ
36612012-07-05 Eli Zaretskii <eliz@gnu.org>
3662
3663 * xdisp.c (display_line): Fix horizontal pixel coordinates when
3664 hscroll is larger than the line width. Fixes long and futile
3665 looping inside extend_face_to_end_of_line (on a TTY) producing
3666 glyphs that are not needed and thrown away.
3667
6b312f0f
DA
36682012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
3669
3670 * marker.c (set_marker_restricted_both): Simplify by using
3671 clip_to_bounds.
3672
f520ef9b
PE
36732012-07-05 Paul Eggert <eggert@cs.ucla.edu>
3674
3675 * editfns.c (region_limit): Simplify by using clip_to_bounds.
3676
383b7c95
JD
36772012-07-05 Jan Djärv <jan.h.d@swipnet.se>
3678
3679 * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is
3680 not defined (Bug#11768).
3681 (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768).
3682 (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser)
3683 (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new
3684 followed by gtk_box_set_homogeneous (Bug#11768).
3685 (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768).
090bd7cb
JB
3686 (update_theme_scrollbar_width, xg_create_scroll_bar):
3687 Use gtk_scrollbar_new (Bug#11768).
383b7c95
JD
3688 (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3.
3689 (is_box_type): New function (Bug#11768).
3690 (xg_tool_item_stale_p): Call is_box_type.
5293d758 3691 (xg_initialize): Get settings by calling gtk_settings_get_for_screen
383b7c95
JD
3692 with default display (Bug#11768).
3693
d6e7bf45
EZ
36942012-07-05 Eli Zaretskii <eliz@gnu.org>
3695
3696 * xdisp.c (window_hscroll_limited): New function.
3697 (pos_visible_p, init_iterator): Use it to avoid overflow of pixel
3698 coordinates when window's hscroll is set to insanely large
3699 values. (Bug#11857)
3700
431391ec
JB
37012012-07-05 Juanma Barranquero <lekktu@gmail.com>
3702
3703 * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo.
3704 ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies.
3705
23f86fce
DA
37062012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
3707
3708 Cleanup xmalloc.
3709 * lisp.h (xzalloc): New prototype. Omit needless casts.
3710 * alloc.c (xzalloc): New function. Omit needless casts.
3711 * charset.c: Omit needless casts. Convert all calls to
3712 xmalloc with following memset to xzalloc.
3713 * dispnew.c: Likewise.
3714 * fringe.c: Likewise.
3715 * image.c: Likewise.
3716 * sound.c: Likewise.
3717 * term.c: Likewise.
3718 * w32fns.c: Likewise.
3719 * w32font.c: Likewise.
3720 * w32term.c: Likewise.
3721 * xfaces.c: Likewise.
3722 * xfns.c: Likewise.
3723 * xterm.c: Likewise.
3724 * atimer.c: Omit needless casts.
3725 * buffer.c: Likewise.
3726 * callproc.c: Likewise.
3727 * ccl.c: Likewise.
3728 * coding.c: Likewise.
3729 * composite.c: Likewise.
3730 * doc.c: Likewise.
3731 * doprnt.c: Likewise.
3732 * editfns.c: Likewise.
3733 * emacs.c: Likewise.
3734 * eval.c: Likewise.
3735 * filelock.c: Likewise.
3736 * fns.c: Likewise.
3737 * gtkutil.c: Likewise.
3738 * keyboard.c: Likewise.
3739 * lisp.h: Likewise.
3740 * lread.c: Likewise.
3741 * minibuf.c: Likewise.
3742 * msdos.c: Likewise.
3743 * print.c: Likewise.
3744 * process.c: Likewise.
3745 * region-cache.c: Likewise.
3746 * search.c: Likewise.
3747 * sysdep.c: Likewise.
3748 * termcap.c: Likewise.
3749 * terminal.c: Likewise.
3750 * tparam.c: Likewise.
3751 * w16select.c: Likewise.
3752 * w32.c: Likewise.
3753 * w32reg.c: Likewise.
3754 * w32select.c: Likewise.
3755 * w32uniscribe.c: Likewise.
3756 * widget.c: Likewise.
3757 * xdisp.c: Likewise.
3758 * xmenu.c: Likewise.
3759 * xrdb.c: Likewise.
3760 * xselect.c: Likewise.
3761
0497dc44
PE
37622012-07-05 Paul Eggert <eggert@cs.ucla.edu>
3763
3764 * fileio.c (time_error_value): Check the right error number.
3765 Problem reported by Troels Nielsen in
3766 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00095.html>.
3767
356e7178
PE
37682012-07-04 Paul Eggert <eggert@cs.ucla.edu>
3769
4e71fd89
PE
3770 * window.c (set_window_hscroll): Revert the 100000 hscroll limit.
3771 This should be fixed in a better way; see Eli Zaretskii in
3772 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
3773 (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
3774
f0941253
PE
3775 * fileio.c (time_error_value): Rename from special_mtime.
3776 The old name's problems were noted by Eli Zaretskii in
3777 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00087.html>.
3778
065c9eb4
PE
3779 * emacs.c (gdb_pvec_type): Change it back to enum pvec_type.
3780 This variable's comment says Emacs needs at least one GDB-visible
3781 symbol of type enum pvec_type, to work around GDB problems.
3782 The symbol's value doesn't matter.
3783
356e7178
PE
3784 * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';'
3785 that causes compilation to fail on pre-C99 compilers.
3786
ed9265fc 37872012-07-04 Juanma Barranquero <lekktu@gmail.com>
95f61aa2
JB
3788
3789 * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY)
3790 (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete.
3791
3884d954
DA
37922012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
3793
d209e2fb 3794 * buffer.c (init_buffer_once): Fix initialization of
3884d954
DA
3795 headers for buffer_defaults and buffer_local_symbols.
3796 Reported by Juanma Barranquero <lekktu@gmail.com>.
3797
ee28be33
SM
37982012-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
3799
3800 Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
3801 * lisp.h (enum pvec_type): Use fewer bits.
3802 (PSEUDOVECTOR_SIZE_BITS): New constant.
3803 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
3804 (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
3805 change in pvec_type.
3806 (PSEUDOVECTOR_TYPEP): New macro.
3807 (TYPED_PSEUDOVECTORP): Use it.
3808 * fns.c (internal_equal): Adapt code to extract pvectype.
3809 * emacs.c (gdb_pvec_type): Update type.
3810 * alloc.c (PSEUDOVECTOR_NBYTES): New macro.
3811 (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
3812 (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
3813 (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
3814 (sweep_vectors): Use it. Use local var `total_bytes' instead of
3815 abusing vector->header.next.nbytes.
3816 (live_vector_p): Use PVEC_TYPE.
3817 (mark_object): Adapt code to extract pvectype. Use switch.
3818
c7f2cd7f
PE
38192012-07-04 Paul Eggert <eggert@cs.ucla.edu>
3820
3821 * doprnt.c (doprnt): Don't assume string length fits in 'int'.
3822 Tighten new eassert a bit.
3823
8ce70ed2
DA
38242012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
3825
3826 Fix compilation with --enable-gcc-warnings and -O1
3827 optimization level.
3828 * doprnt.c (doprnt): Change type of tem to int, initialize
3829 to avoid compiler warning. Add eassert.
3830 * search.c (simple_search): Initialize match_byte to avoid
3831 compiler warning. Add eassert.
3832
dea7f1e5
PE
38332012-07-04 Paul Eggert <eggert@cs.ucla.edu>
3834
24a212eb
PE
3835 Avoid weird behavior with large horizontal scrolls.
3836 Without this change, for example, large hscroll values would
3837 mess up Emacs's display on Fedora 15 x86, presumably due to
3838 overflows in int calculations in the display code.
3839 Also, if buffers had long lines, Emacs would freeze.
3840 * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
3841 (set_window_hscroll): New function, containing the old guts of
3842 Fset_window_hscroll. Return the clipped value.
3843 (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
3844 This avoids the need to check against PTRDIFF_MAX.
3845
dea7f1e5
PE
3846 * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
3847
76046526
DA
38482012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
3849
3850 * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
3851
39adff0d
PE
38522012-07-04 Paul Eggert <eggert@cs.ucla.edu>
3853
63807d47
PE
3854 * regex.c: Suppress GCC warning on RHEL 6. (Bug#11207)
3855 Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
3856 since GCC 4.4.6 issues a bogus warning for them.
3857
39adff0d
PE
3858 Fix bugs in file timestamp newness comparisons.
3859 * fileio.c (Ffile_newer_than_file_p):
3860 * lread.c (Fload): Use full timestamp resolution of files,
3861 not just the 1-second resolution, so that files that are only
3862 slightly newer still count as newer.
3863 * fileio.c (Ffile_newer_than_file_p): Don't assume file
3864 timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
3865
dbeed9a6
PE
38662012-07-03 Paul Eggert <eggert@cs.ucla.edu>
3867
3868 * fileio.c: Improve handling of file time marker. (Bug#11852)
3869 (special_mtime): New function.
3870 (Finsert_file_contents, Fverify_visited_file_modtime):
3871 Use it to set special mtime values consistently.
3872
636334d6
AS
38732012-07-03 Andreas Schwab <schwab@linux-m68k.org>
3874
3875 * fileio.c (Finsert_file_contents): Properly handle st_mtime
3876 marker for non-existing file. (Bug#11852)
3877
e2017fe2
GM
38782012-07-03 Glenn Morris <rgm@gnu.org>
3879
3880 * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
3881 and did not make it into globals.h).
3882
404dbd37
TT
38832012-07-03 Tom Tromey <tromey@redhat.com>
3884
3885 * window.c (Fset_window_margins, Fset_window_fringes)
3886 (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
3887 * textprop.c (Fprevious_property_change): No longer static.
3888 * syntax.c (Fsyntax_table_p): No longer static.
3889 * process.c (Fget_process, Fprocess_datagram_address): No longer
3890 static.
3891 * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
3892 * keyboard.c (Fcommand_execute): No longer static.
3893 Remove EXFUN.
3894 * insdel.c (Fcombine_after_change_execute): No longer static.
3895 * image.c (Finit_image_library): No longer static.
3896 * fileio.c (Fmake_symbolic_link): No longer static.
3897 * eval.c (Ffetch_bytecode): No longer static.
3898 * editfns.c (Fuser_full_name): No longer static.
d209e2fb
JB
3899 * doc.c (Fdocumentation_property, Fsnarf_documentation):
3900 No longer static.
404dbd37
TT
3901 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
3902 static.
3903 * dired.c (Ffile_attributes): No longer static.
3904 * composite.c (Fcomposition_get_gstring): No longer static.
3905 * callproc.c (Fgetenv_internal): No longer static.
3906
3907 * ccl.h: Remove EXFUNs.
3908 * buffer.h: Remove EXFUNs.
3909 * dispextern.h: Remove EXFUNs.
3910 * intervals.h: Remove EXFUNs.
3911 * fontset.h: Remove EXFUN.
3912 * font.h: Remove EXFUNs.
3913 * dosfns.c (system_process_attributes): Remove EXFUN.
3914 * keymap.h: Remove EXFUNs.
3915 * lisp.h: Remove EXFUNs.
3916 * w32term.h: Remove EXFUNs.
3917 * window.h: Remove EXFUNs.
3918 * xsettings.h: Remove EXFUN.
3919 * xterm.h: Remove EXFUN.
3920
8e4fd1e1
GM
39212012-07-03 Glenn Morris <rgm@gnu.org>
3922
3923 * lisp.h (Frandom): Make it visible to C.
3924 * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
3925 buffer for invisible buffers. (Bug#1229)
3926
ca95b3eb
DA
39272012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
3928
3929 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
3930 values which aren't power of 2.
14ae4239
BT
3931 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro.
3932 Verify it's value and the value of VECTOR_BLOCK_SIZE. Adjust users
ca95b3eb
DA
3933 accordingly.
3934
7555c33f
SM
39352012-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
3936
3937 * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
3938
3939 * alloc.c (mark_object): Revert part of last patch to use `switch'.
3940
d12e8f5a
DA
39412012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
3942
3943 * alloc.c (allocate_vector_block): Remove redundant
3944 calls to mallopt if DOUG_LEA_MALLOC is defined.
3945 (allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
3946 avoid calls to mallopt if zero_vector is returned.
3947
296094c3
DA
39482012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
3949
3950 * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
3951 is enabled, avoid dereferencing NULL current_sblock if
3952 running undumped.
3953
36429c89
DA
39542012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
3955
3956 Cleanup basic buffer management.
3957 * buffer.h (struct buffer): Change layout to use generic vector
3958 marking code. Fix some comments. Change type of 'clip_changed'
3959 to bitfield. Remove unused #ifndef old.
3960 (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
3961 (GET_OVERLAYS_AT): Fix indentation.
3962 (for_each_per_buffer_object_at): New macro.
3963 * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
3964 (Fbuffer_local_variables): Use it.
3965 (init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
3966 * alloc.c (allocate_buffer): Adjust to match new layout of
3967 struct buffer. Fix comment.
3968 (mark_overlay): New function.
3969 (mark_buffer): Use it. Use mark_vectorlike to mark normal
3970 Lisp area of struct buffer.
3971 (mark_object): Use it. Adjust marking of misc objects
3972 and related comments.
3973
3b3e4cac
PE
39742012-07-02 Paul Eggert <eggert@cs.ucla.edu>
3975
3976 * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
3977 wrapper that is not needed because the wrapped code is a no-op (zero
3978 machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
3979 This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
3980
cf5c0175
DA
39812012-07-02 Dmitry Antipov <dmantipov@yandex.ru>
3982
3983 * alloc.c (mark_buffer): Simplify. Remove prototype.
3984 (mark_object): Add comment. Reorganize marking of vector-like
faf611c7 3985 objects. Use CHECK_LIVE for all vector-like objects except buffers
14ae4239
BT
3986 and subroutines when GC_CHECK_MARKED_OBJECTS is defined.
3987 Avoid redundant calls to mark_vectorlike for bool vectors.
cf5c0175 3988
ca26824c
GM
39892012-06-30 Glenn Morris <rgm@gnu.org>
3990
2e4c5312
GM
3991 * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
3992
ca26824c
GM
3993 * epaths.in (PATH_SITELOADSEARCH): New.
3994 * lread.c (init_lread): Use PATH_SITELOADSEARCH.
3995 This is rather than relying on --enable-locallisppath elements
3996 having "site-lisp" in their names. (Bug#10208#25, 11658)
3997
0d23c240
EZ
39982012-06-30 Eli Zaretskii <eliz@gnu.org>
3999
c9240d7a
EZ
4000 * w32proc.c (sys_select): Accept and ignore one more argument.
4001
4002 * w32.c (emacs_gnutls_pull): Call select with one more argument.
4003
0d23c240 4004 * sysselect.h [DOS_NT]: Don't include sys/select.h.
9ff8f76b 4005 (pselect) [!MS_DOS]: Redirect to sys_select.
0d23c240
EZ
4006
4007 * sysdep.c: Don't include dos.h and dosfns.h.
4008
4009 * process.c (sys_select):
4010 * msdos.c (sys_select): Accept one more argument and ignore it.
4011
4012 * msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
4013 adapt data types and code to that.
4014
4015 * dosfns.c:
4016 * msdos.c (gettime, settime): Define away the prototypes in dos.h,
4017 which clashes with the gnulib function of the same name.
4018
af5a5a98
AS
40192012-06-30 Andreas Schwab <schwab@linux-m68k.org>
4020
c5e4379c
AS
4021 * font.c (font_style_to_value, font_style_symbolic)
4022 (font_prop_validate_style): Add type checks for values in
4023 font_style_table.
4024
af5a5a98
AS
4025 * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
4026 argument.
4027 * character.c, charset.c, menu.c, process.c, window.c: Adjust all
4028 uses.
4029
8d38f461
EZ
40302012-06-29 Eli Zaretskii <eliz@gnu.org>
4031
2e5a6631
EZ
4032 * xdisp.c (try_window_id): Undo last change.
4033
8d38f461
EZ
4034 * w32.c (getwd): Adjust commentary about startup_dir.
4035 (init_environment): Always call sys_access, even in non-MSVC
4036 builds. Don't chdir to the directory of the Emacs executable.
4037 This undoes code from 1997 which was justified by the need to
4038 "avoid conflicts when removing and renaming directories". But its
4039 downside was that every relative file name was being interpreted
4040 relative to the directory of the Emacs executable, which can never
4041 be TRT. In particular, it broke sys_access when called with
4042 relative file names.
4043 (sys_access): Map GetLastError to errno.
4044
2af3565e
DA
40452012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
4046
4047 * window.h (struct window): Change type of 'fringes_outside_margins'
4048 to bitfield. Fix comment. Adjust users accordingly.
cf5c0175 4049 (struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
2af3565e
DA
4050 Adjust comment.
4051 * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
4052 to ptrdiff_t.
4053
c8d3a25c 40542012-06-29 Andreas Schwab <schwab@linux-m68k.org>
57570cd3 4055
c8d3a25c
GM
4056 * gnutls.c (emacs_gnutls_handshake):
4057 Add QUIT to make the loop interruptible.
57570cd3 4058
c8d3a25c 40592012-06-29 Glenn Morris <rgm@gnu.org>
d01fd55f 4060
c8d3a25c
GM
4061 * charset.c (init_charset): Make lack of etc/charsets fatal.
4062
3e984ee8
DA
40632012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
4064
4065 * editfns.c (region_limit): Fix type mismatch.
4066
ef884f23
DA
40672012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
4068
4069 * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
4070 undefined. Convert from xassert to eassert.
4071 * nsmenu.m: Convert from xassert to eassert.
4072 * nsterm.m: Likewise.
4073
7d7e0027
SM
40742012-06-28 Stefan Monnier <monnier@iro.umontreal.ca>
4075
4076 * editfns.c (region_limit): Clip to narrowing (bug#11770).
4077
aa754e6a
PE
40782012-06-28 Paul Eggert <eggert@cs.ucla.edu>
4079
4080 Avoid integer overflow on scroll-left and scroll-right.
4081 * window.c (HSCROLL_MAX): New macro.
4082 (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
4083 overflow when requested scroll falls outside ptrdiff_t range.
4084
80b00b08
DA
40852012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
4086
4087 * window.h (struct window): Change type of 'hscroll',
4088 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
4089 'last_modified' and 'last_overlay_modified' to EMACS_INT.
4090 Adjust users accordingly.
4091 * xdisp.c (try_cursor_movement): Replace type check with eassert.
4092 * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
4093 from EMACS_INT to ptrdiff_t.
4094 (make_window): Omit redundant initialization.
4095
62b2bcf6
JB
40962012-06-28 Juanma Barranquero <lekktu@gmail.com>
4097
4098 * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
4099
45942c7d
DA
41002012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
4101
4102 * window.h (struct window): Change type of 'use_time' and
4103 'sequence_number' from Lisp_Object to int.
4104 * frame.c (make_frame): Adjust users accordingly.
4105 * print.c (print_object): Likewise.
4106 * window.c (select_window, Fwindow_use_time, make_parent_window)
4107 (make_window): Likewise.
4108
e509cfa6
DA
41092012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
4110
4111 * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
4112 enabled with --enable-checking=[all,glyphs] configure option.
4113 Fix GLYPH_DEBUG usage assuming that it may be undefined,
4114 adjust comments accordingly.
4115 * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
4116 undefined, adjust comments accordingly.
4117 * image.c: Likewise.
4118 * scroll.c: Likewise.
4119 * w32fns.c: Likewise.
4120 * w32term.c: Likewise.
4121 * xdisp.c: Likewise.
4122 * xfaces.c: Likewise.
4123 * xfns.c: Likewise.
4124 * xterm.c: Likewise.
4125
a54e2c05
DA
41262012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
4127
4128 Generalize run-time debugging checks.
4129 * dispextern.h (XASSERTS): Remove.
4130 * fontset.c (xassert): Remove.
4131 Convert from xassert to eassert.
4132 * alloc.c: Convert from xassert to eassert.
4133 * bidi.c: Likewise.
4134 * dispnew.c: Likewise.
4135 * fns.c: Likewise.
4136 * fringe.c: Likewise.
4137 * ftfont.c: Likewise.
4138 * gtkutil.c: Likewise.
4139 * image.c: Likewise.
4140 * keyboard.c: Likewise.
4141 * menu.c: Likewise.
4142 * process.c: Likewise.
4143 * scroll.c: Likewise.
4144 * sound.c: Likewise.
4145 * term.c: Likewise.
4146 * w32console.c: Likewise.
4147 * w32fns.c: Likewise.
4148 * w32term.c: Likewise.
4149 * window.c: Likewise.
4150 * xdisp.c: Likewise.
4151 * xfaces.c: Likewise.
4152 * xfns.c: Likewise.
4153 * xselect.c: Likewise.
4154 * xterm.c: Likewise.
4155
1ec4b7b2
SM
41562012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
4157
4158 * fns.c (maybe_resize_hash_table): Output message when growing the
4159 purify-hashtable.
4160
2014308a
DA
41612012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
4162
4163 * alloc.c (allocate_string_data): Remove dead code.
4164 * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
4165 avoid GCC warning about unused macro.
4166
246155eb
DA
41672012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
4168
4169 * alloc.c (allocate_string): Omit intervals initialization.
4170 * alloc.c (make_uninit_multibyte_string): Initialize intervals
4171 as in make_pure_string and make_pure_c_string.
4172
43184b7b
DA
41732012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
4174
d209e2fb 4175 * alloc.c (allocate_string): Fix last change.
43184b7b 4176
3fe6dd74
DA
41772012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
4178
d209e2fb 4179 * alloc.c (allocate_string): Remove two redundant calls
3fe6dd74
DA
4180 to memset, add explicit initialization where appropriate.
4181
1ba6038a
GM
41822012-06-27 Glenn Morris <rgm@gnu.org>
4183
4184 * lisp.mk (lisp): Remove paths.elc.
4185
c89926a5
CY
41862012-06-27 Chong Yidong <cyd@gnu.org>
4187
4188 * doc.c (Fsubstitute_command_keys): Fix punctuation.
4189
ed6b3510
JW
41902012-06-26 John Wiegley <johnw@newartisans.com>
4191
1ec4b7b2 4192 * unexmacosx.c (copy_data_segment): Add two section names used
157e99e4
JW
4193 on Mac OS X Lion: __mod_init_func and __mod_term_func.
4194
ed6b3510
JW
4195 * alloc.c (mark_memory): Do not check with -faddress-sanitizer
4196 when building with Clang.
4197
8edd4a2b
SM
41982012-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
4199
4200 * eval.c (Fapply): Allow calling it with a single argument.
4201
f6f62d1b
EZ
42022012-06-26 Eli Zaretskii <eliz@gnu.org>
4203
4204 * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
4205 _stricmp and _strnicmp.
4206 (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
4207
62efea5e
DA
42082012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
4209
4210 * alloc.c (allocate_window): Zero out non-Lisp part of newly
4211 allocated window.
4212 (allocate_process): Likewise for new process.
8edd4a2b 4213 (allocate_terminal): Change to use offsetof.
62efea5e
DA
4214 (allocate_frame): Likewise.
4215 * frame.c (make_frame): Omit redundant initialization.
4216 * window.c (make_parent_window): Use memset.
4217 (make_window): Omit redundant initialization.
4218 * process.c (make_process): Omit redundant initialization.
4219 * terminal.c (create_terminal): Likewise.
4220
42997f4d
DA
42212012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
4222
4223 * term.c (delete_tty): Remove redundant call to memset.
4224
1130ecfc
DA
42252012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
4226
4227 * alloc.c: Remove build_string.
4228 * lisp.h: Define build_string as static inline. This provides
4229 a better opportunity to optimize away calls to strlen when the
4230 function is called with compile-time constant argument.
4231 * image.c (imagemagick_error): Convert to build_string.
4232 * w32proc.c (sys_spawnve): Likewise.
4233 * xterm.c (x_term_init): Likewise.
4234
cf38a720
PE
42352012-06-26 Paul Eggert <eggert@cs.ucla.edu>
4236
99027bdd
PE
4237 Use sprintf return value instead of invoking strlen on result.
4238 In the old days this wasn't portable, since some sprintf
4239 implementations returned char *. But they died out years ago and
4240 Emacs already assumes sprintf returns int.
4241 Similarly for float_to_string.
4242 This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
4243 * ccl.c (ccl_driver):
4244 * character.c (string_escape_byte8):
4245 * data.c (Fnumber_to_string):
4246 * doprnt.c (doprnt):
4247 * print.c (print_object):
4248 * xdisp.c (message_dolog):
4249 * xfns.c (syms_of_xfns):
4250 Use sprintf or float_to_string result to avoid need to call strlen.
4251 * data.c (Fnumber_to_string):
4252 Use make_unibyte_string, since the string must be ASCII.
4253 * lisp.h, print.c (float_to_string): Now returns int length.
4254 * term.c (produce_glyphless_glyph):
4255 Use sprintf result rather than recomputing it.
4256
cf38a720
PE
4257 Clean out last vestiges of the old HAVE_CONFIG_H stuff.
4258 * Makefile.in (ALL_CFLAGS):
4259 * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
4260 * gmalloc.c, regex.c: Include <config.h> unconditionally.
4261
3511c784
DA
42622012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
4263
0a08eb21 4264 * dispextern.h (xstrcasecmp): Define to library function
3511c784
DA
4265 strcasecmp if available.
4266 * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
4267
fb7da12e
AS
42682012-06-25 Andreas Schwab <schwab@linux-m68k.org>
4269
4270 * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
4271 Avoid comma operator.
4272 * menu.c (push_submenu_start, push_submenu_end)
4273 (push_left_right_boundary, push_menu_pane): Likewise.
4274 * msdos.c (dos_rawgetc): Likewise.
4275
afa2ffd8
DA
42762012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
4277
4278 * xfns.c (xic_create_fontsetname): Remove redundant calls
4279 to memset.
4280
b3b4476b
PE
42812012-06-25 Paul Eggert <eggert@cs.ucla.edu>
4282
4495ff38
PE
4283 * gtkutil.c (get_utf8_string): Remove redundant assignment.
4284 sprintf already null-terminates its output.
4285
b3b4476b
PE
4286 * xfns.c (x_window): Remove redundant cast.
4287
b00876c9
DA
42882012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
4289
4290 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
4291 `const char *' to `char *' to avoid compiler warning.
4292
d188e26b
PE
42932012-06-24 Paul Eggert <eggert@cs.ucla.edu>
4294
885d1d74
PE
4295 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
4296 instead of truncating it to 63 (admittedly a generous limit).
4297
d188e26b
PE
4298 * process.c: Fix spelling and caps in comments.
4299
e2f560b1
DN
43002012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
4301
e86db54b 4302 * emacs.c (setpgrp): Remove definition, unused.
e2f560b1
DN
4303 * sysdep.c (setpgrp): Remove definition, not used in this file.
4304
7583a3a1
JB
43052012-06-24 Juanma Barranquero <lekktu@gmail.com>
4306
4307 * makefile.w32-in: Update dependencies.
4308
696056c2
EZ
43092012-06-24 Eli Zaretskii <eliz@gnu.org>
4310
4311 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
4312 (SYSTIME_H): Add nt/inc/sys/time.h.
4313
4314 * systime.h [WINDOWSNT]: Include sys/time.h.
4315
4316 * s/ms-w32.h (struct timespec): Definition moved from
4317 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
4318
845ca893
PE
43192012-06-24 Paul Eggert <eggert@cs.ucla.edu>
4320
4321 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
4322 * buffer.h (buffer_slot_type_mismatch):
4323 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
4324 * eval.c (unwind_to_catch):
4325 * image.c (my_png_error, my_error_exit):
4326 * keyboard.c (quit_throw_to_read_char, user_error)
4327 (Fexit_recursive_edit, Fabort_recursive_edit):
4328 * lisp.h (die, args_out_of_range, args_out_of_range_3)
4329 (wrong_type_argument, buffer_overflow, __executable_start)
4330 (memory_full, buffer_memory_full, string_overflow, Fthrow)
4331 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
4332 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
4333 (fatal):
4334 (child_setup) [!DOS_NT]:
4335 * lread.c (end_of_file_error, invalid_syntax):
4336 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
4337 * puresize.h (pure_write_error):
4338 * search.c (matcher_overflow):
4339 * sound.c (sound_perror, alsa_sound_perror):
4340 * sysdep.c, syssignal.h (croak):
4341 * term.c (maybe_fatal, vfatal):
4342 * textprop.c (text_read_only):
4343 * undo.c (user_error):
4344 * unexmacosx.c (unexec_error):
4345 * xterm.c (x_ins_del_lines, x_delete_glyphs):
4346 Use _Noreturn rather than NO_RETURN.
4347 No need for separate decl merely because of _Noreturn.
4348 * sound.c (sound_warning, parse_sound):
4349 Remove unnecessary forward decls.
4350
f1dd8073
PE
43512012-06-24 Paul Eggert <eggert@cs.ucla.edu>
4352
4353 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
4354 * lisp.h (WAIT_READING_MAX): New macro.
4355 * dispnew.c (Fsleep_for, sit_for):
4356 * keyboard.c (kbd_buffer_get_event):
4357 * process.c (Faccept_process_output):
4358 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
4359 This improves on the previous patch, which introduced a bug
4360 when time_t is unsigned and as wide as intmax_t.
4361 See <http://bugs.gnu.org/9000#51>.
4362
b82c1755
EZ
43632012-06-23 Eli Zaretskii <eliz@gnu.org>
4364
4365 * dispnew.c (sit_for, Fsleep_for):
4366 * keyboard.c (kbd_buffer_get_event):
4367 * process.c (Faccept_process_output): Avoid compiler warnings when
4368 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
4369
ca300656
JB
43702012-06-23 Juanma Barranquero <lekktu@gmail.com>
4371
049ec95b
JB
4372 * makefile.w32-in: Update dependencies.
4373
ca300656
JB
4374 * w32.c (ltime): Add return type and declare static.
4375 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
4376
db7b8d06
PE
43772012-06-23 Paul Eggert <eggert@cs.ucla.edu>
4378
4379 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
4380 Privately reported by Herbert J. Skuhra.
4381 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
4382 All uses changed.
4383 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
4384 not make_lisp_timeval, when the argument is of type EMACS_TIME.
4385
0bd8297f
EZ
43862012-06-23 Eli Zaretskii <eliz@gnu.org>
4387
96512555
EZ
4388 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
4389 last argument of make_unibyte_string.
4390
0bd8297f
EZ
4391 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
4392 language ID in the event parameters.
4393
4394 * w32term.c (w32_read_socket): Put the new keyboard codepage into
4395 event.code, not the obscure "character set ID".
4396
63def6b6
CY
43972012-06-23 Chong Yidong <cyd@gnu.org>
4398
4399 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
4400
e8a02204
EZ
44012012-06-23 Eli Zaretskii <eliz@gnu.org>
4402
388cdec0
EZ
4403 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
4404 * w32.c (fdutimens): New function.
4405
4406 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
4407
4408 * s/ms-w32.h (pselect): Redirect to sys_select.
4409
4410 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
4411
e8a02204
EZ
4412 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
4413 in the logic of incrementing and decrementing the value of
4414 use_relocatable_buffers.
4415
d054f3fb
PE
44162012-06-23 Paul Eggert <eggert@cs.ucla.edu>
4417
4418 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
4419 Privately reported by Herbert J. Skuhra.
4420 [__FreeBSD__]: Remove "*/" typo after "#include".
4421 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
4422 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
4423 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
4424 Don't assume EMACS_TIME and struct timeval are the same type.
4425
d35af63c
PE
44262012-06-22 Paul Eggert <eggert@cs.ucla.edu>
4427
4428 Support higher-resolution time stamps (Bug#9000).
4429 The time stamps are only nanosecond-resolution at the C level,
4430 since that's the best that any real-world system supports now.
4431 But they are picosecond-resolution at the Lisp level, as that's
4432 easy, and leaves room for future OS improvements.
4433
4434 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
4435 (LIBES): Use it.
4436
4437 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
4438 Don't get current time unless it's needed.
4439
4440 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
4441 now provides it if it's absent.
4442 (start_atimer): Port to higher-res time stamps.
4443 Check for time stamp overflow. Don't get current time more
4444 often than is needed.
4445
4446 * buffer.h (struct buffer): Buffer modtime now has high resolution.
4447 Include systime.h, not time.h.
4448 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
4449
4450 * dired.c: Include stat-time.h.
4451 (Ffile-attributes): File times now have higher resolution.
4452
4453 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
4454 (struct image): Timestamp now has higher resolution.
4455
4456 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
4457 has at least microseconds now. All uses removed.
4458 (update_frame, update_single_window, update_window, update_frame_1)
4459 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
927c7216 4460 (duration_to_sec_usec): Remove; no longer needed.
d35af63c
PE
4461
4462 * editfns.c (time_overflow): Now extern.
4463 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
4464 (float-time, Fformat_time_string, Fcurrent_time_string)
4465 (Fcurrent_time_zone): Accept and generate higher-resolution
4466 time stamps.
4467 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
4468 (decode_time_components, lisp_seconds_argument): New functions.
4469 (make_time): Now static.
4470 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
4471 Report an error if the time is invalid, rather than having the caller
4472 do that.
4473
4474 * fileio.c: Include <stat-time.h>
4475 (Fcopy_file): Copy higher-resolution time stamps.
4476 Prefer to set the time stamp via a file descriptor if that works.
4477 (Fset_file_times, Finsert_file_contents, Fwrite_region)
4478 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
4479 (Fvisited_file_modtime, Fset_visited_file_modtime):
4480 Support higher-resolution time stamps.
4481
4482 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
4483
4484 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
4485
4486 * image.c (prepare_image_for_display, clear_image_cache)
4487 (lookup_image): Port to higer-resolution time stamps.
4488
4489 * keyboard.c (start_polling, bind_polling_period):
4490 Check for time stamp overflow.
4491 (read_char, kbd_buffer_get_event, timer_start_idle)
4492 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
4493 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
4494 Port to higher-resolution time stamps. Do not assume time_t is signed.
4495 (decode_timer): New function. Timers are now vectors of length 9,
4496 not 8, to accommodate the picosecond component.
4497 (timer_check_2): Use it.
4498
4499 * nsterm.m (select_timeout, timeval_subtract): Remove.
4500 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
4501 as they're a bit more accurate and handle overflow better.
4502 (ns_select): Change prototype to be compatible with pselect.
4503 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
4504 * nsterm.h (ns_select): Adjust prototype.
4505
4506 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
4507 us-resolution time stamps.
4508 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
4509
4510 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
4511
4512 * lisp.h (time_overflow): New decl.
4513 (wait_reading_process_output): First arg is now intmax_t, not int,
4514 to accommodate larger waits.
4515
4516 * process.h (struct Lisp_Process.read_output_delay):
4517 Now counts nanoseconds, not microseconds.
4518 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
4519 EMACS_HAS_USECS.
4520 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
4521 (wait_reading_process_output):
4522 Port to ns-resolution time stamps.
4523 (Faccept_process_output, wait_reading_process_output):
4524 Check for time stamp overflow. Do not assume time_t is signed.
4525 (select_wrapper): Remove; we now use pselect.
4526 (Fprocess_attributes): Now generates ns-resolution time stamps.
4527
4528 * sysdep.c: Include utimens.h. Don't include utime.h
4529 or worry about struct utimbuf; gnulib does that for us now.
4530 (gettimeofday): Remove; gnulib provides a substitute.
4531 (make_timeval): New function.
4532 (set_file_times): Now sets ns-resolution time stamps.
4533 New arg FD; all uses changed.
4534 (time_from_jiffies, ltime_from_jiffies, get_up_time)
4535 (system_process_attributes):
4536 Now returns ns-resolution time stamp. All uses changed.
4537 Check for time stamp overflow.
4538
4539 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
4540 provides a substitute now.
4541
4542 * systime.h: Include timespec.h rather than sys/time.h and time.h,
4543 since it guarantees struct timespec.
4544 (EMACS_TIME): Now struct timespec, so that we can support
4545 ns-resolution time stamps.
4546 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
4547 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
4548 (EMACS_USECS): Remove.
4549 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
4550 so multiply the arg by 1000 before storing it.
4551 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
4552 New macros.
4553 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
4554 Port to ns-resolution time stamps.
4555 (EMACS_TIME_NEG_P): Remove; replaced by....
4556 (EMACS_TIME_SIGN): New macro.
4557 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
4558 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
4559 (set_file_times, make_time, lisp_time_argument): Adjust signature.
4560 (make_timeval, make_lisp_time, decode_time_components): New decls.
4561 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
4562 that it mishandled time_t overflow. You can't compare by subtracting!
4563 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
4564 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
4565
4566 * term.c: Include <sys/time.h>.
4567 (timeval_to_Time): New function, for proper overflow wraparound.
4568 (term_mouse_position, term_mouse_click): Use it.
4569
4570 * undo.c (record_first_change): Support higher-resolution time stamps
4571 in the undo buffer.
4572 (Fprimitive_undo): Use them when restoring time stamps.
4573
4574 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
4575 (w32_get_internal_run_time):
4576 Port to higher-resolution Emacs time stamps.
4577 (ltime): Now accepts single 64-bit integer, as that's more convenient
4578 for callers.
4579
4580 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
4581
4582 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
4583 for compatibility with pselect. Support ns-resolution time stamps.
4584
4585 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
4586
4587 * xselect.c (wait_for_property_change, x_get_foreign_selection):
4588 Check for time stamp overflow, and support ns-resolution time stamps.
4589
4590 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
4591 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
4592 (timeval_subtract): Remove; no longer needed.
4593 (XTflash, XTring_bell, x_wait_for_event):
4594 Port to ns-resolution time stamps. Don't assume time_t is signed.
4595
b6a92dfe
CY
45962012-06-22 Chong Yidong <cyd@gnu.org>
4597
4598 * xdisp.c (x_consider_frame_title): Revert last change.
4599
d251c37c
EZ
46002012-06-22 Eli Zaretskii <eliz@gnu.org>
4601
4602 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
4603 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
4604 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
4605 staticidx goes up to 1597 out of 1600 = 0x640.)
4606
f10deafb
PE
46072012-06-20 Paul Eggert <eggert@cs.ucla.edu>
4608
4609 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
4610 Otherwise, the umask might be mistakenly 0 while handling input signals.
4611
ec6de1e2
SM
46122012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
4613
4614 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
4615
28be1ada
DA
46162012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
4617
4618 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
4619 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
4620 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
4621 access to `contents' member of Lisp_Vector objects with AREF and ASET
4622 where appropriate.
4623
c6bf3022
CY
46242012-06-19 Chong Yidong <cyd@gnu.org>
4625
4626 * frame.c (delete_frame): When selecting a frame on a different
4627 text terminal, do not alter the terminal's top-frame.
4628
4629 * xdisp.c (format_mode_line_unwind_data): Record the target
4630 frame's selected window and its terminal's top-frame.
4631 (unwind_format_mode_line): Restore them.
4632 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
4633 Callers changed.
4634 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
4635 since tty frames can be explicitly named.
4636 (prepare_menu_bars): Likewise.
4637
4638 * term.c (Ftty_top_frame): New function.
4639
defd4196
PE
46402012-06-18 Paul Eggert <eggert@cs.ucla.edu>
4641
4642 Port byte-code-meter to modern targets.
4643 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
4644 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
8b5257e1 4645 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
defd4196
PE
4646 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
4647 (METER_1, METER_2): Simplify.
4648
1053a871
SM
46492012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
4650
4651 * data.c (Fdefalias): Return `symbol' (bug#11686).
4652
b7e8d081
MR
46532012-06-18 Martin Rudalics <rudalics@gmx.at>
4654
4655 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
1053a871
SM
4656 gets killed during executing of this function (Bug#11665).
4657 Try to always return Qt when the buffer has been actually killed.
b7e8d081
MR
4658 (Vkill_buffer_query_functions): In doc-string say that functions
4659 run by this hook should not change the current buffer.
4660
7ea2b339
PE
46612012-06-18 Paul Eggert <eggert@cs.ucla.edu>
4662
4663 Fix recently-introduced process.c problems found by static checking.
4664 * process.c (write_queue_push, write_queue_pop, send_process):
4665 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
4666 (write_queue_pop): Fix pointer signedness problem.
4667 (send_process): Remove unused local.
4668
96a313a1
CY
46692012-06-17 Chong Yidong <cyd@gnu.org>
4670
4671 * xdisp.c (redisplay_internal): No need to redisplay terminal
4672 frames that are not on top.
4673
20ca2e94
TN
46742012-06-17 Troels Nielsen <bn.troels@gmail.com>
4675
4676 * process.c (make_process): Initialize write_queue.
4677 (write_queue_push, write_queue_pop): New functions.
4678 (send_process): Use them to maintain correct ordering of process
4679 writes (Bug#10815).
4680
9a900ca9
PE
46812012-06-17 Paul Eggert <eggert@cs.ucla.edu>
4682
310fbfa8
PE
4683 * lisp.h (eassert): Assume C89 or later.
4684 This removes the need for CHECK.
4685 (CHECK): Remove. Its comments about always evaluating its
4686 argument were confusing, as 'eassert' typically does not evaluate
4687 its argument.
4688
27bb1ca4
PE
4689 * coding.c (produce_chars): Use ptrdiff_t, not int.
4690
9a900ca9
PE
4691 * xterm.c (x_draw_underwave): Check for integer overflow.
4692 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
4693
41b7f8bc 46942012-06-17 Jan Djärv <jan.h.d@swipnet.se>
50a93863
JD
4695
4696 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
4697 referenced (Bug#11583).
4698
9b0e3eba
AA
46992012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
4700
4701 Implement wave-style variant of underlining.
4702 * dispextern.h (face_underline_type): New enum.
4703 (face): Add field for underline type.
4704 * nsterm.m (ns_draw_underwave): New function.
4705 (ns_draw_text_decoration): Use it.
4706 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
4707 New functions.
4708 (x_draw_glyph_string): Use them.
4709 * xfaces.c (Qline, Qwave): New Lisp objects.
4710 (check_lface_attrs, merge_face_ref)
1053a871
SM
4711 (Finternal_set_lisp_face_attribute, realize_x_face):
4712 Handle wave-style underline face attributes.
9b0e3eba
AA
4713 * xterm.c (x_draw_underwave): New function.
4714 (x_draw_glyph_string): Use it.
4715
0fb52f11
JB
47162012-06-16 Juanma Barranquero <lekktu@gmail.com>
4717
4718 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
4719 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
4720 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
4721 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
4722 ($(BLD)/w32select.$(O)): Update dependencies.
4723
e5560ff7
AS
47242012-06-16 Andreas Schwab <schwab@linux-m68k.org>
4725
4726 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
4727 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
4728 * character.c (_fetch_multibyte_char_p): Remove.
4729 * alloc.c: Include "character.h" before "buffer.h".
4730 * bidi.c: Likewise.
4731 * buffer.c: Likewise.
4732 * bytecode.c: Likewise.
4733 * callint.c: Likewise.
4734 * callproc.c: Likewise.
4735 * casefiddle.c: Likewise.
4736 * casetab.c: Likewise.
4737 * category.c: Likewise.
4738 * cmds.c: Likewise.
4739 * coding.c: Likewise.
4740 * composite.c: Likewise.
4741 * dired.c: Likewise.
4742 * dispnew.c: Likewise.
4743 * doc.c: Likewise.
4744 * dosfns.c: Likewise.
4745 * editfns.c: Likewise.
4746 * emacs.c: Likewise.
4747 * fileio.c: Likewise.
4748 * filelock.c: Likewise.
4749 * font.c: Likewise.
4750 * fontset.c: Likewise.
4751 * fringe.c: Likewise.
4752 * indent.c: Likewise.
4753 * insdel.c: Likewise.
4754 * intervals.c: Likewise.
4755 * keyboard.c: Likewise.
4756 * keymap.c: Likewise.
4757 * lread.c: Likewise.
4758 * macros.c: Likewise.
4759 * marker.c: Likewise.
4760 * minibuf.c: Likewise.
4761 * nsfns.m: Likewise.
4762 * nsmenu.m: Likewise.
4763 * print.c: Likewise.
4764 * process.c: Likewise.
4765 * regex.c: Likewise.
4766 * region-cache.c: Likewise.
4767 * search.c: Likewise.
4768 * syntax.c: Likewise.
4769 * term.c: Likewise.
4770 * textprop.c: Likewise.
4771 * undo.c: Likewise.
4772 * unexsol.c: Likewise.
4773 * w16select.c: Likewise.
4774 * w32fns.c: Likewise.
4775 * w32menu.c: Likewise.
4776 * window.c: Likewise.
4777 * xdisp.c: Likewise.
4778 * xfns.c: Likewise.
4779 * xmenu.c: Likewise.
4780 * xml.c: Likewise.
4781 * xselect.c: Likewise.
4782
2f07e6af
EZ
47832012-06-16 Eli Zaretskii <eliz@gnu.org>
4784
1053a871
SM
4785 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
4786 If all the glyphs of the glyph row came from strings, and we have no
2f07e6af 4787 cursor positioning clues, put the cursor on the first glyph of the
1097afe4
EZ
4788 row.
4789 (handle_face_prop): Use chunk-relative overlay string index when
4790 indexing into it->string_overlays array. (Bug#11653)
946fdb73
EZ
4791 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
4792 the rightmost. (Bug#11720)
2f07e6af 4793
29b83cec
AS
47942012-06-16 Andreas Schwab <schwab@linux-m68k.org>
4795
4796 * category.h (CHAR_HAS_CATEGORY): Define as inline.
4797 (CATEGORY_MEMBER): Enforce 1/0 value.
4798 * category.c (_temp_category_set): Remove.
4799
4c5501e9
EZ
48002012-06-16 Eli Zaretskii <eliz@gnu.org>
4801
4802 * window.c (Fdelete_other_windows_internal)
4803 (Fdelete_window_internal): Don't access frame's mouse highlight
4804 info of the initial frame. (Bug#11677)
4805
2b570124
PE
48062012-06-14 Paul Eggert <eggert@cs.ucla.edu>
4807
e93864f9
PE
4808 * .gdbinit (xgetint): Fix recently-introduced paren typo.
4809 Assume USE_2_TAGS_FOR_INTS.
4810 (xreload): Adjust $tagmask width to match recent lisp.h change.
4811
2b570124
PE
4812 Simplify lisp.h in minor ways that should not affect code.
4813 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
4814 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
4815 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
4816 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
4817 (INTTYPEBITS): New macro, for clarity.
4818 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
1053a871
SM
4819 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
4820 Simplify now that USE_LSB_TAG is always defined.
2b570124
PE
4821 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
4822 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
4823
81755f69
JB
48242012-06-13 Juanma Barranquero <lekktu@gmail.com>
4825
4826 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
4827
16192a57
GM
48282012-06-13 Glenn Morris <rgm@gnu.org>
4829
4830 * s/bsd-common.h (BSD4_3):
4831 * s/usg5-4-common.h (USG5_4): No longer define; unused.
4832
646b5f55
AS
48332012-06-13 Andreas Schwab <schwab@linux-m68k.org>
4834
4835 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
4836 instead of union.
4837 (XLI, XIL): Define.
1053a871
SM
4838 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
4839 Use them.
4840 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
646b5f55 4841 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
1053a871 4842 * alloc.c (widen_to_Lisp_Object): Remove.
646b5f55
AS
4843 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
4844 * frame.c (delete_frame): Remove outdated comment.
4845 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
4846 USE_LISP_UNION_TYPE.
4847 (Fw32_unregister_hot_key): Likewise.
4848 (Fw32_toggle_lock_key): Likewise.
4849 * w32menu.c (add_menu_item): Likewise.
4850 (w32_menu_display_help): Use XIL instead of checking
4851 USE_LISP_UNION_TYPE.
4852 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
4853 (init_heap): Likewise.
4854 * w32term.c (w32_read_socket): Update comment.
4855
1d3823c9
GM
48562012-06-13 Glenn Morris <rgm@gnu.org>
4857
c62ff706
GM
4858 * s/usg5-4-common.h, src/s/unixware.h:
4859 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
4860
1d3823c9
GM
4861 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
4862
bfe3e0a2
PE
48632012-06-13 Paul Eggert <eggert@cs.ucla.edu>
4864
4865 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
4866 * alloc.c (make_number) [!defined make_number]:
4867 Remove, as lisp.h always defines this now.
4868 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
4869 (roundup_size): Verify that it is a power of 2.
4870 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
4871 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
4872 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
4873 -DUSE_LSB_TAG=0, to override the automatically-selected default.
4874 USE_LSB_TAG now is always defined to be either 0 or 1.
4875 All uses changed.
4876 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
4877 code works fine either way, and efficiency is not a concern here,
4878 as the union type is for debugging, not for production.
4879 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
4880 Use an inline function on all platforms when using the union type,
4881 since this is simpler and 'static inline' can be used portably
4882 within Emacs now.
4883 (LISP_INITIALLY_ZERO): New macro.
4884 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
4885 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
4886
45fa9c0f
GM
48872012-06-12 Glenn Morris <rgm@gnu.org>
4888
b4492cba
GM
4889 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
4890
4891 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
0d369729 4892
45fa9c0f
GM
4893 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
4894 Move BROKEN_SIGIO to configure.
4895
4896 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
4897 Move NO_TERMIO to configure.
4898
0e25d334
CY
48992012-06-12 Chong Yidong <cyd@gnu.org>
4900
4901 * image.c (imagemagick_load_image): Use MagickFlattenImage if
4902 MagickMergeImageLayers is undefined. Use pixel pusher loop if
4903 MagickExportImagePixels is undefined.
4904
43682bb6
PE
49052012-06-12 Paul Eggert <eggert@cs.ucla.edu>
4906
4907 * image.c (imagemagick_load_image): Remove unused label.
4908
a9be7d2b
GM
49092012-06-11 Glenn Morris <rgm@gnu.org>
4910
4911 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
4912 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
4913 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
4914 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
4915
3017f87f
SM
49162012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
4917
4918 * alloc.c (make_byte_code): New function.
4919 (Fmake_byte_code): Use it. Don't purify here.
4920 * lread.c (read1): Use it as well to avoid extra allocation.
4921
1b9b4cf4
CY
49222012-06-11 Chong Yidong <cyd@gnu.org>
4923
4924 * image.c (imagemagick_load_image): Implement transparency.
4925
95988fcf
AS
49262012-06-10 Andreas Schwab <schwab@linux-m68k.org>
4927
4928 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
4929 account for preceding backslashes. (Bug#11663)
4930
cd4eb164
CY
49312012-06-09 Chong Yidong <cyd@gnu.org>
4932
4933 * term.c: Support italics in capable terminals (Bug#9652).
4934 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
4935 (turn_on_face): Output using TS_enter_italic_mode if available.
4936 Don't handle unused blinking and alt-charset cases.
4937 (turn_off_face): Handle italic case; discard unused tty_blinking_p
4938 and tty_alt_charset_p cases.
4939 (tty_capable_p, init_tty): Support italics.
4940
4941 * termchar.h (struct tty_display_info): Add field for italics.
4942 Remove unused blink field.
4943
4944 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
4945 Handle slant.
4946
4947 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
4948 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
4949 tty_alt_charset_p. Add tty_italic_p.
4950
ff88beb8
MA
49512012-06-09 Michael Albinus <michael.albinus@gmx.de>
4952
4953 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
4954 dbus_type_is_basic if available.
4955 (xd_extract_signed, xd_extract_unsigned): Rename from
4956 extract_signed and extract_unsigned, respectively. Adapt callers.
4957
44286096
CY
49582012-06-09 Chong Yidong <cyd@gnu.org>
4959
1682701f
CY
4960 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
4961
44286096
CY
4962 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
4963 case (Bug#9752).
4964
d86feb17
PE
49652012-06-08 Paul Eggert <eggert@cs.ucla.edu>
4966
4967 * xdisp.c (vmessage): Treat frame message as multibyte.
4968 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
4969 would generate the diagnostic "Making \302\247 buffer-local while
4970 let-bound!".
4971
d5c20fe8
EZ
49722012-06-08 Eli Zaretskii <eliz@gnu.org>
4973
4974 * dispnew.c (showing_window_margins_p): Undo last change, which
4975 was done due to an inadvertent commit.
4976 (adjust_frame_glyphs_for_frame_redisplay): Do call
4977 showing_window_margins_p.
4978
513749ee
SM
49792012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
4980
4981 * eval.c (Fmake_var_non_special): New primitive.
4982 (syms_of_eval): Defsubr it.
4983 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
4984
d4a8f5c1
JB
49852012-06-08 Juanma Barranquero <lekktu@gmail.com>
4986
4987 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
4988 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
4989
8bbbc977
EZ
49902012-06-08 Eli Zaretskii <eliz@gnu.org>
4991
4992 * alloc.c (allocate_vectorlike): Fix last change.
4993
f3372c87
DA
49942012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
4995
4996 Block-based vector allocation of small vectors.
4997 * lisp.h (struct vectorlike_header): New field `nbytes',
4998 adjust comment accordingly.
4999 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
5000 to denote vector blocks. Adjust users (live_vector_p,
5001 mark_maybe_pointer, valid_lisp_object_p) accordingly.
5002 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
5003 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
5004 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
5005 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
5006 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
5007 (roundup_size): New constant.
5008 (struct vector_block): New data type.
5009 (vector_blocks, vector_free_lists, zero_vector): New variables.
513749ee 5010 (all_vectors): Rename to `large_vectors'.
f3372c87
DA
5011 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
5012 (sweep_vectors): New functions.
5013 (allocate_vectorlike): Return `zero_vector' as the only vector of
5014 0 items. Allocate new vector from block if vector size is less than
5015 or equal to VBLOCK_BYTES_MAX.
5016 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
5017 (init_alloc_once): Add call to init_vectors.
5018
4f18a4ed
SM
50192012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
5020
5021 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
5022
86f158bc
PE
50232012-06-07 Paul Eggert <eggert@cs.ucla.edu>
5024
5025 * doprnt.c (doprnt): Truncate multibyte char correctly.
5026 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
5027 would mishandle a string argument "Xc" if X was a multibyte
5028 character of length 2: it would truncate after X's first byte
5029 rather than including all of X.
5030
c5cfcbe0
CY
50312012-06-06 Chong Yidong <cyd@gnu.org>
5032
5033 * buffer.c (word_wrap): Doc fix.
5034
c05cf390
PE
50352012-06-04 Paul Eggert <eggert@cs.ucla.edu>
5036
5037 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
5038
0c3461de
GM
50392012-06-03 Glenn Morris <rgm@gnu.org>
5040
5041 * xdisp.c (tool-bar-style): Doc fix.
5042
c71232db
UM
50432012-06-03 Ulrich Müller <ulm@gentoo.org>
5044
5045 * Makefile.in (PAXCTL): Define.
5046 (temacs$(EXEEXT)): Disable memory randomization for the temacs
5047 binary via PaX flags if the paxctl utility is available.
5048 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
5049 Restore PaX flags to their default. (Bug#11398)
5050
383f7350
CY
50512012-06-03 Chong Yidong <cyd@gnu.org>
5052
5053 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
5054 buffer (Bug#11226).
5055
5f2c76c6
CY
50562012-06-03 Chong Yidong <cyd@gnu.org>
5057
5058 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
5059 (note_mode_line_or_margin_highlight): If there is no help echo,
5060 use mode-line-default-help-echo. Handle the case where the mouse
5061 position is past the end of the mode line string.
5062
5063 * buffer.c (buffer_local_value_1): New function, split from
5064 Fbuffer_local_value; can return Qunbound.
5065 (Fbuffer_local_value): Use it.
5066 (Vmode_line_format): Docstring tweaks.
5067
773d47f6
PE
50682012-06-02 Paul Eggert <eggert@cs.ucla.edu>
5069
5070 * sysdep.c (system_process_attributes): Improve comment.
5071
f2d6a3df
SM
50722012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
5073
5074 * keyboard.c: Export real-this-command to Elisp.
5075 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
5076 and DEFVAR it. Update all users.
5077
63810350
PE
50782012-06-02 Paul Eggert <eggert@cs.ucla.edu>
5079
7bd5c1f4
PE
5080 * minibuf.c (Fassoc_string): Remove duplicate declaration.
5081
63810350
PE
5082 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
5083 Convert pctcpu and pctmem to Lisp float properly.
5084 Let the compiler fold better, as 100.0/0x8000 is exact.
5085
a2821611
AS
50862012-06-02 Andreas Schwab <schwab@linux-m68k.org>
5087
5088 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
5089 cons_block.
5090
5fceba1d
PE
50912012-06-01 Paul Eggert <eggert@cs.ucla.edu>
5092
5093 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
5094
c98ff5dd
DA
50952012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
5096
5097 For a 'struct window', replace some Lisp_Object fields to
5098 bitfields where appropriate, remove unused fields.
5099 * window.h (struct window): Remove unused 'last_mark_x' and
5100 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
5101 change it's type from Lisp_Object to bitfield.
5102 Change type of 'force_start', 'optional_new_start',
5103 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
5104 fields from Lisp_Object to bitfield. Adjust users accordingly.
5105
ca34e0be
PE
51062012-05-31 Paul Eggert <eggert@cs.ucla.edu>
5107
5108 Pacify gcc -Wdouble-precision when using Xaw.
5109 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
5110 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
5111 Use 'float' consistently, rather than 'float' in most places
5112 and 'double' in a couple of places.
5113
efc00ab1 51142012-05-31 Eli Zaretskii <eliz@gnu.org>
d5fd2c54
EZ
5115
5116 * xdisp.c (handle_stop): Detect whether we have overlay strings
5117 loaded by testing it->current.overlay_string_index to be
5118 non-negative, instead of checking whether n_overlay_strings is
5119 positive. (Bug#11587)
5120
efc00ab1 51212012-05-31 Chong Yidong <cyd@gnu.org>
353c87f6
CY
5122
5123 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
5124
5125 * doc.c (Fsubstitute_command_keys): Doc fix.
5126
efc00ab1 51272012-05-31 Eli Zaretskii <eliz@gnu.org>
a02ae4e5
EZ
5128
5129 * search.c (search_buffer): Remove calls to
5130 r_alloc_inhibit_buffer_relocation, as it is now called by
5131 maybe_unify_char, which was the cause of relocation of buffer text
5132 in bug#11519.
5133
efc00ab1 51342012-05-31 Eli Zaretskii <eliz@gnu.org>
291d430f
EZ
5135
5136 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
5137 for the duration of call to load_charset, to avoid problems with
5138 callers of maybe_unify_char that access buffer text through C
5139 pointers.
5140
5141 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
5142 decrement the inhibition flag, instead of just setting or
5143 resetting it.
5144
ba93a187
PE
51452012-05-31 Paul Eggert <eggert@cs.ucla.edu>
5146
5147 Remove obsolete '#define static' cruft.
5148 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
5149 This #undef was "temporary" in 2000; it is no longer needed
5150 now that '#define static' has gone away.
5151 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
5152 (gray_bitmap_bits): Remove; no longer needed.
5153 All uses replaced with definiens.
5154 * xterm.c: Include "bitmaps/gray.xbm".
5155
9e4bf381
PE
51562012-05-30 Paul Eggert <eggert@cs.ucla.edu>
5157
5158 Clean up __executable_start, monstartup when --enable-profiling.
5159 The following changes affect the code only when profiling.
5160 * dispnew.c (__executable_start): Rename from safe_bcopy.
5161 Define only on platforms that need it.
5162 * emacs.c: Include <sys/gmon.h> when profiling.
5163 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
5164 (__executable_start): Remove decl, since lisp.h does it now.
5165 (safe_bcopy): Remove decl; no longer has that name.
5166 (main): Coalesce #if into single bit of code, for simplicity.
5167 Cast pointers to uintptr_t, since standard libraries want integers
5168 and not pointers.
5169 * lisp.h (__executable_start): New decl.
5170
32d72c2f
GM
51712012-05-31 Glenn Morris <rgm@gnu.org>
5172
5173 * image.c (Fimagemagick_types): Doc fix.
5174
baac5bc7
JM
51752012-05-30 Jim Meyering <meyering@redhat.com>
5176
5177 * callproc.c (Fcall_process_region): Include directory component
5178 in mkstemp error message (Bug#11586).
5179
72cb32cf
PE
51802012-05-30 Paul Eggert <eggert@cs.ucla.edu>
5181
5182 * alloc.c, lisp.h (make_pure_vector): Now static.
5183
61b108cc
SM
51842012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
5185
5186 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
5187 Move to byte-run.el.
5188 (Fautoload): Do the hash-doc more carefully.
5189 * data.c (Fdefalias): Purify definition, except for keymaps.
5190 (Qdefun): Move from eval.c.
5191 * lisp.h (Qdefun): Remove.
5192 * lread.c (read1): Tiny simplification.
5193
471fe23d
TN
51942012-05-29 Troels Nielsen <bn.troels@gmail.com>
5195
934f3f58 5196 Do not create empty overlays with the evaporate property (Bug#9642).
471fe23d
TN
5197 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
5198 Bug#9642, but explicitly check that the buffer the overlay would
5199 be moved to is live and rearrange lines to make sure that errors
5200 will not put the overlay in an inconsistent state.
5201 (Fdelete_overlay): Cosmetics.
5202
85d0efd1
EZ
52032012-05-28 Eli Zaretskii <eliz@gnu.org>
5204
5205 * w32term.c (my_bring_window_to_top): New function.
5206 (x_raise_frame): Use handle returned by DeferWindowPos, which
61b108cc
SM
5207 could be different from the original one.
5208 Call my_bring_window_to_top instead of my_set_foreground_window.
85d0efd1
EZ
5209 (Bug#11513)
5210
5211 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
5212 by calling BringWindowToTop.
5213
5214 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
5215 (WM_EMACS_END): Increase by one.
5216
da92a98c
PE
52172012-05-28 Paul Eggert <eggert@cs.ucla.edu>
5218
5219 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
5220 This avoids undefined behavior that might cause the eassert
5221 to not catch an out-of-range value.
5222
74d1f848
JB
52232012-05-28 Juanma Barranquero <lekktu@gmail.com>
5224
5225 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
5226 Update dependencies.
5227
9e1a06fc
EZ
52282012-05-27 Eli Zaretskii <eliz@gnu.org>
5229
5230 * bidi.c (bidi_mirror_char): Fix last change.
5231
f3dd7312
AS
52322012-05-27 Andreas Schwab <schwab@linux-m68k.org>
5233
5234 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
5235 when referring to sectname field in printf format.
5236
81899c91
PE
52372012-05-27 Paul Eggert <eggert@cs.ucla.edu>
5238
57b81a9f
PE
5239 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
5240 Only r_alloc_inhibit_buffer_relocation needed to be added;
5241 the others were already declared.
5242
81899c91
PE
5243 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
5244 before checking whether it's out of range. Put the check inside
5245 eassert. See
5246 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
5247
33017faf 52482012-05-27 Ken Brown <kbrown@cornell.edu>
2f9b9adb
KB
5249
5250 * callproc.c (Fcall_process): Restore a line that was accidentally
5251 commented out in the 2011-02-13 change (bug#11547).
5252
33017faf 52532012-05-27 Eli Zaretskii <eliz@gnu.org>
52c55cc7
EZ
5254
5255 * lisp.h [REL_ALLOC]: Add prototypes for external functions
5256 defined on ralloc.c.
5257
5258 * buffer.c [REL_ALLOC]: Remove prototypes of
5259 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
5260 they are now on lisp.h.
5261
5262 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
5263
5264 * search.c (search_buffer): Use it to inhibit relocation of buffer
5265 text while re_search_2 is doing its job, because re_search_2 is
5266 passed C pointers to buffer text. (Bug#11519)
5267
23415acf
EZ
5268 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
5269 Update value to 24.
5270
44e27368
EZ
5271 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
5272 state after an additional call to move_it_in_display_line_to, keep
5273 the values of it->max_ascent and it->max_descent found for the
5274 entire line.
5275 (pos_visible_p): Revert the comparison against bottom_y to what it
5276 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
5277 (Bug#11464)
5278
c1892f11
PE
52792012-05-26 Paul Eggert <eggert@cs.ucla.edu>
5280
5281 Fix coding-related core dumps with gcc -ftrapv.
5282 The code was computing A - B, where A and B are pointers, and B is
5283 random garbage. This can lead to core dumps on platforms that
5284 have special pointer registers, and it also leads to core dumps on
5285 x86-64 when compiled with gcc -ftrapv. The fix is to compute
5286 A - B only when B is initialized properly.
5287 * coding.c (coding_set_source, coding_set_destination): Return void.
5288 (coding_change_source, coding_change_destinations): New functions,
5289 with the old behaviors of coding_set_source and coding_set_destination.
5290 All callers that need an offset changed to use these new functions.
5291
eb7afdad
GM
52922012-05-26 Glenn Morris <rgm@gnu.org>
5293
5294 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
5295
f12fdf02
EZ
52962012-05-26 Eli Zaretskii <eliz@gnu.org>
5297
53a63be6 5298 Extend mouse support on W32 text-mode console.
61b108cc
SM
5299 * xdisp.c (draw_row_with_mouse_face):
5300 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
eb3f6f01 5301
eb3f6f01 5302 * w32console.c: Include window.h.
61b108cc
SM
5303 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
5304 New functions.
eb3f6f01
EZ
5305 (initialize_w32_display): Initialize mouse-highlight data.
5306
53a63be6
EZ
5307 * w32inevt.c: Include termchar.h and window.h.
5308 (do_mouse_event): Support mouse-autoselect-window. When the mouse
5309 moves, call note_mouse_highlight. If help_echo changed, call
5310 gen_help_event to produce help-echo message in the echo area.
5311 Call clear_mouse_face if mouse_face_hidden is set in the mouse
5312 highlight info.
5313
4cfd81f6
PE
53142012-05-26 Paul Eggert <eggert@cs.ucla.edu>
5315
5316 * lread.c (read1): Simplify slightly to avoid an overflow warning
5317 with GCC 4.7.0 on x86-64.
5318
4446092a
EZ
53192012-05-26 Eli Zaretskii <eliz@gnu.org>
5320
5321 * bidi.c (bidi_mirror_char): Revert last change: an int is
5322 definitely wide enough here.
5323
42b2a986 53242012-05-25 Paul Eggert <eggert@cs.ucla.edu>
3164aeac 5325
42b2a986 5326 Fix integer width and related bugs (Bug#9874).
eb106a49 5327 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
d311d28c
PE
5328 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
5329 (string_bytes, check_sblock, allocate_string_data):
5330 (compact_small_strings, Fmake_bool_vector, make_string)
5331 (make_unibyte_string, make_multibyte_string)
5332 (make_string_from_bytes, make_specified_string)
5333 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
5334 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
5335 (mark_vectorlike):
5336 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5337 (allocate_pseudovector):
5338 Use int, not EMACS_INT, where int is wide enough.
5339 (inhibit_garbage_collection, Fgarbage_collect):
5340 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5341 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
5342 int might not be wide enough.
5343 (bidi_cache_search, bidi_cache_find, bidi_init_it)
5344 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
5345 (bidi_at_paragraph_end, bidi_find_paragraph_start)
5346 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
5347 (bidi_level_of_next_char, bidi_move_to_visually_next):
5348 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5349 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
5350 (Fkill_buffer, Fset_buffer_major_mode)
5351 (advance_to_char_boundary, Fbuffer_swap_text)
5352 (Fset_buffer_multibyte, overlays_at, overlays_in)
5353 (overlay_touches_p, struct sortvec, record_overlay_string)
5354 (overlay_strings, recenter_overlay_lists)
5355 (adjust_overlays_for_insert, adjust_overlays_for_delete)
5356 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
5357 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
5358 (Foverlay_recenter, last_overlay_modification_hooks_used)
5359 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
5360 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
977b0e45
PE
5361 (validate_region): Omit unnecessary test for b <= e,
5362 since that's guaranteed by the previous test.
d311d28c
PE
5363 (adjust_overlays_for_delete): Avoid pos + length overflow.
5364 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
5365 (report_overlay_modification):
5366 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5367 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
5368 Omit pointer cast, which isn't needed anyway, and doesn't work
5369 after the EMACS_INT -> ptrdiff_t change.
02481186 5370 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
d311d28c
PE
5371 * buffer.h: Adjust decls to match defn changes elsewhere.
5372 (struct buffer_text, struct buffer):
5373 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5374 Use EMACS_INT, not int, where int might not be wide enough.
39b5db3b
PE
5375 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
5376 not int, to avoid needless 32-bit limit on 64-bit hosts.
5377 (exec_byte_code): Use tighter memory-full test, one that checks
5378 for alloca overflow. Don't compute the address of the object just
5379 before an array, as that's not portable. Use EMACS_INT, not
5380 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
d311d28c
PE
5381 * callint.c (Fcall_interactively):
5382 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5383 * callproc.c (call_process_kill, Fcall_process):
5384 Don't assume pid_t fits into an Emacs fixnum.
5385 (call_process_cleanup, Fcall_process, child_setup):
5386 Don't assume pid_t fits into int.
5387 (call_process_cleanup, Fcall_process, delete_temp_file)
5388 (Fcall_process_region):
5389 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5390 (Fcall_process): Simplify handling of volatile integers.
5391 Use int, not EMACS_INT, where int will do.
5392 * casefiddle.c (casify_object, casify_region, operate_on_word)
5393 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
5394 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5395 (casify_object): Avoid integer overflow when overallocating buffer.
5396 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
45c2afd6 5397 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
d311d28c
PE
5398 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
5399 * category.h (CATEGORYP): Don't assume arg is nonnegative.
5400 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
5401 integers are now checked earlier. All uses replaced with XINT.
5402 (ccl_driver):
5403 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5404 For CCL_MapSingle, check that content and value are in int range.
c801946a
PE
5405 (ccl_driver, Fregister_code_conversion_map):
5406 Check that Vcode_version_map_vector is a vector.
d311d28c
PE
5407 (resolve_symbol_ccl_program): Check that vector header is in range.
5408 Always copy the vector, so that we can check its contents reliably
5409 now rather than having to recheck each instruction as it's being
5410 executed. Check that vector words fit in 'int'.
5411 (ccl_get_compiled_code, Fregister_ccl_program)
5412 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
5413 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
5414 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
5415 contents are in range.
5416 (Fccl_execute_on_string): Check that status is in range.
5417 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
5418 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
5419 Accept and return EMACS_INT, not int, because callers can pass values
5420 out of 'int' range.
5421 (c_string_width, strwidth, lisp_string_width, chars_in_text)
5422 (multibyte_chars_in_text, parse_str_as_multibyte)
5423 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
5424 (str_as_unibyte, str_to_unibyte, string_count_byte8)
5425 (string_escape_byte8, Fget_byte):
5426 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
a14e1568 5427 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
d311d28c
PE
5428 avoid mishandling large integers.
5429 * character.h: Adjust decls to match defn changes elsewhere.
5430 * charset.c (load_charset_map_from_file, find_charsets_in_text)
5431 (Ffind_charset_region):
5432 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5433 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
5434 (load_charset_map_from_vector, Fdefine_charset_internal):
3c7649c1 5435 Don't assume fixnum fits in int.
d311d28c
PE
5436 (load_charset_map_from_vector, Fmap_charset_chars):
5437 Remove now-unnecessary CHECK_NATNUMs.
5438 (Fdefine_charset_internal): Check ranges here, more carefully.
3c7649c1
PE
5439 Don't rely on undefined behavior with signed left shift overflow.
5440 Don't assume unsigned int fits into fixnum, or that fixnum fits
5441 into unsigned int. Don't require max_code to be a valid fixnum;
5442 that's not true for gb10830 4-byte on a 32-bit host. Allow
5443 invalid_code to be a cons, for the same reason. Require code_offset
5444 to be a character. Avoid int overflow if max_char is close
5445 to INT_MAX.
5446 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
5447 this is intended anyway and avoids some undefined behavior.
5448 (load_charset_map): Pass unsigned, not int, as 2nd arg of
5449 INDEX_TO_CODE_POINT, as that's what it expects.
5450 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
60ad3eab
PE
5451 * charset.h (DECODE_CHAR): Return int, not unsigned;
5452 this is what was intended anyway, and it avoids undefined behavior.
5453 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
5454 integer-overflow issues.
5455 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
5456 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
5457 where the argument is EMACS_INT, and this behavior is not intended.
d311d28c
PE
5458 * chartab.c (Fmake_char_table, Fset_char_table_range)
5459 (uniprop_get_decoder, uniprop_get_encoder):
5460 Don't assume fixnum fits in int.
5461 * cmds.c (move_point): New function, that does the gist of
5462 Fforward_char and Fbackward_char, but does so while checking
5463 for integer overflow more accurately.
c96e5d6a 5464 (Fforward_char, Fbackward_char): Use it.
d311d28c
PE
5465 (Fforward_line, Fend_of_line, internal_self_insert)
5466 (internal_self_insert):
5467 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5468 Fix a FIXME, by checking for integer overflow when calculating
5469 target_clm and actual_clm.
5470 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
8f50130c 5471 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
d311d28c
PE
5472 (ASSURE_DESTINATION, coding_alloc_by_realloc)
5473 (coding_alloc_by_making_gap, alloc_destination)
5474 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
5475 (encode_coding_utf_16, detect_coding_emacs_mule)
5476 (decode_coding_emacs_mule, encode_coding_emacs_mule)
5477 (detect_coding_iso_2022, decode_coding_iso_2022)
5478 (encode_invocation_designation, encode_designation_at_bol)
5479 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
5480 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
5481 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
5482 (encode_coding_ccl, encode_coding_raw_text)
5483 (detect_coding_charset, decode_coding_charset)
5484 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
5485 (produce_composition, produce_charset, produce_annotation)
5486 (decode_coding, handle_composition_annotation)
5487 (handle_charset_annotation, consume_chars, decode_coding_gap)
5488 (decode_coding_object, encode_coding_object, detect_coding_system)
5489 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
5490 (code_convert_region, code_convert_string)
8f50130c
PE
5491 (Fdefine_coding_system_internal)
5492 (coding_set_source, coding_set_destination):
d311d28c
PE
5493 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5494 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
5495 (Fdefine_coding_system_internal):
5496 Don't assume fixnums fit in int.
5497 (decode_coding_gap, decode_coding_object, encode_coding_object)
5895d7b9 5498 (Fread_coding_system, Fdetect_coding_region)
2c6a9faa
PE
5499 (Funencodable_char_position, Fcheck_coding_systems_region)
5500 (get_translation, handle_composition_annotation, consume_chars):
d311d28c 5501 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
977b0e45 5502 (consume_chars): Rewrite to not calculate an address outside buffer.
d311d28c 5503 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
7b09a37a 5504 Don't access memory outside of the args array.
d311d28c 5505 (Fdefine_coding_system_internal): Check for charset-id overflow.
47664caa
PE
5506 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
5507 result of ENCODE_CHAR.
d311d28c
PE
5508 * coding.h: Adjust decls to match defn changes elsewhere.
5509 (struct coding_system):
5510 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5511 * composite.c (get_composition_id, find_composition)
5512 (run_composition_function, update_compositions)
5513 (compose_text, composition_gstring_put_cache)
5514 (composition_gstring_p, composition_gstring_width)
5515 (fill_gstring_header, fill_gstring_body, autocmp_chars)
5516 (composition_compute_stop_pos, composition_reseat_it)
5517 (composition_update_it, struct position_record)
5518 (find_automatic_composition, composition_adjust_point)
5519 (Fcomposition_get_gstring, Ffind_composition_internal):
5520 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5521 (update_compositions):
5522 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5523 * composite.h: Adjust decls to match defn changes elsewhere.
5524 (struct composition):
5525 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5526 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
5527 Do not attempt to compute the address of the object just before a
5528 buffer; this is not portable.
5529 (Faref, Faset):
5530 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5531 (Faset): Use int, not EMACS_INT, where int is wide enough.
5532 (Fstring_to_number): Don't assume fixnums fit in int.
5533 (Frem): Don't assume arg is nonnegative.
5534 * dbusbind.c (xd_append_arg): Check for integers out of range.
5535 (Fdbus_call_method): Don't overflow the timeout int.
42b2a986 5536 (extract_signed, extract_unsigned): New functions.
243e0530
PE
5537 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
5538 (xd_get_connection_references): Return ptrdiff_t, not int.
5539 All uses changed.
5540 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
5541 (xd_read_message_1):
5542 Use int, not unsigned, where the dbus API uses int.
5543 (Fdbus_message_internal): Don't overflow mtype.
5544 (syms_of_dbusbind): Allocate right-sized buffer for integers.
d311d28c
PE
5545 * dired.c (directory_files_internal, file_name_completion, scmp)
5546 (file_name_completion_stat):
5547 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5548 (file_name_completion): Don't overflow matchcount.
5549 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
5550 * dispextern.h: Adjust decls to match defn changes elsewhere.
5551 (struct text_pos, struct glyph, struct bidi_saved_info)
5552 (struct bidi_string_data, struct bidi_it, struct composition_it)
5553 (struct it):
5554 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5555 (struct display_pos, struct composition_it, struct it):
5556 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5557 * dispnew.c (increment_matrix_positions)
5558 (increment_row_positions, mode_line_string)
5559 (marginal_area_string):
5560 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
54e1617f 5561 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
d311d28c
PE
5562 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5563 (duration_to_sec_usec): New function, to check for overflow better.
5564 (Fsleep_for, sit_for): Use it.
5565 * doc.c (get_doc_string, store_function_docstring):
5566 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5567 (get_doc_string, Fsnarf_documentation):
5568 Use int, not EMACS_INT, where int is wide enough.
5569 (get_doc_string):
5570 Use SAFE_ALLOCA, not alloca.
5571 Check for overflow when converting EMACS_INT to off_t.
5572 * doprnt.c (doprnt):
5573 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5574 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
5575 Don't assume uid_t fits into fixnum.
5576 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
5577 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
5578 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
5579 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
5580 (general_insert_function)
5581 (Finsert_char, make_buffer_string, make_buffer_string_both)
5582 (update_buffer_properties, Fbuffer_substring)
5583 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
5584 (Fsubst_char_in_region, check_translation)
5585 (Ftranslate_region_internal, save_restriction_restore, Fformat)
5586 (transpose_markers, Ftranspose_regions):
5587 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5588 (clip_to_bounds): Move to lisp.h as an inline function).
5589 (Fconstrain_to_field): Don't assume integers are nonnegative.
5590 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
5591 (Fsubst_char_in_region, Fsave_restriction):
5592 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5593 (Femacs_pid): Don't assume pid_t fits into fixnum.
5594 (lo_time): Use int, not EMACS_INT, when int suffices.
5595 (lisp_time_argument): Check for usec out of range.
5596 (Fencode_time): Don't assume fixnum fits in int.
3f4eabd1
PE
5597 (Fuser_login_name, Fuser_full_name): Signal an error
5598 if a uid argument is out of range, rather than relying on
5599 undefined behavior.
c8d5c857
PE
5600 (Fformat_time_string): Remove now-unnecessary check.
5601 lisp_time_argument checks for out-of-range usec now.
243e0530 5602 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
d311d28c
PE
5603 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
5604 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
5605 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
5606 (init_cmdargs, Fdump_emacs):
5607 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5608 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
5609 the bottom (typically) 32 bits of the fixnum.
5610 * eval.c (specpdl_size, call_debugger):
5611 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5612 (when_entered_debugger, Fbacktrace_debug):
5613 Don't assume fixnum can fit in int.
5614 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
5615 the object just before a buffer; this is not portable.
5616 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
5617 (grow_specpdl, unbind_to):
5618 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5619 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
5620 (grow_specpdl): Simplify allocation by using xpalloc.
856bbc81 5621 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
d311d28c
PE
5622 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
5623 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
5624 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5625 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
5626 (a_write, e_write):
5627 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5628 (Fcopy_file, non_regular_nbytes, read_non_regular)
5629 (Finsert_file_contents):
5630 Use int, not EMACS_INT, where int is wide enough.
5631 (READ_BUF_SIZE): Verify that it fits in int.
5632 (Finsert_file_contents): Check that counts are in proper range,
5633 rather than assuming fixnums fit into ptrdiff_t etc.
5634 Don't assume fixnums fit into int.
125b3835 5635 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
5895d7b9
PE
5636 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
5637 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
d311d28c
PE
5638 (string_char_to_byte, string_byte_to_char)
5639 (string_make_multibyte, string_to_multibyte)
5640 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
5641 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
5642 (substring_both, Fdelete, internal_equal, Ffillarray)
5643 (Fclear_string, mapcar1)
5644 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
5645 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
5646 (larger_vector, make_hash_table, maybe_resize_hash_table)
5647 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
5648 (Fmaphash, secure_hash):
5649 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5650 (concat): Check for string index and length overflow.
5651 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
5652 (Frequire):
5653 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5654 (larger_vector): New API (vec, incr_min, size_max) replaces old
5655 one (vec, new_size, init). This catches size overflow.
5656 INIT was removed because it was always Qnil.
5657 All callers changed.
5658 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
5659 the upper bound on a hash table index size.
5660 (make_hash_table, maybe_resize_hash_table): Use it.
5661 (secure_hash): Computer start_byte and end_byte only after
5662 they're known to be in ptrdiff_t range.
5663 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
5664 (Ffont_get_glyphs, Ffont_at):
5665 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5666 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
5667 (Flist_fonts, Fopen_font):
5668 Don't assume fixnum can fit in int.
5669 (check_gstring): Don't assume index can fit in int.
5670 (font_match_p): Check that fixnum is a character, not a nonnegative
5671 fixnum, since the later code needs to stuff it into an int.
5672 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
5673 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
5674 conversion overflow issues.
5675 (Fopen_font): Check for integer out of range.
5676 (Ffont_get_glyphs): Don't assume index can fit in int.
5677 * font.h: Adjust decls to match defn changes elsewhere.
5678 * fontset.c (reorder_font_vector): Redo score calculation to avoid
5679 integer overflow.
5680 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
5681 printmax_t, where ptrdiff_t is wide enough.
5682 (Finternal_char_font):
5683 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5684 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
5685 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
5686 (Fset_frame_position, x_set_frame_parameters)
5687 (x_set_line_spacing, x_set_border_width)
5688 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
5689 Check that fixnums are in proper range for system types.
5690 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
5691 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5692 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
5693 Use SAFE_ALLOCA_LISP, not alloca.
5694 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
5695 intptr_t is wide enough.
5696 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
5697 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
5698 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
5699 Check for fixnum out of range.
5700 * ftfont.c (ftfont_list): Don't assume index fits in int.
5701 Check that fixnums are in proper range for system types.
5702 (ftfont_shape_by_flt):
5703 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
d311d28c
PE
5704 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
5705 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5706 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
5707 Check that fixnums are in proper range for system types.
5708 * gnutls.h: Adjust decls to match defn changes elsewhere.
5709 * gtkutil.c (xg_dialog_run):
5710 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5711 (update_frame_tool_bar):
5712 Check that fixnums are in proper range for system types.
5713 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
5895d7b9 5714 (lookup_image): Check that fixnums are in range for system types.
d311d28c
PE
5715 * indent.c (last_known_column, last_known_column_point):
5716 (current_column_bol_cache):
5717 (skip_invisible, current_column, check_display_width):
5718 (check_display_width, scan_for_column, current_column_1)
5719 (Findent_to, Fcurrent_indentation, position_indentation)
5720 (indented_beyond_p, Fmove_to_column, compute_motion):
5721 (Fcompute_motion, Fvertical_motion):
5722 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5723 (last_known_column_modified): Use EMACS_INT, not int.
5724 (check_display_width):
5725 (Fcompute_motion):
5726 Check that fixnums and floats are in proper range for system types.
5727 (compute_motion): Don't assume index or fixnum fits in int.
5728 (compute_motion, Fcompute_motion):
5729 Use int, not EMACS_INT, when it is wide enough.
5730 (vmotion): Omit local var start_hpos that is always 0; that way
5731 we don't need to worry about overflow in expressions involving it.
5732 * indent.h: Adjust decls to match defn changes elsewhere.
5733 (struct position):
5734 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5735 Use int, not EMACS_INT, where int is wide enough.
5736 Remove unused members ovstring_chars_done and tab_offset;
5737 all uses removed.
5738 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
5739 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
5740 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
5741 (make_gap, copy_text, insert, insert_and_inherit)
5742 (insert_before_markers, insert_before_markers_and_inherit)
5743 (insert_1, count_combining_before, count_combining_after)
5744 (insert_1_both, insert_from_string)
5745 (insert_from_string_before_markers, insert_from_string_1)
5746 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
5747 (adjust_after_replace, adjust_after_insert, replace_range)
5748 (replace_range_2, del_range, del_range_1, del_range_byte)
5749 (del_range_both, del_range_2, modify_region)
5750 (prepare_to_modify_buffer, signal_before_change)
5751 (signal_after_change, Fcombine_after_change_execute):
5752 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5753 * intervals.c (traverse_intervals, rotate_right, rotate_left)
5754 (balance_an_interval, split_interval_right, split_interval_left)
5755 (find_interval, next_interval, update_interval)
5756 (adjust_intervals_for_insertion, delete_node, delete_interval)
5757 (interval_deletion_adjustment, adjust_intervals_for_deletion)
5758 (static_offset_intervals, offset_intervals)
5759 (merge_interval_right, merge_interval_left, make_new_interval)
5760 (graft_intervals_into_buffer, temp_set_point_both)
5761 (temp_set_point, set_point, adjust_for_invis_intang)
5762 (set_point_both, move_if_not_intangible, get_property_and_range)
5763 (get_local_map, copy_intervals, copy_intervals_to_string)
5764 (compare_string_intervals, set_intervals_multibyte_1):
5765 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5766 * intervals.h: Adjust decls to match defn changes elsewhere.
5767 (struct interval):
5768 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5769 * keyboard.c (this_command_key_count, this_single_command_key_start)
5770 (before_command_key_count, before_command_echo_length, echo_now)
5771 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
5772 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
5773 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
5774 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
5775 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5776 (last_non_minibuf_size, last_point_position, echo_truncate)
5777 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
5778 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
5779 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
5780 (stuff_buffered_input):
5781 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5782 (last_auto_save, command_loop_1, read_char):
5783 Use EMACS_INT, not int, to avoid integer overflow.
5784 (record_char): Avoid overflow in total_keys computation.
5785 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
5786 * keyboard.h: Adjust decls to match defn changes elsewhere.
5787 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
5788 (Fkey_description, Fdescribe_vector, Flookup_key):
5789 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5790 (click_position): New function, to check that positions are in range.
5791 (Fcurrent_active_maps):
5792 (describe_command):
5793 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5794 (Faccessible_keymaps, Fkey_description):
5795 (preferred_sequence_p):
5796 Don't assume fixnum can fit into int.
5797 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
5798 Check for integer overflow in size calculations.
5799 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
5800 avoid mishandling large integers.
5801 * lisp.h: Adjust decls to match defn changes elsewhere.
5802 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
5803 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
5804 (struct Lisp_Marker):
5805 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5806 (clip_to_bounds): Now an inline function, moved here from editfns.c.
d311d28c
PE
5807 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
5808 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
5809 All callers changed.
5810 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
5811 Assume the arg has valid form, since it always does.
5812 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
5813 unsigned integer system type.
5814 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
5815 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
5816 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5817 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
5818 (duration_to_sec_usec): New decl.
5819 * lread.c (read_from_string_index, read_from_string_index_byte)
5820 (read_from_string_limit, readchar, unreadchar, openp)
5821 (read_internal_start, read1, oblookup):
5822 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5823 (Fload, readevalloop, Feval_buffer, Feval_region):
5824 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5825 (openp): Check for out-of-range argument to 'access'.
5826 (read1): Use int, not EMACS_INT, where int is wide enough.
5827 Don't assume fixnum fits into int.
6efdadfd 5828 Fix off-by-one error that can read outside a buffer.
1ab7b8ac
PE
5829 (read_filtered_event): Use duration_to_sec_usec
5830 to do proper overflow checking on durations.
d311d28c
PE
5831 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
5832 in size calculation.
5833 (Fexecute_kbd_macro):
5834 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5835 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
5836 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
5837 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
5838 (set_marker_both, set_marker_restricted_both, marker_position)
5839 (marker_byte_position, Fbuffer_has_markers_at):
5840 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5841 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
61b108cc 5842 * menu.c (ensure_menu_items): Rename from grow_menu_items.
d311d28c
PE
5843 It now merely ensures that the menu is large enough, without
5844 necessarily growing it, as this avoids some integer overflow issues.
5845 All callers changed.
5846 (keymap_panes, parse_single_submenu, Fx_popup_menu):
5847 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5848 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
5849 Use SAFE_ALLOCA_LISP, not alloca.
5850 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
5851 to EMACS_INT. Check that fixnums are in proper range for system types.
5852 * minibuf.c (minibuf_prompt_width, string_to_object)
5853 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
5854 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
5855 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5856 (get_minibuffer, read_minibuf_unwind):
5857 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5858 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
5859 this simplifies overflow checking. All callers changed.
5860 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
5861 (Ftest_completion):
5862 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5863 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
5864 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
5865 Check that fixnums are in proper range for system types.
5866 (Fx_create_frame, Fx_show_tip):
5867 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5868 * nsfont.m (ns_findfonts, nsfont_list_family):
5869 Don't assume fixnum fits in long.
5870 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
5871 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5872 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
5873 wide enough.
17fdb222 5874 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
d311d28c
PE
5875 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5876 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
5877 (PRINTDECLARE, PRINTPREPARE):
5878 (strout, print_string):
5879 (print, print_preprocess, print_check_string_charset_prop)
5880 (print_object):
5881 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5882 (PRINTDECLARE):
5883 (temp_output_buffer_setup, Fprin1_to_string, print_object):
5884 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5885 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
d311d28c 5886 (printchar, strout): Use xpalloc to catch size calculation overflow.
0fd11aa5 5887 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
d311d28c
PE
5888 (print_error_message): Use SAFE_ALLOCA, not alloca.
5889 (print_object): Use int, not EMACS_INT, where int is wide enough.
a8b7caa3
PE
5890 (print_depth, new_backquote_output, print_number_index):
5891 Use ptrdiff_t, not int, where int might not be wide enough.
d311d28c
PE
5892 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
5893 (Fset_process_window_size, Fformat_network_address)
5894 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
d44287d4 5895 (sigchld_handler):
d311d28c 5896 Check that fixnums are in proper range for system types.
d44287d4 5897 (Fsignal_process): Simplify by avoiding a goto.
d83cf4cc
PE
5898 Check for process-ids out of pid_t range rather than relying on
5899 undefined behavior.
e4d81efc 5900 (process_tick, update_tick): Use EMACS_INT, not int.
d311d28c
PE
5901 (Fformat_network_address, read_process_output, send_process)
5902 (Fprocess_send_region, status_notify):
5903 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5904 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
5905 (wait_reading_process_output, read_process_output, exec_sentinel):
5906 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5907 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
5908 (Faccept_process_output): Use duration_to_sec_usec to do proper
5909 overflow checking on durations.
dde14581
PE
5910 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
5911 Don't assume pid_t fits in int.
02481186
PE
5912 * process.h (struct Lisp_Process): Members tick and update_tick
5913 are now of type EMACS_INT, not int.
b62b53e8
PE
5914 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
5915 configured --with-wide-int.
d311d28c
PE
5916 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
5917 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
5918 * search.c (looking_at_1, string_match_1):
5919 (fast_string_match, fast_c_string_match_ignore_case)
5920 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
5921 (scan_newline, find_before_next_newline, search_command)
5922 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
5923 (set_search_regs, wordify):
5924 (Freplace_match):
5925 (Fmatch_data):
5926 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5927 (string_match_1, search_buffer, set_search_regs):
5928 (Fmatch_data):
5929 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5930 (wordify): Check for overflow in size calculation.
5931 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
5932 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
5933 Check that fixnums are in proper range for system types.
5934 * sound.c (struct sound_device)
5935 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
5936 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5937 (Fplay_sound_internal):
5938 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
eacd378d 5939 * syntax.c (struct lisp_parse_state, find_start_modiff)
d311d28c
PE
5940 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
5941 (Fparse_partial_sexp):
5942 Don't assume fixnums can fit in int.
5943 (struct lisp_parse_state, find_start_pos, find_start_value)
5944 (find_start_value_byte, find_start_begv)
5945 (update_syntax_table, char_quoted, dec_bytepos)
5946 (find_defun_start, prev_char_comend_first, back_comment):
5947 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
5948 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
5949 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5950 (Finternal_describe_syntax_value): Check that match_lisp is a
5951 character, not an integer, since the code stuffs it into int.
5952 (scan_words, scan_sexps_forward):
5953 Check that fixnums are in proper range for system types.
5954 (Fforward_word):
5955 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5956 (scan_sexps_forward):
5957 Use CHARACTERP, not INTEGERP, since the value must fit into int.
5958 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
5959 * syntax.h: Adjust decls to match defn changes elsewhere.
5960 (struct gl_state_s):
5961 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
e4ecdc9c
PE
5962 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
5963 MOST_POSITIVE_FIXNUM.
d311d28c
PE
5964 * sysdep.c (wait_for_termination_1, wait_for_termination)
5965 (interruptible_wait_for_termination, mkdir):
5966 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
5967 (emacs_read, emacs_write):
5968 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
225a2cff
PE
5969 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
5970 and double all fit in int.
d311d28c
PE
5971 * term.c (set_tty_color_mode):
5972 Check that fixnums are in proper range for system types.
5973 * termhooks.h (struct input_event):
5974 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5975 * textprop.c (validate_interval_range, interval_of)
5976 (Fadd_text_properties, set_text_properties_1)
5977 (Fremove_text_properties, Fremove_list_of_text_properties)
5978 (Ftext_property_any, Ftext_property_not_all)
5979 (copy_text_properties, text_property_list, extend_property_ranges)
5980 (verify_interval_modification):
5981 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5982 (Fnext_single_char_property_change)
5983 (Fprevious_single_char_property_change):
5984 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5895d7b9
PE
5985 (copy_text_properties):
5986 Check for integer overflow in index calculation.
d311d28c
PE
5987 * undo.c (last_boundary_position, record_point, record_insert)
5988 (record_delete, record_marker_adjustment, record_change)
5989 (record_property_change):
5990 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5991 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
5992 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5993 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
5994 (Fx_hide_tip, Fx_file_dialog):
5995 * w32menu.c (set_frame_menubar):
5996 Use ptrdiff_t, not int, for consistency with rest of code.
5997 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
5998 (select_window, Fdelete_other_windows_internal)
5999 (window_scroll_pixel_based, window_scroll_line_based)
6000 (Frecenter, Fset_window_configuration):
6001 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
6002 (Fset_window_hscroll, run_window_configuration_change_hook)
6003 (set_window_buffer, temp_output_buffer_show, scroll_command)
5895d7b9 6004 (Fscroll_other_window, Frecenter):
d311d28c
PE
6005 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
6006 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
6007 Don't assume fixnum fits in int.
6008 (Fset_window_scroll_bars):
6009 Check that fixnums are in proper range for system types.
6010 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
6011 (string_pos, c_string_pos, number_of_chars, init_iterator)
6012 (in_ellipses_for_invisible_text_p, init_from_display_pos)
6013 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
6014 (compute_display_string_end, handle_face_prop)
5895d7b9
PE
6015 (face_before_or_after_it_pos, handle_invisible_prop)
6016 (handle_display_prop, handle_display_spec, handle_single_display_spec)
d311d28c
PE
6017 (display_prop_intangible_p, string_buffer_position_lim)
6018 (string_buffer_position, handle_composition_prop, load_overlay_strings)
6019 (get_overlay_strings_1, get_overlay_strings)
6020 (iterate_out_of_display_property, forward_to_next_line_start)
6021 (back_to_previous_visible_line_start, reseat, reseat_to_string)
6022 (get_next_display_element, set_iterator_to_next)
6023 (get_visually_first_element, compute_stop_pos_backwards)
6024 (handle_stop_backwards, next_element_from_buffer)
6025 (move_it_in_display_line_to, move_it_in_display_line)
6026 (move_it_to, move_it_vertically_backward, move_it_by_lines)
6027 (add_to_log, message_dolog, message_log_check_duplicate)
6028 (message2, message2_nolog, message3, message3_nolog
6029 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
6030 (current_message_1, truncate_echo_area, truncate_message_1)
6031 (set_message, set_message_1, store_mode_line_noprop)
6032 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
6033 (text_outside_line_unchanged_p, check_point_in_composition)
6034 (reconsider_clip_changes)
6035 (redisplay_internal, set_cursor_from_row, try_scrolling)
6036 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
6037 (redisplay_window, find_last_unchanged_at_beg_row)
6038 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
6039 (trailing_whitespace_p, find_row_edges, display_line)
6040 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
6041 (display_mode_element, store_mode_line_string)
6042 (pint2str, pint2hrstr, decode_mode_spec)
6043 (display_count_lines, display_string, draw_glyphs)
6044 (x_produce_glyphs, x_insert_glyphs)
6045 (rows_from_pos_range, mouse_face_from_buffer_pos)
6046 (fast_find_string_pos, mouse_face_from_string_pos)
6047 (note_mode_line_or_margin_highlight, note_mouse_highlight):
6048 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
6049 (safe_call, init_from_display_pos, handle_fontified_prop)
6050 (handle_single_display_spec, load_overlay_strings)
6051 (with_echo_area_buffer, setup_echo_area_for_printing)
6052 (display_echo_area, echo_area_display)
6053 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
6054 (update_tool_bar, hscroll_window_tree, redisplay_internal)
5895d7b9
PE
6055 (redisplay_window, dump_glyph_row, display_mode_line)
6056 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
43ad2e9a 6057 (handle_display_spec, display_prop_string_p):
d311d28c
PE
6058 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
6059 (handle_single_display_spec, build_desired_tool_bar_string)
6060 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
6061 (get_specified_cursor_type):
6062 Check that fixnums are in proper range for system types.
6063 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
6064 (Flookup_image_map):
6065 Don't assume fixnums fit in int.
6066 (compare_overlay_entries):
6067 Avoid mishandling comparisons due to subtraction overflow.
6068 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
6069 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
6070 (handle_tool_bar_click):
6071 Use int, not unsigned, since we prefer signed and the signedness
6072 doesn't matter here.
6073 (get_next_display_element, next_element_from_display_vector):
6074 Use int, not EMACS_INT, when int is wide enough.
6075 (start_hourglass): Use duration_to_sec_usec to do proper
6076 overflow checking on durations.
6077 * xfaces.c (Fbitmap_spec_p):
6078 Check that fixnums are in proper range for system types.
6079 (compare_fonts_by_sort_order):
6080 Avoid mishandling comparisons due to subtraction overflow.
6081 (Fx_family_fonts, realize_basic_faces):
6082 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
6083 (Fx_family_fonts):
6084 Don't assume fixnum fits in int.
6085 Use SAFE_ALLOCA_LISP, not alloca.
6086 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
6087 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
6088 (face_at_buffer_position, face_for_overlay_string)
6089 (face_at_string_position):
6090 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
6091 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
6092 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
6093 (Fx_show_tip):
6094 Check that fixnums are in proper range for system types.
6095 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
6096 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
6097 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
6098 (Fx_change_window_property): Don't assume fixnums fit in int.
6099 * xfont.c (xfont_chars_supported):
6100 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
6101 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
6102 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
6103 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
6104 * xml.c (parse_region):
6105 * xrdb.c (magic_file_p):
6106 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
6107 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
6108 (x_get_local_selection, x_reply_selection_request)
6109 (x_handle_selection_request, wait_for_property_change):
6110 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
6111 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
6112 short is wide enough.
6113 (x_send_client_event): Don't assume fixnum fits in int.
6114 * xterm.c (x_x_to_emacs_modifiers):
6115 Don't assume EMACS_INT overflows nicely into int.
6116 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
6117 may come from Lisp.
6118 (handle_one_xevent): NATNUMP can eval its arg twice.
6119 (x_connection_closed):
6120 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
6121 * xterm.h: Adjust decls to match defn changes elsewhere.
6122 (struct scroll_bar): Use struct vectorlike_header
6123 rather than rolling our own approximation.
6124 (SCROLL_BAR_VEC_SIZE): Remove; not used.
6125
c6574eb5
GM
61262012-05-25 Glenn Morris <rgm@gnu.org>
6127
6128 * lisp.mk (lisp): Update for more files being compiled now.
6129
e8d32c7e
SM
61302012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
6131
48def666
SM
6132 * lread.c: Remove `read_pure' which makes no difference.
6133 (read_pure): Remove var.
6134 (unreadpure): Remove function.
6135 (readevalloop): Don't call read_list with -1 flag.
6136 (read1, read_vector): Don't test read_pure any more.
6137 (read_list): Simplify.
6138
e8d32c7e
SM
6139 * fileio.c, character.h: Minor style tweaks.
6140
4b2addb7
DA
61412012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
6142
6143 * window.h (clip_changed): Remove useless declaration.
6144
584461b2
JB
61452012-05-22 Juanma Barranquero <lekktu@gmail.com>
6146
6147 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
6148 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
6149
34374650
PE
61502012-05-22 Paul Eggert <eggert@cs.ucla.edu>
6151
6152 Remove src/m/*.
6153 This directory predates autoconf and is no longer needed nowadays.
6154 Move its few remaining bits of functionality to where they're needed.
6155 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
6156 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
6157 * m/template.h: Remove.
6158 * Makefile.in (M_FILE): Remove. All uses removed.
6159 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
6160 * lisp.h (USE_LSB_TAG):
6161 * mem-limits.h (EXCEEDS_LISP_PTR):
6162 Use VAL_MAX, not VALBITS, in #if.
6163 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
6164 (EMACS_UINT): Define unconditionally now.
6165 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
6166 (BITS_PER_EMACS_INT): New constants, replacing
6167 what used to be in config.h, but not useful in #if.
6168 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
6169 define them any more.
6170 (VAL_MAX): New macro.
6171 (VALMASK): Use it.
6172 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
6173 BITS_PER_EMACS_INT, in #if.
6174 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
6175 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
6176 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
6177 * s/ms-w32.h (DATA_START):
6178 Move here from removed file m/intel386.h.
6179 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
6180 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
6181
261cb4bb
PE
61822012-05-21 Paul Eggert <eggert@cs.ucla.edu>
6183
6184 Assume C89 or later.
6185 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
6186 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
6187 (xrealloc):
6188 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
6189 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
6190 * textprop.c, tparam.c (NULL): Remove.
6191 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
6192 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
6193 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
6194 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
6195 * xterm.c (input_signal_count): Assume volatile works.
6196
ff23cd9f
KB
61972012-05-21 Ken Brown <kbrown@cornell.edu>
6198
6199 * xgselect.c (xg_select): Fix first argument in call to 'select'
6200 (bug#11508).
6201
1b170bc6
KB
62022012-05-20 Ken Brown <kbrown@cornell.edu>
6203
6204 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
bd7239f5 6205 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
1b170bc6 6206
b2f4d39f
KB
62072012-05-19 Ken Brown <kbrown@cornell.edu>
6208
6209 * xfns.c (x_in_use): Remove `static' qualifier.
6210 * xterm.h (x_in_use): Declare.
6211 * xgselect.c: Include xterm.h.
6212 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
6213 and `display_arg' (bug#9754).
6214
003fdae2
PE
62152012-05-19 Paul Eggert <eggert@cs.ucla.edu>
6216
9232a6d9
PE
6217 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
6218
003fdae2
PE
6219 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
6220 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
6221
784b56e2
EZ
62222012-05-18 Eli Zaretskii <eliz@gnu.org>
6223
6224 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
6225
6226 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
090bd7cb 6227 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c.
784b56e2
EZ
6228
6229 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
6230 reference to image_cache->refcount.
6231 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
6232
a0a79cde
JL
62332012-05-17 Juri Linkov <juri@jurta.org>
6234
6235 * search.c (Fword_search_regexp, Fword_search_backward)
6236 (Fword_search_forward, Fword_search_backward_lax)
6237 (Fword_search_forward_lax): Move functions to isearch.el
6238 (bug#10145, bug#11381).
6239
b0572523
PE
62402012-05-16 Paul Eggert <eggert@cs.ucla.edu>
6241
6242 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
6243
9660f5fc
SM
62442012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
6245
6246 * lread.c (init_obarray): Declare Qt and Qnil as special.
6247
4374de83
GM
62482012-05-14 Glenn Morris <rgm@gnu.org>
6249
6250 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
985584ae 6251 Put "libexec" before "bin", for the sake of init_callproc_1.
4374de83 6252
dc44c39a
PE
62532012-05-14 Paul Eggert <eggert@cs.ucla.edu>
6254
078c97cb
PE
6255 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
6256
dc44c39a
PE
6257 * unexaix.c: Port to more-recent AIX compilers.
6258 (report_error, report_error_1, make_hdr, copy_sym)
6259 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
6260 Make arguments const char *, not char *, to avoid violations of C
6261 standard and to fix some AIX warnings reported by Gilles Pion.
6262
e18afed7 62632012-05-14 Eli Zaretskii <eliz@gnu.org>
ac268e67
EZ
6264
6265 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
6266 already have overlays loaded.
6267 (handle_single_display_spec): Before returning without displaying
6268 fringe bitmap, synchronize the bidi iterator with the main display
6269 iterator, by calling iterate_out_of_display_property.
6270 (iterate_out_of_display_property): Detect buffer iteration by
6271 testing that it->string is a Lisp string.
6272 (get_next_display_element): When the current object is exhausted,
6273 and there's something on it->stack, call set_iterator_to_next to
6274 proceed with what's on the stack, instead of returning zero.
6275 (set_iterator_to_next): If called at the end of a Lisp string,
6276 proceed to consider_string_end without incrementing string
6277 position. Don't increment display vector index past the end of
6278 the display vector. (Bug#11417)
c8fb9dc6
EZ
6279 (pos_visible_p): Don't report a position visible when move_it_to
6280 stopped at the last line of window, which happens to be scanned
6281 backwards by the bidi iteration. (Bug#11464)
ac268e67 6282
e18afed7 62832012-05-14 Eli Zaretskii <eliz@gnu.org>
82f9b393
EZ
6284
6285 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
6286 and right-margin display specs even if the spec is invalid or we
61b108cc
SM
6287 are on a TTY, and thus unable to display on the fringes.
6288 That's because the text with the property will not be displayed anyway,
82f9b393
EZ
6289 so we need to signal to the caller that this is a "replacing"
6290 display spec. This fixes display when the spec is invalid or we
6291 are on a TTY.
6292
e18afed7 62932012-05-14 Paul Eggert <eggert@cs.ucla.edu>
297834cd
PE
6294
6295 * unexaix.c (make_hdr): Fix typo in prototype.
6296 This bug broke the build on AIX. Problem reported by Gilles Pion.
6297
9d0a235a
MA
62982012-05-14 Michael Albinus <michael.albinus@gmx.de>
6299
6300 * keyboard.c (kbd_buffer_get_event): Read special events also in
6301 batch mode. (Bug#11415)
6302
9e6b06ed
GM
63032012-05-12 Glenn Morris <rgm@gnu.org>
6304
6305 * ns.mk: Update for ns_appbindir no longer having trailing "/".
6306
c1a1d7a3
EZ
63072012-05-12 Eli Zaretskii <eliz@gnu.org>
6308
6309 * lisp.mk (lisp): Add newcomment.elc.
6310
3fe7cdc8
GM
63112012-05-12 Glenn Morris <rgm@gnu.org>
6312
6313 * Makefile.in (MKDIR_P): New, set by configure.
6314 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
6315
53f7d2c0
PE
63162012-05-11 Paul Eggert <eggert@cs.ucla.edu>
6317
6318 Remove unused function hourglass_started.
6319 * dispextern.h (hourglass_started):
6320 * w32fns.c (hourglass_started):
6321 * xdisp.c (hourglass_started): Remove.
6322
75aafb17
JB
63232012-05-10 Juanma Barranquero <lekktu@gmail.com>
6324
6325 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
6326 Update dependencies.
6327
12959e8e
PE
63282012-05-10 Paul Eggert <eggert@cs.ucla.edu>
6329
97107e2e
PE
6330 * xgselect.c (xg_select): Put maxfds+1 into a var.
6331 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
6332
12959e8e
PE
6333 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
6334
836d29b3
DA
63352012-05-10 Dave Abrahams <dave@boostpro.com>
6336
6337 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
6338 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
6339
5cb67954
MA
63402012-05-09 Michael Albinus <michael.albinus@gmx.de>
6341
6342 * dbusbind.c (xd_registered_buses): New internal Lisp object.
6343 Rename all occurences of Vdbus_registered_buses to xd_registered_buses.
6344 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
6345 Initialize xd_registered_buses.
6346
3478ec45
PE
63472012-05-09 Paul Eggert <eggert@cs.ucla.edu>
6348
b263a6b0
PE
6349 Untag more efficiently if USE_LSB_TAG.
6350 This is based on a proposal by YAMAMOTO Mitsuharu in
6351 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
6352 For an admittedly artificial (nth 8000 longlist) benchmark on
6353 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
6354 Emacs's overall text size by 1%.
6355 * lisp.h (XUNTAG): New macro.
6356 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
6357 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
6358 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
6359 * eval.c (Fautoload):
6360 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
6361 * frame.h (XFRAME): Use XUNTAG.
6362
3478ec45
PE
6363 Port recent dbusbind.c changes to 32-bit --with-wide-int.
6364 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
6365 Remove unportable assumptions about print widths of types like
6366 dbus_uint32_t.
6367 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
6368 intptr_t when converting between pointer and integer, to avoid GCC
6369 warnings about wrong width.
6370
666b903b 63712012-05-09 Eli Zaretskii <eliz@gnu.org>
0d887c7d
EZ
6372
6373 * w32proc.c (new_child): Force Windows to reserve only 64KB of
6374 stack for each reader_thread, instead of defaulting to 8MB
6375 determined by the linker. This avoids failures in creating
6376 subprocesses on Windows 7, see the discussion in this thread:
6377 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
6378
b120cc17
JC
63792012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
6380
6381 Fix up display of the *Minibuf-0* buffer in the mini window.
6382 * keyboard.c (read_char): Don't clear the echo area if there's no
6383 message to clear.
6384 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
2fed2689 6385 contents of *Minibuf-0*) if there's no message displayed in its stead.
b120cc17 6386
9a4b36f8
MA
63872012-05-07 Michael Albinus <michael.albinus@gmx.de>
6388
6389 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
6390 batch mode.
6391
e5f9458f
CY
63922012-05-06 Chong Yidong <cyd@gnu.org>
6393
6394 * lisp.mk (lisp): Update.
6395
eceeb5fc 63962012-05-05 Jim Meyering <meyering@redhat.com>
bf98199c
JM
6397
6398 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
6399
71873e2b
SM
64002012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
6401
6402 * data.c (PUT_ERROR): New macro.
6403 (syms_of_data): Use it. Add new error type `user-error'.
6404 * undo.c (user_error): New function.
6405 (Fprimitive_undo): Use it.
6406 * print.c (print_error_message): Adjust print style for `user-error'.
6407 * keyboard.c (user_error): New function.
6408 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
6409
ab0fa4e4
PE
64102012-05-03 Paul Eggert <eggert@cs.ucla.edu>
6411
6412 Do not limit current-time-string to years 1000..9999.
6413 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
6414 (Fcurrent_time_string): Support any year that is supported by the
6415 underlying localtime representation. Don't use asctime, as it
6416 has undefined behavior for years outside the range -999..9999.
6417
7ed806a7
PE
64182012-05-02 Paul Eggert <eggert@cs.ucla.edu>
6419
6420 Fix race conditions involving setenv, gmtime, localtime, asctime.
6421 Without this fix, interrupts could mess up code that uses these
6422 nonreentrant functions, since setting TZ invalidates existing
6423 tm_zone or tzname values, and since most of these functions return
6424 pointers to static storage.
6425 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
6426 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
6427 Grow the critical sections to include not just invoking
6428 localtime/gmtime, but also accessing these functions' results
6429 including their tm_zone values if any, and any related TZ setting.
6430 (format_time_string): Last arg is now struct tm *, not struct tm **,
71873e2b
SM
6431 so that the struct tm is saved in the critical section.
6432 All callers changed. Simplify allocation of initial buffer, partly
7ed806a7
PE
6433 motivated by the fact that memory allocation needs to be outside
6434 the critical section.
6435
0c16dfed
DA
64362012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
6437
6438 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
6439 with RESET_INTERVAL.
6440
6441 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
6442 Remove duplicated buffer name initialization.
6443
3f83ace8
JM
64442012-05-02 Jim Meyering <jim@meyering.net>
6445
6446 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
6447
c7b8541e
JM
6448 * xfns.c (x_window): Use xstrdup (Bug#11375).
6449
90207a15 64502012-05-02 Eli Zaretskii <eliz@gnu.org>
2fa85638
EZ
6451
6452 * xdisp.c (pos_visible_p): If already at a newline from the
6453 display string before the 'while' loop, don't walk back the glyphs
6454 from it3.glyph_row. Solves assertion violation when the display
6455 string begins with a newline (egg.el). (Bug#11367)
6456
b593d6a9
AH
64572012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
6458
6459 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
6460 Move to simple.el.
6461
4737362e
GM
64622012-05-01 Glenn Morris <rgm@gnu.org>
6463
99cf43f9
GM
6464 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
6465 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
6466 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
6467 All were removed before 23.1.
6468
9311dcff
GM
6469 * dispnew.c: Remove HAVE_LIBNCURSES test;
6470 it is always true on relevant platforms.
6471
4d5c6349
GM
6472 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
6473 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
6474
4737362e
GM
6475 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
6476
74dd3a6b
AS
64772012-04-30 Andreas Schwab <schwab@linux-m68k.org>
6478
6479 * .gdbinit (xpr): Remove checks for no longer existing misc types.
6480 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
6481 Remove.
6482
13c379ee
PE
64832012-04-28 Paul Eggert <eggert@cs.ucla.edu>
6484
6485 Do not avoid creating empty evaporating overlays (Bug#9642).
6486 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
6487 That is, do not delete an evaporating overlay if it becomes
6488 empty after its bounds are adjusted to fit within its buffer.
6489 This fix caused other problems, and I'm reverting it until we get
6490 to the bottom of them.
6491
a8e7d6d7 64922012-04-27 Chong Yidong <cyd@gnu.org>
9be2fd9b
CY
6493
6494 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
6495
a8e7d6d7 64962012-04-27 Eli Zaretskii <eliz@gnu.org>
f0ee99a0
EZ
6497
6498 * xdisp.c (pos_visible_p): If the window start position is beyond
6499 ZV, start the display from buffer beginning. Prevents assertion
6500 violation in init_iterator when the minibuffer window is scrolled
6501 via the scroll bar.
6502
6503 * window.c (window_scroll_pixel_based): Likewise.
6504
a8e7d6d7 65052012-04-27 Chong Yidong <cyd@gnu.org>
9ec7751f
CY
6506
6507 * keymap.c (where_is_internal): Doc fix (Bug#10872).
6508
a8e7d6d7 65092012-04-27 Glenn Morris <rgm@gnu.org>
24c51a09
GM
6510
6511 * fileio.c (Fcopy_file, Fset_file_selinux_context):
6512 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
6513
a8e7d6d7 65142012-04-27 Eli Zaretskii <eliz@gnu.org>
73055685 6515
b593d6a9
AH
6516 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
6517 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
73055685 6518
1c6900d9
EZ
65192012-04-26 Eli Zaretskii <eliz@gnu.org>
6520
4c3fa1d9
EZ
6521 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
6522 display element, check also the underlying string or buffer
6523 character. (Bug#11341)
6524
1c6900d9
EZ
6525 * w32menu.c: Include w32heap.h.
6526 (add_menu_item): If the call to AppendMenuW (via
6527 unicode_append_menu) fails, disable Unicode menus only if we are
6528 running on Windows 9X/Me.
6529
42bf8205
AS
65302012-04-24 Andreas Schwab <schwab@linux-m68k.org>
6531
6532 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
6533 (xgetint): Add missing shift for LSB tags.
6534
b1bac16e
MR
65352012-04-24 Martin Rudalics <rudalics@gmx.at>
6536
6537 * keyboard.c (read_char): Don't wipe echo area for select window
6538 events: These might get delayed via `mouse-autoselect-window'
6539 (Bug#11304).
6540
d69621cc
JB
65412012-04-24 Juanma Barranquero <lekktu@gmail.com>
6542
6543 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
6544 manipulation of :loaded-from data.
6545
02fd101b
JB
65462012-04-23 Juanma Barranquero <lekktu@gmail.com>
6547
6548 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
6549 now a cons (bug#11311).
6550
888bec30
PE
65512012-04-23 Paul Eggert <eggert@cs.ucla.edu>
6552
89a438bd
PE
6553 Do not create empty overlays with the evaporate property (Bug#9642).
6554 * buffer.c (Fmove_overlay): Delete an evaporating overlay
6555 if it becomes empty after its bounds are adjusted to fit within
6556 its buffer. Without this fix, in a nonempty buffer (let ((o
6557 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
6558 yields an empty overlay that has the evaporate property, which is
6559 not supposed to happen.
6560
1068fe4d
PE
6561 Fix minor GTK3 problems found by static checking.
6562 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
6563 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
6564 (struct _EmacsFixedClass, emacs_fixed_get_type):
6565 Move decls here from emacsgtkfixed.h, since they needn't be public.
6566 (emacs_fixed_get_type): Now static.
6567 (emacs_fixed_class_init): Omit unused local.
6568 (emacs_fixed_child_type): Remove; unused.
6569 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
6570 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
6571 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
6572 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
6573 (EMACS_FIXED_GET_CLASS): Remove; unused.
6574 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
6575
888bec30
PE
6576 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
6577 Problem reported by Juanma Barranquero for Windows -Wunused-function.
6578
de85e130
PE
65792012-04-22 Paul Eggert <eggert@cs.ucla.edu>
6580
d0baac98 6581 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
bd7239f5 6582 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
d0baac98
PE
6583 (__malloc_size_t, __malloc_ptrdiff_t):
6584 Remove. All uses removed, replaced by the definiens if needed,
6585 since we can assume C89 or better now.
6586 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
6587 (protect_malloc_state, align, get_contiguous_space)
6588 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
6589 (malloc_atfork_handler_child, malloc_enable_thread)
6590 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
6591 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
6592 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
6593 (special_realloc, _realloc_internal_nolock, _realloc_internal)
6594 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
6595 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
6596 Define using prototypes, not old style.
6597 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
6598 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
6599 (align): Don't assume that signed integer overflow wraps around.
6600 Omit unused local var.
6601 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
6602 (_free_internal_nolock, memalign, mallochook, reallochook):
6603 Omit no-longer-needed casts.
6604 (valloc): Use getpagesize, not __getpagesize.
6605 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
6606 (struct hdr): The 'magic' member is now size_t, not unsigned long.
6607
de85e130
PE
6608 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
6609
dcbf5805
MA
66102012-04-22 Michael Albinus <michael.albinus@gmx.de>
6611
6612 Move functions from C to Lisp. Make non-blocking method calls
6613 the default. Implement further D-Bus standard interfaces.
6614
6615 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
6616 (QCdbus_request_name_allow_replacement)
6617 (QCdbus_request_name_replace_existing)
6618 (QCdbus_request_name_do_not_queue)
6619 (QCdbus_request_name_reply_primary_owner)
6620 (QCdbus_request_name_reply_in_queue)
6621 (QCdbus_request_name_reply_exists)
6622 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
6623 (QCdbus_registered_serial, QCdbus_registered_method)
6624 (QCdbus_registered_signal): New Lisp objects.
6625 (XD_DEBUG_MESSAGE): Use sizeof.
6626 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
6627 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
6628 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
6629 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
6630 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
6631 (xd_signature, xd_append_arg): Allow float for integer types.
6632 (xd_get_connection_references): New function.
b593d6a9
AH
6633 (xd_get_connection_address): Rename from xd_initialize.
6634 Return cached address.
dcbf5805
MA
6635 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
6636 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
6637 level.
6638 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
9a4b36f8 6639 Return number of refcounts.
dcbf5805
MA
6640 (Fdbus_get_unique_name): Make stronger parameter check.
6641 (Fdbus_message_internal): New defun.
6642 (Fdbus_call_method, Fdbus_call_method_asynchronously)
6643 (Fdbus_method_return_internal, Fdbus_method_error_internal)
6644 (Fdbus_send_signal, Fdbus_register_service)
6645 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
6646 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
6647 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
6648 (Vdbus_compiled_version, Vdbus_runtime_version)
6649 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
6650 (Vdbus_message_type_method_return, Vdbus_message_type_error)
6651 (Vdbus_message_type_signal): New defvars.
b593d6a9
AH
6652 (Vdbus_registered_buses, Vdbus_registered_objects_table):
6653 Adapt docstring.
dcbf5805 6654
52828e02
PE
66552012-04-22 Paul Eggert <eggert@cs.ucla.edu>
6656
da05bc4c
PE
6657 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
6658 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
6659 Do not assume ptrdiff_t is the same width as 'int'.
6660
52828e02
PE
6661 * alloc.c: Handle unusual debugging option combinations.
6662 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
6663 since the two debugging options are incompatible.
6664 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
6665 is defined.
6666 (mem_init, mem_insert, mem_insert_fixup):
6667 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
6668 (NEED_MEM_INSERT): Remove; no longer needed.
6669
f01769f9
LL
66702012-04-22 Leo Liu <sdl.web@gmail.com>
6671
6672 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
6673
5790543d
PE
66742012-04-22 Paul Eggert <eggert@cs.ucla.edu>
6675
6676 * sysdep.c [__FreeBSD__]: Minor cleanups.
6677 (list_system_processes, system_process_attributes) [__FreeBSD__]:
6678 Use Emacs indenting style more consistently. Avoid some casts.
6679 Use 'double' consistently rather than mixing 'float' and 'double'.
6680
b91b7e4d
EW
66812012-04-21 Eduard Wiebe <usenet@pusto.de>
6682
b593d6a9
AH
6683 * sysdep.c (list_system_processes, system_process_attributes):
6684 Add implementation for FreeBSD (Bug#5243).
b91b7e4d 6685
6114eb15
AS
66862012-04-21 Andreas Schwab <schwab@linux-m68k.org>
6687
6688 * lisp.mk (lisp): Update.
6689
2f38dff7
PE
66902012-04-20 Paul Eggert <eggert@cs.ucla.edu>
6691
6692 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
6693 It is never used otherwise.
6694
4ae29f89
SM
66952012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
6696
6697 * print.c (print_preprocess): Only check print_depth if print-circle
6698 is nil.
6699 (print_object): Check for cycles even when print-circle is nil and
6700 print-gensym is t, but only check print_depth if print-circle is nil.
6701
f30d612a
CY
67022012-04-20 Chong Yidong <cyd@gnu.org>
6703
6704 * process.c (wait_reading_process_output): If EIO occurs on a pty,
6705 set the status to "failed" and ensure that sentinel is run.
6706
c07a4c0b 67072012-04-20 Glenn Morris <rgm@gnu.org>
016a35df
GM
6708
6709 * process.c (Fset_process_inherit_coding_system_flag)
6710 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
4373fd43 6711 (Fmake_network_process, Fmake_serial_process): Doc fix.
016a35df 6712
c07a4c0b 67132012-04-20 Eli Zaretskii <eliz@gnu.org>
20a68157
EZ
6714
6715 * xdisp.c (string_buffer_position_lim): Limit starting position to
6716 BEGV.
6717 (set_cursor_from_row): If called for a mode-line or header-line
6718 row, return zero immediately.
6719 (try_cursor_movement): If inside continuation line, don't back up
4ae29f89
SM
6720 farther than the first row after the header line, if any.
6721 Don't consider the header-line row as "partially visible", even if
20a68157
EZ
6722 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
6723
c07a4c0b 67242012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 6725
4ae29f89
SM
6726 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
6727 (bug#11238).
ad3a2b41 6728
c07a4c0b 67292012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
6c94c34f 67302012-04-18 Paul Eggert <eggert@cs.ucla.edu>
ae6e112d
PE
6731
6732 configure: new option --enable-gcc-warnings (Bug#11207)
6733 * Makefile.in (C_WARNINGS_SWITCH): Remove.
6734 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
6735 (ALL_CFLAGS): Use new macros rather than old.
6736 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
6737 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
6738 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
6739 -Wunused-result, -Wunused-variable. This should go away once
6740 the Emacs and Gnulib regex code is merged.
6741 (xmalloc, xrealloc): Now static.
6742
aba027e8
PE
67432012-04-17 Paul Eggert <eggert@cs.ucla.edu>
6744
6745 * dired.c (Fsystem_groups): Remove unused local.
6746
e5a36063
GM
67472012-04-17 Glenn Morris <rgm@gnu.org>
6748
6749 * dired.c (Fsystem_users): Doc fix.
6750
316411f0
DA
67512012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
6752
6753 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
6754 (syms_of_dired): Add them.
6755
9426aba4
PE
67562012-04-16 Paul Eggert <eggert@cs.ucla.edu>
6757
b62a57be
PE
6758 Fix minor alloc.c problems found by static checking.
6759 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
6760 New extern decls, to avoid calling undeclared functions.
6761 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
6762 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
6763 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
6764 (NEED_MEM_INSERT): New macro.
6765 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
4b5afbb0 6766 Remove one incorrect comment and fix another.
b62a57be 6767
3539f31f
PE
6768 Fix minor ralloc.c problems found by static checking.
6769 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
6770 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
6771 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
6772 (r_alloc_sbrk): Now static.
6773
a041960a
PE
6774 Improve ralloc.c interface checking.
6775 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
6776 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
6777 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
6778 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
6779 [REL_ALLOC]: ... to here, to check interface.
6780 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
6781 Remove decls. This fixes an "It stinks!".
6782
9426aba4
PE
6783 * alloc.c (which_symbols): Fix alignment issue / type clash.
6784
d55c12ed
AS
67852012-04-15 Andreas Schwab <schwab@linux-m68k.org>
6786
6787 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
6788 (struct Lisp_Misc_Any): Likewise.
6789 (struct Lisp_Free): Likewise.
6790 * alloc.c (union aligned_Lisp_Symbol): Define.
6791 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
6792 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
6793 (union aligned_Lisp_Misc): Define.
6794 (MARKER_BLOCK_SIZE, struct marker_block): Use union
6795 aligned_Lisp_Misc instead of union Lisp_Misc.
4ae29f89 6796 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
d55c12ed 6797
b948ce8b
PE
67982012-04-14 Paul Eggert <eggert@cs.ucla.edu>
6799
6800 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
6801 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
6802 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
6803 * s/netbsd.h, s/sol2-6.h:
6804 Remove definition of GC_MARK_STACK, since the default now works.
6805 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
6806 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
6807 no longer the default.
6808 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
6809
35dc09a1 68102012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 6811
35dc09a1
GM
6812 * lread.c (lisp_file_lexically_bound_p):
6813 Fix hang at ";-*-\n" (bug#11238).
ad3a2b41 6814
35dc09a1
GM
68152012-04-14 Eli Zaretskii <eliz@gnu.org>
6816
6817 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
6818 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
6819
68202012-04-14 Jan Djärv <jan.h.d@swipnet.se>
6821
6822 * nsterm.m (constrainFrameRect): Always constrain when there is only
6823 one screen (Bug#10962).
6824
bcd86815
KB
68252012-04-13 Ken Brown <kbrown@cornell.edu>
6826
6827 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
6828
c25df26e
RT
68292012-04-13 Reuben Thomas <rrt@sc3d.org>
6830
6831 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
6832
0fc59f1e
DC
68332012-04-11 Daniel Colascione <dancol@dancol.org>
6834
6835 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
6836 against is gone. It's better to use vfork now so that when Cygwin
6837 gains a new, working vfork, we use it automatically (bug#10398).
6838
de8c03dc
SM
68392012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
6840
6841 * window.c (save_window_save): Obey window-point-insertion-type.
6842
2f097256
GM
68432012-04-11 Glenn Morris <rgm@gnu.org>
6844
6845 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
6846
453b951e
SM
68472012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
6848
6849 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
6850
75f1671a 68512012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
6bbef4e5
JC
6852
6853 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
6854 (force_quit_count): New var.
6855 (handle_interrupt): Use it.
6856
2a8ce227
JB
68572012-04-10 Juanma Barranquero <lekktu@gmail.com>
6858
6859 * w32.c (w32_delayed_load): Record the full path of the library
6860 being loaded (bug#10424).
6861
935396c0
GM
68622012-04-09 Glenn Morris <rgm@gnu.org>
6863
05920a43
GM
6864 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
6865 not just in the obarray, before snarfing them. (Bug#11036)
6866
935396c0
GM
6867 * Makefile.in ($(leimdir)/leim-list.el):
6868 Pass EMACS rather than BUILT_EMACS.
6869
a18ecafa
TZ
68702012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
6871
6872 * process.c (make_process):
6873 * process.h: Add integer `gnutls_handshakes_tried' member to
6874 process struct.
6875
6bbef4e5
JC
6876 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
6877 Add convenience `GNUTLS_LOG2i' macro.
a18ecafa
TZ
6878
6879 * gnutls.c (gnutls_log_function2i): Convenience log function.
6880 (emacs_gnutls_read): Use new log functions,
6881 `gnutls_handshakes_tried' process member, and
6882 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
6883 attempts per process (connection).
6884
b4d3bc10
CY
68852012-04-09 Chong Yidong <cyd@gnu.org>
6886
6887 * eval.c (Fuser_variable_p, user_variable_p_eh)
6888 (lisp_indirect_variable): Functions deleted.
6889 (Fdefvar): Caller changed.
6890
6891 * callint.c (Finteractive, Fcall_interactively):
6892 * minibuf.c (Fread_variable): Callers changed.
6893
70f4d973
EZ
68942012-04-09 Eli Zaretskii <eliz@gnu.org>
6895
6896 * xdisp.c (set_cursor_from_row): If the display string appears in
6897 the buffer at position that is closer to point than the position
6898 after the display string, display the cursor on the first glyph of
6899 the display string. Fixes cursor display when a 'display' text
6900 property immediately follows invisible text. (Bug#11094)
6901
cb3c2e3e
PE
69022012-04-09 Paul Eggert <eggert@cs.ucla.edu>
6903
6904 composite.c: use 'double' consistently
6905 * composite.c (get_composition_id): Use 'double' consistently
6906 instead of converting 'float' to 'double' and vice versa; this is
6907 easier to understand and avoids a GCC warning.
6908
fd06db5d
GM
69092012-04-09 Glenn Morris <rgm@gnu.org>
6910
50fe702a
GM
6911 * Makefile.in: Generate leim-list with bootstrap-emacs, in
6912 preparation for dumping it with emacs. (Bug#4789)
6913 (leimdir): New variable.
6914 ($(leimdir)/leim-list.el): New rule.
6915 (emacs$(EXEEXT)): Depend on leim-list.el.
6916
fd06db5d
GM
6917 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
6918 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
6919 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
6920
55c131ee
AS
69212012-04-08 Andreas Schwab <schwab@linux-m68k.org>
6922
6923 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
6924 proper alignment.
6925
9209588f
JB
69262012-04-07 Juanma Barranquero <lekktu@gmail.com>
6927
6928 * xml.c (init_libxml2_functions) [WINDOWSNT]:
6929 Remove unused local variable.
6930
e3fb2efb
PE
69312012-04-07 Paul Eggert <eggert@cs.ucla.edu>
6932
6933 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
6934 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
6935 (mark_memory): Mark Lisp_Objects only if pointers might hide in
6936 objects, as mark_maybe_pointer will catch them otherwise.
6937 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
6938 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
6939
b5385551
PE
69402012-04-07 Paul Eggert <eggert@cs.ucla.edu>
6941
6942 Fix typo that broke non-Windows builds.
6943 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
6944
9078ead6
EZ
69452012-04-07 Eli Zaretskii <eliz@gnu.org>
6946
6947 Support building on MS-Windows with libxml2.
6948
6949 * makefile.w32-in (OBJ2): Add xml.$(O).
6950 (GLOBAL_SOURCES): Add xml.c.
6951 ($(BLD)/xml.$(O)): New dependency list.
6952
6953 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
6954 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
6955 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
6956 [!WINDOWSNT]: New macros.
6957 (init_libxml2_functions, libxml2_loaded_p): New functions.
6958 (parse_region): Call fn_xmlCheckVersion instead of using the macro
6959 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
6960 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
6961 Calls xmlCleanupParser only if libxml2 was loaded (or statically
6962 linked in).
6bbef4e5
JC
6963 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
6964 Call init_libxml2_functions before calling libxml2 functions.
9078ead6
EZ
6965 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
6966
6967 * emacs.c: Don't include libxml/parser.h.
6968 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
6969 xmlCleanupParser directly.
6970
6971 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
6972
3811fdf3
EZ
69732012-04-07 Eli Zaretskii <eliz@gnu.org>
6974
6975 * indent.c (Fvertical_motion): If there is a display string at
6976 point, use it.vpos to compute how many lines to backtrack after
6977 move_it_to point. (Bug#11133)
6978
2f8e16b2
EZ
69792012-04-06 Eli Zaretskii <eliz@gnu.org>
6980
6981 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
6982 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
6983 about subtle differences between FETCH_CHAR* and STRING_CHAR*
6984 macros related to unification of CJK characters. For the details,
6985 see the discussion following the message here:
6986 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
6987
3d439cd1
CY
69882012-04-04 Chong Yidong <cyd@gnu.org>
6989
6990 * keyboard.c (Vdelayed_warnings_list): Doc fix.
6991
8bc53d00
EZ
69922012-04-01 Eli Zaretskii <eliz@gnu.org>
6993
6994 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
6995 instead of alloca. (Bug#11138)
6996
3b0512a3
AS
69972012-04-01 Andreas Schwab <schwab@linux-m68k.org>
6998
6999 * w32menu.c (is_simple_dialog): Properly check lisp types.
7000 (Bug#11141)
7001
8427ddd2
EZ
70022012-03-31 Eli Zaretskii <eliz@gnu.org>
7003
979022ef
EZ
7004 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
7005 position we get to after a call to move_it_to fails the
7006 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
7007 only if we wind up in a string from display property. (Bug#11063)
7008
a6b1c7cc
EZ
7009 * window.c (Fdelete_other_windows_internal): Invalidate the row
7010 and column information about mouse highlight, so that redisplay
7011 restores it after reallocating the glyph matrices. (Bug#7464)
7012
8427ddd2
EZ
7013 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
7014 string comes from a `display' text property, use the buffer
7015 position of that property as if we actually saw that position in
7016 the row's glyphs.
697ba24b
EZ
7017 (move_it_by_lines): Remove the assertion that
7018 "it->current_x == 0 && it->hpos == 0" which can be legitimately
7019 violated when there's a before-string at the beginning of a line.
7020 (Bug#11063)
8427ddd2 7021
65a0a738
EZ
70222012-03-30 Eli Zaretskii <eliz@gnu.org>
7023
7024 * xdisp.c (append_space_for_newline): If the default face was
7025 remapped, use the remapped face for the appended newline.
7026 (extend_face_to_end_of_line): Use the remapped default face for
7027 extending the face to the end of the line.
7028 (display_line): Call extend_face_to_end_of_line when the default
7029 face was remapped. (Bug#11068)
7030
581355cc
EZ
70312012-03-29 Eli Zaretskii <eliz@gnu.org>
7032
7033 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
7034
e8fc049f
SM
70352012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
7036
7037 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
7038
4fb9a543
GM
70392012-03-27 Glenn Morris <rgm@gnu.org>
7040
7041 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
7042 Doc fixes.
7043
679910f1
KH
70442012-03-26 Kenichi Handa <handa@m17n.org>
7045
7046 * dispextern.h (struct glyph): Fix previous change. Change the
7047 bit length of glyphless.ch to 25 (Bug#11082).
7048
90d49b7f
CY
70492012-03-26 Chong Yidong <cyd@gnu.org>
7050
7051 * keyboard.c (Vselection_inhibit_update_commands): New variable.
7052 (command_loop_1): Use it; inhibit selection update for
7053 handle-select-window too (Bug#8996).
7054
f514f6f0
FP
70552012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
7056
e8fc049f 7057 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
f514f6f0 7058
bf43fa51
KH
70592012-03-25 Kenichi Handa <handa@m17n.org>
7060
7061 * dispextern.h (struct glyph): Change the bit length of
7062 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
7063
8a0c01dd
EZ
70642012-03-24 Eli Zaretskii <eliz@gnu.org>
7065
7066 * s/ms-w32.h (tzname): Include time.h before redirecting to
7067 _tzname. Fixes the MSVC build. (Bug#9960)
7068
7d1c3a76
AS
70692012-03-24 Andreas Schwab <schwab@linux-m68k.org>
7070
8ed79523
AS
7071 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
7072 characters.
7073
7d1c3a76
AS
7074 * xterm.c (XTread_socket): Only modify handling_signal if
7075 !SYNC_INPUT. (Bug#11080)
7076
e99a9b8b
EZ
70772012-03-23 Eli Zaretskii <eliz@gnu.org>
7078
7079 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
7080 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
7081 when fetching a multibyte character consumes more bytes than
7082 CHAR_BYTES returns, due to unification of CJK characters in
7083 string_char. (Bug#11073)
7084
5063c0e1
TN
70852012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
7086
7087 * process.c (wait_reading_process_output): Handle pty disconnect
7088 by refraining from sending oneself a SIGCHLD (bug#10933).
7089
9f851fbd
CY
70902012-03-22 Chong Yidong <cyd@gnu.org>
7091
7092 * dispextern.h (struct it): New member string_from_prefix_prop_p.
7093
5063c0e1 7094 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
9f851fbd
CY
7095 Mark string as coming from a prefix property.
7096 (handle_face_prop): Use default face for prefix strings (Bug#4281).
7097 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
7098
fb5b8aca
CY
70992012-03-21 Chong Yidong <cyd@gnu.org>
7100
7101 * xfaces.c (Vface_remapping_alist): Doc fix.
7102
62356a1b
EZ
71032012-03-20 Eli Zaretskii <eliz@gnu.org>
7104
7105 * w32proc.c (Fw32_set_console_codepage)
5063c0e1
TN
7106 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
7107 Doc fixes.
62356a1b 7108
025de85b
CY
71092012-03-20 Chong Yidong <cyd@gnu.org>
7110
7111 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
7112 to reflect default non-nil value of redisplay-dont-pause.
7113
4827f94e
KH
71142012-03-19 Kenichi Handa <handa@m17n.org>
7115
7116 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
7117 it fit in a valid range (Bug#11003).
7118
e50a24a2
EZ
71192012-03-18 Eli Zaretskii <eliz@gnu.org>
7120
7121 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
7122 that is not from display property, accept the row as a "cursor
7123 row" if one of the string's character has a non-nil `cursor'
7124 property. Fixes cursor positioning when there are newlines in
7125 overlay strings, e.g. in icomplete.el. (Bug#11035)
7126
9af5ed87
PE
71272012-03-12 Paul Eggert <eggert@cs.ucla.edu>
7128
7129 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
7130
d1f55f16
CY
71312012-03-12 Chong Yidong <cyd@gnu.org>
7132
7133 * eval.c (inhibit_lisp_code): Rename from
7134 inhibit_window_configuration_change_hook; move from window.c.
7135
7136 * xfns.c (unwind_create_frame_1, Fx_create_frame):
7137 * window.c (run_window_configuration_change_hook)
7138 (syms_of_window): Callers changed.
7139
66c5eebd
CY
71402012-03-11 Chong Yidong <cyd@gnu.org>
7141
413df973
CY
7142 * keymap.c (Fkey_description): Doc fix (Bug#9700).
7143
66c5eebd
CY
7144 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
7145
1de11f56
CY
71462012-03-10 Chong Yidong <cyd@gnu.org>
7147
7148 * frame.c (other_visible_frames): Don't assume the selected frame
7149 is visible (Bug#10955).
7150
cae07000
SM
71512012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
7152
7153 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
7154
89c94350
JD
71552012-03-08 Jan Djärv <jan.h.d@swipnet.se>
7156
7157 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
7158 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
7159 zero (Bug#10954).
7160
999dd333
GM
71612012-03-03 Glenn Morris <rgm@gnu.org>
7162
01a6dcc8 7163 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
999dd333 7164
de0100f2
EZ
71652012-03-02 Eli Zaretskii <eliz@gnu.org>
7166
7167 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
7168 position past the first glyph_row that ends at ZV. (Bug#10902)
b8456c5c
EZ
7169 (redisplay_window, next_element_from_string): Fix typos in
7170 comments.
3e441275
EZ
7171 (redisplay_window): Pass to move_it_vertically the margin in
7172 pixels, not in screen lines.
de0100f2 7173
96a72ee9
GM
71742012-03-02 Glenn Morris <rgm@gnu.org>
7175
7176 * buffer.c (buffer-list-update-hook): Doc fix.
7177
312508d7
EZ
71782012-02-29 Eli Zaretskii <eliz@gnu.org>
7179
7180 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
7181 push_it before setting up the iterator for the first overlay
7182 string, even if we have an empty string loaded.
7183 (next_overlay_string): If there's an empty string on the iterator
7184 stack, pop the stack. (Bug#10903)
7185
27f3c637
PE
71862012-02-25 Paul Eggert <eggert@cs.ucla.edu>
7187
7188 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
7189 Suggested by Stefan Monnier in
7190 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
7191 * alloc.c (widen_to_Lisp_Object): New static function.
7192 (mark_memory): Also mark Lisp_Objects by fetching pointer words
7193 and widening them to Lisp_Objects. This would work even if
7194 USE_LSB_TAG is defined and wide integers are used, which might
7195 happen in a future version of Emacs.
7196
3c9dfce6
CY
71972012-02-25 Chong Yidong <cyd@gnu.org>
7198
fa74b241
CY
7199 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
7200 Doc fix.
7201
3c9dfce6
CY
7202 * xselect.c (Fx_selection_exists_p): Doc fix.
7203 (x_clipboard_manager_save_all): Print an informative message
7204 before saving to clipboard manager.
7205
9486df08
CY
72062012-02-24 Chong Yidong <cyd@gnu.org>
7207
7208 * keyboard.c (process_special_events): Handle all X selection
7209 requests in kbd_buffer, not just the next one (Bug#8869).
7210
f01d3321
CY
72112012-02-23 Chong Yidong <cyd@gnu.org>
7212
7213 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
7214 call when setting menu-bar-lines and tool-bar-lines parameters.
7215 (unwind_create_frame_1): New helper function.
7216
7217 * window.c (inhibit_window_configuration_change_hook): New var.
7218 (run_window_configuration_change_hook): Obey it.
b2e4ca7d 7219 (syms_of_window): Initialize it.
f01d3321 7220
86b847b6
CY
72212012-02-22 Chong Yidong <cyd@gnu.org>
7222
7223 * xterm.c (x_draw_image_relief): Add missing type check for
7224 Vtool_bar_button_margin (Bug#10743).
7225
a59225b1
CY
72262012-02-21 Chong Yidong <cyd@gnu.org>
7227
7228 * fileio.c (Vfile_name_handler_alist): Doc fix.
7229
7230 * buffer.c (Fget_file_buffer): Protect against invalid file
7231 handler return value.
7232
310f5bd4
PE
72332012-02-20 Paul Eggert <eggert@cs.ucla.edu>
7234
cb3a28cc
PE
7235 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
7236 when computing $valmask.
7237
310f5bd4
PE
7238 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
7239 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
7240 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
7241 It's useless in that case, and it can cause problems on hosts
7242 that allocate halves of EMACS_INT values separately.
7243 Reported by Dan Horák. Diagnosed by Andreas Schwab in
7244 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
7245 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
7246 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
7247 it avoids undefined behavior on hosts where shifting right by more
7248 than the word width has undefined behavior.
7249
2375c96a
CY
72502012-02-19 Chong Yidong <cyd@gnu.org>
7251
7252 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
7253 (Funhandled_file_name_directory, Ffile_name_as_directory)
7254 (Fdirectory_file_name, Fexpand_file_name)
7255 (Fsubstitute_in_file_name): Protect against invalid file handler
7256 return values (Bug#10845).
7257
3eb49e71
EZ
72582012-02-18 Eli Zaretskii <eliz@gnu.org>
7259
7260 * .gdbinit (pitx): Fix incorrect references to fields of the
7261 iterator stack.
7262
7b926f3f
CY
72632012-02-17 Chong Yidong <cyd@gnu.org>
7264
7265 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
7266
11273115
PE
72672012-02-15 Paul Eggert <eggert@cs.ucla.edu>
7268
7269 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
7270 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
7271
c3a70e2b
CY
72722012-02-15 Chong Yidong <cyd@gnu.org>
7273
7274 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
7275 marked as special. Also, starting docstrings with * is obsolete.
7276
0ca43699
AS
72772012-02-13 Andreas Schwab <schwab@linux-m68k.org>
7278
7279 * gnutls.c (emacs_gnutls_write): Fix last change.
7280
2e8f3c56
LI
72812012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
7282
7283 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
7284 send_process.
7285
af70074f
SM
72862012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
7287
7288 * keymap.c (Fsingle_key_description): Handle char ranges.
7289
95986d52
CY
72902012-02-12 Chong Yidong <cyd@gnu.org>
7291
afd83bd1
CY
7292 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
7293 as that creates a dangerous corner case.
7294
95986d52
CY
7295 * window.c (Fdelete_window_internal): Invalidate the mouse
7296 highlight (Bug#9904).
7297
bd7da63e
GM
72982012-02-12 Glenn Morris <rgm@gnu.org>
7299
7300 * xselect.c (Fx_own_selection_internal)
7301 (Fx_get_selection_internal, Fx_disown_selection_internal)
7302 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
7303 * nsselect.m (Fx_own_selection_internal)
7304 (Fx_disown_selection_internal, Fx_selection_exists_p)
7305 (Fx_selection_owner_p, Fx_get_selection_internal):
7306 Sync docs and argument specs with the xselect.c versions.
7307
77abcbc2
LI
73082012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
7309
7310 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
7311
90b671e2
EZ
73122012-02-11 Eli Zaretskii <eliz@gnu.org>
7313
1c0ca0b7
EZ
7314 * w32select.c (Fx_selection_exists_p): Sync doc string and
7315 argument list with xselect.c. (Bug#10783)
7316
7317 * w16select.c (Fx_selection_exists_p): Sync doc string and
7318 argument list with xselect.c. (Bug#10783)
90b671e2 7319
49241268
GM
73202012-02-10 Glenn Morris <rgm@gnu.org>
7321
7322 * fns.c (Fsecure_hash): Doc fix.
7323
f998bbe7 73242012-02-09 Kenichi Handa <handa@m17n.org>
5c1ca13d
KH
7325
7326 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
7327
0992bd9c
CY
73282012-02-07 Chong Yidong <cyd@gnu.org>
7329
7330 * buffer.c (Fbuffer_local_variables)
7331 (buffer_lisp_local_variables): Handle unbound vars correctly;
7332 don't let Qunbound leak into Lisp.
7333
af008560
GM
73342012-02-07 Glenn Morris <rgm@gnu.org>
7335
dd605cc4
GM
7336 * image.c (Fimagemagick_types): Doc fix.
7337
af008560
GM
7338 * image.c (imagemagick-render-type): Change it from a lisp object
7339 to an integer. Move the doc here from the lisp manual.
7340 Treat all values not equal to 0 the same.
7341
1449fa1d
CY
73422012-02-06 Chong Yidong <cyd@gnu.org>
7343
7344 * doc.c (store_function_docstring): Avoid applying docstring of
7345 alias to base function (Bug#2603).
7346
3723ec07
AS
73472012-02-04 Andreas Schwab <schwab@linux-m68k.org>
7348
7349 * .gdbinit (pp1, pv1): Remove redundant defines.
7350 (pr): Use pp.
7351
79c1cc1e
CY
73522012-02-04 Chong Yidong <cyd@gnu.org>
7353
7354 * nsterm.m: Declare a global (Bug#10694).
7355
d7f29f8e
EZ
73562012-02-04 Eli Zaretskii <eliz@gnu.org>
7357
cae07000
SM
7358 * w32.c (get_emacs_configuration_options):
7359 Include --enable-checking, if specified, in the return value.
d7f29f8e 7360
3b95a6f9
MR
73612012-02-04 Martin Rudalics <rudalics@gmx.at>
7362
7363 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
7364 after rounding frame sizes. (Bug#9723)
7365
d6fa96a6
EZ
73662012-02-04 Eli Zaretskii <eliz@gnu.org>
7367
7368 * keyboard.c (adjust_point_for_property): Don't position point
7369 before BEGV. (Bug#10696)
7370
df0b2940
PE
73712012-02-03 Paul Eggert <eggert@cs.ucla.edu>
7372
7373 Handle overflow when computing char display width (Bug#9496).
7374 * character.c (char_width): Return EMACS_INT, not int.
7375 (char_width, c_string_width): Check for overflow when
7376 computing the width; this is possible now that individual
7377 characters can have unbounded width. Problem introduced
7378 by merge from Emacs 23 on 2012-01-19.
7379
6bee44d6
MA
73802012-02-02 Michael Albinus <michael.albinus@gmx.de>
7381
7382 * dbusbind.c (Fdbus_register_method): Mention the return value
7383 :ignore in the docstring.
7384
44f92739
GM
73852012-02-02 Glenn Morris <rgm@gnu.org>
7386
1b9f60cc
GM
7387 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
7388
44f92739
GM
7389 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
7390 Unconditionally set to t. (Bug#10673)
7391 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
7392 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
7393 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
7394
c5d3843c
KH
73952012-02-02 Kenichi Handa <handa@m17n.org>
7396
7397 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
7398 0, do not call append_composite_glyph.
7399
159462d4 74002012-02-02 Kenichi Handa <handa@m17n.org>
d2a51fd7
KH
7401
7402 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
7403 NULL (Bug#6988).
7404 (x_produce_glyphs): If the component of a composition is a null
7405 string, set it->pixel_width to 1 to avoid zero-width glyph.
7406
78cef877
EZ
74072012-02-01 Eli Zaretskii <eliz@gnu.org>
7408
7409 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
7410 first 2 arguments are identical. This makes inserting large
7411 output from a subprocess an order of magnitude faster on
7412 MS-Windows, where all sbrk'ed memory is always contiguous.
7413
97897668
GM
74142012-01-31 Glenn Morris <rgm@gnu.org>
7415
7416 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
c78c6e0b 7417 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
97897668
GM
7418 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
7419
31fd3586
GM
74202012-01-29 Glenn Morris <rgm@gnu.org>
7421
7422 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
7423
0e24a8b2
CY
74242012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
7425
7426 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
7427
cc0adcb0
CY
74282012-01-28 Chong Yidong <cyd@gnu.org>
7429
7430 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
7431
acc28cb9
CY
74322012-01-26 Chong Yidong <cyd@gnu.org>
7433
9c69cfb7
CY
7434 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
7435
acc28cb9
CY
7436 * search.c (Fsearch_forward, Fsearch_backward): Document negative
7437 repeat counts (Bug#10507).
7438
48da7392
GM
74392012-01-26 Glenn Morris <rgm@gnu.org>
7440
7441 * lread.c (syms_of_lread): Doc fix.
7442
14af5f7f
CY
74432012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
7444
7445 * coding.c (encode_designation_at_bol): Change return value to
7446 EMACS_INT.
7447
0b21c100
CY
74482012-01-25 Chong Yidong <cyd@gnu.org>
7449
7450 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
7451
3c2907f7
CY
74522012-01-21 Chong Yidong <cyd@gnu.org>
7453
7454 * floatfns.c (Fcopysign): Make the second argument non-optional,
7455 since nil is not allowed anyway.
7456
959ad23f
AS
74572012-01-21 Andreas Schwab <schwab@linux-m68k.org>
7458
7459 * process.c (read_process_output): Use p instead of XPROCESS (proc).
7460 (send_process): Likewise.
7461
34a02f46
MR
74622012-01-19 Martin Rudalics <rudalics@gmx.at>
7463
7464 * window.c (save_window_save, Fcurrent_window_configuration)
cae07000
SM
7465 (Vwindow_persistent_parameters): Do not use Qstate.
7466 Rewrite doc-strings.
34a02f46 7467
1259009a 74682012-01-19 Kenichi Handa <handa@m17n.org>
25ed9e61
KH
7469
7470 * character.c (char_width): New function.
70d4fdf6
GM
7471 (Fchar_width, c_string_width, lisp_string_width):
7472 Use char_width (Bug#9496).
25ed9e61 7473
6a6ee00d
MR
74742012-01-16 Martin Rudalics <rudalics@gmx.at>
7475
7476 * window.c (Vwindow_persistent_parameters): New variable.
7477 (Fset_window_configuration, save_window_save): Handle persistent
7478 window parameters.
7479
c85efaf7
EZ
74802012-01-14 Eli Zaretskii <eliz@gnu.org>
7481
7482 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
7483 thrashing the stack of the thread. (Bug#9087)
7484
5944709e
PE
74852012-01-12 Paul Eggert <eggert@cs.ucla.edu>
7486
7487 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
7488
e71f5d99
EZ
74892012-01-11 Eli Zaretskii <eliz@gnu.org>
7490
7491 * xdisp.c (rows_from_pos_range): Handle the case where the
7492 highlight ends on a newline. (Bug#10464)
7493 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
7494 he end column for display of highlight that ends on a newline
7495 before a R2L line.
7496
ce316182
GM
74972012-01-11 Glenn Morris <rgm@gnu.org>
7498
7499 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
7500 from load-path also when installation-directory is nil. (Bug#10208)
7501
5b43da69
GM
75022012-01-10 Glenn Morris <rgm@gnu.org>
7503
74cc8ff9
GM
7504 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
7505
7d8d6e4e
GM
7506 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
7507 Update template values to be closer to their typical values these days.
5b43da69 7508
a0db8d43
EZ
75092012-01-09 Eli Zaretskii <eliz@gnu.org>
7510
7511 * xdisp.c (rows_from_pos_range): Accept additional argument
7512 DISP_STRING, and accept any glyph in a row whose object is that
7513 string as eligible for mouse highlight. Fixes mouse highlight of
7514 display strings from overlays. (Bug#10464)
7515
9a0115ab 75162012-01-07 Paul Eggert <eggert@cs.ucla.edu>
09450bae 7517
b9110d6a 7518 emacs: fix an auto-save permissions race condition (Bug#10400)
09450bae
PE
7519 * fileio.c (auto_saving_dir_umask): New static var.
7520 (Fmake_directory_internal): Use it.
7521 (do_auto_save_make_dir): Set it, instead of invoking chmod after
7522 creating the directory. The old code temporarily assigns
7523 too-generous permissions to the directory.
7524 (do_auto_save_eh): Clear it.
b9110d6a 7525 (Fdo_auto_save): Catch all errors, not just file errors, so
09450bae
PE
7526 that the var is always cleared.
7527
6c1bd3f3
EZ
75282012-01-07 Eli Zaretskii <eliz@gnu.org>
7529
7530 * search.c (scan_buffer): Pass character positions to
7531 know_region_cache, not byte positions. (Bug#6540)
7532
069d2b50
L
75332012-01-07 LynX <_LynX@bk.ru> (tiny change)
7534
7535 * w32.c (sys_rename): Report EXDEV when rename of a directory
7536 fails because the target is on another logical disk. (Bug#10284)
7537
75bf0d33
DB
75382012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
7539
7540 * xterm.c (x_embed_request_focus): New function.
7541
7542 * xterm.h: Add prototype.
7543
7544 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
7545
1c6e5a32
GM
75462012-01-05 Glenn Morris <rgm@gnu.org>
7547
7548 * emacs.c (emacs_copyright): Update short copyright year to 2012.
7549
651e947e
EZ
75502012-01-01 Eli Zaretskii <eliz@gnu.org>
7551
7552 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
7553 Load gnutls_transport_set_lowat only if GnuTLS version is below
7554 2.11.1.
7555 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
7556 GnuTLS versions below 2.11.1.
7557
3778cdd8
AL
75582011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
7559
7560 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
7561 to the doc string advising against its use for altering the way
7562 windows are scrolled.
7563
0e5317f7
KH
75642011-12-28 Kenichi Handa <handa@m17n.org>
7565
7566 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
7567 coding-system ASCII compatible only when it does not produce BOM
7568 on encoding (Bug#10383).
7569
93d5ca1f
JD
75702011-12-26 Jan Djärv <jan.h.d@swipnet.se>
7571
7572 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
7573 can scroll.
7574 (create_and_show_popup_menu): Always use menu_position_func for
7575 Gtk3 (Bug#10361).
7576
ca22b785
AS
75772011-12-24 Andreas Schwab <schwab@linux-m68k.org>
7578
7579 * callint.c (Fcall_interactively): Don't truncate prompt string.
7580
d048e1e6
EZ
75812011-12-23 Eli Zaretskii <eliz@gnu.org>
7582
7583 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
7584 property that ends at ZV, so that the bidi iteration could be
3ba1a2ad 7585 resumed from there (after widening). (Bug#10360)
d048e1e6 7586
5ccaba1f
JD
75872011-12-22 Jan Djärv <jan.h.d@swipnet.se>
7588
7589 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
7590
204ee57f
JD
75912011-12-21 Jan Djärv <jan.h.d@swipnet.se>
7592
b81d40f0
JB
7593 * nsterm.m (x_free_frame_resources):
7594 Release f->output_data.ns->miniimage.
204ee57f
JD
7595 (ns_index_color): Fix indentation. Do not retain
7596 color_table->colors[i].
7597
7598 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
7599 before returning.
7600
7601 * nsfns.m (x_set_background_color): Assign return value from
7602 ns_index_color to face-background instead of NSColor*.
7603 (ns_implicitly_set_icon_type): Fix indentation.
7604 Change assignment in for loop to comparison.
7605
7606 * emacs.c (ns_pool): New variable.
7607 (main): Assign ns_pool.
7608 (Fkill_emacs): Call ns_release_autorelease_pool.
7609
7610 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
7611 autorelease fdesc, release fdAttrs and tdict.
7612 (ns_get_covering_families): Release charset.
7613 (ns_findfonts): Release NSFontDescriptor created with new.
7614 (ns_uni_to_glyphs): Fix indentation.
7615 (setString): Release attrStr before assigning new value.
7616
c803b2b7
JD
76172011-12-18 Jan Djärv <jan.h.d@swipnet.se>
7618
678f4426
JD
7619 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
7620 and NS_IMPL_COCOA.
7621 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
7622 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
7623
cd394be1 76242011-12-18 David Reitter <reitter@cmu.edu>
678f4426 7625
5fecd5fc
JD
7626 * nsterm.m (ns_term_init): Subscribe for notifications
7627 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
7628 to method trackingNotification in EmacsMenu.
7629
7630 * nsmenu.m (trackingMenu): New variable.
3771cb17 7631 (trackingNotification): New method (from Aquamacs).
5fecd5fc 7632 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
3771cb17 7633 from Aquamacs (Bug#7030).
678f4426
JD
7634
76352011-12-18 Jan Djärv <jan.h.d@swipnet.se>
5fecd5fc 7636
c803b2b7
JD
7637 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
7638 (symbol_to_nsstring): Fix indentation.
7639 (ns_symbol_to_pb): New function.
cae07000
SM
7640 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
7641 (Fns_rotate_cut_buffers_internal): Remove.
7642 (Fns_store_selection_internal): Rename from
c803b2b7
JD
7643 Fns_store_cut_buffer_internal.
7644 (ns_get_foreign_selection, Fx_own_selection_internal)
7645 (Fx_disown_selection_internal, Fx_selection_exists_p)
b81d40f0
JB
7646 (Fns_get_selection_internal, Fns_store_selection_internal):
7647 Use ns_symbol_to_pb and check if return value is nil.
7648 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
7649 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
c803b2b7
JD
7650 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
7651 renamed to Sns_store_selection_internal.
7652 (ns_handle_selection_request): Move code to Fx_own_selection_internal
7653 and remove this function.
7654 (ns_handle_selection_clear): Remove, never used.
7655 (Fx_own_selection_internal): Move code from ns_handle_selection_request
7656 here.
7657
e1b01a3a
KB
76582011-12-17 Ken Brown <kbrown@cornell.edu>
7659
7660 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
7661 GID is unknown (Bug#10257).
7662
2adb6e85
PE
76632011-12-17 Paul Eggert <eggert@cs.ucla.edu>
7664
7665 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
7666 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
7667 which caused a build failure on GNU/Linux IA-64. This problem was
7668 introduced by my 2011-10-07 patch.
7669
d1d7b339
JL
76702011-12-15 Juri Linkov <juri@jurta.org>
7671
7672 * image.c (imagemagick_error): New function. (Bug#10112)
7673 (imagemagick_load_image): Comment out `MagickSetResolution' call.
7674 Use `imagemagick_error' where ImageMagick functions return
7675 `MagickFalse'.
7676 (Fimagemagick_types): Add `Fnreverse' to return the list in the
7677 proper order.
7678
100d5755
KH
76792011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7680
7681 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
7682 fill background (Bug#8992).
7683
454592a6
MR
76842011-12-13 Martin Rudalics <rudalics@gmx.at>
7685
7686 * window.c (Vwindow_combination_resize)
7687 (Vwindow_combination_limit): Use t instead of non-nil in
7688 doc-strings.
61d4b438
MR
7689 (Vrecenter_redisplay): Add first sentence of doc-string on
7690 separate line.
53524d93 7691 (Frecenter): Fix doc-string typo.
454592a6 7692
3633e3aa
KH
76932011-12-11 Kenichi Handa <handa@m17n.org>
7694
7695 * coding.c (Funencodable_char_position): Pay attention to the
7696 buffer text relocation (Bug#9389).
7697
7b9d523a 76982011-12-10 Jan Djärv <jan.h.d@swipnet.se>
61ccba97 7699
7b9d523a
JD
7700 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
7701 gtk_init (Bug#10100).
7702
b73189c6
EZ
77032011-12-10 Eli Zaretskii <eliz@gnu.org>
7704
7705 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
7706 IT->string is nil. (Bug#10263)
7707
f7dfe5d6
JD
77082011-12-10 Jan Djärv <jan.h.d@swipnet.se>
7709
83faebb4
JD
7710 * nsterm.h (x_free_frame_resources): Declare.
7711
f7dfe5d6
JD
7712 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
7713 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
7714
7715 * nsterm.h (ns_get_defaults_value): Declare.
7716
7717 * nsterm.m (ns_default): Call ns_get_defaults_value.
7718
7cd4e72c
EZ
77192011-12-09 Eli Zaretskii <eliz@gnu.org>
7720
7721 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
7722 (Bug#10170)
7723
b34d7317
YM
77242011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7725
7726 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
7727 that where the value of an _OBJC_* symbol points to is in the .bss
7728 section (Bug#10240).
7729
76470ad1
KH
77302011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
7731
7732 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
2fac8180 7733 after the loop to call ccl_driver at least once (Bug#8619).
76470ad1 7734
745fff94
KH
77352011-12-08 Kenichi Handa <handa@m17n.org>
7736
7737 * ftfont.c (get_adstyle_property): Fix previous change
7738 (Bug#10233).
7739
6e44397c
JB
77402011-12-07 Juanma Barranquero <lekktu@gmail.com>
7741
7742 * w32.c (init_environment): If no_site_lisp, remove site-lisp
7743 dirs from the default value of EMACSLOADPATH (bug#10208).
7744
7efa6272
GM
77452011-12-07 Glenn Morris <rgm@gnu.org>
7746
7747 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
7748 installation and source directories as well. (Bug#10208)
7749
f6fc4d87
CY
77502011-12-06 Chong Yidong <cyd@gnu.org>
7751
7752 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
7753
2bf26180
GM
77542011-12-06 Glenn Morris <rgm@gnu.org>
7755
7756 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
7757 as an error, not just -1. (Bug#10217)
7758
3a6ad4f0
CY
77592011-12-05 Chong Yidong <cyd@gnu.org>
7760
7761 * keyboard.c (process_special_events): New function.
7762 (swallow_events, Finput_pending_p): Use it (Bug#10195).
7763
75a3b399
PE
77642011-12-05 Paul Eggert <eggert@cs.ucla.edu>
7765
7766 * coding.c (encode_designation_at_bol): Don't use uninitialized
7767 local variable (Bug#9318).
7768
c3c9e25e
KH
77692011-12-05 Kenichi Handa <handa@m17n.org>
7770
7771 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
7772 return Qnil (Bug#8046, Bug#10193).
7773
5eb05ea3
KH
77742011-12-05 Kenichi Handa <handa@m17n.org>
7775
7776 * coding.c (encode_designation_at_bol): New args charbuf_end and
7777 dst. Return the number of produced bytes. Callers changed.
a79703f5
KH
7778 (coding_set_source): Return how many bytes coding->source was
7779 relocated.
7780 (coding_set_destination): Return how many bytes
7781 coding->destination was relocated.
7782 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
cae07000 7783 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
5eb05ea3
KH
7784
77852011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
7786
7787 * coding.c (CODING_CHAR_CHARSET_P): New macro.
7788 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
7789 macro (Bug#9318).
7790
77912011-12-05 Andreas Schwab <schwab@linux-m68k.org>
7792
7793 The following changes are to fix Bug#9318.
7794
a79703f5 7795 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
5eb05ea3
KH
7796 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
7797 (encode_coding_iso_2022, encode_coding_sjis)
a79703f5 7798 (encode_coding_big5, encode_coding_charset): Use the above macros.
5eb05ea3 7799
7dbda6df
JB
78002011-12-05 Juanma Barranquero <lekktu@gmail.com>
7801
7802 * lisp.h (process_quit_flag): Fix external declaration.
7803
6d5eb5b0
SM
78042011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
7805
7806 Don't macro-inline non-performance-critical code.
7807 * eval.c (process_quit_flag): New function.
7808 * lisp.h (QUIT): Use it.
7809
a0c3fad0
JD
78102011-12-04 Jan Djärv <jan.h.d@swipnet.se>
7811
7812 * nsfns.m (get_geometry_from_preferences): New function.
7813 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
7814
6c07aac2
AS
78152011-12-04 Andreas Schwab <schwab@linux-m68k.org>
7816
7817 * emacs.c (Qkill_emacs): Define.
7818 (syms_of_emacs): Initialize it.
7819 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
7820 Qquit_flag to `kill-emacs' instead.
6d5eb5b0
SM
7821 (quit_throw_to_read_char): Add parameter `from_signal'.
7822 All callers changed. Call Fkill_emacs if requested and safe.
6c07aac2
AS
7823 * lisp.h (QUIT): Call Fkill_emacs if requested.
7824
c052ead4
JD
78252011-12-03 Jan Djärv <jan.h.d@swipnet.se>
7826
7827 * widget.c (update_wm_hints): Return if wmshell is null.
7828 (widget_update_wm_size_hints): New function.
7829
7830 * widget.h (widget_update_wm_size_hints): Declare.
7831
7832 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
7833 widget_update_wm_size_hints (Bug#10104).
7834
9e49252b
EZ
78352011-12-03 Eli Zaretskii <eliz@gnu.org>
7836
7837 * xdisp.c (handle_invisible_prop): If the invisible text ends just
7838 before a newline, prepare the bidi iterator for consuming the
7839 newline, and keep the current paragraph direction. (Bug#10183)
e9a49426 7840 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
9e49252b 7841
02b16839
JL
78422011-12-02 Juri Linkov <juri@jurta.org>
7843
7844 * search.c (Fword_search_regexp): New Lisp function created from
7845 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
7846 (Fword_search_backward, Fword_search_forward)
7847 (Fword_search_backward_lax, Fword_search_forward_lax):
7848 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
7849 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
7850
0068070e
SM
78512011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
7852
7853 * fileio.c (Finsert_file_contents): Move after-change-function call
7854 to before the "handled:" label, since all "goto handled" appear in
7855 cases where the *-change-functions have already been properly called
7856 (bug#10117).
7857
3360a3fc
AS
78582011-12-01 Andreas Schwab <schwab@linux-m68k.org>
7859
7860 * keyboard.c (interrupt_signal): Don't call kill-emacs when
7861 waiting for input. (Bug#10169)
7862
73d6c093
EZ
78632011-11-30 Eli Zaretskii <eliz@gnu.org>
7864
7865 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
7866 verifies glyph row's hash code--we have just reallocated the
7867 glyphs, so their contents can be complete garbage. (Bug#10164)
7868
febe6bea
JB
78692011-11-30 Juanma Barranquero <lekktu@gmail.com>
7870
7871 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
7872
801a4313
EZ
78732011-11-30 Eli Zaretskii <eliz@gnu.org>
7874
7875 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
7876 attributes are tested _before_ calling verify_row_hash, to protect
7877 against GCC re-ordering of the tests. (Bug#10164)
7878
2b56b87e
JD
78792011-11-29 Jan Djärv <jan.h.d@swipnet.se>
7880
7881 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
7882
7883 * xterm.c (handle_one_xevent): Only set async_visible and friends
7884 if net_wm_state_hidden_seen is non-zero (Bug#10002)
7dbda6df 7885 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
2b56b87e
JD
7886 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
7887
dbf31225
PE
78882011-11-28 Paul Eggert <eggert@cs.ucla.edu>
7889
7890 Remove GCPRO-related macros that exist only to avoid shadowing locals.
7891 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
7892 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
7893 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
7894 All uses changed to use GCPRO1 etc.
7895 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
7896 Revert to old implementation (i.e., before 2011-03-11).
7897
1305621b
YM
78982011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7899
7900 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
7901 of scroll runs so as to avoid assigning disabled bogus rows and
7902 unnecessary graphics copy operations.
7903
8c9afb46
EZ
79042011-11-27 Eli Zaretskii <eliz@gnu.org>
7905
7906 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
7907 (snprintf) [_MSC_VER]: Redirect to _snprintf.
7908 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
7909 (malloc, free, realloc, calloc): Redirect to e_* only when
7910 compiling Emacs.
7911
7912 * lisp.h (GCTYPEBITS): Move before first use.
7913 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
7914 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
7915 this macro definition.
7916
7917 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
7918 _MSC_VER.
7919
54e9e3bf
JD
79202011-11-27 Jan Djärv <jan.h.d@swipnet.se>
7921
6d5eb5b0
SM
7922 * gtkutil.c (xg_create_frame_widgets):
7923 Call gtk_window_set_has_resize_grip (FALSE) if that function is
54e9e3bf
JD
7924 present with Gtk+ 2.0.
7925
83aca1cb
PE
79262011-11-26 Paul Eggert <eggert@cs.ucla.edu>
7927
7928 * fileio.c (Finsert_file_contents): Undo previous change; see
7929 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
7930
5b76caa4
PE
79312011-11-26 Paul Eggert <eggert@cs.ucla.edu>
7932
7933 Rename locals to avoid shadowing.
7934 * fileio.c (Finsert_file_contents):
7935 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
7936 * process.c (wait_reading_process_output):
7937 Rename inner 'proc' to 'p' to avoid shadowing.
7938 Indent for consistency with usual Emacs style.
7939
8c535114
EZ
79402011-11-25 Eli Zaretskii <eliz@gnu.org>
7941
7942 * xdisp.c (redisplay_window): If cursor row is not fully visible
7943 after recentering, and scroll-conservatively is set to a large
7944 number, scroll window by a few more lines to make the cursor fully
7945 visible and out of scroll-margin. (Bug#10105)
91b4a718
EZ
7946 (start_display): Don't move to the next line if the display should
7947 start at a newline that is part of a display vector or an overlay
7948 string. (Bug#10119)
8c535114 7949
fa4fdb5c
JL
79502011-11-24 Juri Linkov <juri@jurta.org>
7951
7952 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
7953 after the `MagickPingImage' call. (Bug#10112)
7954
90ec88df
CY
79552011-11-23 Chong Yidong <cyd@gnu.org>
7956
7957 * window.c (Fcoordinates_in_window_p): Accept only live windows.
7958
56e2e794
MR
79592011-11-23 Martin Rudalics <rudalics@gmx.at>
7960
7961 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
7962 making another buffer current. (Bug#10114)
7963
b6e64c41
GM
79642011-11-23 Glenn Morris <rgm@gnu.org>
7965
7966 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
7967
6b21de18
CY
79682011-11-23 Chong Yidong <cyd@gnu.org>
7969
7970 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
7971 using it (Bug#5984).
7972
b12cd789
EZ
79732011-11-22 Eli Zaretskii <eliz@gnu.org>
7974
7975 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
7976 and header-lines, as they don't have one computed for them.
7977 (Bug#10098)
7978
7979 * .gdbinit (prow): Make displayed values more self-explaining.
7980 Add row's hash code.
7981
261b6fd4
LMI
79822011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
7983
7984 * process.c (wait_reading_process_output): Fix asynchrounous
7985 GnuTLS socket handling on some versions of the GnuTLS library.
16c1ad08 7986 (wait_reading_process_output): Add comment and URL.
261b6fd4 7987
e7cfd277
JD
79882011-11-21 Jan Djärv <jan.h.d@swipnet.se>
7989
7990 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
7991
a9b9b7f5
CY
79922011-11-21 Chong Yidong <cyd@gnu.org>
7993
7994 * window.c (Fnext_window, Fprevious_window): Doc fix.
7995
b0d15b4f
SM
79962011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
7997
7998 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
7999
fe7a3057
JB
80002011-11-20 Juanma Barranquero <lekktu@gmail.com>
8001
8002 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
8003
d2999b1a
MR
80042011-11-20 Martin Rudalics <rudalics@gmx.at>
8005
8006 * window.c (Fset_window_combination_limit): Rename argument
8007 STATUS to LIMIT.
8008 (Vwindow_combination_limit): Remove "status" from doc-string.
8009
d5ff9cd0
AS
80102011-11-20 Andreas Schwab <schwab@linux-m68k.org>
8011
8012 * m/ibms390.h: Remove.
8013 * m/ibms390x.h: Don't include "ibms390.h".
8014
a5bb9bd3
SM
80152011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
8016
8017 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
8018 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
8019
cd1181db
JB
80202011-11-20 Juanma Barranquero <lekktu@gmail.com>
8021
8022 * casetab.c (Fset_case_table):
8023 * charset.c (Fcharset_after): Fix typos.
8024
615a3b8d 80252011-11-20 Paul Eggert <eggert@cs.ucla.edu>
6a0bf43d 8026
17e845af
PE
8027 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
8028 Otherwise, valgrind does not work on some platforms.
8029 Problem reported by Andreas Schwab in
6a0bf43d
PE
8030 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
8031 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
8032 is set, removing the need for VIRT_ADDRESS_VARIES.
8033 (PURE_P): Use a more-efficient implementation that needs just one
8034 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
8035 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
8036 to 4 (xorl, subq, cmpq, setbe).
8037 * alloc.c (pure): Always extern now, since that's the
8038 VIRT_ADDR_VARIES behavior.
8039 (PURE_POINTER_P): Use a single comparison, not two, for
8040 consistency with the new puresize.h.
8041 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
8042 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
8043 Remove VIRT_ADDR_VARIES no longer needed.
8044
f8fe6f96
EZ
80452011-11-19 Eli Zaretskii <eliz@gnu.org>
8046
8047 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
8048 (erase_phys_cursor, update_window_cursor, show_mouse_face)
8049 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
8050 behave as if the cursor position were at the window margin.
8051
8052 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
8053 and the cursor position is out of bounds, behave as if the cursor
8054 position were at the window margin. (Bug#10075)
8055
df05a53c
CY
80562011-11-18 Chong Yidong <cyd@gnu.org>
8057
8058 * window.c (Fwindow_combination_limit): Make first argument
8059 non-optional, since it is meaningless for live windows like the
8060 selected window.
61ccba97 8061
2071918e
DA
80622011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
8063
8064 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
8065
b50a28de
SM
80662011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
8067
8068 * intervals.c: Fix grafting over the whole buffer (bug#10071).
8069 (graft_intervals_into_buffer): Simplify.
8070
015137db
EZ
80712011-11-18 Eli Zaretskii <eliz@gnu.org>
8072
8073 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
8074 hash values of the two rows.
8075 (copy_row_except_pointers): Preserve the used[] arrays and the
8076 hash values of the two rows. (Bug#10035)
68c95424 8077 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
015137db
EZ
8078
8079 * xdisp.c (row_hash): New function, body extracted from
8080 compute_line_metrics.
8081 (compute_line_metrics): Call row_hash, instead of computing the
8082 hash code inline.
8083
8084 * dispnew.c (verify_row_hash): Call row_hash for computing the
8085 hash code of a row, instead of duplicating code from xdisp.c.
8086
8087 * dispextern.h (row_hash): Add prototype.
8088
a2addb04
TH
80892011-11-18 Tassilo Horn <tassilo@member.fsf.org>
8090
8091 * frame.c (delete_frame): Don't delete the terminal when the last
8092 X frame is closed if emacs is built with GTK toolkit.
8093
df85d315
JB
80942011-11-17 Juanma Barranquero <lekktu@gmail.com>
8095
8096 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
8097
a0c2d0ae
MR
80982011-11-17 Martin Rudalics <rudalics@gmx.at>
8099
8100 * window.c (Vwindow_splits): Rename to
8101 Vwindow_combination_resize. Suggested by Juri Linkov.
8102 (Fsplit_window_internal): Use Vwindow_combination_resize instead
8103 of Vwindow_splits.
8104
58179cce
JB
81052011-11-16 Juanma Barranquero <lekktu@gmail.com>
8106
7877f373
JB
8107 * nsfns.m (Fns_font_name):
8108 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
58179cce 8109
b6f67890
MR
81102011-11-16 Martin Rudalics <rudalics@gmx.at>
8111
8112 * window.h (window): Rename slot "nest" to "combination_limit".
8113 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
8114 (Fset_window_nest): Rename to Fset_window_combination_limit.
8115 (Vwindow_nest): Rename to Vwindow_combination_limit.
8116 (recombine_windows, make_parent_window, make_window)
8117 (Fsplit_window_internal, saved_window)
8118 (Fset_window_configuration, save_window_save): Rename all
8119 occurrences of window_nest to window_combination_limit.
8120
c7015153
JB
81212011-11-15 Juanma Barranquero <lekktu@gmail.com>
8122
8123 * image.c (imagemagick_load_image): Fix typo.
8124
322ad6ec
EZ
81252011-11-14 Eli Zaretskii <eliz@gnu.org>
8126
8127 * xdisp.c (display_line): Move the call to
8128 highlight_trailing_whitespace before the call to
8129 compute_line_metrics, since the latter needs to see the final
6d5eb5b0
SM
8130 faces of all the glyphs to compute ROW's hash value.
8131 Fixes assertion violations in row_equal_p. (Bug#10035)
322ad6ec 8132
f067b8ec
JB
81332011-11-14 Juanma Barranquero <lekktu@gmail.com>
8134
8135 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
8136 just return (bug#10044).
8137
1e5b2111
EZ
81382011-11-12 Eli Zaretskii <eliz@gnu.org>
8139
7ef3cbd5
EZ
8140 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
8141 with user-defined heap size. Bump the default size of the temacs
8142 heap to 27MB, to avoid memory warning when running temacs.
8143 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
8144
1e5b2111
EZ
8145 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
8146 current_matrix and desired_matrix. (Bug#9990)
7a7270dd
EZ
8147 (verify_row_hash) [XASSERTS]: New function.
8148 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
8149 that the hash value of glyph rows is correct.
1e5b2111 8150
89d61221
MR
81512011-11-12 Martin Rudalics <rudalics@gmx.at>
8152
8153 * window.h (window): Remove splits slot.
8154 * window.c (Fwindow_splits, Fset_window_splits): Remove.
8155 (Fdelete_other_windows_internal, make_parent_window)
8156 (make_window, Fsplit_window_internal, Fdelete_window_internal)
8157 (Fset_window_configuration, save_window_save): Don't deal with
8158 split status of windows.
8159 (saved_window): Remove splits slot.
8160 (Vwindow_splits): Rewrite doc-string.
8161
97f18cc8
JD
81622011-11-11 Jan Djärv <jan.h.d@swipnet.se>
8163
8164 * xfns.c (unwind_create_frame):
8165 * nsfns.m (unwind_create_frame):
8166 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
8167 Vframe_list (Bug#9999).
8168
22a648b4
DA
81692011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
8170
0b381c7e 8171 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
22a648b4 8172
659afede
KH
81732011-11-11 Kenichi Handa <handa@m17n.org>
8174
8175 * callproc.c (Fcall_process): Set the member dst_multibyte of
8176 process_coding.
8177
9ac0394b
KH
81782011-11-11 Johan Bockgård <bojohan@gnu.org>
8179
8180 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
8181 avoid a crash (bug#9496).
8182
2fbdc249
CY
81832011-11-09 Chong Yidong <cyd@gnu.org>
8184
8185 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
8186 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
8187
ac6b1f81
PE
81882011-11-08 Paul Eggert <eggert@cs.ucla.edu>
8189
8190 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
8191
09db192c
PE
81922011-11-08 Paul Eggert <eggert@cs.ucla.edu>
8193
8194 Avoid some portability problems by eschewing 'extern inline' functions.
8195 The trivial performance wins aren't worth the portability hassles; see
8196 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
8197 et seq.
8198 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
8199 (window_box_width, window_box_left, window_box_left_offset)
8200 (window_box_right, window_box_right_offset): Undo previous change,
8201 by removing the "extern"s.
8202 * intervals.c (adjust_intervals_for_insertion)
8203 (adjust_intervals_for_deletion): Undo previous change,
8204 making these static again.
8205 (offset_intervals, temp_set_point_both, temp_set_point)
8206 (copy_intervals_to_string): No longer inline.
8207 * xdisp.c (window_text_bottom_y, window_box_width)
8208 (window_box_height, window_box_left_offset)
8209 (window_box_right_offset, window_box_left, window_box_right)
8210 (window_box): No longer inline.
8211
105216ed
CY
82122011-11-08 Chong Yidong <cyd@gnu.org>
8213
8214 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
6d5eb5b0
SM
8215 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
8216 Signal an error if not a live window.
105216ed
CY
8217 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
8218 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
8219
ae9e237f
JB
82202011-11-07 Juanma Barranquero <lekktu@gmail.com>
8221
8222 * lisp.h (syms_of_abbrev): Remove declaration.
8223 Reported by CHENG Gao <chenggao@royau.me>.
8224
c7aa8333
EZ
82252011-11-07 Eli Zaretskii <eliz@gnu.org>
8226
8227 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
8228 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
8229 of temacs in GUI mode.
8230
be7f5545
MR
82312011-11-07 Martin Rudalics <rudalics@gmx.at>
8232
8233 * window.h: Declare delete_all_child_windows instead of
8234 delete_all_subwindows.
8235 * window.c (Fwindow_nest, Fset_window_nest)
8236 (Fset_window_new_total, Fset_window_new_normal)
8237 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
8238 (delete_all_subwindows): Rename to delete_all_child_windows.
8239 (Fdelete_other_windows_internal, Fset_window_configuration):
8240 Call delete_all_child_windows instead of delete_all_subwindows.
8241 * frame.c (delete_frame): Call delete_all_child_windows instead
8242 of delete_all_subwindows.
8243
ca78dc43
PE
82442011-11-07 Paul Eggert <eggert@cs.ucla.edu>
8245
8246 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
8247 This is also needed for porting to any host where GC_MARK_STACK is
8248 not GC_MAKE_GCPROS_NOOPS.
8249 (which_symbols): Use it.
8250
a0241d01
KH
82512011-11-07 Kenichi Handa <handa@m17n.org>
8252
8253 * coding.c (coding_set_destination): Check coding->src_pos only
8254 when coding->src_object is a buffer (bug#9910).
8255
8256 * process.c (send_process): Set the member src_multibyte of coding
8257 to 0 (bug#9911) when sending a unibyte text.
8258
8259 * callproc.c (Fcall_process): Set the member src_multibyte of
8260 process_coding to 0 (bug#9912).
8261
a64bfdfa 82622011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
ba24cea2
YM
8263
8264 * xmenu.c (cleanup_widget_value_tree): New function.
8265 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
8266 calling free_menubar_widget_value_tree directly (Bug#9830).
8267
cb41b32a
PE
82682011-11-06 Paul Eggert <eggert@cs.ucla.edu>
8269
8270 Fix some portability problems with 'inline'.
8271 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
8272 (window_box_width, window_box_left, window_box_left_offset)
8273 (window_box_right, window_box_right_offset): Declare extern.
8274 Otherwise, these inline functions do not conform to C99 and
8275 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
8276 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
8277 * intervals.c (adjust_intervals_for_insertion)
8278 (adjust_intervals_for_deletion): Now extern, because otherwise the
8279 extern inline functions 'offset_intervals' couldn't refer to it.
8280 (static_offset_intervals): Remove.
8281 (offset_intervals): Rewrite using the old contents of
8282 static_offset_intervals. The old version didn't conform to C99
8283 because an extern inline function contained a reference to an
8284 identifier with static linkage.
8285
b7041366
AS
82862011-11-06 Andreas Schwab <schwab@linux-m68k.org>
8287
8288 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
8289 GC.
8290
88a37c4d
EZ
82912011-11-06 Eli Zaretskii <eliz@gnu.org>
8292
8293 * xdisp.c (init_iterator, reseat_to_string): Don't set the
8294 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
8295 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
8296 return Qleft_to_right.
8297
49745b39
CY
82982011-11-06 Chong Yidong <cyd@gnu.org>
8299
8300 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
8301 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
8302 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
8303 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
8304 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
8305 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
8306 (Fwindow_vscroll): Doc fix.
8307 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
8308 argument, since it makes no sense to pass a live window and for
8309 consistency with window-child.
8310
1f05cd82
CS
83112011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
8312
8313 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
8314 support MSVC.
8315
22610910
JR
83162011-11-05 Jason Rumney <jasonr@gnu.org>
8317
8318 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
8319 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
8320 fonts (Bug#6029).
8321 (add_font_entity_to_list): Fix logic errors in mixed boolean and
8322 bitwise arithmetic preventing use of unicode-sip and non-truetype
8323 opentype fonts.
8324
a06776b2
EZ
83252011-11-05 Eli Zaretskii <eliz@gnu.org>
8326
3ad924ba
EZ
8327 * s/ms-w32.h (fstat, stat, utime): Move redirections to
8328 "emacs"-only part.
8329
a06776b2
EZ
8330 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
8331 initialization code to keep similarity to xfns.c after changes
8332 from 2011-11-05.
8333
c9e7db78
JD
83342011-11-05 Jan Djärv <jan.h.d@swipnet.se>
8335
a97f8f3f
JD
8336 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
8337 (unwind_create_frame): New function (Bug#9943).
8338 (Fx_create_frame): Restructure code to be more similar to the one in
8339 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
8340 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
8341 Move terminal->reference_count++ just before making the frame official
8342 (Bug#9943).
8343
8344 * nsterm.m (x_free_frame_resources): New function.
8345 (x_destroy_window): Move code to x_free_frame_resources.
8346
c9e7db78 8347 * xfns.c (unwind_create_frame): Fix comment.
6d5eb5b0
SM
8348 (Fx_create_frame, x_create_tip_frame):
8349 Move terminal->reference_count++ just before making the frame
75f1671a 8350 official. Move initialization of image_cache_refcount and
c9e7db78
JD
8351 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
8352
a6fc3b5c
EZ
83532011-11-05 Eli Zaretskii <eliz@gnu.org>
8354
8355 Support MSVC build with newer versions of Visual Studio.
8356 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
8357 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
8358 nt/gmake.defs.
8359
8360 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
8361 which are not supported by MSVC.
8362 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
8363 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
8364 bitfields.
8365 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
8366 types in bitfields.
8367 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
8368
8369 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
8370
58179cce 83712011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
a6fc3b5c
EZ
8372
8373 Support MSVC build with newer versions of Visual Studio.
8374 * w32.c: Don't include w32api.h for MSVC.
8375 (init_environment) [_MSC_VER]: Call sys_access, not _access.
8376
8377 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
8378 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
8379 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
8380 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
8381 e_* cousins.
8382 (alloca) [_MSC_VER]: Define to _alloca.
8383
8384 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
8385
8386 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
8387
a58c13ed
EZ
83882011-11-04 Eli Zaretskii <eliz@gnu.org>
8389
8390 * xdisp.c (note_mouse_highlight): If either of
8391 previous/next-single-property-change returns nil, treat that as
8392 the beginning or the end of the buffer. (Bug#9955)
8393
fe0b6370
JD
83942011-11-04 Jan Djärv <jan.h.d@swipnet.se>
8395
a58c13ed 8396 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
fe0b6370
JD
8397 label is not null (Bug#9951).
8398 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
8399 may be NULL.
8400
89bd5ee1
EZ
84012011-11-04 Eli Zaretskii <eliz@gnu.org>
8402
8403 * window.c (Fwindow_body_size): Mention in the doc string that the
8404 return value is in frame's canonical units. (Bug#9949)
8405
84c3edb9
EZ
84062011-11-03 Eli Zaretskii <eliz@gnu.org>
8407
4e2fb5c7
EZ
8408 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
8409
84c3edb9 8410 * w32fns.c (unwind_create_frame): If needed, free the glyph
3ab15fd6 8411 matrices of the partially constructed frame. (Bug#9943)
2a58bbc1 8412 * xfns.c (unwind_create_frame): Likewise.
84c3edb9 8413
bc17a887
EZ
84142011-11-01 Eli Zaretskii <eliz@gnu.org>
8415
8416 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
8417 Don't stop backward scan on the continuation glyph, even though
8418 its CHARPOS is positive.
6d5eb5b0
SM
8419 (mouse_face_from_buffer_pos, note_mouse_highlight):
8420 Rename cover_string to disp_string.
bc17a887 8421
4ee88440
MR
84222011-11-01 Martin Rudalics <rudalics@gmx.at>
8423
8424 * window.c (temp_output_buffer_show): Don't use
8425 Vtemp_buffer_show_specifiers.
8426 (Vtemp_buffer_show_specifiers): Remove unused variable.
8427
c2ff3c02
EZ
84282011-10-30 Eli Zaretskii <eliz@gnu.org>
8429
8430 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
8431 past the beginning of the current glyph matrix.
8432
58179cce 84332011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
6e56383b
JD
8434
8435 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
8436 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
8437 HAVE_GTK3 (Bug#9869).
b77a6a7f 8438
3b574623
JD
8439 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
8440 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
8441
b77a6a7f
JD
8442 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
8443
8444 * xterm.c: Declare x_handle_net_wm_state to return int.
8445 (handle_one_xevent): Check if we are iconified but don't have
8446 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
8447 (get_current_wm_state): Return non-zero if not hidden,
8448 check for _NET_WM_STATE_HIDDEN (Bug#9893).
8449 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
8450 (x_handle_net_wm_state): Return what get_current_wm_state returns.
8451 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
8452
196e41e4
PE
84532011-10-29 Paul Eggert <eggert@cs.ucla.edu>
8454
8455 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
8456 so that this new function doesn't get optimized away by a
8457 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
8458
021f2e1a
AS
84592011-10-29 Andreas Schwab <schwab@linux-m68k.org>
8460
8461 * frame.h (MOUSE_HL_INFO): Remove excess parens.
8462
8b058d44
EZ
84632011-10-29 Eli Zaretskii <eliz@gnu.org>
8464
8465 Fix the `xbytecode' command.
8466 * .gdbinit (xprintbytestr): New command.
b50a28de 8467 (xwhichsymbols): Rename from `which'; all callers changed.
8b058d44
EZ
8468 (xbytecode): Print the byte-code string as well.
8469
4452fb80
EZ
84702011-10-29 Kim Storm <storm@cua.dk>
8471
8b058d44
EZ
8472 * alloc.c (which_symbols): New function.
8473
21b72067
AS
84742011-10-29 Andreas Schwab <schwab@linux-m68k.org>
8475
8476 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
8477 line. (Bug#9903)
8478
83ed7b5c
GM
84792011-10-29 Glenn Morris <rgm@gnu.org>
8480
8481 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
8482 Not clear what it was for, and it causes various bugs. (Bug#9839)
8483
5a7a728b
EZ
84842011-10-28 Eli Zaretskii <eliz@gnu.org>
8485
8486 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
8487 possible random value that matches one of those tested as
8488 condition to clear the mouse face.
8489
d3d0842f
CY
84902011-10-28 Chong Yidong <cyd@gnu.org>
8491
8492 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
8493
31b39d13
DN
84942011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
8495
8496 * window.c (make_window): Initialize phys_cursor_on_p.
8497
9aba6043
SM
84982011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
8499
8500 * lisp.h (struct Lisp_Symbol): Update comments.
8501
c20992f4
JB
85022011-10-28 Juanma Barranquero <lekktu@gmail.com>
8503
8504 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
8505
db4f02f2
EZ
85062011-10-28 Eli Zaretskii <eliz@gnu.org>
8507
8508 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
8509 <oslsachem@gmail.com> for helping to debug this.
8510
8511 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
8512 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
8513 (g_b_init_get_glyph_outline_w): New static variables.
8514 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
8515 (GetGlyphOutlineW_Proc): New typedefs.
8516 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
9aba6043
SM
8517 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
8518 New functions.
8519 (w32font_open_internal, compute_metrics):
8520 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
db4f02f2
EZ
8521 instead of calling the "wide" APIs directly.
8522
8523 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
8524
8525 * w32.h (syms_of_w32font): Add prototype.
8526
87e68db4
JB
85272011-10-27 Juanma Barranquero <lekktu@gmail.com>
8528
8529 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
8530 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
8531 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
8532 (Fmove_to_window_line): Doc fix.
8533
435c1d67
CY
85342011-10-27 Chong Yidong <cyd@gnu.org>
8535
8536 * process.c (make_process): Set gnutls_state to NULL.
8537
8538 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
8539 non-NULL, regardless of GNUTLS_INITSTAGE.
8540 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
8541 an error. Set process slots as soon as we allocate them.
8542
8543 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
8544
9c6c6f49
CY
85452011-10-27 Chong Yidong <cyd@gnu.org>
8546
9aba6043
SM
8547 * gnutls.c (emacs_gnutls_deinit): New function.
8548 Deallocate credentials structures as well as calling gnutls_deinit.
9c6c6f49
CY
8549 (Fgnutls_deinit, Fgnutls_boot): Use it.
8550
8551 * process.c (make_process): Initialize GnuTLS credentials to NULL.
8552 (deactivate_process): Call emacs_gnutls_deinit.
8553
657d08d3
JB
85542011-10-27 Juanma Barranquero <lekktu@gmail.com>
8555
8556 * image.c (x_create_x_image_and_pixmap):
8557 * w32.c (sys_rename, w32_delayed_load):
8558 * w32font.c (fill_in_logfont):
8559 * w32reg.c (x_get_string_resource): Silence compiler warnings.
8560
5430d399
JB
85612011-10-26 Juanma Barranquero <lekktu@gmail.com>
8562
8563 * w32fns.c (w32_default_color_map): New function,
8564 extracted from Fw32_default_color_map.
a7ef684b 8565 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
5430d399 8566
fe0055fa
PE
85672011-10-25 Paul Eggert <eggert@cs.ucla.edu>
8568
8569 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
8570
e6346438
SM
85712011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
8572
8573 * keyboard.c (test_undefined): New function (bug#9751).
8574 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
8575
e112cc37
ET
85762011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
8577
8578 * sysdep.c (init_sys_modes): Fix the check for the controlling
8579 terminal (Bug#6649).
8580
7b5d6677
EZ
85812011-10-20 Eli Zaretskii <eliz@gnu.org>
8582
8583 * dispextern.h (struct bidi_it): New member next_en_type.
8584
8585 * bidi.c (bidi_line_init): Initialize the next_en_type member.
8586 (bidi_resolve_explicit_1): When next_en_pos is valid for the
8587 current character, check also for next_en_type being WEAK_EN.
8588 (bidi_resolve_weak): Don't enter the expensive loop if the current
8589 position is before next_en_pos. Record the bidi type of the first
8590 non-ET, non-BN character we find, in addition to its position.
8591 (bidi_level_of_next_char): Invalidate next_en_type when
8592 next_en_pos is over-stepped.
8593
7da0b018
PE
85942011-10-20 Paul Eggert <eggert@cs.ucla.edu>
8595
8596 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
8597 * editfns.c: Rewrite current-time-zone so that it invokes
8598 the equivalent of (format-time-string "%Z") to get the time zone name.
8599 This fixes a bug when the time zone name contains characters that
8600 need converting from the system time locale to Emacs internal format.
8601 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
8602 that patch fixed format-time-string to do the conversion, but
8603 I forgot to fix current-time-zone.
8604 (format_time_string): New function, containing most of
8605 what Fformat_time_string used to contain.
8606 (Fformat_time_string): Rewrite in terms of format_time_string.
8607 This doesn't change this function's behavior.
8608 (current-time-zone): Rewrite to use format_time_string.
8609 This fixes the bug reported by Michael Schierl in
8610 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
8611 Jason Rumney's 2007-06-07 change worked around this bug, but
8612 didn't fix it.
8613 * systime.h (tzname, timezone): Remove no-longer-used declarations.
8614
8547b010
EZ
86152011-10-19 Eli Zaretskii <eliz@gnu.org>
8616
8617 * xdisp.c (start_display): If the character at POS is displayed
8618 via a display vector, reset IT->current.dpvec_index to zero.
12b32963
EZ
8619 (try_window_reusing_current_matrix): If a line ends in a display
8620 vector or the next line starts in a display vector, continue
8621 redrawing the window even though the character position of
8622 start_row was reached.
8547b010
EZ
8623 (Bug#9771, part 2)
8624
4e948d15
CY
86252011-10-18 Chong Yidong <cyd@gnu.org>
8626
8627 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
8628 with nobreak-char-display too.
8629
4787455f
EZ
86302011-10-18 Eli Zaretskii <eliz@gnu.org>
8631
8632 Fix part 3 of bug#9771.
8633 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
8634 (bidi_resolve_neutral): Don't enter the expensive loop looking for
8635 non-neutral characters if the current character is a paragraph
8636 separator (a.k.a. Newline). This avoids running the same
8637 expensive loop twice, once when we consume the preceding newline
8638 and the other time when the line actually needs to be displayed.
8639 Avoid the loop when we see neutrals on the base embedding level
8640 following a character whose directionality is the same as the
8641 paragraph's. This avoids running the expensive loop when a line
8642 ends in a long sequence of neutrals, like control characters.
8643 Add assertion against STRONG_AL type. Slightly rearrange code
8644 that determines the type of a neutral given the first non-neutral
8645 that follows it.
8646 (bidi_level_of_next_char): Set next_en_pos to zero when
8647 invalidating its info.
8648
2c91f553
EZ
86492011-10-17 Eli Zaretskii <eliz@gnu.org>
8650
8651 * xdisp.c (push_display_prop): Determine whether to record string
8652 or buffer position by IT->string, not by IT->method. Allow
8653 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
f2ff9e88
EZ
8654 (move_it_vertically_backward): Don't look for character position
8655 immediately after the newline when in a continuation line.
8656 (Bug#9771, part 1)
2c91f553 8657
c7b08b0d
MR
86582011-10-15 Martin Rudalics <rudalics@gmx.at>
8659
8660 * window.c (coordinates_in_window): Rewrite and delabelize
8661 vertical border check. (Bug#5357) (Bug#9618)
8662
6b02f655
SM
86632011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
8664
8665 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
8666 errors in XSetWindowBorder (bug#9310).
8667
81d40c92
DA
86682011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
8669
8670 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
8671 avoid crash when xmalloc overrun checking is enabled.
8672
d4172c3b
EZ
86732011-10-13 Eli Zaretskii <eliz@gnu.org>
8674
8675 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
8676 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
8677 cursor motion with <left> and <right> arrow keys.
8678
8679 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
8680 some callers set that themselves.
8681
b00eea75
EZ
86822011-10-12 Eli Zaretskii <eliz@gnu.org>
8683
8684 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
8685 display string and the previous row comes from the same string and
8686 is empty. (Bug#9739) (Bug#9738)
8687
8fe012c4
SM
86882011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
8689
8690 * doc.c (get_doc_string): Encode file name (bug#9735).
8691
0074aef2
EZ
86922011-10-12 Eli Zaretskii <eliz@gnu.org>
8693
79beb178
EZ
8694 * bidi.c (bidi_level_of_next_char):
8695 * xdisp.c (get_visually_first_element): Remove old incorrect
8696 comments regarding the Unicode Line Separator character.
8697
0074aef2
EZ
8698 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
8699
6e4b3fbe
DA
87002011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
8701
8702 * alloc.c (Fgc_status): Do not access beyond zombies array
8703 boundary if nzombies > MAX_ZOMBIES.
8704 * alloc.c (dump_zombies): Add missing format specifier.
8705
0324f3af
PE
87062011-10-12 Paul Eggert <eggert@cs.ucla.edu>
8707
b5525cac
PE
8708 * xdisp.c (set_cursor_from_row): Simplify conditionals,
8709 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
8710
0324f3af
PE
8711 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
8712 Some packages use them to denote characters with modifiers.
8713
e9b5f888
AS
87142011-10-11 Andreas Schwab <schwab@linux-m68k.org>
8715
8716 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
8717 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
8718 matching a pp-number. Rename parameter var to var1.
8719
127827c0
SM
87202011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
8721
8722 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
8723
c8fd3bd0
GM
87242011-10-08 Glenn Morris <rgm@gnu.org>
8725
8726 * callint.c (Fcall_interactively): Give a more explicit error for the
8727 'c' case with a non-character input. (Bug#8479)
8728
352ec8ff
EZ
87292011-10-08 Eli Zaretskii <eliz@gnu.org>
8730
03669ccb
EZ
8731 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
8732 lines.
7061c986
EZ
8733 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
8734 lines that are hscrolled on the left.
03669ccb 8735
352ec8ff
EZ
8736 * dispnew.c (buffer_posn_from_coords): Account for a possible
8737 presence of header-line. (Bug#4426)
8738
a66cfb1c
SM
87392011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
8740
6b02f655
SM
8741 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
8742 Don't advertise functionality which we discourage or doesn't work.
a66cfb1c 8743
7c5ee88e
PE
87442011-10-07 Paul Eggert <eggert@cs.ucla.edu>
8745
8746 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
8747 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
8748 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
8749 this makes Emacs dump core during garbage collection on rare
8750 occasions. sizeof is obviously inferior to offsetof here, so
8751 stick with offsetof.
8752 (GC_POINTER_ALIGNMENT): New macro.
8753 (mark_memory): Omit 3rd (offset) arg; caller changed.
8754 Don't assume EMACS_INT alignment is the same as pointer alignment.
8755
df1bbe5b
SM
87562011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
8757
8758 * keyboard.c (read_key_sequence_remapped): New var.
8759 (read_key_sequence): Compute remapping in the right buffer.
8760 (command_loop_1): Use read_key_sequence's remapping directly.
8761
51553db6
SM
87622011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
8763
32c1fffd
SM
8764 * dired.c (file_name_completion): Don't expand file name.
8765 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
8766 before checking file name handler.
8767
51553db6
SM
8768 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
8769 they've been requested explicitly (bug#9591).
8770
b6bd1599 87712011-10-01 Andreas Schwab <schwab@linux-m68k.org>
fa2ec41f
AS
8772
8773 * keymap.c (Fsingle_key_description): Use make_specified_string
8774 instead of build_string to build string from push_key_description.
8775 (Bug#5193)
8776
f701dc2a
PE
87772011-09-30 Paul Eggert <eggert@cs.ucla.edu>
8778
4222c55d
PE
8779 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
8780 This fixes a Y2038 bug on 64-bit hosts.
8781 * buffer.c (reset_buffer):
8782 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
8783 (Fclear_buffer_auto_save_failure):
8784 Use 0, not -1, to represent an unset failure time, since time_t
8785 might not be signed.
8786
f701dc2a
PE
8787 Remove dependency on glibc malloc internals.
8788 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
8789 Move back here from lisp.h, but with their new implementations.
8790 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
8791 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
8792 * charset.c (charset_table_init): New static var.
8793 (syms_of_charset): Use it instead of xmalloc. This removes a
8794 dependency on glibc malloc internals. See Eli Zaretskii's comment in
8795 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
8796 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
8797 Move back to alloc.c.
8798 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
8799 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
8800
9ceebf39
JD
88012011-09-30 Jan Djärv <jan.h.d@swipnet.se>
8802
8803 * nsterm.m (windowDidResize): Call x_set_window_size only when
8804 ns_in_resize is true. Otherwise set pixelwidth/height and
8805 call change_frame_size (Bug#9628).
8806
cb993c58
PE
88072011-09-30 Paul Eggert <eggert@cs.ucla.edu>
8808
3930c88b
PE
8809 Port --enable-checking=all to Fedora 14 x86-64.
8810 * charset.c (syms_of_charset): Also account for glibc malloc's
8811 internal overhead when calculating the initial malloc maximum.
8812
cb993c58
PE
8813 Port --enable-checking=all to Fedora 14 x86.
8814 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
8815 Move to lisp.h.
8816 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
8817 (overrun_check_realloc, overrun_check_free):
8818 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
8819 That way, xmalloc returns a properly-aligned pointer even if
8820 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
8821 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
8822 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
8823 into account when calculating the initial malloc maximum.
8824 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
8825 Move here from alloc.c, so that charset.c can use it too.
8826 Properly align; the old code wasn't right for common 32-bit hosts
8827 when configured with --enable-checking=all.
8828 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
8829 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
8830
31bed486
EZ
88312011-09-29 Eli Zaretskii <eliz@gnu.org>
8832
04c70788 8833 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
31bed486
EZ
8834 use EDOM.
8835
fbcaa2f3
EZ
88362011-09-28 Eli Zaretskii <eliz@gnu.org>
8837
8838 * xdisp.c (compute_display_string_end): If there's no display
8839 string at CHARPOS, return -1.
8840
8841 * bidi.c (bidi_fetch_char): When compute_display_string_end
8842 returns a negative value, treat the character as a normal
8843 character not covered by a display string. (Bug#9624)
8844
a239d4e9
JB
88452011-09-28 Juanma Barranquero <lekktu@gmail.com>
8846
8847 * lread.c (Fread_from_string): Fix typo in docstring.
8848
88652fd5
EZ
88492011-09-27 Eli Zaretskii <eliz@gnu.org>
8850
8851 * xdisp.c (handle_invisible_prop): If invisible text ends on a
8852 newline, reseat the iterator instead of bidi-iterating there one
8853 character at a time. (Bug#9610)
32c1fffd
SM
8854 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
8855 TO_CHARPOS if the bidi iterator is at base embedding level.
88652fd5 8856
ed497dd4
AS
88572011-09-27 Andreas Schwab <schwab@linux-m68k.org>
8858
8859 * lread.c (readevalloop): Use correct code for NBSP.
8860 (read1): Likewise. (Bug#9608)
8861
b2bf61aa
MA
88622011-09-25 Michael Albinus <michael.albinus@gmx.de>
8863
8864 * dbusbind.c (Fdbus_register_signal): When service is not
8865 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
8866
32bbb17c
GM
88672011-09-25 Glenn Morris <rgm@gnu.org>
8868
8869 * buffer.c (truncate-lines): Doc fix.
8870
94e0933e
CY
88712011-09-24 Chong Yidong <cyd@stupidchicken.com>
8872
8873 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
8874 (Fset_window_next_buffers): Doc fix.
8875
cddde921
GM
88762011-09-24 Glenn Morris <rgm@gnu.org>
8877
8878 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
8879
1260aef1
PE
88802011-09-24 Paul Eggert <eggert@cs.ucla.edu>
8881
25b4bfa0
PE
8882 Fix minor problems found by static checking.
8883 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
1260aef1
PE
8884 * indent.c (Fvertical_motion): Fix == vs = typo.
8885
e3cbd34b
EZ
88862011-09-24 Eli Zaretskii <eliz@gnu.org>
8887
a66cfb1c
SM
8888 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
8889 Default value is now t. Doc fix.
6bf7006f 8890
e3cbd34b 8891 * indent.c (Fvertical_motion): Compute and apply the overshoot
32c1fffd 8892 logic when moving up, not only when moving down. Fix the
e3cbd34b 8893 confusing name and values of the it_overshoot_expected variable;
32c1fffd 8894 logic changes accordingly. (Bug#9254) (Bug#9549)
e3cbd34b
EZ
8895
8896 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
8897 CHARPOS is covered by a display string which includes newlines.
8898 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
8899 is covered by a display string with embedded newlines.
8900
a3de0cbd
MA
89012011-09-24 Michael Albinus <michael.albinus@gmx.de>
8902
8903 * dbusbind.c (Fdbus_register_signal): Add match rule to
8904 Vdbus_registered_objects_table. (Bug#9581)
a66cfb1c
SM
8905 (Fdbus_register_method, Vdbus_registered_objects_table):
8906 Fix docstring.
a3de0cbd 8907
b260039d
JM
89082011-09-24 Jim Meyering <meyering@redhat.com>
8909
32c1fffd 8910 do not ignore write error for any output size
b260039d
JM
8911 The previous change was incomplete.
8912 While it makes emacs --batch detect the vast majority of stdout
8913 write failures, errors were still ignored whenever the output size is
8914 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
8915 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
8916 && echo FAIL: ignored write error
8917 FAIL: ignored write error
8918 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
8919 && echo FAIL: ignored write error
8920 FAIL: ignored write error
8921 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
8922
8eca8a7c
AS
89232011-09-23 Andreas Schwab <schwab@linux-m68k.org>
8924
8925 * emacs.c (Fkill_emacs): In noninteractive mode exit
8926 non-successfully if a write error occurred on stdout. (Bug#9574)
8927
3341db62
EZ
89282011-09-21 Eli Zaretskii <eliz@gnu.org>
8929
8930 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
8931 the xassert test.
8932
8933 * dispextern.h (struct it): Update the comment documenting what
8934 can it->OBJECT be.
8935
8c203dbf
EZ
89362011-09-20 Eli Zaretskii <eliz@gnu.org>
8937
8938 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
8939 a display string, extend search for cursor position to end of row.
8940 (find_row_edges): If the row ends in a newline from a display
8941 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
8942 Handle the case of a display string with multiple newlines.
fd317ddf
EZ
8943 (Fcurrent_bidi_paragraph_direction): Fix search for previous
8944 non-empty line. Fixes confusing cursor motion with arrow keys at
8945 the beginning of a line that starts with whitespace.
8c203dbf 8946
a4824228
LMI
89472011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
8948
8949 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
8950 (bug#9493).
8951
33ed493b
CY
89522011-09-18 Chong Yidong <cyd@stupidchicken.com>
8953
8954 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
8955 boolean (Bug#9154).
8956
56cd55c8
EZ
89572011-09-18 Eli Zaretskii <eliz@gnu.org>
8958
8959 * xdisp.c (display_line): Record maximum and minimum buffer
8960 positions even if no glyphs were produced (e.g., by a zero-width
8961 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
8962 buffer positions that will be removed from the glyph row because
8963 they don't fit.
c02dcedf
EZ
8964 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
8965 column is beyond frame width: don't subtract 1 "pixel" when
8966 computing width of the stretch.
3e62b7e0
EZ
8967 (reseat_at_next_visible_line_start): Undo the change made on
8968 2011-09-17 that saved paragraph information and restored it after
8969 the call to `reseat'. (Bug#9545)
56cd55c8 8970
5ed99d36 89712011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3390454c
YM
8972
8973 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
8974 and turn window cursor on if cleared (Bug#9415).
8975
5ed99d36 89762011-09-18 Andreas Schwab <schwab@linux-m68k.org>
edb7b4dc
AS
8977
8978 * search.c (boyer_moore): Take unibyte characters from pattern
8979 literally. (Bug#9458)
8980
9bade7b2
EZ
89812011-09-18 Eli Zaretskii <eliz@gnu.org>
8982
8983 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
8984
e5e9d610
PE
89852011-09-18 Paul Eggert <eggert@cs.ucla.edu>
8986
87e4427a
PE
8987 Fix minor problem found by static checking.
8988 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
8989 initialized, to pacify gcc -Wuninitialized.
8990
e5e9d610
PE
8991 * fileio.c: Report proper errno when syscall falls.
8992 (Finsert_file_contents): Save and restore errno,
8993 so that report_file_error outputs the correct diagnostic.
8994 (Fwrite_region) [CLASH_DETECTION]: Likewise.
8995
a1674f0b
EZ
89962011-09-18 Eli Zaretskii <eliz@gnu.org>
8997
8998 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
8999
fbfb6dd4
EZ
90002011-09-17 Eli Zaretskii <eliz@gnu.org>
9001
9002 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
9003 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
9004
bb187662
EZ
90052011-09-17 Eli Zaretskii <eliz@gnu.org>
9006
1137e8b8 9007 * xdisp.c (reseat_at_next_visible_line_start): Keep information
6b02f655 9008 about the current paragraph and restore it after the call to reseat.
1137e8b8
EZ
9009
9010 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
9011 (bidi_find_paragraph_start): Search back for paragraph beginning
9012 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
9013 (bidi_move_to_visually_next): Only trigger paragraph-related
9014 computations when the last character is a newline or at EOB, not
9015 just any NEUTRAL_B. (Bug#9470)
9016
bb187662
EZ
9017 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
9018 truncated lines if point is covered by a display string. (Bug#9524)
9019
2e621251
PE
90202011-09-16 Paul Eggert <eggert@cs.ucla.edu>
9021
9022 * xselect.c: Relax test for outgoing X longs (Bug#9498).
9023 (cons_to_x_long): New function.
9024 (lisp_data_to_selection_data): Use it. Correct the test for
9025 short-versus-long data; it was negated. Break out of vector
9026 loop, for efficiency, when a long datum is discovered.
9027
91a15bc6
SM
90282011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
9029
9030 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
9031
b41c3a35
EZ
90322011-09-16 Eli Zaretskii <eliz@gnu.org>
9033
9034 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
9035 GCC PR/17406) by declaring this function with external scope.
9036
7812ba2d
PE
90372011-09-15 Paul Eggert <eggert@cs.ucla.edu>
9038
9039 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
9040 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
9041
cf7edc2a
AS
90422011-09-15 Andreas Schwab <schwab@linux-m68k.org>
9043
9044 * editfns.c (Fformat): Correctly handle text properties on "%%".
9045
bd01620e
EZ
90462011-09-15 Eli Zaretskii <eliz@gnu.org>
9047
9048 * xterm.c (x_draw_composite_glyph_string_foreground):
9049 * w32term.c (x_draw_composite_glyph_string_foreground):
9050 * term.c (encode_terminal_code):
9051 * composite.c (composition_update_it, get_composition_id):
9052 * xdisp.c (get_next_display_element)
9053 (fill_composite_glyph_string): Add comments about special meaning
9054 of TAB characters in a composition.
9055
a02719a3
PE
90562011-09-15 Paul Eggert <eggert@cs.ucla.edu>
9057
9058 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
4c122725
PE
9059 This occurs when processing a multibyte format.
9060 Problem reported by Wolfgang Jenker.
a02719a3 9061
72589a3c
JB
90622011-09-15 Johan Bockgård <bojohan@gnu.org>
9063
9064 * xdisp.c (try_cursor_movement): Only check for exact match if
9065 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
9066
1c14176c
PE
90672011-09-14 Paul Eggert <eggert@cs.ucla.edu>
9068
9069 Remove unused external symbols.
9070 * dispextern.h (calc_pixel_width_or_height): Remove decl.
9071 * xdisp.c (calc_pixel_width_or_height): Now static.
9072 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
9073 * indent.c (check_display_width):
9074 * w32term.c: Fix comment to match code.
9075 * xterm.c, xterm.h (x_catching_errors): Remove.
9076
d2eea5b5
PE
90772011-09-14 Paul Eggert <eggert@cs.ucla.edu>
9078
9079 * xselect.c: Use signed conversions more consistently (Bug#9498).
9080 (selection_data_to_lisp_data): Assume incoming selection data are
9081 signed integers, not unsigned. This is to be consistent with
9082 outgoing selection data, which was modified to use signed integers
9083 in as part of the fix to Bug#9196 in response to Jan D.'s comment
9084 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
9085 expects long, not unsigned long.
9086
46888499
EZ
90872011-09-14 Eli Zaretskii <eliz@gnu.org>
9088
9089 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
9090 computation of loop end. Reported by Johan Bockgård
9091 <bojohan@gnu.org>.
9092
ef8ef9fb
CY
90932011-09-13 Chong Yidong <cyd@stupidchicken.com>
9094
9095 * frame.c (Fother_visible_frames_p): Function deleted.
9096
fa819fed
EZ
90972011-09-12 Eli Zaretskii <eliz@gnu.org>
9098
9099 * indent.c (compute_motion): Process display vector front to back
9100 rather than the other way around. (Bug#2496)
9101
2ba8e008
SM
91022011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
9103
9104 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
9105
20f53c69
CY
91062011-09-11 Chong Yidong <cyd@stupidchicken.com>
9107
9108 * minibuf.c (Fread_from_minibuffer): Doc fix.
9109
d562d7a4
EZ
91102011-09-11 Eli Zaretskii <eliz@gnu.org>
9111
9112 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
9113 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
9114
1c4d7f3d
LMI
91152011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
9116
9117 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
9118 value for non-existent files.
9119
b885bf36
EZ
91202011-09-11 Eli Zaretskii <eliz@gnu.org>
9121
9122 * fileio.c (Finsert_file_contents): If the file cannot be opened,
9123 set its "size" to -1. This will set the modtime_size field of
9124 the corresponding buffer to -1, which is what
9125 verify-visited-file-modtime expects for files that do not exist.
9126 (Bug#9139)
9127
6612f0bf
PE
91282011-09-11 Paul Eggert <eggert@cs.ucla.edu>
9129
9130 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
9131 here ...
9132 * lisp.h: ... from here. push_key_description is no longer
9133 defined in keyboard.c, so its declaration should not be in
9134 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
9135 logically belongs with push_key_description.
9136
dfb3f755
PE
91372011-09-10 Paul Eggert <eggert@cs.ucla.edu>
9138
9139 * buffer.h: Include <sys/types.h> instead of <time.h>.
9140 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
9141 Problem reported by Herbert J. Skuhra.
9142
3134906c
LMI
91432011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
9144
9145 * xml.c (parse_region): Make the parsing work for
9146 non-comment-starting XML files again (bug#9144).
9147
8d903f4e
AS
91482011-09-10 Andreas Schwab <schwab@linux-m68k.org>
9149
9150 * image.c (gif_load): Fix calculation of bottom and right corner.
9151 (Bug#9468)
9152
80ad64f4
EZ
91532011-09-10 Eli Zaretskii <eliz@gnu.org>
9154
9155 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
9156 redisplay in small windows.
9157
208a048d
EZ
91582011-09-09 Eli Zaretskii <eliz@gnu.org>
9159
9160 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
9161
9b1c252e
MR
91622011-09-08 Martin Rudalics <rudalics@gmx.at>
9163
9164 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
9165 Operate on live windows only.
9166
2949f33b
JB
91672011-09-08 Juanma Barranquero <lekktu@gmail.com>
9168
9169 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
9170
e08dcafd
EZ
91712011-09-07 Eli Zaretskii <eliz@gnu.org>
9172
9173 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
9174 only under bidi iteration.
9175
115b96bd
JD
91762011-09-07 Jan Djärv <jan.h.d@swipnet.se>
9177
9178 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
9179
c8199d0f
PE
91802011-09-06 Paul Eggert <eggert@cs.ucla.edu>
9181
9182 isnan: Fix porting problem to Solaris 10 with bundled gcc.
9183 Without this fix, the command to link temacs failed due to an
9184 undefined symbol __builtin_isnan. This is because
9185 /usr/include/iso/math_c99.h #defines isnan(x) to
9186 __builtin_isnan(x), but the bundled gcc, which identifies itself
9187 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
9188 a __builtin_isnan.
9189 * floatfns.c (isnan): #undef, and then #define to a clone of
9190 what's in data.c.
9191 (Fisnan): Always define, since it's always available now.
9192 (syms_of_floatfns): Always define isnan at the Lisp level.
9193
e39b275c 91942011-09-06 Paul Eggert <eggert@cs.ucla.edu>
1c262cae
PE
9195
9196 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
9197
b2db44d9 91982011-09-06 Paul Eggert <eggert@cs.ucla.edu>
728f8f0a 9199
f4af5137 9200 * fileio.c: Fix bugs with large file offsets (Bug#9428).
728f8f0a
PE
9201 The previous code assumed that file offsets (off_t values) fit in
9202 EMACS_INT variables, which is not true on typical 32-bit hosts.
9203 The code messed up by falsely reporting buffer overflow in cases
9204 such as (insert-file-contents "big" nil 1 2) into an empty buffer
9205 when "big" contains more than 2**29 bytes, even though this
9206 inserts just one byte and does not overflow the buffer.
9207 (Finsert_file_contents): Store file offsets as off_t
9208 values, not as EMACS_INT values. Check for overflow when
9209 converting between EMACS_INT and off_t. When checking for
9210 buffer overflow or for overlap, take the offsets into account.
9211 Don't use EMACS_INT for small values where int suffices.
9212 When checking for overlap, fix a typo: ZV was used where
9213 ZV_BYTE was intended.
9214 (Fwrite_region): Don't assume off_t fits into 'long'.
9215 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
9216
ecfc0a49
MA
92172011-09-05 Michael Albinus <michael.albinus@gmx.de>
9218
9219 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
9220
6511acf2 92212011-09-04 Paul Eggert <eggert@cs.ucla.edu>
61bfeeb7 9222
0999621a 9223 sprintf-related integer and memory overflow issues (Bug#9412).
62f19c19
PE
9224
9225 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
8666506e 9226 (esprintf, exprintf, evxprintf): New functions.
62f19c19 9227 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
6b02f655 9228 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
62f19c19
PE
9229 (modify_event_symbol): Do not assume that the length of
9230 name_alist_or_stem is safe to alloca and fits in int.
9231 (Fexecute_extended_command): Likewise for function name and binding.
9232 (Frecursion_depth): Wrap around reliably on integer overflow.
9233 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
9234 since some callers pass EMACS_INT values.
9235 (Fsingle_key_description): Don't crash if symbol name contains more
9236 than MAX_ALLOCA bytes.
9237 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
9238 (get_minibuffer): Arg is now EMACS_INT, not int.
9239 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
8666506e 9240 (esprintf, exprintf, evxprintf): New decls.
62f19c19
PE
9241 * window.h (command_loop_level, minibuf_level): Reflect API changes.
9242
2be7d702
PE
9243 * dbusbind.c (signature_cat): New function.
9244 (xd_signature, Fdbus_register_signal):
2ea16b89
PE
9245 Do not overrun buffer; instead, report string overflow.
9246
9d1df220
PE
9247 * dispnew.c (add_window_display_history): Don't overrun buffer.
9248 Truncate instead; this is OK since it's just a log.
9249
33ef5c64
PE
9250 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
9251 even if the time zone offset is outlandishly large.
9252 Don't mishandle offset == INT_MIN.
9253
66c6fdd5
PE
9254 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
9255 when creating daemon; the previous buffer-overflow check was incorrect.
9256
d749b01b
PE
9257 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
9258 which has the guts of the old verror function.
9259
b5cd1905
PE
9260 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
9261 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
9262
6e1a67fb
PE
9263 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
9264 (font_unparse_xlfd): Don't blindly alloca long strings.
c21721cc 9265 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
8666506e 9266 fits in int, when using sprintf. Use single snprintf to count
c21721cc
PE
9267 length of string rather than counting it via multiple sprintfs;
9268 that's simpler and more reliable.
c21721cc
PE
9269 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
9270 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
9271 sprintf, in case result does not fit in int.
9272
c57b67fc
PE
9273 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
9274 (fontset_from_font): Print it.
9275
8a401434
PE
9276 * frame.c (tty_frame_count): Now printmax_t, not int.
9277 (make_terminal_frame, set_term_frame_name): Print it.
9278 (x_report_frame_params): In X, window IDs are unsigned long,
9279 not signed long, so print them as unsigned.
9280 (validate_x_resource_name): Check for implausibly long names,
9281 and don't assume name length fits in 'int'.
9282 (x_get_resource_string): Don't blindly alloca invocation name;
9283 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
9284 not fit in int.
9285
6e1a67fb
PE
9286 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
9287 (xg_check_special_colors, xg_set_geometry):
84722b3d
PE
9288 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
9289
0df02bf3
PE
9290 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
9291 Use esprintf, not sprintf, in case result does not fit in int.
9292
48e30793
PE
9293 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
9294 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
9295 it as a large positive number.
9296 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
9297 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
9298
a66ff6d8
PE
9299 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
9300 in case result does not fit in int.
9301
aca216ff
PE
9302 * print.c (float_to_string): Detect width overflow more reliably.
9303 (print_object): Make sprintf buffer a bit bigger, to avoid potential
9304 buffer overrun. Don't assume list length fits in 'int'. Treat
9305 print length of 0 as 0, not as infinity; to be consistent with other
9306 uses of print length in this function. Don't overflow print length
9307 index. Don't assume hash table size fits in 'long', or that
9308 vectorlike size fits in 'unsigned long'.
9309
31c286f7
PE
9310 * process.c (make_process): Use printmax_t, not int, to format
9311 process-name gensyms.
9312
55e5faa1
PE
9313 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
9314
80f2e268
PE
9315 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
9316 to avoid potential buffer overrun.
9317
670741ab
PE
9318 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
9319 if X resource line is longer than 512 bytes.
9320
b7163a50
PE
9321 * xfns.c (x_window): Make sprintf buffer a bit bigger
9322 to avoid potential buffer overrun.
9323
ae58ff1f
PE
9324 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
9325
c43c8a6a
PE
9326 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
9327
3f8236f4
PE
93282011-09-04 Paul Eggert <eggert@cs.ucla.edu>
9329
53e9fe90 9330 Integer overflow fixes for scrolling, etc.
6511acf2
PE
9331 Without these, Emacs silently mishandles large integers sometimes.
9332 For example, "C-u 4294967297 M-x recenter" was treated as if
53e9fe90
PE
9333 it were "C-u 1 M-x recenter" on a typical 64-bit host.
9334
6511acf2
PE
9335 * xdisp.c (try_window_id): Check Emacs fixnum range before
9336 converting to 'int'.
806add1d 9337
6511acf2 9338 * window.c (window_scroll_line_based, Frecenter):
71f02bc5
PE
9339 Check that an Emacs fixnum is in range before assigning it to 'int'.
9340 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
9341 values converted from Emacs fixnums.
9342 (Frecenter): Don't wrap around a line count if it is out of 'int'
9343 range; instead, treat it as an extreme value.
9344 (Fset_window_configuration, compare_window_configurations):
9345 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
9346
6511acf2
PE
9347 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
9348 that can exceed INT_MAX. Check that EMACS_INT value is in range
9349 before assigning it to the (possibly-narrower) index.
a0efffc8
PE
9350 (match_limit): Don't assume that a fixnum can fit in 'int'.
9351
6511acf2 9352 * print.c (print_object): Use ptrdiff_t, not int, for index that can
29ebea3b
PE
9353 exceed INT_MAX.
9354
6511acf2 9355 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
3f8236f4
PE
9356 (Fvertical_motion): Don't wrap around LINES values that don't fit
9357 in 'int'. Instead, treat them as extreme values. This is good
9358 enough for windows, which can't have more than INT_MAX lines anyway.
9359
fcb901a7
LMI
93602011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
9361
0f2f6b6d
LMI
9362 * Require libxml/parser.h to avoid compilation warning.
9363
fcb901a7
LMI
9364 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
9365
9366 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
9367 since this reportedly can destroy thread storage.
9368
6e20a0d4
CY
93692011-08-30 Chong Yidong <cyd@stupidchicken.com>
9370
9371 * syntax.c (find_defun_start): Update all cache variables if
9372 exiting early (Bug#9401).
9373
148ae00e
EZ
93742011-08-30 Eli Zaretskii <eliz@gnu.org>
9375
f6cfbd8f
EZ
9376 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
9377
148ae00e
EZ
9378 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
9379 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
9380 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
9381
9382 * term.c (tty_append_glyph): New function.
9383 (produce_stretch_glyph): Static function and its prototype deleted.
9384
a66cfb1c
SM
9385 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
9386 Add prototypes.
148ae00e 9387
c4a07a4c
PE
93882011-08-29 Paul Eggert <eggert@cs.ucla.edu>
9389
9390 * image.c (parse_image_spec): Check for nonnegative, not for positive,
9391 when checking :margin (Bug#9390).
9392 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
a66cfb1c 9393 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
c4a07a4c
PE
9394 so that the name doesn't mislead. All uses changed.
9395
6bc8cd65
JB
93962011-08-28 Johan Bockgård <bojohan@gnu.org>
9397
9398 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
9399 set_tty_hooks.
9400
dca4927e
EZ
94012011-08-27 Eli Zaretskii <eliz@gnu.org>
9402
9403 * xdisp.c (move_it_to): Don't bail out early when reaching
9404 position beyond to_charpos, if we are scanning backwards.
9405 (move_it_vertically_backward): When DY == 0, make sure we get to
9406 the first character in the line after the newline.
9407
f2cad773
PE
94082011-08-27 Paul Eggert <eggert@cs.ucla.edu>
9409
9410 * ccl.c: Improve and simplify overflow checking (Bug#9196).
9411 (ccl_driver): Do not generate an out-of-range pointer.
9412 (Fccl_execute_on_string): Remove unnecessary check for
9413 integer overflow, noted by Stefan Monnier in
9414 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
9415 Remove a FIXME that didn't need fixing.
9416 Simplify the newly-introduced buffer reallocation code.
9417
0cae2cdb
JB
94182011-08-27 Juanma Barranquero <lekktu@gmail.com>
9419
9420 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
9421
5fc295a4 94222011-08-26 Paul Eggert <eggert@cs.ucla.edu>
ddff3151 9423
70c60eb2 9424 Integer and memory overflow issues (Bug#9196).
726e0ab1 9425
d31850da
PE
9426 * doc.c (get_doc_string): Rework so that
9427 get_doc_string_buffer_size is the actual buffer size, rather than
9428 being 1 less than the actual buffer size; this makes xpalloc more
9429 convenient.
9430
a69fbedb
PE
9431 * image.c (x_allocate_bitmap_record, cache_image):
9432 * xselect.c (Fx_register_dnd_atom):
9433 Simplify previous changes by using xpalloc.
9434
fe5c5d37
PE
9435 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
9436 since either will do and ptrdiff_t is convenient with xpalloc.
9437
0065d054
PE
9438 * charset.c (charset_table_size)
9439 (struct charset_sort_data.priority): Now ptrdiff_t.
9440 (charset_compare): Don't overflow if priorities differ greatly.
9441 (Fsort_charsets): Don't assume list length fits in int.
9442 Check for size-calculation overflow when allocating sort data.
9443 (syms_of_charset): Allocate an initial charset table that is
9444 just under 64 KiB, to avoid problems with glibc malloc and mmap.
9445
9446 * cmds.c (internal_self_insert): Check for size-calculation overflow.
9447
9448 * composite.h (struct composition.glyph_len): Now int, not unsigned.
9449 The actual value is always <= INT_MAX, and leaving it unsigned made
9450 overflow checking harder.
9451
9452 * dispextern.h (struct glyph_matrix.rows_allocated)
9453 (struct face_cache.size): Now ptrdiff_t, for convenience in use
9454 with xpalloc. The values are still always <= INT_MAX.
9455
9456 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
9457
9458 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
9459 (SAFE_NALLOCA): New macro.
9460
9461 * region-cache.c (struct boundary.pos, find_cache_boundary)
9462 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
9463 (set_cache_region, invalidate_region_cache)
9464 (revalidate_region_cache, know_region_cache, region_cache_forward)
9465 (region_cache_backward, pp_cache):
9466 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
9467 so that ptrdiff_t * can be passed to xpalloc.
9468 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
9469 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
9470 (pp_cache): Don't assume cache_len fits in int.
9471 * region-cache.h: Adjust extern decls to match.
9472
9473 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
9474 EMACS_INT, since either will do, for xpalloc.
9475
9476 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
9477 (xnmalloc, xnrealloc, xpalloc): New functions.
9478
726e0ab1
PE
9479 * bidi.c (bidi_shelve_header_size): New constant.
9480 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
9481 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
9482
51f30bc5 9483 * bidi.c (bidi_cache_shrink):
726e0ab1
PE
9484 * buffer.c (overlays_at, overlays_in, record_overlay_string)
9485 (overlay_strings):
9486 Don't update size of array until after memory allocation succeeds,
9487 because xmalloc/xrealloc may not return.
0065d054
PE
9488 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
9489 now that we have proper integer overflow checking.
9490 (record_overlay_string, overlay_strings): Catch overflows when
9491 calculating size of overlay_str_buf.
726e0ab1 9492
0065d054
PE
9493 * callproc.c (Fcall_process): Check for size overflow when
9494 calculating size of args2.
9495 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
9496 Normally we prefer signed values, but sticking with ptrdiff_t would
9497 require adding more-complicated checks.
726e0ab1
PE
9498
9499 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
9500 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
9501 Redo buffer-overflow calculations to avoid integer overflow.
0065d054 9502 Add a FIXME comment where memory seems to be over-allocated.
726e0ab1
PE
9503
9504 * character.c (Fstring): Check for size-calculation overflow.
9505
9506 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
9507 unnecessary integer overflow. Check for size overflow.
9508 (encode_coding_object): Don't update size until xmalloc succeeds.
9509
9510 * composite.c (get_composition_id): Check for overflow in glyph
9511 length calculations.
9512
9513 Integer and memory overflow fixes for display code.
9514 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
9515 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
9516 (scrolling_window): Check for overflow in size calculations.
9517 (line_draw_cost, realloc_glyph_pool, add_row_entry):
9518 Don't assume glyph table len fits in int.
9519 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
9520 (row_table_size): Now ptrdiff_t, not int.
9521 (scrolling_window): Avoid overflow in size calculations.
9522 Don't update size until allocation succeeds.
9523 * fns.c (concat): Check for overflow in size calculations.
9524 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
9525 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
9526 (NEXT_ALMOST_PRIME_LIMIT): New constant.
9527
9528 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
9529 (get_doc_string): Check for size calculation overflow.
9530 Don't update size until allocation succeeds.
9531 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
9532 EMACS_INT, where ptrdiff_t will do.
9533 (Fsubstitute_command_keys): Check for string overflow.
9534
9535 * editfns.c (set_time_zone_rule): Don't assume environment length
9536 fits in int.
9537 (message_length): Now ptrdiff_t, not int.
9538 (Fmessage_box): Don't update size until allocation succeeds.
9539 Don't assume message length fits in int.
9540 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
9541
0065d054
PE
9542 * emacs.c (main): Do not reallocate argv, since there is a null at
9543 the end that can be overwritten, and this way there's no need to
9544 worry about size-calculation overflow.
9545 (sort_args): Check for size-calculation overflow.
726e0ab1
PE
9546
9547 * eval.c (init_eval_once, grow_specpdl): Don't update size until
9548 alloc succeeds.
9549 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
9550
9551 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
9552 (x_set_scroll_bar_width, x_figure_window_size):
9553 Check for integer overflow.
9554 (x_set_alpha): Do not assume XINT fits in int.
9555
9556 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
9557 This is for the members text_lines, text_cols, total_lines, total_cols,
9558 where the system imposes an 'int' limit.
9559
9560 * fringe.c (Fdefine_fringe_bitmap):
9561 Don't update size until alloc works.
9562
9563 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
9564 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
9565
9566 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
9567 Check for size-calculation overflow.
9568 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
9569 do, as we prefer signed integers.
9570 (id_to_widget.max_size, id_to_widget.used)
9571 (xg_store_widget_in_map, xg_remove_widget_from_map)
9572 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
9573 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
9574 Use and return ptrdiff_t, not int.
9575 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
9576 * gtkutil.h: Change prototypes to match the above.
9577
9578 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
9579 are duplicate now that they've been promoted to lisp.h.
9580 (x_allocate_bitmap_record, x_alloc_image_color)
9581 (make_image_cache, cache_image, xpm_load):
9582 Don't update size until alloc is done.
9583 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
9584 (x_detect_edges):
3256efce 9585 Check for size calculation overflow.
726e0ab1
PE
9586 (ct_colors_allocated_max): New constant.
9587 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
9588 overflow.
3256efce 9589
726e0ab1
PE
9590 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
9591 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
9592 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
9593 Use ptrdiff_t, not int, to count maps.
9594 (read_char_minibuf_menu_prompt): Check for overflow in size
a66cfb1c
SM
9595 calculations. Don't update size until allocation succeeds.
9596 Redo calculations to avoid overflow.
726e0ab1
PE
9597 * keyboard.h: Change prototypes to match the above.
9598
9599 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
9600 to count maps.
9601 (current_minor_maps): Check for size calculation overflow.
9602 * keymap.h: Change prototypes to match the above.
9603
9604 * lread.c (read1, init_obarray): Don't update size until alloc done.
9605
9606 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
9607 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
9608
726e0ab1
PE
9609 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
9610 Now ptrdiff_t, not int.
9611 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
9612 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
9613
9614 * process.c (Fnetwork_interface_list): Check for overflow
9615 in size calculation.
9616
9617 * region-cache.c (move_cache_gap): Check for size calculation overflow.
9618
9619 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
9620 overflow. Don't bother calling xmalloc when xrealloc will do.
9621
9622 * search.c (Freplace_match): Check for size calculation overflow.
9623 (Fset_match_data): Don't assume list lengths fit in 'int'.
9624
9625 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
9626 for command line length. Do not attempt to address one before the
9627 beginning of an array, as that's not portable.
9628
9629 * term.c (max_frame_lines): Remove; unused.
9630 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
9631 not int.
9632 (encode_terminal_code, calculate_costs): Check for size
9633 calculation overflow.
9634 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
9635 table lengths and related sizes. Don't update size until alloc
9636 done. Redo calculations to avoid overflow.
9637 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
9638
9639 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
9640 subtracting pointers.
9641 (gobble_line): Check for overflow more carefully. Don't update size
9642 until alloc done.
9643
9644 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
9645 Don't update size until alloc done.
9646 Redo size calculations to avoid overflow.
9647 Check for size calculation overflow.
0065d054 9648 (main) [DEBUG]: Fix typo in invoking tparam1.
726e0ab1
PE
9649
9650 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
9651 Use ptrdiff_t, not int, for sizes.
9652 (store_mode_line_noprop_char): Don't update size until alloc done.
9653
0065d054
PE
9654 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
9655 Use ptrdiff_t, not int, for sizes.
9656 (Finternal_make_lisp_face, cache_face):
9657 Check for size calculation overflow.
9658 (cache_face): Treat size calculation overflows as if they were
9659 memory exhaustion (the usual treatment), rather than aborting.
726e0ab1
PE
9660
9661 * xfns.c (x_encode_text, x_set_name_internal)
9662 (Fx_change_window_property): Use ptrdiff_t, not int, to count
9663 sizes, since they can exceed INT_MAX in size. Check for size
9664 calculation overflow.
9665
0065d054
PE
9666 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
9667 (xg_select): Check for size calculation overflow.
726e0ab1
PE
9668 Don't update size until alloc done.
9669
0065d054 9670 * xrdb.c (get_environ_db): Don't assume path length fits in int,
726e0ab1 9671 as sprintf is limited to int lengths.
1d526e2f 9672
252c5ee1
PE
9673 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
9674 (X_LONG_MIN): New macros.
864d7ce7
PE
9675 Use them to make the following changes clearer.
9676 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
9677 This change doesn't affect the value now, but it may help remind
9678 future maintainers not to raise the value too much later.
9679 (SELECTION_QUANTUM): Remove, replacing with ...
9680 (selection_quantum): ... new function, which avoids overflow.
9681 All uses changed.
9682 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
9683 assumption that selection length fits in 'int'.
9684 (x_reply_selection_request, x_handle_selection_request)
9685 (x_get_window_property, receive_incremental_selection)
9686 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
9687 (lisp_data_to_selection_data, clean_local_selection_data):
9688 Use ptrdiff_t, not int, to record length of selection.
9689 (x_reply_selection_request, x_get_window_property)
9690 (receive_incremental_selection, x_property_data_to_lisp):
9691 Redo calculations to avoid overflow.
9692 (x_reply_selection_request): When sending hint, ceiling it at
252c5ee1 9693 X_LONG_MAX rather than relying on wraparound overflow to send
864d7ce7
PE
9694 something.
9695 (x_get_window_property, receive_incremental_selection)
9696 (lisp_data_to_selection_data, x_property_data_to_lisp):
9697 Check for size-calculation overflow.
9698 (x_get_window_property, receive_incremental_selection)
9699 (lisp_data_to_selection_data, Fx_register_dnd_atom):
9700 Don't store size until memory allocation succeeds.
9701 (x_get_window_property): Plug memory leak on memory exhaustion.
9702 Don't double-block input; malloc is safe here. Don't assume 2**34
9703 - 4 fits in unsigned long. Add an xassert to check
9704 XGetWindowProperty overflow. Be more careful about overflow
9705 calculations, and distinguish size from memory overflow better.
9706 (receive_incremental_selection): When tracing, don't assume
9707 unsigned int is less than INT_MAX.
9708 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
9709 harmful) conversions of unsigned short to int.
9710 (lisp_data_to_selection_data): Don't assume that integers
9711 in the range -65535 through -1 fit in an X unsigned short.
9712 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
9713 result parameters unless successful. Rely on cons_to_unsigned
9714 to report problems with elements; the old code wasn't right anyway.
9715 (x_check_property_data): Check for int overflow; we cannot use
9716 a wider type due to X limits.
9717 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
9718
726e0ab1 9719 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
34db673b 9720
0065d054
PE
9721 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
9722 (x_term_init): Check for size calculation overflow.
726e0ab1
PE
9723 (x_color_cells): Don't store size until memory allocation succeeds.
9724 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
0065d054 9725 Don't assume alloca size is less than MAX_ALLOCA.
726e0ab1
PE
9726 (x_term_init): Don't assume length fits in int (sprintf is limited
9727 to int size).
bc18e09d 9728
ebfa62c0
PE
9729 Use ptrdiff_t for composition IDs.
9730 * character.c (lisp_string_width):
9731 * composite.c (composition_table_size, n_compositions)
9732 (get_composition_id, composition_gstring_from_id):
9733 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
9734 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
9735 * window.c (Frecenter):
9736 Use ptrdiff_t, not int, for composition IDs.
9737 * composite.c (get_composition_id): Check for integer overflow.
9738 * composite.h: Adjust prototypes to match the above changes.
9739
d3411f89
PE
9740 Use ptrdiff_t for hash table indexes.
9741 * category.c (hash_get_category_set):
9742 * ccl.c (ccl_driver):
9743 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
9744 * coding.c (coding_system_charset_list, detect_coding_system):
9745 * coding.h (struct coding_system.id):
9746 * composite.c (get_composition_id, gstring_lookup_cache):
9747 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
9748 * image.c (xpm_get_color_table_h):
9749 * lisp.h (hash_lookup, hash_put):
9750 * minibuf.c (Ftest_completion):
9751 Use ptrdiff_t for hash table indexes, not int (which is too
9752 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
9753 32-bit --with-wide-int hosts).
9754
e097a6fa
PE
9755 * charset.c (Fdefine_charset_internal): Check for integer overflow.
9756 Add a FIXME comment about memory leaks.
9757 (syms_of_charset): Don't assume xmalloc returns.
9758
5637687f
PE
9759 Don't assume that stated character widths fit in int.
9760 * character.c (Fchar_width, c_string_width, lisp_string_width):
9761 * character.h (CHAR_WIDTH):
9762 * indent.c (MULTIBYTE_BYTES_WIDTH):
9763 Use sanitize_char_width to avoid undefined and/or bad behavior
9764 with outlandish widths.
a66cfb1c 9765 * character.h (sanitize_tab_width): Rename from sanitize_width,
5637687f
PE
9766 now that we have two such functions. All uses changed.
9767 (sanitize_char_width): New inline function.
9768
a2271ba2
PE
9769 Don't assume that tab-width fits in int.
9770 * character.h (sanitize_width): New inline function.
9771 (SANE_TAB_WIDTH): New macro.
9772 (ASCII_CHAR_WIDTH): Use it.
9773 * indent.c (sane_tab_width): Remove. All uses replaced by
9774 SANE_TAB_WIDTH (current_buffer).
9775 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
9776
18c52557
PE
9777 * fileio.c: Integer overflow issues with file modes.
9778 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
9779
caeeedc1
PE
9780 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
9781 Remove unreachable code.
9782 (read_hex, load_charset_map_from_file): Check for integer overflow.
9783
6df6ae42 9784 * xterm.c: Don't go over XClientMessageEvent limit.
50849c52
PE
9785 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
9786 (x_send_scroll_bar_event): Likewise. Check that the size does not
9787 exceed limits imposed by XClientMessageEvent, as well as the usual
9788 ptrdiff_t and size_t limits.
9789
b13995db
PE
9790 * keyboard.c: Overflow, signedness and related fixes.
9791 (make_lispy_movement): Use same integer type in forward decl
9792 that is used in the definition.
9793 (read_key_sequence, keyremap_step):
9794 Change bufsize argument back to int, undoing my 2011-03-30 change.
9795 We prefer signed types, and int is wide enough here.
9796 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
9797 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
9798 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
9799 length, not size_t. Use ptrdiff_t for index, not int.
9800 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
9801 possibility of integer overflow.
9802
13464394
PE
9803 Overflow, signedness and related fixes for images.
9804
9805 * dispextern.h (struct it.stack[0].u.image.image_id)
9806 (struct_it.image_id, struct image.id, struct image_cache.size)
9807 (struct image_cache.used, struct image_cache.ref_count):
9808 * gtkutil.c (update_frame_tool_bar):
9809 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
9810 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
9811 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
9812 * nsmenu.m (update_frame_tool_bar):
9813 * xdisp.c (calc_pixel_width_or_height):
9814 * xfns.c (image_cache_refcount):
9815 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
9816 on typical 64-bit hosts.
9817
9818 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
9819 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
9820 Omit unnecessary casts to int.
9821 (parse_image_spec): Check that integers fall into 'int' range
9822 when the callers expect that.
9823 (image_ascent): Redo ascent calculation to avoid int overflow.
9824 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
9825 (lookup_image): Remove unnecessary tests.
9826 (xbm_image_p): Locals are now of int, not EMACS_INT,
9827 since parse_image_check makes sure they fit into int.
9828 (png_load, gif_load, svg_load_image):
9829 Prefer int to unsigned where either will do.
9830 (tiff_handler): New function, combining the cores of the
a66cfb1c
SM
9831 old tiff_error_handler and tiff_warning_handler.
9832 This function is rewritten to use vsnprintf and thereby avoid
13464394
PE
9833 stack buffer overflows. It uses only the features of vsnprintf
9834 that are common to both POSIX and native Microsoft.
9835 (tiff_error_handler, tiff_warning_handler): Use it.
9836 (tiff_load, gif_load, imagemagick_load_image):
9837 Don't assume :index value fits in 'int'.
9838 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
9839 (imagemagick_load_image): Check that crop parameters fit into
9840 the integer types that MagickCropImage accepts. Don't assume
9841 Vimagemagick_render_type has a nonnegative value. Don't assume
9842 size_t fits in 'long'.
9843 (gs_load): Use printmax_t to print the widest integers possible.
9844 Check for integer overflow when computing image height and width.
9845
c11821d4
EZ
98462011-08-26 Eli Zaretskii <eliz@gnu.org>
9847
9848 * xdisp.c (redisplay_window): Don't force window start if point
9849 will be invisible in the resulting window. (Bug#9324)
9850
0c95fcf7
EZ
98512011-08-25 Eli Zaretskii <eliz@gnu.org>
9852
9853 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
9854 the display spec is of the form `(space ...)'.
9855 (handle_display_spec): Return the value returned by
9856 handle_single_display_spec, not just 1 or zero.
9857 (handle_single_display_spec): If the display spec is of the form
9858 `(space ...)', and specifies display in the text area, return 2
9859 rather than 1.
fee65a97 9860 (try_cursor_movement): Check for the need to scroll more
a66cfb1c
SM
9861 accurately, and prefer exact match for point under bidi.
9862 Don't advance `row' beyond the last row of the window.
0c95fcf7
EZ
9863
9864 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
9865 into disp_prop; all users changed.
9866
9867 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
9868 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
9869 for the text covered by the display property.
9870
e4ed06f1
CY
98712011-08-25 Chong Yidong <cyd@stupidchicken.com>
9872
9873 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
9874 Change return value to nil.
9875 (Frecord_buffer): Delete unused function.
9876
f67cdd7f
EZ
98772011-08-24 Eli Zaretskii <eliz@gnu.org>
9878
5980d4c6
EZ
9879 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
9880 buffers, return left-to-right.
8610fe8b
EZ
9881 (set_cursor_from_row): Consider candidate row a win if its glyph
9882 represents a newline and point is on that newline. Fixes cursor
9883 positioning on the newline at EOL of R2L text within L2R
9884 paragraph, and vice versa.
9885 (try_cursor_movement): Check continued rows, in addition to
9886 continuation rows. Fixes unwarranted scroll when point enters a
9887 continued line of R2L text within an L2R paragraph, or vice versa.
9888 (cursor_row_p): Consider the case of point being equal to
9889 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
9890 from the end of a short line to the beginning of a continued line
9891 of R2L text within L2R paragraph.
9892 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
9893 composed characters.
5980d4c6 9894
f67cdd7f
EZ
9895 * bidi.c (bidi_check_type): Use xassert.
9896 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
9897 members.
9898
bca633fb
EZ
98992011-08-23 Eli Zaretskii <eliz@gnu.org>
9900
9901 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
9902 a character.
9903
4a5885a7
CY
99042011-08-23 Chong Yidong <cyd@stupidchicken.com>
9905
9906 * nsfont.m (ns_otf_to_script): Fix typo.
9907
0902a04e
KH
99082011-08-22 Kenichi Handa <handa@m17n.org>
9909
9910 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
9911 extra slot even if the purpose is char-code-property-table.
9912
1a2e6670
EZ
99132011-08-23 Eli Zaretskii <eliz@gnu.org>
9914
8ddde651
EZ
9915 * xdisp.c (redisplay_window): When computing centering_position,
9916 account for the height of the header line. (Bug#8874)
9917
425cc014
EZ
9918 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
9919 instead of CHAR_TO_BYTE. Fixes a crash when a completion
9920 candidate is selected by the mouse, and that candidate has a
9921 composed character under the mouse.
9922
1a2e6670
EZ
9923 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
9924 coordinates reported by pos-visible-in-window-p for a composed
9925 character in column zero.
9926
8b76d6f8
SM
99272011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
9928
9929 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
9930
dac347dd
EZ
99312011-08-22 Eli Zaretskii <eliz@gnu.org>
9932
9933 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
9934 consider it a hit if to_charpos is anywhere in the range of the
9935 composed buffer positions.
9936
e013fb34
CY
99372011-08-22 Chong Yidong <cyd@stupidchicken.com>
9938
9939 * image.c (gif_load): Don't assume that each subimage has the same
9940 dimensions as the base image. Handle disposal method that is
9941 "undefined" by the gif spec (Bug#9335).
9942
bd1ba3e8
CY
99432011-08-20 Chong Yidong <cyd@stupidchicken.com>
9944
9945 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
024a2d76 9946 (Fcondition_case): Document `debug' symbol in error handler.
bd1ba3e8 9947
54a1215b
EZ
99482011-08-19 Eli Zaretskii <eliz@gnu.org>
9949
823564e5
EZ
9950 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
9951 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
9952 from an Org mode buffer to a Speedbar frame.
9953
54a1215b
EZ
9954 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
9955 a composition, take its buffer position from IT->cmp_it.charpos.
9956 Fixes cursor positioning at the beginning of a line that begins
9957 with a composed character.
9958
9778ebcc
EZ
99592011-08-18 Eli Zaretskii <eliz@gnu.org>
9960
0be6ee06
EZ
9961 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
9962 character bidirectional type, use STRONG_L instead. Fixes crashes
9963 in a buffer produced by `describe-categories'.
9964
9778ebcc
EZ
9965 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
9966 members before the level stack, so they would be saved and
9967 restored when copying iterator state. Fixes incorrect reordering
9968 around TABs covered by display properties.
9969
156bffbe
AS
99702011-08-18 Andreas Schwab <schwab@linux-m68k.org>
9971
6b02f655 9972 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
156bffbe 9973
72ad093b
CY
99742011-08-17 Chong Yidong <cyd@stupidchicken.com>
9975
9976 * eval.c (internal_condition_case, internal_condition_case_1)
8b76d6f8
SM
9977 (internal_condition_case_2, internal_condition_case_n):
9978 Remove unnecessary aborts (Bug#9081).
72ad093b 9979
35774242
EZ
99802011-08-17 Eli Zaretskii <eliz@gnu.org>
9981
9982 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
9983 has no `load' handler, try opening the file locally. (Bug#9311)
9984
db76dd85
KB
99852011-08-16 Ken Brown <kbrown@cornell.edu>
9986
9987 * gmalloc.c: Expand comment.
9988
b215eee5
EZ
99892011-08-16 Eli Zaretskii <eliz@gnu.org>
9990
9991 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
9992 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
9993
a4579d33
KB
99942011-08-16 Ken Brown <kbrown@cornell.edu>
9995
9996 Fix memory allocation problems in Cygwin build (Bug#9273).
9997
9998 * unexcw.c ( __malloc_initialized): Declare external variable.
9999 (fixup_executable): Force the dumped emacs to reinitialize malloc.
10000
8b76d6f8
SM
10001 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
10002 New variables.
a4579d33
KB
10003 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
10004 dumped emacs.
10005 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
10006 in the static heap.
10007 [CYGWIN] (special_realloc): New function.
10008 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
10009 requests to realloc storage in the static heap.
10010
3ebec551
PE
100112011-08-15 Paul Eggert <eggert@cs.ucla.edu>
10012
10013 * bidi.c (bidi_initialize): Remove unused local.
10014
9fd8be00
EZ
100152011-08-15 Eli Zaretskii <eliz@gnu.org>
10016
6b02f655
SM
10017 * bidimirror.h:
10018 * biditype.h: Remove file.
10019 * makefile.w32-in ($(BLD)/bidi.$(O)):
10020 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
474a8465
EZ
10021
10022 * dispextern.h: Fix a typo in the comment to bidi_type_t.
10023
10024 * chartab.c: Improve commentary for the uniprop_table API.
10025
32413314
EZ
10026 * bidi.c (bidi_paragraph_init): Support zero value of
10027 bidi_ignore_explicit_marks_for_paragraph_level.
474a8465
EZ
10028 (bidi_initialize): Use uniprop_table instead of including
10029 biditype.h and bidimirror.h.
32413314 10030
9fd8be00
EZ
10031 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
10032 coordinates of the iterator when restoring from ppos_it.
10033 (Bug#9296)
10034
5cf2b69b
KH
100352011-08-14 Kenichi Handa <handa@m17n.org>
10036
10037 * process.c (create_process): Call setup_process_coding_systems
72ad093b 10038 after the pid of the process is set to -1 (Bug#8162).
5cf2b69b 10039
daf17d00
EZ
100402011-08-14 Eli Zaretskii <eliz@gnu.org>
10041
10042 * xdisp.c (move_it_in_display_line_to): Don't invoke
10043 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
10044 ppos_it. Fixes vertical cursor motion when line beginning is
10045 covered by an image. (Bug#9296)
10046
08e3161a
JD
100472011-08-14 Jan Djärv <jan.h.d@swipnet.se>
10048
10049 * nsterm.h (ns_run_ascript): Declare.
10050 (NSAPP_DATA2_RUNASSCRIPT): Define.
10051
10052 * nsfns.m (as_script, as_result, as_status): New static variables.
10053 (ns_run_ascript): New function.
5e617bc2 10054 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
08e3161a
JD
10055 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
10056 the event loop. Get status from as_status (Bug#7276).
10057
10058 * nsterm.m (sendEvent): If event is NSApplicationDefined and
10059 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
10060 the event loop (Bug#7276).
10061
a3720aa2
AS
100622011-08-14 Andreas Schwab <schwab@linux-m68k.org>
10063
10064 * gnutls.c (QCgnutls_bootprop_priority)
10065 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
10066 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
10067 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
10068 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
10069 (QCgnutls_bootprop_verify_hostname_error)
10070 (QCgnutls_bootprop_callbacks_verify): Rename from
10071 Qgnutls_bootprop_..., all uses changed.
10072
10073 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
10074 uses changed.
10075
0a0d27fb
PE
100762011-08-14 Paul Eggert <eggert@cs.ucla.edu>
10077
19d5c50c
PE
10078 * xfaces.c (Qframe_set_background_mode): Now static.
10079 * dispextern.h (Qframe_set_background_mode): Remove decl.
10080
0a0d27fb
PE
10081 * process.c (Fnetwork_interface_info): Declare local only if needed.
10082
377538cb
JD
100832011-08-13 Jan Djärv <jan.h.d@swipnet.se>
10084
10085 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
10086 (Fnetwork_interface_list): Allocate in increments of bytes instead
10087 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
10088 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
10089 sockaddr.
10090 (struct ifflag_def): notrailers is smart on OSX.
10091 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
10092 Get hardware address with getifaddrs if available.
10093
08fff70c
EZ
100942011-08-12 Eli Zaretskii <eliz@gnu.org>
10095
10096 * xdisp.c (iterate_out_of_display_property): xassert that
10097 IT->position is set to within IT->object's boundaries. Break from
10098 the loop as soon as EOB is reached; avoids infloops in redisplay
8b76d6f8
SM
10099 when IT->position is set up wrongly due to some bug.
10100 Set IT->current to match the bidi iterator unconditionally.
08fff70c
EZ
10101 (push_display_prop): Allow GET_FROM_STRING as IT->method on
10102 entry. Force push_it to save on the stack the current
10103 buffer/string position, to be restored by pop_it. Fix flags in
10104 the iterator structure wrt the object coming from a display
10105 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
10106 properties. (Bug#9284)
10107
7be1c708 101082011-08-09 Andreas Schwab <schwab@linux-m68k.org>
aac0c6e3 10109
7be1c708
CY
10110 * fontset.c (fontset_get_font_group): Add proper type checks.
10111 (Bug#9172)
aac0c6e3 10112
7be1c708 101132011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
aac0c6e3 10114
7be1c708
CY
10115 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
10116 and LC_VERSION_MIN_MACOSX.
10117 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
10118 (dump_it) [LC_FUNCTION_STARTS]: Use it.
aac0c6e3 10119
97bb72a6
EZ
101202011-08-08 Eli Zaretskii <eliz@gnu.org>
10121
10122 * xdisp.c (forward_to_next_line_start): Allow to use the
8b76d6f8
SM
10123 no-display-properties-and-no-overlays under bidi display.
10124 Set disp_pos in the bidi iterator to avoid searches for display
757664a4 10125 properties and overlays.
97bb72a6 10126
d5617611
CY
101272011-08-08 Chong Yidong <cyd@stupidchicken.com>
10128
37e11a63
CY
10129 * editfns.c (Fset_time_zone_rule): Document relationship with the
10130 setenv function.
10131
d5617611
CY
10132 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
10133 the font entity extracted from the cache (Bug#8109).
10134
58872834
CY
101352011-08-07 Chong Yidong <cyd@stupidchicken.com>
10136
10137 * composite.c (autocmp_chars): Don't reset point. That is done by
10138 restore_point_unwind (Bug#5984).
10139
75bfc667
JL
101402011-08-07 Juri Linkov <juri@jurta.org>
10141
10142 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
10143 to show the arg `TIME' instead of `TIMEVAL'.
10144
d1410150
EZ
101452011-08-06 Eli Zaretskii <eliz@gnu.org>
10146
10147 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
10148 display property strides EOL and includes a newline, as in
10149 longlines-mode. (Bug#9254)
75b771e4
EZ
10150 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
10151 word-wrap under bidirectional display. (Bug#9224)
d1410150
EZ
10152
10153 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
10154 is non-zero, even if the data buffer is NULL. Fixes a crash in
10155 vertical-motion with longlines-mode. (Bug#9254)
10156
35928349
EZ
101572011-08-05 Eli Zaretskii <eliz@gnu.org>
10158
ec7cc85b
EZ
10159 * bidi.c <bidi_cache_total_alloc>: Now static.
10160 (bidi_initialize): Initialize bidi_cache_total_alloc.
10161
8b76d6f8 10162 * xdisp.c (display_line): Release buffer allocated for shelved bidi
35928349
EZ
10163 cache. (Bug#9221)
10164
10165 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
10166 amount allocated this far in `bidi_cache_total_alloc'.
10167 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
10168 non-zero, only free the data buffer without restoring the cache
10169 contents. All callers changed.
10170
10171 * dispextern.h (bidi_unshelve_cache): Update prototype.
10172
10173 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
10174 (move_it_in_display_line, move_it_to)
10175 (move_it_vertically_backward, move_it_by_lines): Replace the call
10176 to xfree to an equivalent call to bidi_unshelve_cache.
10177 (move_it_in_display_line_to): Fix logic of returning
412b6358 10178 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
35928349 10179
e2e2423b
EZ
101802011-08-05 Eli Zaretskii <eliz@gnu.org>
10181
10182 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
10183 came from a string character with a `cursor' property. (Bug#9229)
10184
ae9e757a
JD
101852011-08-04 Jan Djärv <jan.h.d@swipnet.se>
10186
10187 * Makefile.in (LIB_PTHREAD): New variable.
10188 (LIBES): Add LIB_PTHREAD (Bug#9216).
10189
10190 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
10191 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
10192
213bd7f2
AS
101932011-08-04 Andreas Schwab <schwab@linux-m68k.org>
10194
6b02f655 10195 * regex.c (re_iswctype): Remove some redundant boolean conversions.
213bd7f2 10196
99aaf75f
JD
101972011-08-04 Jan Djärv <jan.h.d@swipnet.se>
10198
10199 * xterm.c (x_find_topmost_parent): New function.
10200 (x_set_frame_alpha): Find topmost parent window with
10201 x_find_topmost_parent and set the property there also (bug#9181).
10202 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
10203
c74e9d86
PE
102042011-08-04 Paul Eggert <eggert@cs.ucla.edu>
10205
10206 * callproc.c (Fcall_process): Avoid vfork clobbering
10207 the local vars buffer, coding_systems, current_dir.
10208
640c8776
SM
102092011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
10210
10211 * keymap.c (Fmake_composed_keymap): Move to subr.el.
10212
f26d0e4c
PE
102132011-08-03 Paul Eggert <eggert@cs.ucla.edu>
10214
8a10d76c
PE
10215 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
10216 so that it is not optimized away.
10217
f26d0e4c
PE
10218 * xdisp.c (compute_display_string_pos): Remove unused local.
10219
55439c61
EZ
102202011-08-02 Eli Zaretskii <eliz@gnu.org>
10221
10222 Fix slow cursor motion and scrolling in large buffers with
10223 selective display, like Org Mode buffers. (Bug#9218)
10224
10225 * dispextern.h (struct bidi_it): New member disp_prop_p.
10226
10227 * xdisp.c: Remove one-slot cache of display string positions.
10228 (compute_display_string_pos): Accept an additional argument
5e617bc2 10229 DISP_PROP_P; callers changed. Scan at most 5K characters forward
55439c61
EZ
10230 for a display string or property. If found, set DISP_PROP_P
10231 non-zero.
10232
10233 * bidi.c (bidi_fetch_char): Accept an additional argument
640c8776
SM
10234 DISP_PROP_P, and pass it to compute_display_string_pos.
10235 Only handle text covered by a display string if DISP_PROP_P is returned
55439c61
EZ
10236 non-zero. All callers of bidi_fetch_char changed.
10237
fb33fa43
SM
102382011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
10239
10240 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
10241
b099e063
DM
102422010-12-03 Don March <don@ohspite.net>
10243
10244 * keymap.c (Fdefine_key): Fix non-prefix key error message when
10245 last character M-[char] is translated to ESC [char] (bug#7541).
10246
5cc7f7af
KH
102472011-08-02 Kenichi Handa <handa@m17n.org>
10248
d0fffa3f 10249 * lisp.h (uniprop_table): Extern it.
5cc7f7af
KH
10250
10251 * chartab.c (uniprop_table): Make it non-static.
10252
525d5e6e
EZ
102532011-08-01 Eli Zaretskii <eliz@gnu.org>
10254
10255 * xdisp.c (forward_to_next_line_start): Accept additional argument
10256 BIDI_IT_PREV, and store into it the state of the bidi iterator had
10257 on the newline.
10258 (reseat_at_next_visible_line_start): Use the bidi iterator state
10259 returned by forward_to_next_line_start to restore the state of
10260 it->bidi_it after backing up to previous newline. (Bug#9212)
10261
31011111
AS
102622011-07-30 Andreas Schwab <schwab@linux-m68k.org>
10263
10264 * regex.c (re_comp): Protoize.
10265 (re_exec): Fix return type.
10266 (regexec): Fix type of `ret'. (Bug#9203)
10267
476371c4
PE
102682011-07-28 Paul Eggert <eggert@cs.ucla.edu>
10269
e5d76069
PE
10270 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
10271 This is needed if max-image-size is a floating-point number.
10272
9a79b20c
AS
102732011-07-28 Andreas Schwab <schwab@linux-m68k.org>
10274
10275 * print.c (print_object): Print empty symbol as ##.
10276
10277 * lread.c (read1): Read ## as empty symbol.
10278
d8c2fa78
AA
102792011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
10280
10281 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
10282 setting frame foreground color (Bug#9175).
10283 (x_set_background_color): Likewise.
10284
ffe57a7a
AA
10285 * nsmenu.m (-setText): Size tooltip dimensions precisely to
10286 contents (Bug#9176).
10287 (EmacsTooltip -init): Remove bezels and add shadows to
10288 tooltip windows.
10289
bf3492a5
AA
10290 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
10291 or scroll bar (Bug#8470).
10292
d55e9c53
AA
10293 * nsfont.m (nsfont_open): Remove assignment to voffset and
10294 unnecessary vars hshink, expand, hd, full_height, min_height.
10295 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
10296
10297 * nsterm.h (nsfont_info): Remove voffset field.
10298
d8c2fa78 102992011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
4843aac3
AA
10300
10301 Implement strike-through and overline on NextStep (Bug#8863).
10302
10303 * nsfont.m (nsfont_open): Use underline position provided by font,
10304 instead of hard-coded value of 2.
10305 (nsfont_draw): Call ns_draw_text_decoration instead.
10306
10307 * nsterm.h: Add declaration for ns_draw_text_decoration.
10308
10309 * nsterm.m (ns_draw_text_decoration): New function for drawing
10310 underline, overline, and strike-through.
10311 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
10312 ns_draw_text_decoration. Change treatment of cursor drawing to
8d5ed899 10313 accommodate underlining, etc.
4843aac3 10314
4cc60b9b
EZ
103152011-07-28 Eli Zaretskii <eliz@gnu.org>
10316
bc7ece87
EZ
10317 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
10318 default.
4cc60b9b 10319
476371c4
PE
103202011-07-28 Paul Eggert <eggert@cs.ucla.edu>
10321
66606eea
PE
10322 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
10323 Without this fix, if a signal arrives just after memory fills up,
10324 'malloc' might be invoked reentrantly.
10325
476371c4
PE
10326 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
10327 In other words, assume that every image size is allowed, on non-X
10328 hosts. This assumption is probably wrong, but it lets Emacs compile.
10329
f3fcc40d
AS
103302011-07-28 Andreas Schwab <schwab@linux-m68k.org>
10331
10332 * regex.c (re_iswctype): Convert return values to boolean.
10333
350c992f
EZ
103342011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
10335
10336 * xdisp.c (compute_display_string_pos): Don't use cached display
10337 string position if the buffer had its restriction changed.
10338 (Bug#9184)
10339
5266b4bb
PE
103402011-07-28 Paul Eggert <eggert@cs.ucla.edu>
10341
10342 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
10343
2573a837 103442011-07-28 Paul Eggert <eggert@cs.ucla.edu>
ca4aa935 10345
41f55ccd 10346 Integer signedness and overflow and related fixes. (Bug#9079)
cf950e6b 10347
39e378da
PE
10348 * bidi.c: Integer size and overflow fixes.
10349 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
10350 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
10351 (bidi_cache_find_level_change, bidi_cache_ensure_space)
10352 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
10353 (bidi_find_other_level_edge):
10354 Use ptrdiff_t instead of EMACS_INT where either will do.
10355 This works better on 32-bit hosts configured --with-wide-int.
10356 (bidi_cache_ensure_space): Check for size-calculation overflow.
10357 Use % rather than repeated addition, for better worst-case speed.
10358 Don't set bidi_cache_size until after xrealloc returns, because it
10359 might not return.
10360 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
f0eb61e9
PE
10361 (bidi_cache_ensure_space): Also check that the bidi cache size
10362 does not exceed that of the largest Lisp string or buffer. See Eli
10363 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
39e378da 10364
5e927815
PE
10365 * alloc.c (__malloc_size_t): Remove.
10366 All uses replaced by size_t. See Andreas Schwab's note
10367 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
10368
ca4aa935
PE
10369 * image.c: Improve checking for integer overflow.
10370 (check_image_size): Assume that f is nonnull, since
10371 it is always nonnull in practice. This is one less thing to
10372 worry about when checking for integer overflow later.
10373 (x_check_image_size): New function, which checks for integer
10374 overflow issues inside X.
10375 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
10376 This removes the need for a memory_full check.
10377 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
10378 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
10379 (xbm_read_bitmap_data): Change locals back to 'int', since
10380 their values must fit in 'int'.
10381 (xpm_load_image, png_load, tiff_load):
10382 Invoke x_create_x_image_and_pixmap earlier,
10383 to avoid much needless work if the image is too large.
10384 (tiff_load): Treat overly large images as if
10385 x_create_x_image_and_pixmap failed, not as malloc failures.
10386 (gs_load): Use x_check_image_size.
10387
5f8f9cc2
PE
10388 * gtkutil.c: Omit integer casts.
10389 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
10390 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
10391
5adf60bc
PE
10392 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
10393
c8907a93
PE
10394 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
10395 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
10396 would wrongly return t on a 64-bit host.
10397
e3c25c68
PE
10398 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
10399 The plain *_OVERFLOW macros run afoul of GCC bug 49705
10400 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
10401 and therefore cause GCC to emit a bogus diagnostic in some cases.
10402
3f791afe
PE
10403 * image.c: Integer signedness and overflow and related fixes.
10404 This is not an exhaustive set of fixes, but it's time to
10405 record what I've got.
10406 (lookup_pixel_color, check_image_size): Remove redundant decls.
10407 (check_image_size): Don't assume that arbitrary EMACS_INT values
10408 fit in 'int', or that arbitrary 'double' values fit in 'int'.
10409 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
10410 (tiff_load, imagemagick_load_image):
10411 Check for overflow in size calculations.
10412 (x_create_x_image_and_pixmap): Remove unnecessary test for
10413 xmalloc returning NULL; that can't happen.
10414 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
10415 (xpm_color_bucket): Use better integer hashing function.
10416 (xpm_cache_color): Don't possibly over-allocate memory.
10417 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
10418 (gif_memory_source):
10419 Use ptrdiff_t, not int or size_t, to record sizes.
10420 (png_load): Don't assume values greater than 2**31 fit in 'int'.
10421 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
10422 either works, as we prefer signed integers.
10423 (tiff_read_from_memory, tiff_write_from_memory):
10424 Return tsize_t, not size_t, since that's what the TIFF API wants.
10425 (tiff_read_from_memory): Don't fail simply because the read would
10426 go past EOF; instead, return a short read.
10427 (tiff_load): Omit no-longer-needed casts.
10428 (Fimagemagick_types): Don't assume size fits into 'int'.
10429
3cc5a532
PE
10430 Improve hashing quality when configured --with-wide-int.
10431 * fns.c (hash_string): New function, taken from sxhash_string.
10432 Do not discard information about ASCII character case; this
10433 discarding is no longer needed.
10434 (sxhash-string): Use it. Change sig to match it. Caller changed.
10435 * lisp.h: Declare it.
10436 * lread.c (hash_string): Remove, since we now use fns.c's version.
10437 The fns.c version returns a wider integer if --with-wide-int is
10438 specified, so this should help the quality of the hashing a bit.
10439
b312a492
PE
10440 * emacs.c: Integer overflow minor fix.
10441 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
10442 Define only if GNU_LINUX.
10443 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
10444
dfd153ae
PE
10445 * dispnew.c: Integer signedness and overflow fixes.
10446 Remove unnecessary forward decls, that were a maintenance hassle.
10447 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
10448 All uses changed.
10449 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
10450 (scrolling_window): Use ptrdiff_t, not int, for byte count.
10451 (prepare_desired_row, line_draw_cost):
10452 Use int, not unsigned, where either works.
10453 (save_current_matrix, restore_current_matrix):
10454 Use ptrdiff_t, not size_t, where either works.
10455 (init_display): Check for overflow more accurately, and without
10456 relying on undefined behavior.
10457
a81d11a3
PE
10458 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
10459 Remove, replacing with the new symbols in lisp.h. All uses changed.
10460 * fileio.c (make_temp_name):
10461 * filelock.c (lock_file_1, lock_file):
10462 * xdisp.c (message_dolog):
10463 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
10464 Use pMd etc. instead.
10465 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
10466 replacing the pWIDE etc. symbols removed from editfns.c.
10467
3300e6fd
PE
10468 * keyboard.h (num_input_events): Now uintmax_t.
10469 This is (very slightly) less likely to mess up due to wraparound.
10470 All uses changed.
10471
fd05c7e9
PE
10472 * buffer.c: Integer signedness fixes.
10473 (alloc_buffer_text, enlarge_buffer_text):
10474 Use ptrdiff_t rather than size_t when either will do, as we prefer
10475 signed integers.
10476
903fe15d
PE
10477 * alloc.c: Integer signedness and overflow fixes.
10478 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
10479 (__malloc_size_t): Default to size_t, not to int.
10480 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
10481 (Fgarbage_collect, mark_object_loop_halt, mark_object):
10482 Prefer ptrdiff_t to size_t when either would do, as we prefer
10483 signed integers.
10484 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
10485 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
10486 Now const. Initialize with values that are in range even if char
10487 is signed.
10488 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
10489 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
10490 These functions do the right thing with sizes > 2**32.
10491 (check_depth): Now ptrdiff_t, not int.
10492 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
10493 Adjust to new way of storing sizes. Check for size overflow bugs
10494 in rest of code.
10495 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
10496 slightly wrong anyway, as it missed one instance of
10497 XMALLOC_OVERRUN_CHECK_OVERHEAD.
10498 (refill_memory_reserve): Omit needless cast to size_t.
10499 (mark_object_loop_halt): Mark as externally visible.
10500
ac82cc6a
PE
10501 * xselect.c: Integer signedness and overflow fixes.
10502 (Fx_register_dnd_atom, x_handle_dnd_message):
10503 Use ptrdiff_t, not size_t, since we prefer signed.
10504 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
10505 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
10506 x_dnd_atoms_size and x_dnd_atoms_length.
10507
c2d1e36d
PE
10508 * doprnt.c: Prefer signed to unsigned when either works.
10509 * eval.c (verror):
10510 * doprnt.c (doprnt):
10511 * lisp.h (doprnt):
10512 * xdisp.c (vmessage):
10513 Use ptrdiff_t, not size_t, when using or implementing doprnt,
10514 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
10515 prefer signed arithmetic to avoid comparison confusion.
10516 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
10517 but is a bit tricky.
10518
0e926e56
PE
10519 Assume freestanding C89 headers, string.h, stdlib.h.
10520 * data.c, doprnt.c, floatfns.c, print.c:
10521 Include float.h unconditionally.
10522 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
10523 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
10524 * regex.c: Likewise for stddef.h, string.h.
10525 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
10526 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
10527 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
10528 (STDC_HEADERS): Remove obsolete defines.
10529 * sysdep.c: Include limits.h unconditionally.
10530
9cfdb3ec
PE
10531 Assume support for memcmp, memcpy, memmove, memset.
10532 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
10533 * regex.c (memcmp, memcpy):
10534 Remove; we assume C89 now.
10535
10536 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
10537 (__malloc_safe_bcopy): Remove; no longer needed.
10538
cf950e6b 10539 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
6089c567
PE
10540 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
10541 well either way, and we prefer signed to unsigned.
10542
dbf38e02
LMI
105432011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
10544
10545 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
10546 closes the connection while we're reading (bug#9182).
10547
d6f0886c 105482011-07-25 Jan Djärv <jan.h.d@swipnet.se>
24e0f6b1 10549
d6f0886c
JD
10550 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
10551 are specified (Bug#9168).
24e0f6b1 10552
2eb1f9e6
PE
105532011-07-25 Paul Eggert <eggert@cs.ucla.edu>
10554
10555 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
10556 Found by GCC static checking and --with-wide-int on a 32-bit host.
10557
22381272 105582011-07-25 Eli Zaretskii <eliz@gnu.org>
7daee910
EZ
10559
10560 * xdisp.c (compute_display_string_pos): Fix logic of caching
10561 previous display string position. Initialize cached_prev_pos to
10562 -1. Fixes slow-down at the beginning of a buffer.
10563
f25e39b4
EZ
105642011-07-24 Eli Zaretskii <eliz@gnu.org>
10565
10566 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
10567 for attrs[LFACE_FONTSET_INDEX].
10568
04c4b52e
PE
105692011-07-23 Paul Eggert <eggert@cs.ucla.edu>
10570
10571 * xml.c (parse_region): Remove unused local
10572 that was recently introduced.
10573
c1734fbd
EZ
105742011-07-23 Eli Zaretskii <eliz@gnu.org>
10575
be18c5a5
EZ
10576 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
10577 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
10578
c1734fbd
EZ
10579 * xdisp.c (move_it_in_display_line_to): Record the best matching
10580 position for TO_CHARPOS while scanning the line, and restore it on
640c8776
SM
10581 exit if none of the characters scanned was an exact match.
10582 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
a9269c18
EZ
10583 when exact match is impossible due to invisible text, and the
10584 lines are truncated.
10585
a258d627
JD
105862011-07-23 Jan Djärv <jan.h.d@swipnet.se>
10587
10588 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
10589 for OSX >= 10.7.
10590
b6d5a689
EZ
105912011-07-22 Eli Zaretskii <eliz@gnu.org>
10592
0f74f785
EZ
10593 Fix a significant slow-down of cursor motion with C-n, C-p,
10594 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
10595 auto-repeat under bidi redisplay in fontified buffers.
b6d5a689 10596 * xdisp.c (compute_stop_pos_backwards): New function.
b6d5a689
EZ
10597 (next_element_from_buffer): Call compute_stop_pos_backwards to
10598 find a suitable prev_stop when we find ourselves before
0f74f785
EZ
10599 base_level_stop.
10600 (reseat): Don't look for prev_stop, as that could mean a very long
10601 run.
10602 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
10603 <cached_disp_overlay_modiff>: Cache for last found display string
10604 position.
551918c1 10605 (compute_display_string_pos): Return the cached position if asked
0f74f785
EZ
10606 about the same buffer in the same area of character positions, and
10607 the buffer wasn't changed since the time the display string
10608 position was cached.
551918c1 10609
b2d0c91a
EZ
106102011-07-22 Eli Zaretskii <eliz@gnu.org>
10611
10612 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
10613 is an integer, which is important for empty lines. (Bug#9149)
10614
043604ee
CY
106152011-07-22 Chong Yidong <cyd@stupidchicken.com>
10616
10617 * frame.c (Fmodify_frame_parameters): In tty case, update the
10618 default face if necessary (Bug#4238).
10619
da4adb04
CY
106202011-07-21 Chong Yidong <cyd@stupidchicken.com>
10621
10622 * editfns.c (Fstring_to_char): No need to explain what a character
10623 is in the docstring (Bug#6576).
10624
9abd0532
LMI
106252011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
10626
10627 * xml.c (parse_region): Make sure we always return a tree.
10628
36881d16
HK
106292011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
10630
10631 * xml.c (parse_region): If a document contains only comments,
10632 return that, too.
10633
1e98674d
LMI
106342011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
10635
10636 * xml.c (make_dom): Return comments, too.
10637
590bd467
PE
106382011-07-19 Paul Eggert <eggert@cs.ucla.edu>
10639
10640 Port to OpenBSD.
10641 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
10642 and the surrounding thread.
10643 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
10644 rather than fgets, and retry after EINTR. Otherwise, 'emacs
10645 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
10646 timer goes off.
10647 * s/openbsd.h (BROKEN_SIGIO): Define.
10648 * unexelf.c (unexec) [__OpenBSD__]:
10649 Don't update the .mdebug section of the Alpha COFF symbol table.
10650
f41628b2
LMI
106512011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
10652
10653 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
10654 (bug#8460).
10655
b59b67c5
PE
106562011-07-18 Paul Eggert <eggert@cs.ucla.edu>
10657
15e3a074
PE
10658 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
10659 This fixes some race conditions on the permissions of any newly
10660 created file.
10661
41bed37d
PE
10662 * alloc.c (valid_pointer_p): Use pipe, not open.
10663 This fixes some permissions issues when debugging.
10664
b59b67c5
PE
10665 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
10666 If fchown fails to set both uid and gid, try to set just gid,
10667 as that is sometimes allowed. Adjust the file's mode to eliminate
10668 setuid or setgid bits that are inappropriate if fchown fails.
10669
925a6be7
SM
106702011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
10671
10672 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
10673 to compare Lisp_Objects.
10674 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
10675 global_gnutls_log_level, don't mistake it for a Lisp_Object.
10676 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
10677
52968808
AS
106782011-07-17 Andreas Schwab <schwab@linux-m68k.org>
10679
0a6a104b
AS
10680 * lread.c (read_integer): Unread even EOF character.
10681 (read1): Likewise. Properly record start position of symbol.
10682
52968808
AS
10683 * lread.c (read1): Read `#:' as empty uninterned symbol if no
10684 symbol character follows.
10685
9e381cdd
PE
106862011-07-17 Paul Eggert <eggert@cs.ucla.edu>
10687
10688 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
10689 This works around a problem with the previous change to Fcopy_file.
10690 Recent glibc declares fchown with __attribute__((warn_unused_result)),
10691 and without this change, GCC might complain about discarding
10692 fchown's return value.
10693
b5641435
JB
106942011-07-16 Juanma Barranquero <lekktu@gmail.com>
10695
10696 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
10697
a8031457
PE
106982011-07-16 Paul Eggert <eggert@cs.ucla.edu>
10699
10700 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
10701
dd889327
LMI
107022011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
10703
750c33f7
LMI
10704 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
10705 it's used from the C level.
10706
dd889327
LMI
10707 * process.c: Use the same condition for POLL_FOR_INPUT in both
10708 keyboard.c and process.c (bug#1858).
10709
87e86684
LM
107102011-07-09 Lawrence Mitchell <wence@gmx.li>
10711
10712 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
10713 (Fgnutls_boot): Use it.
10714
64348f40
AS
107152011-07-15 Andreas Schwab <schwab@linux-m68k.org>
10716
10717 * doc.c (Fsubstitute_command_keys): Revert last change.
10718
1d698799
LMI
107192011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
10720
f863868c
LMI
10721 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
10722 quotes the next character, and doesn't affect other longer
10723 sequences (bug#8935).
10724
1d698799
LMI
10725 * lread.c (syms_of_lread): Clarify that is isn't only
10726 `eval-buffer' and `eval-defun' that's affected by
10727 `lexical-binding' (bug#8460).
10728
aa4b6df6
EZ
107292011-07-15 Eli Zaretskii <eliz@gnu.org>
10730
10731 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
6b02f655 10732 bidi redisplay when a line includes both an image and is truncated.
aa4b6df6 10733
5d856da6
PE
107342011-07-14 Paul Eggert <eggert@cs.ucla.edu>
10735
ad6042bb
PE
10736 Fix minor problems found by static checking.
10737 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
10738 (elsz): Now a signed constant, not a size_t var. We prefer signed
10739 types to unsigned, to avoid integer comparison confusion. Without
10740 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
10741 "cannot optimize loop, the loop counter may overflow", a symptom
10742 of the confusion.
f00bbb22 10743 * indent.c (Fvertical_motion): Mark locals as initialized.
5d856da6
PE
10744 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
10745
6468f31c
LMI
107462011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
10747
49080b10
LMI
10748 * search.c (Fre_search_backward): Mention `case-fold-search' in
10749 all the re_search_* functions (bug#8138).
10750
6468f31c
LMI
10751 * keyboard.c (Fopen_dribble_file): Document when the file is
10752 closed (bug#8056).
10753
c965adc5
EZ
107542011-07-14 Eli Zaretskii <eliz@gnu.org>
10755
df9733bf
EZ
10756 * bidi.c (bidi_dump_cached_states): Fix format of displaying
10757 bidi_cache_idx.
10758
0bb23927
EZ
10759 Support bidi reordering of display and overlay strings.
10760 * xdisp.c (compute_display_string_pos)
10761 (compute_display_string_end): Accept additional argument STRING.
10762 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
10763 (reseat_to_string): Initialize bidi_it->string.s and
10764 bidi_it->string.schars.
10765 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
640c8776
SM
10766 NULL (avoids a crash in bidi_paragraph_init).
10767 Initialize itb.string.lstring.
0bb23927
EZ
10768 (init_iterator): Call bidi_init_it only of a valid
10769 buffer position was specified. Initialize paragraph_embedding to
10770 L2R.
10771 (reseat_to_string): Initialize the bidi iterator.
10772 (display_string): If we need to ignore text properties of
10773 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
10774 original value of -1 will not work with bidi.)
10775 (compute_display_string_pos): First arg is now struct
10776 `text_pos *'; all callers changed. Support display properties on
10777 Lisp strings.
10778 (compute_display_string_end): Support display properties on Lisp
10779 strings.
10780 (init_iterator, reseat_1, reseat_to_string): Initialize the
10781 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
10782 when iterating on a string not from display properties).
640c8776
SM
10783 (compute_display_string_pos, compute_display_string_end):
10784 Fix calculation of the object to scan. Fixes an error when using
0bb23927
EZ
10785 arrow keys.
10786 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
640c8776
SM
10787 base_level_stop; instead, set base_level_stop to BEGV.
10788 Fixes crashes in vertical-motion.
0bb23927
EZ
10789 (next_element_from_buffer): Improve commentary for when
10790 the iterator is before prev_stop.
10791 (init_iterator): Initialize bidi_p from the default value of
10792 bidi-display-reordering, not from buffer-local value. Use the
10793 buffer-local value only if initializing for buffer iteration.
10794 (handle_invisible_prop): Support invisible properties on strings
10795 that are being bidi-reordered.
10796 (set_iterator_to_next): Support bidi reordering of C strings and
10797 Lisp strings.
10798 (next_element_from_string): Support bidi reordering of Lisp
10799 strings.
10800 (handle_stop_backwards): Support Lisp strings as well.
640c8776
SM
10801 (display_string): Support display of R2L glyph rows.
10802 Use IT_STRING_CHARPOS when displaying from a Lisp string.
0bb23927
EZ
10803 (init_iterator): Don't initialize it->bidi_p for strings
10804 here.
10805 (reseat_to_string): Initialize it->bidi_p for strings here.
10806 (next_element_from_string, next_element_from_c_string)
10807 (next_element_from_buffer): Add xassert's for correspondence
10808 between IT's object being iterated and it->bidi_it.string
10809 structure.
10810 (face_before_or_after_it_pos): Support bidi iteration.
10811 (next_element_from_c_string): Handle the case of the first string
10812 character that is not the first one in the visual order.
10813 (get_visually_first_element): New function, refactored from common
10814 parts of next_element_from_buffer, next_element_from_string, and
10815 next_element_from_c_string.
10816 (tool_bar_lines_needed, redisplay_tool_bar)
10817 (display_menu_bar): Force left-to-right direction. Add a FIXME
10818 comment for making that be controlled by a user option.
10819 (push_it, pop_it): Save and restore the state of the
10820 bidi iterator. Save and restore the bidi_p flag.
10821 (pop_it): Iterate out of display property for string iteration as
10822 well.
10823 (iterate_out_of_display_property): Support iteration over strings.
10824 (handle_single_display_spec): Set up it->bidi_it for iteration
10825 over a display string, and call bidi_init_it.
10826 (handle_single_display_spec, next_overlay_string)
10827 (get_overlay_strings_1, push_display_prop): Set up the bidi
10828 iterator for displaying display or overlay strings.
10829 (forward_to_next_line_start): Don't use the shortcut if
10830 bidi-iterating.
10831 (back_to_previous_visible_line_start): If handle_display_prop
10832 pushed the iterator stack, restore the internal state of the bidi
10833 iterator by calling bidi_pop_it same number of times.
10834 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
10835 and we are bidi-iterating, don't decrement the iterator position;
10836 instead, set the first_elt flag in the bidi iterator, to produce
10837 the same effect.
10838 (reseat_1): Remove redundant setting of string_from_display_prop_p.
10839 (push_display_prop): xassert that we are iterating a buffer.
10840 (push_it, pop_it): Save and restore paragraph_embedding member.
10841 (handle_single_display_spec, next_overlay_string)
10842 (get_overlay_strings_1, reseat_1, reseat_to_string)
10843 (push_display_prop): Set up the `unibyte' member of bidi_it.string
10844 correctly. Don't assume unibyte strings are not bidi-reordered.
10845 (compute_display_string_pos)
10846 (compute_display_string_end): Fix handling the case of C string.
10847 (push_it, pop_it): Save and restore from_disp_prop_p.
10848 (handle_single_display_spec, push_display_prop): Set the
10849 from_disp_prop_p flag.
10850 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
10851 (pop_it): Call iterate_out_of_display_property only if we are
10852 popping after iteration over a string that came from a display
10853 property. Fix a typo in popping stretch info. Add an assertion
10854 for verifying that the iterator position is in sync with the bidi
10855 iterator.
10856 (handle_single_display_spec, get_overlay_strings_1)
10857 (push_display_prop): Fix initialization of paragraph direction for
10858 string when that of the parent object is not yet determined.
10859 (reseat_1): Call bidi_init_it to resync the bidi
10860 iterator with IT's position. (Bug#7616)
10861 (find_row_edges): If ROW->start.pos gives position
10862 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
10863 (handle_stop, back_to_previous_visible_line_start, reseat_1):
10864 Reset the from_disp_prop_p flag.
10865 (SAVE_IT, RESTORE_IT): New macros.
10866 (pos_visible_p, face_before_or_after_it_pos)
10867 (back_to_previous_visible_line_start)
10868 (move_it_in_display_line_to, move_it_in_display_line)
10869 (move_it_to, move_it_vertically_backward, move_it_by_lines)
10870 (try_scrolling, redisplay_window, display_line): Use them when
10871 saving a temporary copy of the iterator and restoring it back.
10872 (back_to_previous_visible_line_start, reseat_1)
10873 (init_iterator): Empty the bidi cache "stack".
10874 (move_it_in_display_line_to): If iterator ended up at
10875 EOL, but we never saw any buffer positions smaller than
10876 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
10877 motion in bidi-reordered lines.
10878 (move_it_in_display_line_to): Record prev_method and prev_pos
10879 immediately before the call to set_iterator_to_next. Fixes cursor
10880 motion in bidi-reordered lines with stretch glyphs and strings
10881 displayed in margins. (Bug#8133) (Bug#8867)
10882 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
10883 TO_CHARPOS.
640c8776
SM
10884 (pos_visible_p): Support positions in bidi-reordered lines.
10885 Save and restore bidi cache.
0bb23927
EZ
10886
10887 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
10888 (bidi_paragraph_info): Delete unused struct.
10889 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
10890 (bidi_cache_start): New variable.
10891 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
10892 to zero.
10893 (bidi_cache_fetch_state, bidi_cache_search)
10894 (bidi_cache_find_level_change, bidi_cache_iterator_state)
10895 (bidi_cache_find, bidi_peek_at_next_level)
10896 (bidi_level_of_next_char, bidi_find_other_level_edge)
10897 (bidi_move_to_visually_next): Compare cache index with
10898 bidi_cache_start rather than with zero.
10899 (bidi_fetch_char): Accept new argument STRING; all callers
10900 changed. Support iteration over a string. Support strings with
10901 display properties. Support unibyte strings. Fix the type of
10902 `len' according to what STRING_CHAR_AND_LENGTH expects.
10903 (bidi_paragraph_init, bidi_resolve_explicit_1)
10904 (bidi_resolve_explicit, bidi_resolve_weak)
640c8776
SM
10905 (bidi_level_of_next_char, bidi_move_to_visually_next):
10906 Support iteration over a string.
0bb23927
EZ
10907 (bidi_set_sor_type, bidi_resolve_explicit_1)
10908 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
10909 can now be zero (for strings); special values 0 and -1 were
10910 changed to -1 and -2, respectively.
10911 (bidi_char_at_pos): New function.
10912 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
10913 Call it instead of FETCH_MULTIBYTE_CHAR.
10914 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
10915 initialized to valid values.
10916 (bidi_init_it): Don't initialize charpos and bytepos with invalid
10917 values.
10918 (bidi_level_of_next_char): Allow the sentinel "position" to pass
10919 the test for valid cached positions. Fix the logic for looking up
10920 the sentinel state in the cache. GCPRO the Lisp string we are
10921 iterating.
10922 (bidi_push_it, bidi_pop_it): New functions.
10923 (bidi_initialize): Initialize the bidi cache start stack pointer.
10924 (bidi_cache_ensure_space): New function, refactored from part of
10925 bidi_cache_iterator_state. Don't assume the required size is just
10926 one BIDI_CACHE_CHUNK away.
10927 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
10928 (bidi_count_bytes, bidi_char_at_pos): New functions.
10929 (bidi_cache_search): Don't assume bidi_cache_last_idx is
10930 always valid if bidi_cache_idx is valid.
10931 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
10932 is valid if it's going to be used.
10933 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
10934 (bidi_cache_fetch_state, bidi_cache_search)
c965adc5
EZ
10935 (bidi_cache_find_level_change, bidi_cache_ensure_space)
10936 (bidi_cache_iterator_state, bidi_cache_find)
640c8776
SM
10937 (bidi_find_other_level_edge, bidi_cache_start_stack):
10938 All variables related to cache indices are now EMACS_INT.
c965adc5 10939
0bb23927
EZ
10940 * dispextern.h (struct bidi_string_data): New structure.
10941 (struct bidi_it): New member `string'. Make flag members be 1-bit
10942 fields, and put them last in the struct.
640c8776
SM
10943 (compute_display_string_pos, compute_display_string_end):
10944 Update prototypes.
0bb23927
EZ
10945 (bidi_push_it, bidi_pop_it): Add prototypes.
10946 (struct iterator_stack_entry): New members bidi_p,
10947 paragraph_embedding, and from_disp_prop_p.
10948 (struct it): Member bidi_p is now a bit field 1 bit wide.
640c8776
SM
10949 (bidi_shelve_cache, bidi_unshelve_cache):
10950 Declare prototypes.
0bb23927
EZ
10951
10952 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
10953 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
10954 and vector-like objects.
10955
10956 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
10957 cache around display iteration.
10958
10959 * window.c (Fwindow_end, window_scroll_pixel_based)
10960 (displayed_window_lines, Frecenter): Save and restore the bidi
10961 cache around display iteration.
10962
3bbd2265
LMI
109632011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
10964
10965 * editfns.c (Fdelete_region): Clarify the use of the named
10966 parameters (bug#6788).
10967
adc47434
MR
109682011-07-14 Martin Rudalics <rudalics@gmx.at>
10969
10970 * indent.c (Fvertical_motion): Set and restore w->pointm when
10971 saving and restoring the window's buffer (Bug#9006).
10972
837c31f8
LMI
109732011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
10974
10975 * editfns.c (Fstring_to_char): Clarify just what is returned
10976 (bug#6576). Text by Eli Zaretskii.
10977
ac389d0c
JB
109782011-07-13 Juanma Barranquero <lekktu@gmail.com>
10979
10980 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
10981
0be0ce47
EZ
109822011-07-13 Eli Zaretskii <eliz@gnu.org>
10983
10984 * buffer.c (mmap_find): Fix a typo.
10985
cd18e7e3
JB
109862011-07-13 Johan Bockgård <bojohan@gnu.org>
10987
10988 Fix execution of x selection hooks.
10989 * xselect.c (Qx_lost_selection_functions)
10990 (Qx_sent_selection_functions): New vars.
10991 (syms_of_xselect): DEFSYM them.
10992 (x_handle_selection_request): Pass Qx_sent_selection_functions
10993 rather than Vx_sent_selection_functions to Frun_hook_with_args.
10994 (x_handle_selection_clear,x_clear_frame_selections):
10995 Pass Qx_lost_selection_functions rather than
10996 Vx_lost_selection_functions to Frun_hook_with_args.
10997
47ea7f44
PE
109982011-07-13 Paul Eggert <eggert@cs.ucla.edu>
10999
ac389d0c 11000 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
2941c447
PE
11001 The old code sometimes used this field without initializing it.
11002
47ea7f44
PE
11003 * alloc.c (gc_sweep): Don't read past end of array.
11004 In theory, the old code could also have corrupted Emacs internals,
11005 though it'd be very unlikely.
11006
bc985c87
AS
110072011-07-12 Andreas Schwab <schwab@linux-m68k.org>
11008
11009 * character.c (Fcharacterp): Don't advertise optional ignored
ac389d0c 11010 argument. (Bug#4026)
bc985c87 11011
0cf34688
LMI
110122011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
11013
b3dadd76
LMI
11014 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
11015 key" (bug#4257).
11016
0cf34688
LMI
11017 * window.c (Fset_window_start): Doc fix (bug#4199).
11018 (Fset_window_hscroll): Ditto.
11019
270768cd
PE
110202011-07-12 Paul Eggert <eggert@cs.ucla.edu>
11021
077e3dda 11022 Fix minor new problems caught by GCC 4.6.1.
270768cd 11023 * term.c (init_tty): Remove unused local.
490011a6 11024 * xsettings.c (store_monospaced_changed): Define this function only
077e3dda 11025 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
490011a6 11026 not used otherwise.
270768cd 11027
b1f58454
CY
110282011-07-12 Chong Yidong <cyd@stupidchicken.com>
11029
11030 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
11031
22b9578d
LMI
110322011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
11033
6e70ab07
LMI
11034 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
11035 are the mini-buffer and the echo area (bug#3320).
11036
22b9578d
LMI
11037 * term.c (init_tty): Remove support for supdup, c10 and perq
11038 terminals, which are no longer supported (bug#1482).
11039
8974cc9f
JB
110402011-07-10 Johan Bockgård <bojohan@gnu.org>
11041
11042 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
11043
a560d974
JD
110442011-07-10 Jan Djärv <jan.h.d@swipnet.se>
11045
11046 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
11047 for non-popups (Bug#3642).
11048
1dae0f0a
AS
110492011-07-10 Andreas Schwab <schwab@linux-m68k.org>
11050
268c2c36 11051 * alloc.c (reset_malloc_hooks): Protoize.
1dae0f0a 11052 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
268c2c36
AS
11053 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
11054 * cm.c (losecursor): Likewise.
1dae0f0a
AS
11055 * data.c (fmod): Likewise.
11056 * dispnew.c (swap_glyphs_in_rows): Likewise.
11057 * emacs.c (memory_warning_signal): Likewise.
11058 * floatfns.c (float_error): Likewise.
11059 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
11060 (otf_open, font_otf_capability, generate_otf_features)
11061 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
11062 Likewise.
11063 * image.c (pbm_read_file): Likewise.
11064 * indent.c (string_display_width): Likewise.
11065 * intervals.c (check_for_interval, search_for_interval)
11066 (inc_interval_count, count_intervals, root_interval)
11067 (adjust_intervals_for_insertion, make_new_interval): Likewise.
11068 * lread.c (defalias): Likewise.
268c2c36 11069 * ralloc.c (r_alloc_check): Likewise.
1dae0f0a
AS
11070 * regex.c (set_image_of_range_1, set_image_of_range)
11071 (regex_grow_registers): Likewise.
11072 * sysdep.c (strerror): Likewise.
11073 * termcap.c (valid_filename_p, tprint, main): Likewise.
11074 * tparam.c (main): Likewise.
11075 * unexhp9k800.c (run_time_remap, save_data_space)
11076 (update_file_ptrs, read_header, write_header, calculate_checksum)
11077 (copy_file, copy_rest, display_header): Likewise.
11078 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
11079 Likewise.
11080 * xdisp.c (check_it): Likewise.
11081 * xfaces.c (register_color, unregister_color, unregister_colors):
11082 Likewise.
11083 * xfns.c (print_fontset_result): Likewise.
11084 * xrdb.c (member, fatal, main): Likewise.
11085
99033785
PE
110862011-07-10 Paul Eggert <eggert@cs.ucla.edu>
11087
11088 Fix minor problems found by static checking (Bug#9031).
11089 * chartab.c (char_table_set_range, map_sub_char_table):
11090 Remove unused locals.
11091 (uniprop_table): Now static.
11092 * composite.c (_work_char): Remove unused static var.
11093
9cb2ac56
JB
110942011-07-09 Juanma Barranquero <lekktu@gmail.com>
11095
11096 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
11097
f25661f0
JD
110982011-07-09 Jan Djärv <jan.h.d@swipnet.se>
11099
11100 * gtkutil.c (qttip_cb): Remove code without function.
11101
8278c4fe
EZ
111022011-07-09 Eli Zaretskii <eliz@gnu.org>
11103
11104 * w32.c (pthread_sigmask): New stub.
11105
1692ae2d 111062011-07-08 Paul Eggert <eggert@cs.ucla.edu>
123403e4 11107
8a6ebd58 11108 Use pthread_sigmask, not sigprocmask (Bug#9010).
123403e4
PE
11109 sigprocmask is portable only for single-threaded applications, and
11110 Emacs can be multi-threaded when it uses GTK.
1301ac26
PE
11111 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
11112 (LIBES): Use it.
11113 * callproc.c (Fcall_process):
11114 * process.c (create_process):
11115 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
11116 Use pthread_sigmask, not sigprocmask.
123403e4 11117
1b854618
JD
111182011-07-08 Jan Djärv <jan.h.d@swipnet.se>
11119
11120 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
11121 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
11122 wrong (Bug#8591).
11123
3fe4b549
JD
111242011-07-08 Jan Djärv <jan.h.d@swipnet.se>
11125
0ce7e563
JD
11126 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
11127 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
11128 (xg_hide_tooltip): Fix comment.
11129
3fe4b549
JD
11130 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
11131 in registerServicesMenuSendTypes.
11132 (validRequestorForSendType): Don't check ns_return_types.
11133
11134 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
11135 ns_return_type.
11136
5df75e47
JR
111372011-07-08 Jason Rumney <jasonr@gnu.org>
11138
22610910
JR
11139 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
11140 SH_SHOW for hidden windows (Bug#5482).
11141
5df75e47
JR
11142 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
11143 frame struct members of non-existent frames (Bug#6284).
11144
699c10bd
JD
111452011-07-08 Jan Djärv <jan.h.d@swipnet.se>
11146
4393663b
JD
11147 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
11148 variable firstTime not needed on OSX >= 10.6.
11149 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
11150 >= 10.5. Use setKnobProportion, setDoubleValue.
11151
11152 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
11153 (MAC_OS_X_VERSION_10_5): Define if not defined.
11154 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
11155 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
11156 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
11157
11158 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
090bd7cb 11159 cString and lossyCString on OSX >= 10.4.
4393663b 11160
58179cce 11161 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
4393663b
JD
11162 sizeToFit on OSX >= 10.2.
11163
11164 * nsimage.m (allocInitFromFile): Don't use deprecated method
11165 bestRepresentationForDevice on OSX >= 10.6.
11166
11167 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
11168 to avoid warning.
11169
11170 * emacs.c: Declare unexec_init_emacs_zone.
11171
a63e0781
JD
11172 * nsgui.h: Fix compiler warning about gnulib redefining verify.
11173
699c10bd
JD
11174 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
11175
11176 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
11177 on svcsMenu (Bug#8842).
11178
11179 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
11180 ns_return_types.
11181 (Fns_list_services): Just return Qnil on 10.6, code not working there.
11182
11183 * nsterm.m (QUTF8_STRING): Declare.
11184 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
11185 (validRequestorForSendType): Return type is (id).
11186 Change indexOfObjectIdenticalTo to indexOfObject.
11187 Check if we have local selection before returning self (Bug#8842).
11188 (writeSelectionToPasteboard): Put local selection into paste board
11189 if we have a local selection (Bug#8842).
11190 (syms_of_nsterm): DEFSYM QUTF8_STRING.
11191
11192 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
11193 (ns_get_local_selection): Declare.
11194
54e10184
LMI
111952011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
11196
9888ff71
LMI
11197 * keymap.c (describe_map_tree): Don't insert a double newline at
11198 the end of the buffer (bug#1169) and return whether we inserted
11199 something.
11200
54e10184
LMI
11201 * callint.c (Fcall_interactively): Change "reading args" to
11202 "providing args" to try to clarify what it does (bug#1010).
11203
15fa4783
KH
112042011-07-07 Kenichi Handa <handa@m17n.org>
11205
11206 * composite.c (composition_compute_stop_pos): Ignore a static
11207 composition starting before CHARPOS (Bug#8915).
11208
11209 * xdisp.c (handle_composition_prop): Likewise.
11210
a8815b00
EZ
112112011-07-07 Eli Zaretskii <eliz@gnu.org>
11212
11213 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
11214 (Bug#9015)
11215
ef7b981d 112162011-07-07 Kenichi Handa <handa@m17n.org>
c805dec0
KH
11217
11218 * character.h (unicode_category_t): New enum type.
11219
11220 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
11221 (Qchar_code_property_table): New variable.
11222 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
11223 (UNIPROP_COMPRESSED_FORM_P): New macros.
11224 (char_table_ascii): Uncompress the compressed values.
11225 (sub_char_table_ref): New arg is_uniprop. Callers changed.
11226 Uncompress the compressed values.
ac389d0c 11227 (sub_char_table_ref_and_range): Likewise.
c805dec0
KH
11228 (char_table_ref_and_range): Uncompress the compressed values.
11229 (sub_char_table_set): New arg is_uniprop. Callers changed.
11230 Uncompress the compressed values.
11231 (sub_char_table_set_range): Args changed. Callers changed.
11232 (char_table_set_range): Adjuted for the above change.
11233 (map_sub_char_table): Delete args default_val and parent. Add arg
11234 top. Give decoded values to a Lisp function.
640c8776 11235 (map_char_table): Adjust for the above change. Give decoded
c805dec0
KH
11236 values to a Lisp function. Gcpro more variables.
11237 (uniprop_table_uncompress)
11238 (uniprop_decode_value_run_length): New functions.
11239 (uniprop_decoder, uniprop_decoder_count): New variables.
11240 (uniprop_get_decoder, uniprop_encode_value_character)
11241 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
11242 New functions.
11243 (uniprop_encoder, uniprop_encoder_count): New variables.
11244 (uniprop_get_encoder, uniprop_table)
11245 (Funicode_property_table_internal, Fget_unicode_property_internal)
11246 (Fput_unicode_property_internal): New functions.
11247 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
11248 Sunicode_property_table_internal, Sget_unicode_property_internal,
5e617bc2 11249 and Sput_unicode_property_internal. Defvar_lisp
c805dec0
KH
11250 char-code-property-alist.
11251
640c8776 11252 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
c805dec0
KH
11253 Vunicode_category_table.
11254
640c8776 11255 * font.c (font_range): Adjust for the change of
c805dec0
KH
11256 Vunicode_category_table.
11257
76b397fb
DN
112582011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
11259
11260 * m/iris4d.h: Remove file, move contents ...
11261 * s/irix6-5.h: ... here.
11262
22b4128e
PE
112632011-07-06 Paul Eggert <eggert@cs.ucla.edu>
11264
11265 Remove unportable assumption about struct layout (Bug#8884).
8a5c77bb
PE
11266 * alloc.c (mark_buffer):
11267 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
11268 (clone_per_buffer_values): Don't assume that
22b4128e
PE
11269 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
11270 This isn't true in general, and it's particularly not true
11271 if Emacs is configured with --with-wide-int.
11272 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
11273 New macros, used in the buffer.c change.
11274
869795d6
JD
112752011-07-05 Jan Djärv <jan.h.d@swipnet.se>
11276
11277 * xsettings.c: Use both GConf and GSettings if both are available.
11278 (store_config_changed_event): Add comment.
11279 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
11280 (store_tool_bar_style_changed): New functions.
5e617bc2 11281 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
869795d6
JD
11282 (struct xsettings): Move font inside HAVE_XFT.
11283 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
640c8776 11284 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
869795d6 11285 Move inside HAVE_XFT.
640c8776 11286 (something_changed_gsettingsCB): Rename from something_changedCB.
869795d6
JD
11287 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
11288 also.
11289 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
5e617bc2 11290 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
640c8776 11291 (something_changed_gconfCB): Rename from something_changedCB.
869795d6
JD
11292 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
11293 (parse_settings): Move check for font inside HAVE_XFT.
11294 (read_settings, apply_xft_settings): Add comment.
11295 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
11296 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
11297 call store_font_name_changed.
11298 (xft_settings_event): Add comment.
11299 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
11300 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
11301 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
11302 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
11303 (xsettings_initialize): Call init_gsettings last.
640c8776
SM
11304 (xsettings_get_system_font, xsettings_get_system_normal_font):
11305 Add comment.
869795d6 11306
d8ed26bd
PE
113072011-07-05 Paul Eggert <eggert@cs.ucla.edu>
11308
11309 Random fixes. E.g., (random) never returned negative values.
11310 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
11311 subseconds part to the entropy, as that's a bit more random.
11312 Prefer signed to unsigned, since the signedness doesn't matter and
11313 in general we prefer signed. When given a limit, use a
11314 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
11315 latter isn't right if USE_2_TAGS_FOR_INTS.
11316 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
11317 not 0..VALMASK. Don't discard "excess" bits that random () returns.
11318
cabf1cac
SM
113192011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
11320
11321 * textprop.c (text_property_stickiness):
11322 Obey Vtext_property_default_nonsticky.
11323 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
11324 * w32fns.c (syms_of_w32fns):
11325 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
11326
6e9b2be9
PE
113272011-07-04 Paul Eggert <eggert@cs.ucla.edu>
11328
11329 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
11330 This is more efficient than Ffile_directory_p and avoids a minor race.
11331
90186c68
LMI
113322011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
11333
7c301272
LMI
11334 * buffer.c (Foverlay_put): Say what the return value is
11335 (bug#7835).
11336
c4f2d8d4
LMI
11337 * fileio.c (barf_or_query_if_file_exists): Check first if the file
11338 is a directory before asking whether to use the file name
11339 (bug#7564).
ad637907
LMI
11340 (barf_or_query_if_file_exists): Make the "File is a directory"
11341 error be more correct.
c4f2d8d4 11342
90186c68
LMI
11343 * fns.c (Frequire): Remove the mention of the .gz files, since
11344 that's installation-specific, but keep the mention of
11345 `get-load-suffixes'.
11346
da64016e
PE
113472011-07-04 Paul Eggert <eggert@cs.ucla.edu>
11348
11349 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
11350 Report string overflow if the output is too long.
11351
7d47b580
JB
113522011-07-04 Juanma Barranquero <lekktu@gmail.com>
11353
a555cb87
JB
11354 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
11355 (syms_of_gnutls): Remove duplicate DEFSYM for
11356 Qgnutls_bootprop_verify_hostname_error, an error for
11357 Qgnutls_bootprop_verify_error (which is no longer used).
11358
7d47b580
JB
11359 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
11360 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
11361 Also (re)move comments that are misplaced or no longer relevant.
11362
1e49bfab
LMI
113632011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
11364
11365 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
11366
1485f4c0
CY
113672011-07-03 Chong Yidong <cyd@stupidchicken.com>
11368
11369 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
11370 and background color parameters if they have been changed.
11371
a9ab721e
LMI
113722011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
11373
11374 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
11375
cf7cff57
PE
113762011-07-03 Paul Eggert <eggert@cs.ucla.edu>
11377
2e13213d
PE
11378 * xsettings.c (SYSTEM_FONT): Define only when used.
11379 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
11380
cf7cff57
PE
11381 * keymap.c (access_keymap_1): Now static.
11382
7a8e04f7
CY
113832011-07-02 Chong Yidong <cyd@stupidchicken.com>
11384
11385 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
11386 leave any prefix arg for the up event (Bug#1586).
11387
61352f62
LMI
113882011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
11389
69bb1ef7
LMI
11390 * lread.c (syms_of_lread): Mention single symbols defined by
11391 `defvar' or `defconst' (bug#7154).
11392
61352f62 11393 * fns.c (Frequire): Mention .el.gz files (bug#7314).
7b3747f9 11394 (Frequire): Mention get-load-suffixes.
61352f62 11395
28545e04
MR
113962011-07-02 Martin Rudalics <rudalics@gmx.at>
11397
11398 * window.h (window): Remove clone_number slot.
11399 * window.c (Fwindow_clone_number, Fset_window_clone_number):
11400 Remove.
11401 (make_parent_window, make_window, saved_window)
11402 (Fset_window_configuration, save_window_save): Don't deal with
11403 clone numbers.
11404 * buffer.c (Qclone_number): Remove declaration.
11405 (sort_overlays, overlay_strings): Don't deal with clone numbers.
11406
3349e122
SM
114072011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
11408
11409 Add multiple inheritance to keymaps.
11410 * keymap.c (Fmake_composed_keymap): New function.
11411 (Fset_keymap_parent): Simplify.
11412 (fix_submap_inheritance): Remove.
11413 (access_keymap_1): New function extracted from access_keymap to handle
11414 embedded parents and handle lists of maps.
11415 (access_keymap): Use it.
11416 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
11417 (Fcopy_keymap): Handle embedded parents.
11418 (Fcommand_remapping, define_as_prefix): Simplify.
11419 (Fkey_binding): Simplify.
11420 (syms_of_keymap): Move minibuffer-local-completion-map,
11421 minibuffer-local-filename-completion-map,
11422 minibuffer-local-must-match-map, and
11423 minibuffer-local-filename-must-match-map to Elisp.
11424 (syms_of_keymap): Defsubr make-composed-keymap.
11425 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
11426 (parse_menu_item): Trivial simplification.
11427
3279eb87
GM
114282011-07-01 Glenn Morris <rgm@gnu.org>
11429
11430 * Makefile.in (SETTINGS_LIBS): Fix typo.
11431
39cb9e56 114322011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
4550efdf
KI
11433
11434 * coding.c (Fencode_coding_string): Record the last coding system
11435 used, as the function doc string says (bug#8738).
11436
0949d2b6
JD
114372011-07-01 Jan Djärv <jan.h.d@swipnet.se>
11438
11439 * xsettings.c (store_monospaced_changed): Take new font as arg and
11440 check for change against current_mono_font.
11441 (EMACS_TYPE_SETTINGS): Remove this and related defines.
11442 (emacs_settings_constructor, emacs_settings_get_property)
11443 (emacs_settings_set_property, emacs_settings_class_init)
11444 (emacs_settings_init, gsettings_obj): Remove.
11445 (something_changedCB): New function for HAVE_GSETTINGS.
11446 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
11447 with value as argument.
11448 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
11449 g_settings_new (Bug#8967). Do not create gsettings_obj.
9173deec 11450 Remove calls to g_settings_bind. Connect something_changedCB to
0949d2b6
JD
11451 "changed".
11452
11453 * xgselect.c: Add defined (HAVE_GSETTINGS).
11454 (xgselect_initialize): Ditto.
11455
11456 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
11457 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
11458 xg_select.
11459
bbc6b304
PE
114602011-07-01 Paul Eggert <eggert@cs.ucla.edu>
11461
11462 * eval.c (struct backtrace): Simplify and port the data structure.
11463 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
11464 signed bit field, as this assumption is not portable and it makes
11465 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
11466 "char debug_on_exit : 1" as this is not portable either; instead,
11467 use the portable "unsigned int debug_on_exit : 1". Remove unused
11468 member evalargs. Remove obsolete comments about cc bombing out.
11469
9851bfc5
JD
114702011-06-30 Jan Djärv <jan.h.d@swipnet.se>
11471
51bb811f 11472 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
9851bfc5
JD
11473 Let HAVE_GSETTINGS override HAVE_GCONF.
11474 (store_monospaced_changed): New function.
11475 (EMACS_SETTINGS): A new type derived from GObject to handle
11476 GSettings notifications.
11477 (emacs_settings_constructor, emacs_settings_get_property)
11478 (emacs_settings_set_property, emacs_settings_class_init):
11479 New functions.
11480 (gsettings_client, gsettings_obj): New variables.
11481 (GSETTINGS_SCHEMA): New define.
11482 (something_changedCB): Call store_monospaced_changed.
11483 (init_gsettings): New function.
11484 (xsettings_initialize): Call init_gsettings.
11485 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
11486 to NULL.
11487
640c8776 11488 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
9851bfc5
JD
11489 GCONF_CFLAGS/LIBS.
11490
5386012d
MR
114912011-06-29 Martin Rudalics <rudalics@gmx.at>
11492
11493 * window.c (resize_root_window, grow_mini_window)
11494 (shrink_mini_window): Rename Qresize_root_window to
11495 Qwindow_resize_root_window and Qresize_root_window_vertically to
11496 Qwindow_resize_root_window_vertically.
11497
f13e0b08
PE
114982011-06-28 Paul Eggert <eggert@cs.ucla.edu>
11499
11500 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
11501
94515237
JB
115022011-06-27 Juanma Barranquero <lekktu@gmail.com>
11503
11504 * makefile.w32-in: Redesign dependencies so they reflect more
11505 clearly which files are directly included by each source file,
11506 and not through other includes.
11507
e43b6e43
MR
115082011-06-27 Martin Rudalics <rudalics@gmx.at>
11509
11510 * buffer.c (Qclone_number): Declare static and DEFSYM it.
11511 (sort_overlays, overlay_strings): When an overlay's clone number
11512 matches the window's clone number process the overlay even if
11513 the overlay's window property doesn't match the current window.
11514
d68443dc
MR
11515 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
11516 (Fwindow_hchild): Rename to Fwindow_left_child.
11517 (Fwindow_next): Rename to Fwindow_next_sibling.
11518 (Fwindow_prev): Rename to Fwindow_prev_sibling.
d615d6d2
MR
11519 (resize_window_check): Rename to window_resize_check.
11520 (resize_window_apply): Rename to window_resize_apply.
11521 (Fresize_window_apply): Rename to Fwindow_resize_apply.
11522 (Fdelete_other_windows_internal, resize_frame_windows)
11523 (Fsplit_window_internal, Fdelete_window_internal)
11524 (grow_mini_window, shrink_mini_window)
11525 (Fresize_mini_window_internal): Fix callers accordingly.
d68443dc 11526
c7e73be5
JD
115272011-06-26 Jan Djärv <jan.h.d@swipnet.se>
11528
11529 * emacsgtkfixed.h: State that this is only used with Gtk+3.
11530 (emacs_fixed_set_min_size): Remove.
11531 (emacs_fixed_new): Take frame as argument.
11532
11533 * emacsgtkfixed.c: State that this is only used with Gtk+3.
11534 (_EmacsFixedPrivate): Remove minwidth/height.
11535 Add struct frame *f.
11536 (emacs_fixed_init): Initialize priv->f.
11537 (get_parent_class, emacs_fixed_set_min_size): Remove.
11538 (emacs_fixed_new): Set priv->f to argument.
11539 (emacs_fixed_get_preferred_width)
11540 (emacs_fixed_get_preferred_height): Use min_width/height from
11541 frames size_hint to set minimum and natural (Bug#8919).
11542 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
11543 and use min_width/height from frames size_hint to set
11544 min_width/height (Bug#8919).
11545
11546 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
9173deec
JB
11547 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
11548 Fix indentation.
c7e73be5 11549
cf99dcf8
EZ
115502011-06-26 Eli Zaretskii <eliz@gnu.org>
11551
11552 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
11553 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
11554 called at ZV.
11555
029529ac
CY
115562011-06-26 Chong Yidong <cyd@stupidchicken.com>
11557
11558 * process.c (wait_reading_process_output): Bypass select if
11559 waiting for a cell while ignoring keyboard input, and input is
11560 pending. Suggested by Jan Djärv (Bug#8869).
11561
7a7ef429
PE
115622011-06-25 Paul Eggert <eggert@cs.ucla.edu>
11563
11564 Use gnulib's dup2 module instead of rolling our own.
11565 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
11566
11fdef7d 115672011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
989b42d2
YM
11568
11569 * dispnew.c (scrolling_window): Before scrolling, turn off a
11570 mouse-highlight in the window being scrolled.
11571
cd3520a4
JB
115722011-06-24 Juanma Barranquero <lekktu@gmail.com>
11573
11574 Move DEFSYM to lisp.h and use everywhere.
11575
11576 * character.h (DEFSYM): Move declaration...
11577 * lisp.h (DEFSYM): ...here.
11578
11579 * gnutls.c:
11580 * minibuf.c:
11581 * w32menu.c:
11582 * w32proc.c:
11583 * w32select.c: Don't include character.h.
11584
11585 * alloc.c (syms_of_alloc):
11586 * buffer.c (syms_of_buffer):
11587 * bytecode.c (syms_of_bytecode):
11588 * callint.c (syms_of_callint):
11589 * casefiddle.c (syms_of_casefiddle):
11590 * casetab.c (init_casetab_once):
11591 * category.c (init_category_once, syms_of_category):
11592 * ccl.c (syms_of_ccl):
11593 * cmds.c (syms_of_cmds):
11594 * composite.c (syms_of_composite):
11595 * dbusbind.c (syms_of_dbusbind):
11596 * dired.c (syms_of_dired):
11597 * dispnew.c (syms_of_display):
11598 * doc.c (syms_of_doc):
11599 * editfns.c (syms_of_editfns):
11600 * emacs.c (syms_of_emacs):
11601 * eval.c (syms_of_eval):
11602 * fileio.c (syms_of_fileio):
11603 * fns.c (syms_of_fns):
11604 * frame.c (syms_of_frame):
11605 * fringe.c (syms_of_fringe):
11606 * insdel.c (syms_of_insdel):
11607 * keymap.c (syms_of_keymap):
11608 * lread.c (init_obarray, syms_of_lread):
11609 * macros.c (syms_of_macros):
11610 * msdos.c (syms_of_msdos):
11611 * print.c (syms_of_print):
11612 * process.c (syms_of_process):
11613 * search.c (syms_of_search):
11614 * sound.c (syms_of_sound):
11615 * syntax.c (init_syntax_once, syms_of_syntax):
11616 * terminal.c (syms_of_terminal):
11617 * textprop.c (syms_of_textprop):
11618 * undo.c (syms_of_undo):
11619 * w32.c (globals_of_w32):
11620 * window.c (syms_of_window):
11621 * xdisp.c (syms_of_xdisp):
11622 * xfaces.c (syms_of_xfaces):
11623 * xfns.c (syms_of_xfns):
11624 * xmenu.c (syms_of_xmenu):
11625 * xsettings.c (syms_of_xsettings):
11626 * xterm.c (syms_of_xterm): Use DEFSYM.
11627
4228cf16
TZ
116282011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
11629
cd3520a4 11630 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
4228cf16 11631
7fcccf1e
PE
116322011-06-23 Paul Eggert <eggert@cs.ucla.edu>
11633
7efb4e0e
PE
11634 Integer and buffer overflow fixes (Bug#8873).
11635
ff5844ad
PE
11636 * print.c (printchar, strout): Check for string overflow.
11637 (PRINTPREPARE, printchar, strout):
11638 Don't set size unless allocation succeeds.
11639
90532f02
PE
11640 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
11641 for sizes. Check for string overflow more accurately.
11642 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
11643
6d84508d
PE
11644 * macros.c: Integer and buffer overflow fixes.
11645 * keyboard.h (struct keyboard.kbd_macro_bufsize):
11646 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
11647 Use ptrdiff_t, not int, for sizes.
11648 Don't increment bufsize until after realloc succeeds.
11649 Check for size-calculation overflow.
11650 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
11651
437b2cb4
PE
11652 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
11653
8b9ac8b4
PE
11654 * lread.c: Integer overflow fixes.
11655 (read_integer): Radix is now EMACS_INT, not int,
11656 to improve quality of diagnostics for out-of-range radices.
11657 Calculate buffer size correctly for out-of-range radices.
11658 (read1): Check for integer overflow in radices, and in
11659 read-circle numbers.
82cb60d3
PE
11660 (read_escape): Avoid int overflow.
11661 (Fload, openp, read_buffer_size, read1)
11662 (substitute_object_recurse, read_vector, read_list, map_obarray):
11663 Use ptrdiff_t, not int, for sizes.
11664 (read1): Use EMACS_INT, not int, for sizes.
20270765 11665 Check for size overflow.
8b9ac8b4 11666
7fcccf1e
PE
11667 * image.c (cache_image): Check for size arithmetic overflow.
11668
bfbbd7e7
PE
11669 * lread.c: Integer overflow issues.
11670 (saved_doc_string_size, saved_doc_string_length)
11671 (prev_saved_doc_string_size, prev_saved_doc_string_length):
11672 Now ptrdiff_t, not int.
11673 (read1): Don't assume doc string length fits in int. Check for
11674 out-of-range doc string lengths.
11675 (read_list): Don't assume file position fits in int.
39019e54 11676 (read_escape): Check for hex character overflow.
bfbbd7e7 11677
4e323265
LL
116782011-06-22 Leo Liu <sdl.web@gmail.com>
11679
11680 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
11681 Move to minibuffer.el.
11682
85fece3e
PE
116832011-06-22 Paul Eggert <eggert@cs.ucla.edu>
11684
20b84ce9 11685 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
85fece3e
PE
11686 The following patches are for when GLYPH_DEBUG && !XASSERT.
11687 * dispextern.h (trace_redisplay_p, dump_glyph_string):
11688 * dispnew.c (flush_stdout):
11689 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
11690 Mark as externally visible.
11691 * dispnew.c (check_window_matrix_pointers): Now static.
11692 * dispnew.c (window_to_frame_vpos):
11693 * xfns.c (unwind_create_frame):
11694 * xterm.c (x_check_font): Remove unused local.
11695 * scroll.c (CHECK_BOUNDS):
11696 * xfaces.c (cache_fache): Rename local to avoid shadowing.
11697 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
11698 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
11699 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
11700 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
11701 Now static.
11702 (debug_method_add): Use va_list and vsprintf rather than relying
11703 on undefined behavior with wrong number of arguments.
11704 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
11705 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
11706 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
11707 since we're not interested in debugging glyphs with old libraries.
11708 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
11709 GCC 4.6.0's static checking.
11710
0766b489
PE
117112011-06-22 Paul Eggert <eggert@cs.ucla.edu>
11712
31fd4b32
PE
11713 Integer overflow and signedness fixes (Bug#8873).
11714 A few related buffer overrun fixes, too.
11715
b79e8648
PE
11716 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
11717
0766b489
PE
11718 * dispextern.h (struct face.stipple):
11719 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
11720 (x_bitmap_mask, x_allocate_bitmap_record)
11721 (x_create_bitmap_from_data, x_create_bitmap_from_file)
11722 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
11723 (x_create_bitmap_from_xpm_data):
11724 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
11725 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
11726 (.bitmaps_last):
11727 * xfaces.c (load_pixmap):
11728 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
11729 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
11730 (.bitmaps_last, struct x_output.icon_bitmap):
11731 Use ptrdiff_t, not int, for bitmap indexes.
11732 (x_allocate_bitmap_record): Check for size overflow.
11733 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
11734
b081724f
PE
11735 Use ptrdiff_t, not int, for overlay counts.
11736 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
11737 * editfns.c (overlays_around, get_pos_property):
11738 * textprop.c (get_char_property_and_overlay):
11739 * xdisp.c (next_overlay_change, note_mouse_highlight):
11740 * xfaces.c (face_at_buffer_position):
21514da7
PE
11741 * buffer.c (OVERLAY_COUNT_MAX): New macro.
11742 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
11743 (Fnext_overlay_change, Fprevious_overlay_change)
11744 (mouse_face_overlay_overlaps, Foverlays_in):
b081724f 11745 Use ptrdiff_t, not int, for sizes.
21514da7 11746 (overlays_at, overlays_in): Check for size-calculation overflow.
b081724f 11747
3de73e5e
PE
11748 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
11749
2606c57b
PE
11750 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
11751 (x_session_initialize): Do not assume string length fits in int.
11752
aaafe47a
PE
11753 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
11754 This is unlikely, but can occur if DPI is outlandish.
11755
2674ddc8 11756 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
3a5077c5
PE
11757 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
11758
28154962
PE
11759 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
11760 * xrdb.c (magic_file_p, search_magic_path):
11761 Omit last arg SUFFIX; it was always 0. All callers changed.
11762 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
11763
7de51af5
PE
11764 * xfont.c (xfont_match): Avoid need for strlen.
11765
25ed6cc3
PE
11766 * xfns.c: Don't assume strlen fits in int.
11767 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
11768
4eab31dd
PE
11769 * xdisp.c (message_log_check_duplicate): Return intmax_t,
11770 not unsigned long, as we prefer signed integers. All callers changed.
11771 Detect integer overflow in repeat count.
11772 (message_dolog): Don't assume print length fits in 39 bytes.
df1f27af 11773 (display_mode_element): Don't assume strlen fits in int.
4eab31dd 11774
171e2a58
PE
11775 * termcap.c: Don't assume sizes fit in int and never overflow.
11776 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
11777 (gobble_line): Check for size-calculation overflow.
11778
ad39faca 11779 * minibuf.c (Fread_buffer):
6e5bb2dc 11780 * lread.c (intern, intern_c_string):
74ca2eb3
PE
11781 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
11782 Don't assume string length fits in int.
11783
52c61c22 11784 * keyboard.c (parse_tool_bar_item):
9bda3520
PE
11785 * gtkutil.c (style_changed_cb): Avoid need for strlen.
11786
b5b8c9e5
PE
11787 * font.c: Don't assume string length fits in int.
11788 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
11789 Use ptrdiff_t, not int.
ccd6111c
PE
11790 (font_intern_prop): Don't assume string length fits in int.
11791 Don't assume integer property fits in fixnum.
11792 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
b5b8c9e5 11793
882f0d81 11794 * filelock.c: Fix some buffer overrun and integer overflow issues.
51cab52b 11795 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
882f0d81
PE
11796 Reformulate so as not to need the command string.
11797 Invoke gzip -cd rather than gunzip, as it's more portable.
11798 (lock_info_type, lock_file_1, lock_file):
11799 Don't assume pid_t and time_t fit in unsigned long.
11800 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
11801 (current_lock_owner): Prefer signed type for sizes.
11802 Use memcpy, not strncpy, where memcpy is what is really wanted.
11803 Don't assume (via atoi) that time_t and pid_t fit in int.
11804 Check for time_t and/or pid_t out of range, e.g., via a network share.
11805 Don't alloca where an auto var works fine.
11806
93f4cf88
PE
11807 * fileio.c: Fix some integer overflow issues.
11808 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
11809 Don't assume string length fits in int.
11810 (directory_file_name): Don't assume string length fits in long.
11811 (make_temp_name): Don't assume pid fits in int, or that its print
11812 length is less than 20.
11813
f3e92b69
PE
11814 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
11815
1bfdaf10
PE
11816 * coding.c (make_subsidiaries): Don't assume string length fits in int.
11817
35016e9a
PE
11818 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
11819
3d1e65a1
PE
11820 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
11821 We prefer signed integers, even for size calculations.
11822
0b963a93
PE
11823 * emacs.c: Don't assume string length fits in 'int'.
11824 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
11825 (main): Don't invoke strlen when not needed.
11826
573f4b54
PE
11827 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
11828 (XD_DEBUG_MESSAGE): Don't waste a byte.
11829
989f33ba
PE
11830 * callproc.c (getenv_internal_1, getenv_internal)
11831 (Fgetenv_internal):
965d34eb
PE
11832 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
11833
e4d29b33
PE
11834 * lread.c (invalid_syntax): Omit length argument.
11835 All uses changed. This doesn't fix a bug, but it simplifies the
11836 code away from its former Hollerith-constant appearance, and it's
11837 one less 'int' to worry about when looking at integer-overflow issues.
51cab52b 11838 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
e4d29b33 11839
eb49b136
PE
11840 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
11841 This didn't break anything, but it didn't help either.
11842 It's confusing to put a bogus integer in a place where the actual
11843 value does not matter.
9f62aeb1 11844 (LIST_END_P): Remove unused macro and its bogus comment.
cbeff735 11845 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
eb49b136 11846
15375a22
PE
11847 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
11848 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
11849 implementation.
b61cc01c
PE
11850 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
11851 We prefer signed types, and the value cannot exceed the EMACS_INT
11852 range anyway (because otherwise the length would not be representable).
9a8e8d9b
PE
11853 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
11854 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
11855 This avoids a GCC warning when WIDE_EMACS_INT.
15375a22 11856
53b2623d
PE
11857 * indent.c (sane_tab_width): New function.
11858 (current_column, scan_for_column, Findent_to, position_indentation)
11859 (compute_motion): Use it. This is just for clarity.
8fcaf9cc 11860 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
53b2623d 11861
51cab52b 11862 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
45aebb64 11863
f2ed8a70
PE
11864 * lisp.h (lint_assume): New macro.
11865 * composite.c (composition_gstring_put_cache):
11866 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
11867
abe80cc6
PE
11868 * editfns.c, insdel.c:
11869 Omit unnecessary forward decls, to simplify future changes.
a9e860e1 11870
b02c740e
PE
11871 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
11872
ebc96716
PE
11873 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
11874
b4e50fa0 11875 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
f03dc6ef 11876 Use much-faster test for byte-length change.
311d5d7c 11877 Don't assume string byte-length fits in 'int'.
a4cf38e4 11878 Check that character arg fits in 'int'.
85461888 11879 (mapcar1): Declare byte as byte, for clarity.
b4e50fa0 11880
c0c1ee9f
PE
11881 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
11882
a498d7f4
PE
11883 * fns.c (concat): Catch string overflow earlier.
11884 Do not rely on integer wraparound.
11885
51cab52b
PE
11886 * dispextern.h (struct it.overlay_strings_charpos)
11887 (struct it.selective): Now EMACS_INT, not int.
87830974
PE
11888 * xdisp.c (forward_to_next_line_start)
11889 (back_to_previous_visible_line_start)
11890 (reseat_at_next_visible_line_start, next_element_from_buffer):
11891 Don't arbitrarily truncate the value of 'selective' to int.
11892
76031fad
PE
11893 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
11894
5eb55db9
PE
11895 * composite.c: Don't truncate sizes to 'int'.
11896 (composition_gstring_p, composition_reseat_it)
11897 (composition_adjust_point): Use EMACS_INT, not int.
7d100a81
PE
11898 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
11899 not EMACS_UINT, for indexes.
5eb55db9 11900
0703a717
PE
11901 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
11902
d6202519
PE
11903 * buffer.c: Include <verify.h>.
11904 (struct sortvec.priority, struct sortstr.priority):
8961a454 11905 Now EMACS_INT, not int.
c20998a7 11906 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
67c36fce
PE
11907 (struct sortstr.size, record_overlay_string)
11908 (struct sortstrlist.size, struct sortlist.used):
11909 Don't truncate size to int.
11910 (record_overlay_string): Check for size-calculation overflow.
d6202519 11911 (init_buffer_once): Check at compile-time, not run-time.
fadf4e30 11912
d5a19415
JM
119132011-06-22 Jim Meyering <meyering@redhat.com>
11914
029529ac 11915 Don't leak an XBM-image-sized buffer
d5a19415
JM
11916 * image.c (xbm_load): Free the image buffer after using it.
11917
a9041e6c
PE
119182011-06-21 Paul Eggert <eggert@cs.ucla.edu>
11919
11920 Port to Sun C.
11921 * composite.c (find_automatic_composition): Omit needless 'return 0;'
11922 that Sun C diagnosed.
11923 * fns.c (secure_hash): Fix pointer signedness issue.
11924 * intervals.c (static_offset_intervals): New function.
11925 (offset_intervals): Use it.
11926
7f3f739f
LL
119272011-06-21 Leo Liu <sdl.web@gmail.com>
11928
11929 * deps.mk (fns.o):
11930 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
11931 sha512.h.
11932
11933 * fns.c (secure_hash): Rename from crypto_hash_function and change
11934 the first arg to accept symbols.
5b66d427 11935 (Fsecure_hash): New primitive.
7f3f739f
LL
11936 (syms_of_fns): New symbols.
11937
76147d94
DD
119382011-06-20 Deniz Dogan <deniz@dogan.se>
11939
11940 * process.c (Fset_process_buffer): Clarify return value in
11941 docstring.
11942
7d7d0045
CY
119432011-06-18 Chong Yidong <cyd@stupidchicken.com>
11944
11945 * dispnew.c (add_window_display_history): Use BVAR.
11946
11947 * xdisp.c (debug_method_add): Use BVAR.
11948 (check_window_end, dump_glyph_matrix, dump_glyph)
11949 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
11950
11951 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
11952 Likewise.
11953
11954 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
11955 check till after the cache is created in init_frame_faces.
11956
ff2bc410
SM
119572011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
11958
11959 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
11960
28177add
PE
119612011-06-16 Paul Eggert <eggert@cs.ucla.edu>
11962
dd3482fe
PE
11963 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
11964 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
11965 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
11966
393d71f3 11967 Improve buffer-overflow checking (Bug#8873).
1c8e352f
PE
11968 * fileio.c (Finsert_file_contents):
11969 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
11970 Remove the old (too-loose) buffer overflow checks.
11971 They weren't needed, since make_gap checks for buffer overflow.
11972 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
11973 The old code merely checked for Emacs fixnum overflow, and relied
11974 on undefined (wraparound) behavior. The new code avoids undefined
11975 behavior, and also checks for ptrdiff_t and/or size_t overflow.
11976
2e6813b0 11977 * editfns.c (Finsert_char): Don't dump core with very negative counts.
21d890a4
PE
11978 Tune. Don't use wider integers than needed. Don't use alloca.
11979 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
2e6813b0 11980
599a9e4f
PE
11981 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
11982
99561444
PE
11983 * insdel.c, lisp.h (buffer_overflow): New function.
11984 (insert_from_buffer_1, replace_range, replace_range_2):
11985 * insdel.c (make_gap_larger):
11986 * editfns.c (Finsert_char):
11987 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
11988
28177add
PE
11989 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
11990
e69dafad
PE
119912011-06-15 Paul Eggert <eggert@cs.ucla.edu>
11992
4baa020d 11993 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
ff672d2c 11994
b1c46f02
PE
11995 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
11996 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
11997
e69dafad
PE
11998 * fileio.c: Don't assume EMACS_INT fits in off_t.
11999 (emacs_lseek): New static function.
12000 (Finsert_file_contents, Fwrite_region): Use it.
12001 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
12002
566684ea
PE
12003 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
12004
e6966cd6
PE
12005 * fns.c: Don't overflow int when computing a list length.
12006 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
12007 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
12008 truncation on 64-bit hosts. Check for QUIT every
12009 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
12010 faster and is responsive enough.
12011 (Flength): Report an error instead of overflowing an integer.
12012 (Fsafe_length): Return a float if the value is not representable
12013 as a fixnum. This shouldn't happen except in contrived situations.
6346d301 12014 (Fnthcdr, Fsort): Don't assume list length fits in int.
de41a810 12015 (Fcopy_sequence): Don't assume vector length fits in int.
00c604f2 12016
dd0b0efb
PE
12017 * alloc.c: Check that resized vectors' lengths fit in fixnums.
12018 (header_size, word_size): New constants.
12019 (allocate_vectorlike): Don't check size overflow here.
12020 (allocate_vector): Check it here instead, since this is the only
12021 caller of allocate_vectorlike that could cause overflow.
12022 Check that the new vector's length is representable as a fixnum.
12023
86fe5cfe
PE
12024 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
12025 The previous code was bogus. For example, next_almost_prime (32)
12026 returned 39, which is undesirable as it is a multiple of 3; and
12027 next_almost_prime (24) returned 25, which is a multiple of 5 so
12028 why was the code bothering to check for multiples of 7?
12029
80e88859
PE
12030 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
12031
4a2f0ad6
PE
12032 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
12033
f66c7cf8
PE
12034 Variadic C functions now count arguments with ptrdiff_t.
12035 This partly undoes my 2011-03-30 change, which replaced int with size_t.
12036 Back then I didn't know that the Emacs coding style prefers signed int.
12037 Also, in the meantime I found a few more instances where arguments
4a2f0ad6
PE
12038 were being counted with int, which may truncate counts on 64-bit
12039 machines, or EMACS_INT, which may be unnecessarily wide.
f66c7cf8
PE
12040 * lisp.h (struct Lisp_Subr.function.aMANY)
12041 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
12042 Arg counts are now ptrdiff_t, not size_t.
12043 All variadic functions and their callers changed accordingly.
12044 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
12045 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
12046 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
12047 * callint.c (Fcall_interactively): Check arg count for overflow,
12048 to avoid potential buffer overrun. Use signed char, not 'int',
12049 for 'varies' array, so that we needn't bother to check its size
12050 calculation for overflow.
12051 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
12052 * eval.c (apply_lambda):
12053 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
12054 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
12055 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
12056
a1759b76
PE
12057 * callint.c (Fcall_interactively): Don't use index var as event count.
12058
d96be9fc
PE
12059 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
12060 * mem-limits.h (SIZE): Remove; no longer used.
12061
a690a978 12062 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
5efd304b 12063
578c21e6
PE
12064 Remove unnecessary casts.
12065 * xterm.c (x_term_init):
12066 * xfns.c (x_set_border_pixel):
12067 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
12068 These aren't needed now that we assume ANSI C.
12069
96f53c6c
PE
12070 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
12071 It's more likely to cause problems (due to unsigned overflow)
12072 than to cure them.
12073
83c77d31
PE
12074 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
12075
ee2079f1
PE
12076 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
12077
6da65536
PE
12078 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
12079
7147c4a4
PE
12080 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
12081
193e32d9
PE
12082 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
12083
e5533da6
PE
12084 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
12085
9910e595
PE
12086 GLYPH_CODE_FACE returns EMACS_INT, not int.
12087 * dispextern.h (merge_faces):
12088 * xfaces.c (merge_faces):
01103c44
PE
12089 * xdisp.c (get_next_display_element, next_element_from_display_vector):
12090 Don't assume EMACS_INT fits in int.
9910e595 12091
2638320e
PE
12092 * character.h (CHAR_VALID_P): Remove unused parameter.
12093 * fontset.c, lisp.h, xdisp.c: All uses changed.
12094
045eb8d9
PE
12095 * editfns.c (Ftranslate_region_internal): Omit redundant test.
12096
c1f134b5
PE
12097 * fns.c (concat): Minor tuning based on overflow analysis.
12098 This doesn't fix any bugs. Use int to hold character, instead
12099 of constantly refetching from Emacs object. Use XFASTINT, not
12100 XINT, for value known to be a character. Don't bother comparing
12101 a single byte to 0400, as it's always less.
12102
395fcb93 12103 * floatfns.c (Fexpt):
327eeec8
PE
12104 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
12105
abbd3d23
PE
12106 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
12107 for characters.
12108
684a03ef
PE
12109 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
12110
0fed43f3
PE
12111 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
12112 Without this fix, on a 64-bit host (aset S 0 4294967386) would
12113 incorrectly succeed when S was a string, because 4294967386 was
12114 truncated before it was used.
12115
8fd02eb7
PE
12116 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
12117 Otherwise, an out-of-range integer could cause undefined behavior
12118 on a 64-bit host.
12119
f8c86b69
PE
12120 * composite.c: Use int, not EMACS_INT, for characters.
12121 (fill_gstring_body, composition_compute_stop_pos): Use int, not
12122 EMACS_INT, for values that are known to be in character range.
12123 This doesn't fix any bugs but is the usual style inside Emacs and
12124 may generate better code on 32-bit machines.
12125
34206dd2
PE
12126 Make sure a 64-bit char is never passed to ENCODE_CHAR.
12127 This is for reasons similar to the recent CHAR_STRING fix.
12128 * charset.c (Fencode_char): Check that character arg is actually
12129 a character. Pass an int to ENCODE_CHAR.
12130 * charset.h (ENCODE_CHAR): Verify that the character argument is no
12131 wider than 'int', as a compile-time check to prevent future regressions
12132 in this area.
12133
c5958d4c 12134 * character.c (char_string): Remove unnecessary casts.
13bdea59
PE
12135
12136 Make sure a 64-bit char is never passed to CHAR_STRING.
12137 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
12138 by silently ignoring the top 32 bits, allowing some values
12139 that were far too large to be valid characters.
12140 * character.h: Include <verify.h>.
12141 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
12142 arguments are no wider than unsigned, as a compile-time check
12143 to prevent future regressions in this area.
12144 * data.c (Faset):
01103c44 12145 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
13bdea59
PE
12146 (Fsubst_char_in_region):
12147 * fns.c (concat):
12148 * xdisp.c (decode_mode_spec_coding):
12149 Adjust to CHAR_STRING's new requirement.
12150 * editfns.c (Finsert_char, Fsubst_char_in_region):
12151 * fns.c (concat): Check that character args are actually
12152 characters. Without this test, these functions did the wrong
12153 thing with wildly out-of-range values on 64-bit hosts.
12154
d37ca623
PE
12155 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
12156 These casts should not be needed on 32-bit hosts, either.
12157 * keyboard.c (read_char):
12158 * lread.c (Fload): Remove casts to unsigned.
12159
ea204efb
PE
12160 * lisp.h (UNSIGNED_CMP): New macro.
12161 This fixes comparison bugs on 64-bit hosts.
12162 (ASCII_CHAR_P): Use it.
12163 * casefiddle.c (casify_object):
01103c44 12164 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
ea204efb
PE
12165 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
12166 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
12167 * dispextern.h (FACE_FROM_ID):
12168 * keyboard.c (read_char): Use UNSIGNED_CMP.
12169
41cb286c
PE
12170 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
12171 not to EMACS_INT, to avoid GCC warning.
12172
4a1b9832
PE
12173 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
12174
55daad71
PE
12175 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
12176 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
12177 isn't needed on 32-bit machines.
8f95c75c 12178
01103c44
PE
12179 * buffer.c (Fgenerate_new_buffer_name):
12180 Use EMACS_INT for count, not int.
0ceccced 12181 (advance_to_char_boundary): Return EMACS_INT, not int.
e762cafe
PE
12182
12183 * data.c (Qcompiled_function): Now static.
12184
c6f072e7
PE
12185 * window.c (window_body_lines): Now static.
12186
20ce5912
PE
12187 * image.c (gif_load): Rename local to avoid shadowing.
12188
9c4c5f81
PE
12189 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
12190 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
12191 * alloc.c (make_save_value): Integer argument is now of type
12192 ptrdiff_t, not int.
12193 (mark_object): Use ptrdiff_t, not int.
12194 * lisp.h (pD): New macro.
12195 * print.c (print_object): Use it.
12196
c0c5c8ae
PE
12197 * alloc.c: Use EMACS_INT, not int, to count objects.
12198 (total_conses, total_markers, total_symbols, total_vector_size)
12199 (total_free_conses, total_free_markers, total_free_symbols)
01103c44
PE
12200 (total_free_floats, total_floats, total_free_intervals)
12201 (total_intervals, total_strings, total_free_strings):
c0c5c8ae
PE
12202 Now EMACS_INT, not int. All uses changed.
12203 (Fgarbage_collect): Compute overall total using a double, so that
12204 integer overflow is less likely to be a problem. Check for overflow
12205 when converting back to an integer.
5a25e253
PE
12206 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
12207 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
12208 These were 'int' variables that could overflow on 64-bit hosts;
12209 they were never used, so remove them instead of repairing them.
211a0b2a 12210 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
6349ae4d
PE
12211 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
12212 Previously, this ceilinged at INT_MAX, but that doesn't work on
12213 64-bit machines.
e46bb31a 12214 (allocate_pseudovector): Don't use EMACS_INT when int would do.
c0c5c8ae 12215
c78baabf 12216 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
86f61a15 12217 (allocate_vectorlike): Check for ptrdiff_t overflow.
b6439961
PE
12218 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
12219 when a (possibly-narrower) signed value would do just as well.
12220 We prefer using signed arithmetic, to avoid comparison confusion.
c78baabf 12221
c9d624c6
PE
12222 * alloc.c: Catch some string size overflows that we were missing.
12223 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
12224 for convenience in STRING_BYTES_MAX.
12225 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
12226 The definition here is exact; the one in lisp.h was approximate.
12227 (allocate_string_data): Check for string overflow. This catches
12228 some instances we weren't catching before. Also, it catches
12229 size_t overflow on (unusual) hosts where SIZE_MAX <= min
12230 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
12231 and ptrdiff_t and EMACS_INT are both 64 bits.
c78baabf 12232
c9d624c6
PE
12233 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
12234 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
640c8776 12235 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
c9d624c6 12236
353032ce
PE
12237 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
12238
2bccce07
PE
12239 * alloc.c (Fmake_string): Check for out-of-range init.
12240
0ac30604
SM
122412011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
12242
12243 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
12244
c195f2de
JD
122452011-06-14 Jan Djärv <jan.h.d@swipnet.se>
12246
12247 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
12248 xg_get_default_scrollbar_width.
12249
12250 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
12251 (int_gtk_range_get_value): Move to the scroll bar part of the file.
12252 (style_changed_cb): Call update_theme_scrollbar_width and call
12253 x_set_scroll_bar_default_width and xg_frame_set_char_size for
12254 all frames (Bug#8505).
12255 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
12256 Call gtk_window_set_resizable if HAVE_GTK3.
12257 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
12258 and height if HAVE_GTK3 (Bug#8505).
12259 (scroll_bar_width_for_theme): New variable.
12260 (update_theme_scrollbar_width): New function.
12261 (xg_get_default_scrollbar_width): Move code to
12262 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
12263 (xg_initialize): Call update_theme_scrollbar_width.
12264
12265 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
12266
12267 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
12268
e10ac9f1
MR
122692011-06-12 Martin Rudalics <rudalics@gmx.at>
12270
12271 * frame.c (make_frame): Call other_buffer_safely instead of
12272 other_buffer.
12273
12274 * window.c (temp_output_buffer_show): Call display_buffer with
12275 second argument Vtemp_buffer_show_specifiers and reset latter
12276 immediately after the call.
12277 (Vtemp_buffer_show_specifiers): New variable.
12278 (auto_window_vscroll_p, next_screen_context_lines)
12279 (Vscroll_preserve_screen_position): Remove leading asterisks from
12280 doc-strings.
12281
2d3c217e 122822011-06-12 Paul Eggert <eggert@cs.ucla.edu>
4475bec4 12283
7b7f97e8 12284 Fix minor problems found by GCC 4.6.0 static checking.
4475bec4
PE
12285 * buffer.c (Qclone_number): Remove for now, as it's unused.
12286 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
12287 (record_buffer): Remove unused local.
12288 * frame.c (other_visible_frames, frame_buffer_list): Now static.
12289 (set_frame_buffer_list): Remove; unused.
12290 * frame.h (other_visible_frames): Remove decl.
12291 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
12292 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
12293 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
12294 if HAVE_GPM.
12295 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
12296 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
12297 Define only if HAVE_GPM.
12298 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
12299 (update_hints_inhibit): Remove; never set. All uses removed.
12300 * widgetprv.h (emacsFrameClassRec): Remove decl.
12301 * window.c (delete_deletable_window): Now returns void, since it
12302 wasn't returning anything.
12303 (compare_window_configurations): Remove unused locals.
12304 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
12305 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
4475bec4
PE
12306 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
12307 the same widths as pointers. This follows up on the 2011-05-06 patch.
12308 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
12309 * xterm.h: Likewise.
12310 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
12311
1384b89e
JB
123122011-06-12 Juanma Barranquero <lekktu@gmail.com>
12313
12314 * makefile.w32-in: Update dependencies.
12315 (LISP_H): Add lib/intprops.h.
12316
1100a63c
CY
123172011-06-11 Chong Yidong <cyd@stupidchicken.com>
12318
12319 * image.c (gif_load): Add animation frame delay to the metadata.
12320 (syms_of_image): Use DEFSYM. New symbol `delay'.
12321
6198ccd0
MR
123222011-06-11 Martin Rudalics <rudalics@gmx.at>
12323
12324 * window.c (delete_deletable_window): Re-add.
12325 (Fset_window_configuration): Rewrite to handle dead buffers and
12326 consequently deletable windows.
12327 (window_tree, Fwindow_tree): Remove. Supply functionality in
12328 window.el.
12329 (compare_window_configurations): Simplify code.
12330
b6e3633c
AS
123312011-06-11 Andreas Schwab <schwab@linux-m68k.org>
12332
1ab0dee5
AS
12333 * image.c (imagemagick_load_image): Fix type mismatch.
12334 (Fimagemagick_types): Likewise.
12335
b6e3633c
AS
12336 * window.h (replace_buffer_in_windows): Declare.
12337
9397e56f
MR
123382011-06-11 Martin Rudalics <rudalics@gmx.at>
12339
12340 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
12341 Qclone_number. Remove external declaration of Qdelete_window.
12342 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
12343 code.
640c8776
SM
12344 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
12345 Run Qbuffer_list_update_hook if allowed.
9397e56f
MR
12346 (Fother_buffer): Rewrite doc-string. Major rewrite for new
12347 buffer list implementation.
12348 (other_buffer_safely): New function.
12349 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
12350 calls to replace_buffer_in_windows and
12351 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
12352 if allowed.
12353 (record_buffer): Inhibit quitting and rewrite using quittable
12354 functions. Run Qbuffer_list_update_hook if allowed.
12355 (Frecord_buffer, Funrecord_buffer): New functions.
640c8776
SM
12356 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
12357 Move switch-to-buffer to window.el.
9397e56f
MR
12358 (bury-buffer): Move to window.el.
12359 (Vbuffer_list_update_hook): New variable.
12360
12361 * lisp.h (other_buffer_safely): Add prototype in buffer.c
12362 section.
12363
12364 * window.h (resize_frame_windows): Move up in code.
12365 (Fwindow_frame): Remove EXFUN.
12366 (replace_buffer_in_all_windows): Remove prototype.
12367 (replace_buffer_in_windows_safely): Add prototype.
12368
12369 * window.c: Declare Qdelete_window static again. Move down
12370 declaration of select_count.
12371 (Fnext_window, Fprevious_window): Rewrite doc-strings.
12372 (Fother_window): Move to window.el.
12373 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
12374 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
12375 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
12376 window.el.
12377 (replace_buffer_in_windows): Implement by calling
12378 Qreplace_buffer_in_windows.
12379 (replace_buffer_in_all_windows): Remove with some functionality
12380 moved into replace_buffer_in_windows_safely.
12381 (replace_buffer_in_windows_safely): New function.
12382 (select_window_norecord, select_frame_norecord): Move in front
12383 of run_window_configuration_change_hook. Remove now obsolete
12384 declarations.
640c8776
SM
12385 (Fset_window_buffer): Rewrite doc-string.
12386 Call Qrecord_window_buffer.
9397e56f
MR
12387 (keys_of_window): Move binding for other-window to window.el.
12388
b50691aa
CY
123892011-06-11 Chong Yidong <cyd@stupidchicken.com>
12390
12391 * dispextern.h (struct image): Replace data member, whose int_val
12392 and ptr_val fields were not used by anything, with a single
12393 lisp_val object.
12394
12395 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
12396 (gif_clear_image, gif_load, imagemagick_load_image)
12397 (gs_clear_image, gs_load): Callers changed.
12398
3f754b86
PE
123992011-06-10 Paul Eggert <eggert@cs.ucla.edu>
12400
cca69397
PE
12401 * buffer.h: Include <time.h>, for time_t.
12402 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
12403
109e28d0
PE
12404 Fix minor problems found by static checking.
12405
60737f02
PE
12406 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
12407
4b66faf3
PE
12408 Make identifiers static if they are not used in other modules.
12409 * data.c (Qcompiled_function, Qframe, Qvector):
12410 * image.c (QimageMagick, Qsvg):
12411 * minibuf.c (Qmetadata):
12412 * window.c (resize_window_check, resize_root_window): Now static.
12413 * window.h (resize_window_check, resize_root_window): Remove decls.
12414
109e28d0
PE
12415 * window.c (window_deletion_count, delete_deletable_window):
12416 Remove; unused.
46a4ce9e
PE
12417 (window_body_lines): Now static.
12418 (Fdelete_other_windows_internal): Mark vars as initialized.
12419 Make sure 'resize_failed' is initialized.
12420 (run_window_configuration_change_hook): Rename local to avoid shadowing.
12421 (resize_window_apply): Remove unused local.
12422 * window.h (delete_deletable_window): Remove decl.
12423
109e28d0 12424 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
33290528
PE
12425 (imagemagick_load_image): Fix pointer signedness problem by changing
12426 last arg from unsigned char * to char *. All uses changed.
12427 Also, fix a local for similar reasons.
12428 Remove unused locals. Remove locals to avoid shadowing.
12429 (fn_rsvg_handle_free): Remove; unused.
12430 (svg_load, svg_load_image): Fix pointer signedness problem.
f7e13da3 12431 (imagemagick_load_image): Don't use garbage pointer image_wand.
33290528 12432
3f754b86
PE
12433 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
12434
2547adb1
CY
124352011-06-10 Chong Yidong <cyd@stupidchicken.com>
12436
12437 * image.c (gif_load): Fix omitted cast error introduced by
12438 2011-06-06 change.
12439
2c8e37d4
MR
124402011-06-10 Martin Rudalics <rudalics@gmx.at>
12441
12442 * window.h (resize_proportionally, orig_total_lines)
12443 (orig_top_line): Remove from window structure.
12444 (set_window_height, set_window_width, change_window_heights)
12445 (Fdelete_window): Remove prototypes.
12446 (resize_frame_windows): Remove duplicate declaration.
12447
440a42e3
EZ
124482011-06-10 Eli Zaretskii <eliz@gnu.org>
12449
12450 * window.h (resize_frame_windows, resize_window_check)
12451 (delete_deletable_window, resize_root_window)
12452 (resize_frame_windows): Declare prototypes.
12453
12454 * window.c (resize_window_apply): Make definition be "static" to
12455 match the prototype.
12456
562dd5e9
MR
124572011-06-10 Martin Rudalics <rudalics@gmx.at>
12458
12459 * window.c: Remove declarations of Qwindow_size_fixed,
12460 window_min_size_1, window_min_size_2, window_min_size,
12461 size_window, window_fixed_size_p, enlarge_window, delete_window.
12462 Remove static from declaration of Qdelete_window, it's
12463 temporarily needed by Fbury_buffer.
12464 (replace_window): Don't assign orig_top_line and
12465 orig_total_lines.
12466 (Fdelete_window, delete_window): Remove. Window deletion is
12467 handled by window.el.
640c8776
SM
12468 (window_loop): Remove DELETE_OTHER_WINDOWS case.
12469 Replace Fdelete_window calls with calls to Qdelete_window.
562dd5e9
MR
12470 (Fdelete_other_windows): Remove. Deleting other windows is
12471 handled by window.el.
12472 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
12473 handled in window.el.
12474 (window_min_size_2, window_min_size_1, window_min_size): Remove.
12475 Window minimum sizes are handled in window.el.
12476 (shrink_windows, size_window, set_window_height)
12477 (set_window_width, change_window_heights, window_height)
12478 (window_width, CURBEG, CURSIZE, enlarge_window)
12479 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
12480 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
12481 handled in window.el.
12482 (make_dummy_parent): Rename to make_parent_window and give it a
12483 second argument horflag.
12484 (make_window): Don't set resize_proportionally any more.
12485 (Fsplit_window): Remove. Windows are split in window.el.
12486 (save_restore_action, save_restore_orig_size)
12487 (shrink_window_lowest_first, save_restore_orig_size): Remove.
12488 Resize mini windows in window.el.
12489 (grow_mini_window, shrink_mini_window): Implement by calling
12490 Qresize_root_window_vertically, resize_window_check and
12491 resize_window_apply.
640c8776
SM
12492 (saved_window, Fset_window_configuration, save_window_save):
12493 Do not handle orig_top_line, orig_total_lines, and
562dd5e9
MR
12494 resize_proportionally.
12495 (window_min_height, window_min_width): Move to window.el.
12496 (keys_of_window): Move bindings for delete-other-windows,
12497 split-window, delete-window and enlarge-window to window.el.
12498
12499 * buffer.c: Temporarily extern Qdelete_window.
12500 (Fbury_buffer): Temporarily call Qdelete_window instead of
12501 Fdelete_window (Fbury_buffer will move to window.el soon).
12502
12503 * frame.c (set_menu_bar_lines_1): Remove code handling
12504 orig_top_line and orig_total_lines.
12505
12506 * dispnew.c (adjust_frame_glyphs_initially): Don't use
12507 set_window_height but set heights directly.
12508 (change_frame_size_1): Use resize_frame_windows.
12509
12510 * xdisp.c (init_xdisp): Don't use set_window_height but set
12511 heights directly.
12512
640c8776
SM
12513 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
12514 Use resize_frame_windows instead of change_window_heights and run
562dd5e9
MR
12515 run_window_configuration_change_hook.
12516
12517 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
12518 instead of change_window_heights and run
12519 run_window_configuration_change_hook.
12520
1a13852e
MR
125212011-06-09 Martin Rudalics <rudalics@gmx.at>
12522
12523 * window.c (replace_window): Rename second argument REPLACEMENT to
12524 NEW. New third argument SETFLAG. Rewrite.
12525 (delete_window, make_dummy_parent): Call replace_window with
12526 third argument 1.
12527 (window_list_1): Move down in code.
12528 (run_window_configuration_change_hook): Move set_buffer part
12529 before select_frame_norecord part in order to unwind correctly.
12530 Rename count1 to count.
12531 (recombine_windows, delete_deletable_window, resize_root_window)
12532 (Fdelete_other_windows_internal)
12533 (Frun_window_configuration_change_hook, make_parent_window)
12534 (resize_window_check, resize_window_apply, Fresize_window_apply)
12535 (resize_frame_windows, Fsplit_window_internal)
640c8776
SM
12536 (Fdelete_window_internal, Fresize_mini_window_internal):
12537 New functions.
1a13852e
MR
12538 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
12539
f3d1777e
MR
125402011-06-08 Martin Rudalics <rudalics@gmx.at>
12541
496e208e
MR
12542 * window.h (window): Add some new members to window structure -
12543 normal_lines, normal_cols, new_total, new_normal, clone_number,
12544 splits, nest, prev_buffers, next_buffers.
12545 (WINDOW_TOTAL_SIZE): Move here from window.c.
b9e809c2 12546 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
496e208e 12547
f3d1777e
MR
12548 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
12549 Remove.
496e208e
MR
12550 (make_dummy_parent): Set new members of windows structure.
12551 (make_window): Move down in code. Handle new members of window
12552 structure.
12553 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
12554 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
12555 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
12556 (Fset_window_prev_buffers, Fwindow_next_buffers)
640c8776
SM
12557 (Fset_window_next_buffers, Fset_window_clone_number):
12558 New functions.
496e208e
MR
12559 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
12560 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
12561 Doc-string fixes.
12562 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
12563 Argument WINDOW can be now internal window too.
12564 (Fwindow_use_time): Move up in code.
12565 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
12566 Rewrite doc-string.
12567 (Fset_window_configuration, saved_window)
12568 (Fcurrent_window_configuration, save_window_save): Handle new
12569 members of window structure.
b9e809c2
MR
12570 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
12571 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
12572 (syms_of_window): New Lisp objects Qrecord_window_buffer,
12573 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
12574 Qget_mru_window, Qresize_root_window,
12575 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
12576 Qauto_buffer_name; staticpro them.
f3d1777e 12577
abde8f8c
MR
125782011-06-07 Martin Rudalics <rudalics@gmx.at>
12579
12580 * window.c (Fwindow_total_size, Fwindow_left_column)
12581 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
12582 (Fwindow_list_1): New functions.
12583 (window_box_text_cols): Replace with window_body_cols.
640c8776
SM
12584 (Fwindow_width, Fscroll_left, Fscroll_right):
12585 Use window_body_cols instead of window_box_text_cols.
12586 (delete_window, Fset_window_configuration):
12587 Call delete_all_subwindows with window as argument.
fa8a67e6
MR
12588 (delete_all_subwindows): Take a window as argument and not a
12589 structure. Rewrite.
190b47e6
MR
12590 (window_loop): Remove handling of GET_LRU_WINDOW and
12591 GET_LARGEST_WINDOW.
12592 (Fget_lru_window, Fget_largest_window): Move to window.el.
abde8f8c
MR
12593
12594 * window.h: Extern window_body_cols instead of
fa8a67e6
MR
12595 window_box_text_cols. delete_all_subwindows now takes a
12596 Lisp_Object as argument.
abde8f8c 12597
640c8776
SM
12598 * indent.c (compute_motion, Fcompute_motion):
12599 Use window_body_cols instead of window_box_text_cols.
abde8f8c 12600
fa8a67e6
MR
12601 * frame.c (delete_frame): Call delete_all_subwindows with root
12602 window as argument.
12603
a54e3482
DC
126042011-06-07 Daniel Colascione <dan.colascione@gmail.com>
12605
12606 * fns.c (Fputhash): Document return value.
12607
60002bf5
CY
126082011-06-06 Chong Yidong <cyd@stupidchicken.com>
12609
12610 * image.c (gif_load): Implement gif89a spec "no disposal" method.
12611
0c671da6 126122011-06-06 Paul Eggert <eggert@cs.ucla.edu>
ccd9a01a 12613
b862a52a 12614 Cons<->int and similar integer overflow fixes (Bug#8794).
77984278 12615
be44ca6c
PE
12616 Check for overflow when converting integer to cons and back.
12617 * charset.c (Fdefine_charset_internal, Fdecode_char):
12618 Use cons_to_unsigned to catch overflow.
12619 (Fencode_char): Use INTEGER_TO_CONS.
12620 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
12621 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
12622 * data.c (long_to_cons, cons_to_long): Remove.
12623 (cons_to_unsigned, cons_to_signed): New functions.
12624 These signal an error for invalid or out-of-range values.
12625 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
12626 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
12627 * font.c (Ffont_variation_glyphs):
12628 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
12629 * lisp.h: Include <intprops.h>.
12630 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
12631 (cons_to_signed, cons_to_unsigned): New decls.
12632 (long_to_cons, cons_to_long): Remove decls.
12633 * undo.c (record_first_change): Use INTEGER_TO_CONS.
12634 (Fprimitive_undo): Use CONS_TO_INTEGER.
12635 * xfns.c (Fx_window_property): Likewise.
12636 * xselect.c: Include <limits.h>.
12637 (x_own_selection, selection_data_to_lisp_data):
12638 Use INTEGER_TO_CONS.
12639 (x_handle_selection_request, x_handle_selection_clear)
12640 (x_get_foreign_selection, Fx_disown_selection_internal)
12641 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
12642 (lisp_data_to_selection_data): Use cons_to_unsigned.
12643 (x_fill_property_data): Use cons_to_signed.
12644 Report values out of range.
12645
d1f3d2af
PE
12646 Check for buffer and string overflow more precisely.
12647 * buffer.h (BUF_BYTES_MAX): New macro.
12648 * lisp.h (STRING_BYTES_MAX): New macro.
12649 * alloc.c (Fmake_string):
12650 * character.c (string_escape_byte8):
12651 * coding.c (coding_alloc_by_realloc):
12652 * doprnt.c (doprnt):
12653 * editfns.c (Fformat):
12654 * eval.c (verror):
12655 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
12656 since they may not be the same number.
12657 * editfns.c (Finsert_char):
12658 * fileio.c (Finsert_file_contents):
12659 Likewise for BUF_BYTES_MAX.
12660
dd52fcea
PE
12661 * image.c: Use ptrdiff_t, not int, for sizes.
12662 (slurp_file): Switch from int to ptrdiff_t.
12663 All uses changed.
12664 (slurp_file): Check that file size fits in both size_t (for
12665 malloc) and ptrdiff_t (for sanity and safety).
12666
7f9bbdbb
PE
12667 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
12668 if b->modtime has its maximal value.
12669
dfe18f82
PE
12670 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
12671
84acfcf0
PE
12672 Don't assume time_t can fit into int.
12673 * buffer.h (struct buffer.modtime): Now time_t, not int.
12674 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
12675 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
12676
ccd9a01a
PE
12677 Minor fixes for signed vs unsigned integers.
12678 * character.h (MAYBE_UNIFY_CHAR):
12679 * charset.c (maybe_unify_char):
12680 * keyboard.c (read_char, reorder_modifiers):
12681 XINT -> XFASTINT, since the integer must be nonnegative.
12682 * ftfont.c (ftfont_spec_pattern):
12683 * keymap.c (access_keymap, silly_event_symbol_error):
12684 XUINT -> XFASTINT, since the integer must be nonnegative.
12685 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
12686 since it makes no difference and we prefer signed.
12687 * keyboard.c (record_char): Use XUINT when all the neighbors do.
12688 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
12689 nonnegative.
12690
d6d100dd
SM
126912011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
12692
12693 * window.h (Fwindow_frame): Declare.
12694
2b6148e4
PE
126952011-06-06 Paul Eggert <eggert@cs.ucla.edu>
12696
12697 * alloc.c: Simplify handling of large-request failures (Bug#8800).
12698 (SPARE_MEMORY): Always define.
12699 (LARGE_REQUEST): Remove.
12700 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
12701
f230ecc9
MR
127022011-06-06 Martin Rudalics <rudalics@gmx.at>
12703
727e958e
MR
12704 * lisp.h: Move EXFUNS for Fframe_root_window,
12705 Fframe_first_window and Fset_frame_selected_window to window.h.
12706
12707 * window.h: Move EXFUNS for Fframe_root_window,
12708 Fframe_first_window and Fset_frame_selected_window here from
12709 lisp.h.
12710
12711 * frame.c (Fwindow_frame, Fframe_first_window)
12712 (Fframe_root_window, Fframe_selected_window)
12713 (Fset_frame_selected_window): Move to window.c.
12714 (Factive_minibuffer_window): Move to minibuf.c.
12715 (Fother_visible_frames_p): New function.
12716
12717 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
12718
f230ecc9
MR
12719 * window.c (decode_window, decode_any_window): Move up in code.
12720 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
12721 (inhibit_frame_unsplittable): Remove unused variable.
bf60a96b
MR
12722 (Fwindow_buffer): Move up and rewrite doc-string.
12723 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
12724 (Fwindow_prev): New functions.
727e958e
MR
12725 (Fwindow_frame): Move here from frame.c. Accept any window as
12726 argument.
12727 (Fframe_root_window, Fframe_first_window)
12728 (Fframe_selected_window): Move here from frame.c. Accept frame
12729 or arbitrary window as argument. Update doc-strings.
12730 (Fminibuffer_window): Move up in code.
12731 (Fwindow_minibuffer_p): Move up in code and simplify.
d6d100dd
SM
12732 (Fset_frame_selected_window): Move here from frame.c.
12733 Marginal rewrite.
727e958e
MR
12734 (Fselected_window, select_window, Fselect_window): Move up in
12735 code. Minor doc-string fixes.
f230ecc9 12736
4d09bcf6
PE
127372011-06-06 Paul Eggert <eggert@cs.ucla.edu>
12738
12739 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
12740 Do not assume that spare memory exists; that assumption is valid
12741 only if SYSTEM_MALLOC.
12742 (LARGE_REQUEST): New macro, so that the issue of large requests
12743 is separated from the issue of spare memory.
12744
810928a2
AS
127452011-06-05 Andreas Schwab <schwab@linux-m68k.org>
12746
172418ad
AS
12747 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
12748 format. (Bug#8806)
12749
43f862f7
AS
12750 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
12751
810928a2
AS
12752 * xfns.c (x_set_scroll_bar_default_width): Move declarations
12753 before statements.
12754
a059fe24
JD
127552011-06-05 Jan Djärv <jan.h.d@swipnet.se>
12756
12757 * gtkutil.c (xg_get_default_scrollbar_width): New function.
12758
12759 * gtkutil.h: Declare xg_get_default_scrollbar_width.
12760
12761 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
12762 min width by calling x_set_scroll_bar_default_width (Bug#8505).
12763
989bf368
JB
127642011-06-05 Juanma Barranquero <lekktu@gmail.com>
12765
12766 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
12767
4b80f674
CY
127682011-06-04 Chong Yidong <cyd@stupidchicken.com>
12769
12770 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
12771 (x_clipboard_manager_save): Add return value.
d6d100dd
SM
12772 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
12773 New error handlers.
4b80f674
CY
12774 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
12775 Obey Vx_select_enable_clipboard_manager. Catch errors in
12776 x_clipboard_manager_save (Bug#8779).
12777 (Vx_select_enable_clipboard_manager): New variable.
de65b42c 12778 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
4b80f674 12779
99a33b77 127802011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
8b3115e7
DN
12781
12782 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
12783
99a33b77 127842011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14eca62f
YM
12785
12786 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
12787 in the current matrix if keep_current_p is non-zero.
12788
8264569d
EZ
127892011-06-04 Eli Zaretskii <eliz@gnu.org>
12790
12791 * bidi.c (bidi_level_of_next_char): Fix last change.
12792
57f97249
EZ
127932011-06-03 Eli Zaretskii <eliz@gnu.org>
12794
fec2107c 12795 Support bidi reordering of text covered by display properties.
57f97249 12796
fec2107c
EZ
12797 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
12798 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
12799 (bidi_cache_search, bidi_cache_iterator_state)
12800 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
d6d100dd
SM
12801 (bidi_level_of_next_char, bidi_move_to_visually_next):
12802 Support character positions inside a run of characters covered by a
fec2107c
EZ
12803 display string.
12804 (bidi_paragraph_init, bidi_resolve_explicit_1)
12805 (bidi_level_of_next_char): Call bidi_fetch_char and
12806 bidi_fetch_char_advance instead of FETCH_CHAR and
12807 FETCH_CHAR_ADVANCE.
12808 (bidi_init_it): Initialize new members.
12809 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
12810 definitions.
12811 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
12812 instead of using explicit *_CHAR codes.
d6d100dd
SM
12813 (bidi_resolve_explicit, bidi_resolve_weak):
12814 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
fec2107c
EZ
12815 bidirectional text is supported only in multibyte buffers.
12816 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
12817 it to initialize the frame_window_p member of struct bidi_it.
12818 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
12819 (bidi_resolve_explicit, bidi_resolve_weak)
12820 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
12821 bidi_it->nchars is non-positive.
12822 (bidi_level_of_next_char): Don't try to lookup the cache for the
12823 next/previous character if nothing is cached there yet, or if we
12824 were just reseat()'ed to a new position.
c40e2fb2 12825
0e14fe90
EZ
12826 * xdisp.c (set_cursor_from_row): Set start and stop points
12827 according to the row's direction when priming the loop that looks
12828 for the glyph on which to display cursor.
12829 (single_display_spec_intangible_p): Function deleted.
12830 (display_prop_intangible_p): Reimplement to call
12831 handle_display_spec instead of single_display_spec_intangible_p.
d6d100dd
SM
12832 Accept 3 additional arguments needed by handle_display_spec.
12833 This fixes incorrect cursor motion across display property with complex
0e14fe90
EZ
12834 values: lists, `(when COND...)' forms, etc.
12835 (single_display_spec_string_p): Support property values that are
12836 lists with the argument STRING its top-level element.
12837 (display_prop_string_p): Fix the condition for processing a
12838 property that is a list to be consistent with handle_display_spec.
fec2107c 12839 (handle_display_spec): New function, refactored from the
fc6f18ce
EZ
12840 last portion of handle_display_prop.
12841 (compute_display_string_pos): Accept additional argument
12842 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
12843 value of a `display' property is a "replacing spec".
12844 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
12845 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
12846 the display property, but just return a value indicating whether
12847 the display property will replace the characters it covers.
12848 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
12849 frame_window_p members of struct bidi_it.
d6d100dd
SM
12850 (compute_display_string_pos, compute_display_string_end):
12851 New functions.
fec2107c
EZ
12852 (push_it): Accept second argument POSITION, where pop_it should
12853 jump to continue iteration.
12854 (reseat_1): Initialize bidi_it.disp_pos.
fc6f18ce 12855
fec2107c
EZ
12856 * keyboard.c (adjust_point_for_property): Adjust the call to
12857 display_prop_intangible_p to its new signature.
fc6f18ce
EZ
12858
12859 * dispextern.h (struct bidi_it): New member frame_window_p.
fec2107c
EZ
12860 (bidi_init_it): Update prototypes.
12861 (display_prop_intangible_p): Update prototype.
d6d100dd
SM
12862 (compute_display_string_pos, compute_display_string_end):
12863 Declare prototypes.
fec2107c
EZ
12864 (struct bidi_it): New members nchars and disp_pos. ch_len is now
12865 EMACS_INT.
fc6f18ce 12866
40087514 128672011-06-02 Paul Eggert <eggert@cs.ucla.edu>
0de4bb68 12868
57f53182
PE
12869 Malloc failure behavior now depends on size of allocation.
12870 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
12871 * lisp.h: Change signatures accordingly.
12872 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
12873 All callers changed. (Bug#8762)
12874
12875 * gnutls.c: Use Emacs's memory allocators.
12876 Without this change, the gnutls library would invoke malloc etc.
12877 directly, which causes problems on non-SYNC_INPUT hosts, and which
12878 runs afoul of improving memory_full behavior. (Bug#8761)
12879 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
12880 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
12881 xfree instead of the default malloc, realloc, free.
12882 (Fgnutls_boot): No need to check for memory allocation failure,
12883 since xmalloc does that for us.
12884
ac32cd99 12885 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
3870d916
PE
12886 * category.c (hash_get_category_set):
12887 * ccl.c (ccl_driver):
12888 * charset.c (Fdefine_charset_internal):
12889 * charset.h (struct charset.hash_index):
12890 * composite.c (get_composition_id, gstring_lookup_cache)
12891 (composition_gstring_put_cache):
12892 * composite.h (struct composition.hash_index):
12893 * dispextern.h (struct image.hash):
12894 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
12895 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
12896 (hashfn_equal, hashfn_user_defined, make_hash_table)
12897 (maybe_resize_hash_table, hash_lookup, hash_put)
12898 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
12899 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
12900 (Fsxhash, Fgethash, Fputhash, Fmaphash):
12901 * image.c (make_image, search_image_cache, lookup_image)
12902 (xpm_put_color_table_h):
12903 * lisp.h (struct Lisp_Hash_Table):
0de4bb68 12904 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
ac389d0c 12905 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
3870d916 12906 for hashes and hash indexes, instead of 'unsigned' and 'int'.
40087514
PE
12907 * alloc.c (allocate_vectorlike):
12908 Check for overflow in vector size calculations.
12909 * ccl.c (ccl_driver):
12910 Check for overflow when converting EMACS_INT to int.
0de4bb68
PE
12911 * fns.c, image.c: Remove unnecessary static decls that would otherwise
12912 need to be updated by these changes.
40087514
PE
12913 * fns.c (make_hash_table, maybe_resize_hash_table):
12914 Check for integer overflow with large hash tables.
0de4bb68
PE
12915 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
12916 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
12917 (SXHASH_REDUCE): New macro.
12918 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
12919 Use it instead of discarding useful hash info with large hash values.
12920 (sxhash_float): New function.
12921 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
12922 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
40087514
PE
12923 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
12924 Rewrite to use FIXNUM_BITS, as this simplifies things.
0de4bb68
PE
12925 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
12926 Adjust signatures to match updated version of code.
12927 (consing_since_gc): Now EMACS_INT, since a single hash table can
12928 use more than INT_MAX bytes.
12929
698d32e2
DN
129302011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
12931
12932 Make it possible to build with GCC-4.6+ -O2 -flto.
12933
12934 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
12935
fd6fa53f
SM
129362011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
12937
12938 * minibuf.c (get_minibuffer, read_minibuf_unwind):
12939 Call minibuffer-inactive-mode.
12940
864db017
JB
129412011-05-31 Juanma Barranquero <lekktu@gmail.com>
12942
12943 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
12944 Update dependencies.
12945
2ad0baf4
DN
129462011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
12947
12948 * data.c (init_data): Remove code for UTS, this system is not
12949 supported anymore.
12950
4fcc2638
DN
129512011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
12952
12953 Don't force ./temacs to start in terminal mode.
12954
12955 * frame.c (make_initial_frame): Initialize faces in all cases, not
12956 only when CANNOT_DUMP is defined.
12957 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
12958
c56e0fd5
DN
129592011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
12960
12961 * dispnew.c (add_window_display_history): Use const for the string
12962 pointer. Remove declaration, not needed.
12963
333d54da 129642011-05-31 Paul Eggert <eggert@cs.ucla.edu>
9cf9f756 12965
55d4c1b2 12966 Use 'inline', not 'INLINE'.
333d54da 12967 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
55d4c1b2
PE
12968 * alloc.c, fontset.c (INLINE): Remove.
12969 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
12970 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
12971 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
12972 * gmalloc.c (register_heapinfo): Use inline unconditionally.
12973 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
12974
738db178
DN
129752011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
12976
12977 Make it possible to run ./temacs.
12978
12979 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
12980 syms_of_callproc does the same thing. Remove test for
12981 "initialized", do it in the caller.
12982 * emacs.c (main): Avoid calling set_initial_environment when dumping.
12983
620c53a6
SM
129842011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
12985
12986 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
12987 (read_minibuf): Use get_minibuffer.
12988 (syms_of_minibuf): Use DEFSYM.
12989 (Qmetadata): New var.
12990 * data.c (Qbuffer): Don't make it static.
12991 (syms_of_data): Use DEFSYM.
12992
e003a292
PE
129932011-05-31 Paul Eggert <eggert@cs.ucla.edu>
12994
12995 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
12996 (CCL_CODE_MIN): New macro.
12997
ed008a6d
PE
129982011-05-30 Paul Eggert <eggert@cs.ucla.edu>
12999
3687c2ef
PE
13000 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
13001
ed008a6d
PE
13002 * eval.c (Qdebug): Now static.
13003 * lisp.h (Qdebug): Remove decl. This reverts a part of the
13004 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
13005 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
13006
d66c4c7c
CY
130072011-05-29 Chong Yidong <cyd@stupidchicken.com>
13008
13009 * image.c: Various fixes to ImageMagick code comments.
13010 (Fimagemagick_types): Doc fix.
13011
5fbc2025
PE
130122011-05-29 Paul Eggert <eggert@cs.ucla.edu>
13013
0196f88a
PE
13014 Minor fixes prompted by GCC 4.6.0 warnings.
13015
13016 * xselect.c (converted_selections, conversion_fail_tag): Now static.
13017
5fbc2025
PE
13018 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
13019 (x_clipboard_manager_save_all): Move extern decl to ...
13020 * xterm.h: ... here, so that it can be checked for consistency.
13021
1dd3c2d9
CY
130222011-05-29 Chong Yidong <cyd@stupidchicken.com>
13023
13024 * xselect.c (x_clipboard_manager_save_frame)
13025 (x_clipboard_manager_save_all): New functions.
13026 (Fx_clipboard_manager_save): Lisp function deleted.
13027
13028 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
13029 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
13030
13031 * xterm.h: Update prototype.
13032
5ba6571d
WX
130332011-05-28 William Xu <william.xwl@gmail.com>
13034
13035 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
13036 exiting (Bug#8239).
13037
3eaff834
JM
130382011-05-28 Jim Meyering <meyering@redhat.com>
13039
e1900994 13040 Avoid a sign-extension bug in crypto_hash_function.
3eaff834
JM
13041 * fns.c (to_uchar): Define.
13042 (crypto_hash_function): Use it to convert some newly-signed
13043 variables to unsigned, to avoid sign-extension bugs. For example,
13044 without this change, (md5 "truc") would evaluate to
13045 45723a2aff78ff4fff7fff1114760e62 rather than the expected
13046 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
e1900994 13047 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
3eaff834 13048
0f6990a7
PE
130492011-05-27 Paul Eggert <eggert@cs.ucla.edu>
13050
13051 Integer overflow fixes.
c8a9ca5a 13052
08686060
PE
13053 * dbusbind.c: Serial number integer overflow fixes.
13054 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
08686060
PE
13055 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
13056 to hold a serial number that is too large for a fixnum.
13057 (Fdbus_method_return_internal, Fdbus_method_error_internal):
13058 Check for serial numbers out of range. Decode any serial number
59568bf0 13059 that was so large that it became a float. (Bug#8722)
08686060 13060
2d1fc3c7
PE
13061 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
13062 (Fdbus_call_method, Fdbus_call_method_asynchronously):
13063 Use XFASTINT rather than XUINT when numbers are nonnegative.
13064 (xd_append_arg, Fdbus_method_return_internal):
13065 (Fdbus_method_error_internal): Likewise. Also, for unsigned
13066 arguments, check that Lisp number is nonnegative, rather than
59568bf0 13067 silently wrapping negative numbers around. (Bug#8722)
30217ff0 13068 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
59568bf0 13069 (Bug#8722)
2d1fc3c7 13070
c8a9ca5a
PE
13071 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
13072
519e1d69
PE
13073 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
13074
6df6ae42 13075 ccl: Add integer overflow checks.
30569699
PE
13076 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
13077 (IN_INT_RANGE): New macros.
13078 (ccl_driver): Use them to check for integer overflow when
13079 decoding a CCL program. Many of the new checks are whether XINT (x)
13080 fits in int; it doesn't always, on 64-bit hosts. The new version
13081 doesn't catch all possible integer overflows, but it's an
847044ea 13082 improvement. (Bug#8719)
30569699 13083
c11285dc
PE
13084 * alloc.c (make_event_array): Use XINT, not XUINT.
13085 There's no need for unsigned here.
13086
fdccd48e
PE
13087 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
13088 This follows up to the 2011-05-06 change that substituted uintptr_t
13089 for EMACS_INT. This case wasn't caught back then.
13090
37910ab2
PE
13091 Rework Fformat to avoid integer overflow issues.
13092 * editfns.c: Include <float.h> unconditionally, as it's everywhere
13093 now (part of C89). Include <verify.h>.
13094 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
13095 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
13096 (Fformat): Avoid the prepass trying to compute sizes; it was only
13097 approximate and thus did not catch overflow reliably. Instead, walk
13098 through the format just once, formatting and computing sizes as we go,
13099 checking for integer overflow at every step, and allocating a larger
13100 buffer as needed. Keep track separately whether the format is
13101 multibyte. Keep only the most-recently calculated precision, rather
13102 than them all. Record whether each argument has been converted to
13103 string. Use EMACS_INT, not int, for byte and char and arg counts.
13104 Support field widths and precisions larger than INT_MAX. Avoid
13105 sprintf's undefined behavior with conversion specifications such as %#d
13106 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
13107 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
13108 formatting out-of-range floating point numbers with int
9173deec 13109 formats. (Bug#8668)
37910ab2 13110
2e6578fb
PE
13111 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
13112
0ae6bdee
PE
13113 * data.c: Avoid integer truncation in expressions involving floats.
13114 * data.c: Include <intprops.h>.
13115 (arith_driver): When there's an integer overflow in an expression
13116 involving floating point, convert the integers to floating point
13117 so that the resulting value does not suffer from catastrophic
13118 integer truncation. For example, on a 64-bit host (* 4
13119 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
13120 Do not rely on undefined behavior after integer overflow.
13121
de883a70
PE
13122 merge count_size_as_multibyte, parse_str_to_multibyte
13123 * character.c, character.h (count_size_as_multibyte):
fd6fa53f 13124 Rename from parse_str_to_multibyte; all uses changed.
de883a70
PE
13125 Check for integer overflow.
13126 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
13127 since it's now a duplicate of the other. This is more of
13128 a character than a buffer op, so better that it's in character.c.
13129 * fns.c, print.c: Adjust to above changes.
13130
2ff916cb
PE
131312011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
13132
13133 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
13134
f1b54466
PE
131352011-05-27 Paul Eggert <eggert@cs.ucla.edu>
13136
fb1ac845
PE
13137 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
13138 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
13139 (x_clipboard_manager_save): Now static.
13140 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
13141
f1b54466
PE
13142 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
13143 (crypto_hash_function): Now static.
13144 Fix pointer signedness problems. Avoid unnecessary initializations.
13145
a9f737ee
CY
131462011-05-27 Chong Yidong <cyd@stupidchicken.com>
13147
13148 * termhooks.h (Vselection_alist): Make it terminal-local.
13149
13150 * terminal.c (create_terminal): Initialize it.
13151
13152 * xselect.c: Support for clipboard managers.
13153 (Vselection_alist): Move to termhooks.h as terminal-local var.
13154 (LOCAL_SELECTION): New macro.
13155 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
13156 (symbol_to_x_atom): Remove gratuitous arg.
13157 (x_handle_selection_request, lisp_data_to_selection_data)
13158 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
620c53a6
SM
13159 (x_own_selection, x_get_local_selection, x_convert_selection):
13160 New arg, specifying work frame. Use terminal-local Vselection_alist.
a9f737ee
CY
13161 (some_frame_on_display): Delete unused function.
13162 (Fx_own_selection_internal, Fx_get_selection_internal)
13163 (Fx_disown_selection_internal, Fx_selection_owner_p)
13164 (Fx_selection_exists_p): New optional frame arg.
13165 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
13166 (x_handle_selection_clear): Don't treat other terminals with the
13167 same keyboard specially. Use the terminal-local Vselection_alist.
13168 (x_clear_frame_selections): Use Frun_hook_with_args.
13169
13170 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
13171
13172 * xterm.h: Add support for those atoms.
13173
e067f0c1
CY
131742011-05-26 Chong Yidong <cyd@stupidchicken.com>
13175
13176 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
13177 (converted_selections, conversion_fail_tag): New global variables.
13178 (x_selection_request_lisp_error): Free the above.
13179 (x_get_local_selection): Remove unnecessary code.
13180 (x_reply_selection_request): Args changed; handle arbitrary array
620c53a6
SM
13181 of converted selections stored in converted_selections.
13182 Separate the XChangeProperty and SelectionNotify steps.
e067f0c1
CY
13183 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
13184 (x_convert_selection): New function.
13185 (x_handle_selection_event): Simplify.
13186 (x_get_foreign_selection): Don't ignore incoming requests while
13187 waiting for an answer; this will fail when we implement
13188 SAVE_TARGETS, and seems unnecessary anyway.
13189 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
13190 (Vx_sent_selection_functions): Doc fix.
13191
0f4aebc0
LL
131922011-05-26 Leo Liu <sdl.web@gmail.com>
13193
13194 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
13195
e61124cd
YM
131962011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
13197
13198 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
13199
13200 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
13201 for fringe update if it has periodic bitmap.
ac389d0c 13202 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
e61124cd
YM
13203 and fringe_bitmap_periodic_p.
13204
13205 * fringe.c (get_fringe_bitmap_data): New function.
13206 (draw_fringe_bitmap_1, update_window_fringes): Use it.
13207 (update_window_fringes): Record periodicity of fringe bitmap in glyph
13208 row. Mark glyph row for fringe update if periodicity changed.
13209
13210 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
13211 for fringe update unless it has periodic bitmap.
13212
f16d9837
KH
132132011-05-25 Kenichi Handa <handa@m17n.org>
13214
13215 * xdisp.c (get_next_display_element): Set correct it->face_id for
13216 a static composition.
13217
e1b90ef6
LL
132182011-05-24 Leo Liu <sdl.web@gmail.com>
13219
13220 * deps.mk (fns.o):
13221 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
13222
13223 * fns.c (crypto_hash_function, Fsha1): New function.
13224 (Fmd5): Use crypto_hash_function.
13225 (syms_of_fns): Add Ssha1.
13226
7400048f
PE
132272011-05-22 Paul Eggert <eggert@cs.ucla.edu>
13228
13229 * gnutls.c: Remove unused macros.
13230 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
13231 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
13232 Remove macros that are defined and never used.
13233 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
13234
abb71cf4
CY
132352011-05-22 Chong Yidong <cyd@stupidchicken.com>
13236
13237 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
13238 (Fx_get_selection_internal): Minor cleanup.
13239 (Fx_own_selection_internal): Rename arguments for consistency with
13240 select.el.
13241
6307db39
PE
132422011-05-22 Paul Eggert <eggert@cs.ucla.edu>
13243
13244 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
13245
f3d4e0a4
CY
132462011-05-22 Chong Yidong <cyd@stupidchicken.com>
13247
13248 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
13249
4d8ade89
YM
132502011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
13251
13252 * dispnew.c (scrolling_window): Don't exclude the case that the
13253 last enabled row in the desired matrix touches the bottom boundary.
13254
32078c8d
GM
132552011-05-21 Glenn Morris <rgm@gnu.org>
13256
13257 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
33cf345f
GM
13258 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
13259 and add some more files.
32078c8d 13260
7285dc67
EZ
132612011-05-20 Eli Zaretskii <eliz@gnu.org>
13262
13263 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
13264 report_file_error introduced by the change from 2011-05-07.
13265
89d1bd22
PE
132662011-05-20 Paul Eggert <eggert@cs.ucla.edu>
13267
13268 * systime.h (Time): Define only if emacs is defined.
13269 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
13270 where the include path doesn't have X11/X.h by default. See
13271 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
13272
cd394be1 132732011-05-20 Kenichi Handa <handa@m17n.org>
31bfc35c
KH
13274
13275 * composite.c (find_automatic_composition): Fix previous change.
13276
b9704ad9
GM
132772011-05-20 Glenn Morris <rgm@gnu.org>
13278
13279 * lisp.mk: New file, split from Makefile.in.
13280 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
13281 (shortlisp): Remove.
13282 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
13283
4a720484
GM
132842011-05-19 Glenn Morris <rgm@gnu.org>
13285
13286 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
13287 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
13288 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
13289 (lisp): Set the order to that of loadup.el.
13290 (shortlisp): Make it a copy of $lisp.
13291 (SOME_MACHINE_LISP): Remove.
13292 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
13293 Use just $shortlisp, not $SOME_MACHINE_LISP too.
13294
a28d4396
KH
132952011-05-18 Kenichi Handa <handa@m17n.org>
13296
13297 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
13298 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
13299 (find_automatic_composition): Mostly rewrite for efficiency.
13300
a2b1fa8e
JB
133012011-05-18 Juanma Barranquero <lekktu@gmail.com>
13302
13303 * makefile.w32-in: Update dependencies.
13304
8e1f5610
CS
133052011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
13306
13307 * menu.c: Include limits.h (fixes the MS-Windows build broken by
7d7d0045 13308 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
8e1f5610 13309
7025ee00 133102011-05-18 Paul Eggert <eggert@cs.ucla.edu>
cb93f9be 13311
cdfa6eab
PE
13312 Fix some integer overflow issues, such as string length overflow.
13313
06d6db33
PE
13314 * insdel.c (count_size_as_multibyte): Check for string overflow.
13315
2b4560a8
PE
13316 * character.c (lisp_string_width): Check for string overflow.
13317 Use EMACS_INT, not int, for string indexes and lengths; in
13318 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
13319 the resulting string length overflows an EMACS_INT; instead,
13320 report a string overflow if no precision given. When checking for
13321 precision exhaustion, use a check that cannot possibly have
13322 integer overflow. (Bug#8675)
13323 * character.h (lisp_string_width): Adjust to new signature.
13324
cb93f9be
PE
13325 * alloc.c (string_overflow): New function.
13326 (Fmake_string): Use it. This doesn't change behavior, but saves
13327 a few bytes and will simplify future changes.
13328 * character.c (string_escape_byte8): Likewise.
13329 * lisp.h (string_overflow): New decl.
13330
1a1f3366
PE
13331 Fixups, following up to the user-interface timestamp change.
13332 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
13333 for UI timestamps, instead of unsigned long.
9fbd6841
PE
13334 * msdos.c (mouse_get_pos): Likewise.
13335 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
1a1f3366
PE
13336 * w32gui.h (Time): Define by including "systime.h" rather than by
13337 declaring it ourselves. (Bug#8664)
13338
d4e3e4d3
PE
13339 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
13340 * image.c (clear_image_cache): Likewise.
13341
f6a24d19
PE
13342 * term.c (term_mouse_position): Don't assume time_t wraparound.
13343
08dc5ae6
PE
13344 Be more systematic about user-interface timestamps.
13345 Before, the code sometimes used 'Time', sometimes 'unsigned long',
620c53a6
SM
13346 and sometimes 'EMACS_UINT', to represent these timestamps.
13347 This change causes it to use 'Time' uniformly, as that's what X uses.
08dc5ae6
PE
13348 This makes the code easier to follow, and makes it easier to catch
13349 integer overflow bugs such as Bug#8664.
13350 * frame.c (Fmouse_position, Fmouse_pixel_position):
13351 Use Time, not unsigned long, for user-interface timestamps.
13352 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
13353 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
13354 * keyboard.h (last_event_timestamp): Likewise.
13355 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
13356 * menu.h (xmenu_show): Likewise.
13357 * term.c (term_mouse_position): Likewise.
13358 * termhooks.h (struct input_event.timestamp): Likewise.
13359 (struct terminal.mouse_position_hook): Likewise.
13360 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
13361 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
13362 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
13363 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
13364 what it was before.
13365 * menu.h, termhooks.h: Include "systime.h", for Time.
13366
8e55734a
PE
13367 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
13368 Don't assume that the difference between two unsigned long values
13369 can fit into an integer. At this point, we know button_down_time
13370 <= event->timestamp, so the difference must be nonnegative, so
13371 there's no need to cast the result if double-click-time is
13372 nonnegative, as it should be; check that it's nonnegative, just in
13373 case. This bug is triggered when events are more than 2**31 ms
86db42d2 13374 apart (about 25 days). (Bug#8664)
8e55734a 13375
841f1b75 13376 * xselect.c (last_event_timestamp): Remove duplicate decl.
6434756c 13377 (x_own_selection): Remove needless cast to unsigned long.
841f1b75 13378
3e26f69c
PE
13379 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
13380 that always fit in int. Use a sentinel instead of a counter, to
13381 avoid a temp and to allay GCC's concerns about possible int overflow.
d230cb74
PE
13382 * frame.h (struct frame): Use int for menu_bar_items_used
13383 instead of EMACS_INT, since it always fits in int.
3e26f69c 13384
5cc152c0
PE
13385 * menu.c (grow_menu_items): Check for int overflow.
13386
d89eb65e
PE
13387 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
13388
5235bd3e
PE
13389 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
13390 Before, the code was not consistent. These values cannot exceed
13391 2**31 - 1 so there's no need to make them unsigned.
13392 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
13393 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
13394 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
13395 as modifiers.
13396 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
13397
bc827e23
PE
13398 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
13399 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
13400 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
13401 presumably because the widths might not match.
13402
78eb494e
PE
13403 * window.c (size_window): Avoid needless test at loop start.
13404
04f2d78b
CB
134052011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
13406
13407 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
13408
d2fc7e3d 134092011-05-12 Drew Adams <drew.adams@oracle.com>
e531bdff
DA
13410
13411 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
13412
d2fc7e3d 134132011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7db47798
YM
13414
13415 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
13416 `width' to `bar_area_x' and `bar_area_width', respectively.
13417 (x_scroll_run): Take account of fringe background extension.
13418
04f2d78b
CB
13419 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
13420 Rename local vars `left' and `width' to `bar_area_x' and
7db47798
YM
13421 `bar_area_width', respectively.
13422 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
13423 background extension.
13424
79b70037
GM
134252011-05-10 Jim Meyering <meyering@redhat.com>
13426
13427 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
13428
2f142cc5
JB
134292011-05-10 Juanma Barranquero <lekktu@gmail.com>
13430
13431 * image.c (Finit_image_library): Return t for built-in image types,
13432 like pbm and xbm. (Bug#8640)
13433
57679c86
AS
134342011-05-09 Andreas Schwab <schwab@linux-m68k.org>
13435
13436 * w32menu.c (set_frame_menubar): Fix submenu allocation.
13437
888c9e86
EZ
134382011-05-07 Eli Zaretskii <eliz@gnu.org>
13439
b0512a1d
EZ
13440 * w32console.c (Fset_screen_color): Doc fix.
13441 (Fget_screen_color): New function.
13442 (syms_of_ntterm): Defsubr it.
13443
7285dc67
EZ
13444 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
13445 unlink the temporary file if Fcall_process didn't create it in the
13446 first place.
13447 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
13448 child process will be redirected to a file specified with `:file'.
888c9e86
EZ
13449 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
13450 cue to call_process_cleanup not to close that handle.
13451
4d3fcc8e
BK
134522011-05-07 Ben Key <bkey76@gmail.com>
13453
13454 * makefile.w32-in: The bootstrap-temacs rule now makes use of
13455 one of two shell specific rules, either bootstrap-temacs-CMD or
13456 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
13457 to the previous implementation of the bootstrap-temacs rule.
13458 The bootstrap-temacs-CMD rule is similar to the previous
13459 implementation of the bootstrap-temacs rule except that it
13460 makes use of the ESC_CFLAGS variable instead of the CFLAGS
13461 variable.
13462
13463 These changes, along with some changes to nt/configure.bat,
13464 nt/gmake.defs, and nt/nmake.defs, are required to extend my
13465 earlier fix to add support for --cflags and --ldflags options
13466 that include quotes so that it works whether make uses cmd or
13467 sh as the shell.
13468
b4289b64
MA
134692011-05-06 Michael Albinus <michael.albinus@gmx.de>
13470
13471 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
13472 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
13473 is a constant.
13474 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
13475 a string. Handle both cases.
13476 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
13477 (Fdbus_register_method): Use Qinvalid_function.
13478
af4c0e28
JB
134792011-05-06 Juanma Barranquero <lekktu@gmail.com>
13480
13481 * makefile.w32-in: Update dependencies.
13482 (LISP_H): Add inttypes.h and stdin.h.
13483 (PROCESS_H): Add unistd.h.
13484
c51453d9
EZ
134852011-05-06 Eli Zaretskii <eliz@gnu.org>
13486
13487 * lread.c: Include limits.h (fixes the MS-Windows build broken by
13488 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
13489
8ff0ac3c 134902011-05-06 Paul Eggert <eggert@cs.ucla.edu>
c032b5f8 13491
4c4b566b
PE
13492 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
13493
aab2b9b5
PE
13494 * term.c (vfatal): Remove stray call to va_end.
13495 It's not needed and the C Standard doesn't allow it here anyway.
13496
c378da0b
PE
13497 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
13498 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
13499
288b08c7
PE
13500 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
13501 bytes.
13502
e3601888
PE
13503 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
13504
db6c0e74
PE
13505 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
13506
dd5963ea
PE
13507 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
13508
88c9450f
PE
13509 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
13510
2f9442b8
PE
13511 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
13512
c032b5f8
PE
13513 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
13514 * charset.c (Fdefine_charset_internal): Don't initialize
13515 charset.code_space[15]. The value was garbage, on hosts with
2d38271b 13516 32-bit int (Bug#8600).
a108c10b
PE
13517
13518 * lread.c (read_integer): Be more consistent with string-to-number.
13519 Use string_to_number to do the actual conversion; this avoids
13520 rounding errors and fixes some other screwups. Without this fix,
13521 for example, #x1fffffffffffffff was misread as -2305843009213693952.
13522 (digit_to_number): Move earlier, for benefit of read_integer.
13523 Return -1 if the digit is out of range for the base, -2 if it is
48e400f0 13524 not a digit in any supported base. (Bug#8602)
a108c10b 13525
ad5f9eea
PE
13526 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
13527
aec1708a
PE
13528 * dispnew.c (scrolling_window): Return 1 if we scrolled,
13529 to match comment at start of function. This also removes a
13530 GCC warning about overflow in a 32+64-bit port.
13531
47be4ab5
PE
13532 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
13533
371cac43
PE
13534 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
13535 Reported by Stefan Monnier in
13536 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
04f2d78b
CB
13537 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
13538 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
371cac43 13539
d01a7826
PE
13540 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
13541 (EMACS_UINTPTR): Likewise, with uintptr_t.
13542
7fd47d5c
PE
13543 * lisp.h: Prefer 64-bit EMACS_INT if available.
13544 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
13545 on 32-bit hosts that have 64-bit int, so that they can access
13546 large files.
122b0c86
PE
13547 However, temporarily disable this change unless the temporary
13548 symbol WIDE_EMACS_INT is defined.
7fd47d5c 13549
8727937b
PE
13550 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
13551
8ac068ac
PE
13552 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
13553 This removes an assumption that EMACS_INT and long are the same
13554 width as pointers. The assumption is true for Emacs porting targets
13555 now, but we want to make other targets possible.
13556 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
13557 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
13558 In the rest of the code, change types of integers that hold casted
13559 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
13560 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
13561 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
13562 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
13563 No need to cast type when ORing.
13564 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
13565 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
13566 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
13567 assume EMACS_INT is the same width as char *.
13568 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
13569 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
13570 Remove no-longer-needed casts.
13571 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
13572 (xg_tool_bar_help_callback, xg_make_tool_item):
13573 Use EMACS_INTPTR to hold an integer
13574 that will be cast to void *; this can avoid a GCC warning
13575 if EMACS_INT is not the same width as void *.
13576 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
13577 * xdisp.c (display_echo_area_1, resize_mini_window_1):
13578 (current_message_1, set_message_1):
13579 Use a local to convert to proper width without a cast.
13580 * xmenu.c (dialog_selection_callback): Likewise.
13581
ede49d71
PE
13582 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
13583 Also, don't assume VALBITS / RAND_BITS is less than 5,
13584 and don't rely on undefined behavior when shifting a 1 left into
13585 the sign bit.
13586 * lisp.h (get_random): Change signature to match.
13587
2f30ecd0
PE
13588 * lread.c (hash_string): Use size_t, not int, for hash computation.
13589 Normally we prefer signed values; but hashing is special, because
13590 it's better to use unsigned division on hash table sizes so that
13591 the remainder is nonnegative. Also, size_t is the natural width
13592 for hashing into memory. The previous code used 'int', which doesn't
13593 retain enough info to hash well into very large tables.
13594 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
13595
2a866e7b
PE
13596 * dbusbind.c: Don't possibly lose pointer info when converting.
13597 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
13598 Use XPNTR rather than XHASH, so that the high-order bits of
13599 the pointer aren't lost when converting through void *.
13600
51639eac
PE
13601 * eval.c (Fautoload): Don't double-shift a pointer.
13602
92394119
PE
13603 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
13604
dbdb9a7c
JB
136052011-05-06 Juanma Barranquero <lekktu@gmail.com>
13606
13607 * gnutls.c (DEF_GNUTLS_FN):
13608 * image.c (DEF_IMGLIB_FN): Make function pointers static.
13609
db7a0b4f
AS
136102011-05-05 Andreas Schwab <schwab@linux-m68k.org>
13611
13612 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
13613 marker. (Bug#8610)
13614
cd394be1 136152011-05-05 Eli Zaretskii <eliz@gnu.org>
fab624aa
EZ
13616
13617 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
13618 New version that can reserve upto 2GB of heap space.
13619
f7ff1b0f 136202011-05-05 Chong Yidong <cyd@stupidchicken.com>
45cb8994
CY
13621
13622 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
13623
639c109b
TZ
136242011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
13625
13626 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
13627 `gnutls_certificate_set_x509_key_file'.
13628
d2127135
JB
136292011-05-05 Juanma Barranquero <lekktu@gmail.com>
13630
13631 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
13632 Update dependencies.
13633
e968f4f3
JB
136342011-05-04 Juanma Barranquero <lekktu@gmail.com>
13635
13636 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
13637 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
13638 Remove unused parameter `fildes'.
13639 * process.c (read_process_output, send_process): Don't pass it.
13640
84d358f0
JB
136412011-05-04 Juanma Barranquero <lekktu@gmail.com>
13642
13643 Fix previous change: the library cache is defined in w32.c.
13644 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
13645 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
13646
0898ca10
JB
136472011-05-04 Juanma Barranquero <lekktu@gmail.com>
13648
13649 Implement dynamic loading of GnuTLS on Windows.
13650
13651 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
13652 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
13653 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
13654 Declare.
13655
13656 * gnutls.c (Qgnutls_dll): Define.
13657 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
13658 (gnutls_*): Declare function pointers.
13659 (init_gnutls_functions): New function to initialize function pointers.
13660 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
13661 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
13662 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
13663 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
13664 (emacs_gnutls_write, emacs_gnutls_read)
13665 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
13666 (Fgnutls_available_p): New function.
13667 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
13668 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
13669 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
13670
13671 * image.c: Include w32.h.
13672 (Vimage_type_cache): Delete.
13673 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
13674 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
13675 (w32_delayed_load): Move to w32.c.
13676
13677 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
13678
13679 * w32.c (QCloaded_from, Vlibrary_cache): Define.
13680 (w32_delayed_load): Move from image.c. When loading a library, record
13681 its filename in the :loaded-from property of the library id.
13682 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
13683 Initialize and staticpro them.
13684 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
13685
13686 * process.c: Include lisp.h before w32.h, not after.
13687 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
13688 instead of gnutls_record_check_pending.
13689
13690 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
13691
ff4de4aa
TZ
136922011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
13693
13694 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
13695 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
13696 as passed in.
13697
abe95abb
JD
136982011-05-03 Jan Djärv <jan.h.d@swipnet.se>
13699
13700 * xterm.c (x_set_frame_alpha): Do not set property on anything
13701 else than FRAME_X_OUTER_WINDOW (Bug#8608).
13702
e16e55d4
JB
137032011-05-02 Juanma Barranquero <lekktu@gmail.com>
13704
13705 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
13706
bafcf6a5
JB
137072011-05-02 Juanma Barranquero <lekktu@gmail.com>
13708
13709 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
13710 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
13711 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
13712 (gnutls_global_initialized, Qgnutls_bootprop_priority)
13713 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
13714 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
13715 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
13716 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
13717 (Qgnutls_bootprop_callbacks_verify): Make static.
13718
e7a6747f
AS
137192011-05-01 Andreas Schwab <schwab@linux-m68k.org>
13720
19ed11ba
AS
13721 * callproc.c: Indentation fixup.
13722
e7a6747f 13723 * sysdep.c (wait_for_termination_1): Make static.
04f2d78b
CB
13724 (wait_for_termination, interruptible_wait_for_termination):
13725 Move after wait_for_termination_1.
e7a6747f 13726
1ef14cb4
LMI
137272011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
13728
13729 * sysdep.c (interruptible_wait_for_termination): New function
13730 which is like wait_for_termination, but allows keyboard
13731 interruptions.
13732
13733 * callproc.c (Fcall_process): Add (:file "file") as an option for
13734 the STDOUT buffer.
13735 (Fcall_process_region): Ditto.
13736
330d880c
EZ
137372011-04-30 Eli Zaretskii <eliz@gnu.org>
13738
8db90b73
EZ
13739 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
13740 rather than `XVECTOR (FOO)->size'.
13741
330d880c
EZ
13742 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
13743 inttypes.h, as a gnulib replacement is used if it not available in
13744 system headers.
13745
15cbd324
EZ
137462011-04-21 Eli Zaretskii <eliz@gnu.org>
13747
13748 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
13749 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
13750 of MOST_POSITIVE_FIXNUM. (Bug#8528)
13751
13752 * coding.c (coding_alloc_by_realloc): Error out if destination
13753 will grow beyond MOST_POSITIVE_FIXNUM.
13754 (decode_coding_emacs_mule): Abort if there isn't enough place in
13755 charbuf for the composition carryover bytes. Reserve an extra
13756 space for up to 2 characters produced in a loop.
13757 (decode_coding_iso_2022): Abort if there isn't enough place in
13758 charbuf for the composition carryover bytes.
13759
137602011-04-21 Eli Zaretskii <eliz@gnu.org>
afda1437 13761
ae940cca
EZ
13762 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
13763 aborting when %lld or %lll format is passed.
13764 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
13765 %llo or %llx format is passed. (Bug#8545)
13766
03ab8921
EZ
13767 * window.c (window_scroll_line_based): Use a marker instead of
13768 simple variables to record original value of point. (Bug#7952)
13769
afda1437
EZ
13770 * doprnt.c (doprnt): Fix the case where a multibyte sequence
13771 produced by %s or %c overflows available buffer space. (Bug#8545)
13772
f76dee0c
PE
137732011-04-28 Paul Eggert <eggert@cs.ucla.edu>
13774
13775 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
283cdbef 13776 (SIZE_MAX): Move defn after all includes, as they might #define it.
f76dee0c 13777
fdc5744d
JB
137782011-04-28 Juanma Barranquero <lekktu@gmail.com>
13779
13780 * w32.c (init_environment): Warn about defaulting HOME to C:\.
13781
638f053a
JB
137822011-04-28 Juanma Barranquero <lekktu@gmail.com>
13783
13784 * keyboard.c (Qdelayed_warnings_hook): Define.
13785 (command_loop_1): Run `delayed-warnings-hook'
13786 if Vdelayed_warnings_list is non-nil.
13787 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
13788 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
13789
d178f871
EZ
137902011-04-28 Eli Zaretskii <eliz@gnu.org>
13791
13792 * doprnt.c (doprnt): Don't return value smaller than the buffer
13793 size if the message was truncated. (Bug#8545).
13794
b124fd93
JB
137952011-04-28 Juanma Barranquero <lekktu@gmail.com>
13796
13797 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
13798 (Fx_window_property): #if-0 the whole functions, not just the bodies.
13799
e810457d
PE
138002011-04-27 Paul Eggert <eggert@cs.ucla.edu>
13801
13802 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
13803
ea51cceb
JB
138042011-04-27 Juanma Barranquero <lekktu@gmail.com>
13805
13806 * makefile.w32-in: Update dependencies.
13807
94dcfacf
EZ
138082011-04-27 Eli Zaretskii <eliz@gnu.org>
13809
13810 Improve `doprnt' and its usage. (Bug#8545)
13811 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
13812 `format_end'. Remove support for %l as a conversion specifier.
13813 Don't use xrealloc. Improve diagnostics when the %l size modifier
13814 is used. Update the commentary.
13815
13816 * eval.c (verror): Simplify calculation of size_t.
13817
13818 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
13819 messages.
13820
f61f41d7
PE
138212011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
13822
13823 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
13824 change.
13825
96fb4434
PE
138262011-04-27 Paul Eggert <eggert@cs.ucla.edu>
13827
13828 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
13829 This makes this file independent of the recent pseudovector change.
13830
671875da 138312011-04-26 Paul Eggert <eggert@cs.ucla.edu>
eab3844f 13832
69e9b5a3
PE
13833 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
13834
b5f869a7 13835 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
7754e151 13836 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
8d4c3955 13837 Remove unused local.
c8926152 13838 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
080e5a8d 13839
841a1577 13840 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
04f2d78b
CB
13841 GCC 4.6.0 optimizes based on type-based alias analysis.
13842 For example, if b is of type struct buffer * and v of type struct
eab3844f
PE
13843 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
13844 != &v->size, and therefore "v->size = 1; b->size = 2; return
13845 v->size;" must therefore return 1. This assumption is incorrect
13846 for Emacs, since it type-puns struct Lisp_Vector * with many other
13847 types. To fix this problem, this patch adds a new type struct
f904488f 13848 vectorlike_header that documents the constraints on layout of vectors
eab3844f
PE
13849 and pseudovectors, and helps optimizing compilers not get fooled
13850 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
13851 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
f904488f
PE
13852 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
13853 the size member.
eab3844f
PE
13854 (XSETPVECTYPE): Rewrite in terms of new macro.
13855 (XSETPVECTYPESIZE): New macro, specifying both type and size.
13856 This is a bit clearer, and further avoids the possibility of
13857 undesirable aliasing.
13858 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
f904488f 13859 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
eab3844f
PE
13860 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
13861 since Lisp_Subr is a special case (no "next" field).
04f2d78b
CB
13862 (ASIZE): Now uses header.size rather than size.
13863 All previous uses of XVECTOR (foo)->size replaced to use this macro,
f904488f
PE
13864 to avoid the hassle of writing XVECTOR (foo)->header.size.
13865 (struct vectorlike_header): New type.
eab3844f
PE
13866 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
13867 object, to help avoid aliasing.
13868 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
13869 (SUBRP): Likewise, since Lisp_Subr is a special case.
13870 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
13871 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
13872 (struct Lisp_Hash_Table): Combine first two members into a single
f904488f 13873 struct vectorlike_header member. All uses of "size" and "next" members
eab3844f
PE
13874 changed to be "header.size" and "header.next".
13875 * buffer.h (struct buffer): Likewise.
13876 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
13877 * frame.h (struct frame): Likewise.
13878 * process.h (struct Lisp_Process): Likewise.
13879 * termhooks.h (struct terminal): Likewise.
13880 * window.c (struct save_window_data, struct saved_window): Likewise.
13881 * window.h (struct window): Likewise.
13882 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
13883 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
13884 * buffer.c (init_buffer_once): Likewise.
13885 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
13886 special case.
13887 * process.c (Fformat_network_address): Use local var for size,
13888 for brevity.
13889
0df1eac5
PE
13890 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
13891
847ab9d1 13892 Make the Lisp reader and string-to-float more consistent (Bug#8525)
452f4150
PE
13893 * data.c (atof): Remove decl; no longer used or needed.
13894 (digit_to_number): Move to lread.c.
13895 (Fstring_to_number): Use new string_to_number function, to be
13896 consistent with how the Lisp reader treats infinities and NaNs.
13897 Do not assume that floating-point numbers represent EMACS_INT
13898 without losing information; this is not true on most 64-bit hosts.
13899 Avoid double-rounding errors, by insisting on integers when
13900 parsing non-base-10 numbers, as the documentation specifies.
13901 * lisp.h (string_to_number): New decl, replacing ...
13902 (isfloat_string): Remove.
bc0a5c13 13903 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
d78050d6 13904 (read1): Do not accept +. and -. as integers; this
452f4150
PE
13905 appears to have been a coding error. Similarly, do not accept
13906 strings like +-1e0 as floating point numbers. Do not report
13907 overflow for integer overflows unless the base is not 10 which
13908 means we have no simple and reliable way to continue.
13909 Break out the floating-point parsing into a new
13910 function string_to_number, so that Fstring_to_number parses
13911 floating point numbers consistently with the Lisp reader.
04f2d78b 13912 (digit_to_number): Move here from data.c. Make it static inline.
452f4150
PE
13913 (E_CHAR, EXP_INT): Remove, replacing with ...
13914 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
13915 (string_to_number): New function, replacing isfloat_string.
13916 This function checks for valid syntax and produces the resulting
13917 Lisp float number too. Rework it so that string-to-number
bc0a5c13 13918 no longer mishandles examples like "1.0e+". Use strtoumax,
d78050d6
PE
13919 so that overflow for non-base-10 numbers is reported only when
13920 there's no portable and simple way to convert to floating point.
452f4150 13921
67769ffc
PE
13922 * textprop.c (set_text_properties_1): Rewrite for clarity,
13923 and to avoid GCC warning about integer overflow.
13924
c20db43f
PE
13925 * intervals.h (struct interval): Use EMACS_INT for members
13926 where EMACS_UINT might cause problems. See
13927 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
13928 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
13929 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
13930 All uses changed.
37aa2f85
PE
13931 (offset_intervals): Tell GCC not to worry about length overflow
13932 when negating a negative length.
c20db43f 13933
2538aa2f
PE
13934 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
13935 (overrun_check_free): Likewise.
13936
f2d3008d
PE
13937 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
13938 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
13939 word size.
13940
ec8df744
PE
13941 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
13942 (gnutls_make_error): Rename local to avoid shadowing.
13943 (gnutls_emacs_global_deinit): ifdef out; not used.
13944 (Fgnutls_boot): Use const for pointer to readonly storage.
13945 Comment out unused local. Fix pointer signedness problems.
13946
640ee02d
PE
13947 * lread.c (openp): Don't stuff size_t into an 'int'.
13948 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
13949 about possible signed overflow.
13950
6048fb2a
PE
13951 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
13952 (GDK_KEY_g): Don't define if already defined.
13953 (xg_prepare_tooltip): Avoid pointer signedness problem.
13954 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
13955
fa3c87e1
PE
13956 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
13957 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
13958
2172544b
PE
13959 * xfns.c (Fx_window_property): Simplify a bit,
13960 to make a bit faster and to avoid GCC 4.6.0 warning.
13961 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
13962
9b821a21
PE
13963 * fns.c (internal_equal): Don't assume size_t fits in int.
13964
3c616cfa
PE
13965 * alloc.c (compact_small_strings): Tighten assertion a little.
13966
c2982e87
PE
13967 Replace pEd with more-general pI, and fix some printf arg casts.
13968 * lisp.h (pI): New macro, generalizing old pEd macro to other
13969 conversion specifiers. For example, use "...%"pI"d..." rather
13970 than "...%"pEd"...".
13971 (pEd): Remove. All uses replaced with similar uses of pI.
61bdb816 13972 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
c2982e87
PE
13973 * alloc.c (check_pure_size): Don't overflow by converting size to int.
13974 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
13975 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
13976 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
13977 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
13978 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
13979 64-bit hosts.
13980 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
13981 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
13982 * print.c (safe_debug_print, print_object): Likewise.
13983 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
13984 to int.
6f04d126
PE
13985 Use pI instead of if-then-else-abort. Use %p to avoid casts,
13986 avoiding the 0 flag, which is not portable.
c2982e87
PE
13987 * process.c (Fmake_network_process): Use pI to avoid cast.
13988 * region-cache.c (pp_cache): Likewise.
13989 * xdisp.c (decode_mode_spec): Likewise.
13990 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
13991 behavior on 64-bit hosts with printf arg.
6f04d126 13992 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
c2982e87
PE
13993 (x_stop_queuing_selection_requests): Likewise.
13994 (x_get_window_property): Don't truncate byte count to an 'int'
13995 when tracing.
0b432f21 13996
5e073ec7
PE
13997 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
13998 here, since it parses constructs like leading '-' and spaces,
13999 which are not wanted; and it overflows with large numbers.
14000 Instead, simply match F[0-9]+, which is what is wanted anyway.
14001
36372bf9
PE
14002 * alloc.c: Remove unportable assumptions about struct layout.
14003 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
14004 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
14005 (allocate_vectorlike, make_pure_vector): Use the new macros,
14006 plus offsetof, to remove unportable assumptions about struct layout.
14007 These assumptions hold on all porting targets that I know of, but
14008 they are not guaranteed, they're easy to remove, and removing them
14009 makes further changes easier.
14010
0b432f21
PE
14011 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
14012 This doesn't fix a bug but makes the code clearer.
bfd1c781
PE
14013 (string_overrun_cookie): Now const. Use initializers that
14014 don't formally overflow signed char, to avoid warnings.
000098c1
PE
14015 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
14016 can cause Emacs to crash when string overrun checking is enabled.
c7bda33c
PE
14017 (allocate_buffer): Don't assume sizeof (struct buffer) is a
14018 multiple of sizeof (EMACS_INT); it need not be, if
14019 alignof(EMACS_INT) < sizeof (EMACS_INT).
d0f4e1f5 14020 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
0b432f21 14021
895009e1
JB
140222011-04-26 Juanma Barranquero <lekktu@gmail.com>
14023
14024 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
14025
6a7a1b0b
TZ
140262011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
14027
14028 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
b5f869a7 14029 supposed to be handshaking. (Bug#8556)
6a7a1b0b
TZ
14030 Reported by Paul Eggert <eggert@cs.ucla.edu>.
14031
841a1577 140322011-04-26 Daniel Colascione <dan.colascione@gmail.com>
0438ce91
DC
14033
14034 * lisp.h (Qdebug): List symbol.
895009e1 14035 * eval.c (Qdebug): Restore global linkage.
0438ce91
DC
14036 * keyboard.c (debug-on-event): New variable.
14037 (handle_user_signal): Break into debugger when debug-on-event
14038 matches the current signal symbol.
14039
f2d3ba6f
DN
140402011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
14041
14042 * alloc.c (check_sblock, check_string_bytes)
14043 (check_string_free_list): Convert to standard C.
14044
42ce4c63
TZ
140452011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
14046
14047 * w32.c (emacs_gnutls_push): Fix typo.
14048
825cd63c
EZ
140492011-04-25 Eli Zaretskii <eliz@gnu.org>
14050
fb11d64d
EZ
14051 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
14052 "cast to pointer from integer of different size".
14053
825cd63c
EZ
14054 Improve doprnt and its use in verror. (Bug#8545)
14055 * doprnt.c (doprnt): Document the set of format control sequences
14056 supported by the function. Use SAFE_ALLOCA instead of always
14057 using `alloca'.
14058
14059 * eval.c (verror): Don't limit the buffer size at size_max-1, that
14060 is one byte too soon. Don't use xrealloc; instead xfree and
14061 xmalloc anew.
14062
e061a11b
TZ
140632011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
14064
14065 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
14066 callbacks stage.
14067
14068 * gnutls.c: Renamed global_initialized to
14069 gnutls_global_initialized. Added internals for the
14070 :verify-hostname-error, :verify-error, and :verify-flags
14071 parameters of `gnutls-boot' and documented those parameters in the
14072 docstring. Start callback support.
9173deec
JB
14073 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
14074 unless a fatal error occurred. Call gnutls_alert_send_appropriate
14075 on error. Return error code.
e061a11b
TZ
14076 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
14077 (emacs_gnutls_read): Likewise.
14078 (Fgnutls_boot): Return handshake error code.
14079 (emacs_gnutls_handle_error): New function.
14080 (wsaerror_to_errno): Likewise.
14081
14082 * w32.h (emacs_gnutls_pull): Add prototype.
14083 (emacs_gnutls_push): Likewise.
14084
14085 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
14086 (emacs_gnutls_push): Likewise.
14087
140882011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
14089
14090 * process.c (wait_reading_process_output): Check if GnuTLS
14091 buffered some data internally if no FDs are set for TLS
14092 connections.
14093
14094 * makefile.w32-in (OBJ2): Add gnutls.$(O).
14095 (LIBS): Link to USER_LIBS.
14096 ($(BLD)/gnutls.$(0)): New target.
14097
fa6996bc
EZ
140982011-04-24 Eli Zaretskii <eliz@gnu.org>
14099
eb35682e
EZ
14100 * xdisp.c (handle_single_display_spec): Rename the
14101 display_replaced_before_p argument into display_replaced_p, to
14102 make it consistent with the commentary. Fix typos in the
14103 commentary.
14104
e2ad650c
EZ
14105 * textprop.c (syms_of_textprop): Remove dead code.
14106 (copy_text_properties): Delete obsolete commentary about an
14107 interface that was deleted long ago. Fix typos in the description
14108 of arguments.
14109
1b2de274
EZ
14110 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
14111 to changes in oldXMenu/XMenu.h from 2011-04-16.
14112 <menu_help_message, prev_menu_help_message>: Constify.
14113 (IT_menu_make_room): menu->help_text is now `const char **';
14114 adjust.
14115
14116 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
14117 to changes in oldXMenu/XMenu.h from 2011-04-16.
14118 (struct XMenu): Declare `help_text' `const char **'.
14119
14120 * xfaces.c <Qunspecified>: Make extern again.
14121
14122 * syntax.c: Include sys/types.h before including regex.h, as
75f1671a 14123 required by POSIX.
1b2de274 14124
762b15be
EZ
14125 * doc.c (get_doc_string): Improve the format passed to `error'.
14126
14127 * doprnt.c (doprnt): Improve commentary.
14128
14129 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
14130
14131 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
14132 them with etags.
14133
f1052e5d
EZ
14134 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
14135 changes in globals.h immediately force recompilation.
762b15be
EZ
14136 (TAGS): Depend on $(CURDIR)/m/intel386.h and
14137 $(CURDIR)/s/ms-w32.h.
14138 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
f1052e5d 14139
fa6996bc
EZ
14140 * character.c (Fchar_direction): Function deleted.
14141 (syms_of_character): Don't defsubr it.
14142 <char-direction-table>: Deleted.
14143
e6c3da20
EZ
141442011-04-23 Eli Zaretskii <eliz@gnu.org>
14145
14146 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
14147 * doprnt.c: Include limits.h.
14148 (SIZE_MAX): New macro.
04f2d78b
CB
14149 (doprnt): Return a size_t value. 2nd arg is now size_t.
14150 Many local variables are now size_t instead of int or unsigned.
e6c3da20
EZ
14151 Improve overflow protection. Support `l' modifier for integer
14152 conversions. Support %l conversion. Don't assume an EMACS_INT
14153 argument for integer conversions and for %c.
14154
14155 * lisp.h (doprnt): Restore prototype.
14156
14157 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
14158 $(SRC)/character.h.
14159
14160 * Makefile.in (base_obj): Add back doprnt.o.
14161
14162 * deps.mk (doprnt.o): Add back prerequisites.
14163 (callint.o): Depend on character.h.
14164
14165 * eval.c (internal_lisp_condition_case): Include the handler
14166 representation in the error message.
14167 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
14168 when breaking from the loop.
14169
14170 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
14171
14172 * callint.c (Fcall_interactively): When displaying error message
14173 about invalid control letter, pass the character's codepoint, not
14174 a pointer to its multibyte form. Improve display of the character
14175 in octal and display also its hex code.
14176
14177 * character.c (char_string): Use %x to display the (unsigned)
14178 codepoint of an invalid character, to avoid displaying a bogus
14179 negative value.
14180
14181 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
14182 `error', not SYMBOL_NAME itself.
14183
14184 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
14185 character arguments to `error'.
14186
14187 * charset.c (check_iso_charset_parameter): Fix incorrect argument
14188 to `error' in error message about FINAL_CHAR argument. Make sure
14189 FINAL_CHAR is a character, and use %c when it is passed as
14190 argument to `error'.
14191
4ffd0d6b 141922011-04-23 Eli Zaretskii <eliz@gnu.org>
97a93095
EZ
14193
14194 * s/ms-w32.h (localtime): Redirect to sys_localtime.
14195
14196 * w32.c: Include <time.h>.
14197 (sys_localtime): New function.
14198
4ffd0d6b 141992011-04-23 Chong Yidong <cyd@stupidchicken.com>
c17819f4
CY
14200
14201 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
14202
4ffd0d6b 14203 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
aac0c6e3 14204
4ffd0d6b 142052011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
aac0c6e3 14206
4ffd0d6b
GM
14207 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
14208 zombies (Bug#8467).
aac0c6e3 14209
04c56954
EZ
142102011-04-19 Eli Zaretskii <eliz@gnu.org>
14211
14212 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
14213 gl_state.e_property when gl_state.object is Qt.
14214
14215 * insdel.c (make_gap_larger): Remove limitation of buffer size
14216 to <= INT_MAX.
14217
16a43933
CY
142182011-04-18 Chong Yidong <cyd@stupidchicken.com>
14219
14220 * xdisp.c (lookup_glyphless_char_display)
14221 (produce_glyphless_glyph): Handle cons cell entry in
14222 glyphless-char-display.
14223 (Vglyphless_char_display): Document it.
14224
14225 * term.c (produce_glyphless_glyph): Handle cons cell entry in
14226 glyphless-char-display.
14227
4581706e
CY
142282011-04-17 Chong Yidong <cyd@stupidchicken.com>
14229
14230 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
14231
14232 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
14233
14234 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
14235 definition for no-X builds.
14236
4887c6e2 142372011-04-16 Paul Eggert <eggert@cs.ucla.edu>
764430a3 14238
fd35b6f9
PE
14239 Static checks with GCC 4.6.0 and non-default toolkits.
14240
5c1ccb01
PE
14241 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
14242
006c5daa
PE
14243 * process.c (keyboard_bit_set): Define only if SIGIO.
14244 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
14245 (send_process): Repair possible setjmp clobbering.
14246
efc736d3
PE
14247 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
14248
4e2fe2e6
PE
14249 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
14250
f97334a2
PE
14251 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
14252
4e75f29d
PE
14253 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
14254 Define only if needed.
14255
90efadd1
PE
14256 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
14257 by pacifying GCC about it. Maybe it's time to retire it?
875975e9 14258 * xfaces.c (USG, __TIMEVAL__): Likewise.
90efadd1 14259
3c647824
PE
14260 * dispextern.h (struct redisplay_interface): Rename param
14261 to avoid shadowing.
e264f262 14262 * termhooks.h (struct terminal): Likewise.
761383f4 14263 * xterm.c (xembed_send_message): Likewise.
3c647824 14264
b58c5c4a
PE
14265 * insdel.c (make_gap_smaller): Define only if
14266 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
14267
cad59032
PE
14268 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
14269 it.
14270
c339dc2e
PE
14271 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
14272 so that we aren't warned about unused symbols.
14273
91a3e27b
PE
14274 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
14275
399c71d3 14276 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
7a3fb125 14277
8ffc96f5
PE
14278 * xfns.c (x_real_positions): Mark locals as initialized.
14279
eef9bc79
PE
14280 * xmenu.c (xmenu_show): Don't use uninitialized vars.
14281
098db9dd
PE
14282 * xterm.c: Fix problems found by static analysis with other toolkits.
14283 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
dda3aedd
PE
14284 (x_dispatch_event): Declare static if USE_GTK, and
14285 define if USE_GTK || USE_X_TOOLKIT.
098db9dd 14286 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
dda3aedd 14287 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
841a1577
JB
14288 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
14289 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
098db9dd 14290
eb18f6cc
PE
14291 * xmenu.c (menu_help_callback): Pointer type fixes.
14292 Use const pointers when pointing at readonly data. Avoid pointer
14293 signedness clashes.
14294 (FALSE): Remove unused macro.
14295 (update_frame_menubar): Remove unused decl.
14296
1fe72bf8
PE
14297 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
14298
60d9e1db
PE
14299 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
14300 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
14301 (single_menu_item): Rename local to avoid shadowing.
14302
39261c26
PE
14303 * keyboard.c (make_lispy_event): Remove unused local var.
14304
018c5e19
PE
14305 * frame.c, frame.h (x_get_resource_string): Bring this back, but
14306 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
14307
63d2b86e
PE
14308 * bitmaps: Change bitmaps from unsigned char back to the X11
14309 compatible char. Avoid the old compiler warnings about
14310 out-of-range initializers by using, for example, '\xab' rather
14311 than 0xab.
14312
aefd87e1
PE
14313 * xgselect.c (xgselect_initialize): Check vs interface
14314 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
14315
bf501fb9
PE
14316 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
14317
e9829fdf
PE
14318 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
14319 to read-only memory.
14320
1086c095
PE
14321 * fns.c (vector): Remove; this old hack is no longer needed.
14322
2baccd04 14323 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
401f10cb 14324 Remove unused var.
dde42981 14325 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
2baccd04 14326
72391843 14327 * xrdb.c (x_load_resources): Omit unused local.
3565b346 14328
436c16df 14329 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
8a94ea33 14330 (x_window): Rename locals to avoid shadowing.
dc5ddd85 14331 (USG): Use the kludged USG macro, to pacify gcc.
436c16df 14332
92bb796d 14333 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
bbbef9e1 14334 (x_term_init): Remove local to avoid shadowing.
92bb796d 14335
764430a3 14336 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
4887c6e2
PE
14337
14338 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
14339 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
14340
d1dfb56c
EZ
143412011-04-16 Eli Zaretskii <eliz@gnu.org>
14342
c4354cb4
EZ
14343 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
14344
d1dfb56c
EZ
14345 Fix regex.c, syntax.c and friends for buffers > 2GB.
14346 * syntax.h (struct gl_state_s): Declare character position members
14347 EMACS_INT.
14348
14349 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
14350
04f2d78b
CB
14351 * textprop.c (verify_interval_modification, interval_of):
14352 Declare arguments EMACS_INT.
d1dfb56c
EZ
14353
14354 * intervals.c (adjust_intervals_for_insertion): Declare arguments
14355 EMACS_INT.
14356
14357 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
14358
14359 * indent.c (Fvertical_motion): Local variable it_start is now
14360 EMACS_INT.
14361
14362 * regex.c (re_match, re_match_2, re_match_2_internal)
14363 (bcmp_translate, regcomp, regexec, print_double_string)
14364 (group_in_compile_stack, re_search, re_search_2, regex_compile)
14365 (re_compile_pattern, re_exec): Declare arguments and local
14366 variables `size_t' and `ssize_t' and return values `regoff_t', as
14367 appropriate.
14368 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
14369 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
14370 <compile_stack_type>: `size' and `avail' are now `size_t'.
14371
14372 * regex.h <regoff_t>: Use ssize_t, not int.
14373 (re_search, re_search_2, re_match, re_match_2): Arguments that
14374 specify buffer/string position and length are now ssize_t and
14375 size_t. Return type is regoff_t.
14376
613052cd
BK
143772011-04-16 Ben Key <bkey76@gmail.com>
14378
14379 * nsfont.m: Fixed bugs in ns_get_family and
14380 ns_descriptor_to_entity that were caused by using free to
14381 deallocate memory blocks that were allocated by xmalloc (via
14382 xstrdup). This caused Emacs to crash when compiled with
14383 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
14384 --enable-checking=xmallocoverrun). xfree is now used to
14385 deallocate these memory blocks.
14386
4170f62f 143872011-04-15 Paul Eggert <eggert@cs.ucla.edu>
3e047f51 14388
71b41406
PE
14389 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
14390
9587a89d
PE
14391 emacs_write: Accept and return EMACS_INT for sizes.
14392 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
14393 et seq.
14394 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
14395 Accept and return EMACS_INT.
14396 (emacs_gnutls_write): Return the number of bytes written on
14397 partial writes.
14398 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
273a5f82
PE
14399 (emacs_read, emacs_write): Remove check for negative size, as the
14400 Emacs source code has been audited now.
9587a89d
PE
14401 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
14402 (emacs_read, emacs_write): Use it.
273a5f82
PE
14403 * process.c (send_process): Adjust to the new signatures of
14404 emacs_write and emacs_gnutls_write. Do not attempt to store
14405 a byte offset into an 'int'; it might overflow.
9587a89d 14406 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
273a5f82 14407
3e047f51
PE
14408 * sound.c: Don't assume sizes fit in 'int'.
14409 (struct sound_device.period_size, alsa_period_size):
9c3c56a7 14410 Return EMACS_INT, not int.
3e047f51 14411 (struct sound_device.write, vox_write, alsa_write):
9c3c56a7
PE
14412 Accept EMACS_INT, not int.
14413 (wav_play, au_play): Use EMACS_INT to store sizes and to
3e047f51
PE
14414 record read return values.
14415
cc39a9db
BK
144162011-04-15 Ben Key <bkey76@gmail.com>
14417
c9d0ec6d
JB
14418 * keyboard.c (Qundefined): Don't declare static since it is used
14419 in nsfns.m.
14420 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
14421 static since they are used in nsfont.m.
cc39a9db 14422
6c60eb9f
SM
144232011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
14424
14425 * process.c (Qprocessp): Don't declare static.
14426 * lisp.h (Qprocessp): Declare again.
14427
7990b61a
JB
144282011-04-15 Juanma Barranquero <lekktu@gmail.com>
14429
14430 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
14431
5d4cb038
PE
144322011-04-14 Paul Eggert <eggert@cs.ucla.edu>
14433
8bd7b830 14434 Improve C-level modularity by making more things 'static'.
cd64ea1d 14435
e3b27b31
PE
14436 Don't publish debugger-only interfaces to other modules.
14437 * lisp.h (safe_debug_print, debug_output_compilation_hack):
14438 (verify_bytepos, count_markers): Move decls to the only modules
14439 that need them.
14440 * region-cache.h (pp_cache): Likewise.
14441 * window.h (check_all_windows): Likewise.
14442 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
14443
5d4cb038
PE
14444 * sysdep.c (croak): Now static, if
14445 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
14446 * syssignal.h (croak): Declare only if not static.
69003fd8
PE
14447
14448 * alloc.c (refill_memory_reserve): Now static if
14449 !defined REL_ALLOC || defined SYSTEM_MALLOC.
14450 * lisp.h (refill_memory_reserve): Declare only if not static.
93ea6e8f 14451
e87b6180
PE
14452 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
14453 Define only if USE_LUCID.
14454
ac64929e
PE
14455 * xrdb.c (x_customization_string, x_rm_string): Now static.
14456
6f37259d
PE
14457 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
14458 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
14459
1683e3ab
PE
14460 * xdisp.c (draw_row_with_mouse_face): Now static.
14461 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
14462
de9c2632
PE
14463 * window.h (check_all_windows): Mark externally visible.
14464
2b96acb7
PE
14465 * window.c (window_deletion_count): Now static.
14466
14467 * undo.c: Make symbols static if they're not exported.
14468 (last_undo_buffer, last_boundary_position, pending_boundary):
14469 Now static.
14470
50436f33
PE
14471 * textprop.c (interval_insert_behind_hooks): Now static.
14472 (interval_insert_in_front_hooks): Likewise.
14473
64520e5c
PE
14474 * term.c: Make symbols static if they're not exported.
14475 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
14476 (max_frame_lines, tty_set_terminal_modes):
14477 (tty_reset_terminal_modes, tty_turn_off_highlight):
14478 (get_tty_terminal): Now static.
14479 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
14480 * termhooks.h (term_mouse_moveto): Do not declare if
8bd7b830 14481 HAVE_WINDOW_SYSTEM.
64520e5c
PE
14482 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
14483 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
14484
1fa53021
PE
14485 * sysdep.c: Make symbols static if they're not exported.
14486 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
14487 Now static.
14488 (sigprocmask_set, full_mask): Remove; unused.
14489 (wait_debugging): Mark as visible.
14490 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
14491 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
14492
d4b43b22
PE
14493 * syntax.c (syntax_temp): Define only if !__GNUC__.
14494
b7c513d0
PE
14495 * sound.c (current_sound_device, current_sound): Now static.
14496
989b29ad
PE
14497 * search.c (searchbufs, searchbuf_head): Now static.
14498
13a55a78
PE
14499 * scroll.c (scroll_cost): Remove; unused.
14500 * dispextern.h (scroll_cost): Remove decl.
14501
de68a1fc
PE
14502 * region-cache.h (pp_cache): Mark as externally visible.
14503
40ccffa6
PE
14504 * process.c: Make symbols static if they're not exported.
14505 (process_tick, update_tick, create_process, chan_process):
14506 (Vprocess_alist, proc_buffered_char, datagram_access):
14507 (fd_callback_data, send_process_frame, process_sent_to): Now static.
14508 (deactivate_process): Mark defn as static, as well as decl.
14509 * lisp.h (create_process): Remove decl.
14510 * process.h (chan_process, Vprocess_alist): Remove decls.
14511
ad64fc97
PE
14512 * print.c: Make symbols static if they're not exported.
14513 (print_depth, new_backquote_output, being_printed, print_buffer):
14514 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
14515 (print_interval, print_number_index, initial_stderr_stream):
14516 Now static.
14517 * lisp.h (Fprinc): Remove decl.
14518 (debug_output_compilation_hack): Mark as externally visible.
14519
adddb265
PE
14520 * sysdep.c (croak): Move decl from here to syssignal.h.
14521 * syssignal.h (croak): Put it here, so the API can be checked when
14522 'croak' is called from dissociate_if_controlling_tty.
14523
1717ede2
PE
14524 * minibuf.c: Make symbols static if they're not exported.
14525 (minibuf_save_list, choose_minibuf_frame): Now static.
14526 * lisp.h (choose_minibuf_frame): Remove decl.
14527
fa5fb2bc
PE
14528 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
14529
1e3890d1
PE
14530 * lread.c: Make symbols static if they're not exported.
14531 (read_objects, initial_obarray, oblookup_last_bucket_number):
14532 Now static.
14533 (make_symbol): Remove; unused.
14534 * lisp.h (initial_obarray, make_symbol): Remove decls.
14535
8a1414fa
PE
14536 * keyboard.c: Make symbols static if they're not exported.
14537 (single_kboard, recent_keys_index, total_keys, recent_keys):
14538 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
14539 (this_single_command_key_start, echoing, last_auto_save):
14540 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
14541 (command_loop, echo_now, keyboard_init_hook, help_char_p):
14542 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
14543 (Vlispy_mouse_stem, double_click_count):
14544 Now static.
14545 (force_auto_save_soon): Define only if SIGDANGER.
14546 (ignore_mouse_drag_p): Now static if
14547 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
14548 (print_help): Remove; unused.
14549 (stop_character, last_timer_event): Mark as externally visible.
14550 * keyboard.h (ignore_mouse_drag_p): Declare only if
14551 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
14552 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
14553 * lisp.h (echoing): Remove decl.
14554 (force_auto_save_soon): Declare only if SIGDANGER.
14555 * xdisp.c (redisplay_window): Simplify code, to make it more
14556 obvious that ignore_mouse_drag_p is not accessed if !defined
14557 USE_GTK && !defined HAVE_NS.
14558
93ea6e8f
PE
14559 * intervals.c: Make symbols static if they're not exported.
14560 (merge_properties_sticky, merge_interval_right, delete_interval):
14561 Now static.
14562 * intervals.h (merge_interval_right, delete_interval): Remove decls.
14563
77382fcc
PE
14564 * insdel.c: Make symbols static if they're not exported.
14565 However, leave prepare_to_modify_buffer alone. It's never
14566 called from outside this function, but that appears to be a bug.
14567 (combine_after_change_list, combine_after_change_buffer):
4889fc82 14568 (adjust_after_replace, signal_before_change): Now static.
77382fcc
PE
14569 (adjust_after_replace_noundo): Remove; unused.
14570 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
4889fc82 14571 (signal_before_change): Remove decls.
77382fcc 14572
9306c32e
PE
14573 * indent.c (val_compute_motion, val_vmotion): Now static.
14574
cd44d2eb
PE
14575 * image.c: Make symbols static if they're not exported.
14576 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
14577 if USE_GTK.
14578 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
14579 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
14580
ad9a7a06
PE
14581 * fringe.c (standard_bitmaps): Now static.
14582 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
14583
81626931
PE
14584 * frame.c: Make symbols static if they're not exported.
14585 (x_report_frame_params, make_terminal_frame): Now static.
14586 (get_frame_param): Now static, unless HAVE_NS.
14587 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
14588 (x_get_resource_string): Remove; not used.
14589 * frame.h (make_terminal_frame, x_report_frame_params):
14590 (x_get_resource_string); Remove decls.
14591 (x_fullscreen_adjust): Declare only if WINDOWSNT.
14592 * lisp.h (get_frame_param): Declare only if HAVE_NS.
14593
239f9db9
PE
14594 * font.c, fontset.c: Make symbols static if they're not exported.
14595 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
14596 (FACE_SUITABLE_FOR_CHAR_P): Use it.
14597 * font.c (font_close_object): Now static.
14598 * font.h (font_close_object): Remove.
14599 * fontset.c (FONTSET_OBJLIST): Remove.
14600 (free_realized_fontset) #if-0 the body, which does nothing.
14601 (face_suitable_for_char_p): #if-0, as it's never called.
14602 * fontset.h (face_suitable_for_char_p): Remove decl.
04f2d78b
CB
14603 * xfaces.c (face_at_string_position):
14604 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
239f9db9
PE
14605 since 0 is always ASCII.
14606
dfcf3579
PE
14607 * fns.c (weak_hash_tables): Now static.
14608
5045092b
PE
14609 * fileio.c: Make symbols static if they're not exported.
14610 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
14611 (Vwrite_region_annotation_buffers): Now static.
14612
57a96f5c
PE
14613 * eval.c: Make symbols static if they're not exported.
14614 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
14615 * lisp.h (backtrace_list): Remove decl.
14616
35f08c38
PE
14617 * emacs.c: Make symbols static if they're not exported.
14618 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
14619 (fatal_error_code, fatal_error_signal_hook, standard_args):
14620 Now static.
14621 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
14622 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
14623 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
14624 * lisp.h (fatal_error_signal_hook): Remove decl.
14625 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
14626
f44bd759
PE
14627 * editfns.c: Move a (normally-unused) function to its only use.
14628 * editfns.c, lisp.h (get_operating_system_release): Remove.
14629 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
14630 worth the hassle of breaking this out.
14631
b532497d
PE
14632 * xterm.c: Make symbols static if they're not exported.
14633 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
14634 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
14635 (x_destroy_window, x_delete_display):
14636 Now static.
14637 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
14638 (x_mouse_leave): Remove; unused.
14639 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
14640 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
14641 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
14642 Remove decls.
14643 (x_mouse_leave): Declare only if WINDOWSNT.
14644 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
14645 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
14646 USE_X_TOOLKIT.
14647
1675728f
PE
14648 * ftxfont.c: Make symbols static if they're not exported.
14649 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
14650 HAVE_FREETYPE.
14651 * font.h (ftxfont_driver): Likewise.
14652
e4cebfca
PE
14653 * xfns.c: Make symbols static if they're not exported.
14654 (x_last_font_name, x_display_info_for_name):
14655 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
14656 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
14657 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
14658 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
14659 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
14660 (last_show_tip_args): Now static.
14661 (xic_defaut_fontset, xic_create_fontsetname): Define only if
14662 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
14663 (x_screen_planes): Remove; unused.
14664 * dispextern.h (x_screen_planes): Remove decl.
14665
5bf46f05
PE
14666 * dispnew.c: Make symbols static if they're not exported.
14667 * dispextern.h (redraw_garbaged_frames, scrolling):
14668 (increment_row_positions): Remove.
14669 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
14670 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
14671 Now static.
14672 (redraw_garbaged_frames): Remove; unused.
14673
435f4c28
PE
14674 * xfaces.c: Make symbols static if they're not exported.
14675 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
14676 Remove decls.
14677 * xterm.h (defined_color): Remove decls.
14678 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
14679 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
14680 (menu_face_changed_default, defined_color, free_realized_face):
14681 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
14682 (ascii_face_of_lisp_face): Remove; unused.
14683
8524aef3
PE
14684 * xdisp.c: Make symbols static if they're not exported.
14685 * dispextern.h (scratch_glyph_row, window_box_edges):
14686 (glyph_to_pixel_coords, set_cursor_from_row):
14687 (get_next_display_element, set_iterator_to_next):
14688 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
14689 (show_mouse_face): Remove decls
14690 * frame.h (message_buf_print): Likewise.
14691 * lisp.h (pop_message, set_message, check_point_in_composition):
14692 Likewise.
14693 * xterm.h (set_vertical_scroll_bar): Likewise.
14694 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
14695 (message_buf_print, scratch_glyph_row, displayed_buffer):
14696 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
14697 (get_next_display_element, show_mouse_face, window_box_edges):
14698 (frame_to_window_pixel_xy, check_point_in_composition):
14699 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
14700 (glyph_to_pixel_coords): Remove; unused.
14701
16390cd2
PE
14702 * dired.c (file_name_completion): Now static.
14703
14704 * dbusbind.c (xd_in_read_queued_messages): Now static.
14705
a25f4dfa
PE
14706 * lisp.h (circular_list_error, FOREACH): Remove; unused.
14707 * data.c (circular_list_error): Remove.
14708
14a9c8df
PE
14709 * commands.h (last_point_position, last_point_position_buffer):
14710 (last_point_position_window): Remove decls.
14711 * keyboard.c: Make these variables static.
14712
04f2d78b
CB
14713 * coding.h (coding, code_convert_region, encode_coding_gap):
14714 Remove decls.
74ab6df5
PE
14715 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
14716 (iso_code_class, detect_coding, code_convert_region): Now static.
14717 (encode_coding_gap): Remove; unused.
14718
38dfbee1
PE
14719 * chartab.c (chartab_chars, chartab_bits): Now static.
14720
a2cb4e63
PE
14721 * charset.h (charset_iso_8859_1): Remove decl.
14722 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
14723 Now static.
14724
127198fd
PE
14725 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
14726 * ccl.c (Vccl_program_table): Now static.
14727 (check_ccl_update): Remove; unused.
14728
d85b608f
PE
14729 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
14730 * category.h: ... from here.
14731 * category.c (check_category_table, set_category_set): Now static.
14732
31cd66f3
PE
14733 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
14734 * lisp.h: Remove these decls.
14735
c358e587
PE
14736 * buffer.c (buffer_count): Remove unused var.
14737
e78aecca
PE
14738 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
14739 so that it's not optimized away.
14740 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
14741 * dispextern.h (bidi_dump_cached_states): Remove, since it's
14742 exported only to the debugger.
14743
e192d7d3 14744 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
04f2d78b 14745 * atimer.h (run_all_atimers): Remove; not exported.
e192d7d3 14746
92470028
PE
14747 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
14748 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
14749 was inaccessible from Lisp.
14750 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
14751 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
14752
244ed907
PE
14753 alloc.c: Import and export fewer symbols, and remove unused items.
14754 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
14755 is defined.
14756 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
14757 it's not optimized away by whole-program optimization.
14758 (message_enable_multibyte, free_misc): Remove.
14759 (catchlist, handlerlist, mark_backtrace):
14760 Declare only if BYTE_MARK_STACK.
14761 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
14762 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
14763 (message_enable_multibyte): Remove decl.
14764 (free_misc, interval_free_list, float_block, float_block_index):
14765 (n_float_blocks, float_free_list, cons_block, cons_block_index):
14766 (cons_free_list, last_marked_index):
14767 Now static.
14768 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
14769 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
14770 (mark_backtrace): Define only if BYTE_MARK_STACK.
14771 * xdisp.c (message_enable_multibyte): Now static.
14772
61c2b50e 14773 Declare Lisp_Object Q* variables to be 'static' if not exported.
955cbe7b
PE
14774 This makes it easier for human readers (and static analyzers)
14775 to see whether these variables are used from other modules.
14776 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
14777 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
14778 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
14779 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
14780 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
14781 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
14782 * xmenu.c, xselect.c:
14783 Declare Q* vars static if they are not used in other modules.
14784 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
14785 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
14786 Remove decls of unexported vars.
14787 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
14788
95c82688
PE
14789 * lisp.h (DEFINE_FUNC): Make sname 'static'.
14790
16a97296
PE
14791 Make Emacs functions such as Fatom 'static' by default.
14792 This makes it easier for human readers (and static analyzers)
14793 to see whether these functions can be called from other modules.
14794 DEFUN now defines a static function. To make the function external
14795 so that it can be used in other C modules, use the new macro DEFUE.
8bd7b830
PE
14796 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
14797 (Finit_image_library):
16a97296
PE
14798 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
14799 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
14800 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
14801 Remove decls, since these functions are now static.
14802 (Funintern, Fget_internal_run_time): New decls, since these functions
14803 were already external.
95c82688 14804
16a97296
PE
14805 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
14806 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
14807 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
14808 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
14809 * keyboard.c, keymap.c, lread.c:
14810 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
14811 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
14812 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
14813 Mark functions with DEFUE instead of DEFUN,
14814 if they are used in other modules.
14815 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
14816 decls for now-static functions.
14817 * buffer.h (Fdelete_overlay): Remove decl.
14818 * callproc.c (Fgetenv_internal): Mark as internal.
14819 * composite.c (Fremove_list_of_text_properties): Remove decl.
14820 (Fcomposition_get_gstring): New forward static decl.
14821 * composite.h (Fcomposite_get_gstring): Remove decl.
14822 * dired.c (Ffile_attributes): New forward static decl.
14823 * doc.c (Fdocumntation_property): New forward static decl.
14824 * eval.c (Ffetch_bytecode): New forward static decl.
14825 (Funintern): Remove extern decl; now in .h file where it belongs.
14826 * fileio.c (Fmake_symbolic_link): New forward static decl.
14827 * image.c (Finit_image_library): New forward static decl.
14828 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
14829 * intervals.h (Fprevious_property_change):
14830 (Fremove_list_of_text_properties): Remove decls.
14831 * keyboard.c (Fthis_command_keys): Remove decl.
14832 (Fcommand_execute): New forward static decl.
14833 * keymap.c (Flookup_key): New forward static decl.
14834 (Fcopy_keymap): Now static.
14835 * keymap.h (Flookup_key): Remove decl.
14836 * process.c (Fget_process): New forward static decl.
14837 (Fprocess_datagram_address): Mark as internal.
14838 * syntax.c (Fsyntax_table_p): New forward static decl.
14839 (skip_chars): Remove duplicate decl.
14840 * textprop.c (Fprevious_property_change): New forward static decl.
14841 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
14842 Now internal.
14843 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
14844 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
14845
785bbd42
PE
14846 * editfns.c (Fformat): Remove unreachable code.
14847
8b913b57
AS
148482011-04-14 Andreas Schwab <schwab@linux-m68k.org>
14849
14850 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
14851 change. (Bug#8496)
14852
a6744a35
EZ
148532011-04-13 Eli Zaretskii <eliz@gnu.org>
14854
14855 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
14856 when at ZV. (Bug#8487)
14857
e7974947
AS
148582011-04-12 Andreas Schwab <schwab@linux-m68k.org>
14859
baad03f0
AS
14860 * charset.c (Fclear_charset_maps): Use xfree instead of free.
14861 (Bug#8437)
14862 * keyboard.c (parse_tool_bar_item): Likewise.
14863 * sound.c (sound_cleanup, alsa_close): Likewise.
14864 * termcap.c (tgetent): Likewise.
14865 * xfns.c (x_default_font_parameter): Likewise.
14866 * xsettings.c (read_and_apply_settings): Likewise.
14867
e7974947
AS
14868 * alloc.c (overrun_check_malloc, overrun_check_realloc)
14869 (overrun_check_free): Protoize.
14870
28272684
PE
148712011-04-12 Paul Eggert <eggert@cs.ucla.edu>
14872
14873 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
14874 since callers should never pass a negative size.
14875 Change the signature to match that of plain 'read' and 'write'; see
14876 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
14877 * lisp.h: Update prototypes of emacs_write and emacs_read.
14878
11997c76
EZ
148792011-04-11 Eli Zaretskii <eliz@gnu.org>
14880
14881 * xdisp.c (redisplay_window): Don't try to determine the character
14882 position of the scroll margin if the window start point w->startp
e896f03c 14883 is outside the buffer's accessible region. (Bug#8468)
11997c76 14884
8a2cbd72
EZ
148852011-04-10 Eli Zaretskii <eliz@gnu.org>
14886
14887 Fix write-region and its subroutines for buffers > 2GB.
14888 * fileio.c (a_write, e_write): Modify declaration of arguments and
14889 local variables to support buffers larger than 2GB.
14890 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
14891
14892 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
14893 argument, local variables, and return value.
14894
14895 * lisp.h: Update prototypes of emacs_write and emacs_read.
14896
14897 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
14898
4073e537 148992011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 14900
1ebfdcb6
PE
14901 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
14902
b2ded58d
PE
14903 Fix more problems found by GCC 4.6.0's static checks.
14904
7d66342c
PE
14905 * xdisp.c (vmessage): Use a better test for character truncation.
14906
bbf47d44
PE
14907 * charset.c (load_charset_map): <, not <=, for optimization,
14908 and to avoid potential problems with integer overflow.
9248994d 14909 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 14910 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 14911 * editfns.c (Fformat): Likewise.
1e69125e 14912 * syntax.c (skip_chars): Likewise.
3befa583 14913
e3019616
PE
14914 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
14915 This also lets GCC 4.6.0 generate slightly better loop code.
14916
becfa255
PE
14917 * callint.c (Fcall_interactively): <, not <=, for optimization.
14918 (Fcall_interactively): Count the number of arguments produced,
14919 not the number of arguments given. This is simpler and lets GCC
14920 4.6.0 generate slightly better code.
14921
dae0cd48
PE
14922 * ftfont.c: Distingish more carefully between FcChar8 and char.
14923 The previous code passed unsigned char * to a functions like
14924 strlen and xstrcasecmp that expect char *, which does not
14925 conform to the C standard.
14926 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
14927 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
14928 char * when the C standard requires it.
14929
76032d70
PE
14930 * keyboard.c (read_char): Remove unused var.
14931
eb3f1cc8
PE
14932 * eval.c: Port to Windows vsnprintf (Bug#8435).
14933 Include <limits.h>.
14934 (SIZE_MAX): Define if the headers do not.
14935 (verror): Do not give up if vsnprintf returns a negative count.
14936 Instead, grow the buffer. This ports to Windows vsnprintf, which
14937 does not conform to C99. Problem reported by Eli Zaretskii.
14938 Also, simplify the allocation scheme, by avoiding the need for
14939 calling realloc, and removing the ALLOCATED variable.
14940
70476b54
PE
14941 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
14942
12020a9e
PE
14943 Remove invocations of doprnt, as Emacs now uses vsnprintf.
14944 But keep the doprint source code for now, as we might revamp it
14945 and use it again (Bug#8435).
ea6c7ae6
PE
14946 * lisp.h (doprnt): Remove.
14947 * Makefile.in (base_obj): Remove doprnt.o.
14948 * deps.mk (doprnt.o): Remove.
14949
5fdb398c
PE
14950 error: Print 32- and 64-bit integers portably (Bug#8435).
14951 Without this change, on typical 64-bit hosts error ("...%d...", N)
14952 was used to print both 32- and 64-bit integers N, which relied on
14953 undefined behavior.
61bdb816 14954 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
5fdb398c
PE
14955 * lisp.h (error, verror): Mark as printf-like functions.
14956 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
14957 Report overflow in size calculations when allocating printf buffer.
14958 Do not truncate output string at its first null byte.
14959 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
14960 Truncate the output at a character boundary, since vsnprintf does not
14961 do that.
14962 * charset.c (check_iso_charset_parameter): Convert internal
14963 character to string before calling 'error', since %c now has the
14964 printf meaning.
14965 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
14966 overflow when computing char to be passed to 'error'. Do not
14967 pass Lisp_Object to 'error'; pass the integer instead.
14968 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
14969 formatted with plain %d.
14970
b189fa66
PE
14971 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
14972
bff87ef0
PE
14973 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
14974
7e2cac20
PE
14975 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
14976
ce4d90b5
PE
14977 * xterm.c (x_catch_errors): Remove duplicate declaration.
14978
266c9547
PE
14979 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
14980
79c49ad2
PE
14981 * xdisp.c, lisp.h (message_nolog): Remove; unused.
14982
368f4090
JM
149832011-04-10 Jim Meyering <meyering@redhat.com>
14984
14985 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
14986 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
14987 return ssize_t not "int", and use size_t as the buffer length.
14988 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
14989 * gnutls.h: Update declarations.
14990 * process.c (read_process_output): Use ssize_t, to match.
14991 (send_process): Likewise.
14992
a32d4040
CY
149932011-04-09 Chong Yidong <cyd@stupidchicken.com>
14994
14995 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
14996
8546720e 149972011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 14998
04f2d78b
CB
14999 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
15000 Use unsigned char, to match FcChar8 type definition.
aac0c6e3 15001
8546720e
GM
15002 * xterm.c (handle_one_xevent):
15003 * xmenu.c (create_and_show_popup_menu):
15004 * xselect.c (x_decline_selection_request)
15005 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 15006
0a2f5c1a 150072011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
15008
15009 Fix some uses of `int' instead of EMACS_INT.
15010 * search.c (string_match_1, fast_string_match)
15011 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
15012 (scan_buffer, find_next_newline_no_quit)
15013 (find_before_next_newline, search_command, Freplace_match)
15014 (Fmatch_data): Make some `int' variables be EMACS_INT.
15015
15016 * xdisp.c (display_count_lines): 3rd argument and return value now
15017 EMACS_INT. All callers changed.
15018 (pint2hrstr): Last argument is now EMACS_INT.
15019
15020 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
15021 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
15022 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
15023 (decode_coding_utf_16, decode_coding_emacs_mule)
15024 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
15025 (decode_coding_ccl, decode_coding_charset)
15026 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
15027 (decode_coding_iso_2022, decode_coding_emacs_mule)
15028 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
15029 <char_offset, last_offset>: Declare EMACS_INT.
15030 (encode_coding_utf_8, encode_coding_utf_16)
15031 (encode_coding_emacs_mule, encode_invocation_designation)
15032 (encode_designation_at_bol, encode_coding_iso_2022)
15033 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
15034 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
15035 Declare EMACS_INT.
15036 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
15037 (encode_invocation_designation): Last argument P_NCHARS is now
15038 EMACS_INT.
15039 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
15040 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
15041
15042 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
15043 All users changed.
15044
15045 * ccl.c (Fccl_execute_on_string): Declare some variables
15046 EMACS_INT.
15047
8546720e 150482011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
15049
15050 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
15051
4e19a977
CS
150522011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
15053
15054 * process.c (Fformat_network_address): Doc fix.
15055
87302331
R
150562011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
15057
ee7683eb 15058 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
87302331 15059
cbb59342
CY
150602011-04-08 Chong Yidong <cyd@stupidchicken.com>
15061
15062 * keyboard.c (read_char): Call Lisp function help-form-show,
15063 instead of using internal_with_output_to_temp_buffer.
15064 (Qhelp_form_show): New var.
e0d38eeb 15065 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
15066
15067 * print.c (internal_with_output_to_temp_buffer): Function deleted.
15068
15069 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
15070
e67a13ab
CY
150712011-04-06 Chong Yidong <cyd@stupidchicken.com>
15072
04f2d78b
CB
15073 * process.c (Flist_processes): Remove to Lisp.
15074 (list_processes_1): Delete.
e67a13ab 15075
973f782d
EZ
150762011-04-06 Eli Zaretskii <eliz@gnu.org>
15077
7c106b1e
EZ
15078 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
15079
973f782d
EZ
15080 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
15081
41cf7d1a 150822011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 15083
ca23cc88
PE
15084 Fix more problems found by GCC 4.6.0's static checks.
15085
f390e2d5
PE
15086 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
15087
42eea0d0
PE
15088 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
15089
b69769da 15090 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 15091
f9541e84
PE
15092 * xdisp.c (vmessage): Mark as a printf-like function.
15093
13841b55
PE
15094 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
15095
c136c10f
PE
15096 * sound.c (sound_warning): Don't crash if arg contains a printf format.
15097
5e2d4a30
PE
15098 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
15099 printf-like functions.
15100 (tiff_load): Add casts to remove these marks before passing them
15101 to system-supplied API.
15102
583f48b9
PE
15103 * eval.c (Fsignal): Remove excess argument to 'fatal'.
15104
b25d760e
PE
15105 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
15106 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
15107 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
15108 directly, rather than having caller test rule sign. This avoids
15109 some unnecessary tests.
15110 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
15111 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
15112 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 15113
bc7b6697 15114 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 15115 (xfont_open): Avoid unnecessary tests.
bc7b6697 15116
27ccc379
PE
15117 * composite.c (composition_gstring_put_cache): Use unsigned integer.
15118
dcd5c89a
PE
15119 * composite.h, composite.c (composition_gstring_put_cache):
15120 Use EMACS_INT, not int, for length.
15121
b13a45c6
PE
15122 * composite.h (COMPOSITION_DECODE_REFS): New macro,
15123 breaking out part of COMPOSITION_DECODE_RULE.
15124 (COMPOSITION_DECODE_RULE): Use it.
15125 * composite.c (get_composition_id): Remove unused local vars,
15126 by using the new macro.
15127
1e792e4d
PE
15128 * textprop.c (set_text_properties_1): Change while to do-while,
15129 since the condition is always true at first.
15130
dc6c6455 15131 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
15132 (interval_deletion_adjustment): Return unsigned value.
15133 All uses changed.
dc6c6455 15134
aba7731a
PE
15135 * process.c (list_processes_1, create_pty, read_process_output):
15136 (exec_sentinel): Remove vars that were set but not used.
afd4052b 15137 (create_pty): Remove unnecessary "volatile"s.
bc57d757 15138 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 15139 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 15140 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 15141
fdfc4bf3
PE
15142 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
15143
fca8fe46 15144 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 15145 (update_syntax_table): Use unsigned instead of int.
fca8fe46 15146
06a0259a 15147 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 15148 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 15149 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 15150
e7b9e80f
PE
15151 * print.c (print_error_message): Avoid int overflow.
15152
56201685
PE
15153 * font.c (font_list_entities): Redo for clarity,
15154 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
15155
78834453 15156 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 15157 (font_score): Avoid potential overflow in diff calculation.
78834453 15158
0bc0b309 15159 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 15160 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 15161
e610eaca
PE
15162 * eval.c (funcall_lambda): Rename local to avoid shadowing.
15163
b895abce
PE
15164 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
15165 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
15166 can always succeed if overflow has undefined behavior.
15167
1f1d9321 15168 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 15169 (wordify): Omit three unnecessary tests.
1f1d9321 15170
c59478bc
PE
15171 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
15172 All callers changed. This avoids the need for an unused var.
15173
79b73827
PE
15174 * casefiddle.c (casify_region): Remove var that is set but not used.
15175
a4db5dfe
PE
15176 * dired.c (file_name_completion): Remove var that is set but not used.
15177
43aae36e
PE
15178 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
15179
2a47c44d 15180 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 15181 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 15182
a37c69bf
PE
15183 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
15184 Check for integer overflow on size calculations.
15185
328ab8e7
PE
15186 * buffer.c (Fprevious_overlay_change): Remove var that is set
15187 but not used.
15188
e5a2a5cb
PE
15189 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
15190 Remove vars that are set but not used.
8d84a6eb 15191 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 15192 (timer_check_2): Mark vars as initialized.
e5a2a5cb 15193
a60e5f68
PE
15194 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
15195
f661cb61 15196 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 15197 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 15198
f0397f5a
PE
15199 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
15200 that are set but not used.
15201
8664db06 15202 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 15203 if XCreateBitmapFromData fails (Bug#8410).
8664db06 15204
6abdaa4a
PE
15205 * xselect.c (x_get_local_selection, x_handle_property_notify):
15206 Remove vars that are set but not used.
15207
0ce7538d 15208 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 15209 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 15210
9ae848fc
PE
15211 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
15212 Remove var that is set but not used.
0b918413
PE
15213 (scroll_bar_windows_size): Now size_t, not int.
15214 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
15215 Check for overflow.
9ae848fc 15216
a5a62657
PE
15217 * xfaces.c (realize_named_face): Remove vars that are set but not used.
15218 (map_tty_color) [!defined MSDOS]: Likewise.
15219
5c5cdd39
PE
15220 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
15221
66ebf983
PE
15222 * coding.c: Remove vars that are set but not used.
15223 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
15224 All callers changed.
15225 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
15226 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
15227 (decode_coding_charset): Remove vars that are set but not used.
15228
1be4d761
PE
15229 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
15230 that is set but not used.
15231
47553fa8
PE
15232 * print.c (print_object): Remove var that is set but not used.
15233
1f7196bf 15234 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
15235 The gnulib version avoids calling malloc in the usual case,
15236 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
15237 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
15238 * filelock.c (current_lock_owner): Likewise.
15239 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
15240 * sysdep.c: Include allocator.h, careadlinkat.h.
15241 (emacs_no_realloc_allocator): New static constant.
15242 (emacs_readlink): New function.
fdb61804
PE
15243 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
15244 ../lib/careadlinkat.h.
d1fdcab7 15245
f84c17c7
SM
152462011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
15247
15248 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
15249 first non-nil return value).
15250
ef3862ad
JD
152512011-04-03 Jan Djärv <jan.h.d@swipnet.se>
15252
15253 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
15254 if not defined (Bug#8403).
15255
376a7006
JB
152562011-04-02 Juanma Barranquero <lekktu@gmail.com>
15257
15258 * xdisp.c (display_count_lines): Remove parameter `start',
15259 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
15260 (get_char_face_and_encoding): Remove parameter `multibyte_p',
15261 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
15262 (fill_stretch_glyph_string): Remove parameters `row' and `area',
15263 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
15264 and thereabouts. All callers changed.
15265 (get_per_char_metric): Remove parameter `f', unused since
15266 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
15267
6ca3801d
JM
152682011-04-02 Jim Meyering <meyering@redhat.com>
15269
15270 do not dereference NULL upon failed strdup
15271 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
15272 (ns_get_family): Likewise.
15273
d8e2b5ba
JB
152742011-04-02 Juanma Barranquero <lekktu@gmail.com>
15275
15276 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
15277
8c74fcbd
JD
152782011-04-02 Jan Djärv <jan.h.d@swipnet.se>
15279
15280 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
15281 later (Bug#8403).
15282
7200d79c
SM
152832011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
15284
03408648 15285 Add lexical binding.
7200d79c 15286
03408648
SM
15287 * window.c (Ftemp_output_buffer_show): New fun.
15288 (Fsave_window_excursion):
15289 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
15290
15291 * lread.c (lisp_file_lexically_bound_p): New function.
15292 (Fload): Bind Qlexical_binding.
15293 (readevalloop): Remove `evalfun' arg.
15294 Bind Qinternal_interpreter_environment.
15295 (Feval_buffer): Bind Qlexical_binding.
15296 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
15297 Mark as dynamic.
15298 (syms_of_lread): Declare `lexical-binding'.
15299
15300 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
15301
15302 * keyboard.c (eval_dyn): New fun.
15303 (menu_item_eval_property): Use it.
ca105506
SM
15304
15305 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 15306
03408648
SM
15307 * fns.c (concat, mapcar1): Accept byte-code-functions.
15308
15309 * eval.c (Fsetq): Handle lexical vars.
15310 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
15311 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
15312 (FletX, Flet): Obey lexical binding.
15313 (Fcommandp): Handle closures.
15314 (Feval): New `lexical' arg.
15315 (eval_sub): New function extracted from Feval. Use it almost
15316 everywhere where Feval was used. Look up vars in lexical env.
15317 Handle closures.
15318 (Ffunctionp): Move from subr.el.
15319 (Ffuncall): Handle closures.
15320 (apply_lambda): Remove `eval_flags'.
15321 (funcall_lambda): Handle closures and new byte-code-functions.
15322 (Fspecial_variable_p): New function.
15323 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
15324 but without exporting it to Lisp.
23aba0ea 15325
23aba0ea 15326 * doc.c (Fdocumentation, store_function_docstring):
03408648 15327 * data.c (Finteractive_form): Handle closures.
23aba0ea 15328
03408648
SM
15329 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
15330 interactive spec.
ba83908c 15331
04f2d78b
CB
15332 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
15333 New byte-codes.
03408648
SM
15334 (exec_byte_code): New function extracted from Fbyte_code to handle new
15335 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 15336
03408648 15337 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 15338
03408648 15339 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 15340
e2abce01
JB
153412011-03-31 Juanma Barranquero <lekktu@gmail.com>
15342
15343 * xdisp.c (redisplay_internal): Fix prototype.
15344
63696a73 153452011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 15346
63696a73 15347 * xdisp.c (SCROLL_LIMIT): New macro.
04f2d78b
CB
15348 (try_scrolling): Use it when setting scroll_limit.
15349 Limit scrolling to 100 screen lines.
63696a73
EZ
15350 (redisplay_window): Even when falling back on "recentering",
15351 position point in the window according to scroll-conservatively,
15352 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
15353
15354 (try_scrolling): When point is above the window, allow searching
15355 as far as scroll_max, or one screenful, to compute vertical
15356 distance from PT to the scroll margin position. This prevents
15357 try_scrolling from unnecessarily failing when
15358 scroll-conservatively is set to a value slightly larger than the
15359 window height. Clean up the case of PT below the margin at bottom
15360 of window: scroll_max can no longer be INT_MAX. When aggressive
15361 scrolling is in use, don't let point enter the opposite scroll
15362 margin as result of the scroll.
15363 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
15364 threshold of 100 lines for never-recentering scrolling.
15365
e4cc2dfc
JB
153662011-03-31 Juanma Barranquero <lekktu@gmail.com>
15367
15368 * dispextern.h (move_it_by_lines):
15369 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
15370 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
15371 (message_log_check_duplicate): Remove parameters `prev_bol' and
15372 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
15373 (redisplay_internal): Remove parameter `preserve_echo_area',
15374 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
15375
15376 * indent.c (Fvertical_motion):
15377 * window.c (window_scroll_pixel_based, Frecenter):
15378 Don't pass `need_y_p' to `move_it_by_lines'.
15379
1c470562
SM
153802011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
15381
44f230aa
SM
15382 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
15383 steal a few bits to be more compact.
15384 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
15385 Remove unneeded casts.
15386
1c470562
SM
15387 * bytecode.c (Fbyte_code): CAR and CDR can GC.
15388
888adce9
ZK
153892011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
15390
15391 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
15392 binding" message (bug#7967).
15393
f838ed7b
PE
153942011-03-30 Paul Eggert <eggert@cs.ucla.edu>
15395
77861b95
PE
15396 Fix more problems found by GCC 4.6.0's static checks.
15397
de6dbc14
PE
15398 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
15399 Remove unused local var.
15400
f838ed7b
PE
15401 * editfns.c (Fmessage_box): Remove unused local var.
15402
792c7b2b
PE
15403 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
15404 (note_mode_line_or_margin_highlight, note_mouse_highlight):
15405 Omit unused local vars.
c499e557 15406 * window.c (shrink_windows): Omit unused local var.
b01a1c29 15407 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
15408 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
15409 Omit unused local var.
15410
ba0165e1
PE
15411 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
15412 Don't assume string length fits in int.
32ad8845 15413 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 15414 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 15415
3c59b4c9
PE
15416 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
15417 instead of alloca (Bug#8344).
15418
a3eed478 15419 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 15420 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 15421
eb4d412d
PE
15422 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
15423
1658b401
PE
15424 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
15425 concerns.
15426
15427 * term.c (produce_glyphless_glyph): Remove unnecessary test.
15428
15429 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 15430
9a2c6e05
PE
15431 * keyboard.c (syms_of_keyboard): Use the same style as later
15432 in this function when indexing through an array. This also
15433 works around GCC bug 48267.
15434
03d0a109
PE
15435 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
15436
44f730c8
PE
15437 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
15438
fe75f926
PE
15439 * chartab.c (sub_char_table_ref_and_range): Redo for slight
15440 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
15441
ffa8c828
PE
15442 * keyboard.c, keyboard.h (num_input_events): Now size_t.
15443 This avoids undefined behavior on integer overflow, and is a bit
15444 more convenient anyway since it is compared to a size_t variable.
15445
c5101a77
PE
15446 Variadic C functions now count arguments with size_t, not int.
15447 This avoids an unnecessary limitation on 64-bit machines, which
15448 caused (substring ...) to crash on large vectors (Bug#8344).
15449 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
15450 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 15451 All variadic functions and their callers changed accordingly.
c5101a77
PE
15452 (struct gcpro.nvars): Now size_t, not int. All uses changed.
15453 * data.c (arith_driver, float_arith_driver): Likewise.
15454 * editfns.c (general_insert_function): Likewise.
15455 * eval.c (struct backtrace.nargs, interactive_p)
15456 (internal_condition_case_n, run_hook_with_args, apply_lambda)
15457 (funcall_lambda, mark_backtrace): Likewise.
15458 * fns.c (concat): Likewise.
15459 * frame.c (x_set_frame_parameters): Likewise.
15460 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
15461 0 if not found, not -1. All callers changed.
15462
dd3f25f7
PE
15463 * alloc.c (garbage_collect): Don't assume stack size fits in int.
15464 (stack_copy_size): Now size_t, not int.
15465 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
15466
461c2ab9
JB
154672011-03-28 Juanma Barranquero <lekktu@gmail.com>
15468
15469 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
15470 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
15471 All callers changed.
15472
15473 * lisp.h (multibyte_char_to_unibyte):
15474 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
15475 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
15476 * character.h (CHAR_TO_BYTE8):
15477 * cmds.c (internal_self_insert):
15478 * editfns.c (general_insert_function):
15479 * keymap.c (push_key_description):
15480 * search.c (Freplace_match):
15481 * xdisp.c (message_dolog, set_message_1): All callers changed.
15482
f6d62986
SM
154832011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
15484
15485 * keyboard.c (safe_run_hook_funcall): New function.
15486 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
15487 don't set the hook to nil, but remove the offending function instead.
15488 (Qcommand_hook_internal): Remove, unused.
15489 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
15490 Vcommand_hook_internal.
15491
15492 * eval.c (enum run_hooks_condition): Remove.
15493 (funcall_nil, funcall_not): New functions.
15494 (run_hook_with_args): Call each function through a `funcall' argument.
15495 Remove `cond' argument, now redundant.
15496 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
15497 (Frun_hook_with_args_until_failure): Adjust accordingly.
15498 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
15499
1db5b1ad
JB
155002011-03-28 Juanma Barranquero <lekktu@gmail.com>
15501
15502 * dispextern.h (string_buffer_position): Remove declaration.
15503
15504 * print.c (strout): Remove parameter `multibyte', unused since
15505 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
15506
15507 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
15508 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
15509 All callers changed.
15510
15511 * w32.c (_wsa_errlist): Use braces for struct initializers.
15512
15513 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
15514 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
15515 All callers changed.
15516 (string_buffer_position): Likewise. Also, make static (it's never
15517 used outside xdisp.c).
15518 (cursor_row_p): Remove parameter `w', unused since
15519 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
15520 (decode_mode_spec): Remove parameter `precision', introduced during
15521 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
15522 All callers changed.
15523
5ffb62aa
JD
155242011-03-27 Jan Djärv <jan.h.d@swipnet.se>
15525
15526 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
15527
461c2ab9 155282011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
15529
15530 * nsterm.m (ns_menu_bar_is_hidden): New variable.
15531 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
15532 (ns_update_auto_hide_menu_bar): New functions.
15533 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
15534 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
15535 ns_constrain_all_frames.
15536 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
15537 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
15538
5c380ffb
JD
155392011-03-27 Jan Djärv <jan.h.d@swipnet.se>
15540
15541 * nsmenu.m (runDialogAt): Remove argument to timer_check.
15542
9af30bdf
GM
155432011-03-27 Glenn Morris <rgm@gnu.org>
15544
15545 * syssignal.h: Replace RETSIGTYPE with void.
15546 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
15547 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
15548 Replace SIGTYPE with void everywhere.
15549 * s/usg5-4-common.h (SIGTYPE): Remove definition.
15550 * s/template.h (SIGTYPE): Remove commented out definition.
15551
e2abce01
JB
155522011-03-26 Eli Zaretskii <eliz@gnu.org>
15553
15554 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
15555 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
15556
f868cd8a
JB
155572011-03-26 Juanma Barranquero <lekktu@gmail.com>
15558
59eb0929
JB
15559 * w32.c (read_unc_volume): Use parameter `henum', instead of
15560 global variable `wget_enum_handle'.
15561
15562 * keymap.c (describe_vector): Remove parameters `indices' and
15563 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
15564 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
15565
f868cd8a
JB
15566 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
15567
15568 * keyboard.c (timer_check): Remove parameter `do_it_now',
15569 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
15570 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
15571 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
15572
15573 * keyboard.c (read_char):
15574 * w32menu.c (w32_menu_display_help):
15575 * xmenu.c (show_help_event, menu_help_callback):
15576 Adjust calls to `show_help_echo'.
15577
15578 * gtkutil.c (xg_maybe_add_timer):
15579 * keyboard.c (readable_events):
15580 * process.c (wait_reading_process_output):
15581 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
15582
15583 * insdel.c (adjust_markers_gap_motion):
15584 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
15585 (gap_left, gap_right): Don't call it.
15586
2ecf6fdb
CY
155872011-03-25 Chong Yidong <cyd@stupidchicken.com>
15588
15589 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
15590 incurred during fontification.
15591
6b1f9ba4
JB
155922011-03-25 Juanma Barranquero <lekktu@gmail.com>
15593
15594 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
15595 (DEFVAR_PER_BUFFER): Don't pass it.
15596
15597 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
15598 (scrolling_window): Don't pass it.
15599
0f4a96b5
JB
156002011-03-25 Juanma Barranquero <lekktu@gmail.com>
15601
15602 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
15603
15604 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
15605 and `suffix'.
15606 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
15607 of variables specific to SELinux and computation of `encoded_absname'.
15608
15609 * image.c (XPutPixel): Remove unused variable `height'.
15610
15611 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
15612
15613 * unexw32.c (get_section_info): Remove unused variable `section'.
15614
15615 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
15616 (system_process_attributes): Remove unused variable `sess'.
15617 (sys_read): Remove unused variable `err'.
15618
15619 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
15620 (w32_wnd_proc): Remove unused variable `isdead'.
15621 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
15622 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
15623 (x_create_tip_frame): Remove unused variable `tem'.
15624
15625 * w32inevt.c (w32_console_read_socket):
15626 Remove unused variable `no_events'.
15627
15628 * w32term.c (x_draw_composite_glyph_string_foreground):
15629 Remove unused variable `width'.
15630
1149507c
JB
156312011-03-24 Juanma Barranquero <lekktu@gmail.com>
15632
15633 * w32term.c (x_set_glyph_string_clipping):
15634 Don't pass uninitialized region to CombineRgn.
15635
9c88f339
JB
156362011-03-23 Juanma Barranquero <lekktu@gmail.com>
15637
15638 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
15639 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
15640 (Fx_close_connection): Remove unused variable `i'.
15641
15642 * w32font.c (w32font_draw): Return number of glyphs.
15643 (w32font_open_internal): Remove unused variable `i'.
15644 (w32font_driver): Add missing initializer.
15645
15646 * w32menu.c (utf8to16): Remove unused variable `utf16'.
15647 (fill_in_menu): Remove unused variable `items_added'.
15648
15649 * w32term.c (last_mouse_press_frame): Remove static global variable.
15650 (w32_clip_to_row): Remove unused variable `f'.
15651 (x_delete_terminal): Remove unused variable `i'.
15652
15653 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
15654 (NOTHING): Remove unused static global variable.
15655 (uniscribe_check_otf): Remove unused variable `table'.
15656 (uniscribe_font_driver): Add missing initializers.
15657
dee091a3
JD
156582011-03-23 Julien Danjou <julien@danjou.info>
15659
15660 * term.c (Fsuspend_tty, Fresume_tty):
15661 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
15662 * window.c (temp_output_buffer_show):
15663 * insdel.c (signal_before_change):
15664 * frame.c (Fhandle_switch_frame):
15665 * fileio.c (Fdo_auto_save):
15666 * emacs.c (Fkill_emacs):
15667 * editfns.c (save_excursion_restore):
15668 * cmds.c (internal_self_insert):
15669 * callint.c (Fcall_interactively):
15670 * buffer.c (Fkill_all_local_variables):
15671 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
15672 Use Frun_hooks.
0f4a96b5 15673 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
e9fce1ac 15674 unconditionally since it does the check itself.
dee091a3 15675
2c520ab5 156762011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 15677
c9c49752
PE
15678 Fix more problems found by GCC 4.5.2's static checks.
15679
8abc3f12
PE
15680 * coding.c (encode_coding_raw_text): Avoid unnecessary test
15681 the first time through the loop, since we know p0 < p1 then.
15682 This also avoids a gcc -Wstrict-overflow warning.
15683
a2d26660
PE
15684 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
15685 leading to a memory leak, possible in functions like
15686 load_charset_map_from_file that can allocate an unbounded number
b12ef411 15687 of objects (Bug#8318).
a2d26660 15688
916c72e9
PE
15689 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
15690 that could (at least in theory) be that large.
15691
19ab8a18
PE
15692 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
15693 This is less likely to overflow, and avoids undefined behavior if
15694 overflow does occur. All callers changed. Use strtoul to scan
15695 for the unsigned long integer.
b7cbbd6f
PE
15696 (pint2hrstr): Simplify and tune code slightly.
15697 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 15698
f0641eff
PE
15699 * scroll.c (do_scrolling): Work around GCC bug 48228.
15700 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
15701
7f650bb9
PE
15702 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
15703 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
15704 (validate_x_resource_name): Simplify count usage.
15705 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 15706
37dd57d1
PE
15707 * fileio.c (Fcopy_file): Report error if fchown or fchmod
15708 fail (Bug#8306).
81e56e61 15709
699979fc 15710 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 15711
401bf9b4
PE
15712 * process.c (Fmake_network_process): Use socklen_t, not int,
15713 where POSIX says socklen_t is required in portable programs.
15714 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 15715 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
15716 (Fmake_network_process, server_accept_connection):
15717 (wait_reading_process_output, read_process_output):
15718 Likewise.
15719
b93aacde
PE
15720 * process.c: Rename or move locals to avoid shadowing.
15721 (list_processes_1, Fmake_network_process):
15722 (read_process_output_error_handler, exec_sentinel_error_handler):
15723 Rename or move locals.
4dc343ee 15724 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 15725 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 15726 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 15727 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 15728 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 15729
af8a867c 15730 Make tparam.h and terminfo.c consistent.
44f230aa
SM
15731 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
15732 Include tparam.h instead, since it declares them.
af8a867c
PE
15733 * cm.h (PC): Remove extern decl; tparam.h now does this.
15734 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
15735 * terminfo.c: Include tparam.h, to check interfaces.
15736 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
15737 (tparam): Adjust signature to match interface in tparam.h;
15738 this removes some undefined behavior. Check that outstring and len
15739 are zero, which they always are with Emacs.
15740 * tparam.h (PC, BC, UP): New extern decls.
15741
0248044d 15742 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 15743 (xftfont_open): Rename locals to avoid shadowing.
0248044d 15744
8ff096c1 15745 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
15746 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
15747 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 15748 (ftfont_list): Remove unused local.
49eaafba
PE
15749 (get_adstyle_property, ftfont_pattern_entity):
15750 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
15751 Rename locals to avoid shadowing.
8ff096c1 15752
e2be39f6
PE
15753 * xfont.c (xfont_list_family): Mark var as initialized.
15754
c9735e30
PE
15755 * xml.c (make_dom): Now static.
15756
8f5201ae
PE
15757 * composite.c (composition_compute_stop_pos): Rename local to
15758 avoid shadowing.
b246f932
PE
15759 (composition_reseat_it): Remove unused locals.
15760 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 15761 (composition_update_it): Mark var as initialized.
11b61122
PE
15762 (find_automatic_composition): Mark vars as initialized,
15763 with a FIXME (Bug#8290).
8f5201ae 15764
760fbc2c
PE
15765 character.h: Rename locals to avoid shadowing.
15766 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
15767 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
15768 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
15769 (BUF_DEC_POS): Be more systematic about renaming local temporaries
15770 to avoid shadowing.
15771
ff08eb85
PE
15772 * textprop.c (property_change_between_p): Remove; unused.
15773
fc7bf025
PE
15774 * intervals.c (interval_start_pos): Now static.
15775
235d7abc
PE
15776 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
15777
44f230aa
SM
15778 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
15779 Rename locals to avoid shadowing.
3e7d6594 15780
50060332
PE
15781 * sound.c (wav_play, au_play, Fplay_sound_internal):
15782 Fix pointer signedness.
d01f234b 15783 (alsa_choose_format): Remove unused local var.
c83b8872
PE
15784 (wav_play): Initialize a variable to 0, to prevent undefined
15785 behavior (Bug#8278).
50060332 15786
c4fc4e30
PE
15787 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
15788
918436ed
PE
15789 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
15790
c939f91b
PE
15791 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
15792 clobbering (Bug#8298).
b9c7f648
PE
15793 * sysdep.c (sys_subshell): Likewise.
15794 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 15795
6bd8c144
PE
15796 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
15797 This should get cleaned up, so that child_setup has the
15798 same signature on all platforms.
15799
7710357c 15800 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 15801 (relocate_fd): Rename locals to avoid shadowing.
7710357c 15802
c59da222
CY
158032011-03-22 Chong Yidong <cyd@stupidchicken.com>
15804
15805 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
15806 not to be necessary, and produces flickering.
15807
66b87493
GM
158082011-03-20 Glenn Morris <rgm@gnu.org>
15809
15810 * config.in: Remove file.
15811
45b6f6d5
JB
158122011-03-20 Juanma Barranquero <lekktu@gmail.com>
15813
15814 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
15815 are now in src/globals.h.
15816 (syms_of_minibuf): Remove spurious & from previous change.
15817
cd394be1 158182011-03-20 Leo Liu <sdl.web@gmail.com>
3ec03f7e
LL
15819
15820 * minibuf.c (completing-read-function): New variable.
15821 (completing-read-default): Rename from completing-read.
15822 (completing-read): Call completing-read-function.
15823
b14e3e21
CY
158242011-03-19 Juanma Barranquero <lekktu@gmail.com>
15825
15826 * xfaces.c (Fx_load_color_file):
15827 Read color file from absolute filename (bug#8250).
15828
f2b726e6
JB
158292011-03-19 Juanma Barranquero <lekktu@gmail.com>
15830
15831 * makefile.w32-in: Update dependencies.
15832
09f6ff02
EZ
158332011-03-17 Eli Zaretskii <eliz@gnu.org>
15834
15835 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
15836
29a6015a
PE
158372011-03-17 Paul Eggert <eggert@cs.ucla.edu>
15838
a3a6c54e
PE
15839 Fix more problems found by GCC 4.5.2's static checks.
15840
b766f867
PE
15841 * process.c (make_serial_process_unwind, send_process_trap):
15842 (sigchld_handler): Now static.
15843
be02381c
PE
15844 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
15845 That way, the code declares only the vars that it needs.
15846 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
15847 * s/cygwin.h (PTY_ITERATION): Likewise.
15848 * s/darwin.h (PTY_ITERATION): Likewise.
15849 * s/gnu-linux.h (PTY_ITERATION): Likewise.
15850
57048744
PE
15851 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
15852 * process.c (allocate_pty): Don't declare stb unless it's needed.
15853
7914961c 15854 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
15855 (CONSTANTLIM): Remove; unused.
15856 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
15857 Define only if needed.
7914961c 15858
b3967b18
PE
15859 * unexelf.c (unexec): Name an expression,
15860 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
15861 Use a different way to cause a compilation error if anyone uses
15862 n rather than nn, a way that does not involve shadowing.
73366a00 15863 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 15864
29a6015a
PE
15865 * deps.mk (unexalpha.o): Remove; unused.
15866
43cfc33e 15867 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 15868 * unexec.h: New file.
ce701a33
PE
15869 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
15870 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
15871 Depend on unexec.h.
15872 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
15873 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
15874 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 15875 Change as necessary to match prototype in unexec.h.
ce701a33 15876
01f44d5a
PE
15877 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
15878 shadowing.
4f63c6bb 15879 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 15880
a6670b0b
PE
15881 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
15882 Rename locals to avoid shadowing.
15883
cef2010d 15884 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 15885 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 15886
d4d7173a
PE
15887 * print.c (Fredirect_debugging_output): Fix pointer signedess.
15888
f08b802a
PE
15889 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
15890 warning when compiling print.c.
15891
3ddb0639
PE
15892 * font.c (font_unparse_fcname): Abort in an "impossible" situation
15893 instead of using an uninitialized var.
5ad03b97 15894 (font_sort_entities): Mark var as initialized.
3ddb0639 15895
170a2692
PE
15896 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
15897
e663c700
PE
15898 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
15899 pointers to constants.
89bc529a 15900 (font_parse_fcname): Remove unused vars.
7b81e2d0 15901 (font_delete_unmatched): Now static.
ea838e10 15902 (font_get_spec): Remove; unused.
13a547c6
PE
15903 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
15904 (font_update_drivers, Ffont_get_glyphs, font_add_log):
15905 Rename or move locals to avoid shadowing.
e663c700 15906
2a80c887 15907 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 15908 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 15909
1384fa33 15910 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 15911 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 15912
8b2c52e9
PE
15913 * alloc.c (mark_backtrace): Move decl from here ...
15914 * lisp.h: ... to here, so that it can be checked.
15915
475545b5 15916 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 15917 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
15918 (lisp_indirect_variable): Name an expression,
15919 to avoid gcc -Wbad-function-cast warning.
1faed8ae 15920 (Fdefvar): Rename locals to avoid shadowing.
475545b5 15921
b1349114 15922 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 15923 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 15924 Use const pointer when appropriate.
b1349114 15925
a2928364
PE
15926 * lisp.h (get_system_name, get_operating_system_release):
15927 Move decls here, to check interfaces.
15928 * process.c (get_operating_system_release): Move decl to lisp.h.
15929 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
15930 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
15931 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
15932 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
15933 (Fformat_time_string, Fencode_time, Finsert_char):
15934 (Ftranslate_region_internal, Fformat):
15935 Rename or remove local vars to avoid shadowing.
9710023e 15936 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 15937
a415e694
PE
15938 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
15939 avoid shadowing.
15940
8ef4622d
PE
15941 * lisp.h (eassert): Check that the argument compiles, even if
15942 ENABLE_CHECKING is not defined.
15943
946f9a5b
PE
15944 * data.c (Findirect_variable): Name an expression, to avoid
15945 gcc -Wbad-function-cast warning.
112396d6 15946 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 15947 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
15948 (Fmake_variable_buffer_local, Fmake_local_variable):
15949 Mark variables as initialized.
52746918 15950 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 15951
e5aab7e7 15952 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
15953 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
15954 Rename locals to avoid shadowing.
dff45157
PE
15955 (mark_stack): Move local variables into the #ifdef region where
15956 they're used.
7bc26fdb
PE
15957 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
15958 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
15959 needed otherwise.
15960 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
15961 (GC_STRING_CHARS): Remove; not used.
d40d4be1 15962 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 15963
e5aab7e7
PE
15964 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
15965 avoids undefined behavior in theory.
15966
4da60324
PE
15967 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
15968
88043301
PE
15969 Use functions, not macros, for up- and down-casing (Bug#8254).
15970 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
15971 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
15972 to use the following functions instead of these macros.
15973 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
15974 EMACS_INT, since callers assume the returned value fits in int.
15975 (upcase1): Likewise, for UPCASE_TABLE.
15976 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 15977 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 15978 the race-condition problem in the old DOWNCASE.
88043301 15979
19ed5445
PE
15980 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
15981 Rename locals to avoid shadowing.
15982 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
15983 (regex_compile, re_search_2, re_match_2_internal):
15984 Remove unused local vars.
952db0d7
PE
15985 (FREE_VAR): Rewrite so as not to use empty "else",
15986 which gcc can warn about.
da053e48 15987 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
15988 (RETALLOC_IF): Define only if needed.
15989 (WORDCHAR_P): Likewise. This one is never needed, but is used
15990 only in a comment talking about a compiler bug, so put inside
15991 the #if 0 of that comment.
15992 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
15993 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
15994 Remove; unused.
19ed5445 15995
1f3561e4 15996 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
15997 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
15998 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 15999
ded6f8f7
PE
16000 * search.c (simple_search): Remove unused var.
16001
dbd37a95
PE
16002 * dired.c (compile_pattern): Move decl from here ...
16003 * lisp.h: ... to here, so that it can be checked.
16004 (struct re_registers): New forward decl.
16005
7e47afad
PE
16006 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
16007
85f24f61
PE
16008 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
16009 All uses changed.
16010 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
16011 Rename locals to avoid shadowing.
5671df8f 16012 (Fvertical_motion): Mark locals as initialized.
85f24f61 16013
181aa2be 16014 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 16015 (casify_region): Mark local as initialized.
181aa2be 16016
930d429c
PE
16017 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
16018
7082eac6
PE
16019 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
16020 New macros, so that the caller can use some names other than
16021 gcpro1, gcpro2, etc.
16022 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
16023 of the new macros.
16024 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
16025 argument, for consistency with GCPRO2_VAR, etc: it is now the
16026 prefix of the variable, not the variable itself. All uses
16027 changed.
38b2c076
PE
16028 * dired.c (directory_files_internal, file_name_completion):
16029 Rename locals to avoid shadowing.
16030
15206ed9
PE
16031 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
16032 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
16033 dired.c's scmp function, had undefined behavior.
16034 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
16035 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
16036 * buffer.h: ... to here, because these macros use current_buffer,
16037 and the new implementation with inline functions needs to have
16038 current_buffer in scope now, rather than later when the macros
16039 are used.
16040 (downcase, upcase1): New static inline functions.
16041 (DOWNCASE, UPCASE1): Reimplement using these functions.
16042 This avoids undefined behavior in expressions like
16043 DOWNCASE (x) == DOWNCASE (y), which previously suffered
16044 from race conditions in accessing the global variables
16045 case_temp1 and case_temp2.
16046 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
16047 * lisp.h (case_temp1, case_temp2): Remove their decls.
16048 * character.h (ASCII_CHAR_P): Move from here ...
16049 * lisp.h: ... to here, so that the inline functions mentioned
16050 above can use them.
16051
4a6bea26
PE
16052 * dired.c (directory_files_internal_unwind): Now static.
16053
f14b7e14
PE
16054 * fileio.c (file_name_as_directory, directory_file_name):
16055 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
16056 Now static.
2893f146
PE
16057 (file_name_as_directory): Use const pointers when appropriate.
16058 (Fexpand_file_name): Likewise. In particular, newdir might
16059 point at constant storage, so make it a const pointer.
fd4ead52 16060 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
16061 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
16062 signedness issues.
f839df0c
PE
16063 (Fset_file_times, Finsert_file_contents, auto_save_error):
16064 Rename locals to avoid shadowing.
f14b7e14 16065
5716756e 16066 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
16067 (Ftry_completion, Fall_completions): Rename or remove locals
16068 to avoid shadowing.
5716756e 16069
b4c3046a
PE
16070 * marker.c (bytepos_to_charpos): Remove; unused.
16071
b45db522
PE
16072 * lisp.h (verify_bytepos, count_markers): New decls,
16073 so that gcc does not warn that these functions aren't declared.
16074
85876d07
PE
16075 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
16076 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 16077 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 16078 (copy_text): Remove unused local var.
85876d07 16079
03d78a21 16080 * filelock.c (within_one_second): Now static.
b3dd38ab 16081 (lock_file_1): Rename local to avoid shadowing.
03d78a21 16082
5df8f01b
PE
16083 * buffer.c (fix_overlays_before): Mark locals as initialized.
16084 (fix_start_end_in_overlays): Likewise. This function should be
16085 simplified by using pointers-to-pointers, but that's a different
16086 matter.
b1d876f1 16087 (switch_to_buffer_1): Now static.
8f54f30a
PE
16088 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
16089 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 16090
a70072c9 16091 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 16092 Fix pointer signedness issue.
edced198
PE
16093 (sys_subshell): Mark local as volatile if checking for lint,
16094 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 16095 (MAXPATHLEN): Define only if needed.
a70072c9 16096
a0977c44
PE
16097 * process.c (serial_open, serial_configure): Move decls from here ...
16098 * systty.h: ... to here, so that they can be checked.
16099
a884fdcc
PE
16100 * fns.c (get_random, seed_random): Move extern decls from here ...
16101 * lisp.h: ... to here, so that they can be checked.
16102
604efe86 16103 * sysdep.c (reset_io): Now static.
b8950c94 16104 (wait_for_termination_signal): Remove; unused.
604efe86 16105
38fc62d9
PE
16106 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
16107 (copy_keymap_item, append_key, push_text_char_description):
16108 Now static.
1004a21a 16109 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 16110 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
16111 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
16112 (describe_map_tree):
16113 Rename locals to avoid shadowing.
38fc62d9 16114
2f2650da
PE
16115 * keyboard.c: Declare functions static if they are not used elsewhere.
16116 (echo_char, echo_dash, cmd_error, top_level_2):
16117 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
16118 (read_char, kbd_buffer_get_event, make_lispy_position):
16119 (make_lispy_event, make_lispy_movement, apply_modifiers):
16120 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
16121 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
16122 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 16123 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 16124 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 16125
a053e86c 16126 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
16127 (mark_kboards): Move decl here ...
16128 * alloc.c (mark_kboards): ... from here.
a053e86c 16129
4752793e
PE
16130 * lisp.h (force_auto_save_soon): New decl.
16131
74f10ca7 16132 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
16133 (DEFINE_DUMMY_FUNCTION): New macro.
16134 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
16135 Use it.
c03cd23f
PE
16136 (main): Add casts to avoid warnings
16137 if GCC considers string literals to be constants.
74f10ca7 16138
022e70d4
PE
16139 * lisp.h (fatal_error_signal): Add decl, since it's exported.
16140
59d6fe83
PE
16141 * dbusbind.c: Pointer signedness fixes.
16142 (xd_signature, xd_append_arg, xd_initialize):
16143 (Fdbus_call_method, Fdbus_call_method_asynchronously):
16144 (Fdbus_method_return_internal, Fdbus_method_error_internal):
16145 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
16146 (Fdbus_register_signal): Use SSDATA when the context wants char *.
16147
78320123
PE
16148 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
16149 if GCC considers string literals to be constants.
49cebcca 16150 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 16151
35ac2a97
SM
161522011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
16153
fb103ca9
SM
16154 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
16155 (print_preprocess, print_object): New macro to fix last change.
16156
35ac2a97
SM
16157 * print.c (print_preprocess): Don't forget font objects.
16158
62973b41
JB
161592011-03-16 Juanma Barranquero <lekktu@gmail.com>
16160
16161 * emacs.c (USAGE3): Doc fixes.
16162
0e48bb22
AS
161632011-03-15 Andreas Schwab <schwab@linux-m68k.org>
16164
16165 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
16166 structure.
16167
7684e57b
JB
161682011-03-14 Juanma Barranquero <lekktu@gmail.com>
16169
16170 * lisp.h (VWindow_system, Qfile_name_history):
16171 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
16172 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
16173 (w32_system_caret_x, w32_system_caret_y): Declare extern.
16174
16175 * w32select.c: Don't #include "keyboard.h".
c96bbc66 16176 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
16177
16178 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
16179 * w32console.c (detect_input_pending, read_input_pending)
16180 (encode_terminal_code):
16181 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
16182 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
16183 (w32_system_caret_y, Qfile_name_history):
16184 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
16185 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
16186 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
16187 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
16188 * w32proc.c (Qlocal, report_file_error):
16189 * w32term.c (Vwindow_system, updating_frame):
16190 * w32uniscribe.c (initialized, uniscribe_font_driver):
16191 Remove unneeded extern declarations.
16192
2aa46d6c
CY
161932011-03-14 Chong Yidong <cyd@stupidchicken.com>
16194
c96bbc66 16195 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 16196
cffc6f3b
CY
161972011-03-13 Chong Yidong <cyd@stupidchicken.com>
16198
16199 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
16200 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
16201 These macros can no longer be used for assignment.
16202
44f230aa
SM
16203 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
16204 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
16205 (record_buffer_markers, fetch_buffer_markers): New functions for
16206 recording and fetching special buffer markers.
16207 (set_buffer_internal_1, set_buffer_temp): Use them.
16208
16209 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
16210
16211 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
16212
16213 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
16214 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
16215
16216 * xdisp.c (hscroll_window_tree):
16217 (reconsider_clip_changes): Use PT instead of BUF_PT.
16218
d251f04b
EZ
162192011-03-13 Eli Zaretskii <eliz@gnu.org>
16220
16221 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
16222 $(EMACS_ROOT)/lib/intprops.h.
16223
f0c77cd1
PE
162242011-03-13 Paul Eggert <eggert@cs.ucla.edu>
16225
3eca4629
PE
16226 Fix more problems found by GCC 4.5.2's static checks.
16227
7c86ee98
PE
16228 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
16229 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
16230 (xg_free_frame_widgets): Make it clear that a local variable is
16231 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
16232 (gdk_window_get_screen): Make it clear that this macro is needed
16233 only if USE_GTK_TOOLTIP.
1e5524e7
PE
16234 (int_gtk_range_get_value): New function, which avoids a diagnostic
16235 from gcc -Wbad-function-cast.
16236 (xg_set_toolkit_scroll_bar_thumb): Use it.
16237 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
16238 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
16239 (get_utf8_string, xg_get_file_with_chooser):
16240 Rename locals to avoid shadowing.
16241 (create_dialog): Move locals to avoid shadowing.
7c86ee98 16242
41729b81
PE
16243 * xgselect.c (xg_select): Remove unused var.
16244
f0c77cd1
PE
16245 * image.c (four_corners_best): Mark locals as initialized.
16246 (gif_load): Initialize transparent_p to zero (Bug#8238).
16247 Mark another local as initialized.
ec6cf4c6 16248 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 16249
ce0ad53d 16250 * image.c (clear_image_cache): Now static.
d5d5a617 16251 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 16252 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
16253 (x_edge_detection): Remove unnecessary cast that
16254 gcc -Wbad-function-cast diagnoses.
2037898d 16255 (gif_load): Fix pointer signedness.
6ae141d6
PE
16256 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
16257 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 16258
33383987 162592011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 16260
d32df629
PE
16261 Improve quality of tests for time stamp overflow.
16262 For example, without this patch (encode-time 0 0 0 1 1
16263 1152921504606846976) returns the obviously-bogus value (-948597
16264 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
16265 reports time overflow. See
16266 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
16267 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
16268 * editfns.c: Include limits.h and intprops.h.
16269 (TIME_T_MIN, TIME_T_MAX): New macros.
16270 (time_overflow): Move earlier, to before first use.
16271 (hi_time, lo_time): New functions, for an accurate test for
16272 out-of-range times.
16273 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
16274 (Fget_internal_run_time): Don't assume time_t fits in int.
16275 (make_time): Use list2 instead of Fcons twice.
16276 (Fdecode_time): More accurate test for out-of-range times.
16277 (check_tm_member): New function.
16278 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
16279 (lisp_time_argument): Don't rely on undefined left-shift and
16280 right-shift behavior when checking for time stamp overflow.
8be6f318 16281
fe31d94c
PE
16282 * editfns.c (time_overflow): New function, refactoring common code.
16283 (Fformat_time_string, Fdecode_time, Fencode_time):
16284 (Fcurrent_time_string): Use it.
16285
8be6f318
PE
16286 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
16287 * dired.c (make_time): Move to ...
16288 * editfns.c (make_time): ... here.
16289 * systime.h: Note the move.
16290
09d9db2c 162912011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 16292
126bc0dc
YM
16293 * fringe.c (update_window_fringes): Remove unused variables.
16294
c47cbdfd
YM
16295 * unexmacosx.c (copy_data_segment): Also copy __got section.
16296 (Bug#8223)
16297
7ac80be9
EZ
162982011-03-12 Eli Zaretskii <eliz@gnu.org>
16299
c96bbc66 16300 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
16301 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
16302 Constify `char *' arguments and their references according to
16303 prototypes in tparam.h.
16304
ecb0f94d 16305 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 16306
7ac80be9
EZ
16307 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
16308 Adapt all references accordingly.
16309
16310 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
16311
ef1fd07e
TT
163122011-03-11 Tom Tromey <tromey@redhat.com>
16313
16314 * buffer.c (syms_of_buffer): Remove obsolete comment.
16315
7ef4b50c
EZ
163162011-03-11 Eli Zaretskii <eliz@gnu.org>
16317
16318 * termhooks.h (encode_terminal_code): Declare prototype.
16319
16320 * msdos.c (encode_terminal_code): Don't declare prototype.
16321
16322 * term.c (encode_terminal_code): Now external again, used by
16323 w32console.c and msdos.c.
16324
44f230aa
SM
16325 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
16326 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 16327
4b1ec863 163282011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 16329
1714f52b 16330 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 16331
4b1ec863
PE
16332 * fringe.c (update_window_fringes): Mark locals as initialized
16333 (Bug#8227).
16334 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 16335
524c7aa6
PE
16336 * alloc.c (mark_fringe_data): Move decl from here ...
16337 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
16338 to check its interface.
16339 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
16340
a5c0af81 16341 * fontset.c (free_realized_fontset): Now static.
7519b8cd 16342 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 16343 (fontset_font): Mark local as initialized.
a9a06e0b 16344 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 16345
b4716021
PE
16346 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
16347
811e9bac 16348 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 16349 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
16350 (x_own_selection, Fx_disown_selection_internal): Rename locals
16351 to avoid shadowing.
16352 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 16353
7e3ab302
PE
16354 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
16355 so that the caller can use some name other than gcpro1.
16356 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
16357 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
16358 (Fx_backspace_delete_keys_p):
16359 Use them to avoid shadowing, and rename vars to avoid shadowing.
16360 (x_decode_color, x_set_name, x_window): Now static.
6b437900 16361 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 16362 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
16363 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
16364 Remove unused locals.
7e3ab302
PE
16365 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
16366 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
16367 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
16368 macros.
f78faa98 16369
e2b13473
PE
16370 * xterm.h (x_mouse_leave): New decl.
16371
77f23912
PE
16372 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
16373 Remove unused functions.
cdf4ba58
PE
16374 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
16375 (x_calc_absolute_position): Now static.
7411c686 16376 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 16377 Don't declare local "event" unless it's used.
ed7bf3a5
PE
16378 (x_iconify_frame, x_free_frame_resources): Don't declare locals
16379 unless they are used.
38d0b34a
PE
16380 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
16381 (x_fatal_error_signal): Remove; not used.
a6067996
PE
16382 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
16383 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
16384 (x_error_catcher, x_connection_closed, x_error_handler):
16385 (x_error_quitter, xembed_send_message, x_iconify_frame):
16386 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 16387 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 16388 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 16389
44f230aa
SM
16390 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
16391 Rename or move locals to avoid shadowing.
6b463e58 16392 (tty_defined_color, merge_face_heights): Now static.
5967d051 16393 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
16394 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
16395 does not deduce is never used uninitialized.
73719eba
PE
16396 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
16397 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 16398
426994c3 16399 * terminal.c (store_terminal_param): Now static.
5489860b 16400
032f1620 16401 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 16402 (set_frame_menubar): Remove unused local.
d4323972 16403 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
16404 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
16405 since they might point to immutable storage.
281585b0
PE
16406 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
16407 since it's unused otherwise.
032f1620 16408
367c19e5 16409 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 16410 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
16411 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
16412 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 16413 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
16414 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
16415 does not deduce are never used uninitialized.
70739cbe 16416
07b48fa9
PE
16417 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
16418
8868a238 16419 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
16420 * window.c (window_loop, size_window):
16421 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 16422
7e5cf297 16423 * window.c (display_buffer): Now static.
d6550a9f
PE
16424 (size_window): Mark variables that gcc -Wuninitialized
16425 does not deduce are never used uninitialized.
a586633d
PE
16426 * window.h (check_all_windows): New decl, to forestall
16427 gcc -Wmissing-prototypes diagnostic.
5b555da1 16428 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 16429
f6095868
PE
16430 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
16431 shadowing.
16432 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
16433 Include <limits.h>.
16434 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
16435 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
16436 (load_charset_map): Mark variables that gcc -Wuninitialized
16437 does not deduce are never used uninitialized.
53df7c11 16438 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 16439
f38b440c
PE
16440 * coding.c (coding_set_source, coding_set_destination):
16441 Use "else { /* comment */ }" rather than "else /* comment */;"
16442 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
16443 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
16444 a block, when the outer 'i' will do.
16445 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
16446 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
16447 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
16448 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
16449 (Fdecode_sjis_char, Fdefine_coding_system_internal):
16450 Rename locals to avoid shadowing.
16451 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
16452 * coding.c (emacs_mule_char, encode_invocation_designation):
16453 Now static, since they're not used elsewhere.
413bb2db 16454 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 16455 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
16456 (decode_coding_emacs_mule): Mark variables that gcc
16457 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
16458 (detect_coding_iso_2022): Initialize a local variable that might
16459 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 16460 this initialization is needed. (Bug#8211)
5f58e762
PE
16461 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
16462 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
16463 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
16464 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
16465 Remove unused macros.
f38b440c 16466
232b38b9 16467 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 16468 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 16469 * character.c (string_count_byte8): Likewise.
232b38b9 16470
fb90da1b
PE
16471 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
16472 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
16473
fb93dbc2
PE
16474 * chartab.c (copy_sub_char_table): Now static, since it's not used
16475 elsewhere.
5c156ace
PE
16476 (sub_char_table_ref_and_range, char_table_ref_and_range):
16477 Rename locals to avoid shadowing.
bbcd0949 16478 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 16479
7d3b3862 16480 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 16481 (BIDI_BOB): Remove unused macro.
7d3b3862 16482
6be7d3da
PE
16483 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
16484 deduce are never used uninitialized.
c2ed9c8b 16485 * term.c (encode_terminal_code): Likewise.
6be7d3da 16486
75f8807f 16487 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 16488
50938595
PE
16489 * tparam.h: New file.
16490 * term.c, tparam.h: Include it.
16491 * deps.mk (term.o, tparam.o): Depend on tparam.h.
16492 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
16493 Move these decls to tparam.h, and make them agree with what
16494 is actually in tparam.c. The previous trick of using incompatible
16495 decls in different modules does not conform to the C standard.
16496 All callers of tparam changed to use tparam's actual API.
16497 * tparam.c (tparam1, tparam, tgoto):
16498 Use const pointers where appropriate.
16499
fbceeba2
PE
16500 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
16501 * cm.h (struct cm): Likewise.
16502 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
16503 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
16504 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
16505 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
16506 (turn_on_face, init_tty): Likewise.
16507 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 16508
7f3f1250
PE
16509 * term.c (term_mouse_position): Rename local to avoid shadowing.
16510
e6ca6543
PE
16511 * alloc.c (mark_ttys): Move decl from here ...
16512 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
16513
c40f8d15
AS
165142011-03-11 Andreas Schwab <schwab@linux-m68k.org>
16515
16516 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
16517
cfe0661d
JB
165182011-03-09 Juanma Barranquero <lekktu@gmail.com>
16519
16520 * search.c (compile_pattern_1): Remove argument regp, unused since
16521 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
16522 (compile_pattern): Don't pass it.
16523
0afb4571
J
165242011-03-08 Jan Djärv <jan.h.d@swipnet.se>
16525
16526 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
16527 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
16528 for ! HAVE_GTK3.
16529 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
16530
16531 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
16532
16533 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
16534 gdk_window_get_screen, gdk_window_get_geometry,
16535 gdk_x11_window_lookup_for_display and GDK_KEY_g.
16536 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
16537 (xg_get_pixbuf_from_pixmap): New function.
16538 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
16539 to Pixmap, take frame as parameter, remove GdkColormap parameter.
16540 Call xg_get_pixbuf_from_pixmap instead of
16541 gdk_pixbuf_get_from_drawable.
16542 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
16543 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
16544 (xg_check_special_colors): Use GtkStyleContext and its functions
16545 for HAVE_GTK3.
16546 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
16547 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
16548 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
16549 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
16550 Call gtk_widget_get_preferred_size.
0afb4571
J
16551 (xg_frame_resized): gdk_window_get_geometry only takes 5
16552 parameters.
44f230aa
SM
16553 (xg_win_to_widget, xg_event_is_for_menubar):
16554 Call gdk_x11_window_lookup_for_display.
0afb4571
J
16555 (xg_set_widget_bg): New function.
16556 (delete_cb): New function.
895009e1 16557 (xg_create_frame_widgets): Connect delete-event to delete_cb.
5c32d3f2 16558 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
0afb4571
J
16559 (xg_set_background_color): Call xg_set_widget_bg.
16560 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
16561 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
16562 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
16563 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
16564 if ! HAVE_GTK3.
16565 (update_frame_tool_bar): Call gtk_widget_hide.
16566 (xg_initialize): Use GDK_KEY_g.
16567
16568 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
16569 if ! HAVE_GTK3
16570 (x_session_initialize): Call gdk_x11_set_sm_client_id.
16571
16572 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
16573 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
16574 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
16575
1c2cc4ef
JB
165762011-03-08 Juanma Barranquero <lekktu@gmail.com>
16577
16578 * w32xfns.c (select_palette): Check success of RealizePalette against
16579 GDI_ERROR, not zero.
16580
33383987 16581See ChangeLog.11 for earlier changes.
aac0c6e3
MR
16582
16583;; Local Variables:
16584;; coding: utf-8
aac0c6e3
MR
16585;; End:
16586
2f097256 16587 Copyright (C) 2011-2012 Free Software Foundation, Inc.
aac0c6e3
MR
16588
16589 This file is part of GNU Emacs.
16590
16591 GNU Emacs is free software: you can redistribute it and/or modify
16592 it under the terms of the GNU General Public License as published by
16593 the Free Software Foundation, either version 3 of the License, or
16594 (at your option) any later version.
16595
16596 GNU Emacs is distributed in the hope that it will be useful,
16597 but WITHOUT ANY WARRANTY; without even the implied warranty of
16598 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16599 GNU General Public License for more details.
16600
16601 You should have received a copy of the GNU General Public License
16602 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.