* dispnew.c (update_frame_1): Pacify gcc -Wstrict-overflow
[bpt/emacs.git] / src / ChangeLog
1 2012-08-30 Paul Eggert <eggert@cs.ucla.edu>
2
3 * dispnew.c (update_frame_1): Pacify gcc -Wstrict-overflow
4 for GCC 4.7.1 x86-64.
5
6 2012-08-30 Glenn Morris <rgm@gnu.org>
7
8 * lread.c (init_lread): For out-of-tree builds, only add the
9 source directory's site-lisp dir to the load-path if it exists,
10 consistent with in-tree builds. (Bug#12302)
11
12 2012-08-28 Jan Djärv <jan.h.d@swipnet.se>
13
14 * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize
15 button_values to NULL. Call setStykeMask so dialogs get a close button.
16 (windowShouldClose:): Set window_closed.
17 (dealloc): New member, free button_values.
18 (process_dialog:): Make member function. Remove window argument,
19 replace window with self. Count buttons and allocate and store values
20 in button_values.
21 (addButton:value:row:): value is int with the name tag. Call setTag
22 with tag. Remove return self, declare return value as void.
23 (addString:row:): Remove return self, declare return value as void.
24 (addSplit): Remove return self, declare return value as void.
25 (clicked:): Remove return self, declare return value as void.
26 Set dialog_return to button_values[seltag]. Code formatting change.
27 (initFromContents:isQuestion:): Adjust call to process_dialog.
28 Code formatting change.
29 (timeout_handler:): Set timer_fired to YES.
30 (runDialogAt:): Set timer_fired to NO.
31 Handle click on close button as quit.
32
33 * nsterm.h (EmacsDialogPanel): Make timer_fired BOOL.
34 Add window_closed and button_values. Add void as return value for
35 add(Button|String|Split). addButton takes int instead of Lisp_Object.
36 Add process_dialog as new member.
37
38 2012-08-28 Eli Zaretskii <eliz@gnu.org>
39
40 * ralloc.c (free_bloc): Don't dereference a 'heap' structure if it
41 is not one of the heaps we manage. (Bug#12242)
42
43 2012-08-28 Glenn Morris <rgm@gnu.org>
44
45 * eval.c (Fcalled_interactively_p): Doc fix. (Bug#11747)
46
47 2012-08-28 Martin Rudalics <rudalics@gmx.at>
48
49 * window.c (Fset_window_configuration): Remove handling of
50 auto-buffer-name window parameter. Install revision of reverted
51 fix.
52
53 2012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
54
55 Do not allow to set major mode for a dead buffer.
56 * buffer.c (Fset_buffer_major_mode): Signal an error
57 if the buffer is dead.
58 (Fother_buffer, other_buffer_safely): Remove redundant
59 nested declaration.
60
61 2012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
62
63 Always use set_buffer_if_live to restore original buffer at unwind.
64 * buffer.h (record_unwind_current_buffer): New function.
65 * bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c:
66 * keyboard.c, keymap.c, minibuf.c, print.c, process.c, textprop.c:
67 * undo.c, window.c: Adjust users.
68 * buffer.c (set_buffer_if_live): Fix comment.
69
70 2012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
71
72 Fix usage of set_buffer_internal.
73 * buffer.h (set_buffer_internal): Make it BUFFER_INLINE.
74 * buffer.c (set_buffer_if_live): Use set_buffer_internal.
75 * coding.c (decode_coding): Omit redundant test.
76 * fileio.c (decide_coding_unwind): Likewise.
77 * fns.c (secure_hash): Likewise.
78 * insdel.c (modify_region): Likewise.
79 * keyboard.c (command_loop_1): Likewise.
80 * print.c (PRINTFINISH): Likewise.
81 * xdisp.c (run_window_scroll_functions): Use set_buffer_internal.
82
83 2012-08-27 Paul Eggert <eggert@cs.ucla.edu>
84
85 * dispnew.c: Use bool for boolean.
86 (frame_garbaged, display_completed, delayed_size_change)
87 (fonts_changed_p, add_window_display_history)
88 (add_frame_display_history, verify_row_hash)
89 (adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p)
90 (row_equal_p, realloc_glyph_pool)
91 (allocate_matrices_for_frame_redisplay)
92 (showing_window_margins_p)
93 (adjust_frame_glyphs_for_frame_redisplay)
94 (build_frame_matrix_from_leaf_window, make_current)
95 (mirrored_line_dance, mirror_line_dance, update_frame)
96 (update_window_tree, update_single_window)
97 (check_current_matrix_flags, update_window, update_text_area)
98 (update_window_line, set_window_update_flags, scrolling_window)
99 (update_frame_1, scrolling, buffer_posn_from_coords)
100 (do_pending_window_change, change_frame_size)
101 (change_frame_size_1, sit_for):
102 Use bool for boolean.
103 (clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows,
104 and remove last int (actually boolean) argument, which was always 0.
105 All callers changed.
106 * dispextern.h, frame.h, lisp.h: Reflect above API changes.
107 * dispextern.h (struct composition_it): Use bool for boolean.
108 (struct glyph_matrix): Don't assume buffer sizes can fit in 'int'.
109 (struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf.
110 * dired.c (file_name_completion):
111 Use bool for boolean. (This was missed in an earlier change.)
112
113 2012-08-27 Martin Rudalics <rudalics@gmx.at>
114
115 * window.c (Fset_window_configuration): Revert first part of
116 last change.
117
118 2012-08-27 Jan Djärv <jan.h.d@swipnet.se>
119
120 * nsterm.h (NSPanel): New class variable dialog_return.
121
122 * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize
123 dialog_return.
124 (windowShouldClose:): Use stop instead of stopModalWithCode.
125 (clicked:): Ditto, and also set dialog_return (Bug#12258).
126 (timeout_handler:): Use stop instead of abortModal. Send a dummy
127 event.
128 (runDialogAt:): Make ret Lisp_Object. Set it from dialog_return when
129 modal loop returns.
130
131 2012-08-27 Paul Eggert <eggert@cs.ucla.edu>
132
133 * composite.c, data.c, dbusbind.c, dired.c: Use bool for booleans.
134 * composite.c (find_composition, composition_gstring_p)
135 (composition_reseat_it, find_automatic_composition):
136 * data.c (let_shadows_buffer_binding_p)
137 (let_shadows_global_binding_p, set_internal, make_blv)
138 (Fmake_variable_buffer_local, Fmake_local_variable)
139 (Fmake_variable_frame_local, arithcompare, cons_to_unsigned)
140 (cons_to_signed, arith_driver):
141 * dbusbind.c (xd_in_read_queued_messages):
142 * dired.c (directory_files_internal, file_name_completion):
143 Use bool for booleans.
144 * dired.c (file_name_completion):
145 * process.h (fd_callback):
146 Omit int (actually boolean) argument. It wasn't being used.
147 All uses changed.
148 * composite.h, lisp.h: Reflect above API changes.
149
150 * cmds.c, coding.c: Use bool for booleans.
151 * cmds.c (move_point, Fself_insert_command):
152 * coding.h (struct composition status, struct coding_system):
153 * coding.c (detect_coding_utf_8, encode_coding_utf_8)
154 (detect_coding_utf_16, encode_coding_utf_16, detect_coding_emacs_mule)
155 (emacs_mule_char, decode_coding_emacs_mule)
156 (encode_coding_emacs_mule, detect_coding_iso_2022)
157 (decode_coding_iso_2022, encode_invocation_designation)
158 (encode_designation_at_bol, encode_coding_iso_2022)
159 (detect_coding_sjis, detect_coding_big5, decode_coding_sjis)
160 (decode_coding_big5, encode_coding_sjis, encode_coding_big5)
161 (detect_coding_ccl, encode_coding_ccl, decode_coding_raw_text)
162 (encode_coding_raw_text, detect_coding_charset)
163 (decode_coding_charset, encode_coding_charset, detect_eol)
164 (detect_coding, get_translation_table, produce_chars)
165 (consume_chars, reused_workbuf_in_use)
166 (make_conversion_work_buffer, code_conversion_save)
167 (decode_coding_object, encode_coding_object)
168 (detect_coding_system, char_encodable_p)
169 (Funencodable_char_position, code_convert_region)
170 (code_convert_string, code_convert_string_norecord)
171 (Fset_coding_system_priority):
172 * fileio.c (Finsert_file_contents):
173 Use bool for booleans.
174 * coding.h, lisp.h: Reflect above API changes.
175 * coding.c: Remove unnecessary static function decls.
176 (detect_coding): Use unsigned, not signed, to copy an unsigned field.
177 (decode_coding, encode_coding, decode_coding_gap): Return 'void',
178 not a boolean 'int', since callers never look at the return value.
179 (ALLOC_CONVERSION_WORK_AREA): Assume caller returns 'void', not 'int'.
180 * coding.h (decoding_buffer_size, encoding_buffer_size)
181 (emacs_mule_string_char): Remove unused extern decls.
182 (struct iso_2022_spec, struct coding_system):
183 Use 'unsigned int : 1' for boolean fields, since there's more than one.
184 (struct emacs_mule_spec): Remove unused field 'full_support'.
185 All initializations removed.
186 * cmds.c (internal_self_insert): Don't assume EMACS_INT fits in 'int'.
187
188 2012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
189
190 Fix spare memory change (Bug#12286).
191 * alloc.c (mark_maybe_pointer): Handle MEM_TYPE_SPARE.
192 (valid_lisp_object_p): Likewise.
193
194 2012-08-27 Martin Rudalics <rudalics@gmx.at>
195
196 * window.c (Fset_window_configuration): Record any window's old
197 buffer if it's replaced (see Bug#8789). If the new current
198 buffer doesn't appear in the selected window, go to its old
199 point (Bug#12208).
200
201 2012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
202
203 Special MEM_TYPE_SPARE to denote reserved memory.
204 * alloc.c (enum mem_type): New memory type.
205 (refill_memory_reserve): Use new type for spare memory.
206 This prevents live_cons_p and live_string_p from incorrect
207 detection of uninitialized objects from spare memory as live.
208
209 2012-08-26 Paul Eggert <eggert@cs.ucla.edu>
210
211 Spelling fixes.
212 * Makefile.in (.PHONY): versioclean -> versionclean.
213
214 Remove unused external symbols.
215 * data.c (Qcons, Qfloat, Qmisc, Qstring, Qvector):
216 * window.c (Qwindow_valid_p, decode_valid_window):
217 Now static, not extern.
218 * data.c (Qinterval): Remove; unused.
219 (syms_of_data): Do not define 'interval'.
220 * lisp.h (Qinteger, Qstring, Qmisc, Qvector, Qfloat, Qcons):
221 * window.h (decode_valid_window):
222 Remove decls.
223
224 * character.c, charset.c, chartab.c: Use bool for booleans.
225 * character.c (lisp_string_width, string_count_byte8)
226 (string_escape_byte8):
227 * charset.c (charset_map_loaded, load_charset_map, read_hex):
228 (load_charset_map_from_file, map_charset_chars)
229 (Fdefine_charset_internal, define_charset_internal)
230 (Fdeclare_equiv_charset, find_charsets_in_text)
231 (Ffind_charset_region, char_charset, Fiso_charset):
232 * chartab.c (sub_char_table_ref, sub_char_table_ref_and_range)
233 (sub_char_table_set, sub_char_table_set_range)
234 (char_table_set_range, optimize_sub_char_table)
235 (map_sub_char_table):
236 Use bool for boolean.
237 * character.c (str_to_unibyte): Omit last boolean argument; it was
238 always 0. All callers changed.
239 * character.h, charset.h: Adjust to match previous changes.
240 * character.h (char_printable_p): Remove decl of nonexistent function.
241 * charset.h (struct charset): Members code_linear_p, iso_chars_96,
242 ascii_compatible_p, supplementary_p, compact_codes_p, unified_p
243 are all boolean, so make them single-bit bitfields.
244
245 * lisp.h (ASET): Remove attempt to detect side effects.
246 It was meant to be temporary and it often doesn't work,
247 because when IDX has side effects the behavior of IDX==IDX
248 is undefined. See Stefan Monnier in
249 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00762.html>.
250
251 2012-08-26 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
252
253 * lisp.h (functionp): New function (extracted from Ffunctionp).
254 (FUNCTIONP): Use it.
255 * eval.c (Ffunctionp): Use it.
256
257 2012-08-25 Paul Eggert <eggert@cs.ucla.edu>
258
259 * xgselect.c (xg_select): Use auto storage for the GPollFD buffer
260 as that's faster and simpler than static storage. Don't bother
261 with the g_main_context_query overhead if g_main_context_pending
262 says no events are pending.
263 (gfds, gfds_size): Remove these static vars.
264 (xgselect_initialize): Remove; no longer needed.
265 All uses and decls removed.
266
267 * emacs.c (fatal_error_signal_hook): Remove.
268 All uses removed. This leftover from old code was always 0.
269
270 * casefiddle.c, casetab.c, category.c: Use bool for boolean.
271 * casefiddle.c (casify_object, casify_region):
272 * casetab.c (set_case_table):
273 * category.c, category.h (word_boundary_p):
274 * category.h (CHAR_HAS_CATEGORY):
275 Use bool for booleans, instead of int.
276
277 2012-08-25 Eli Zaretskii <eliz@gnu.org>
278
279 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on $(GNU_LIB)/execinfo.h.
280
281 2012-08-25 Paul Eggert <eggert@cs.ucla.edu>
282
283 On assertion failure, print backtrace if available.
284 * alloc.c [ENABLE_CHECKING]: Include <execinfo.h>.
285 (die) [ENABLE_CHECKING]: Print a backtrace if available.
286 * Makefile.in (LIB_EXECINFO): New macro.
287 (LIBES): Use it.
288
289 * bytecode.c, callint.c, callproc.c: Use bool for boolean.
290 * bytecode.c (exec_byte_code):
291 * callint.c (check_mark, Fcall_interactively):
292 * callproc.c (Fcall_process, add_env, child_setup, getenv_internal_1)
293 (getenv_internal, sync_process_alive, call_process_exited):
294 * lisp.h (USE_SAFE_ALLOCA):
295 Use bool for booleans, instead of int.
296 * lisp.h, process.h: Adjust prototypes to match above changes.
297 * callint.c (Fcall_interactively): Don't assume the mark's
298 offset fits in 'int'.
299
300 2012-08-24 Paul Eggert <eggert@cs.ucla.edu>
301
302 * buffer.c, buffer.h: Use bool for boolean.
303 * buffer.c (reset_buffer_local_variables)
304 (buffer_lisp_local_variables, Fset_buffer_modified_p)
305 (Frestore_buffer_modified_p, Fset_buffer_multibyte):
306 (overlays_at, overlays_in, mouse_face_overlay_overlaps)
307 (overlay_touches_p, overlay_strings, Foverlay_put)
308 (report_overlay_modification, call_overlay_mod_hooks):
309 (mmap_enlarge, mmap_set_vars):
310 * buffer.h (buffer_has_overlays, uppercasep, lowercasep):
311 Use bool for booleans, instead of int.
312 * buffer.c (compact_buffer, mmap_free_1): Return void, not int,
313 since the 1-or-0 return value is always ignored anyway.
314 (mmap_initialized_p):
315 * buffer.h (struct buffer_text.inhibit_shrinking): Now bool, not int.
316 * buffer.h, lisp.h: Adjust prototypes to match above changes.
317
318 2012-08-23 Paul Eggert <eggert@cs.ucla.edu>
319
320 * bidi.c: Use bool for boolean.
321 This is a bit more readable, and makes the text segment of bidi.o
322 0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15).
323 Presumably it's faster too.
324 (bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level):
325 Now bool.
326 (bidi_cache_find_level_change, bidi_cache_iterator_state)
327 (bidi_unshelve_cache, bidi_init_it, bidi_count_bytes)
328 (bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init)
329 (bidi_explicit_dir_char, bidi_level_of_next_char)
330 (bidi_find_other_level_edge, bidi_move_to_visually_next):
331 Use bool for booleans, instead of int.
332 * dispextern.h (bidi_init_it, bidi_paragraph_init)
333 (bidi_unshelve_cache): Adjust decls to match code.
334
335 2012-08-23 Martin Rudalics <rudalics@gmx.at>
336
337 * keyboard.c (Fposn_at_x_y): Do not allow internal window as
338 argument.
339
340 2012-08-23 Paul Eggert <eggert@cs.ucla.edu>
341
342 * atimer.c, atimer.h (turn_on_atimers): Use bool for boolean.
343 * atimer.h: Include <stdbool.h>.
344
345 2012-08-22 Dan Nicolaescu <dann@gnu.org>
346
347 * frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_NS_P): Change to
348 compile time tests instead of run time tests on systems that do
349 not use them.
350 (FRAME_MAC_P): Remove leftover from deleted code.
351 * frame.c (syms_of_frame): Remove leftover from deleted code.
352
353 2012-08-22 Jan Djärv <jan.h.d@swipnet.se>
354
355 * nsterm.m (insertText:): Don't clear modifiers if code is space.
356
357 2012-08-22 Paul Eggert <eggert@cs.ucla.edu>
358
359 * fontset.c (FONTSET_ADD): Return void, not Lisp_Object.
360 Otherwise, the compiler complains about (A?B:C) where B is void
361 and C is Lisp_Object. This fixes an incompatibility with Sun C 5.12.
362 (fontset_add): Return void, for FONTSET_ADD.
363
364 2012-08-21 Paul Eggert <eggert@cs.ucla.edu>
365
366 * alloc.c: Use bool for booleans.
367 (gc_in_progress, abort_on_gc)
368 (setjmp_tested_p) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
369 (dont_register_blocks) [GC_MALLOC_CHECK]:
370 (suppress_checking) [ENABLE_CHECKING]: Now bool, not int.
371 (check_string_bytes, make_specified_string, memory_full)
372 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
373 (live_misc_p, live_vector_p, live_buffer_p, mark_maybe_object)
374 (mark_stack, valid_pointer_p, make_pure_string)
375 (Fgarbage_collect, survives_gc_p, gc_sweep):
376 Use bool for booleans, instead of int.
377 (test_setjmp) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
378 Remove unused local.
379 * alloc.c (PURE_POINTER_P):
380 * lisp.h (STRING_MULTIBYTE): Document that it returns a boolean.
381 * editfns.c (Fformat):
382 * fileio.c (Fexpand_file_name, Fsubstitute_in_file_name)
383 (Fdo_auto_save):
384 * fns.c (sweep_weak_table):
385 * lisp.h (suppress_checking, push_message, survives_gc_p)
386 (make_pure_string, gc_in_progress, abort_on_gc):
387 * lread.c (readchar, read1):
388 * print.c (Fprin1_to_string):
389 * xdisp.c (push_message):
390 Use bool for booleans affected directly or indirectly by
391 alloc.c's changes.
392
393 Make recently-introduced setters macros.
394 * fontset.c (set_fontset_id, set_fontset_name, set_fontset_ascii)
395 (set_fontset_base, set_fontset_frame, set_fontset_nofont_face)
396 (set_fontset_default, set_fontset_fallback): Rename from their
397 upper-case counterparts, and make them functions rather than macros.
398 This is more consistent with the other recently-introduced setters.
399 These don't need to be inline, since they're local.
400
401 2012-08-21 Jan Djärv <jan.h.d@swipnet.se>
402
403 * nsterm.m (fd_handler:): Alloc and release a NSAutoreleasePool in
404 the loop (Bug#12247).
405
406 2012-08-21 Paul Eggert <eggert@cs.ucla.edu>
407
408 * lisp.h (vcopy): Use memcpy rather than our own loop.
409 This fixes a performance regression introduced by the recent
410 addition of vcopy. This means 'vcopy' will need to be modified
411 for a copying collector, but that's OK. Also, tighten the
412 checking in the assertion.
413
414 2012-08-21 Eli Zaretskii <eliz@gnu.org>
415
416 * w32uniscribe.c (uniscribe_shape): Fix producing gstring
417 components for RTL text (Bug#11860). Adjust X-OFFSET of each
418 non-base glyph for the width of the base character, according to
419 what x_draw_composite_glyph_string_foreground expects.
420 Generate WADJUST value according to composition_gstring_width's
421 expectations, to produce correct width of the composed character.
422 Reverse the sign of the DU offset produced by ScriptPlace.
423
424 2012-08-21 Paul Eggert <eggert@cs.ucla.edu>
425
426 * dbusbind.c (xd_remove_watch): Do not assume C99 comments.
427
428 2012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
429
430 Avoid direct writes to contents member of struct Lisp_Vector.
431 * lisp.h (vcopy): New function to copy data into vector.
432 * dispnew.c (Fframe_or_buffer_changed_p): Use AREF and ASET.
433 * fns.c (Ffillarray): Use ASET.
434 * keyboard.c (timer_check_2): Use AREF and ASET.
435 (append_tool_bar_item, Frecent_keys): Use vcopy.
436 * lread.c (read_vector): Use ASET.
437 * msdos.c (Frecent_doskeys): Use vcopy.
438 * xface.c (Finternal_copy_lisp_face): Use vcopy.
439 (Finternal_merge_in_global_face): Use ASET and vcopy.
440 * xfont.c (xfont_list_pattern): Likewise.
441
442 2012-08-21 Martin Rudalics <rudalics@gmx.at>
443
444 * window.c (Fwindow_point): For the selected window always return
445 the position of its buffer's point.
446 (Fset_window_point): For the selected window always go in its
447 buffer to the specified position.
448
449 2012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
450
451 Setter macros for fontsets.
452 * fontset.c (SET_FONTSET_ID, SET_FONTSET_NAME, SET_FONTSET_ASCII)
453 (SET_FONTSET_BASE, SET_FONTSET_FRAME, SET_FONTSET_NOFONT_FACE)
454 (SET_FONTSET_DEFAULT, SET_FONTSET_FALLBACK): New macros.
455 Adjust users.
456
457 2012-08-20 Glenn Morris <rgm@gnu.org>
458
459 * Makefile.in (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
460 Don't assume that `ln -f' works.
461
462 2012-08-20 Eli Zaretskii <eliz@gnu.org>
463
464 * .gdbinit: Use "set $dummy = ..." to avoid warnings from GDB 7.5
465 and later about non-assignments with no effect. See discussion at
466 http://sourceware.org/ml/gdb-patches/2012-08/msg00518.html for
467 details.
468
469 2012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
470
471 Inline setter functions for Lisp_Objects slots of struct specbinding.
472 * eval.c (set_specpdl_symbol, set_specpdl_old_value): New functions.
473 Adjust users.
474
475 2012-08-20 Martin Rudalics <rudalics@gmx.at>
476
477 * window.c (select_window): Always make selected window's buffer
478 current.
479
480 2012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
481
482 Use AREF and ASET for docstrings of category tables.
483 * category.h (CATEGORY_DOCSTRING): Use AREF.
484 (SET_CATEGORY_DOCSTRING): Use ASET.
485 * category.c (Fdefine_category): Use SET_CATEGORY_DOCSTRING.
486
487 2012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
488
489 Inline setter functions for hash table members.
490 * lisp.h (set_hash_key, set_hash_value, set_hash_next)
491 (set_hash_hash, set_hash_index): Rename with _slot suffix.
492 (set_hash_key_and_value, set_hash_index, set_hash_next)
493 (set_hash_hash): New functions.
494 * charset.c, fns.c: Adjust users.
495
496 2012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
497
498 Inline getter and setter functions for per-buffer values.
499 * buffer.h (per_buffer_default, set_per_buffer_default)
500 (per_buffer_value, set_per_buffer_value): New functions.
501 (PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove.
502 * buffer.c, data.c: Adjust users.
503
504 2012-08-20 Juanma Barranquero <lekktu@gmail.com>
505
506 * makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies.
507
508 2012-08-19 Paul Eggert <eggert@cs.ucla.edu>
509
510 Rely on <config.h> + <unistd.h> to declare 'environ',
511 as gnulib does this if the system doesn't.
512 * callproc.c, editfns.c, process.c (environ) [!USE_CRT_DLL]:
513 Remove declaration. MS-Windows declares it on stdlib.h which is
514 included by conf_post.h.
515 * emacs.c (environ) [DOUG_LEA_MALLOC]:
516 * vm-limit.c (environ) [ORDINARY_LINK]: Remove decl.
517 * vm-limit.c: Include <unistd.h>, for 'environ'.
518
519 * unexaix.c, unexcoff.c: Include "mem-limits.h".
520 (start_of_data): Remove decl; mem-limits.h provides it.
521
522 * xdisp.c (handle_invisible_prop): Make it a bit faster
523 and avoid a gcc -Wmaybe-uninitialized diagnostic.
524
525 2012-08-19 Chong Yidong <cyd@gnu.org>
526
527 * xdisp.c (handle_invisible_prop): Fix ellipses at overlay string
528 ends (Bug#3874).
529
530 2012-08-19 Andreas Schwab <schwab@linux-m68k.org>
531
532 * .gdbinit: Use call instead of set when calling a function in the
533 inferior.
534
535 * data.c (set_internal): Don't use set_blv_found.
536 (Fkill_local_variable): Likewise.
537
538 2012-08-18 Alp Aker <alp.tekin.aker@gmail.com>
539
540 * nsfont.m (ns_ascii_average_width): Ensure the string
541 ascii_printable is initialized with a null-terminated character
542 array. Otherwise, it can contain undesired extra characters.
543
544 2012-08-18 Paul Eggert <eggert@cs.ucla.edu>
545
546 port new setting code to Sun C 5.8 2005/10/13
547 * chartab.c, lisp.h (char_table_set, char_table_set_range):
548 Return void, not Lisp_Object. Otherwise, the compiler
549 complains about (A?B:C) where B is void and C is Lisp_Object
550 when compiling CHAR_TABLE_SET, due to the recent change to
551 the API of sub_char_table_set_contents.
552
553 2012-08-18 Chong Yidong <cyd@gnu.org>
554
555 * xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE
556 for the string case (Bug#3874).
557
558 2012-08-18 Paul Eggert <eggert@cs.ucla.edu>
559
560 * buffer.h (BSET): Remove (Bug#12215).
561 Replace all uses with calls to new setter functions.
562 (bset_bidi_paragraph_direction, bset_case_canon_table)
563 (bset_case_eqv_table, bset_directory, bset_display_count)
564 (bset_display_time, bset_downcase_table)
565 (bset_enable_multibyte_characters, bset_filename, bset_keymap)
566 (bset_last_selected_window, bset_local_var_alist)
567 (bset_mark_active, bset_point_before_scroll, bset_read_only)
568 (bset_truncate_lines, bset_undo_list, bset_upcase_table)
569 (bset_width_table):
570 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
571 (bset_auto_fill_function, bset_auto_save_file_format)
572 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
573 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
574 (bset_cache_long_line_scans, bset_case_fold_search)
575 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
576 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
577 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
578 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
579 (bset_header_line_format, bset_indicate_buffer_boundaries)
580 (bset_indicate_empty_lines, bset_invisibility_spec)
581 (bset_left_fringe_width, bset_major_mode, bset_mark)
582 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
583 (bset_name, bset_overwrite_mode, bset_pt_marker)
584 (bset_right_fringe_width, bset_save_length)
585 (bset_scroll_bar_width, bset_scroll_down_aggressively)
586 (bset_scroll_up_aggressively, bset_selective_display)
587 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
588 (bset_word_wrap, bset_zv_marker):
589 * category.c (bset_category_table):
590 * syntax.c (bset_syntax_table):
591 New setter functions.
592
593 * process.h (PSET): Remove (Bug#12215).
594 Replace all uses with calls to new setter functions.
595 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
596 (PROCESS_INLINE): New macro.
597 (pset_childp): New setter function.
598 (pset_gnutls_cred_type) [HAVE_GNUTLS]: New setter function.
599 * process.c (PROCESS_INLINE):
600 Define to EXTERN_INLINE, so that the corresponding functions
601 are compiled into code.
602 (pset_buffer, pset_command, pset_decode_coding_system)
603 (pset_decoding_buf, pset_encode_coding_system)
604 (pset_encoding_buf, pset_filter, pset_log, pset_mark, pset_name)
605 (pset_plist, pset_sentinel, pset_status, pset_tty_name)
606 (pset_type, pset_write_queue): New setter functions.
607
608 * window.h (WSET): Remove (Bug#12215).
609 Replace all uses with calls to new setter functions.
610 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
611 (WINDOW_INLINE): New macro.
612 (wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev)
613 (wset_redisplay_end_trigger, wset_top_line, wset_total_cols)
614 (wset_total_lines, wset_vertical_scroll_bar)
615 (wset_window_end_pos, wset_window_end_valid)
616 (wset_window_end_vpos): New setter functions.
617 * window.c (WINDOW_INLINE):
618 Define to EXTERN_INLINE, so that the corresponding functions
619 are compiled into code.
620 (wset_combination_limit, wset_dedicated, wset_display_table)
621 (wset_hchild, wset_left_fringe_width, wset_left_margin_cols)
622 (wset_new_normal, wset_new_total, wset_next_buffers)
623 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
624 (wset_prev_buffers, wset_right_fringe_width)
625 (wset_right_margin_cols, wset_scroll_bar_width, wset_start)
626 (wset_temslot, wset_vchild, wset_vertical_scroll_bar_type)
627 (wset_window_parameters):
628 * xdisp.c (wset_base_line_number, wset_base_line_pos)
629 (wset_column_number_displayed, wset_region_showing):
630 New setter functions.
631
632 * termhooks.h (TSET): Remove (Bug#12215).
633 Replace all uses with calls to new setter functions.
634 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
635 (TERMHOOKS_INLINE): New macro.
636 (tset_charset_list, tset_selection_alist): New setter functions.
637 * terminal.c (TERMHOOKS_INLINE):
638 Define to EXTERN_INLINE, so that the corresponding functions
639 are compiled into code.
640 (tset_param_alist): New setter function.
641
642 2012-08-17 Paul Eggert <eggert@cs.ucla.edu>
643
644 * keyboard.h (KSET): Remove (Bug#12215).
645 Replace all uses with calls to new setter functions.
646 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
647 (KEYBOARD_INLINE): New macro.
648 (kset_default_minibuffer_frame, kset_defining_kbd_macro)
649 (kset_input_decode_map, kset_last_command, kset_last_kbd_macro)
650 (kset_prefix_arg, kset_system_key_alist, kset_window_system):
651 New setter functions.
652 * keyboard.c (KEYBOARD_INLINE):
653 Define to EXTERN_INLINE, so that the corresponding functions
654 are compiled into code.
655 (kset_echo_string, kset_kbd_queue)
656 (kset_keyboard_translate_table, kset_last_prefix_arg)
657 (kset_last_repeatable_command, kset_local_function_key_map)
658 (kset_overriding_terminal_local_map, kset_real_last_command)
659 (kset_system_key_syms): New setter functions.
660
661 * frame.h (FSET): Remove (Bug#12215).
662 Replace all uses with calls to new setter functions.
663 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
664 (FRAME_INLINE): New macro.
665 (fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars)
666 (fset_current_tool_bar_string, fset_desired_tool_bar_string)
667 (fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items)
668 (fset_menu_bar_vector, fset_menu_bar_window, fset_name)
669 (fset_param_alist, fset_root_window, fset_scroll_bars)
670 (fset_selected_window, fset_title, fset_tool_bar_items)
671 (fset_tool_bar_position, fset_tool_bar_window): New functions.
672 * frame.c (FRAME_INLINE):
673 Define to EXTERN_INLINE, so that the corresponding functions
674 are compiled into code.
675 (fset_buffer_predicate, fset_minibuffer_window): New setter functions.
676
677 A few more naming-convention fixes for getters and setters.
678 * buffer.c (set_buffer_overlays_before): Move here from buffer.h,
679 and rename from buffer_overlays_set_before.
680 (set_buffer_overlays_after): Move here from buffer.h, and rename
681 from buffer_overlays_set_after.
682 * buffer.h (buffer_intervals): Rename from buffer_get_intervals.
683 All uses changed.
684 (set_buffer_intervals): Rename from buffer_set_intervals.
685 * intervals.c (set_interval_object): Move here from intervals.h,
686 and rename from interval_set_object.
687 (set_interval_left): Move here from intervals.h, and rename from
688 interval_set_left.
689 (set_interval_right): Move here from intervals.h, and rename from
690 interval_set_right.
691 (copy_interval_parent): Move here from intervals.h, and rename from
692 interval_copy_parent.
693 * intervals.h (set_interval_parent): Rename from interval_set_parent.
694 (set_interval_plist): Rename from interval_set_plist.
695 Return void, not Lisp_Object, since no caller uses the result.
696 * lisp.h (string_intervals): Rename from string_get_intervals.
697 (set_string_intervals): Rename from string_set_intervals.
698
699 * lisp.h (set_char_table_extras): Rename from char_table_set_extras.
700 (set_char_table_contents): Rename from char_table_set_contents.
701 (set_sub_char_table_contents): Rename from sub_char_table_set_contents.
702 All uses changed. See the end of
703 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00549.html>.
704
705 * lisp.h (CSET): Remove (Bug#12215).
706 (set_char_table_ascii, set_char_table_defalt, set_char_table_parent)
707 (set_char_table_purpose): New functions,
708 replacing CSET. All uses changed. For example, replace
709 "CSET (XCHAR_TABLE (char_table), parent, parent);" with
710 "set_char_table_parent (char_table, parent);".
711 The old version was confusing because it used the same name
712 'parent' for two different things.
713
714 2012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
715
716 Functions to get and set Lisp_Object fields of buffer-local variables.
717 * lisp.h (blv_found, set_blv_found, blv_value, set_blv_value)
718 (set_blv_where, set_blv_defcell, set_blv_valcell): New functions.
719 (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove.
720 * data.c, eval.c, frame.c: Adjust users.
721
722 2012-08-17 Chong Yidong <cyd@gnu.org>
723
724 * xfaces.c (merge_face_vectors): If the target font specfies a
725 font spec, make the font's attributes take precedence over
726 directly-specified attributes.
727 (merge_face_ref): Recognize :font.
728
729 2012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
730
731 Do not use memcpy for copying intervals.
732 * intervals.c (reproduce_interval): New function.
733 (reproduce_tree, reproduce_tree_obj): Use it.
734 (reproduce_tree_obj): Remove prototype.
735
736 2012-08-17 Paul Eggert <eggert@cs.ucla.edu>
737
738 * lisp.h (duration_to_sec_usec): Remove unused decl.
739
740 2012-08-17 Alp Aker <alp.tekin.aker@gmail.com>
741
742 * nsfont.m (ns_ascii_average_width): Send initWithFormat selector
743 to an allocated instance of NSString, not to the class itself.
744
745 2012-08-17 Juanma Barranquero <lekktu@gmail.com>
746
747 * makefile.w32-in (C_CTYPE_H): New macro.
748 (LISP_H, $(BLD)/ccl.$(O), $(BLD)/doc.$(O), $(BLD)/w32console.$(O)):
749 ($(BLD)/fontset.$(O), $(BLD)/frame.$(O), $(BLD)/composite.$(O)):
750 ($(BLD)/sysdep.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
751
752 2012-08-16 Paul Eggert <eggert@cs.ucla.edu>
753
754 Use ASCII tests for character types.
755 * category.c, dispnew.c, doprnt.c, editfns.c, syntax.c, term.c:
756 * xfns.c, xterm.c:
757 Don't include <ctype.h>; was not needed.
758 * charset.c, doc.c, fileio.c, font.c, frame.c, gtkutil.c, image.c:
759 * sysdep.c, xfaces.c:
760 Include <c-ctype.h> instead of <ctype.h>.
761 * nsterm.m: Include <c-ctype.h>.
762 * charset.c (read_hex):
763 * doc.c (Fsnarf_documentation):
764 * fileio.c (IS_DRIVE) [WINDOWSNT]:
765 (DRIVE_LETTER) [DOS_NT]:
766 (Ffile_name_directory, Fexpand_file_name)
767 (Fsubstitute_in_file_name):
768 * font.c (font_parse_xlfd, font_parse_fcname):
769 * frame.c (x_set_font_backend):
770 * gtkutil.c (xg_get_font):
771 * image.c (xbm_scan, xpm_scan, pbm_scan_number):
772 * nsimage.m (hexchar):
773 * nsterm.m (ns_xlfd_to_fontname):
774 * sysdep.c (system_process_attributes):
775 * xfaces.c (hash_string_case_insensitive):
776 Use C-locale tests instead of locale-specific tests for character
777 types, since we want the ASCII interpretation here, not the
778 interpretation suitable for whatever happens to be the current locale.
779
780 2012-08-16 Martin Rudalics <rudalics@gmx.at>
781
782 Consistently check windows for validity/liveness
783 (Bug#11984, Bug#12025, Bug#12026).
784 * lisp.h (CHECK_VALID_WINDOW): New macro.
785 * window.c (decode_window): Rename to decode_live_window.
786 (decode_valid_window, Fwindow_valid_p): New functions.
787 (Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p)
788 (Fframe_first_window, Fframe_selected_window, Fwindow_parent)
789 (Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling)
790 (Fwindow_prev_sibling, Fwindow_combination_limit)
791 (Fset_window_combination_limit, Fwindow_use_time)
792 (Fwindow_total_height, Fwindow_total_width, Fwindow_new_total)
793 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column)
794 (Fwindow_top_line, Fwindow_body_height, Fwindow_body_width)
795 (Fwindow_hscroll, Fset_window_hscroll)
796 (Fwindow_redisplay_end_trigger)
797 (Fset_window_redisplay_end_trigger, Fwindow_edges)
798 (Fwindow_pixel_edges, Fwindow_absolute_pixel_edges)
799 (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
800 (Fcoordinates_in_window_p, Fwindow_point, Fwindow_start)
801 (Fwindow_end, Fset_window_point, Fset_window_start)
802 (Fpos_visible_in_window_p, Fwindow_line_height)
803 (Fwindow_dedicated_p, Fset_window_dedicated_p)
804 (Fwindow_prev_buffers, Fset_window_prev_buffers)
805 (Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter)
806 (Fset_window_parameter, Fwindow_display_table)
807 (Fset_window_display_table, Fdelete_other_windows_internal)
808 (Fset_window_buffer, Fset_window_new_total)
809 (Fset_window_new_normal, Fdelete_window_internal)
810 (Fwindow_text_height, Fset_window_margins, Fwindow_margins)
811 (Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars)
812 (Fwindow_scroll_bars): Check whether argument window is a valid or
813 live window. Update doc-strings.
814 (syms_of_window): New symbol Qwindow_valid_p.
815 * keyboard.c (Fposn_at_x_y): Check whether argument
816 frame_or_window denotes a valid window.
817
818 2012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
819
820 Fix previous char table change.
821 * lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
822 * chartab.c (optimize_sub_char_table): Likewise.
823
824 2012-08-16 Chong Yidong <cyd@gnu.org>
825
826 * gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228).
827
828 * xfont.c (xfont_open):
829 * xftfont.c (xftfont_open): Set the font's max_width field.
830
831 * nsfont.m (nsfont_open): Similar to the Xft backend, set
832 min_width to space_width and average_width to the average over
833 printable ASCII characters.
834 (ns_char_width): Code cleanup.
835 (ns_ascii_average_width): New utility function.
836
837 * font.h (struct font): Update comments.
838
839 2012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
840
841 Simple interface to set Lisp_Object fields of character tables.
842 * lisp.h (CSET): New macro.
843 (char_table_set_extras, char_table_set_contents)
844 (sub_char_table_set_contents): New function.
845 * casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c:
846 * syntax.c: Adjust users.
847
848 2012-08-16 Stefan Monnier <monnier@iro.umontreal.ca>
849
850 * eval.c (eval_sub): Bind lexical-binding.
851 * lread.c (Qlexical_binding): Make non-static.
852
853 2012-08-15 Jan Djärv <jan.h.d@swipnet.se>
854
855 * nsmenu.m (popupSession): Remove.
856 (pop_down_menu): Remove endModalSession.
857 (timeout_handler:): New method.
858 (runDialogAt:): Get next timeout. Start a NSTimer with that timeout.
859 Call runModalForWindow. Check timer_fired when it returns.
860 If not set, cancel timer and break out of loop.
861 Otherwise loop again, with a new timeout.
862
863 * nsterm.m: Include fcntl.h if present.
864 (fd_entry, t_readfds, inNsSelect): Remove.
865 (select_writefds, select_valid, select_timeout, selfds)
866 (select_mutex, apploopnr): Add.
867 (EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr.
868 Otherwise call kbd_buffer_store_event.
869 (ns_send_appdefined): Remove release of fd_entry.
870 (ns_read_socket): Always send appdefined. Remove inNsSelect check.
871 Increment and decrement apploopnr.
872 (ns_select): If no file descriptors, just do a NSTimer.
873 Otherwise copy read/write masks and start select thread (fd_handler).
874 Start main loop and wait for application defined event.
875 Inform select thread to stop selecting after main loop is exited.
876 (ns_term_init): Create selfds pipe and set non-blocking.
877 Initialize select_mutex. Start the select thread (fd_handler).
878 (fd_handler:): Loop forever, wait for info from the main thread
879 to either start or stop selecting. When select returns, send
880 and appdefined event.
881 (sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set.
882 If not call kbd_buffer_store_event.
883
884 * nsterm.h (EmacsApp): fd_handler takes id argument.
885 (EmacsDialogPanel): Add timer_fired and timeout_handler.
886
887 * gtkutil.c (xg_mark_data): Use FRAME_X_P.
888
889 2012-08-15 Eli Zaretskii <eliz@gnu.org>
890
891 * region-cache.c (move_cache_gap): Update gap_len using the actual
892 growth of the boundaries array. Do not change cache_len.
893 (Bug#12196)
894
895 2012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
896
897 Generalize and cleanup font subsystem checks.
898 * font.h (FONT_DEBUG, font_assert): Remove.
899 * font.c, fontset.c, w32font.c, xfont.c, xftfont.c:
900 Change font_assert to eassert. Use eassert where appropriate.
901
902 2012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
903
904 * gtkutil.c (xg_get_font): Use pango_units_to_double.
905
906 2012-08-15 Chong Yidong <cyd@gnu.org>
907
908 * gtkutil.c (xg_get_font): Rename from xg_get_font_name.
909 When using the new font chooser, use gtk_font_chooser_get_font_desc to
910 extract the font descriptor instead of just the font name.
911 In that case, return a font spec instead of a string.
912 (x_last_font_name): Move to this file from xfns.c.
913
914 * xfns.c (Fx_select_font): The return value can also be a font
915 spec. Move x_last_font_name management to gtkutil.c.
916
917 * xfaces.c: Make font weight and style symbols non-static.
918
919 2012-08-15 Stefan Monnier <monnier@iro.umontreal.ca>
920
921 * minibuf.c (read_minibuf): Ignore caller's inhibit-read-only
922 (bug#12117).
923
924 2012-08-14 Stefan Monnier <monnier@iro.umontreal.ca>
925
926 * alloc.c (Fgarbage_collect): Use plural form consistently.
927
928 2012-08-14 Eli Zaretskii <eliz@gnu.org>
929
930 * keyboard.c (command_loop_1): Reset ignore_mouse_drag_p flag each
931 iteration through the command loop. Fixes a problem whereby mouse
932 movements are ignored until the first mouse click.
933
934 2012-08-14 Paul Eggert <eggert@cs.ucla.edu>
935
936 Use bool, not int, for Lisp booleans.
937 This is more natural, and on my platform (GCC 4.7.1 x86-64) it
938 makes Emacs a bit smaller and presumably a bit faster.
939 * lisp.h: Include <stdbool.h>.
940 (struct Lisp_Boolfwd, defvar_bool):
941 * lread.c (defvar_bool): Use bool, not int, for Lisp booleans.
942 * regex.c [!emacs]: Include <stdbool.h>.
943 (false, true): Remove; <stdbool.h> does this for us now.
944
945 2012-08-14 Chong Yidong <cyd@gnu.org>
946
947 * character.c (Fcharacterp): Doc fix (Bug#12076).
948
949 * data.c (Findirect_variable): Doc fix (Bug#11040).
950
951 * chartab.c (Fmap_char_table): Doc fix (Bug#12061).
952
953 * editfns.c (Fformat): Doc fix (Bug#12059).
954 (Fsave_current_buffer): Doc fix (Bug#11542).
955
956 2012-08-14 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
957
958 * keyboard.c (access_keymap_keyremap): Accept anonymous functions
959 (bug#12022).
960
961 2012-08-14 Martin Rudalics <rudalics@gmx.at>
962
963 * frame.c (make_frame_without_minibuffer, make_minibuffer_frame)
964 (delete_frame, Fmake_frame_invisible, Ficonify_frame):
965 * minibuf.c (choose_minibuf_frame, read_minibuf):
966 * w32fns.c (x_create_tip_frame):
967 * xfns.c (x_create_tip_frame): Call set_window_buffer instead of
968 Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).
969
970 2012-08-14 Paul Eggert <eggert@cs.ucla.edu>
971
972 * intervals.c (offset_intervals): Remove obsolete comment.
973
974 2012-08-14 Andreas Schwab <schwab@linux-m68k.org>
975
976 * gtkutil.c (find_rtl_image, update_frame_tool_bar): Use NILP.
977
978 2012-08-14 Gergely Risko <gergely@risko.hu>
979
980 * coding.c (decode_coding): Record buffer modification before
981 disabling undo_list (Bug#11773).
982
983 2012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
984
985 Revert and cleanup some recent overlay changes.
986 * buffer.h (enum overlay_type): Remove.
987 (buffer_get_overlays, buffer_set_overlays): Likewise.
988 (buffer_set_overlays_before, buffer_set_overlays_after):
989 New function. Adjust users.
990 (unchain_both): Add eassert.
991
992 2012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
993
994 * gtkutil.c (update_frame_tool_bar): Use EQ where appropriate.
995
996 2012-08-14 Paul Eggert <eggert@cs.ucla.edu>
997
998 * gtkutil.c (xg_mark_data): Don't assume C99.
999
1000 2012-08-13 Jan Djärv <jan.h.d@swipnet.se>
1001
1002 * gtkutil.c (xg_frame_tb_info): New struct.
1003 (TB_INFO_KEY): New define.
1004 (xg_free_frame_widgets): Free xg_frame_tb_info for frame if present.
1005 (xg_mark_data): Mark Lisp_Objects in xg_frame_tb_info.
1006 (xg_create_tool_bar): Allocate and initialize a xg_frame_tb_info
1007 if not present.
1008 (update_frame_tool_bar): Return early if data in xg_frame_tb_info
1009 is up to date. Otherwise store new data.
1010 (free_frame_tool_bar): Free xg_frame_tb_info if present.
1011
1012 2012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
1013
1014 Use KSET for write access to Lisp_Object members of struct kboard.
1015 * keyboard.h (KSET): New macro.
1016 * callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c:
1017 * msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c:
1018 * xterm.c: Adjust users.
1019
1020 2012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
1021
1022 Use BSET for write access to Lisp_Object members of struct buffer.
1023 * buffer.h (BSET): New macro.
1024 * buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c:
1025 * fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c:
1026 * minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c:
1027 * window.c, xdisp.c, xfns.c: Adjust users.
1028
1029 2012-08-11 BT Templeton <bpt@hcoop.net> (tiny change)
1030
1031 * lread.c (syms_of_lread): Initialize Vlexical_binding.
1032
1033 2012-08-11 Jan Djärv <jan.h.d@swipnet.se>
1034
1035 * nsterm.m (not_in_argv): New function.
1036 (application:openFile, application:openTempFile:):
1037 (application:openFileWithoutUI:, application:openFiles:): Open file
1038 if not_in_argv returns non-zero (bug#12171).
1039
1040 * gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER)
1041 (gtk_font_chooser_set_font, gtk_font_chooser_get_font):
1042 Define for Gtk+ versions less than 3.2.
1043 (xg_get_font_name): Use those functions/macros here.
1044 Reported by Frans Oilinki <moilinki@gmail.com>.
1045
1046 2012-08-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1047
1048 * unexmacosx.c (copy_data_segment): Copy initialized data in
1049 statically linked libraries from input file rather than memory.
1050
1051 * unexmacosx.c (print_load_command_name): Add cases LC_MAIN,
1052 LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS.
1053 (dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data.
1054
1055 2012-08-10 Glenn Morris <rgm@gnu.org>
1056
1057 * conf_post.h (IF_LINT, lint_assume): Move here from lisp.h.
1058 * lisp.h (IF_LINT, lint_assume): Move to conf_post.h.
1059
1060 2012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
1061
1062 Fix last change to allow compilation with low optimization levels.
1063 * intervals.c (INTERVALS_INLINE): Define to EXTERN_INLINE.
1064 Reported by Jan Djärv <jan.h.d@swipnet.se>.
1065
1066 2012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
1067
1068 Use common inline syntax in intervals.h.
1069 * intervals.h (INTERVALS_INLINE): New macro.
1070 Change all users from LISP_INLINE.
1071
1072 2012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
1073
1074 Define Qnone once for all platforms.
1075 * frame.c (Qnone): Define here.
1076 (syms_of_frame): DEFSYM it.
1077 * lisp.h (Qnone): New declaration.
1078 * nsfns.m, nsterm.h, nsterm.m, w32fns.c, w32font.c:
1079 * xfns.c: Remove duplication. Adjust users.
1080
1081 2012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
1082
1083 Remove unused macros from intervals.h.
1084 * intervals.h (MERGE_INSERTIONS, DISPLAY_INVISIBLE_GLYPH): Remove.
1085 * intervals.c: Adjust comment.
1086
1087 2012-08-10 Eli Zaretskii <eliz@gnu.org>
1088
1089 * w32fns.c <w32_unicode_gui>: New static variable.
1090 (globals_of_w32fns): Initialize it according to os_subtype.
1091 (w32_init_class, w32_msg_pump, w32_wnd_proc): Use it instead of
1092 testing os_subtype.
1093
1094 2012-08-10 Joakim Hårsman <joakim.harsman@gmail.com> (tiny change)
1095 Eli Zaretskii <eliz@gnu.org>
1096
1097 Fix bug #10299 with Unicode characters sent by customized
1098 keyboards created by MSKLC.
1099 * w32fns.c (INIT_WINDOW_CLASS): New macro.
1100 (w32_init_class): Use it to initialize the Emacs class with either
1101 ANSI or Unicode API calls.
1102 (w32_msg_pump): Call GetMessageW and DispatchMessageW on NT and
1103 later.
1104 (w32_wnd_proc): If the character code sent by WM_CHAR or
1105 WM_SYSCHAR is above 255, post a WM_UNICHAR message, not the
1106 original message. Call DefWindowProcW on NT and later.
1107
1108 2012-08-10 Glenn Morris <rgm@gnu.org>
1109
1110 * Makefile.in (config_h): Fix conf_post.h out-of-tree build location.
1111
1112 * lisp.h (DIRECTORY_SEP): Let configure set it.
1113
1114 2012-08-09 Dmitry Antipov <dmantipov@yandex.ru>
1115
1116 Use TSET for write access to Lisp_Object slots of struct terminal.
1117 * termhooks.h (TSET): New macro.
1118 * coding.c, terminal.c, xselect.c: Adjust users.
1119
1120 2012-08-08 Stefan Monnier <monnier@iro.umontreal.ca>
1121
1122 * xdisp.c (safe_eval_handler): Remove prototype. Receive args describing
1123 the failing expression, include them in the error message.
1124 * eval.c (internal_condition_case_n): Pass nargs and args to hfun.
1125 * lisp.h (internal_condition_case_n): Update declaration.
1126
1127 2012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
1128
1129 Inline functions to examine and change buffer overlays.
1130 * buffer.c (unchain_both): New function.
1131 * buffer.h (buffer_get_overlays, buffer_set_overlays):
1132 (buffer_has_overlays): New function.
1133 (enum overlay_type): New enum.
1134 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c:
1135 * insdel.c, intervals.c, print.c, xdisp.c: Adjust users.
1136
1137 2012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
1138
1139 Inline functions to examine and change buffer intervals.
1140 * alloc.c (mark_interval_tree): Remove.
1141 (MARK_INTERVAL_TREE): Simplify.
1142 (UNMARK_BALANCE_INTERVALS): Remove. Adjust users.
1143 * intervals.c (buffer_balance_intervals): New function.
1144 (graft_intervals_into_buffer): Adjust indentation.
1145 (set_intervals_multibyte): Simplify.
1146 * buffer.h (BUF_INTERVALS): Remove.
1147 (buffer_get_intervals, buffer_set_intervals): New function.
1148 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c, insdel.c:
1149 * intervals.c, textprop.c: Adjust users.
1150
1151 2012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
1152
1153 Inline functions to examine and change string intervals.
1154 * lisp.h (STRING_INTERVALS, STRING_SET_INTERVALS): Remove.
1155 (string_get_intervals, string_set_intervals): New function.
1156 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
1157 * lread.c, print.c, textprop.c: Adjust users.
1158
1159 2012-08-08 Glenn Morris <rgm@gnu.org>
1160
1161 * lisp.mk (lisp): Remove language/persian.elc.
1162
1163 2012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
1164
1165 Cleanup intervals.
1166 * intervals.h (NULL_INTERVAL, DEFAULT_INTERVAL): Remove.
1167 (NULL_INTERVAL_P): Likewise. Adjust users.
1168 (FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P):
1169 Adjust comment. Move under #if 0.
1170 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
1171 * print.c, syntax.c, textprop.c, xdisp.c: Adjust users.
1172
1173 2012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
1174
1175 Check total length of intervals with eassert.
1176 * intervals.h (CHECK_TOTAL_LENGTH): Remove.
1177 * intervals.c: Change all users to eassert.
1178
1179 2012-08-07 Eli Zaretskii <eliz@gnu.org>
1180
1181 * .gdbinit (xframe, xwindow, nextcons, xcar, xcdr, xlist):
1182 Rename fields to match removal of FGET and WGET and disuse of
1183 INTERNAL_FIELD in Lisp_Cons.
1184
1185 2012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
1186
1187 Revert and cleanup Lisp_Cons, Lisp_Misc and Lisp_Symbol things.
1188 * lisp.h (struct Lisp_Symbol): Change xname to meaningful
1189 name since all xname users are fixed long time ago. Do not
1190 use INTERNAL_FIELD.
1191 (set_symbol_name, set_symbol_function, set_symbol_plist):
1192 (set_symbol_next, set_overlay_plist): New function.
1193 (struct Lisp_Cons): Do not use INTERNAL_FIELD.
1194 (struct Lisp_Overlay): Likewise.
1195 (CVAR, MVAR, SVAR): Remove.
1196 * alloc.c, buffer.c, buffer.h, bytecode.c, cmds.c, data.c:
1197 * doc.c, eval.c, fns.c, keyboard.c, lread.c, nsselect.m:
1198 * xterm.c: Adjust users.
1199 * .gdbinit: Change to use name field of struct Lisp_Symbol
1200 where appropriate.
1201
1202 2012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
1203
1204 Basic functions to set Lisp_Object and pointer slots of intervals.
1205 * intervals.h (interval_set_parent, interval_set_object):
1206 (interval_set_left, interval_set_right, interval_set_plist):
1207 (interval_copy_parent): New function.
1208 (SET_INTERVAL_OBJECT, SET_INTERVAL_PARENT, INTERVAL_PTR_SIZE): Remove.
1209 (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE):
1210 Adjust indentation.
1211 (INTERVAL_SIZE): Remove. Adjust users.
1212 * alloc.c, intervals.c, lread.c, textprop.c: Use new functions.
1213
1214 2012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
1215
1216 Drop PGET and revert read access to Lisp_Objects slots of Lisp_Process.
1217 * process.h (PGET): Remove.
1218 (struct Lisp_Process): Do not use INTERNAL_FIELD.
1219 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
1220
1221 2012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
1222
1223 Drop WGET and revert read access to Lisp_Objects slots of struct window.
1224 * window.h (WGET): Remove.
1225 (struct window): Do not use INTERNAL_FIELD.
1226 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
1227 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
1228 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
1229 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
1230 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
1231 Adjust users.
1232
1233 2012-08-07 Chong Yidong <cyd@gnu.org>
1234
1235 * window.c (Fwindow_edges, Fwindow_pixel_edges)
1236 (Fwindow_absolute_pixel_edges, Fdelete_other_windows_internal)
1237 (Fdelete_window_internal): Signal an error if the window is not on
1238 a live frame (Bug#12025).
1239
1240 2012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
1241
1242 Drop FGET and revert read access to Lisp_Objects slots of struct frame.
1243 * frame.h (FGET): Remove.
1244 (struct frame): Do not use INTERNAL_FIELD.
1245 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
1246 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
1247 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
1248 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
1249
1250 2012-08-06 Juanma Barranquero <lekktu@gmail.com>
1251
1252 * w32.c: Silence compiler warnings.
1253 (map_w32_filename): Remove unused variable `is_fat'.
1254 (chase_symlinks): Add parentheses around expression.
1255
1256 2012-08-06 Glenn Morris <rgm@gnu.org>
1257
1258 * sysdep.c: Respect BROKEN_GETWD.
1259
1260 * dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT):
1261 Let configure handle it.
1262 (stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it.
1263
1264 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
1265
1266 Use GCALIGNMENT where appropriate.
1267 * alloc.c (XMALLOC_HEADER_ALIGNMENT, roundup_size):
1268 (union aligned_Lisp_Symbol, union aligned_Lisp_Misc):
1269 (mark_maybe_pointer, pure_alloc): Change to use GCALIGNMENT.
1270
1271 2012-08-06 Eli Zaretskii <eliz@gnu.org>
1272
1273 * w32menu.c (set_frame_menubar, initialize_frame_menubar):
1274 Don't use FRAME_MENU_BAR_ITEMS as an lvalue.
1275
1276 2012-08-06 Stefan Monnier <monnier@iro.umontreal.ca>
1277
1278 * buffer.h (struct buffer): Revert `indirections' to a simple int;
1279 that should be sufficient for everyone.
1280
1281 2012-08-06 Jan Djärv <jan.h.d@swipnet.se>
1282
1283 * keyboard.c (timer_check_2): Add break so timer_check returns next
1284 timeout.
1285
1286 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
1287
1288 Fix Windows build errors introduced after converting to WGET and WSET.
1289 * w32term.c (w32_set_vertical_scroll_bar): Change to use WSET.
1290 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
1291
1292 2012-08-06 Jan Djärv <jan.h.d@swipnet.se>
1293
1294 * nsterm.m (ns_frame_rehighlight): Use FSET.
1295
1296 * nsmenu.m (ns_update_menubar): Use FSET.
1297
1298 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
1299
1300 Separate read and write access to Lisp_Object slots of Lisp_Process.
1301 * process.h (PGET, PSET): New macros similar to AREF and ASET.
1302 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
1303
1304 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
1305
1306 Separate read and write access to Lisp_Object slots of struct window.
1307 * window.h (WGET, WSET): New macros similar to AREF and ASET.
1308 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
1309 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
1310 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
1311 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
1312 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
1313 Adjust users.
1314
1315 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
1316
1317 Fix Windows build errors introduced after converting to FGET and FSET.
1318 * w32term.c (x_frame_rehighlight, x_scroll_bar_create):
1319 (w32_condemn_scroll_bars, w32_redeem_scroll_bar):
1320 (w32_judge_scroll_bars): Change to use FSET.
1321 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
1322
1323 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
1324
1325 Fix replacement typo.
1326 * window.c (replace_window): Set root_window instead of
1327 selected_window. This fixes a total window subsystem
1328 malfunction reported by Bastien Guerry <bzg@gnu.org>.
1329
1330 2012-08-06 Glenn Morris <rgm@gnu.org>
1331
1332 * lisp.mk (lisp): Add language/persian.elc.
1333
1334 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
1335
1336 Separate read and write access to Lisp_Object slots of struct frame.
1337 * frame.h (FGET, FSET): New macros similar to AREF and ASET.
1338 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
1339 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
1340 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
1341 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
1342
1343 2012-08-05 Andreas Schwab <schwab@linux-m68k.org>
1344
1345 * emacs.c (decode_env_path): Only use defaulted if WINDOWSNT.
1346
1347 2012-08-05 Dmitry Antipov <dmantipov@yandex.ru>
1348
1349 Generalize common compile-time constants.
1350 * lisp.h (header_size, bool_header_size, word_size): Now here.
1351 (struct Lisp_Vector): Add comment.
1352 (struct Lisp_Bool_Vector): Move up to define handy constants.
1353 (VECSIZE, PSEUDOVECSIZE): Simplify.
1354 (SAFE_ALLOCA_LISP): Use new constant. Adjust indentation.
1355 * buffer.c, buffer.h, bytecode.c, callint.c, eval.c, fns.c:
1356 * font.c, fontset.c, keyboard.c, keymap.c, macros.c, menu.c:
1357 * msdos.c, w32menu.c, w32term.h, window.c, xdisp.c, xfaces.c:
1358 * xfont.c, xmenu.c: Use word_size where appropriate.
1359
1360 2012-08-05 Lawrence Mitchell <wence@gmx.li>
1361
1362 * search.c (Freplace_match): Treat \? in the replacement text
1363 literally (Bug#8161).
1364
1365 2012-08-05 Chong Yidong <cyd@gnu.org>
1366
1367 * term.c (Vsuspend_tty_functions, Vresume_tty_functions):
1368 * frame.c (Vdelete_frame_functions):
1369 * emacs.c (Vkill_emacs_hook): Doc fix.
1370
1371 2012-08-04 Eli Zaretskii <eliz@gnu.org>
1372
1373 * xfns.c (x_set_menu_bar_lines): Fix compilation error in
1374 --with-x-toolkit=no builds.
1375 Reported by Carsten Mattner <carstenmattner@gmail.com>.
1376
1377 2012-08-04 Chong Yidong <cyd@gnu.org>
1378
1379 * syntax.c (Fmodify_syntax_entry): Doc fix.
1380
1381 2012-08-04 Eli Zaretskii <eliz@gnu.org>
1382
1383 Fix startup warnings about ../site-lisp on MS-Windows. (Bug#11959)
1384 * w32.c (init_environment): Change the default values of many
1385 environment variables in dflt_envvars[] to NULL, to avoid pushing
1386 them into environment when they were not already defined.
1387 Remove the code that deletes site-lisp subdirectories from the default
1388 value of EMACSLOADPATH, as it is no longer needed.
1389 (check_windows_init_file): Now external, not static.
1390 Use Vload_path as is, without adding anything, as this function is now
1391 called when Vload_path is already set up.
1392
1393 * w32.h (check_windows_init_file): Add prototype.
1394
1395 * emacs.c (init_cmdargs) [WINDOWSNT]: When running from the build
1396 directory, ignore the /*/i386/ tail in Vinvocation_directory, for
1397 compatibility with Posix platforms.
1398 (main): Move the call to check_windows_init_file to here from
1399 w32.c.
1400 (decode_env_path) [WINDOWSNT]: Expand the %emacs_dir%/ prefix, if
1401 any, in the DEFALT argument into the root of the Emacs build or
1402 installation tree, as appropriate.
1403
1404 * callproc.c (init_callproc_1): Call decode_env_path instead of
1405 doing its equivalent by hand.
1406 (init_callproc): Replace DOS_NT condition with MSDOS, thus letting
1407 the code that sets Vexec_path run on MS-Windows.
1408
1409 * lread.c (init_lread): Add comments to #ifdef's.
1410
1411 * msdos.c (dos_set_window_size, IT_update_begin)
1412 (IT_frame_up_to_date, IT_set_frame_parameters): Use FVAR and WVAR
1413 instead of direct references.
1414
1415 2012-08-04 Paul Eggert <eggert@cs.ucla.edu>
1416
1417 Export DEFAULT_REHASH_* to GDB.
1418 * lisp.h (DEFAULT_REHASH_THRESHOLD, DEFAULT_REHASH_SIZE):
1419 Now constants, not macros.
1420
1421 2012-08-03 Paul Eggert <eggert@cs.ucla.edu>
1422
1423 Remove unnecessary casts involving pointers.
1424 These casts are no longer needed now that we assume C89 or later,
1425 since they involve casting to or from void *.
1426 * alloc.c (make_pure_string, make_pure_c_string, pure_cons)
1427 (make_pure_float, make_pure_vector):
1428 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP):
1429 * macros.c (Fstart_kbd_macro):
1430 * menu.c (find_and_return_menu_selection):
1431 * minibuf.c (read_minibuf_noninteractive):
1432 * sysdep.c (closedir):
1433 * xdisp.c (x_produce_glyphs):
1434 * xfaces.c (compare_fonts_by_sort_order):
1435 * xfns.c (x_real_positions, select_visual):
1436 * xselect.c (x_stop_queuing_selection_requests)
1437 (x_get_window_property, x_get_window_property_as_lisp_data):
1438 * xterm.c (x_set_frame_alpha, x_find_modifier_meanings):
1439 Remove unnecessary pointer casts.
1440 * alloc.c (record_xmalloc): New function.
1441 * lisp.h (record_xmalloc): New decl.
1442 (SAFE_ALLOCA): Now takes just one arg -- the size -- and acts
1443 more like a function. This is because the pointer cast is not
1444 needed. All uses changed.
1445 * print.c (print_string, print_error_message): Avoid length recalc.
1446
1447 Improve fix for macroexp crash with debugging (Bug#12118).
1448 * lisp.h (ASET) [ENABLE_CHECKING]: Pay attention to
1449 ARRAY_MARK_FLAG when checking subscripts, because ASET is
1450 not supposed to be invoked from the garbage collector.
1451 See Andreas Schwab in <http://bugs.gnu.org/12118#25>.
1452 (gc_aset): New function, which is like ASET but can be
1453 used in the garbage collector.
1454 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
1455 (set_hash_index): Use it instead of ASET.
1456
1457 2012-08-03 Eli Zaretskii <eliz@gnu.org>
1458
1459 Support symlinks on latest versions of MS-Windows.
1460 * w32.c: Include winioctl.h and aclapi.h.
1461 (is_symlink, chase_symlinks, enable_privilege, restore_privilege)
1462 (revert_to_self): Forward declarations of static functions.
1463 <static BOOL g_b_init_get_security_info>:
1464 <g_b_init_create_symbolic_link>: New static flags.
1465 (globals_of_w32): Initialize them to zero.
1466 (GetSecurityInfo_Proc, CreateSymbolicLink_Proc): New typedefs.
1467 (map_w32_filename): Improve commentary. Simplify switch.
1468 (SYMBOLIC_LINK_FLAG_DIRECTORY): Define if not defined in system
1469 headers (most versions of MinGW w32api don't).
1470 (get_security_info, create_symbolic_link)
1471 (get_file_security_desc_by_handle, is_symlink, chase_symlinks):
1472 New functions.
1473 (sys_access, sys_chmod): Call 'chase_symlinks' to resolve symlinks
1474 in the argument file name.
1475 (sys_access): Call unc_volume_file_attributes only if
1476 GetFileAttributes fails with network-related error codes.
1477 (sys_rename): Diagnose renaming of a symlink when the user doesn't
1478 have the required privileges.
1479 (get_file_security_desc_by_name): Rename from
1480 get_file_security_desc.
1481 (stat_worker): New function, with most of the guts of 'stat', and
1482 with addition of handling of symlinks and support for 'lstat'.
1483 If possible, get file's attributes and security information by
1484 handle, not by name. Produce S_IFLNK bit for symlinks, when
1485 called from 'lstat'.
1486 (stat, lstat): New functions, call 'stat_worker'.
1487 (symlink, readlink, careadlinkat): Rewritten to create and resolve
1488 symlinks when the underlying filesystem supports them.
1489
1490 2012-08-02 Paul Eggert <eggert@cs.ucla.edu>
1491
1492 Fix macroexp crash on Windows with debugging (Bug#12118).
1493 * lisp.h (ASET) [ENABLE_CHECKING]: Ignore ARRAY_MARK_FLAG when
1494 checking subscripts; problem introduced with the recent
1495 "ASET (a, i, v)" rather than "AREF (a, i) = v" patch.
1496 (ARRAY_MARK_FLAG): Now a macro as well as a constant,
1497 since it's used in non-static inline functions now.
1498
1499 * xfaces.c (face_at_buffer_position, face_for_overlay_string):
1500 Don't assume buffer size fits in 'int'. Remove unused local.
1501
1502 Use C99-style 'extern inline' if available.
1503 * buffer.h (BUFFER_INLINE):
1504 * category.h (CATEGORY_INLINE):
1505 * character.h (CHARACTER_INLINE):
1506 * charset.h (CHARSET_INLINE):
1507 * composite.h (COMPOSITE_INLINE):
1508 * dispextern.h (DISPEXTERN_INLINE):
1509 * lisp.h (LISP_INLINE):
1510 * systime.h (SYSTIME_INLINE):
1511 New macro, replacing 'static inline' in this header.
1512 * buffer.h, category.h, character.h, charset.h, composite.h:
1513 * dispextern.h, lisp.h, systime.h:
1514 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
1515 * alloc.c (LISP_INLINE):
1516 * buffer.c (BUFFER_INLINE):
1517 * category.c (CATEGORY_INLINE):
1518 * character.c (CHARACTER_INLINE):
1519 * charset.c (CHARSET_INLINE):
1520 * composite.c (COMPOSITE_INLINE):
1521 * dispnew.c (DISPEXTERN_INLINE):
1522 * sysdep.c (SYSTIME_INLINE):
1523 Define to EXTERN_INLINE, so that the corresponding functions
1524 are compiled into code.
1525 * conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN)
1526 (INLINE_HEADER_END): New macros.
1527 * lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant,
1528 since it's used in non-static inline functions now.
1529 (VALMASK) [!USE_LSB_TAG]: Likewise.
1530
1531 2012-08-02 Glenn Morris <rgm@gnu.org>
1532
1533 * s/: Remove empty directory.
1534
1535 * s/ms-w32.h: Move to ../nt/inc.
1536 * makefile.w32-in (TAGS, TAGS-gmake, MS_W32_H):
1537 Update for new ms-w32.h location.
1538
1539 2012-08-02 Paul Eggert <eggert@cs.ucla.edu>
1540
1541 Port to Solaris 8.
1542 * syswait.h (WRETCODE): Remove, consistently with ../configure.ac.
1543
1544 2012-08-02 Glenn Morris <rgm@gnu.org>
1545
1546 * nsterm.m (ns_exec_path, ns_load_path): Use SEPCHAR rather than
1547 hard-coding the path separator.
1548
1549 2012-08-01 Paul Eggert <eggert@cs.ucla.edu>
1550
1551 Use "ASET (a, i, v)" rather than "AREF (a, i) = v".
1552 This how ASET and AREF are supposed to work, and makes
1553 it easier to think about future improvements. See
1554 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00026.html>.
1555 * charset.h (set_charset_attr): New function.
1556 All lvalue-style uses of CHARSET_DECODER etc. changed to use it.
1557 * lisp.h (ASET): Rewrite so as not to use AREF in an lvalue style.
1558 (aref_addr): New function. All uses of &AREF(...) changed.
1559 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
1560 (set_hash_index): New functions. All lvalue-style uses of
1561 HASH_KEY etc. changed.
1562 * keyboard.c (set_prop): New function. All lvalue-style uses
1563 of PROP changed.
1564
1565 2012-08-01 Alp Aker <alp.tekin.aker@gmail.com>
1566
1567 * nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar)
1568 (EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:)
1569 (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114)
1570 * nsfns.m (ns_set_name_as_filename): Likewise.
1571 * nsmenu.m (ns_update_menubar): Likewise.
1572 * nsselect.m (symbol_to_nsstring): Adjust to use SVAR.
1573
1574 2012-08-01 Eli Zaretskii <eliz@gnu.org>
1575
1576 * .gdbinit (xcar, xcdr, xlist, xwindow, nextcons, xprintsym):
1577 Adapt to latest changes in field names of the corresponding Lisp
1578 objects.
1579
1580 * xdisp.c (try_window_id): Use WVAR in IF_DEBUG code.
1581
1582 2012-08-01 Glenn Morris <rgm@gnu.org>
1583
1584 * s/msdos.h: Remove file.
1585 * conf_post.h [MSDOS]: New section, moved from s/msdos.h.
1586 * Makefile.in (S_FILE): Remove.
1587 (config_h): Remove S_FILE.
1588
1589 2012-08-01 Juanma Barranquero <lekktu@gmail.com>
1590
1591 * s/ms-w32.h (DEVICE_SEP, IS_DIRECTORY_SEP, IS_ANY_SEP):
1592 Remove; moved to nt/config.nt.
1593
1594 2012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
1595
1596 Use INTERNAL_FIELD for conses and overlays.
1597 * lisp.h (struct Lisp_Cons): Use INTERNAL_FIELD.
1598 Remove obsolete comment.
1599 (MVAR): New macro.
1600 (struct Lisp_Overlay): Use INTERNAL_FIELD.
1601 * alloc.c, buffer.c, buffer.h, fns.c: Adjust users.
1602
1603 2012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
1604
1605 Use INTERNAL_FIELD for symbols.
1606 * lisp.h (SVAR): New macro. Adjust users.
1607 * alloc.c, bytecode.c, cmds.c, data.c, doc.c, eval.c:
1608 * fns.c, keyboard.c, lread.c, xterm.c: Users changed.
1609
1610 2012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
1611
1612 Use INTERNAL_FIELD for processes.
1613 * process.h (PVAR): New macro. Adjust style.
1614 (struct Lisp_Process): Change Lisp_Object members to INTERNAL_FIELD.
1615 * print.c, process.c, sysdep.c, w32.c, xdisp.c: Users changed.
1616
1617 2012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
1618
1619 Use INTERNAL_FIELD for windows.
1620 * window.h (WVAR): New macro.
1621 (struct window): Change Lisp_Object members to INTERNAL_FIELD.
1622 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
1623 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
1624 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, nsterm.m, print.c:
1625 * textprop.c, w32fns.c, w32menu.c, w32term.c, window.c, xdisp.c:
1626 * xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
1627
1628 2012-08-01 Paul Eggert <eggert@cs.ucla.edu>
1629
1630 * coding.h (CODING_ATTR_FLUSHING): Remove; unused and wouldn't work.
1631
1632 2012-08-01 Glenn Morris <rgm@gnu.org>
1633
1634 * lisp.h (IS_DIRECTORY_SEP, IS_DEVICE_SEP, IS_ANY_SEP):
1635 Move to configure.ac.
1636
1637 2012-08-01 Juanma Barranquero <lekktu@gmail.com>
1638
1639 * makefile.w32-in (CONFIG_H): Update dependencies.
1640 (CONF_POST_H): New macro.
1641
1642 * s/ms-w32.h (SEPCHAR, NULL_DEVICE): Remove; moved to nt/config.nt.
1643
1644 2012-07-31 Glenn Morris <rgm@gnu.org>
1645
1646 * Makefile.in (S_FILE): No longer set by configure.
1647
1648 * conf_post.h (config_opsysfile): Move earlier, so that WINDOWSNT
1649 is available.
1650 (alloca.h) [WINDOWSNT]: Don't include it on MS Windows.
1651
1652 * process.h (NULL_DEVICE):
1653 * emacs.c (SEPCHAR):
1654 * editfns.c (USER_FULL_NAME): Let configure set them.
1655
1656 * s/README, s/template.h: Remove files.
1657
1658 * conf_post.h [HPUX]: Undefine HAVE_RANDOM and HAVE_RINT.
1659
1660 * conf_post.h (AMPERSAND_FULL_NAME, subprocesses):
1661 Move to configure.ac.
1662
1663 2012-07-31 Eli Zaretskii <eliz@gnu.org>
1664
1665 * .gdbinit (xframe): Adapt to introduction of FVAR and the
1666 resulting renaming of 'struct frame' members.
1667
1668 * w32menu.c (w32_menu_show): Revert bogus introduction of FVAR.
1669
1670 * fontset.c (dump_fontset): Fix compilation with ENABLE_CHECKING
1671 after introduction of FVAR.
1672
1673 2012-07-31 Jan Djärv <jan.h.d@swipnet.se>
1674
1675 * nsmenu.m (update_frame_tool_bar): Change key from NSObject* to id.
1676
1677 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Use drawInRect
1678 instead of compositeToPoint.
1679 (applicationShouldTerminate): Pass NS String literal to NSRunAlertPanel.
1680
1681 * nsfns.m, nsmenu.m, nsterm.m: Adopt to struct frame/FVAR changes.
1682
1683 2012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
1684
1685 Generalize INTERNAL_FIELD between buffers, keyboards and frames.
1686 * lisp.h (INTERNAL_FIELD): New macro.
1687 * buffer.h (BUFFER_INTERNAL_FIELD): Remove.
1688 (BVAR): Change to use INTERNAL_FIELD.
1689 * keyboard.h (KBOARD_INTERNAL_FIELD): Likewise.
1690 (KVAR): Change to use INTERNAL_FIELD.
1691 * frame.h (FVAR): New macro.
1692 (struct frame): Use INTERNAL_FIELD for all Lisp_Object fields.
1693 * alloc.c, buffer.c, data.c, dispnew.c, dosfns.c, eval.c, frame.c:
1694 * fringe.c, gtkutil.c, minibuf.c, nsfns.m, nsterm.m, print.c:
1695 * term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
1696 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
1697
1698 2012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
1699
1700 Miscellaneous fixes for non-default X toolkits.
1701 * xfns.c (Fx_file_dialog): Change to SSDATA to avoid warnings.
1702 * xterm.c (x_frame_of_widget): Remove redundant prototype.
1703 Move under #ifdef USE_LUCID.
1704 (x_create_toolkit_scroll_bar): Adjust scroll_bar_name
1705 definition and usage to avoid warnings.
1706
1707 2012-07-31 Jan Djärv <jan.h.d@swipnet.se>
1708
1709 * nsterm.m (openFiles): Fix previous checkin.
1710
1711 2012-07-31 Paul Eggert <eggert@cs.ucla.edu>
1712
1713 * indent.c (compute_motion): Remove unused local.
1714
1715 2012-07-31 Glenn Morris <rgm@gnu.org>
1716
1717 * s/usg5-4-common.h (wait3, WRETCODE): Let configure set them.
1718
1719 * conf_post.h [USG5_4]:
1720 Move remaining contents of s/usg5-4-common.h here.
1721 * s/usg5-4-common.h: Remove file.
1722
1723 * conf_post.h [IRIX6_5]: Move remaining contents of s/irix6-5.h here.
1724 * s/irix6-5.h: Remove file.
1725
1726 * conf_post.h [DARWIN_OS]: Move remaining contents of s/darwin.h here.
1727 * s/darwin.h: Remove file.
1728
1729 * conf_post.h [HPUX]: Move random, srandom here from s/hpux10-20.h.
1730 * s/hpux10-20.h: Remove file, which is now empty.
1731
1732 2012-07-30 Glenn Morris <rgm@gnu.org>
1733
1734 * conf_post.h: New, split from configure.ac's AH_BOTTOM.
1735 * Makefile.in (config_h): Add conf_post.h.
1736 * makefile.w32-in (CONFIG_H): Add conf_post.h.
1737
1738 2012-07-30 Jan Djärv <jan.h.d@swipnet.se>
1739
1740 * nsterm.m (ns_do_open_file): New variable.
1741 (ns_term_init): Set ns_do_open_file to YES after run returns.
1742 (openFile, openTempFile, openFileWithoutUI, openFiles):
1743 Open files only if ns_do_open_file.
1744
1745 2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
1746
1747 * lisp.h (SWITCH_ENUM_CAST): Remove. All uses removed.
1748 This no-op macro hasn't been needed for many years.
1749 * src/regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise.
1750
1751 Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB.
1752 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits.
1753 * lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for
1754 gdb_make_enums_visible.
1755 (TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros.
1756 (DIRECTORY_SEP): Now a constant, not a macro.
1757
1758 2012-07-30 Eli Zaretskii <eliz@gnu.org>
1759
1760 * w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to
1761 w32_kbd_patch_key as the 2nd arg. (Bug#12082)
1762
1763 * w32term.c <w32_keyboard_codepage>: Renamed from
1764 keyboard_codepage and now external. All users changed.
1765
1766 * w32term.h: Add declaration of w32_keyboard_codepage.
1767
1768 * w32inevt.c (w32_kbd_patch_key): Accept an additional argument --
1769 the codepage to translate keys to Unicode. If this argument is
1770 -1, use the value returned by GetConsoleCP. All callers changed.
1771
1772 2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
1773
1774 Update .PHONY listings in makefiles.
1775 * Makefile.in (.PHONY): Add all, mostlyclean, clean,
1776 bootstrap-clean, distclean, maintainer-clean, versioclean,
1777 extraclean, frc.
1778
1779 * lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t.
1780 This is a bit clearer. Fix some commentary typos.
1781
1782 2012-07-30 Glenn Morris <rgm@gnu.org>
1783
1784 * s/netbsd.h: Let configure include signal.h if needed.
1785 Remove file, which is now empty.
1786
1787 * s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND):
1788 Let configure set them.
1789 * s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND):
1790 No more need to undefine.
1791
1792 2012-07-30 Andreas Schwab <schwab@linux-m68k.org>
1793
1794 * keymap.c (Fkey_description): Don't remove 0x80 bit from
1795 non-single-byte char when adding meta modifier. (Bug#12090)
1796
1797 2012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
1798
1799 Convert safe_call to use variable number of arguments.
1800 * xdisp.c (safe_call): Convert to use varargs. Adjust users.
1801 (safe_call2): Fix comment.
1802 * lisp.h (safe_call): Adjust prototype.
1803 * coding.c (encode_coding_object): Change to use safe_call2.
1804 * xfaces.c (merge_face_heights): Change to use safe_call1.
1805
1806 2012-07-30 Glenn Morris <rgm@gnu.org>
1807
1808 * s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h
1809 does that unconditionally. Remove file, which is now empty.
1810
1811 * s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h:
1812 Remove empty files.
1813
1814 2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
1815
1816 Export to GDB most of lisp.h's remaining object-like macros.
1817 * lisp.h (min, max): Move earlier, because they're used earlier now.
1818 (INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK)
1819 (CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0)
1820 (CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3)
1821 (DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE)
1822 (COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING)
1823 (COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT)
1824 (CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS)
1825 (MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA):
1826 Now constants, for GDB. They need not be macros.
1827 (MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND):
1828 Now constants, for GDB, as well as macros, for static initializers.
1829 (CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS):
1830 Move to after the definition of struct Lisp_Char_Table,
1831 since the former now needs that type defined.
1832 (enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS)
1833 (enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits)
1834 (enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA):
1835 New enums, for gdb_make_enums_visible.
1836 (GLYPH_MODE_LINE_FACE): Remove; unused.
1837 * alloc.c (STRING_BYTES_MAX): Now a constant, not a macro.
1838 (gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum
1839 CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE,
1840 enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled,
1841 enum maxargs, enum MAX_ALLOCA.
1842 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove.
1843 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove;
1844 no longer needed, now that they are done in lisp.h.
1845
1846 2012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
1847
1848 Cleanup string bytes checking.
1849 * alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove. Convert
1850 all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES.
1851 (check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES.
1852 (check_sblock, compact_small_strings): Simplify.
1853
1854 2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
1855
1856 * lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove.
1857 These macros are confusing and no longer need to be defined, as
1858 the enum values now suffice. All uses replaced with definiens.
1859 (Lisp_Int1, Lisp_String): Define directly; this is clearer.
1860
1861 2012-07-29 Juanma Barranquero <lekktu@gmail.com>
1862
1863 * makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O))
1864 ($(BLD)/w32console.$(O)): Update dependencies.
1865
1866 2012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
1867
1868 Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check.
1869 * lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long
1870 time. Adjust users.
1871 (CHECK_CONS_LIST): Remove. Convert all users to check_cons_list.
1872
1873 2012-07-29 Jan Djärv <jan.h.d@swipnet.se>
1874
1875 * lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before
1876 setting sitelisp (Bug#12010).
1877
1878 2012-07-29 Eli Zaretskii <eliz@gnu.org>
1879
1880 * w32heap.h (OS_9X): Rename from OS_WINDOWS_95.
1881
1882 * w32heap.c (cache_system_info):
1883 * w32.c (sys_rename):
1884 * w32proc.c (find_child_console, sys_kill): All users changed.
1885
1886 2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
1887
1888 * alloc.c (Fgarbage_collect): Indent as per usual Emacs style.
1889
1890 2012-07-29 Eli Zaretskii <eliz@gnu.org>
1891
1892 * makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h.
1893
1894 2012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
1895
1896 Cleanup statistics calculation in Fgarbage_collect.
1897 * alloc.c (Fgarbage_collect): Rename t1 to meaningful start.
1898 Fix zombies percentage calculation. Simplify elapsed time calculation.
1899
1900 2012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
1901
1902 Generalize marker debugging code under MARKER_DEBUG and use eassert.
1903 * insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove.
1904 (gap_left, gap_right, adjust_markers_for_delete, insert_1_both)
1905 (insert_from_string_1, insert_from_gap, insert_from_buffer_1)
1906 (replace_range, replace_range_2, del_range_2): Change to eassert.
1907 * marker.c (byte_char_debug_check): Adjust style.
1908
1909 2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
1910
1911 Don't use the abbreviation "win" to refer to Windows (Bug#10421).
1912 * regex.c (MAX_BUF_SIZE): Remove some incorrect and
1913 long-ago-commented-out code that talks about "WIN32".
1914 * w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
1915 All uses changed.
1916
1917 2012-07-28 Paul Eggert <eggert@cs.ucla.edu>
1918
1919 Use Gnulib stdalign module (Bug#9772, Bug#9960).
1920 * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
1921 Simplify by using alignof.
1922 (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
1923 * lisp.h: Include <stdalign.h>.
1924 (GCALIGNMENT): New macro and constant.
1925 (DECL_ALIGN): Remove. All uses replaced by alignas (GCALIGNMENT).
1926 (USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
1927 (stdalign): New macro, if not already defined.
1928
1929 2012-07-28 Eli Zaretskii <eliz@gnu.org>
1930
1931 Fix non-ASCII input in non-GUI frames on MS-Windows. (Bug#12055)
1932 * w32inevt.c: Include w32inevt.h.
1933 (w32_read_console_input): New inline function, calls either
1934 ReadConsoleInputA or ReadConsoleInputW, depending on the value of
1935 w32_console_unicode_input.
1936 (fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
1937 (w32_kbd_patch_key, key_event): Use the codepage returned by
1938 GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
1939 (key_event): use uChar.UnicodeChar only if
1940 w32_console_unicode_input is non-zero.
1941
1942 * w32console.c: Include w32heap.h.
1943 <w32_console_unicode_input>: New global variable.
1944 (initialize_w32_display): Set w32_console_unicode_input to 1 on NT
1945 family of Windows, zero otherwise.
1946
1947 * w32inevt.h: Declare w32_console_unicode_input.
1948
1949 * xdisp.c (init_iterator): Don't reference tip_frame in a build
1950 --without-x. (Bug#11742)
1951
1952 2012-07-27 Paul Eggert <eggert@cs.ucla.edu>
1953
1954 Adjust GDB to reflect pvec_type changes (Bug#12036).
1955 * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the
1956 2012-07-04 changes to pseudovector representation.
1957 Problem reported by Eli Zaretskii in <http://bugs.gnu.org/12036#30>.
1958
1959 2012-07-27 Michael Albinus <michael.albinus@gmx.de>
1960
1961 * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session
1962 bus address.
1963 (xd_close_bus, Fdbus_init_bus): Handle reference counter properly.
1964
1965 2012-07-27 Eli Zaretskii <eliz@gnu.org>
1966
1967 * alloc.c (listn): Fix the order the arguments are consed onto the
1968 list.
1969
1970 * lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
1971 enumeration constants, as PURE and HEAP are too general, and clash
1972 with other headers and sources, such as gmalloc.c and the
1973 MS-Windows system headers. All users changed.
1974
1975 2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
1976
1977 Revert last save_excursion_save and save_excursion_restore changes.
1978 * alloc.c, editfns.c, marker.c, lisp.h: Revert.
1979 Lots of crashes reported by Chong Yidong <cyd@gnu.org>.
1980
1981 2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
1982
1983 Fix recently-introduced typos in Windows port.
1984 Reported by Martin Rudalics <rudalics@gmx.at>.
1985 * w32.c (init_environment): Replace comma with semicolon.
1986 * w32fns.c (syms_of_w32fns): Add missing parenthesis.
1987
1988 2012-07-27 Paul Eggert <eggert@cs.ucla.edu>
1989
1990 Improve GDB symbol export (Bug#12036).
1991 * .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different
1992 arms of an 'if', not using conditional expressions; otherwise GDB
1993 complains about the types in the unevaluated arm when the argument
1994 is an integer literal.
1995 (xgetint): Simplify expression.
1996 * alloc.c (gdb_make_enums_visible): New constant. This ports to
1997 GCC 3.4.2 the export of symbols to GDB. Problem reported by Eli
1998 Zaretskii in <http://bugs.gnu.org/12036#13>.
1999 * lisp.h (PUBLISH_TO_GDB): Remove. All uses removed. No longer
2000 needed now that we have gdb_make_enums_visible.
2001 (enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits)
2002 (enum enum_USE_LSB_TAG):
2003 New enum types, packaging up enums that need to be exported to GDB.
2004
2005 2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
2006
2007 Utility function to make a list from specified amount of objects.
2008 * lisp.h (enum constype): New datatype.
2009 (listn): New prototype.
2010 * alloc.c (listn): New function.
2011 (Fmemory_use_count, syms_of_alloc): Use it.
2012 * buffer.c (syms_of_buffer): Likewise.
2013 * callint.c (syms_of_callint): Likewise.
2014 * charset.c (define_charset_internal): Likewise.
2015 * coding.c (syms_of_coding): Likewise.
2016 * keymap.c (syms_of_keymap): Likewise.
2017 * search.c (syms_of_search): Likewise.
2018 * syntax.c (syms_of_syntax): Likewise.
2019 * w32.c (init_environment): Likewise.
2020 * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
2021 * xdisp.c (syms_of_xdisp): Likewise.
2022 * xfns.c (syms_of_xfns): Likewise.
2023
2024 2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
2025
2026 Fast save_excursion_save and save_excursion_restore.
2027 * lisp.h (struct Lisp_Excursion): New data type.
2028 (PVEC_EXCURSION): New pseudovector type.
2029 (XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
2030 to deal with it. Adjust comments.
2031 (init_marker, attach_marker): New prototype.
2032 (unchain_marker): Adjust prototype.
2033 * marker.c (attach_marker): Change to global.
2034 (init_marker): New function.
2035 * alloc.c (Fmake_marker, build_marker): Use it.
2036 (build_marker): More easserts.
2037 (mark_object): Handle struct Lisp_Excursion.
2038 * editfns.c (save_excursion_save, save_excursion_restore):
2039 Reimplement to use struct Lisp_Excursion. Add comments.
2040
2041 2012-07-26 Paul Eggert <eggert@cs.ucla.edu>
2042
2043 Fix export of symbols to GDB (Bug#12036).
2044 * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL)
2045 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from
2046 emacs.c, as this is a more-suitable home. Had this been done earlier
2047 the fix for 12036 would have avoided some of the problems noted in
2048 <http://bugs.gnu.org/12036#13> by Eli Zaretskii, as the scope problems
2049 would have been more obvious.
2050 * emacs.c: Do not include <verify.h>; no longer needed.
2051 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS)
2052 (gdb_GCTYPEBITS, gdb_USE_LSB_TAG)
2053 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
2054 Remove; now done in lisp.h.
2055 * lisp.h (PUBLISH_TO_GDB): New macro.
2056 (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type)
2057 (DATA_SEG_BITS): Use it.
2058 (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB.
2059 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB.
2060 * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need
2061 not be usable in #if. This simplifies things.
2062
2063 2012-07-26 Juanma Barranquero <lekktu@gmail.com>
2064
2065 * makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies.
2066
2067 2012-07-26 Paul Eggert <eggert@cs.ucla.edu>
2068
2069 Simplify export of symbols to GDB (Bug#12036).
2070 * .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix =
2071 $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway).
2072 (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr):
2073 Adjust to changes in lisp.h and emacs.c, by using
2074 CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead
2075 of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits,
2076 INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of
2077 gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS
2078 instead of gdb_valbits.
2079 (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use
2080 PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG
2081 instead of gdb_array_mark_flag.
2082 (xboolvector): Get size from $->size, not $->header.size.
2083 Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants.
2084 (xreload, hook-run, hookpost-run): Remove.
2085 * emacs.c: Include <verify.h>.
2086 (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits)
2087 (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type):
2088 Remove.
2089 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS)
2090 (gdb_USE_LSB_TAG): New enum constants.
2091 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
2092 Also define these as enum constants, so they're visible to GDB.
2093 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros.
2094 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these
2095 as constants, so they're visible to GDB.
2096 * lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS)
2097 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR):
2098 Now enum constants, not macros, so they're visible to GDB.
2099 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is
2100 more convenient now. All uses changed.
2101 (VALMASK) [USE_LSB_TAG]: Also define in this case.
2102 * mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change.
2103
2104 2012-07-26 Dmitry Antipov <dmantipov@yandex.ru>
2105
2106 Explicitly free restriction data that are not needed anymore.
2107 * editfns.c (save_restriction_restore): Free restriction data.
2108
2109 2012-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
2110
2111 * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
2112 add argument, tune behavior, and adjust all callers.
2113
2114 2012-07-25 Paul Eggert <eggert@cs.ucla.edu>
2115
2116 Use typedef for EMACS_INT, EMACS_UINT.
2117 * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
2118 than macros. This simplifies debugging in the usual case, since
2119 it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
2120 and it allows expressions involving EMACS_INT casts.
2121 * .gdbinit (xreload): Simplify by using EMACS_INT cast.
2122
2123 2012-07-25 Jan Djärv <jan.h.d@swipnet.se>
2124
2125 * nsterm.m (ns_read_socket): Return early if there is a modal
2126 window (Bug#12043).
2127
2128 2012-07-25 Martin Rudalics <rudalics@gmx.at>
2129
2130 * frame.c (Fredirect_frame_focus): In doc-string don't mention
2131 that FOCUS-FRAME can be omitted.
2132
2133 2012-07-25 Dmitry Antipov <dmantipov@yandex.ru>
2134
2135 Adjust buffer text indirection counters at the end of Fkill_buffer.
2136 * buffer.c (Fkill_buffer): Adjust indirection counters when the
2137 buffer is definitely dead. This should really fix an issue reported
2138 by Christoph Scholtes again. (Bug#12007).
2139 (init_buffer_once): Initialize indirection counters of
2140 buffer_defaults and buffer_local_symbols (for sanity and safety).
2141
2142 2012-07-24 Eli Zaretskii <eliz@gnu.org>
2143
2144 * xdisp.c (init_iterator): Don't compute dimensions of truncation
2145 and continuation glyphs on tooltip frames, leave them at zero.
2146 Avoids continued lines in tooltips. (Bug#11832)
2147
2148 2012-07-24 Dmitry Antipov <dmantipov@yandex.ru>
2149
2150 Simplify copy_overlay.
2151 * buffer.c (copy_overlay): Simplify. Use build_marker.
2152 * lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks.
2153
2154 2012-07-23 Eli Zaretskii <eliz@gnu.org>
2155
2156 * print.c (print_object): Don't crash when a frame's name is nil
2157 or invalid. (Bug#12025)
2158
2159 * window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as
2160 it signals an error when a tooltip frame is being created.
2161
2162 2012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
2163
2164 Cleanup miscellaneous objects allocation and initialization.
2165 * alloc.c (allocate_misc): Change to static. Add argument to
2166 specify the subtype. Adjust comment and users.
2167 (build_overlay): New function.
2168 * buffer.c (copy_overlays, Fmake_overlay): Use it.
2169 * lisp.h (struct Lisp_Overlay): Remove obsolete comment.
2170 (allocate_misc): Remove prototype.
2171 (build_overlay): Add prototype.
2172
2173 2012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
2174
2175 Swap buffer text indirection counters in Fbuffer_swap_text.
2176 * buffer.c (Fbuffer_swap_text): Swap indirections too.
2177 This avoids crash reported by Christoph Scholtes at
2178 http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html.
2179
2180 2012-07-22 Jan Djärv <jan.h.d@swipnet.se>
2181
2182 * nsmenu.m (Popdown_data): New struct.
2183 (pop_down_menu): p->pointer is Popdown_data. Release the pool and
2184 free Popdown_data.
2185 (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu.
2186 (initWithContentRect): Make imgView and contentView non-static
2187 and autorelease them. Also autorelease img and matrix (Bug#12005).
2188 (dealloc): Remove (Bug#12005).
2189
2190 2012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
2191
2192 Adjust consing_since_gc when objects are explicitly freed.
2193 * alloc.c (GC_DEFAULT_THRESHOLD): New macro.
2194 (Fgarbage_collect): Use it. Change minimum to 1/10 of default.
2195 (free_cons, free_misc): Subtract object size from consing_since_gc.
2196
2197 2012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
2198
2199 Simplify and cleanup markers positioning code.
2200 * marker.c (attach_marker): More useful eassert.
2201 (live_buffer, set_marker_internal): New function.
2202 (Fset_marker, set_marker_restricted): Use set_marker_internal.
2203 (set_marker_both, set_marker_restricted_both): Use live_buffer.
2204
2205 2012-07-22 Paul Eggert <eggert@cs.ucla.edu>
2206
2207 * buffer.h (struct buffer.indirections): Now ptrdiff_t, not int,
2208 as it's limited by the amount of memory, not by INT_MAX.
2209
2210 2012-07-21 Eli Zaretskii <eliz@gnu.org>
2211
2212 * keyboard.c (keys_of_keyboard): Bind language-change to 'ignore'
2213 in special-event-map. See the discussion at
2214 http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00417.html
2215 for the reasons.
2216
2217 * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning
2218 info.dwItemData. Fixes crashes on 64-bit Windows.
2219 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
2220
2221 2012-07-21 Jan Djärv <jan.h.d@swipnet.se>
2222
2223 * nsterm.m (accessibilityAttributeValue): New function. (Bug#11134).
2224 (conversationIdentifier): Return value is NSInteger.
2225 * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA.
2226
2227 2012-07-21 Chong Yidong <cyd@gnu.org>
2228
2229 * window.c (decode_any_window): Signal an error if the window is
2230 on a dead frame (Bug#11984).
2231
2232 2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
2233
2234 Add indirection counting to speed up Fkill_buffer.
2235 * buffer.h (struct buffer): New member.
2236 * buffer.c (Fget_buffer_create): Set indirection counter to 0.
2237 (Fmake_indirect_buffer): Set indirection counter to -1, increment
2238 base buffer indirection counter.
2239 (compact_buffer): If ENABLE_CHECKING, verify indirection counters.
2240 (Fkill_buffer): Adjust indirection counters as needed, don't walk
2241 through buffer list if indirection counter is 0.
2242
2243 2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
2244
2245 Extend the value returned by Fgarbage_collect with heap statistics.
2246 * alloc.c (Qheap): New symbol.
2247 (syms_of_alloc): DEFSYM it.
2248 (Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data.
2249 (Fmemory_free): Remove.
2250 (syms_of_alloc): Don't defsubr it.
2251 * buffer.c (Fcompact_buffer): Remove.
2252 (syms_of_buffer): Don't defsubr it.
2253
2254 2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
2255
2256 Make maybe_gc inline.
2257 Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline).
2258 * lisp.h (consing_since_gc, gc_relative_threshold)
2259 (memory_full_cons_threshold): Revert declaration.
2260 (maybe_gc): Remove prototype, define as inline.
2261 * alloc.c: Remove old commented-out code.
2262 (consing_since_gc, gc_relative_threshold)
2263 (memory_full_cons_threshold): Revert to global.
2264 (maybe_gc): Remove.
2265
2266 2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
2267
2268 Simple wrapper for make_unibyte_string, adjust font_open_by_name.
2269 * lisp.h (build_unibyte_string): New function.
2270 * dosfns.c, fileio.c, fns.c, ftfont.c, process.c:
2271 * sysdep.c, w32fns.c, xfns.c: Use it.
2272 * font.c (font_open_by_name): Change 2nd and 3rd args to the only arg
2273 of type Lisp_Object to avoid redundant calls to make_unibyte_string.
2274 Adjust users accordingly.
2275 * font.h (font_open_by_name): Adjust prototype.
2276
2277 2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
2278
2279 Cleanup calls to Fgarbage_collect.
2280 * lisp.h (maybe_gc): New prototype.
2281 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
2282 Remove declarations.
2283 * alloc.c (maybe_gc): New function.
2284 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
2285 Make them static.
2286 * bytecode.c (MAYBE_GC): Use maybe_gc.
2287 * eval.c (eval_sub, Ffuncall): Likewise.
2288 * keyboard.c (read_char): Likewise. Adjust call to maybe_gc
2289 to avoid dependency from auto-save feature.
2290
2291 2012-07-19 Paul Eggert <eggert@cs.ucla.edu>
2292
2293 * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'.
2294 (FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from
2295 'for_each_per_buffer_object_at'.
2296 All uses changed. It's better to use upper-case for macros that
2297 cannot be implemented as functions, to give the reader a clue
2298 that they're special.
2299
2300 2012-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
2301
2302 * alloc.c (Fgarbage_collect): Tweak docstring.
2303
2304 2012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
2305
2306 Tweak the value returned from Fgarbage_collect again.
2307 * alloc.c (Fgarbage_collect): New return value, as confirmed in
2308 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00418.html.
2309 Adjust documentation.
2310 (total_vector_bytes): Rename to total_vector_slots, adjust
2311 accounting.
2312 (total_free_vector_bytes): Rename to total_free_vector_slots,
2313 adjust accounting.
2314 (Qstring_bytes, Qvector_slots): New symbols.
2315 (syms_of_alloc): DEFSYM them.
2316
2317 2012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
2318
2319 Buffer compaction primitive which may be used from Lisp.
2320 * buffer.c (compact_buffer, Fcompact_buffer): New function.
2321 (syms_of_buffer): Register Fcompact_buffer.
2322 * alloc.c (Fgarbage_collect): Use compact_buffer.
2323 * buffer.h (compact_buffer): New prototype.
2324 (struct buffer_text): New member.
2325
2326 2012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
2327
2328 New macro to iterate over all buffers, miscellaneous cleanups.
2329 * lisp.h (all_buffers): Remove declaration.
2330 * buffer.h (all_buffers): Add declaration, with comment.
2331 (for_each_buffer): New macro.
2332 * alloc.c (Fgarbage_collect, mark_object): Use it.
2333 * buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte)
2334 (init_buffer): Likewise.
2335 * data.c (Fset_default): Likewise.
2336 * coding.c (code_conversion_restore): Remove redundant check
2337 for dead buffer.
2338 * buffer.c (Fkill_buffer): Likewise. Remove obsolete comment.
2339
2340 2012-07-18 Andreas Schwab <schwab@linux-m68k.org>
2341
2342 Fix bug that created negative-length intervals.
2343 * intervals.c (merge_interval_right, merge_interval_left):
2344 Do not zero out this interval if it is absorbed by its children,
2345 as this interval's total length doesn't change in that case. See
2346 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00403.html>.
2347
2348 2012-07-18 Paul Eggert <eggert@cs.ucla.edu>
2349
2350 * alloc.c (Fmake_bool_vector): Fix off-by-8 bug
2351 when invoking (make-bool-vector N t) and N is a positive
2352 multiple of 8 -- the last 8 bits were mistakenly cleared.
2353
2354 Remove some struct layout assumptions in bool vectors.
2355 * alloc.c (bool_header_size): New constant.
2356 (header_size, word_size): Move earlier, as they're now used earlier.
2357 Use 'word_size' in a few more places, where it's appropriate.
2358 (Fmake_bool_vector, sweep_vectors): Don't assume that there is no
2359 padding before the data member of a bool vector.
2360 (sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather
2361 than doing the check by hand with an abort ().
2362
2363 2012-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
2364
2365 * eval.c (Fdefvar): Don't check constants since we only set the var if
2366 it's not yet defined anyway (bug#11904).
2367
2368 * lisp.h (last_undo_boundary): Declare new var.
2369 * keyboard.c (command_loop_1): Set it.
2370 * cmds.c (Fself_insert_command): Use it to only remove boundaries that
2371 were auto-added by the command loop (bug#11774).
2372
2373 2012-07-18 Andreas Schwab <schwab@linux-m68k.org>
2374
2375 * w32font.c (Qsymbol): Remove local definition.
2376 (syms_of_w32font): Don't DEFSYM it.
2377
2378 2012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
2379
2380 Fix sweep_vectors to handle large bool vectors correctly.
2381 * alloc.c (sweep_vectors): Account total_vector_bytes for
2382 bool vectors larger than VBLOCK_BYTES_MAX.
2383
2384 2012-07-18 Chong Yidong <cyd@gnu.org>
2385
2386 * frame.c (x_set_frame_parameters): Revert bogus change introduced
2387 in 2012-05-25 commit by Paul Eggert (Bug#11738).
2388
2389 2012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
2390
2391 Return more descriptive data from Fgarbage_collect.
2392 Suggested by Stefan Monnier in
2393 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00369.html.
2394 * alloc.c (bounded_number): New function.
2395 (total_buffers, total_vectors): New variable.
2396 (total_string_size): Rename to total_string_bytes, adjust users.
2397 (total_vector_size): Rename to total_vector_bytes, adjust users.
2398 (sweep_vectors): Account total_vectors and total_vector_bytes.
2399 (Fgarbage_collect): New return value. Adjust documentation.
2400 (gc_sweep): Account total_buffers.
2401 (Fmemory_free, Fmemory_use_counts): Use bounded_number.
2402 (VECTOR_SIZE): Remove.
2403 * data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global.
2404 (Qinterval, Qmisc): New symbols.
2405 (syms_of_data): Initialize them.
2406 * lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat)
2407 (Qcons, Qbuffer): New declarations.
2408
2409 2012-07-17 Paul Eggert <eggert@cs.ucla.edu>
2410
2411 * alloc.c (Fmemory_free): Account for memory-free's own storage.
2412 Round up, not down. Improve doc.
2413
2414 2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
2415
2416 Restore old code in allocate_string_data to avoid Faset breakage.
2417 Reported by Julien Danjou <julien@danjou.info> in
2418 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00371.html.
2419 * alloc.c (allocate_string_data): Restore old code with minor
2420 adjustments, fix comment to explain this subtle issue.
2421
2422 2012-07-17 Eli Zaretskii <eliz@gnu.org>
2423
2424 Remove FILE_SYSTEM_CASE.
2425 * s/msdos.h (FILE_SYSTEM_CASE): Don't define.
2426
2427 * fileio.c (FILE_SYSTEM_CASE): Don't define.
2428 (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE.
2429 Fixes problems on MS-DOS with Vtemp_file_name_pattern when
2430 call-process-region passes it through expand-file-name.
2431
2432 * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE.
2433
2434 2012-07-17 Andreas Schwab <schwab@linux-m68k.org>
2435
2436 Fix crash when creating indirect buffer (Bug#11917)
2437 * buffer.c (buffer_lisp_local_variables): Add argument CLONE.
2438 Don't handle unbound variables specially if non-zero.
2439 (Fbuffer_local_variables): Pass zero.
2440 (clone_per_buffer_values): Pass non-zero.
2441
2442 2012-07-17 Andreas Schwab <schwab@linux-m68k.org>
2443
2444 * gnutls.c (emacs_gnutls_handshake): Revert last change. Add QUIT
2445 to make the loop interruptible.
2446
2447 2012-07-17 Andreas Schwab <schwab@linux-m68k.org>
2448
2449 * gnutls.c (emacs_gnutls_handshake): Only retry if
2450 GNUTLS_E_INTERRUPTED.
2451
2452 2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
2453
2454 Cleanup and convert miscellaneous checks to eassert.
2455 * alloc.c (mark_interval): Fix comment, partially rephrase
2456 old comment from intervals.h (see below).
2457 * intervals.c (find_interval, adjust_intervals_for_insertion)
2458 (delete_interval, adjust_intervals_for_deletion)
2459 (graft_intervals_into_buffer, temp_set_point_both, copy_intervals):
2460 Convert to eassert.
2461 (adjust_intervals_for_insertion, make_new_interval):
2462 Remove obsolete and unused code.
2463 * intervals.h (struct interval): Remove obsolete comment.
2464 * textprotp.c (erase_properties): Remove unused code.
2465 (Fadd_text_properties, set_text_properties_1, Fremove_text_properties)
2466 (Fremove_list_of_text_properties): Convert to eassert.
2467
2468 2012-07-17 Chong Yidong <cyd@gnu.org>
2469
2470 * editfns.c (Finsert_char): Doc fix.
2471
2472 2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
2473
2474 Fix previous change to make Fmemory_free always accurate.
2475 * alloc.c (make_interval): Update total_free_intervals.
2476 (make_float): Likewise for total_free_floats.
2477 (free_cons, Fcons): Likewise for total_free_conses.
2478 (SETUP_ON_FREE_LIST, allocate_vector_from_block):
2479 Likewise for total_free_vector_bytes.
2480 (Fmake_symbol): Likewise for total_free_symbols.
2481 (bytes_free): Remove.
2482
2483 2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
2484
2485 Simple free memory accounting feature.
2486 * alloc.c (bytes_free, total_free_vector_bytes): New variable.
2487 (sweep_vectors): Accumulate size of free vectors.
2488 (Fgarbage_collect): Setup bytes_free.
2489 (Fmemory_free): New function.
2490 (syms_of_alloc): Register it.
2491
2492 2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
2493
2494 Cleanup overlays checking.
2495 * buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP.
2496 * buffer.c (overlay_touches_p, recenter_overlay_lists): Change to
2497 eassert and OVERLAYP.
2498 (sort_overlays): Change to use OVERLAYP.
2499
2500 2012-07-16 René Kyllingstad <Rene@Kyllingstad.com> (tiny change)
2501
2502 * editfns.c (Finsert_char): Make it interactive, and make the
2503 second arg optional. Copy interactive spec and docstring from
2504 ucs-insert.
2505
2506 2012-07-17 Paul Eggert <eggert@cs.ucla.edu>
2507
2508 * floatfns.c (Fabs): Do not wrap fabs inside IN_FLOAT (Bug#11913).
2509 Unlike the other wrapped functions, fabs has an unspecified
2510 effect on errno.
2511
2512 2012-07-16 Jan Djärv <jan.h.d@swipnet.se>
2513
2514 * nsterm.m (keyDown): Interpret flags without left/right bits
2515 as the left key (Bug#11670).
2516
2517 2012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
2518
2519 Remove empty and useless init functions.
2520 * lisp.h (init_character_once, init_fns, init_image)
2521 (init_filelock, init_sound): Remove prototype.
2522 * character.c (init_character_once): Remove.
2523 * filelock.c (init_filelock): Likewise.
2524 * fns.c (init_fns): Likewise.
2525 * image.c (init_image): Likewise.
2526 * sound.c (init_sound): Likewise.
2527 * emacs.c (main): Adjust accordingly.
2528
2529 2012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
2530
2531 * gtkutil.h: Tiny cleanups.
2532 (use_old_gtk_file_dialog): Remove useless declaration.
2533 (xg_uses_old_file_dialog): Add suggested const attribute.
2534
2535 2012-07-15 Eli Zaretskii <eliz@gnu.org>
2536
2537 * bidi.c (MAX_STRONG_CHAR_SEARCH): New macro.
2538 (bidi_paragraph_init): Use it to limit search forward for a strong
2539 directional character in abnormally large paragraphs full of
2540 neutral or weak characters. (Bug#11943)
2541
2542 2012-07-15 Stefano Facchini <stefano.facchini@gmail.com> (tiny change)
2543
2544 * gtkutil.c (xg_create_tool_bar): Apply "primary-toolbar" style to
2545 the toolbar (Bug#9451).
2546 (xg_make_tool_item): Give the widget event box a transparent
2547 background.
2548
2549 2012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
2550
2551 Cleanup basic allocation variables and functions.
2552 * alloc.c (ignore_warnings, init_intervals, init_float)
2553 (init_cons, init_symbol, init_marker): Remove.
2554 (interval_block_index): Initialize to INTERVAL_BLOCK_SIZE.
2555 (float_block_index): Initialize to FLOAT_BLOCK_SIZE.
2556 (cons_block_index): Initialize to CONS_BLOCK_SIZE.
2557 (symbol_block_size): Initialize to SYMBOL_BLOCK_SIZE.
2558 (marker_block_index): Initialize to MARKER_BLOCK_SIZE.
2559 (staticidx, init_alloc_once, init_strings, free_ablock):
2560 Remove redundant initialization.
2561 * fns.c (init_weak_hash_tables): Remove.
2562 * lisp.h (init_weak_hash_tables): Remove prototype.
2563
2564 2012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
2565
2566 Use zero_vector where appropriate.
2567 * alloc.c (zero_vector): Define as Lisp_Object. Adjust users
2568 accordingly.
2569 * lisp.h (zero_vector): New declaration.
2570 * font.c (null_vector): Remove.
2571 (syms_of_font): Remove initialization and staticpro.
2572 (font_list_entities, font_find_for_lface): Change to use zero_vector.
2573 * keymap.c (Faccessible_keymaps): Likewise.
2574
2575 2012-07-15 Leo Liu <sdl.web@gmail.com>
2576
2577 * fringe.c: Fix typo in comments.
2578
2579 2012-07-14 Leo Liu <sdl.web@gmail.com>
2580
2581 * fringe.c: Add a new bitmap exclamation-mark.
2582
2583 2012-07-14 Eli Zaretskii <eliz@gnu.org>
2584
2585 * gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference.
2586
2587 * s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE)
2588 (HAVE_MENUS): Don't define, defined by editing config.in with
2589 msdos/sed2v2.inp.
2590 (GMALLOC_INHIBIT_VALLOC): Don't define.
2591 (MODE_LINE_BINARY_TEXT): Remove, not used anymore.
2592
2593 2012-07-14 Juanma Barranquero <lekktu@gmail.com>
2594
2595 * s/ms-w32.h (GC_SETJMP_WORKS, GC_MARK_STACK): Set in nt/config.nt.
2596
2597 2012-07-14 Glenn Morris <rgm@gnu.org>
2598
2599 * s/aix4-2.h, s/freebsd.h, s/gnu-linux.h, s/hpux10-20.h:
2600 * s/irix6-5.h, s/netbsd.h, s/sol2-6.h, s/unixware.h:
2601 Let configure set GC_SETJMP_WORKS, GC_MARK_STACK.
2602
2603 2012-07-13 Glenn Morris <rgm@gnu.org>
2604
2605 * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Let configure set it.
2606
2607 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Let configure set it.
2608 * s/irix6-5.h (SETUP_SLAVE_PTY): No more need to unset it.
2609
2610 2012-07-13 Jan Djärv <jan.h.d@swipnet.se>
2611
2612 * nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP.
2613 (x_free_frame_resources): Pass x_free_frame_resources to NSTRACE.
2614 (ns_lisp_to_color, ns_string_to_lispmod, ns_term_init)
2615 (ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA
2616 where appropriate.
2617 (ns_exec_path, ns_load_path, changeFont): Put () around assignment used
2618 as boolean expression.
2619 (x_set_window_size): Remove unused variable toolbar.
2620 (ns_get_color_default, ns_mod_to_lisp): Remove.
2621 (ns_mouse_position): Remove unused variables xchar and ychar.
2622 (ns_compute_glyph_string_overhangs): Remove unused variable face.
2623 (ns_set_vertical_scroll_bar): Remove unused variable count.
2624 (ns_delete_terminal): Remove unused variable i.
2625 (ns_term_init): Remove unused variables r, g and b.
2626 (mouseDown): Remove unused variable window.
2627 (windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP.
2628 (initFrameFromEmacs): Remove unused variable vbextra.
2629 (mouseEntered): Remove unused variables p and dpyinfo.
2630 (mouseExited): Remove unused variables p and r.
2631 (ns_define_frame_cursor, ns_clear_frame_area)
2632 (ns_draw_window_cursor, ns_initialize_display_info): Make static.
2633 (menuDown): Assign [sender tag] to variable and cast the variable.
2634
2635 * nsterm.h (menuDown): Add id as type to argument sender.
2636 (ns_display_info_for_name): Add Lisp_Object argument.
2637 (ns_term_init): Add Lisp_Object argument.
2638 (ns_map_event_to_object): Add void argument.
2639 (ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct
2640 prototype with arguments and only declare if __OBJC__.
2641 (nxatoms_of_nsselect): Add void argument.
2642 (ns_lisp_to_cursor_type): Add Lisp_Object argument.
2643 (ns_alloc_autorelease_pool): Add void argument.
2644 (ns_release_autorelease_pool): Add void* argument.
2645 (ns_get_defaults_value): Add const char* argument.
2646
2647 * nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog)
2648 (initFromContents): Use SSDATA where appropriate.
2649 (ns_update_menubar): Add braces to ambigous if-else.
2650 (initWithTitle): Put () around assignment in if statement.
2651 (ns_menu_show): Remove unused variables window and keymap.
2652 (update_frame_tool_bar): Remove unused variable selected_p.
2653 (initWithContentRect): Remove unused variable this_cmd_name.
2654
2655 * nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where
2656 appropriate.
2657 (setXBMColor): Remove unused variable len.
2658 (setPixmapData): Put () around assignment in loop statement.
2659
2660 * nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script)
2661 (ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA
2662 where appropriate.
2663 (ns_get_covering_families, ns_findfonts, nsfont_list_family): Put ()
2664 around assignment in loop statement.
2665 (nsfont_open): Remove unused variable i.
2666 (nsfont_open): Remove unused variable len.
2667 (nsfont_draw): Remove unused variable cs.
2668
2669 * nsfns.m (x_set_icon_name, ns_set_name_internal)
2670 (ns_set_name_as_filename, ns_implicitly_set_icon_type)
2671 (x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name)
2672 (Fns_get_resource, Fns_set_resource, Fx_open_connection)
2673 (Fns_font_name, Fns_perform_service)
2674 (Fns_convert_utf8_nfd_to_nfc, ns_do_applescript)
2675 (Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate.
2676 (ns_set_name): Remove unused variable view.
2677 (x_set_menu_bar_lines): Remove unused variable olines.
2678 (x_set_tool_bar_lines): Remove unused variable root_window.
2679 (Fns_list_colors): Put () around assignment in while statement.
2680 (Fns_perform_service): Remove unused variable len.
2681 (Fns_display_usable_bounds): Remove unused variable top.
2682 (syms_of_nsfns): Remove unused variable i.
2683
2684 * nsmenu.m (ns_update_menubar): Exchange place of argument 2 and 3 to
2685 memcpy (Bug#11907).
2686
2687 2012-07-13 Kalle Kankare <kalle.kankare@iki.fi> (tiny change)
2688
2689 * image.c (Fimagemagick_types): Initialize ex with GetExceptionInfo
2690 and free it with DestroyExceptionInfo (Bug#11558).
2691
2692 2012-07-13 Juanma Barranquero <lekktu@gmail.com>
2693
2694 * s/ms-w32.h (FIRST_PTY_LETTER, HAVE_SOCKETS): Move to nt/config.nt.
2695 (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE___BUILTIN_UNWIND_INIT):
2696 Set here, not in nt/config.nt.
2697
2698 2012-07-13 Eli Zaretskii <eliz@gnu.org>
2699
2700 * xdisp.c (move_it_in_display_line_to): On GUI terminals, allow
2701 cursor overflow into the last glyph on display line when the right
2702 fringe is off. (Bug#11832)
2703
2704 2012-07-13 Paul Eggert <eggert@cs.ucla.edu>
2705
2706 * xdisp.c (produce_special_glyphs): Now static.
2707 * dispextern.h (produce_special_glyphs): Remove decl.
2708
2709 2012-07-13 Glenn Morris <rgm@gnu.org>
2710
2711 * s/bsd-common.h, s/cygwin.h: Remove empty files.
2712 * s/freebsd.h, s/netbsd.h: Do not include bsd-common.h.
2713
2714 * s/usg5-4-common.h (USG, USG5):
2715 * s/template.h (USG5, USG, HPUX, BSD4_2, BSD_SYSTEM):
2716 * s/sol2-6.h (SOLARIS2):
2717 * s/irix6-5.h (IRIX6_5):
2718 * s/hpux10-20.h (USG, USG5, HPUX):
2719 * s/gnu-linux.h (USG, GNU_LINUX):
2720 * s/freebsd.h (BSD_SYSTEM):
2721 * s/darwin.h (BSD4_2, BSD_SYSTEM, DARWIN_OS):
2722 * s/cygwin.h (CYGWIN):
2723 * s/bsd-common.h (BSD_SYSTEM, BSD4_2):
2724 * s/aix4-2.h (USG, USG5, _AIX): Move "system type" macros to configure.
2725
2726 2012-07-13 BT Templeton <bpt@hcoop.net> (tiny change)
2727
2728 * nsfont.m (ns_charset_covers): Don't abort if no bitmap (Bug#11853).
2729
2730 2012-07-13 Glenn Morris <rgm@gnu.org>
2731
2732 * s/usg5-4-common.h (NSIG_MINIMUM): Let configure set it.
2733
2734 * s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE.
2735
2736 * process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION.
2737 * s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro.
2738
2739 2012-07-12 Glenn Morris <rgm@gnu.org>
2740
2741 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure.
2742
2743 * process.c (init_process_emacs): Rename from init_process.
2744 The old name is also the name of a Mach system call.
2745 * lisp.h, emacs.c: Update for this name change.
2746 * nsgui.h, sysselect.h, s/darwin.h: Remove workaround that is no
2747 longer needed.
2748
2749 2012-07-12 Eli Zaretskii <eliz@gnu.org>
2750
2751 * xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in
2752 memmove call that removes glyphs covered by the left truncation
2753 glyph. Improve commentary.
2754 (display_line): Fix display of continuation glyphs on GUI frames
2755 when the right fringe is turned off and variable-size fonts are
2756 used in the window. Move the code that appends a stretch glyph to
2757 produce_special_glyphs, so that it could be used for truncation
2758 and continuation glyphs alike.
2759 (produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch
2760 glyph of a suitably computed width, to align the special glyphs at
2761 the window margin. Code moved from display_line. (Bug#11832)
2762
2763 2012-07-12 Glenn Morris <rgm@gnu.org>
2764
2765 * s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES.
2766
2767 * s/gnu-linux.h, s/hpux10-20.h:
2768 Do not unconditionally define HAVE_XRMSETDATABASE.
2769
2770 * s/gnu-linux.h (UNIX98_PTYS): Let configure set it.
2771
2772 2012-07-12 Paul Eggert <eggert@cs.ucla.edu>
2773
2774 Fix typos that broke OS X build.
2775 Reported by Randal L. Schwartz in
2776 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00225.html>.
2777 * nsterm.m (ns_timeout): Add missing local decl.
2778 (ns_get_color): snprintf -> sprintf, to fix typo.
2779
2780 2012-07-12 Glenn Morris <rgm@gnu.org>
2781
2782 * src/s/aix4-2.h, src/s/cygwin.h, src/s/darwin.h:
2783 * src/s/gnu-linux.h, src/s/hpux10-20.h, src/s/irix6-5.h:
2784 * src/s/sol2-6.h, src/s/unixware.h, src/s/usg5-4-common.h:
2785 Move PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF to configure.
2786
2787 * s/cygwin.h, s/darwin.h, s/gnu-linux.h, s/irix6-5.h:
2788 Move PTY_OPEN to configure.
2789
2790 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
2791 * s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h, s/template.h:
2792 * s/usg5-4-common.h: Move FIRST_PTY_LETTER, PTY_ITERATION to configure.
2793
2794 2012-07-12 Dmitry Antipov <dmantipov@yandex.ru>
2795
2796 Use empty_unibyte_string where applicable.
2797 * keyboard.c (parse_tool_bar_item): Use empty_unibyte_string.
2798 * lread.c (read1): Likewise.
2799 * xsettings.c (syms_of_xsettings): Likewise.
2800
2801 2012-07-12 Glenn Morris <rgm@gnu.org>
2802
2803 * s/cygwin.h (G_SLICE_ALWAYS_MALLOC):
2804 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN):
2805 * s/irix6-5.h (SETPGRP_RELEASES_CTTY, PREFER_VSUSP):
2806 * s/hpux10-20.h (RUN_TIME_REMAP):
2807 * s/bsd-common.h (TABDLY): Move to configure.
2808
2809 * s/hpux10-20.h, s/sol2-6.h: Move XOS_NEEDS_TIME_H to configure.
2810
2811 * s/bsd-common.h, s/darwin.h: Move TAB3 to configure.
2812
2813 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
2814 (BROKEN_SIGPOLL, BROKEN_GET_CURRENT_DIR_NAME): Let configure set them.
2815
2816 * s/darwin.h (NO_ABORT, NO_MATHERR): Let configure set them.
2817
2818 * s/bsd-common.h, s/cygwin.h, s/gnu-linux.h, s/irix6-5.h:
2819 * s/template.h: Move NARROWPROTO to configure.
2820
2821 2012-07-11 Glenn Morris <rgm@gnu.org>
2822
2823 * s/gnu-linux.h, s/sol2-6.h: No longer define POSIX,
2824 unused since 2011-01-17 change to systty.h.
2825
2826 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h, s/gnu-linux.h:
2827 * s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
2828 Move HAVE_PTYS and HAVE_SOCKETS to configure.
2829
2830 2012-07-11 Paul Eggert <eggert@cs.ucla.edu>
2831
2832 * s/sol2-6.h (HAVE_LIBKSTAT): Remove. (Bug#11914)
2833
2834 2012-07-11 Glenn Morris <rgm@gnu.org>
2835
2836 * s/darwin.h, s/gnu-linux.h, s/template.h:
2837 Move INTERRUPT_INPUT to configure.
2838
2839 2012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
2840
2841 Minor adjustments to interning code.
2842 * lisp.h (intern, intern_c_string): Redefine as static inline
2843 wrappers for intern_1 and intern_c_string_1, respectively.
2844 (intern_1, intern_c_string_1): Rename prototypes.
2845 * lread.c (intern_1, intern_c_string_1, oblookup):
2846 Simplify Vobarray checking.
2847 * font.c (font_intern_prop): Likewise. Adjust comment.
2848 * w32font.c (intern_font_name): Likewise.
2849
2850 2012-07-11 Andreas Schwab <schwab@linux-m68k.org>
2851
2852 * gnutls.c (Fgnutls_boot): Properly parse :keylist argument.
2853
2854 * coding.c (Fdefine_coding_system_internal): Use XCAR/XCDR instead
2855 of Fcar/Fcdr if possible.
2856 * font.c (check_otf_features): Likewise.
2857 * fontset.c (Fnew_fontset): Likewise.
2858 * gnutls.c (Fgnutls_boot): Likewise.
2859 * minibuf.c (read_minibuf): Likewise.
2860 * msdos.c (IT_set_frame_parameters): Likewise.
2861 * xmenu.c (Fx_popup_dialog): Likewise.
2862 * w32menu.c (Fx_popup_dialog): Likewise.
2863
2864 2012-07-11 Glenn Morris <rgm@gnu.org>
2865
2866 * s/bsd-common.h, s/cygwin.h: No need to undefine INTERRUPT_INPUT,
2867 since nothing has defined it on these platforms.
2868
2869 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h:
2870 * s/irix6-5.h: Move SIGNALS_VIA_CHARACTERS to configure.
2871
2872 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
2873 * s/gnu-linux.h, s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
2874 Move CLASH_DETECTION to configure.
2875
2876 * s/gnu.h: Remove file, which is now empty.
2877
2878 * s/gnu.h, s/gnu-linux.h:
2879 Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure.
2880
2881 2012-07-11 John Wiegley <johnw@newartisans.com>
2882
2883 * alloc.c (mark_memory): Guard the "no_address_safety_analysis"
2884 function attribute, so we only use it if it exists in the
2885 compiler.
2886
2887 2012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
2888
2889 Avoid call to strlen in fast_c_string_match_ignore_case.
2890 * search.c (fast_c_string_match_ignore_case): Change to use
2891 length argument. Adjust users accordingly.
2892 * lisp.h (fast_c_string_match_ignore_case): Adjust prototype.
2893
2894 2012-07-11 Paul Eggert <eggert@cs.ucla.edu>
2895
2896 Assume mkdir, rmdir.
2897 * sysdep.c (mkdir) [!HAVE_MKDIR]: Remove.
2898 * sysdep.c (rmdir) [!HAVE_RMDIR]: Remove.
2899
2900 Assume rename.
2901 * sysdep.c (rename) [!HAVE_RENAME]: Remove.
2902
2903 Assume perror.
2904 * s/hpux10-20.h (HAVE_PERROR): Remove.
2905 * sysdep.c (perror) [HPUX && !HAVE_PERROR]:
2906 Remove dummy definition, as this problem was obsolete long ago.
2907
2908 Assume strerror.
2909 * sysdep.c (strerror) [!HAVE_STRERROR && !WINDOWSNT]: Remove.
2910
2911 2012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
2912
2913 Avoid calls to strlen in font processing functions.
2914 * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname)
2915 (font_open_by_name): Change to use length argument.
2916 Adjust users accordingly.
2917 * font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd):
2918 Adjust prototypes.
2919 * xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd):
2920 Change to return ptrdiff_t.
2921 (xfont_list_pattern, xfont_match): Use length returned by
2922 xfont_decode_coding_xlfd.
2923 * xfns.c (x_default_font_parameter): Omit useless xstrdup.
2924
2925 2012-07-11 Glenn Morris <rgm@gnu.org>
2926
2927 * s/darwin.h, s/freebsd.h, s/netbsd.h:
2928 Move DONT_REOPEN_PTY to configure.
2929
2930 * sound.c (DEFAULT_SOUND_DEVICE) [!WINDOWSNT]:
2931 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Let configure set it.
2932
2933 2012-07-10 Paul Eggert <eggert@cs.ucla.edu>
2934
2935 Remove "#define unix" that is no longer needed (Bug#11905).
2936 * s/aix4-2.h (unix): Remove; no longer needed.
2937
2938 EMACS_TIME simplification (Bug#11875).
2939 This replaces macros (which typically do not work in GDB)
2940 with functions, typedefs and enums, making the code easier to debug.
2941 The functional style also makes code easier to read and maintain.
2942 * systime.h: Include <sys/time.h> on all hosts, not just if
2943 WINDOWSNT, since 'struct timeval' is needed in general.
2944 (EMACS_TIME): Now a typedef, not a macro.
2945 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
2946 not macros.
2947 (EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
2948 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
2949 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
2950 (EMACS_TIME_LE): Now functions, not macros.
2951 (EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
2952 (EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
2953 which are not functions. All uses rewritten to use:
2954 (make_emacs_time): New function.
2955 (EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
2956 (EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
2957 not functions. All uses rewritten to use the following, respectively:
2958 (emacs_secs_addr, invalid_emacs_time, get_emacs_time)
2959 (add_emacs_time, sub_emacs_time): New functions.
2960 * atimer.c: Don't include <sys/time.h>, as "systime.h" does this.
2961 * fileio.c (Fcopy_file):
2962 * xterm.c (XTflash): Get the current time closer to when it's used.
2963 * makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
2964
2965 * bytecode.c (targets): Suppress -Woverride-init warnings.
2966
2967 Simplify by avoiding confusing use of strncpy etc.
2968 * doc.c (Fsnarf_documentation):
2969 * fileio.c (Ffile_name_directory, Fsubstitute_in_file_name):
2970 * frame.c (Fmake_terminal_frame):
2971 * gtkutil.c (get_utf8_string):
2972 * lread.c (openp):
2973 * nsmenu.m (ns_update_menubar):
2974 * regex.c (regerror):
2975 Prefer memcpy to strncpy and strncat when either will do.
2976 * fileio.c (Fsubstitute_in_file_name):
2977 * keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached)
2978 (menu_separator_name_p):
2979 * nsmenu.m (ns_update_menubar):
2980 Prefer memcmp to strncmp when either will do.
2981 * nsterm.m: Include <ftoastr.h>.
2982 (ns_get_color):
2983 * s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF):
2984 Prefer snprintf to strncpy.
2985 * nsterm.m (ns_term_init):
2986 * widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy.
2987 * nsterm.m (ns_term_init):
2988 Avoid the need for strncpy, by using build_string or
2989 make_unibyte_string directly. Use dtoastr, not snprintf.
2990 * process.c (Fmake_network_process): Diagnose service names that
2991 are too long, rather than silently truncating them or creating
2992 non-null-terminated names.
2993 (Fnetwork_interface_info): Likewise, for interface names.
2994 * sysdep.c (system_process_attributes) [GNU_LINUX]:
2995 Prefer sprintf to strncat.
2996 * xdisp.c (debug_method_add) [GLYPH_DEBUG]:
2997 Prefer vsnprintf to vsprintf + strncpy.
2998
2999 2012-07-10 Glenn Morris <rgm@gnu.org>
3000
3001 * dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]:
3002 Clarify fallback case.
3003
3004 2012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
3005
3006 Use XCAR and XCDR instead of Fcar and Fcdr where possible.
3007 * callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c,
3008 * frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c,
3009 * w32menu.c, window.c, xmenu.c: Change to use XCAR and XCDR
3010 where argument type is known to be a Lisp_Cons.
3011
3012 2012-07-10 Tom Tromey <tromey@redhat.com>
3013
3014 * bytecode.c (BYTE_CODE_THREADED): New macro.
3015 (BYTE_CODES): New macro. Replaces all old byte-code defines.
3016 (enum byte_code_op): New type.
3017 (CASE, NEXT, FIRST, CASE_DEFAULT, CASE_ABORT): New macros.
3018 (exec_byte_code): Use them. Use token threading when applicable.
3019
3020 2012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
3021
3022 Optimize pure C strings initialization.
3023 * lisp.h (make_pure_string): Fix prototype.
3024 (build_pure_c_string): New function, defined as static inline. This
3025 provides a better opportunity to optimize away calls to strlen when
3026 the function is called with compile-time constant argument.
3027 * alloc.c (make_pure_c_string): Fix comment. Change to add nchars
3028 argument, adjust users accordingly. Use build_pure_c_string where
3029 appropriate.
3030 * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
3031 * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
3032 * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
3033
3034 2012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
3035
3036 Avoid calls to strlen in miscellaneous functions.
3037 * buffer.c (init_buffer): Use precalculated len, adjust if needed.
3038 * font.c (Ffont_xlfd_name): Likewise. Change to call make_string.
3039 * lread.c (openp): Likewise.
3040
3041 2012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
3042
3043 Avoid calls to strlen in path processing functions.
3044 * fileio.c (file_name_as_directory): Add comment. Change to add
3045 srclen argument and return the length of result. Adjust users
3046 accordingly.
3047 (directory_file_name): Fix comment. Change to add srclen argument,
3048 swap 1st and 2nd arguments to obey the common convention.
3049 Adjust users accordingly.
3050 * filelock.c (fill_in_lock_file_name): Avoid calls to strlen.
3051
3052 2012-07-10 Glenn Morris <rgm@gnu.org>
3053
3054 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h:
3055 Move PENDING_OUTPUT_COUNT definition to configure.
3056
3057 * s/irix6-5.h (DATA_START, DATA_SEG_BITS):
3058 * s/hpux10-20.h (DATA_SEG_BITS, DATA_START):
3059 * s/gnu.h (DATA_START): Move definitions to configure.
3060
3061 * s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards.
3062 We include usg5-4-common.h, which defines them both.
3063
3064 * s/gnu.h: Don't include fcntl.h (every file in Emacs that uses
3065 O_RDONLY already includes it).
3066
3067 Stop ns builds setting the EMACSLOADPATH environment variable.
3068 * nsterm.m (ns_load_path): Rename from ns_init_paths.
3069 Now it does not set EMACSLOADPATH, just returns the load-path string.
3070 * nsterm.h: Update accordingly.
3071 * lread.c [HAVE_NS]: Include nsterm.h.
3072 (init_lread) [HAVE_NS]: Use ns_load_path.
3073 * emacs.c (main) [HAVE_NS]: No longer call ns_init_paths.
3074
3075 2012-07-09 Glenn Morris <rgm@gnu.org>
3076
3077 * s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here,
3078 since the included bsd-common.h does so.
3079
3080 Stop ns builds setting the EMACSPATH environment variable.
3081 * nsterm.m (ns_exec_path): New function, split from ns_init_paths.
3082 (ns_init_paths): Do not set EMACSPATH.
3083 * nsterm.h (ns_exec_path): Add it.
3084 * callproc.c (init_callproc_1, init_callproc) [HAVE_NS]:
3085 Use ns_exec_path.
3086
3087 * nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return.
3088
3089 2012-07-09 Paul Eggert <eggert@cs.ucla.edu>
3090
3091 * process.c (wait_reading_process_output): 'waitchannels' was unset
3092 when read_kbd || !NILP (wait_for_cell); fix this.
3093
3094 Add GCC-style 'const' attribute to functions that can use it.
3095 * character.h (char_resolve_modifier_mask):
3096 * keyboard.h (make_ctrl_char):
3097 * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe)
3098 (init_character_once, next_almost_prime, init_fns, init_image)
3099 (flush_pending_output, init_sound):
3100 * mem-limits.h (start_of_data):
3101 * menu.h (finish_menu_items):
3102 Add ATTRIBUTE_CONST.
3103 * emacs.c (DEFINE_DUMMY_FUNCTION):
3104 Declare the dummy function with ATTRIBUTE_CONST.
3105 * lisp.h (Fbyteorder, Fmax_char, Fidentity):
3106 Add decls with ATTRIBUTE_CONST.
3107
3108 Minor improvements to make_formatted_string.
3109 * alloc.c (make_formatted_string): Prefer int to ptrdiff_t
3110 where int is good enough, as vsprintf returns an int.
3111 * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF.
3112
3113 2012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
3114
3115 Use make_formatted_string to avoid double length calculation.
3116 * lisp.h (make_formatted_string): New prototype.
3117 * alloc.c (make_formatted_string): New function.
3118 * buffer.c (Fgenerate_new_buffer_name): Use it.
3119 * dbus.c (syms_of_dbusbind): Likewise.
3120 * editfns.c (Fcurrent_time_zone): Likewise.
3121 * filelock.c (get_boot_time): Likewise.
3122 * frame.c (make_terminal_frame, set_term_frame_name)
3123 (x_report_frame_params): Likewise.
3124 * image.c (gs_load): Likewise.
3125 * minibuf.c (get_minibuffer): Likewise.
3126 * msdos.c (dos_set_window_size): Likewise.
3127 * process.c (make_process): Likewise.
3128 * xdisp.c (ensure_echo_area_buffers): Likewise.
3129 * xsettings.c (apply_xft_settings): Likewise.
3130
3131 2012-07-09 Glenn Morris <rgm@gnu.org>
3132
3133 Stop ns builds polluting the environment with EMACSDATA, EMACSDOC.
3134 * nsterm.m (ns_etc_directory): New function, split from ns_init_paths.
3135 (ns_init_paths): Do not set EMACSDATA, EMACSDOC.
3136 * nsterm.h (ns_etc_directory): Add it.
3137 * callproc.c [HAVE_NS]: Include nsterm.h.
3138 (init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory.
3139
3140 2012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
3141
3142 Move marker debugging code under MARKER_DEBUG.
3143 * marker.c (MARKER_DEBUG): Move marker debugging code under
3144 #ifdef MARKER_DEBUG because byte_char_debug_check is too slow
3145 for bootstrap with --enable-checking (~3x slowdown reported
3146 by Juanma Barranquero <lekktu@gmail.com>).
3147 (verify_bytepos): Move under #ifdef MARKER_DEBUG.
3148
3149 2012-07-08 Paul Eggert <eggert@cs.ucla.edu>
3150
3151 * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t.
3152 See <http://bugs.gnu.org/11825#29>.
3153
3154 2012-07-08 Eli Zaretskii <eliz@gnu.org>
3155
3156 * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph
3157 has no font, use the frame's font. (Bug#11813)
3158 (display_line): Add commentary about displaying truncation glyphs
3159 on GUI frames.
3160 (produce_special_glyphs): Move here from term.c.
3161
3162 * term.c (produce_special_glyphs): Move to xdisp.c.
3163
3164 * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c
3165 section.
3166
3167 2012-07-07 Andreas Schwab <schwab@linux-m68k.org>
3168
3169 * xdisp.c (display_line): Avoid warning about implicit declaration
3170 of FRAME_FONT.
3171
3172 * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM.
3173
3174 * lisp.h: Remove empty conditional.
3175
3176 2012-07-07 Paul Eggert <eggert@cs.ucla.edu>
3177
3178 * lread.c (load_path_check): Now static.
3179
3180 Fix some minor --with-ns problems found by static checking.
3181 * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
3182 (x_set_font) [!HAVE_X_WINDOWS]:
3183 * image.c (xpm_load_image) [HAVE_NS]:
3184 (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
3185 (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
3186 Remove unused local.
3187 (Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
3188 (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
3189 * image.c (x_create_bitmap_from_file) [HAVE_NS]:
3190 (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
3191 * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
3192 * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
3193 Fix pointer signedness problem.
3194 * xfaces.c (FRAME_X_FONT_TABLE):
3195 * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
3196
3197 2012-07-07 Glenn Morris <rgm@gnu.org>
3198
3199 * lread.c (load_path_check): New function, split from init_lread.
3200 (init_lread): Reorganize. Motivation:
3201 If EMACSLOADPATH is set, check/warn about that rather than the
3202 defaults, which we are not going to use. Hence we can remove
3203 the turn_off_warning and WINDOWSNT || HAVE_NS tests.
3204 Don't warn if site-lisp directories are missing.
3205 If not installed, start from a blank load-path, since
3206 PATH_LOADSEARCH refers to the eventual installation directories.
3207
3208 2012-07-07 Eli Zaretskii <eliz@gnu.org>
3209
3210 Support truncation and continuation glyphs on GUI frames, when
3211 fringes are disabled. (Bug#11832)
3212 * xdisp.c (init_iterator): Get dimensions of truncation and
3213 continuation glyphs even if on GUI frames.
3214 Adjust it->last_visible_x on GUI frames when the left or right fringes,
3215 or both, are absent.
3216 (start_display, move_it_in_display_line_to): Handle the case of a
3217 GUI frame without a fringe to display continuation or truncation
3218 glyphs.
3219 (insert_left_trunc_glyphs): Support GUI frames: make sure
3220 truncation glyphs overwrite enough glyphs from the current line to
3221 have sufficient space in pixels.
3222 (display_line): Support truncation and continuation glyphs on GUI
3223 frames. If some spare pixels are left on the line after inserting
3224 the truncation glyphs, fill that space with a stretch glyph of a
3225 suitably computed width.
3226
3227 * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not
3228 produce_glyphs, to support GUI sessions.
3229
3230 2012-07-07 Paul Eggert <eggert@cs.ucla.edu>
3231
3232 * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781).
3233
3234 * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797).
3235
3236 Do not require float-time's arg to fit in time_t (Bug#11825).
3237 This works better on hosts where time_t is unsigned, and where
3238 float-time is applied to the (negative) difference between two times.
3239 * editfns.c (decode_time_components): Last arg is now double *,
3240 not int *, and means to store all the result as a double, without
3241 worrying about whether the seconds part fits in time_t.
3242 All callers changed.
3243 (lisp_time_argument): Remove last int * arg, as it's no longer needed.
3244 All callers changed.
3245 (Ffloat_time): Do not fail merely because the specified time falls
3246 outside of time_t range.
3247
3248 2012-07-07 Glenn Morris <rgm@gnu.org>
3249
3250 * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV):
3251 * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM):
3252 * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively).
3253
3254 2012-07-07 Juanma Barranquero <lekktu@gmail.com>
3255
3256 * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)):
3257 Update dependencies.
3258
3259 * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp.
3260
3261 2012-07-06 Paul Eggert <eggert@cs.ucla.edu>
3262
3263 Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
3264 * dispextern.h, nsfns.m, nsterm.m: Include <c-strcase.h>.
3265 * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp.
3266 * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp.
3267 * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp.
3268 * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove.
3269
3270 * xfont.c (compare_font_names): Redo to omit the need for casts.
3271
3272 2012-07-06 Andreas Schwab <schwab@linux-m68k.org>
3273
3274 * xfns.c (Fx_change_window_property): Doc fix.
3275 * w32fns.c (Fx_change_window_property): Doc fix.
3276
3277 * w32fns.c (Fx_window_property): Accept the same arguments as the
3278 X Windows version. Doc fix.
3279 * xfns.c (Fx_window_property): Doc fix. (Bug#11870)
3280
3281 2012-07-06 Juanma Barranquero <lekktu@gmail.com>
3282 Eli Zaretskii <eliz@gnu.org>
3283
3284 * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt.
3285 Windows-specific code from nt/config.nt moved here.
3286 Obsolete settings removed.
3287
3288 2012-07-06 Paul Eggert <eggert@cs.ucla.edu>
3289
3290 * process.c: Avoid unnecessary calls to gettime.
3291 (wait_reading_process_output): Don't get the time of day
3292 when gobbling data immediately and not waiting, as there's no need
3293 for it in that case. This removes a FIXME.
3294
3295 2012-07-06 Jan Djärv <jan.h.d@swipnet.se>
3296
3297 * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3
3298 is defined (Bug#11768).
3299
3300 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
3301
3302 Fix marker debugging code.
3303 * marker.c (byte_char_debug_check): Do not perform the check
3304 if buffer is not multibyte.
3305 (buf_charpos_to_bytepos, buf_bytepos_to_charpos):
3306 Call byte_char_debug_check with correct arguments.
3307
3308 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
3309
3310 Compile marker debugging code only if ENABLE_CHECKING is defined.
3311 * marker.c (byte_char_debug_check, count_markers):
3312 Use only if ENABLE_CHECKING is defined.
3313 (byte_debug_flag): Remove.
3314 (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos):
3315 Always call byte_char_debug_check if ENABLE_CHECKING is defined.
3316
3317 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
3318
3319 Avoid code repetition in marker-related functions.
3320 * marker.c (attach_marker): New function.
3321 (Fset_marker, set_marker_restricted, set_marker_both)
3322 (set_marker_restricted_both): Use it.
3323 (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at):
3324 Consistently rename charno to charpos.
3325 (marker_position): Add eassert.
3326 (marker_byte_position): Convert to eassert.
3327
3328 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
3329
3330 Simplify list operations in unchain_overlay and unchain_marker.
3331 * buffer.c (unchain_overlay): Simplify. Add comment.
3332 * marker.c (unchain_marker): Simplify. Fix comments.
3333
3334 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
3335
3336 Introduce fast path for the widely used marker operation.
3337 * alloc.c (build_marker): New function.
3338 * lisp.h (build_marker): New prototype.
3339 * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
3340 * composite.c (autocmp_chars): Likewise.
3341 * editfns.c (buildmark): Remove.
3342 (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
3343 (save_restriction_save): Use build_marker.
3344 * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
3345 * window.c (save_window_save): Likewise.
3346
3347 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
3348
3349 Do not use Fdelete_overlay in delete_all_overlays
3350 to avoid redundant calls to unchain_overlay.
3351 * buffer.c (drop_overlay): New function.
3352 (delete_all_overlays, Fdelete_overlay): Use it.
3353 * minibuf.c (get_minibuffer): Fix comment.
3354
3355 2012-07-06 Paul Eggert <eggert@cs.ucla.edu>
3356
3357 Port to OpenBSD 5.1 amd64.
3358 * sysdep.c [BSD_SYSTEM]: Include <sys/param.h> before <sys/sysctl.h>.
3359 This is needed for OpenBSD, and should be harmless on all BSD systems.
3360 Also, include <sys/sysctl.h>, as it should be available on all
3361 BSD_SYSTEM hosts given that we're already calling sysctl in that case.
3362 (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but
3363 use p_pid member, not kp_proc.pid.
3364
3365 2012-07-06 Glenn Morris <rgm@gnu.org>
3366
3367 * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows.
3368
3369 2012-07-05 Paul Eggert <eggert@cs.ucla.edu>
3370
3371 More xmalloc and related cleanup.
3372 * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
3373 * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
3374 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
3375 * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
3376 * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
3377 * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
3378 * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
3379 * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
3380 * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
3381 * xterm.c:
3382 Omit needless casts involving void * pointers and allocation.
3383 Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
3384 as the former is more robust if P's type is changed.
3385 Prefer xzalloc to xmalloc + memset 0.
3386 Simplify malloc-or-realloc to realloc.
3387 Don't worry about xmalloc returning a null pointer.
3388 Prefer xstrdup to xmalloc + strcpy.
3389 * editfns.c (Fmessage_box): Grow message_text by at least 80 when
3390 growing it.
3391 * keyboard.c (apply_modifiers_uncached): Prefer local array to
3392 alloca of a constant.
3393
3394 2012-07-05 Eli Zaretskii <eliz@gnu.org>
3395
3396 * xdisp.c (display_line): Fix horizontal pixel coordinates when
3397 hscroll is larger than the line width. Fixes long and futile
3398 looping inside extend_face_to_end_of_line (on a TTY) producing
3399 glyphs that are not needed and thrown away.
3400
3401 2012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
3402
3403 * marker.c (set_marker_restricted_both): Simplify by using
3404 clip_to_bounds.
3405
3406 2012-07-05 Paul Eggert <eggert@cs.ucla.edu>
3407
3408 * editfns.c (region_limit): Simplify by using clip_to_bounds.
3409
3410 2012-07-05 Jan Djärv <jan.h.d@swipnet.se>
3411
3412 * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is
3413 not defined (Bug#11768).
3414 (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768).
3415 (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser)
3416 (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new
3417 followed by gtk_box_set_homogeneous (Bug#11768).
3418 (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768).
3419 (update_theme_scrollbar_width, xg_create_scroll_bar):
3420 Use gtk_scrollbar_new (Bug#11768).
3421 (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3.
3422 (is_box_type): New function (Bug#11768).
3423 (xg_tool_item_stale_p): Call is_box_type.
3424 (xg_initialize): Get settings by calling gtk_settings_get_for_screen
3425 with default display (Bug#11768).
3426
3427 2012-07-05 Eli Zaretskii <eliz@gnu.org>
3428
3429 * xdisp.c (window_hscroll_limited): New function.
3430 (pos_visible_p, init_iterator): Use it to avoid overflow of pixel
3431 coordinates when window's hscroll is set to insanely large
3432 values. (Bug#11857)
3433
3434 2012-07-05 Juanma Barranquero <lekktu@gmail.com>
3435
3436 * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo.
3437 ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies.
3438
3439 2012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
3440
3441 Cleanup xmalloc.
3442 * lisp.h (xzalloc): New prototype. Omit needless casts.
3443 * alloc.c (xzalloc): New function. Omit needless casts.
3444 * charset.c: Omit needless casts. Convert all calls to
3445 xmalloc with following memset to xzalloc.
3446 * dispnew.c: Likewise.
3447 * fringe.c: Likewise.
3448 * image.c: Likewise.
3449 * sound.c: Likewise.
3450 * term.c: Likewise.
3451 * w32fns.c: Likewise.
3452 * w32font.c: Likewise.
3453 * w32term.c: Likewise.
3454 * xfaces.c: Likewise.
3455 * xfns.c: Likewise.
3456 * xterm.c: Likewise.
3457 * atimer.c: Omit needless casts.
3458 * buffer.c: Likewise.
3459 * callproc.c: Likewise.
3460 * ccl.c: Likewise.
3461 * coding.c: Likewise.
3462 * composite.c: Likewise.
3463 * doc.c: Likewise.
3464 * doprnt.c: Likewise.
3465 * editfns.c: Likewise.
3466 * emacs.c: Likewise.
3467 * eval.c: Likewise.
3468 * filelock.c: Likewise.
3469 * fns.c: Likewise.
3470 * gtkutil.c: Likewise.
3471 * keyboard.c: Likewise.
3472 * lisp.h: Likewise.
3473 * lread.c: Likewise.
3474 * minibuf.c: Likewise.
3475 * msdos.c: Likewise.
3476 * print.c: Likewise.
3477 * process.c: Likewise.
3478 * region-cache.c: Likewise.
3479 * search.c: Likewise.
3480 * sysdep.c: Likewise.
3481 * termcap.c: Likewise.
3482 * terminal.c: Likewise.
3483 * tparam.c: Likewise.
3484 * w16select.c: Likewise.
3485 * w32.c: Likewise.
3486 * w32reg.c: Likewise.
3487 * w32select.c: Likewise.
3488 * w32uniscribe.c: Likewise.
3489 * widget.c: Likewise.
3490 * xdisp.c: Likewise.
3491 * xmenu.c: Likewise.
3492 * xrdb.c: Likewise.
3493 * xselect.c: Likewise.
3494
3495 2012-07-05 Paul Eggert <eggert@cs.ucla.edu>
3496
3497 * fileio.c (time_error_value): Check the right error number.
3498 Problem reported by Troels Nielsen in
3499 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00095.html>.
3500
3501 2012-07-04 Paul Eggert <eggert@cs.ucla.edu>
3502
3503 * window.c (set_window_hscroll): Revert the 100000 hscroll limit.
3504 This should be fixed in a better way; see Eli Zaretskii in
3505 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
3506 (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
3507
3508 * fileio.c (time_error_value): Rename from special_mtime.
3509 The old name's problems were noted by Eli Zaretskii in
3510 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00087.html>.
3511
3512 * emacs.c (gdb_pvec_type): Change it back to enum pvec_type.
3513 This variable's comment says Emacs needs at least one GDB-visible
3514 symbol of type enum pvec_type, to work around GDB problems.
3515 The symbol's value doesn't matter.
3516
3517 * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';'
3518 that causes compilation to fail on pre-C99 compilers.
3519
3520 2012-07-04 Juanma Barranquero <lekktu@gmail.com>
3521
3522 * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY)
3523 (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete.
3524
3525 2012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
3526
3527 * buffer.c (init_buffer_once): Fix initialization of
3528 headers for buffer_defaults and buffer_local_symbols.
3529 Reported by Juanma Barranquero <lekktu@gmail.com>.
3530
3531 2012-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
3532
3533 Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
3534 * lisp.h (enum pvec_type): Use fewer bits.
3535 (PSEUDOVECTOR_SIZE_BITS): New constant.
3536 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
3537 (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
3538 change in pvec_type.
3539 (PSEUDOVECTOR_TYPEP): New macro.
3540 (TYPED_PSEUDOVECTORP): Use it.
3541 * fns.c (internal_equal): Adapt code to extract pvectype.
3542 * emacs.c (gdb_pvec_type): Update type.
3543 * alloc.c (PSEUDOVECTOR_NBYTES): New macro.
3544 (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
3545 (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
3546 (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
3547 (sweep_vectors): Use it. Use local var `total_bytes' instead of
3548 abusing vector->header.next.nbytes.
3549 (live_vector_p): Use PVEC_TYPE.
3550 (mark_object): Adapt code to extract pvectype. Use switch.
3551
3552 2012-07-04 Paul Eggert <eggert@cs.ucla.edu>
3553
3554 * doprnt.c (doprnt): Don't assume string length fits in 'int'.
3555 Tighten new eassert a bit.
3556
3557 2012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
3558
3559 Fix compilation with --enable-gcc-warnings and -O1
3560 optimization level.
3561 * doprnt.c (doprnt): Change type of tem to int, initialize
3562 to avoid compiler warning. Add eassert.
3563 * search.c (simple_search): Initialize match_byte to avoid
3564 compiler warning. Add eassert.
3565
3566 2012-07-04 Paul Eggert <eggert@cs.ucla.edu>
3567
3568 Avoid weird behavior with large horizontal scrolls.
3569 Without this change, for example, large hscroll values would
3570 mess up Emacs's display on Fedora 15 x86, presumably due to
3571 overflows in int calculations in the display code.
3572 Also, if buffers had long lines, Emacs would freeze.
3573 * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
3574 (set_window_hscroll): New function, containing the old guts of
3575 Fset_window_hscroll. Return the clipped value.
3576 (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
3577 This avoids the need to check against PTRDIFF_MAX.
3578
3579 * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
3580
3581 2012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
3582
3583 * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
3584
3585 2012-07-04 Paul Eggert <eggert@cs.ucla.edu>
3586
3587 * regex.c: Suppress GCC warning on RHEL 6. (Bug#11207)
3588 Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
3589 since GCC 4.4.6 issues a bogus warning for them.
3590
3591 Fix bugs in file timestamp newness comparisons.
3592 * fileio.c (Ffile_newer_than_file_p):
3593 * lread.c (Fload): Use full timestamp resolution of files,
3594 not just the 1-second resolution, so that files that are only
3595 slightly newer still count as newer.
3596 * fileio.c (Ffile_newer_than_file_p): Don't assume file
3597 timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
3598
3599 2012-07-03 Paul Eggert <eggert@cs.ucla.edu>
3600
3601 * fileio.c: Improve handling of file time marker. (Bug#11852)
3602 (special_mtime): New function.
3603 (Finsert_file_contents, Fverify_visited_file_modtime):
3604 Use it to set special mtime values consistently.
3605
3606 2012-07-03 Andreas Schwab <schwab@linux-m68k.org>
3607
3608 * fileio.c (Finsert_file_contents): Properly handle st_mtime
3609 marker for non-existing file. (Bug#11852)
3610
3611 2012-07-03 Glenn Morris <rgm@gnu.org>
3612
3613 * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
3614 and did not make it into globals.h).
3615
3616 2012-07-03 Tom Tromey <tromey@redhat.com>
3617
3618 * window.c (Fset_window_margins, Fset_window_fringes)
3619 (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
3620 * textprop.c (Fprevious_property_change): No longer static.
3621 * syntax.c (Fsyntax_table_p): No longer static.
3622 * process.c (Fget_process, Fprocess_datagram_address): No longer
3623 static.
3624 * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
3625 * keyboard.c (Fcommand_execute): No longer static.
3626 Remove EXFUN.
3627 * insdel.c (Fcombine_after_change_execute): No longer static.
3628 * image.c (Finit_image_library): No longer static.
3629 * fileio.c (Fmake_symbolic_link): No longer static.
3630 * eval.c (Ffetch_bytecode): No longer static.
3631 * editfns.c (Fuser_full_name): No longer static.
3632 * doc.c (Fdocumentation_property, Fsnarf_documentation):
3633 No longer static.
3634 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
3635 static.
3636 * dired.c (Ffile_attributes): No longer static.
3637 * composite.c (Fcomposition_get_gstring): No longer static.
3638 * callproc.c (Fgetenv_internal): No longer static.
3639
3640 * ccl.h: Remove EXFUNs.
3641 * buffer.h: Remove EXFUNs.
3642 * dispextern.h: Remove EXFUNs.
3643 * intervals.h: Remove EXFUNs.
3644 * fontset.h: Remove EXFUN.
3645 * font.h: Remove EXFUNs.
3646 * dosfns.c (system_process_attributes): Remove EXFUN.
3647 * keymap.h: Remove EXFUNs.
3648 * lisp.h: Remove EXFUNs.
3649 * w32term.h: Remove EXFUNs.
3650 * window.h: Remove EXFUNs.
3651 * xsettings.h: Remove EXFUN.
3652 * xterm.h: Remove EXFUN.
3653
3654 2012-07-03 Glenn Morris <rgm@gnu.org>
3655
3656 * lisp.h (Frandom): Make it visible to C.
3657 * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
3658 buffer for invisible buffers. (Bug#1229)
3659
3660 2012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
3661
3662 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
3663 values which aren't power of 2.
3664 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro.
3665 Verify it's value and the value of VECTOR_BLOCK_SIZE. Adjust users
3666 accordingly.
3667
3668 2012-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
3669
3670 * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
3671
3672 * alloc.c (mark_object): Revert part of last patch to use `switch'.
3673
3674 2012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
3675
3676 * alloc.c (allocate_vector_block): Remove redundant
3677 calls to mallopt if DOUG_LEA_MALLOC is defined.
3678 (allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
3679 avoid calls to mallopt if zero_vector is returned.
3680
3681 2012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
3682
3683 * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
3684 is enabled, avoid dereferencing NULL current_sblock if
3685 running undumped.
3686
3687 2012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
3688
3689 Cleanup basic buffer management.
3690 * buffer.h (struct buffer): Change layout to use generic vector
3691 marking code. Fix some comments. Change type of 'clip_changed'
3692 to bitfield. Remove unused #ifndef old.
3693 (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
3694 (GET_OVERLAYS_AT): Fix indentation.
3695 (for_each_per_buffer_object_at): New macro.
3696 * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
3697 (Fbuffer_local_variables): Use it.
3698 (init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
3699 * alloc.c (allocate_buffer): Adjust to match new layout of
3700 struct buffer. Fix comment.
3701 (mark_overlay): New function.
3702 (mark_buffer): Use it. Use mark_vectorlike to mark normal
3703 Lisp area of struct buffer.
3704 (mark_object): Use it. Adjust marking of misc objects
3705 and related comments.
3706
3707 2012-07-02 Paul Eggert <eggert@cs.ucla.edu>
3708
3709 * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
3710 wrapper that is not needed because the wrapped code is a no-op (zero
3711 machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
3712 This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
3713
3714 2012-07-02 Dmitry Antipov <dmantipov@yandex.ru>
3715
3716 * alloc.c (mark_buffer): Simplify. Remove prototype.
3717 (mark_object): Add comment. Reorganize marking of vector-like
3718 objects. Use CHECK_LIVE for all vector-like objects except buffers
3719 and subroutines when GC_CHECK_MARKED_OBJECTS is defined.
3720 Avoid redundant calls to mark_vectorlike for bool vectors.
3721
3722 2012-06-30 Glenn Morris <rgm@gnu.org>
3723
3724 * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
3725
3726 * epaths.in (PATH_SITELOADSEARCH): New.
3727 * lread.c (init_lread): Use PATH_SITELOADSEARCH.
3728 This is rather than relying on --enable-locallisppath elements
3729 having "site-lisp" in their names. (Bug#10208#25, 11658)
3730
3731 2012-06-30 Eli Zaretskii <eliz@gnu.org>
3732
3733 * w32proc.c (sys_select): Accept and ignore one more argument.
3734
3735 * w32.c (emacs_gnutls_pull): Call select with one more argument.
3736
3737 * sysselect.h [DOS_NT]: Don't include sys/select.h.
3738 (pselect) [!MS_DOS]: Redirect to sys_select.
3739
3740 * sysdep.c: Don't include dos.h and dosfns.h.
3741
3742 * process.c (sys_select):
3743 * msdos.c (sys_select): Accept one more argument and ignore it.
3744
3745 * msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
3746 adapt data types and code to that.
3747
3748 * dosfns.c:
3749 * msdos.c (gettime, settime): Define away the prototypes in dos.h,
3750 which clashes with the gnulib function of the same name.
3751
3752 2012-06-30 Andreas Schwab <schwab@linux-m68k.org>
3753
3754 * font.c (font_style_to_value, font_style_symbolic)
3755 (font_prop_validate_style): Add type checks for values in
3756 font_style_table.
3757
3758 * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
3759 argument.
3760 * character.c, charset.c, menu.c, process.c, window.c: Adjust all
3761 uses.
3762
3763 2012-06-29 Eli Zaretskii <eliz@gnu.org>
3764
3765 * xdisp.c (try_window_id): Undo last change.
3766
3767 * w32.c (getwd): Adjust commentary about startup_dir.
3768 (init_environment): Always call sys_access, even in non-MSVC
3769 builds. Don't chdir to the directory of the Emacs executable.
3770 This undoes code from 1997 which was justified by the need to
3771 "avoid conflicts when removing and renaming directories". But its
3772 downside was that every relative file name was being interpreted
3773 relative to the directory of the Emacs executable, which can never
3774 be TRT. In particular, it broke sys_access when called with
3775 relative file names.
3776 (sys_access): Map GetLastError to errno.
3777
3778 2012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
3779
3780 * window.h (struct window): Change type of 'fringes_outside_margins'
3781 to bitfield. Fix comment. Adjust users accordingly.
3782 (struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
3783 Adjust comment.
3784 * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
3785 to ptrdiff_t.
3786
3787 2012-06-29 Andreas Schwab <schwab@linux-m68k.org>
3788
3789 * gnutls.c (emacs_gnutls_handshake):
3790 Add QUIT to make the loop interruptible.
3791
3792 2012-06-29 Glenn Morris <rgm@gnu.org>
3793
3794 * charset.c (init_charset): Make lack of etc/charsets fatal.
3795
3796 2012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
3797
3798 * editfns.c (region_limit): Fix type mismatch.
3799
3800 2012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
3801
3802 * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
3803 undefined. Convert from xassert to eassert.
3804 * nsmenu.m: Convert from xassert to eassert.
3805 * nsterm.m: Likewise.
3806
3807 2012-06-28 Stefan Monnier <monnier@iro.umontreal.ca>
3808
3809 * editfns.c (region_limit): Clip to narrowing (bug#11770).
3810
3811 2012-06-28 Paul Eggert <eggert@cs.ucla.edu>
3812
3813 Avoid integer overflow on scroll-left and scroll-right.
3814 * window.c (HSCROLL_MAX): New macro.
3815 (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
3816 overflow when requested scroll falls outside ptrdiff_t range.
3817
3818 2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
3819
3820 * window.h (struct window): Change type of 'hscroll',
3821 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
3822 'last_modified' and 'last_overlay_modified' to EMACS_INT.
3823 Adjust users accordingly.
3824 * xdisp.c (try_cursor_movement): Replace type check with eassert.
3825 * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
3826 from EMACS_INT to ptrdiff_t.
3827 (make_window): Omit redundant initialization.
3828
3829 2012-06-28 Juanma Barranquero <lekktu@gmail.com>
3830
3831 * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
3832
3833 2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
3834
3835 * window.h (struct window): Change type of 'use_time' and
3836 'sequence_number' from Lisp_Object to int.
3837 * frame.c (make_frame): Adjust users accordingly.
3838 * print.c (print_object): Likewise.
3839 * window.c (select_window, Fwindow_use_time, make_parent_window)
3840 (make_window): Likewise.
3841
3842 2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
3843
3844 * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
3845 enabled with --enable-checking=[all,glyphs] configure option.
3846 Fix GLYPH_DEBUG usage assuming that it may be undefined,
3847 adjust comments accordingly.
3848 * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
3849 undefined, adjust comments accordingly.
3850 * image.c: Likewise.
3851 * scroll.c: Likewise.
3852 * w32fns.c: Likewise.
3853 * w32term.c: Likewise.
3854 * xdisp.c: Likewise.
3855 * xfaces.c: Likewise.
3856 * xfns.c: Likewise.
3857 * xterm.c: Likewise.
3858
3859 2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
3860
3861 Generalize run-time debugging checks.
3862 * dispextern.h (XASSERTS): Remove.
3863 * fontset.c (xassert): Remove.
3864 Convert from xassert to eassert.
3865 * alloc.c: Convert from xassert to eassert.
3866 * bidi.c: Likewise.
3867 * dispnew.c: Likewise.
3868 * fns.c: Likewise.
3869 * fringe.c: Likewise.
3870 * ftfont.c: Likewise.
3871 * gtkutil.c: Likewise.
3872 * image.c: Likewise.
3873 * keyboard.c: Likewise.
3874 * menu.c: Likewise.
3875 * process.c: Likewise.
3876 * scroll.c: Likewise.
3877 * sound.c: Likewise.
3878 * term.c: Likewise.
3879 * w32console.c: Likewise.
3880 * w32fns.c: Likewise.
3881 * w32term.c: Likewise.
3882 * window.c: Likewise.
3883 * xdisp.c: Likewise.
3884 * xfaces.c: Likewise.
3885 * xfns.c: Likewise.
3886 * xselect.c: Likewise.
3887 * xterm.c: Likewise.
3888
3889 2012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
3890
3891 * fns.c (maybe_resize_hash_table): Output message when growing the
3892 purify-hashtable.
3893
3894 2012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
3895
3896 * alloc.c (allocate_string_data): Remove dead code.
3897 * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
3898 avoid GCC warning about unused macro.
3899
3900 2012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
3901
3902 * alloc.c (allocate_string): Omit intervals initialization.
3903 * alloc.c (make_uninit_multibyte_string): Initialize intervals
3904 as in make_pure_string and make_pure_c_string.
3905
3906 2012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
3907
3908 * alloc.c (allocate_string): Fix last change.
3909
3910 2012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
3911
3912 * alloc.c (allocate_string): Remove two redundant calls
3913 to memset, add explicit initialization where appropriate.
3914
3915 2012-06-27 Glenn Morris <rgm@gnu.org>
3916
3917 * lisp.mk (lisp): Remove paths.elc.
3918
3919 2012-06-27 Chong Yidong <cyd@gnu.org>
3920
3921 * doc.c (Fsubstitute_command_keys): Fix punctuation.
3922
3923 2012-06-26 John Wiegley <johnw@newartisans.com>
3924
3925 * unexmacosx.c (copy_data_segment): Add two section names used
3926 on Mac OS X Lion: __mod_init_func and __mod_term_func.
3927
3928 * alloc.c (mark_memory): Do not check with -faddress-sanitizer
3929 when building with Clang.
3930
3931 2012-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
3932
3933 * eval.c (Fapply): Allow calling it with a single argument.
3934
3935 2012-06-26 Eli Zaretskii <eliz@gnu.org>
3936
3937 * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
3938 _stricmp and _strnicmp.
3939 (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
3940
3941 2012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
3942
3943 * alloc.c (allocate_window): Zero out non-Lisp part of newly
3944 allocated window.
3945 (allocate_process): Likewise for new process.
3946 (allocate_terminal): Change to use offsetof.
3947 (allocate_frame): Likewise.
3948 * frame.c (make_frame): Omit redundant initialization.
3949 * window.c (make_parent_window): Use memset.
3950 (make_window): Omit redundant initialization.
3951 * process.c (make_process): Omit redundant initialization.
3952 * terminal.c (create_terminal): Likewise.
3953
3954 2012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
3955
3956 * term.c (delete_tty): Remove redundant call to memset.
3957
3958 2012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
3959
3960 * alloc.c: Remove build_string.
3961 * lisp.h: Define build_string as static inline. This provides
3962 a better opportunity to optimize away calls to strlen when the
3963 function is called with compile-time constant argument.
3964 * image.c (imagemagick_error): Convert to build_string.
3965 * w32proc.c (sys_spawnve): Likewise.
3966 * xterm.c (x_term_init): Likewise.
3967
3968 2012-06-26 Paul Eggert <eggert@cs.ucla.edu>
3969
3970 Use sprintf return value instead of invoking strlen on result.
3971 In the old days this wasn't portable, since some sprintf
3972 implementations returned char *. But they died out years ago and
3973 Emacs already assumes sprintf returns int.
3974 Similarly for float_to_string.
3975 This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
3976 * ccl.c (ccl_driver):
3977 * character.c (string_escape_byte8):
3978 * data.c (Fnumber_to_string):
3979 * doprnt.c (doprnt):
3980 * print.c (print_object):
3981 * xdisp.c (message_dolog):
3982 * xfns.c (syms_of_xfns):
3983 Use sprintf or float_to_string result to avoid need to call strlen.
3984 * data.c (Fnumber_to_string):
3985 Use make_unibyte_string, since the string must be ASCII.
3986 * lisp.h, print.c (float_to_string): Now returns int length.
3987 * term.c (produce_glyphless_glyph):
3988 Use sprintf result rather than recomputing it.
3989
3990 Clean out last vestiges of the old HAVE_CONFIG_H stuff.
3991 * Makefile.in (ALL_CFLAGS):
3992 * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
3993 * gmalloc.c, regex.c: Include <config.h> unconditionally.
3994
3995 2012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
3996
3997 * dispextern.h (xstrcasecmp): Define to library function
3998 strcasecmp if available.
3999 * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
4000
4001 2012-06-25 Andreas Schwab <schwab@linux-m68k.org>
4002
4003 * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
4004 Avoid comma operator.
4005 * menu.c (push_submenu_start, push_submenu_end)
4006 (push_left_right_boundary, push_menu_pane): Likewise.
4007 * msdos.c (dos_rawgetc): Likewise.
4008
4009 2012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
4010
4011 * xfns.c (xic_create_fontsetname): Remove redundant calls
4012 to memset.
4013
4014 2012-06-25 Paul Eggert <eggert@cs.ucla.edu>
4015
4016 * gtkutil.c (get_utf8_string): Remove redundant assignment.
4017 sprintf already null-terminates its output.
4018
4019 * xfns.c (x_window): Remove redundant cast.
4020
4021 2012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
4022
4023 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
4024 `const char *' to `char *' to avoid compiler warning.
4025
4026 2012-06-24 Paul Eggert <eggert@cs.ucla.edu>
4027
4028 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
4029 instead of truncating it to 63 (admittedly a generous limit).
4030
4031 * process.c: Fix spelling and caps in comments.
4032
4033 2012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
4034
4035 * emacs.c (setpgrp): Remove definition, unused.
4036 * sysdep.c (setpgrp): Remove definition, not used in this file.
4037
4038 2012-06-24 Juanma Barranquero <lekktu@gmail.com>
4039
4040 * makefile.w32-in: Update dependencies.
4041
4042 2012-06-24 Eli Zaretskii <eliz@gnu.org>
4043
4044 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
4045 (SYSTIME_H): Add nt/inc/sys/time.h.
4046
4047 * systime.h [WINDOWSNT]: Include sys/time.h.
4048
4049 * s/ms-w32.h (struct timespec): Definition moved from
4050 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
4051
4052 2012-06-24 Paul Eggert <eggert@cs.ucla.edu>
4053
4054 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
4055 * buffer.h (buffer_slot_type_mismatch):
4056 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
4057 * eval.c (unwind_to_catch):
4058 * image.c (my_png_error, my_error_exit):
4059 * keyboard.c (quit_throw_to_read_char, user_error)
4060 (Fexit_recursive_edit, Fabort_recursive_edit):
4061 * lisp.h (die, args_out_of_range, args_out_of_range_3)
4062 (wrong_type_argument, buffer_overflow, __executable_start)
4063 (memory_full, buffer_memory_full, string_overflow, Fthrow)
4064 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
4065 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
4066 (fatal):
4067 (child_setup) [!DOS_NT]:
4068 * lread.c (end_of_file_error, invalid_syntax):
4069 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
4070 * puresize.h (pure_write_error):
4071 * search.c (matcher_overflow):
4072 * sound.c (sound_perror, alsa_sound_perror):
4073 * sysdep.c, syssignal.h (croak):
4074 * term.c (maybe_fatal, vfatal):
4075 * textprop.c (text_read_only):
4076 * undo.c (user_error):
4077 * unexmacosx.c (unexec_error):
4078 * xterm.c (x_ins_del_lines, x_delete_glyphs):
4079 Use _Noreturn rather than NO_RETURN.
4080 No need for separate decl merely because of _Noreturn.
4081 * sound.c (sound_warning, parse_sound):
4082 Remove unnecessary forward decls.
4083
4084 2012-06-24 Paul Eggert <eggert@cs.ucla.edu>
4085
4086 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
4087 * lisp.h (WAIT_READING_MAX): New macro.
4088 * dispnew.c (Fsleep_for, sit_for):
4089 * keyboard.c (kbd_buffer_get_event):
4090 * process.c (Faccept_process_output):
4091 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
4092 This improves on the previous patch, which introduced a bug
4093 when time_t is unsigned and as wide as intmax_t.
4094 See <http://bugs.gnu.org/9000#51>.
4095
4096 2012-06-23 Eli Zaretskii <eliz@gnu.org>
4097
4098 * dispnew.c (sit_for, Fsleep_for):
4099 * keyboard.c (kbd_buffer_get_event):
4100 * process.c (Faccept_process_output): Avoid compiler warnings when
4101 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
4102
4103 2012-06-23 Juanma Barranquero <lekktu@gmail.com>
4104
4105 * makefile.w32-in: Update dependencies.
4106
4107 * w32.c (ltime): Add return type and declare static.
4108 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
4109
4110 2012-06-23 Paul Eggert <eggert@cs.ucla.edu>
4111
4112 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
4113 Privately reported by Herbert J. Skuhra.
4114 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
4115 All uses changed.
4116 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
4117 not make_lisp_timeval, when the argument is of type EMACS_TIME.
4118
4119 2012-06-23 Eli Zaretskii <eliz@gnu.org>
4120
4121 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
4122 last argument of make_unibyte_string.
4123
4124 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
4125 language ID in the event parameters.
4126
4127 * w32term.c (w32_read_socket): Put the new keyboard codepage into
4128 event.code, not the obscure "character set ID".
4129
4130 2012-06-23 Chong Yidong <cyd@gnu.org>
4131
4132 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
4133
4134 2012-06-23 Eli Zaretskii <eliz@gnu.org>
4135
4136 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
4137 * w32.c (fdutimens): New function.
4138
4139 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
4140
4141 * s/ms-w32.h (pselect): Redirect to sys_select.
4142
4143 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
4144
4145 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
4146 in the logic of incrementing and decrementing the value of
4147 use_relocatable_buffers.
4148
4149 2012-06-23 Paul Eggert <eggert@cs.ucla.edu>
4150
4151 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
4152 Privately reported by Herbert J. Skuhra.
4153 [__FreeBSD__]: Remove "*/" typo after "#include".
4154 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
4155 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
4156 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
4157 Don't assume EMACS_TIME and struct timeval are the same type.
4158
4159 2012-06-22 Paul Eggert <eggert@cs.ucla.edu>
4160
4161 Support higher-resolution time stamps (Bug#9000).
4162 The time stamps are only nanosecond-resolution at the C level,
4163 since that's the best that any real-world system supports now.
4164 But they are picosecond-resolution at the Lisp level, as that's
4165 easy, and leaves room for future OS improvements.
4166
4167 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
4168 (LIBES): Use it.
4169
4170 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
4171 Don't get current time unless it's needed.
4172
4173 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
4174 now provides it if it's absent.
4175 (start_atimer): Port to higher-res time stamps.
4176 Check for time stamp overflow. Don't get current time more
4177 often than is needed.
4178
4179 * buffer.h (struct buffer): Buffer modtime now has high resolution.
4180 Include systime.h, not time.h.
4181 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
4182
4183 * dired.c: Include stat-time.h.
4184 (Ffile-attributes): File times now have higher resolution.
4185
4186 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
4187 (struct image): Timestamp now has higher resolution.
4188
4189 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
4190 has at least microseconds now. All uses removed.
4191 (update_frame, update_single_window, update_window, update_frame_1)
4192 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
4193 (duration_to_sec_usec): Remove; no longer needed.
4194
4195 * editfns.c (time_overflow): Now extern.
4196 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
4197 (float-time, Fformat_time_string, Fcurrent_time_string)
4198 (Fcurrent_time_zone): Accept and generate higher-resolution
4199 time stamps.
4200 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
4201 (decode_time_components, lisp_seconds_argument): New functions.
4202 (make_time): Now static.
4203 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
4204 Report an error if the time is invalid, rather than having the caller
4205 do that.
4206
4207 * fileio.c: Include <stat-time.h>
4208 (Fcopy_file): Copy higher-resolution time stamps.
4209 Prefer to set the time stamp via a file descriptor if that works.
4210 (Fset_file_times, Finsert_file_contents, Fwrite_region)
4211 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
4212 (Fvisited_file_modtime, Fset_visited_file_modtime):
4213 Support higher-resolution time stamps.
4214
4215 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
4216
4217 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
4218
4219 * image.c (prepare_image_for_display, clear_image_cache)
4220 (lookup_image): Port to higer-resolution time stamps.
4221
4222 * keyboard.c (start_polling, bind_polling_period):
4223 Check for time stamp overflow.
4224 (read_char, kbd_buffer_get_event, timer_start_idle)
4225 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
4226 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
4227 Port to higher-resolution time stamps. Do not assume time_t is signed.
4228 (decode_timer): New function. Timers are now vectors of length 9,
4229 not 8, to accommodate the picosecond component.
4230 (timer_check_2): Use it.
4231
4232 * nsterm.m (select_timeout, timeval_subtract): Remove.
4233 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
4234 as they're a bit more accurate and handle overflow better.
4235 (ns_select): Change prototype to be compatible with pselect.
4236 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
4237 * nsterm.h (ns_select): Adjust prototype.
4238
4239 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
4240 us-resolution time stamps.
4241 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
4242
4243 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
4244
4245 * lisp.h (time_overflow): New decl.
4246 (wait_reading_process_output): First arg is now intmax_t, not int,
4247 to accommodate larger waits.
4248
4249 * process.h (struct Lisp_Process.read_output_delay):
4250 Now counts nanoseconds, not microseconds.
4251 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
4252 EMACS_HAS_USECS.
4253 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
4254 (wait_reading_process_output):
4255 Port to ns-resolution time stamps.
4256 (Faccept_process_output, wait_reading_process_output):
4257 Check for time stamp overflow. Do not assume time_t is signed.
4258 (select_wrapper): Remove; we now use pselect.
4259 (Fprocess_attributes): Now generates ns-resolution time stamps.
4260
4261 * sysdep.c: Include utimens.h. Don't include utime.h
4262 or worry about struct utimbuf; gnulib does that for us now.
4263 (gettimeofday): Remove; gnulib provides a substitute.
4264 (make_timeval): New function.
4265 (set_file_times): Now sets ns-resolution time stamps.
4266 New arg FD; all uses changed.
4267 (time_from_jiffies, ltime_from_jiffies, get_up_time)
4268 (system_process_attributes):
4269 Now returns ns-resolution time stamp. All uses changed.
4270 Check for time stamp overflow.
4271
4272 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
4273 provides a substitute now.
4274
4275 * systime.h: Include timespec.h rather than sys/time.h and time.h,
4276 since it guarantees struct timespec.
4277 (EMACS_TIME): Now struct timespec, so that we can support
4278 ns-resolution time stamps.
4279 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
4280 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
4281 (EMACS_USECS): Remove.
4282 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
4283 so multiply the arg by 1000 before storing it.
4284 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
4285 New macros.
4286 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
4287 Port to ns-resolution time stamps.
4288 (EMACS_TIME_NEG_P): Remove; replaced by....
4289 (EMACS_TIME_SIGN): New macro.
4290 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
4291 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
4292 (set_file_times, make_time, lisp_time_argument): Adjust signature.
4293 (make_timeval, make_lisp_time, decode_time_components): New decls.
4294 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
4295 that it mishandled time_t overflow. You can't compare by subtracting!
4296 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
4297 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
4298
4299 * term.c: Include <sys/time.h>.
4300 (timeval_to_Time): New function, for proper overflow wraparound.
4301 (term_mouse_position, term_mouse_click): Use it.
4302
4303 * undo.c (record_first_change): Support higher-resolution time stamps
4304 in the undo buffer.
4305 (Fprimitive_undo): Use them when restoring time stamps.
4306
4307 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
4308 (w32_get_internal_run_time):
4309 Port to higher-resolution Emacs time stamps.
4310 (ltime): Now accepts single 64-bit integer, as that's more convenient
4311 for callers.
4312
4313 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
4314
4315 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
4316 for compatibility with pselect. Support ns-resolution time stamps.
4317
4318 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
4319
4320 * xselect.c (wait_for_property_change, x_get_foreign_selection):
4321 Check for time stamp overflow, and support ns-resolution time stamps.
4322
4323 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
4324 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
4325 (timeval_subtract): Remove; no longer needed.
4326 (XTflash, XTring_bell, x_wait_for_event):
4327 Port to ns-resolution time stamps. Don't assume time_t is signed.
4328
4329 2012-06-22 Chong Yidong <cyd@gnu.org>
4330
4331 * xdisp.c (x_consider_frame_title): Revert last change.
4332
4333 2012-06-22 Eli Zaretskii <eliz@gnu.org>
4334
4335 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
4336 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
4337 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
4338 staticidx goes up to 1597 out of 1600 = 0x640.)
4339
4340 2012-06-20 Paul Eggert <eggert@cs.ucla.edu>
4341
4342 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
4343 Otherwise, the umask might be mistakenly 0 while handling input signals.
4344
4345 2012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
4346
4347 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
4348
4349 2012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
4350
4351 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
4352 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
4353 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
4354 access to `contents' member of Lisp_Vector objects with AREF and ASET
4355 where appropriate.
4356
4357 2012-06-19 Chong Yidong <cyd@gnu.org>
4358
4359 * frame.c (delete_frame): When selecting a frame on a different
4360 text terminal, do not alter the terminal's top-frame.
4361
4362 * xdisp.c (format_mode_line_unwind_data): Record the target
4363 frame's selected window and its terminal's top-frame.
4364 (unwind_format_mode_line): Restore them.
4365 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
4366 Callers changed.
4367 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
4368 since tty frames can be explicitly named.
4369 (prepare_menu_bars): Likewise.
4370
4371 * term.c (Ftty_top_frame): New function.
4372
4373 2012-06-18 Paul Eggert <eggert@cs.ucla.edu>
4374
4375 Port byte-code-meter to modern targets.
4376 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
4377 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
4378 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
4379 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
4380 (METER_1, METER_2): Simplify.
4381
4382 2012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
4383
4384 * data.c (Fdefalias): Return `symbol' (bug#11686).
4385
4386 2012-06-18 Martin Rudalics <rudalics@gmx.at>
4387
4388 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
4389 gets killed during executing of this function (Bug#11665).
4390 Try to always return Qt when the buffer has been actually killed.
4391 (Vkill_buffer_query_functions): In doc-string say that functions
4392 run by this hook should not change the current buffer.
4393
4394 2012-06-18 Paul Eggert <eggert@cs.ucla.edu>
4395
4396 Fix recently-introduced process.c problems found by static checking.
4397 * process.c (write_queue_push, write_queue_pop, send_process):
4398 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
4399 (write_queue_pop): Fix pointer signedness problem.
4400 (send_process): Remove unused local.
4401
4402 2012-06-17 Chong Yidong <cyd@gnu.org>
4403
4404 * xdisp.c (redisplay_internal): No need to redisplay terminal
4405 frames that are not on top.
4406
4407 2012-06-17 Troels Nielsen <bn.troels@gmail.com>
4408
4409 * process.c (make_process): Initialize write_queue.
4410 (write_queue_push, write_queue_pop): New functions.
4411 (send_process): Use them to maintain correct ordering of process
4412 writes (Bug#10815).
4413
4414 2012-06-17 Paul Eggert <eggert@cs.ucla.edu>
4415
4416 * lisp.h (eassert): Assume C89 or later.
4417 This removes the need for CHECK.
4418 (CHECK): Remove. Its comments about always evaluating its
4419 argument were confusing, as 'eassert' typically does not evaluate
4420 its argument.
4421
4422 * coding.c (produce_chars): Use ptrdiff_t, not int.
4423
4424 * xterm.c (x_draw_underwave): Check for integer overflow.
4425 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
4426
4427 2012-06-17 Jan Djärv <jan.h.d@swipnet.se>
4428
4429 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
4430 referenced (Bug#11583).
4431
4432 2012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
4433
4434 Implement wave-style variant of underlining.
4435 * dispextern.h (face_underline_type): New enum.
4436 (face): Add field for underline type.
4437 * nsterm.m (ns_draw_underwave): New function.
4438 (ns_draw_text_decoration): Use it.
4439 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
4440 New functions.
4441 (x_draw_glyph_string): Use them.
4442 * xfaces.c (Qline, Qwave): New Lisp objects.
4443 (check_lface_attrs, merge_face_ref)
4444 (Finternal_set_lisp_face_attribute, realize_x_face):
4445 Handle wave-style underline face attributes.
4446 * xterm.c (x_draw_underwave): New function.
4447 (x_draw_glyph_string): Use it.
4448
4449 2012-06-16 Juanma Barranquero <lekktu@gmail.com>
4450
4451 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
4452 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
4453 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
4454 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
4455 ($(BLD)/w32select.$(O)): Update dependencies.
4456
4457 2012-06-16 Andreas Schwab <schwab@linux-m68k.org>
4458
4459 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
4460 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
4461 * character.c (_fetch_multibyte_char_p): Remove.
4462 * alloc.c: Include "character.h" before "buffer.h".
4463 * bidi.c: Likewise.
4464 * buffer.c: Likewise.
4465 * bytecode.c: Likewise.
4466 * callint.c: Likewise.
4467 * callproc.c: Likewise.
4468 * casefiddle.c: Likewise.
4469 * casetab.c: Likewise.
4470 * category.c: Likewise.
4471 * cmds.c: Likewise.
4472 * coding.c: Likewise.
4473 * composite.c: Likewise.
4474 * dired.c: Likewise.
4475 * dispnew.c: Likewise.
4476 * doc.c: Likewise.
4477 * dosfns.c: Likewise.
4478 * editfns.c: Likewise.
4479 * emacs.c: Likewise.
4480 * fileio.c: Likewise.
4481 * filelock.c: Likewise.
4482 * font.c: Likewise.
4483 * fontset.c: Likewise.
4484 * fringe.c: Likewise.
4485 * indent.c: Likewise.
4486 * insdel.c: Likewise.
4487 * intervals.c: Likewise.
4488 * keyboard.c: Likewise.
4489 * keymap.c: Likewise.
4490 * lread.c: Likewise.
4491 * macros.c: Likewise.
4492 * marker.c: Likewise.
4493 * minibuf.c: Likewise.
4494 * nsfns.m: Likewise.
4495 * nsmenu.m: Likewise.
4496 * print.c: Likewise.
4497 * process.c: Likewise.
4498 * regex.c: Likewise.
4499 * region-cache.c: Likewise.
4500 * search.c: Likewise.
4501 * syntax.c: Likewise.
4502 * term.c: Likewise.
4503 * textprop.c: Likewise.
4504 * undo.c: Likewise.
4505 * unexsol.c: Likewise.
4506 * w16select.c: Likewise.
4507 * w32fns.c: Likewise.
4508 * w32menu.c: Likewise.
4509 * window.c: Likewise.
4510 * xdisp.c: Likewise.
4511 * xfns.c: Likewise.
4512 * xmenu.c: Likewise.
4513 * xml.c: Likewise.
4514 * xselect.c: Likewise.
4515
4516 2012-06-16 Eli Zaretskii <eliz@gnu.org>
4517
4518 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
4519 If all the glyphs of the glyph row came from strings, and we have no
4520 cursor positioning clues, put the cursor on the first glyph of the
4521 row.
4522 (handle_face_prop): Use chunk-relative overlay string index when
4523 indexing into it->string_overlays array. (Bug#11653)
4524 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
4525 the rightmost. (Bug#11720)
4526
4527 2012-06-16 Andreas Schwab <schwab@linux-m68k.org>
4528
4529 * category.h (CHAR_HAS_CATEGORY): Define as inline.
4530 (CATEGORY_MEMBER): Enforce 1/0 value.
4531 * category.c (_temp_category_set): Remove.
4532
4533 2012-06-16 Eli Zaretskii <eliz@gnu.org>
4534
4535 * window.c (Fdelete_other_windows_internal)
4536 (Fdelete_window_internal): Don't access frame's mouse highlight
4537 info of the initial frame. (Bug#11677)
4538
4539 2012-06-14 Paul Eggert <eggert@cs.ucla.edu>
4540
4541 * .gdbinit (xgetint): Fix recently-introduced paren typo.
4542 Assume USE_2_TAGS_FOR_INTS.
4543 (xreload): Adjust $tagmask width to match recent lisp.h change.
4544
4545 Simplify lisp.h in minor ways that should not affect code.
4546 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
4547 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
4548 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
4549 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
4550 (INTTYPEBITS): New macro, for clarity.
4551 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
4552 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
4553 Simplify now that USE_LSB_TAG is always defined.
4554 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
4555 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
4556
4557 2012-06-13 Juanma Barranquero <lekktu@gmail.com>
4558
4559 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
4560
4561 2012-06-13 Glenn Morris <rgm@gnu.org>
4562
4563 * s/bsd-common.h (BSD4_3):
4564 * s/usg5-4-common.h (USG5_4): No longer define; unused.
4565
4566 2012-06-13 Andreas Schwab <schwab@linux-m68k.org>
4567
4568 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
4569 instead of union.
4570 (XLI, XIL): Define.
4571 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
4572 Use them.
4573 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
4574 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
4575 * alloc.c (widen_to_Lisp_Object): Remove.
4576 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
4577 * frame.c (delete_frame): Remove outdated comment.
4578 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
4579 USE_LISP_UNION_TYPE.
4580 (Fw32_unregister_hot_key): Likewise.
4581 (Fw32_toggle_lock_key): Likewise.
4582 * w32menu.c (add_menu_item): Likewise.
4583 (w32_menu_display_help): Use XIL instead of checking
4584 USE_LISP_UNION_TYPE.
4585 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
4586 (init_heap): Likewise.
4587 * w32term.c (w32_read_socket): Update comment.
4588
4589 2012-06-13 Glenn Morris <rgm@gnu.org>
4590
4591 * s/usg5-4-common.h, src/s/unixware.h:
4592 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
4593
4594 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
4595
4596 2012-06-13 Paul Eggert <eggert@cs.ucla.edu>
4597
4598 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
4599 * alloc.c (make_number) [!defined make_number]:
4600 Remove, as lisp.h always defines this now.
4601 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
4602 (roundup_size): Verify that it is a power of 2.
4603 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
4604 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
4605 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
4606 -DUSE_LSB_TAG=0, to override the automatically-selected default.
4607 USE_LSB_TAG now is always defined to be either 0 or 1.
4608 All uses changed.
4609 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
4610 code works fine either way, and efficiency is not a concern here,
4611 as the union type is for debugging, not for production.
4612 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
4613 Use an inline function on all platforms when using the union type,
4614 since this is simpler and 'static inline' can be used portably
4615 within Emacs now.
4616 (LISP_INITIALLY_ZERO): New macro.
4617 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
4618 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
4619
4620 2012-06-12 Glenn Morris <rgm@gnu.org>
4621
4622 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
4623
4624 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
4625
4626 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
4627 Move BROKEN_SIGIO to configure.
4628
4629 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
4630 Move NO_TERMIO to configure.
4631
4632 2012-06-12 Chong Yidong <cyd@gnu.org>
4633
4634 * image.c (imagemagick_load_image): Use MagickFlattenImage if
4635 MagickMergeImageLayers is undefined. Use pixel pusher loop if
4636 MagickExportImagePixels is undefined.
4637
4638 2012-06-12 Paul Eggert <eggert@cs.ucla.edu>
4639
4640 * image.c (imagemagick_load_image): Remove unused label.
4641
4642 2012-06-11 Glenn Morris <rgm@gnu.org>
4643
4644 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
4645 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
4646 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
4647 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
4648
4649 2012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
4650
4651 * alloc.c (make_byte_code): New function.
4652 (Fmake_byte_code): Use it. Don't purify here.
4653 * lread.c (read1): Use it as well to avoid extra allocation.
4654
4655 2012-06-11 Chong Yidong <cyd@gnu.org>
4656
4657 * image.c (imagemagick_load_image): Implement transparency.
4658
4659 2012-06-10 Andreas Schwab <schwab@linux-m68k.org>
4660
4661 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
4662 account for preceding backslashes. (Bug#11663)
4663
4664 2012-06-09 Chong Yidong <cyd@gnu.org>
4665
4666 * term.c: Support italics in capable terminals (Bug#9652).
4667 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
4668 (turn_on_face): Output using TS_enter_italic_mode if available.
4669 Don't handle unused blinking and alt-charset cases.
4670 (turn_off_face): Handle italic case; discard unused tty_blinking_p
4671 and tty_alt_charset_p cases.
4672 (tty_capable_p, init_tty): Support italics.
4673
4674 * termchar.h (struct tty_display_info): Add field for italics.
4675 Remove unused blink field.
4676
4677 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
4678 Handle slant.
4679
4680 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
4681 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
4682 tty_alt_charset_p. Add tty_italic_p.
4683
4684 2012-06-09 Michael Albinus <michael.albinus@gmx.de>
4685
4686 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
4687 dbus_type_is_basic if available.
4688 (xd_extract_signed, xd_extract_unsigned): Rename from
4689 extract_signed and extract_unsigned, respectively. Adapt callers.
4690
4691 2012-06-09 Chong Yidong <cyd@gnu.org>
4692
4693 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
4694
4695 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
4696 case (Bug#9752).
4697
4698 2012-06-08 Paul Eggert <eggert@cs.ucla.edu>
4699
4700 * xdisp.c (vmessage): Treat frame message as multibyte.
4701 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
4702 would generate the diagnostic "Making \302\247 buffer-local while
4703 let-bound!".
4704
4705 2012-06-08 Eli Zaretskii <eliz@gnu.org>
4706
4707 * dispnew.c (showing_window_margins_p): Undo last change, which
4708 was done due to an inadvertent commit.
4709 (adjust_frame_glyphs_for_frame_redisplay): Do call
4710 showing_window_margins_p.
4711
4712 2012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
4713
4714 * eval.c (Fmake_var_non_special): New primitive.
4715 (syms_of_eval): Defsubr it.
4716 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
4717
4718 2012-06-08 Juanma Barranquero <lekktu@gmail.com>
4719
4720 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
4721 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
4722
4723 2012-06-08 Eli Zaretskii <eliz@gnu.org>
4724
4725 * alloc.c (allocate_vectorlike): Fix last change.
4726
4727 2012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
4728
4729 Block-based vector allocation of small vectors.
4730 * lisp.h (struct vectorlike_header): New field `nbytes',
4731 adjust comment accordingly.
4732 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
4733 to denote vector blocks. Adjust users (live_vector_p,
4734 mark_maybe_pointer, valid_lisp_object_p) accordingly.
4735 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
4736 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
4737 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
4738 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
4739 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
4740 (roundup_size): New constant.
4741 (struct vector_block): New data type.
4742 (vector_blocks, vector_free_lists, zero_vector): New variables.
4743 (all_vectors): Rename to `large_vectors'.
4744 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
4745 (sweep_vectors): New functions.
4746 (allocate_vectorlike): Return `zero_vector' as the only vector of
4747 0 items. Allocate new vector from block if vector size is less than
4748 or equal to VBLOCK_BYTES_MAX.
4749 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
4750 (init_alloc_once): Add call to init_vectors.
4751
4752 2012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
4753
4754 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
4755
4756 2012-06-07 Paul Eggert <eggert@cs.ucla.edu>
4757
4758 * doprnt.c (doprnt): Truncate multibyte char correctly.
4759 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
4760 would mishandle a string argument "Xc" if X was a multibyte
4761 character of length 2: it would truncate after X's first byte
4762 rather than including all of X.
4763
4764 2012-06-06 Chong Yidong <cyd@gnu.org>
4765
4766 * buffer.c (word_wrap): Doc fix.
4767
4768 2012-06-04 Paul Eggert <eggert@cs.ucla.edu>
4769
4770 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
4771
4772 2012-06-03 Glenn Morris <rgm@gnu.org>
4773
4774 * xdisp.c (tool-bar-style): Doc fix.
4775
4776 2012-06-03 Ulrich Müller <ulm@gentoo.org>
4777
4778 * Makefile.in (PAXCTL): Define.
4779 (temacs$(EXEEXT)): Disable memory randomization for the temacs
4780 binary via PaX flags if the paxctl utility is available.
4781 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
4782 Restore PaX flags to their default. (Bug#11398)
4783
4784 2012-06-03 Chong Yidong <cyd@gnu.org>
4785
4786 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
4787 buffer (Bug#11226).
4788
4789 2012-06-03 Chong Yidong <cyd@gnu.org>
4790
4791 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
4792 (note_mode_line_or_margin_highlight): If there is no help echo,
4793 use mode-line-default-help-echo. Handle the case where the mouse
4794 position is past the end of the mode line string.
4795
4796 * buffer.c (buffer_local_value_1): New function, split from
4797 Fbuffer_local_value; can return Qunbound.
4798 (Fbuffer_local_value): Use it.
4799 (Vmode_line_format): Docstring tweaks.
4800
4801 2012-06-02 Paul Eggert <eggert@cs.ucla.edu>
4802
4803 * sysdep.c (system_process_attributes): Improve comment.
4804
4805 2012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
4806
4807 * keyboard.c: Export real-this-command to Elisp.
4808 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
4809 and DEFVAR it. Update all users.
4810
4811 2012-06-02 Paul Eggert <eggert@cs.ucla.edu>
4812
4813 * minibuf.c (Fassoc_string): Remove duplicate declaration.
4814
4815 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
4816 Convert pctcpu and pctmem to Lisp float properly.
4817 Let the compiler fold better, as 100.0/0x8000 is exact.
4818
4819 2012-06-02 Andreas Schwab <schwab@linux-m68k.org>
4820
4821 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
4822 cons_block.
4823
4824 2012-06-01 Paul Eggert <eggert@cs.ucla.edu>
4825
4826 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
4827
4828 2012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
4829
4830 For a 'struct window', replace some Lisp_Object fields to
4831 bitfields where appropriate, remove unused fields.
4832 * window.h (struct window): Remove unused 'last_mark_x' and
4833 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
4834 change it's type from Lisp_Object to bitfield.
4835 Change type of 'force_start', 'optional_new_start',
4836 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
4837 fields from Lisp_Object to bitfield. Adjust users accordingly.
4838
4839 2012-05-31 Paul Eggert <eggert@cs.ucla.edu>
4840
4841 Pacify gcc -Wdouble-precision when using Xaw.
4842 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
4843 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
4844 Use 'float' consistently, rather than 'float' in most places
4845 and 'double' in a couple of places.
4846
4847 2012-05-31 Eli Zaretskii <eliz@gnu.org>
4848
4849 * xdisp.c (handle_stop): Detect whether we have overlay strings
4850 loaded by testing it->current.overlay_string_index to be
4851 non-negative, instead of checking whether n_overlay_strings is
4852 positive. (Bug#11587)
4853
4854 2012-05-31 Chong Yidong <cyd@gnu.org>
4855
4856 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
4857
4858 * doc.c (Fsubstitute_command_keys): Doc fix.
4859
4860 2012-05-31 Eli Zaretskii <eliz@gnu.org>
4861
4862 * search.c (search_buffer): Remove calls to
4863 r_alloc_inhibit_buffer_relocation, as it is now called by
4864 maybe_unify_char, which was the cause of relocation of buffer text
4865 in bug#11519.
4866
4867 2012-05-31 Eli Zaretskii <eliz@gnu.org>
4868
4869 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
4870 for the duration of call to load_charset, to avoid problems with
4871 callers of maybe_unify_char that access buffer text through C
4872 pointers.
4873
4874 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
4875 decrement the inhibition flag, instead of just setting or
4876 resetting it.
4877
4878 2012-05-31 Paul Eggert <eggert@cs.ucla.edu>
4879
4880 Remove obsolete '#define static' cruft.
4881 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
4882 This #undef was "temporary" in 2000; it is no longer needed
4883 now that '#define static' has gone away.
4884 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
4885 (gray_bitmap_bits): Remove; no longer needed.
4886 All uses replaced with definiens.
4887 * xterm.c: Include "bitmaps/gray.xbm".
4888
4889 2012-05-30 Paul Eggert <eggert@cs.ucla.edu>
4890
4891 Clean up __executable_start, monstartup when --enable-profiling.
4892 The following changes affect the code only when profiling.
4893 * dispnew.c (__executable_start): Rename from safe_bcopy.
4894 Define only on platforms that need it.
4895 * emacs.c: Include <sys/gmon.h> when profiling.
4896 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
4897 (__executable_start): Remove decl, since lisp.h does it now.
4898 (safe_bcopy): Remove decl; no longer has that name.
4899 (main): Coalesce #if into single bit of code, for simplicity.
4900 Cast pointers to uintptr_t, since standard libraries want integers
4901 and not pointers.
4902 * lisp.h (__executable_start): New decl.
4903
4904 2012-05-31 Glenn Morris <rgm@gnu.org>
4905
4906 * image.c (Fimagemagick_types): Doc fix.
4907
4908 2012-05-30 Jim Meyering <meyering@redhat.com>
4909
4910 * callproc.c (Fcall_process_region): Include directory component
4911 in mkstemp error message (Bug#11586).
4912
4913 2012-05-30 Paul Eggert <eggert@cs.ucla.edu>
4914
4915 * alloc.c, lisp.h (make_pure_vector): Now static.
4916
4917 2012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
4918
4919 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
4920 Move to byte-run.el.
4921 (Fautoload): Do the hash-doc more carefully.
4922 * data.c (Fdefalias): Purify definition, except for keymaps.
4923 (Qdefun): Move from eval.c.
4924 * lisp.h (Qdefun): Remove.
4925 * lread.c (read1): Tiny simplification.
4926
4927 2012-05-29 Troels Nielsen <bn.troels@gmail.com>
4928
4929 Do not create empty overlays with the evaporate property (Bug#9642).
4930 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
4931 Bug#9642, but explicitly check that the buffer the overlay would
4932 be moved to is live and rearrange lines to make sure that errors
4933 will not put the overlay in an inconsistent state.
4934 (Fdelete_overlay): Cosmetics.
4935
4936 2012-05-28 Eli Zaretskii <eliz@gnu.org>
4937
4938 * w32term.c (my_bring_window_to_top): New function.
4939 (x_raise_frame): Use handle returned by DeferWindowPos, which
4940 could be different from the original one.
4941 Call my_bring_window_to_top instead of my_set_foreground_window.
4942 (Bug#11513)
4943
4944 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
4945 by calling BringWindowToTop.
4946
4947 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
4948 (WM_EMACS_END): Increase by one.
4949
4950 2012-05-28 Paul Eggert <eggert@cs.ucla.edu>
4951
4952 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
4953 This avoids undefined behavior that might cause the eassert
4954 to not catch an out-of-range value.
4955
4956 2012-05-28 Juanma Barranquero <lekktu@gmail.com>
4957
4958 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
4959 Update dependencies.
4960
4961 2012-05-27 Eli Zaretskii <eliz@gnu.org>
4962
4963 * bidi.c (bidi_mirror_char): Fix last change.
4964
4965 2012-05-27 Andreas Schwab <schwab@linux-m68k.org>
4966
4967 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
4968 when referring to sectname field in printf format.
4969
4970 2012-05-27 Paul Eggert <eggert@cs.ucla.edu>
4971
4972 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
4973 Only r_alloc_inhibit_buffer_relocation needed to be added;
4974 the others were already declared.
4975
4976 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
4977 before checking whether it's out of range. Put the check inside
4978 eassert. See
4979 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
4980
4981 2012-05-27 Ken Brown <kbrown@cornell.edu>
4982
4983 * callproc.c (Fcall_process): Restore a line that was accidentally
4984 commented out in the 2011-02-13 change (bug#11547).
4985
4986 2012-05-27 Eli Zaretskii <eliz@gnu.org>
4987
4988 * lisp.h [REL_ALLOC]: Add prototypes for external functions
4989 defined on ralloc.c.
4990
4991 * buffer.c [REL_ALLOC]: Remove prototypes of
4992 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
4993 they are now on lisp.h.
4994
4995 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
4996
4997 * search.c (search_buffer): Use it to inhibit relocation of buffer
4998 text while re_search_2 is doing its job, because re_search_2 is
4999 passed C pointers to buffer text. (Bug#11519)
5000
5001 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
5002 Update value to 24.
5003
5004 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
5005 state after an additional call to move_it_in_display_line_to, keep
5006 the values of it->max_ascent and it->max_descent found for the
5007 entire line.
5008 (pos_visible_p): Revert the comparison against bottom_y to what it
5009 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
5010 (Bug#11464)
5011
5012 2012-05-26 Paul Eggert <eggert@cs.ucla.edu>
5013
5014 Fix coding-related core dumps with gcc -ftrapv.
5015 The code was computing A - B, where A and B are pointers, and B is
5016 random garbage. This can lead to core dumps on platforms that
5017 have special pointer registers, and it also leads to core dumps on
5018 x86-64 when compiled with gcc -ftrapv. The fix is to compute
5019 A - B only when B is initialized properly.
5020 * coding.c (coding_set_source, coding_set_destination): Return void.
5021 (coding_change_source, coding_change_destinations): New functions,
5022 with the old behaviors of coding_set_source and coding_set_destination.
5023 All callers that need an offset changed to use these new functions.
5024
5025 2012-05-26 Glenn Morris <rgm@gnu.org>
5026
5027 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
5028
5029 2012-05-26 Eli Zaretskii <eliz@gnu.org>
5030
5031 Extend mouse support on W32 text-mode console.
5032 * xdisp.c (draw_row_with_mouse_face):
5033 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
5034
5035 * w32console.c: Include window.h.
5036 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
5037 New functions.
5038 (initialize_w32_display): Initialize mouse-highlight data.
5039
5040 * w32inevt.c: Include termchar.h and window.h.
5041 (do_mouse_event): Support mouse-autoselect-window. When the mouse
5042 moves, call note_mouse_highlight. If help_echo changed, call
5043 gen_help_event to produce help-echo message in the echo area.
5044 Call clear_mouse_face if mouse_face_hidden is set in the mouse
5045 highlight info.
5046
5047 2012-05-26 Paul Eggert <eggert@cs.ucla.edu>
5048
5049 * lread.c (read1): Simplify slightly to avoid an overflow warning
5050 with GCC 4.7.0 on x86-64.
5051
5052 2012-05-26 Eli Zaretskii <eliz@gnu.org>
5053
5054 * bidi.c (bidi_mirror_char): Revert last change: an int is
5055 definitely wide enough here.
5056
5057 2012-05-25 Paul Eggert <eggert@cs.ucla.edu>
5058
5059 Fix integer width and related bugs (Bug#9874).
5060 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
5061 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
5062 (string_bytes, check_sblock, allocate_string_data):
5063 (compact_small_strings, Fmake_bool_vector, make_string)
5064 (make_unibyte_string, make_multibyte_string)
5065 (make_string_from_bytes, make_specified_string)
5066 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
5067 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
5068 (mark_vectorlike):
5069 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5070 (allocate_pseudovector):
5071 Use int, not EMACS_INT, where int is wide enough.
5072 (inhibit_garbage_collection, Fgarbage_collect):
5073 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5074 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
5075 int might not be wide enough.
5076 (bidi_cache_search, bidi_cache_find, bidi_init_it)
5077 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
5078 (bidi_at_paragraph_end, bidi_find_paragraph_start)
5079 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
5080 (bidi_level_of_next_char, bidi_move_to_visually_next):
5081 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5082 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
5083 (Fkill_buffer, Fset_buffer_major_mode)
5084 (advance_to_char_boundary, Fbuffer_swap_text)
5085 (Fset_buffer_multibyte, overlays_at, overlays_in)
5086 (overlay_touches_p, struct sortvec, record_overlay_string)
5087 (overlay_strings, recenter_overlay_lists)
5088 (adjust_overlays_for_insert, adjust_overlays_for_delete)
5089 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
5090 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
5091 (Foverlay_recenter, last_overlay_modification_hooks_used)
5092 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
5093 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5094 (validate_region): Omit unnecessary test for b <= e,
5095 since that's guaranteed by the previous test.
5096 (adjust_overlays_for_delete): Avoid pos + length overflow.
5097 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
5098 (report_overlay_modification):
5099 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5100 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
5101 Omit pointer cast, which isn't needed anyway, and doesn't work
5102 after the EMACS_INT -> ptrdiff_t change.
5103 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
5104 * buffer.h: Adjust decls to match defn changes elsewhere.
5105 (struct buffer_text, struct buffer):
5106 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5107 Use EMACS_INT, not int, where int might not be wide enough.
5108 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
5109 not int, to avoid needless 32-bit limit on 64-bit hosts.
5110 (exec_byte_code): Use tighter memory-full test, one that checks
5111 for alloca overflow. Don't compute the address of the object just
5112 before an array, as that's not portable. Use EMACS_INT, not
5113 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
5114 * callint.c (Fcall_interactively):
5115 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5116 * callproc.c (call_process_kill, Fcall_process):
5117 Don't assume pid_t fits into an Emacs fixnum.
5118 (call_process_cleanup, Fcall_process, child_setup):
5119 Don't assume pid_t fits into int.
5120 (call_process_cleanup, Fcall_process, delete_temp_file)
5121 (Fcall_process_region):
5122 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5123 (Fcall_process): Simplify handling of volatile integers.
5124 Use int, not EMACS_INT, where int will do.
5125 * casefiddle.c (casify_object, casify_region, operate_on_word)
5126 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
5127 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5128 (casify_object): Avoid integer overflow when overallocating buffer.
5129 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
5130 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
5131 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
5132 * category.h (CATEGORYP): Don't assume arg is nonnegative.
5133 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
5134 integers are now checked earlier. All uses replaced with XINT.
5135 (ccl_driver):
5136 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5137 For CCL_MapSingle, check that content and value are in int range.
5138 (ccl_driver, Fregister_code_conversion_map):
5139 Check that Vcode_version_map_vector is a vector.
5140 (resolve_symbol_ccl_program): Check that vector header is in range.
5141 Always copy the vector, so that we can check its contents reliably
5142 now rather than having to recheck each instruction as it's being
5143 executed. Check that vector words fit in 'int'.
5144 (ccl_get_compiled_code, Fregister_ccl_program)
5145 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
5146 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
5147 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
5148 contents are in range.
5149 (Fccl_execute_on_string): Check that status is in range.
5150 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
5151 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
5152 Accept and return EMACS_INT, not int, because callers can pass values
5153 out of 'int' range.
5154 (c_string_width, strwidth, lisp_string_width, chars_in_text)
5155 (multibyte_chars_in_text, parse_str_as_multibyte)
5156 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
5157 (str_as_unibyte, str_to_unibyte, string_count_byte8)
5158 (string_escape_byte8, Fget_byte):
5159 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5160 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
5161 avoid mishandling large integers.
5162 * character.h: Adjust decls to match defn changes elsewhere.
5163 * charset.c (load_charset_map_from_file, find_charsets_in_text)
5164 (Ffind_charset_region):
5165 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5166 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
5167 (load_charset_map_from_vector, Fdefine_charset_internal):
5168 Don't assume fixnum fits in int.
5169 (load_charset_map_from_vector, Fmap_charset_chars):
5170 Remove now-unnecessary CHECK_NATNUMs.
5171 (Fdefine_charset_internal): Check ranges here, more carefully.
5172 Don't rely on undefined behavior with signed left shift overflow.
5173 Don't assume unsigned int fits into fixnum, or that fixnum fits
5174 into unsigned int. Don't require max_code to be a valid fixnum;
5175 that's not true for gb10830 4-byte on a 32-bit host. Allow
5176 invalid_code to be a cons, for the same reason. Require code_offset
5177 to be a character. Avoid int overflow if max_char is close
5178 to INT_MAX.
5179 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
5180 this is intended anyway and avoids some undefined behavior.
5181 (load_charset_map): Pass unsigned, not int, as 2nd arg of
5182 INDEX_TO_CODE_POINT, as that's what it expects.
5183 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
5184 * charset.h (DECODE_CHAR): Return int, not unsigned;
5185 this is what was intended anyway, and it avoids undefined behavior.
5186 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
5187 integer-overflow issues.
5188 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
5189 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
5190 where the argument is EMACS_INT, and this behavior is not intended.
5191 * chartab.c (Fmake_char_table, Fset_char_table_range)
5192 (uniprop_get_decoder, uniprop_get_encoder):
5193 Don't assume fixnum fits in int.
5194 * cmds.c (move_point): New function, that does the gist of
5195 Fforward_char and Fbackward_char, but does so while checking
5196 for integer overflow more accurately.
5197 (Fforward_char, Fbackward_char): Use it.
5198 (Fforward_line, Fend_of_line, internal_self_insert)
5199 (internal_self_insert):
5200 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5201 Fix a FIXME, by checking for integer overflow when calculating
5202 target_clm and actual_clm.
5203 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
5204 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
5205 (ASSURE_DESTINATION, coding_alloc_by_realloc)
5206 (coding_alloc_by_making_gap, alloc_destination)
5207 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
5208 (encode_coding_utf_16, detect_coding_emacs_mule)
5209 (decode_coding_emacs_mule, encode_coding_emacs_mule)
5210 (detect_coding_iso_2022, decode_coding_iso_2022)
5211 (encode_invocation_designation, encode_designation_at_bol)
5212 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
5213 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
5214 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
5215 (encode_coding_ccl, encode_coding_raw_text)
5216 (detect_coding_charset, decode_coding_charset)
5217 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
5218 (produce_composition, produce_charset, produce_annotation)
5219 (decode_coding, handle_composition_annotation)
5220 (handle_charset_annotation, consume_chars, decode_coding_gap)
5221 (decode_coding_object, encode_coding_object, detect_coding_system)
5222 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
5223 (code_convert_region, code_convert_string)
5224 (Fdefine_coding_system_internal)
5225 (coding_set_source, coding_set_destination):
5226 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5227 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
5228 (Fdefine_coding_system_internal):
5229 Don't assume fixnums fit in int.
5230 (decode_coding_gap, decode_coding_object, encode_coding_object)
5231 (Fread_coding_system, Fdetect_coding_region)
5232 (Funencodable_char_position, Fcheck_coding_systems_region)
5233 (get_translation, handle_composition_annotation, consume_chars):
5234 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5235 (consume_chars): Rewrite to not calculate an address outside buffer.
5236 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
5237 Don't access memory outside of the args array.
5238 (Fdefine_coding_system_internal): Check for charset-id overflow.
5239 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
5240 result of ENCODE_CHAR.
5241 * coding.h: Adjust decls to match defn changes elsewhere.
5242 (struct coding_system):
5243 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5244 * composite.c (get_composition_id, find_composition)
5245 (run_composition_function, update_compositions)
5246 (compose_text, composition_gstring_put_cache)
5247 (composition_gstring_p, composition_gstring_width)
5248 (fill_gstring_header, fill_gstring_body, autocmp_chars)
5249 (composition_compute_stop_pos, composition_reseat_it)
5250 (composition_update_it, struct position_record)
5251 (find_automatic_composition, composition_adjust_point)
5252 (Fcomposition_get_gstring, Ffind_composition_internal):
5253 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5254 (update_compositions):
5255 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5256 * composite.h: Adjust decls to match defn changes elsewhere.
5257 (struct composition):
5258 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5259 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
5260 Do not attempt to compute the address of the object just before a
5261 buffer; this is not portable.
5262 (Faref, Faset):
5263 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5264 (Faset): Use int, not EMACS_INT, where int is wide enough.
5265 (Fstring_to_number): Don't assume fixnums fit in int.
5266 (Frem): Don't assume arg is nonnegative.
5267 * dbusbind.c (xd_append_arg): Check for integers out of range.
5268 (Fdbus_call_method): Don't overflow the timeout int.
5269 (extract_signed, extract_unsigned): New functions.
5270 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
5271 (xd_get_connection_references): Return ptrdiff_t, not int.
5272 All uses changed.
5273 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
5274 (xd_read_message_1):
5275 Use int, not unsigned, where the dbus API uses int.
5276 (Fdbus_message_internal): Don't overflow mtype.
5277 (syms_of_dbusbind): Allocate right-sized buffer for integers.
5278 * dired.c (directory_files_internal, file_name_completion, scmp)
5279 (file_name_completion_stat):
5280 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5281 (file_name_completion): Don't overflow matchcount.
5282 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
5283 * dispextern.h: Adjust decls to match defn changes elsewhere.
5284 (struct text_pos, struct glyph, struct bidi_saved_info)
5285 (struct bidi_string_data, struct bidi_it, struct composition_it)
5286 (struct it):
5287 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5288 (struct display_pos, struct composition_it, struct it):
5289 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5290 * dispnew.c (increment_matrix_positions)
5291 (increment_row_positions, mode_line_string)
5292 (marginal_area_string):
5293 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5294 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
5295 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5296 (duration_to_sec_usec): New function, to check for overflow better.
5297 (Fsleep_for, sit_for): Use it.
5298 * doc.c (get_doc_string, store_function_docstring):
5299 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5300 (get_doc_string, Fsnarf_documentation):
5301 Use int, not EMACS_INT, where int is wide enough.
5302 (get_doc_string):
5303 Use SAFE_ALLOCA, not alloca.
5304 Check for overflow when converting EMACS_INT to off_t.
5305 * doprnt.c (doprnt):
5306 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5307 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
5308 Don't assume uid_t fits into fixnum.
5309 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
5310 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
5311 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
5312 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
5313 (general_insert_function)
5314 (Finsert_char, make_buffer_string, make_buffer_string_both)
5315 (update_buffer_properties, Fbuffer_substring)
5316 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
5317 (Fsubst_char_in_region, check_translation)
5318 (Ftranslate_region_internal, save_restriction_restore, Fformat)
5319 (transpose_markers, Ftranspose_regions):
5320 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5321 (clip_to_bounds): Move to lisp.h as an inline function).
5322 (Fconstrain_to_field): Don't assume integers are nonnegative.
5323 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
5324 (Fsubst_char_in_region, Fsave_restriction):
5325 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5326 (Femacs_pid): Don't assume pid_t fits into fixnum.
5327 (lo_time): Use int, not EMACS_INT, when int suffices.
5328 (lisp_time_argument): Check for usec out of range.
5329 (Fencode_time): Don't assume fixnum fits in int.
5330 (Fuser_login_name, Fuser_full_name): Signal an error
5331 if a uid argument is out of range, rather than relying on
5332 undefined behavior.
5333 (Fformat_time_string): Remove now-unnecessary check.
5334 lisp_time_argument checks for out-of-range usec now.
5335 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
5336 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
5337 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
5338 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
5339 (init_cmdargs, Fdump_emacs):
5340 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5341 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
5342 the bottom (typically) 32 bits of the fixnum.
5343 * eval.c (specpdl_size, call_debugger):
5344 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5345 (when_entered_debugger, Fbacktrace_debug):
5346 Don't assume fixnum can fit in int.
5347 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
5348 the object just before a buffer; this is not portable.
5349 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
5350 (grow_specpdl, unbind_to):
5351 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5352 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
5353 (grow_specpdl): Simplify allocation by using xpalloc.
5354 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
5355 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
5356 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
5357 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5358 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
5359 (a_write, e_write):
5360 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5361 (Fcopy_file, non_regular_nbytes, read_non_regular)
5362 (Finsert_file_contents):
5363 Use int, not EMACS_INT, where int is wide enough.
5364 (READ_BUF_SIZE): Verify that it fits in int.
5365 (Finsert_file_contents): Check that counts are in proper range,
5366 rather than assuming fixnums fit into ptrdiff_t etc.
5367 Don't assume fixnums fit into int.
5368 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
5369 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
5370 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
5371 (string_char_to_byte, string_byte_to_char)
5372 (string_make_multibyte, string_to_multibyte)
5373 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
5374 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
5375 (substring_both, Fdelete, internal_equal, Ffillarray)
5376 (Fclear_string, mapcar1)
5377 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
5378 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
5379 (larger_vector, make_hash_table, maybe_resize_hash_table)
5380 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
5381 (Fmaphash, secure_hash):
5382 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5383 (concat): Check for string index and length overflow.
5384 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
5385 (Frequire):
5386 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5387 (larger_vector): New API (vec, incr_min, size_max) replaces old
5388 one (vec, new_size, init). This catches size overflow.
5389 INIT was removed because it was always Qnil.
5390 All callers changed.
5391 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
5392 the upper bound on a hash table index size.
5393 (make_hash_table, maybe_resize_hash_table): Use it.
5394 (secure_hash): Computer start_byte and end_byte only after
5395 they're known to be in ptrdiff_t range.
5396 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
5397 (Ffont_get_glyphs, Ffont_at):
5398 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5399 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
5400 (Flist_fonts, Fopen_font):
5401 Don't assume fixnum can fit in int.
5402 (check_gstring): Don't assume index can fit in int.
5403 (font_match_p): Check that fixnum is a character, not a nonnegative
5404 fixnum, since the later code needs to stuff it into an int.
5405 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
5406 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
5407 conversion overflow issues.
5408 (Fopen_font): Check for integer out of range.
5409 (Ffont_get_glyphs): Don't assume index can fit in int.
5410 * font.h: Adjust decls to match defn changes elsewhere.
5411 * fontset.c (reorder_font_vector): Redo score calculation to avoid
5412 integer overflow.
5413 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
5414 printmax_t, where ptrdiff_t is wide enough.
5415 (Finternal_char_font):
5416 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5417 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
5418 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
5419 (Fset_frame_position, x_set_frame_parameters)
5420 (x_set_line_spacing, x_set_border_width)
5421 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
5422 Check that fixnums are in proper range for system types.
5423 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
5424 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5425 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
5426 Use SAFE_ALLOCA_LISP, not alloca.
5427 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
5428 intptr_t is wide enough.
5429 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
5430 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
5431 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
5432 Check for fixnum out of range.
5433 * ftfont.c (ftfont_list): Don't assume index fits in int.
5434 Check that fixnums are in proper range for system types.
5435 (ftfont_shape_by_flt):
5436 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5437 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
5438 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5439 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
5440 Check that fixnums are in proper range for system types.
5441 * gnutls.h: Adjust decls to match defn changes elsewhere.
5442 * gtkutil.c (xg_dialog_run):
5443 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5444 (update_frame_tool_bar):
5445 Check that fixnums are in proper range for system types.
5446 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
5447 (lookup_image): Check that fixnums are in range for system types.
5448 * indent.c (last_known_column, last_known_column_point):
5449 (current_column_bol_cache):
5450 (skip_invisible, current_column, check_display_width):
5451 (check_display_width, scan_for_column, current_column_1)
5452 (Findent_to, Fcurrent_indentation, position_indentation)
5453 (indented_beyond_p, Fmove_to_column, compute_motion):
5454 (Fcompute_motion, Fvertical_motion):
5455 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5456 (last_known_column_modified): Use EMACS_INT, not int.
5457 (check_display_width):
5458 (Fcompute_motion):
5459 Check that fixnums and floats are in proper range for system types.
5460 (compute_motion): Don't assume index or fixnum fits in int.
5461 (compute_motion, Fcompute_motion):
5462 Use int, not EMACS_INT, when it is wide enough.
5463 (vmotion): Omit local var start_hpos that is always 0; that way
5464 we don't need to worry about overflow in expressions involving it.
5465 * indent.h: Adjust decls to match defn changes elsewhere.
5466 (struct position):
5467 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5468 Use int, not EMACS_INT, where int is wide enough.
5469 Remove unused members ovstring_chars_done and tab_offset;
5470 all uses removed.
5471 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
5472 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
5473 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
5474 (make_gap, copy_text, insert, insert_and_inherit)
5475 (insert_before_markers, insert_before_markers_and_inherit)
5476 (insert_1, count_combining_before, count_combining_after)
5477 (insert_1_both, insert_from_string)
5478 (insert_from_string_before_markers, insert_from_string_1)
5479 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
5480 (adjust_after_replace, adjust_after_insert, replace_range)
5481 (replace_range_2, del_range, del_range_1, del_range_byte)
5482 (del_range_both, del_range_2, modify_region)
5483 (prepare_to_modify_buffer, signal_before_change)
5484 (signal_after_change, Fcombine_after_change_execute):
5485 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5486 * intervals.c (traverse_intervals, rotate_right, rotate_left)
5487 (balance_an_interval, split_interval_right, split_interval_left)
5488 (find_interval, next_interval, update_interval)
5489 (adjust_intervals_for_insertion, delete_node, delete_interval)
5490 (interval_deletion_adjustment, adjust_intervals_for_deletion)
5491 (static_offset_intervals, offset_intervals)
5492 (merge_interval_right, merge_interval_left, make_new_interval)
5493 (graft_intervals_into_buffer, temp_set_point_both)
5494 (temp_set_point, set_point, adjust_for_invis_intang)
5495 (set_point_both, move_if_not_intangible, get_property_and_range)
5496 (get_local_map, copy_intervals, copy_intervals_to_string)
5497 (compare_string_intervals, set_intervals_multibyte_1):
5498 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5499 * intervals.h: Adjust decls to match defn changes elsewhere.
5500 (struct interval):
5501 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5502 * keyboard.c (this_command_key_count, this_single_command_key_start)
5503 (before_command_key_count, before_command_echo_length, echo_now)
5504 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
5505 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
5506 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
5507 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
5508 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5509 (last_non_minibuf_size, last_point_position, echo_truncate)
5510 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
5511 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
5512 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
5513 (stuff_buffered_input):
5514 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5515 (last_auto_save, command_loop_1, read_char):
5516 Use EMACS_INT, not int, to avoid integer overflow.
5517 (record_char): Avoid overflow in total_keys computation.
5518 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
5519 * keyboard.h: Adjust decls to match defn changes elsewhere.
5520 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
5521 (Fkey_description, Fdescribe_vector, Flookup_key):
5522 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5523 (click_position): New function, to check that positions are in range.
5524 (Fcurrent_active_maps):
5525 (describe_command):
5526 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5527 (Faccessible_keymaps, Fkey_description):
5528 (preferred_sequence_p):
5529 Don't assume fixnum can fit into int.
5530 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
5531 Check for integer overflow in size calculations.
5532 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
5533 avoid mishandling large integers.
5534 * lisp.h: Adjust decls to match defn changes elsewhere.
5535 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
5536 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
5537 (struct Lisp_Marker):
5538 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5539 (clip_to_bounds): Now an inline function, moved here from editfns.c.
5540 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
5541 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
5542 All callers changed.
5543 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
5544 Assume the arg has valid form, since it always does.
5545 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
5546 unsigned integer system type.
5547 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
5548 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
5549 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5550 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
5551 (duration_to_sec_usec): New decl.
5552 * lread.c (read_from_string_index, read_from_string_index_byte)
5553 (read_from_string_limit, readchar, unreadchar, openp)
5554 (read_internal_start, read1, oblookup):
5555 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5556 (Fload, readevalloop, Feval_buffer, Feval_region):
5557 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5558 (openp): Check for out-of-range argument to 'access'.
5559 (read1): Use int, not EMACS_INT, where int is wide enough.
5560 Don't assume fixnum fits into int.
5561 Fix off-by-one error that can read outside a buffer.
5562 (read_filtered_event): Use duration_to_sec_usec
5563 to do proper overflow checking on durations.
5564 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
5565 in size calculation.
5566 (Fexecute_kbd_macro):
5567 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5568 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
5569 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
5570 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
5571 (set_marker_both, set_marker_restricted_both, marker_position)
5572 (marker_byte_position, Fbuffer_has_markers_at):
5573 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5574 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
5575 * menu.c (ensure_menu_items): Rename from grow_menu_items.
5576 It now merely ensures that the menu is large enough, without
5577 necessarily growing it, as this avoids some integer overflow issues.
5578 All callers changed.
5579 (keymap_panes, parse_single_submenu, Fx_popup_menu):
5580 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5581 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
5582 Use SAFE_ALLOCA_LISP, not alloca.
5583 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
5584 to EMACS_INT. Check that fixnums are in proper range for system types.
5585 * minibuf.c (minibuf_prompt_width, string_to_object)
5586 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
5587 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
5588 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5589 (get_minibuffer, read_minibuf_unwind):
5590 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5591 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
5592 this simplifies overflow checking. All callers changed.
5593 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
5594 (Ftest_completion):
5595 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5596 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
5597 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
5598 Check that fixnums are in proper range for system types.
5599 (Fx_create_frame, Fx_show_tip):
5600 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5601 * nsfont.m (ns_findfonts, nsfont_list_family):
5602 Don't assume fixnum fits in long.
5603 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
5604 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5605 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
5606 wide enough.
5607 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
5608 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5609 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
5610 (PRINTDECLARE, PRINTPREPARE):
5611 (strout, print_string):
5612 (print, print_preprocess, print_check_string_charset_prop)
5613 (print_object):
5614 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5615 (PRINTDECLARE):
5616 (temp_output_buffer_setup, Fprin1_to_string, print_object):
5617 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5618 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
5619 (printchar, strout): Use xpalloc to catch size calculation overflow.
5620 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
5621 (print_error_message): Use SAFE_ALLOCA, not alloca.
5622 (print_object): Use int, not EMACS_INT, where int is wide enough.
5623 (print_depth, new_backquote_output, print_number_index):
5624 Use ptrdiff_t, not int, where int might not be wide enough.
5625 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
5626 (Fset_process_window_size, Fformat_network_address)
5627 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
5628 (sigchld_handler):
5629 Check that fixnums are in proper range for system types.
5630 (Fsignal_process): Simplify by avoiding a goto.
5631 Check for process-ids out of pid_t range rather than relying on
5632 undefined behavior.
5633 (process_tick, update_tick): Use EMACS_INT, not int.
5634 (Fformat_network_address, read_process_output, send_process)
5635 (Fprocess_send_region, status_notify):
5636 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5637 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
5638 (wait_reading_process_output, read_process_output, exec_sentinel):
5639 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5640 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
5641 (Faccept_process_output): Use duration_to_sec_usec to do proper
5642 overflow checking on durations.
5643 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
5644 Don't assume pid_t fits in int.
5645 * process.h (struct Lisp_Process): Members tick and update_tick
5646 are now of type EMACS_INT, not int.
5647 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
5648 configured --with-wide-int.
5649 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
5650 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
5651 * search.c (looking_at_1, string_match_1):
5652 (fast_string_match, fast_c_string_match_ignore_case)
5653 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
5654 (scan_newline, find_before_next_newline, search_command)
5655 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
5656 (set_search_regs, wordify):
5657 (Freplace_match):
5658 (Fmatch_data):
5659 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5660 (string_match_1, search_buffer, set_search_regs):
5661 (Fmatch_data):
5662 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5663 (wordify): Check for overflow in size calculation.
5664 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
5665 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
5666 Check that fixnums are in proper range for system types.
5667 * sound.c (struct sound_device)
5668 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
5669 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5670 (Fplay_sound_internal):
5671 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5672 * syntax.c (struct lisp_parse_state, find_start_modiff)
5673 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
5674 (Fparse_partial_sexp):
5675 Don't assume fixnums can fit in int.
5676 (struct lisp_parse_state, find_start_pos, find_start_value)
5677 (find_start_value_byte, find_start_begv)
5678 (update_syntax_table, char_quoted, dec_bytepos)
5679 (find_defun_start, prev_char_comend_first, back_comment):
5680 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
5681 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
5682 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5683 (Finternal_describe_syntax_value): Check that match_lisp is a
5684 character, not an integer, since the code stuffs it into int.
5685 (scan_words, scan_sexps_forward):
5686 Check that fixnums are in proper range for system types.
5687 (Fforward_word):
5688 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5689 (scan_sexps_forward):
5690 Use CHARACTERP, not INTEGERP, since the value must fit into int.
5691 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
5692 * syntax.h: Adjust decls to match defn changes elsewhere.
5693 (struct gl_state_s):
5694 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5695 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
5696 MOST_POSITIVE_FIXNUM.
5697 * sysdep.c (wait_for_termination_1, wait_for_termination)
5698 (interruptible_wait_for_termination, mkdir):
5699 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
5700 (emacs_read, emacs_write):
5701 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5702 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
5703 and double all fit in int.
5704 * term.c (set_tty_color_mode):
5705 Check that fixnums are in proper range for system types.
5706 * termhooks.h (struct input_event):
5707 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5708 * textprop.c (validate_interval_range, interval_of)
5709 (Fadd_text_properties, set_text_properties_1)
5710 (Fremove_text_properties, Fremove_list_of_text_properties)
5711 (Ftext_property_any, Ftext_property_not_all)
5712 (copy_text_properties, text_property_list, extend_property_ranges)
5713 (verify_interval_modification):
5714 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5715 (Fnext_single_char_property_change)
5716 (Fprevious_single_char_property_change):
5717 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5718 (copy_text_properties):
5719 Check for integer overflow in index calculation.
5720 * undo.c (last_boundary_position, record_point, record_insert)
5721 (record_delete, record_marker_adjustment, record_change)
5722 (record_property_change):
5723 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5724 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
5725 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5726 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
5727 (Fx_hide_tip, Fx_file_dialog):
5728 * w32menu.c (set_frame_menubar):
5729 Use ptrdiff_t, not int, for consistency with rest of code.
5730 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
5731 (select_window, Fdelete_other_windows_internal)
5732 (window_scroll_pixel_based, window_scroll_line_based)
5733 (Frecenter, Fset_window_configuration):
5734 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5735 (Fset_window_hscroll, run_window_configuration_change_hook)
5736 (set_window_buffer, temp_output_buffer_show, scroll_command)
5737 (Fscroll_other_window, Frecenter):
5738 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5739 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
5740 Don't assume fixnum fits in int.
5741 (Fset_window_scroll_bars):
5742 Check that fixnums are in proper range for system types.
5743 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
5744 (string_pos, c_string_pos, number_of_chars, init_iterator)
5745 (in_ellipses_for_invisible_text_p, init_from_display_pos)
5746 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
5747 (compute_display_string_end, handle_face_prop)
5748 (face_before_or_after_it_pos, handle_invisible_prop)
5749 (handle_display_prop, handle_display_spec, handle_single_display_spec)
5750 (display_prop_intangible_p, string_buffer_position_lim)
5751 (string_buffer_position, handle_composition_prop, load_overlay_strings)
5752 (get_overlay_strings_1, get_overlay_strings)
5753 (iterate_out_of_display_property, forward_to_next_line_start)
5754 (back_to_previous_visible_line_start, reseat, reseat_to_string)
5755 (get_next_display_element, set_iterator_to_next)
5756 (get_visually_first_element, compute_stop_pos_backwards)
5757 (handle_stop_backwards, next_element_from_buffer)
5758 (move_it_in_display_line_to, move_it_in_display_line)
5759 (move_it_to, move_it_vertically_backward, move_it_by_lines)
5760 (add_to_log, message_dolog, message_log_check_duplicate)
5761 (message2, message2_nolog, message3, message3_nolog
5762 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
5763 (current_message_1, truncate_echo_area, truncate_message_1)
5764 (set_message, set_message_1, store_mode_line_noprop)
5765 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
5766 (text_outside_line_unchanged_p, check_point_in_composition)
5767 (reconsider_clip_changes)
5768 (redisplay_internal, set_cursor_from_row, try_scrolling)
5769 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
5770 (redisplay_window, find_last_unchanged_at_beg_row)
5771 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
5772 (trailing_whitespace_p, find_row_edges, display_line)
5773 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
5774 (display_mode_element, store_mode_line_string)
5775 (pint2str, pint2hrstr, decode_mode_spec)
5776 (display_count_lines, display_string, draw_glyphs)
5777 (x_produce_glyphs, x_insert_glyphs)
5778 (rows_from_pos_range, mouse_face_from_buffer_pos)
5779 (fast_find_string_pos, mouse_face_from_string_pos)
5780 (note_mode_line_or_margin_highlight, note_mouse_highlight):
5781 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5782 (safe_call, init_from_display_pos, handle_fontified_prop)
5783 (handle_single_display_spec, load_overlay_strings)
5784 (with_echo_area_buffer, setup_echo_area_for_printing)
5785 (display_echo_area, echo_area_display)
5786 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
5787 (update_tool_bar, hscroll_window_tree, redisplay_internal)
5788 (redisplay_window, dump_glyph_row, display_mode_line)
5789 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
5790 (handle_display_spec, display_prop_string_p):
5791 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5792 (handle_single_display_spec, build_desired_tool_bar_string)
5793 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
5794 (get_specified_cursor_type):
5795 Check that fixnums are in proper range for system types.
5796 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
5797 (Flookup_image_map):
5798 Don't assume fixnums fit in int.
5799 (compare_overlay_entries):
5800 Avoid mishandling comparisons due to subtraction overflow.
5801 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
5802 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
5803 (handle_tool_bar_click):
5804 Use int, not unsigned, since we prefer signed and the signedness
5805 doesn't matter here.
5806 (get_next_display_element, next_element_from_display_vector):
5807 Use int, not EMACS_INT, when int is wide enough.
5808 (start_hourglass): Use duration_to_sec_usec to do proper
5809 overflow checking on durations.
5810 * xfaces.c (Fbitmap_spec_p):
5811 Check that fixnums are in proper range for system types.
5812 (compare_fonts_by_sort_order):
5813 Avoid mishandling comparisons due to subtraction overflow.
5814 (Fx_family_fonts, realize_basic_faces):
5815 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5816 (Fx_family_fonts):
5817 Don't assume fixnum fits in int.
5818 Use SAFE_ALLOCA_LISP, not alloca.
5819 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
5820 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
5821 (face_at_buffer_position, face_for_overlay_string)
5822 (face_at_string_position):
5823 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5824 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
5825 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
5826 (Fx_show_tip):
5827 Check that fixnums are in proper range for system types.
5828 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
5829 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
5830 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5831 (Fx_change_window_property): Don't assume fixnums fit in int.
5832 * xfont.c (xfont_chars_supported):
5833 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5834 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
5835 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
5836 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5837 * xml.c (parse_region):
5838 * xrdb.c (magic_file_p):
5839 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5840 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
5841 (x_get_local_selection, x_reply_selection_request)
5842 (x_handle_selection_request, wait_for_property_change):
5843 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5844 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
5845 short is wide enough.
5846 (x_send_client_event): Don't assume fixnum fits in int.
5847 * xterm.c (x_x_to_emacs_modifiers):
5848 Don't assume EMACS_INT overflows nicely into int.
5849 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
5850 may come from Lisp.
5851 (handle_one_xevent): NATNUMP can eval its arg twice.
5852 (x_connection_closed):
5853 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5854 * xterm.h: Adjust decls to match defn changes elsewhere.
5855 (struct scroll_bar): Use struct vectorlike_header
5856 rather than rolling our own approximation.
5857 (SCROLL_BAR_VEC_SIZE): Remove; not used.
5858
5859 2012-05-25 Glenn Morris <rgm@gnu.org>
5860
5861 * lisp.mk (lisp): Update for more files being compiled now.
5862
5863 2012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
5864
5865 * lread.c: Remove `read_pure' which makes no difference.
5866 (read_pure): Remove var.
5867 (unreadpure): Remove function.
5868 (readevalloop): Don't call read_list with -1 flag.
5869 (read1, read_vector): Don't test read_pure any more.
5870 (read_list): Simplify.
5871
5872 * fileio.c, character.h: Minor style tweaks.
5873
5874 2012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
5875
5876 * window.h (clip_changed): Remove useless declaration.
5877
5878 2012-05-22 Juanma Barranquero <lekktu@gmail.com>
5879
5880 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
5881 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
5882
5883 2012-05-22 Paul Eggert <eggert@cs.ucla.edu>
5884
5885 Remove src/m/*.
5886 This directory predates autoconf and is no longer needed nowadays.
5887 Move its few remaining bits of functionality to where they're needed.
5888 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
5889 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
5890 * m/template.h: Remove.
5891 * Makefile.in (M_FILE): Remove. All uses removed.
5892 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
5893 * lisp.h (USE_LSB_TAG):
5894 * mem-limits.h (EXCEEDS_LISP_PTR):
5895 Use VAL_MAX, not VALBITS, in #if.
5896 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
5897 (EMACS_UINT): Define unconditionally now.
5898 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
5899 (BITS_PER_EMACS_INT): New constants, replacing
5900 what used to be in config.h, but not useful in #if.
5901 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
5902 define them any more.
5903 (VAL_MAX): New macro.
5904 (VALMASK): Use it.
5905 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
5906 BITS_PER_EMACS_INT, in #if.
5907 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
5908 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
5909 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
5910 * s/ms-w32.h (DATA_START):
5911 Move here from removed file m/intel386.h.
5912 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
5913 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
5914
5915 2012-05-21 Paul Eggert <eggert@cs.ucla.edu>
5916
5917 Assume C89 or later.
5918 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
5919 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
5920 (xrealloc):
5921 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
5922 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
5923 * textprop.c, tparam.c (NULL): Remove.
5924 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
5925 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
5926 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
5927 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
5928 * xterm.c (input_signal_count): Assume volatile works.
5929
5930 2012-05-21 Ken Brown <kbrown@cornell.edu>
5931
5932 * xgselect.c (xg_select): Fix first argument in call to 'select'
5933 (bug#11508).
5934
5935 2012-05-20 Ken Brown <kbrown@cornell.edu>
5936
5937 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
5938 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
5939
5940 2012-05-19 Ken Brown <kbrown@cornell.edu>
5941
5942 * xfns.c (x_in_use): Remove `static' qualifier.
5943 * xterm.h (x_in_use): Declare.
5944 * xgselect.c: Include xterm.h.
5945 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
5946 and `display_arg' (bug#9754).
5947
5948 2012-05-19 Paul Eggert <eggert@cs.ucla.edu>
5949
5950 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
5951
5952 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
5953 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
5954
5955 2012-05-18 Eli Zaretskii <eliz@gnu.org>
5956
5957 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
5958
5959 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
5960 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c.
5961
5962 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
5963 reference to image_cache->refcount.
5964 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
5965
5966 2012-05-17 Juri Linkov <juri@jurta.org>
5967
5968 * search.c (Fword_search_regexp, Fword_search_backward)
5969 (Fword_search_forward, Fword_search_backward_lax)
5970 (Fword_search_forward_lax): Move functions to isearch.el
5971 (bug#10145, bug#11381).
5972
5973 2012-05-16 Paul Eggert <eggert@cs.ucla.edu>
5974
5975 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
5976
5977 2012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
5978
5979 * lread.c (init_obarray): Declare Qt and Qnil as special.
5980
5981 2012-05-14 Glenn Morris <rgm@gnu.org>
5982
5983 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
5984 Put "libexec" before "bin", for the sake of init_callproc_1.
5985
5986 2012-05-14 Paul Eggert <eggert@cs.ucla.edu>
5987
5988 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
5989
5990 * unexaix.c: Port to more-recent AIX compilers.
5991 (report_error, report_error_1, make_hdr, copy_sym)
5992 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
5993 Make arguments const char *, not char *, to avoid violations of C
5994 standard and to fix some AIX warnings reported by Gilles Pion.
5995
5996 2012-05-14 Eli Zaretskii <eliz@gnu.org>
5997
5998 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
5999 already have overlays loaded.
6000 (handle_single_display_spec): Before returning without displaying
6001 fringe bitmap, synchronize the bidi iterator with the main display
6002 iterator, by calling iterate_out_of_display_property.
6003 (iterate_out_of_display_property): Detect buffer iteration by
6004 testing that it->string is a Lisp string.
6005 (get_next_display_element): When the current object is exhausted,
6006 and there's something on it->stack, call set_iterator_to_next to
6007 proceed with what's on the stack, instead of returning zero.
6008 (set_iterator_to_next): If called at the end of a Lisp string,
6009 proceed to consider_string_end without incrementing string
6010 position. Don't increment display vector index past the end of
6011 the display vector. (Bug#11417)
6012 (pos_visible_p): Don't report a position visible when move_it_to
6013 stopped at the last line of window, which happens to be scanned
6014 backwards by the bidi iteration. (Bug#11464)
6015
6016 2012-05-14 Eli Zaretskii <eliz@gnu.org>
6017
6018 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
6019 and right-margin display specs even if the spec is invalid or we
6020 are on a TTY, and thus unable to display on the fringes.
6021 That's because the text with the property will not be displayed anyway,
6022 so we need to signal to the caller that this is a "replacing"
6023 display spec. This fixes display when the spec is invalid or we
6024 are on a TTY.
6025
6026 2012-05-14 Paul Eggert <eggert@cs.ucla.edu>
6027
6028 * unexaix.c (make_hdr): Fix typo in prototype.
6029 This bug broke the build on AIX. Problem reported by Gilles Pion.
6030
6031 2012-05-14 Michael Albinus <michael.albinus@gmx.de>
6032
6033 * keyboard.c (kbd_buffer_get_event): Read special events also in
6034 batch mode. (Bug#11415)
6035
6036 2012-05-12 Glenn Morris <rgm@gnu.org>
6037
6038 * ns.mk: Update for ns_appbindir no longer having trailing "/".
6039
6040 2012-05-12 Eli Zaretskii <eliz@gnu.org>
6041
6042 * lisp.mk (lisp): Add newcomment.elc.
6043
6044 2012-05-12 Glenn Morris <rgm@gnu.org>
6045
6046 * Makefile.in (MKDIR_P): New, set by configure.
6047 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
6048
6049 2012-05-11 Paul Eggert <eggert@cs.ucla.edu>
6050
6051 Remove unused function hourglass_started.
6052 * dispextern.h (hourglass_started):
6053 * w32fns.c (hourglass_started):
6054 * xdisp.c (hourglass_started): Remove.
6055
6056 2012-05-10 Juanma Barranquero <lekktu@gmail.com>
6057
6058 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
6059 Update dependencies.
6060
6061 2012-05-10 Paul Eggert <eggert@cs.ucla.edu>
6062
6063 * xgselect.c (xg_select): Put maxfds+1 into a var.
6064 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
6065
6066 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
6067
6068 2012-05-10 Dave Abrahams <dave@boostpro.com>
6069
6070 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
6071 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
6072
6073 2012-05-09 Michael Albinus <michael.albinus@gmx.de>
6074
6075 * dbusbind.c (xd_registered_buses): New internal Lisp object.
6076 Rename all occurences of Vdbus_registered_buses to xd_registered_buses.
6077 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
6078 Initialize xd_registered_buses.
6079
6080 2012-05-09 Paul Eggert <eggert@cs.ucla.edu>
6081
6082 Untag more efficiently if USE_LSB_TAG.
6083 This is based on a proposal by YAMAMOTO Mitsuharu in
6084 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
6085 For an admittedly artificial (nth 8000 longlist) benchmark on
6086 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
6087 Emacs's overall text size by 1%.
6088 * lisp.h (XUNTAG): New macro.
6089 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
6090 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
6091 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
6092 * eval.c (Fautoload):
6093 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
6094 * frame.h (XFRAME): Use XUNTAG.
6095
6096 Port recent dbusbind.c changes to 32-bit --with-wide-int.
6097 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
6098 Remove unportable assumptions about print widths of types like
6099 dbus_uint32_t.
6100 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
6101 intptr_t when converting between pointer and integer, to avoid GCC
6102 warnings about wrong width.
6103
6104 2012-05-09 Eli Zaretskii <eliz@gnu.org>
6105
6106 * w32proc.c (new_child): Force Windows to reserve only 64KB of
6107 stack for each reader_thread, instead of defaulting to 8MB
6108 determined by the linker. This avoids failures in creating
6109 subprocesses on Windows 7, see the discussion in this thread:
6110 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
6111
6112 2012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
6113
6114 Fix up display of the *Minibuf-0* buffer in the mini window.
6115 * keyboard.c (read_char): Don't clear the echo area if there's no
6116 message to clear.
6117 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
6118 contents of *Minibuf-0*) if there's no message displayed in its stead.
6119
6120 2012-05-07 Michael Albinus <michael.albinus@gmx.de>
6121
6122 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
6123 batch mode.
6124
6125 2012-05-06 Chong Yidong <cyd@gnu.org>
6126
6127 * lisp.mk (lisp): Update.
6128
6129 2012-05-05 Jim Meyering <meyering@redhat.com>
6130
6131 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
6132
6133 2012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
6134
6135 * data.c (PUT_ERROR): New macro.
6136 (syms_of_data): Use it. Add new error type `user-error'.
6137 * undo.c (user_error): New function.
6138 (Fprimitive_undo): Use it.
6139 * print.c (print_error_message): Adjust print style for `user-error'.
6140 * keyboard.c (user_error): New function.
6141 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
6142
6143 2012-05-03 Paul Eggert <eggert@cs.ucla.edu>
6144
6145 Do not limit current-time-string to years 1000..9999.
6146 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
6147 (Fcurrent_time_string): Support any year that is supported by the
6148 underlying localtime representation. Don't use asctime, as it
6149 has undefined behavior for years outside the range -999..9999.
6150
6151 2012-05-02 Paul Eggert <eggert@cs.ucla.edu>
6152
6153 Fix race conditions involving setenv, gmtime, localtime, asctime.
6154 Without this fix, interrupts could mess up code that uses these
6155 nonreentrant functions, since setting TZ invalidates existing
6156 tm_zone or tzname values, and since most of these functions return
6157 pointers to static storage.
6158 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
6159 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
6160 Grow the critical sections to include not just invoking
6161 localtime/gmtime, but also accessing these functions' results
6162 including their tm_zone values if any, and any related TZ setting.
6163 (format_time_string): Last arg is now struct tm *, not struct tm **,
6164 so that the struct tm is saved in the critical section.
6165 All callers changed. Simplify allocation of initial buffer, partly
6166 motivated by the fact that memory allocation needs to be outside
6167 the critical section.
6168
6169 2012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
6170
6171 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
6172 with RESET_INTERVAL.
6173
6174 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
6175 Remove duplicated buffer name initialization.
6176
6177 2012-05-02 Jim Meyering <jim@meyering.net>
6178
6179 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
6180
6181 * xfns.c (x_window): Use xstrdup (Bug#11375).
6182
6183 2012-05-02 Eli Zaretskii <eliz@gnu.org>
6184
6185 * xdisp.c (pos_visible_p): If already at a newline from the
6186 display string before the 'while' loop, don't walk back the glyphs
6187 from it3.glyph_row. Solves assertion violation when the display
6188 string begins with a newline (egg.el). (Bug#11367)
6189
6190 2012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
6191
6192 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
6193 Move to simple.el.
6194
6195 2012-05-01 Glenn Morris <rgm@gnu.org>
6196
6197 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
6198 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
6199 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
6200 All were removed before 23.1.
6201
6202 * dispnew.c: Remove HAVE_LIBNCURSES test;
6203 it is always true on relevant platforms.
6204
6205 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
6206 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
6207
6208 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
6209
6210 2012-04-30 Andreas Schwab <schwab@linux-m68k.org>
6211
6212 * .gdbinit (xpr): Remove checks for no longer existing misc types.
6213 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
6214 Remove.
6215
6216 2012-04-28 Paul Eggert <eggert@cs.ucla.edu>
6217
6218 Do not avoid creating empty evaporating overlays (Bug#9642).
6219 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
6220 That is, do not delete an evaporating overlay if it becomes
6221 empty after its bounds are adjusted to fit within its buffer.
6222 This fix caused other problems, and I'm reverting it until we get
6223 to the bottom of them.
6224
6225 2012-04-27 Chong Yidong <cyd@gnu.org>
6226
6227 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
6228
6229 2012-04-27 Eli Zaretskii <eliz@gnu.org>
6230
6231 * xdisp.c (pos_visible_p): If the window start position is beyond
6232 ZV, start the display from buffer beginning. Prevents assertion
6233 violation in init_iterator when the minibuffer window is scrolled
6234 via the scroll bar.
6235
6236 * window.c (window_scroll_pixel_based): Likewise.
6237
6238 2012-04-27 Chong Yidong <cyd@gnu.org>
6239
6240 * keymap.c (where_is_internal): Doc fix (Bug#10872).
6241
6242 2012-04-27 Glenn Morris <rgm@gnu.org>
6243
6244 * fileio.c (Fcopy_file, Fset_file_selinux_context):
6245 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
6246
6247 2012-04-27 Eli Zaretskii <eliz@gnu.org>
6248
6249 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
6250 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
6251
6252 2012-04-26 Eli Zaretskii <eliz@gnu.org>
6253
6254 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
6255 display element, check also the underlying string or buffer
6256 character. (Bug#11341)
6257
6258 * w32menu.c: Include w32heap.h.
6259 (add_menu_item): If the call to AppendMenuW (via
6260 unicode_append_menu) fails, disable Unicode menus only if we are
6261 running on Windows 9X/Me.
6262
6263 2012-04-24 Andreas Schwab <schwab@linux-m68k.org>
6264
6265 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
6266 (xgetint): Add missing shift for LSB tags.
6267
6268 2012-04-24 Martin Rudalics <rudalics@gmx.at>
6269
6270 * keyboard.c (read_char): Don't wipe echo area for select window
6271 events: These might get delayed via `mouse-autoselect-window'
6272 (Bug#11304).
6273
6274 2012-04-24 Juanma Barranquero <lekktu@gmail.com>
6275
6276 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
6277 manipulation of :loaded-from data.
6278
6279 2012-04-23 Juanma Barranquero <lekktu@gmail.com>
6280
6281 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
6282 now a cons (bug#11311).
6283
6284 2012-04-23 Paul Eggert <eggert@cs.ucla.edu>
6285
6286 Do not create empty overlays with the evaporate property (Bug#9642).
6287 * buffer.c (Fmove_overlay): Delete an evaporating overlay
6288 if it becomes empty after its bounds are adjusted to fit within
6289 its buffer. Without this fix, in a nonempty buffer (let ((o
6290 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
6291 yields an empty overlay that has the evaporate property, which is
6292 not supposed to happen.
6293
6294 Fix minor GTK3 problems found by static checking.
6295 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
6296 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
6297 (struct _EmacsFixedClass, emacs_fixed_get_type):
6298 Move decls here from emacsgtkfixed.h, since they needn't be public.
6299 (emacs_fixed_get_type): Now static.
6300 (emacs_fixed_class_init): Omit unused local.
6301 (emacs_fixed_child_type): Remove; unused.
6302 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
6303 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
6304 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
6305 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
6306 (EMACS_FIXED_GET_CLASS): Remove; unused.
6307 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
6308
6309 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
6310 Problem reported by Juanma Barranquero for Windows -Wunused-function.
6311
6312 2012-04-22 Paul Eggert <eggert@cs.ucla.edu>
6313
6314 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
6315 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
6316 (__malloc_size_t, __malloc_ptrdiff_t):
6317 Remove. All uses removed, replaced by the definiens if needed,
6318 since we can assume C89 or better now.
6319 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
6320 (protect_malloc_state, align, get_contiguous_space)
6321 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
6322 (malloc_atfork_handler_child, malloc_enable_thread)
6323 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
6324 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
6325 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
6326 (special_realloc, _realloc_internal_nolock, _realloc_internal)
6327 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
6328 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
6329 Define using prototypes, not old style.
6330 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
6331 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
6332 (align): Don't assume that signed integer overflow wraps around.
6333 Omit unused local var.
6334 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
6335 (_free_internal_nolock, memalign, mallochook, reallochook):
6336 Omit no-longer-needed casts.
6337 (valloc): Use getpagesize, not __getpagesize.
6338 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
6339 (struct hdr): The 'magic' member is now size_t, not unsigned long.
6340
6341 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
6342
6343 2012-04-22 Michael Albinus <michael.albinus@gmx.de>
6344
6345 Move functions from C to Lisp. Make non-blocking method calls
6346 the default. Implement further D-Bus standard interfaces.
6347
6348 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
6349 (QCdbus_request_name_allow_replacement)
6350 (QCdbus_request_name_replace_existing)
6351 (QCdbus_request_name_do_not_queue)
6352 (QCdbus_request_name_reply_primary_owner)
6353 (QCdbus_request_name_reply_in_queue)
6354 (QCdbus_request_name_reply_exists)
6355 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
6356 (QCdbus_registered_serial, QCdbus_registered_method)
6357 (QCdbus_registered_signal): New Lisp objects.
6358 (XD_DEBUG_MESSAGE): Use sizeof.
6359 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
6360 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
6361 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
6362 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
6363 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
6364 (xd_signature, xd_append_arg): Allow float for integer types.
6365 (xd_get_connection_references): New function.
6366 (xd_get_connection_address): Rename from xd_initialize.
6367 Return cached address.
6368 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
6369 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
6370 level.
6371 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
6372 Return number of refcounts.
6373 (Fdbus_get_unique_name): Make stronger parameter check.
6374 (Fdbus_message_internal): New defun.
6375 (Fdbus_call_method, Fdbus_call_method_asynchronously)
6376 (Fdbus_method_return_internal, Fdbus_method_error_internal)
6377 (Fdbus_send_signal, Fdbus_register_service)
6378 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
6379 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
6380 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
6381 (Vdbus_compiled_version, Vdbus_runtime_version)
6382 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
6383 (Vdbus_message_type_method_return, Vdbus_message_type_error)
6384 (Vdbus_message_type_signal): New defvars.
6385 (Vdbus_registered_buses, Vdbus_registered_objects_table):
6386 Adapt docstring.
6387
6388 2012-04-22 Paul Eggert <eggert@cs.ucla.edu>
6389
6390 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
6391 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
6392 Do not assume ptrdiff_t is the same width as 'int'.
6393
6394 * alloc.c: Handle unusual debugging option combinations.
6395 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
6396 since the two debugging options are incompatible.
6397 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
6398 is defined.
6399 (mem_init, mem_insert, mem_insert_fixup):
6400 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
6401 (NEED_MEM_INSERT): Remove; no longer needed.
6402
6403 2012-04-22 Leo Liu <sdl.web@gmail.com>
6404
6405 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
6406
6407 2012-04-22 Paul Eggert <eggert@cs.ucla.edu>
6408
6409 * sysdep.c [__FreeBSD__]: Minor cleanups.
6410 (list_system_processes, system_process_attributes) [__FreeBSD__]:
6411 Use Emacs indenting style more consistently. Avoid some casts.
6412 Use 'double' consistently rather than mixing 'float' and 'double'.
6413
6414 2012-04-21 Eduard Wiebe <usenet@pusto.de>
6415
6416 * sysdep.c (list_system_processes, system_process_attributes):
6417 Add implementation for FreeBSD (Bug#5243).
6418
6419 2012-04-21 Andreas Schwab <schwab@linux-m68k.org>
6420
6421 * lisp.mk (lisp): Update.
6422
6423 2012-04-20 Paul Eggert <eggert@cs.ucla.edu>
6424
6425 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
6426 It is never used otherwise.
6427
6428 2012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
6429
6430 * print.c (print_preprocess): Only check print_depth if print-circle
6431 is nil.
6432 (print_object): Check for cycles even when print-circle is nil and
6433 print-gensym is t, but only check print_depth if print-circle is nil.
6434
6435 2012-04-20 Chong Yidong <cyd@gnu.org>
6436
6437 * process.c (wait_reading_process_output): If EIO occurs on a pty,
6438 set the status to "failed" and ensure that sentinel is run.
6439
6440 2012-04-20 Glenn Morris <rgm@gnu.org>
6441
6442 * process.c (Fset_process_inherit_coding_system_flag)
6443 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
6444 (Fmake_network_process, Fmake_serial_process): Doc fix.
6445
6446 2012-04-20 Eli Zaretskii <eliz@gnu.org>
6447
6448 * xdisp.c (string_buffer_position_lim): Limit starting position to
6449 BEGV.
6450 (set_cursor_from_row): If called for a mode-line or header-line
6451 row, return zero immediately.
6452 (try_cursor_movement): If inside continuation line, don't back up
6453 farther than the first row after the header line, if any.
6454 Don't consider the header-line row as "partially visible", even if
6455 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
6456
6457 2012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
6458
6459 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
6460 (bug#11238).
6461
6462 2012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
6463 2012-04-18 Paul Eggert <eggert@cs.ucla.edu>
6464
6465 configure: new option --enable-gcc-warnings (Bug#11207)
6466 * Makefile.in (C_WARNINGS_SWITCH): Remove.
6467 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
6468 (ALL_CFLAGS): Use new macros rather than old.
6469 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
6470 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
6471 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
6472 -Wunused-result, -Wunused-variable. This should go away once
6473 the Emacs and Gnulib regex code is merged.
6474 (xmalloc, xrealloc): Now static.
6475
6476 2012-04-17 Paul Eggert <eggert@cs.ucla.edu>
6477
6478 * dired.c (Fsystem_groups): Remove unused local.
6479
6480 2012-04-17 Glenn Morris <rgm@gnu.org>
6481
6482 * dired.c (Fsystem_users): Doc fix.
6483
6484 2012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
6485
6486 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
6487 (syms_of_dired): Add them.
6488
6489 2012-04-16 Paul Eggert <eggert@cs.ucla.edu>
6490
6491 Fix minor alloc.c problems found by static checking.
6492 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
6493 New extern decls, to avoid calling undeclared functions.
6494 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
6495 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
6496 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
6497 (NEED_MEM_INSERT): New macro.
6498 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
6499 Remove one incorrect comment and fix another.
6500
6501 Fix minor ralloc.c problems found by static checking.
6502 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
6503 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
6504 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
6505 (r_alloc_sbrk): Now static.
6506
6507 Improve ralloc.c interface checking.
6508 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
6509 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
6510 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
6511 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
6512 [REL_ALLOC]: ... to here, to check interface.
6513 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
6514 Remove decls. This fixes an "It stinks!".
6515
6516 * alloc.c (which_symbols): Fix alignment issue / type clash.
6517
6518 2012-04-15 Andreas Schwab <schwab@linux-m68k.org>
6519
6520 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
6521 (struct Lisp_Misc_Any): Likewise.
6522 (struct Lisp_Free): Likewise.
6523 * alloc.c (union aligned_Lisp_Symbol): Define.
6524 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
6525 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
6526 (union aligned_Lisp_Misc): Define.
6527 (MARKER_BLOCK_SIZE, struct marker_block): Use union
6528 aligned_Lisp_Misc instead of union Lisp_Misc.
6529 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
6530
6531 2012-04-14 Paul Eggert <eggert@cs.ucla.edu>
6532
6533 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
6534 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
6535 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
6536 * s/netbsd.h, s/sol2-6.h:
6537 Remove definition of GC_MARK_STACK, since the default now works.
6538 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
6539 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
6540 no longer the default.
6541 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
6542
6543 2012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
6544
6545 * lread.c (lisp_file_lexically_bound_p):
6546 Fix hang at ";-*-\n" (bug#11238).
6547
6548 2012-04-14 Eli Zaretskii <eliz@gnu.org>
6549
6550 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
6551 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
6552
6553 2012-04-14 Jan Djärv <jan.h.d@swipnet.se>
6554
6555 * nsterm.m (constrainFrameRect): Always constrain when there is only
6556 one screen (Bug#10962).
6557
6558 2012-04-13 Ken Brown <kbrown@cornell.edu>
6559
6560 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
6561
6562 2012-04-13 Reuben Thomas <rrt@sc3d.org>
6563
6564 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
6565
6566 2012-04-11 Daniel Colascione <dancol@dancol.org>
6567
6568 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
6569 against is gone. It's better to use vfork now so that when Cygwin
6570 gains a new, working vfork, we use it automatically (bug#10398).
6571
6572 2012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
6573
6574 * window.c (save_window_save): Obey window-point-insertion-type.
6575
6576 2012-04-11 Glenn Morris <rgm@gnu.org>
6577
6578 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
6579
6580 2012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
6581
6582 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
6583
6584 2012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
6585
6586 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
6587 (force_quit_count): New var.
6588 (handle_interrupt): Use it.
6589
6590 2012-04-10 Juanma Barranquero <lekktu@gmail.com>
6591
6592 * w32.c (w32_delayed_load): Record the full path of the library
6593 being loaded (bug#10424).
6594
6595 2012-04-09 Glenn Morris <rgm@gnu.org>
6596
6597 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
6598 not just in the obarray, before snarfing them. (Bug#11036)
6599
6600 * Makefile.in ($(leimdir)/leim-list.el):
6601 Pass EMACS rather than BUILT_EMACS.
6602
6603 2012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
6604
6605 * process.c (make_process):
6606 * process.h: Add integer `gnutls_handshakes_tried' member to
6607 process struct.
6608
6609 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
6610 Add convenience `GNUTLS_LOG2i' macro.
6611
6612 * gnutls.c (gnutls_log_function2i): Convenience log function.
6613 (emacs_gnutls_read): Use new log functions,
6614 `gnutls_handshakes_tried' process member, and
6615 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
6616 attempts per process (connection).
6617
6618 2012-04-09 Chong Yidong <cyd@gnu.org>
6619
6620 * eval.c (Fuser_variable_p, user_variable_p_eh)
6621 (lisp_indirect_variable): Functions deleted.
6622 (Fdefvar): Caller changed.
6623
6624 * callint.c (Finteractive, Fcall_interactively):
6625 * minibuf.c (Fread_variable): Callers changed.
6626
6627 2012-04-09 Eli Zaretskii <eliz@gnu.org>
6628
6629 * xdisp.c (set_cursor_from_row): If the display string appears in
6630 the buffer at position that is closer to point than the position
6631 after the display string, display the cursor on the first glyph of
6632 the display string. Fixes cursor display when a 'display' text
6633 property immediately follows invisible text. (Bug#11094)
6634
6635 2012-04-09 Paul Eggert <eggert@cs.ucla.edu>
6636
6637 composite.c: use 'double' consistently
6638 * composite.c (get_composition_id): Use 'double' consistently
6639 instead of converting 'float' to 'double' and vice versa; this is
6640 easier to understand and avoids a GCC warning.
6641
6642 2012-04-09 Glenn Morris <rgm@gnu.org>
6643
6644 * Makefile.in: Generate leim-list with bootstrap-emacs, in
6645 preparation for dumping it with emacs. (Bug#4789)
6646 (leimdir): New variable.
6647 ($(leimdir)/leim-list.el): New rule.
6648 (emacs$(EXEEXT)): Depend on leim-list.el.
6649
6650 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
6651 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
6652 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
6653
6654 2012-04-08 Andreas Schwab <schwab@linux-m68k.org>
6655
6656 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
6657 proper alignment.
6658
6659 2012-04-07 Juanma Barranquero <lekktu@gmail.com>
6660
6661 * xml.c (init_libxml2_functions) [WINDOWSNT]:
6662 Remove unused local variable.
6663
6664 2012-04-07 Paul Eggert <eggert@cs.ucla.edu>
6665
6666 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
6667 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
6668 (mark_memory): Mark Lisp_Objects only if pointers might hide in
6669 objects, as mark_maybe_pointer will catch them otherwise.
6670 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
6671 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
6672
6673 2012-04-07 Paul Eggert <eggert@cs.ucla.edu>
6674
6675 Fix typo that broke non-Windows builds.
6676 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
6677
6678 2012-04-07 Eli Zaretskii <eliz@gnu.org>
6679
6680 Support building on MS-Windows with libxml2.
6681
6682 * makefile.w32-in (OBJ2): Add xml.$(O).
6683 (GLOBAL_SOURCES): Add xml.c.
6684 ($(BLD)/xml.$(O)): New dependency list.
6685
6686 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
6687 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
6688 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
6689 [!WINDOWSNT]: New macros.
6690 (init_libxml2_functions, libxml2_loaded_p): New functions.
6691 (parse_region): Call fn_xmlCheckVersion instead of using the macro
6692 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
6693 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
6694 Calls xmlCleanupParser only if libxml2 was loaded (or statically
6695 linked in).
6696 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
6697 Call init_libxml2_functions before calling libxml2 functions.
6698 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
6699
6700 * emacs.c: Don't include libxml/parser.h.
6701 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
6702 xmlCleanupParser directly.
6703
6704 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
6705
6706 2012-04-07 Eli Zaretskii <eliz@gnu.org>
6707
6708 * indent.c (Fvertical_motion): If there is a display string at
6709 point, use it.vpos to compute how many lines to backtrack after
6710 move_it_to point. (Bug#11133)
6711
6712 2012-04-06 Eli Zaretskii <eliz@gnu.org>
6713
6714 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
6715 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
6716 about subtle differences between FETCH_CHAR* and STRING_CHAR*
6717 macros related to unification of CJK characters. For the details,
6718 see the discussion following the message here:
6719 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
6720
6721 2012-04-04 Chong Yidong <cyd@gnu.org>
6722
6723 * keyboard.c (Vdelayed_warnings_list): Doc fix.
6724
6725 2012-04-01 Eli Zaretskii <eliz@gnu.org>
6726
6727 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
6728 instead of alloca. (Bug#11138)
6729
6730 2012-04-01 Andreas Schwab <schwab@linux-m68k.org>
6731
6732 * w32menu.c (is_simple_dialog): Properly check lisp types.
6733 (Bug#11141)
6734
6735 2012-03-31 Eli Zaretskii <eliz@gnu.org>
6736
6737 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
6738 position we get to after a call to move_it_to fails the
6739 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
6740 only if we wind up in a string from display property. (Bug#11063)
6741
6742 * window.c (Fdelete_other_windows_internal): Invalidate the row
6743 and column information about mouse highlight, so that redisplay
6744 restores it after reallocating the glyph matrices. (Bug#7464)
6745
6746 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
6747 string comes from a `display' text property, use the buffer
6748 position of that property as if we actually saw that position in
6749 the row's glyphs.
6750 (move_it_by_lines): Remove the assertion that
6751 "it->current_x == 0 && it->hpos == 0" which can be legitimately
6752 violated when there's a before-string at the beginning of a line.
6753 (Bug#11063)
6754
6755 2012-03-30 Eli Zaretskii <eliz@gnu.org>
6756
6757 * xdisp.c (append_space_for_newline): If the default face was
6758 remapped, use the remapped face for the appended newline.
6759 (extend_face_to_end_of_line): Use the remapped default face for
6760 extending the face to the end of the line.
6761 (display_line): Call extend_face_to_end_of_line when the default
6762 face was remapped. (Bug#11068)
6763
6764 2012-03-29 Eli Zaretskii <eliz@gnu.org>
6765
6766 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
6767
6768 2012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
6769
6770 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
6771
6772 2012-03-27 Glenn Morris <rgm@gnu.org>
6773
6774 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
6775 Doc fixes.
6776
6777 2012-03-26 Kenichi Handa <handa@m17n.org>
6778
6779 * dispextern.h (struct glyph): Fix previous change. Change the
6780 bit length of glyphless.ch to 25 (Bug#11082).
6781
6782 2012-03-26 Chong Yidong <cyd@gnu.org>
6783
6784 * keyboard.c (Vselection_inhibit_update_commands): New variable.
6785 (command_loop_1): Use it; inhibit selection update for
6786 handle-select-window too (Bug#8996).
6787
6788 2012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
6789
6790 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
6791
6792 2012-03-25 Kenichi Handa <handa@m17n.org>
6793
6794 * dispextern.h (struct glyph): Change the bit length of
6795 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
6796
6797 2012-03-24 Eli Zaretskii <eliz@gnu.org>
6798
6799 * s/ms-w32.h (tzname): Include time.h before redirecting to
6800 _tzname. Fixes the MSVC build. (Bug#9960)
6801
6802 2012-03-24 Andreas Schwab <schwab@linux-m68k.org>
6803
6804 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
6805 characters.
6806
6807 * xterm.c (XTread_socket): Only modify handling_signal if
6808 !SYNC_INPUT. (Bug#11080)
6809
6810 2012-03-23 Eli Zaretskii <eliz@gnu.org>
6811
6812 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
6813 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
6814 when fetching a multibyte character consumes more bytes than
6815 CHAR_BYTES returns, due to unification of CJK characters in
6816 string_char. (Bug#11073)
6817
6818 2012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
6819
6820 * process.c (wait_reading_process_output): Handle pty disconnect
6821 by refraining from sending oneself a SIGCHLD (bug#10933).
6822
6823 2012-03-22 Chong Yidong <cyd@gnu.org>
6824
6825 * dispextern.h (struct it): New member string_from_prefix_prop_p.
6826
6827 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
6828 Mark string as coming from a prefix property.
6829 (handle_face_prop): Use default face for prefix strings (Bug#4281).
6830 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
6831
6832 2012-03-21 Chong Yidong <cyd@gnu.org>
6833
6834 * xfaces.c (Vface_remapping_alist): Doc fix.
6835
6836 2012-03-20 Eli Zaretskii <eliz@gnu.org>
6837
6838 * w32proc.c (Fw32_set_console_codepage)
6839 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
6840 Doc fixes.
6841
6842 2012-03-20 Chong Yidong <cyd@gnu.org>
6843
6844 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
6845 to reflect default non-nil value of redisplay-dont-pause.
6846
6847 2012-03-19 Kenichi Handa <handa@m17n.org>
6848
6849 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
6850 it fit in a valid range (Bug#11003).
6851
6852 2012-03-18 Eli Zaretskii <eliz@gnu.org>
6853
6854 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
6855 that is not from display property, accept the row as a "cursor
6856 row" if one of the string's character has a non-nil `cursor'
6857 property. Fixes cursor positioning when there are newlines in
6858 overlay strings, e.g. in icomplete.el. (Bug#11035)
6859
6860 2012-03-12 Paul Eggert <eggert@cs.ucla.edu>
6861
6862 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
6863
6864 2012-03-12 Chong Yidong <cyd@gnu.org>
6865
6866 * eval.c (inhibit_lisp_code): Rename from
6867 inhibit_window_configuration_change_hook; move from window.c.
6868
6869 * xfns.c (unwind_create_frame_1, Fx_create_frame):
6870 * window.c (run_window_configuration_change_hook)
6871 (syms_of_window): Callers changed.
6872
6873 2012-03-11 Chong Yidong <cyd@gnu.org>
6874
6875 * keymap.c (Fkey_description): Doc fix (Bug#9700).
6876
6877 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
6878
6879 2012-03-10 Chong Yidong <cyd@gnu.org>
6880
6881 * frame.c (other_visible_frames): Don't assume the selected frame
6882 is visible (Bug#10955).
6883
6884 2012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
6885
6886 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
6887
6888 2012-03-08 Jan Djärv <jan.h.d@swipnet.se>
6889
6890 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
6891 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
6892 zero (Bug#10954).
6893
6894 2012-03-03 Glenn Morris <rgm@gnu.org>
6895
6896 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
6897
6898 2012-03-02 Eli Zaretskii <eliz@gnu.org>
6899
6900 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
6901 position past the first glyph_row that ends at ZV. (Bug#10902)
6902 (redisplay_window, next_element_from_string): Fix typos in
6903 comments.
6904 (redisplay_window): Pass to move_it_vertically the margin in
6905 pixels, not in screen lines.
6906
6907 2012-03-02 Glenn Morris <rgm@gnu.org>
6908
6909 * buffer.c (buffer-list-update-hook): Doc fix.
6910
6911 2012-02-29 Eli Zaretskii <eliz@gnu.org>
6912
6913 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
6914 push_it before setting up the iterator for the first overlay
6915 string, even if we have an empty string loaded.
6916 (next_overlay_string): If there's an empty string on the iterator
6917 stack, pop the stack. (Bug#10903)
6918
6919 2012-02-25 Paul Eggert <eggert@cs.ucla.edu>
6920
6921 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
6922 Suggested by Stefan Monnier in
6923 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
6924 * alloc.c (widen_to_Lisp_Object): New static function.
6925 (mark_memory): Also mark Lisp_Objects by fetching pointer words
6926 and widening them to Lisp_Objects. This would work even if
6927 USE_LSB_TAG is defined and wide integers are used, which might
6928 happen in a future version of Emacs.
6929
6930 2012-02-25 Chong Yidong <cyd@gnu.org>
6931
6932 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
6933 Doc fix.
6934
6935 * xselect.c (Fx_selection_exists_p): Doc fix.
6936 (x_clipboard_manager_save_all): Print an informative message
6937 before saving to clipboard manager.
6938
6939 2012-02-24 Chong Yidong <cyd@gnu.org>
6940
6941 * keyboard.c (process_special_events): Handle all X selection
6942 requests in kbd_buffer, not just the next one (Bug#8869).
6943
6944 2012-02-23 Chong Yidong <cyd@gnu.org>
6945
6946 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
6947 call when setting menu-bar-lines and tool-bar-lines parameters.
6948 (unwind_create_frame_1): New helper function.
6949
6950 * window.c (inhibit_window_configuration_change_hook): New var.
6951 (run_window_configuration_change_hook): Obey it.
6952 (syms_of_window): Initialize it.
6953
6954 2012-02-22 Chong Yidong <cyd@gnu.org>
6955
6956 * xterm.c (x_draw_image_relief): Add missing type check for
6957 Vtool_bar_button_margin (Bug#10743).
6958
6959 2012-02-21 Chong Yidong <cyd@gnu.org>
6960
6961 * fileio.c (Vfile_name_handler_alist): Doc fix.
6962
6963 * buffer.c (Fget_file_buffer): Protect against invalid file
6964 handler return value.
6965
6966 2012-02-20 Paul Eggert <eggert@cs.ucla.edu>
6967
6968 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
6969 when computing $valmask.
6970
6971 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
6972 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
6973 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
6974 It's useless in that case, and it can cause problems on hosts
6975 that allocate halves of EMACS_INT values separately.
6976 Reported by Dan Horák. Diagnosed by Andreas Schwab in
6977 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
6978 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
6979 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
6980 it avoids undefined behavior on hosts where shifting right by more
6981 than the word width has undefined behavior.
6982
6983 2012-02-19 Chong Yidong <cyd@gnu.org>
6984
6985 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
6986 (Funhandled_file_name_directory, Ffile_name_as_directory)
6987 (Fdirectory_file_name, Fexpand_file_name)
6988 (Fsubstitute_in_file_name): Protect against invalid file handler
6989 return values (Bug#10845).
6990
6991 2012-02-18 Eli Zaretskii <eliz@gnu.org>
6992
6993 * .gdbinit (pitx): Fix incorrect references to fields of the
6994 iterator stack.
6995
6996 2012-02-17 Chong Yidong <cyd@gnu.org>
6997
6998 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
6999
7000 2012-02-15 Paul Eggert <eggert@cs.ucla.edu>
7001
7002 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
7003 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
7004
7005 2012-02-15 Chong Yidong <cyd@gnu.org>
7006
7007 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
7008 marked as special. Also, starting docstrings with * is obsolete.
7009
7010 2012-02-13 Andreas Schwab <schwab@linux-m68k.org>
7011
7012 * gnutls.c (emacs_gnutls_write): Fix last change.
7013
7014 2012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
7015
7016 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
7017 send_process.
7018
7019 2012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
7020
7021 * keymap.c (Fsingle_key_description): Handle char ranges.
7022
7023 2012-02-12 Chong Yidong <cyd@gnu.org>
7024
7025 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
7026 as that creates a dangerous corner case.
7027
7028 * window.c (Fdelete_window_internal): Invalidate the mouse
7029 highlight (Bug#9904).
7030
7031 2012-02-12 Glenn Morris <rgm@gnu.org>
7032
7033 * xselect.c (Fx_own_selection_internal)
7034 (Fx_get_selection_internal, Fx_disown_selection_internal)
7035 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
7036 * nsselect.m (Fx_own_selection_internal)
7037 (Fx_disown_selection_internal, Fx_selection_exists_p)
7038 (Fx_selection_owner_p, Fx_get_selection_internal):
7039 Sync docs and argument specs with the xselect.c versions.
7040
7041 2012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
7042
7043 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
7044
7045 2012-02-11 Eli Zaretskii <eliz@gnu.org>
7046
7047 * w32select.c (Fx_selection_exists_p): Sync doc string and
7048 argument list with xselect.c. (Bug#10783)
7049
7050 * w16select.c (Fx_selection_exists_p): Sync doc string and
7051 argument list with xselect.c. (Bug#10783)
7052
7053 2012-02-10 Glenn Morris <rgm@gnu.org>
7054
7055 * fns.c (Fsecure_hash): Doc fix.
7056
7057 2012-02-09 Kenichi Handa <handa@m17n.org>
7058
7059 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
7060
7061 2012-02-07 Chong Yidong <cyd@gnu.org>
7062
7063 * buffer.c (Fbuffer_local_variables)
7064 (buffer_lisp_local_variables): Handle unbound vars correctly;
7065 don't let Qunbound leak into Lisp.
7066
7067 2012-02-07 Glenn Morris <rgm@gnu.org>
7068
7069 * image.c (Fimagemagick_types): Doc fix.
7070
7071 * image.c (imagemagick-render-type): Change it from a lisp object
7072 to an integer. Move the doc here from the lisp manual.
7073 Treat all values not equal to 0 the same.
7074
7075 2012-02-06 Chong Yidong <cyd@gnu.org>
7076
7077 * doc.c (store_function_docstring): Avoid applying docstring of
7078 alias to base function (Bug#2603).
7079
7080 2012-02-04 Andreas Schwab <schwab@linux-m68k.org>
7081
7082 * .gdbinit (pp1, pv1): Remove redundant defines.
7083 (pr): Use pp.
7084
7085 2012-02-04 Chong Yidong <cyd@gnu.org>
7086
7087 * nsterm.m: Declare a global (Bug#10694).
7088
7089 2012-02-04 Eli Zaretskii <eliz@gnu.org>
7090
7091 * w32.c (get_emacs_configuration_options):
7092 Include --enable-checking, if specified, in the return value.
7093
7094 2012-02-04 Martin Rudalics <rudalics@gmx.at>
7095
7096 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
7097 after rounding frame sizes. (Bug#9723)
7098
7099 2012-02-04 Eli Zaretskii <eliz@gnu.org>
7100
7101 * keyboard.c (adjust_point_for_property): Don't position point
7102 before BEGV. (Bug#10696)
7103
7104 2012-02-03 Paul Eggert <eggert@cs.ucla.edu>
7105
7106 Handle overflow when computing char display width (Bug#9496).
7107 * character.c (char_width): Return EMACS_INT, not int.
7108 (char_width, c_string_width): Check for overflow when
7109 computing the width; this is possible now that individual
7110 characters can have unbounded width. Problem introduced
7111 by merge from Emacs 23 on 2012-01-19.
7112
7113 2012-02-02 Michael Albinus <michael.albinus@gmx.de>
7114
7115 * dbusbind.c (Fdbus_register_method): Mention the return value
7116 :ignore in the docstring.
7117
7118 2012-02-02 Glenn Morris <rgm@gnu.org>
7119
7120 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
7121
7122 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
7123 Unconditionally set to t. (Bug#10673)
7124 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
7125 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
7126 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
7127
7128 2012-02-02 Kenichi Handa <handa@m17n.org>
7129
7130 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
7131 0, do not call append_composite_glyph.
7132
7133 2012-02-02 Kenichi Handa <handa@m17n.org>
7134
7135 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
7136 NULL (Bug#6988).
7137 (x_produce_glyphs): If the component of a composition is a null
7138 string, set it->pixel_width to 1 to avoid zero-width glyph.
7139
7140 2012-02-01 Eli Zaretskii <eliz@gnu.org>
7141
7142 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
7143 first 2 arguments are identical. This makes inserting large
7144 output from a subprocess an order of magnitude faster on
7145 MS-Windows, where all sbrk'ed memory is always contiguous.
7146
7147 2012-01-31 Glenn Morris <rgm@gnu.org>
7148
7149 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
7150 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
7151 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
7152
7153 2012-01-29 Glenn Morris <rgm@gnu.org>
7154
7155 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
7156
7157 2012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
7158
7159 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
7160
7161 2012-01-28 Chong Yidong <cyd@gnu.org>
7162
7163 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
7164
7165 2012-01-26 Chong Yidong <cyd@gnu.org>
7166
7167 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
7168
7169 * search.c (Fsearch_forward, Fsearch_backward): Document negative
7170 repeat counts (Bug#10507).
7171
7172 2012-01-26 Glenn Morris <rgm@gnu.org>
7173
7174 * lread.c (syms_of_lread): Doc fix.
7175
7176 2012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
7177
7178 * coding.c (encode_designation_at_bol): Change return value to
7179 EMACS_INT.
7180
7181 2012-01-25 Chong Yidong <cyd@gnu.org>
7182
7183 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
7184
7185 2012-01-21 Chong Yidong <cyd@gnu.org>
7186
7187 * floatfns.c (Fcopysign): Make the second argument non-optional,
7188 since nil is not allowed anyway.
7189
7190 2012-01-21 Andreas Schwab <schwab@linux-m68k.org>
7191
7192 * process.c (read_process_output): Use p instead of XPROCESS (proc).
7193 (send_process): Likewise.
7194
7195 2012-01-19 Martin Rudalics <rudalics@gmx.at>
7196
7197 * window.c (save_window_save, Fcurrent_window_configuration)
7198 (Vwindow_persistent_parameters): Do not use Qstate.
7199 Rewrite doc-strings.
7200
7201 2012-01-19 Kenichi Handa <handa@m17n.org>
7202
7203 * character.c (char_width): New function.
7204 (Fchar_width, c_string_width, lisp_string_width):
7205 Use char_width (Bug#9496).
7206
7207 2012-01-16 Martin Rudalics <rudalics@gmx.at>
7208
7209 * window.c (Vwindow_persistent_parameters): New variable.
7210 (Fset_window_configuration, save_window_save): Handle persistent
7211 window parameters.
7212
7213 2012-01-14 Eli Zaretskii <eliz@gnu.org>
7214
7215 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
7216 thrashing the stack of the thread. (Bug#9087)
7217
7218 2012-01-12 Paul Eggert <eggert@cs.ucla.edu>
7219
7220 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
7221
7222 2012-01-11 Eli Zaretskii <eliz@gnu.org>
7223
7224 * xdisp.c (rows_from_pos_range): Handle the case where the
7225 highlight ends on a newline. (Bug#10464)
7226 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
7227 he end column for display of highlight that ends on a newline
7228 before a R2L line.
7229
7230 2012-01-11 Glenn Morris <rgm@gnu.org>
7231
7232 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
7233 from load-path also when installation-directory is nil. (Bug#10208)
7234
7235 2012-01-10 Glenn Morris <rgm@gnu.org>
7236
7237 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
7238
7239 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
7240 Update template values to be closer to their typical values these days.
7241
7242 2012-01-09 Eli Zaretskii <eliz@gnu.org>
7243
7244 * xdisp.c (rows_from_pos_range): Accept additional argument
7245 DISP_STRING, and accept any glyph in a row whose object is that
7246 string as eligible for mouse highlight. Fixes mouse highlight of
7247 display strings from overlays. (Bug#10464)
7248
7249 2012-01-07 Paul Eggert <eggert@cs.ucla.edu>
7250
7251 emacs: fix an auto-save permissions race condition (Bug#10400)
7252 * fileio.c (auto_saving_dir_umask): New static var.
7253 (Fmake_directory_internal): Use it.
7254 (do_auto_save_make_dir): Set it, instead of invoking chmod after
7255 creating the directory. The old code temporarily assigns
7256 too-generous permissions to the directory.
7257 (do_auto_save_eh): Clear it.
7258 (Fdo_auto_save): Catch all errors, not just file errors, so
7259 that the var is always cleared.
7260
7261 2012-01-07 Eli Zaretskii <eliz@gnu.org>
7262
7263 * search.c (scan_buffer): Pass character positions to
7264 know_region_cache, not byte positions. (Bug#6540)
7265
7266 2012-01-07 LynX <_LynX@bk.ru> (tiny change)
7267
7268 * w32.c (sys_rename): Report EXDEV when rename of a directory
7269 fails because the target is on another logical disk. (Bug#10284)
7270
7271 2012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
7272
7273 * xterm.c (x_embed_request_focus): New function.
7274
7275 * xterm.h: Add prototype.
7276
7277 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
7278
7279 2012-01-05 Glenn Morris <rgm@gnu.org>
7280
7281 * emacs.c (emacs_copyright): Update short copyright year to 2012.
7282
7283 2012-01-01 Eli Zaretskii <eliz@gnu.org>
7284
7285 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
7286 Load gnutls_transport_set_lowat only if GnuTLS version is below
7287 2.11.1.
7288 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
7289 GnuTLS versions below 2.11.1.
7290
7291 2011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
7292
7293 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
7294 to the doc string advising against its use for altering the way
7295 windows are scrolled.
7296
7297 2011-12-28 Kenichi Handa <handa@m17n.org>
7298
7299 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
7300 coding-system ASCII compatible only when it does not produce BOM
7301 on encoding (Bug#10383).
7302
7303 2011-12-26 Jan Djärv <jan.h.d@swipnet.se>
7304
7305 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
7306 can scroll.
7307 (create_and_show_popup_menu): Always use menu_position_func for
7308 Gtk3 (Bug#10361).
7309
7310 2011-12-24 Andreas Schwab <schwab@linux-m68k.org>
7311
7312 * callint.c (Fcall_interactively): Don't truncate prompt string.
7313
7314 2011-12-23 Eli Zaretskii <eliz@gnu.org>
7315
7316 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
7317 property that ends at ZV, so that the bidi iteration could be
7318 resumed from there (after widening). (Bug#10360)
7319
7320 2011-12-22 Jan Djärv <jan.h.d@swipnet.se>
7321
7322 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
7323
7324 2011-12-21 Jan Djärv <jan.h.d@swipnet.se>
7325
7326 * nsterm.m (x_free_frame_resources):
7327 Release f->output_data.ns->miniimage.
7328 (ns_index_color): Fix indentation. Do not retain
7329 color_table->colors[i].
7330
7331 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
7332 before returning.
7333
7334 * nsfns.m (x_set_background_color): Assign return value from
7335 ns_index_color to face-background instead of NSColor*.
7336 (ns_implicitly_set_icon_type): Fix indentation.
7337 Change assignment in for loop to comparison.
7338
7339 * emacs.c (ns_pool): New variable.
7340 (main): Assign ns_pool.
7341 (Fkill_emacs): Call ns_release_autorelease_pool.
7342
7343 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
7344 autorelease fdesc, release fdAttrs and tdict.
7345 (ns_get_covering_families): Release charset.
7346 (ns_findfonts): Release NSFontDescriptor created with new.
7347 (ns_uni_to_glyphs): Fix indentation.
7348 (setString): Release attrStr before assigning new value.
7349
7350 2011-12-18 Jan Djärv <jan.h.d@swipnet.se>
7351
7352 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
7353 and NS_IMPL_COCOA.
7354 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
7355 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
7356
7357 2011-12-18 David Reitter <reitter@cmu.edu>
7358
7359 * nsterm.m (ns_term_init): Subscribe for notifications
7360 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
7361 to method trackingNotification in EmacsMenu.
7362
7363 * nsmenu.m (trackingMenu): New variable.
7364 (trackingNotification): New method (from Aquamacs).
7365 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
7366 from Aquamacs (Bug#7030).
7367
7368 2011-12-18 Jan Djärv <jan.h.d@swipnet.se>
7369
7370 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
7371 (symbol_to_nsstring): Fix indentation.
7372 (ns_symbol_to_pb): New function.
7373 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
7374 (Fns_rotate_cut_buffers_internal): Remove.
7375 (Fns_store_selection_internal): Rename from
7376 Fns_store_cut_buffer_internal.
7377 (ns_get_foreign_selection, Fx_own_selection_internal)
7378 (Fx_disown_selection_internal, Fx_selection_exists_p)
7379 (Fns_get_selection_internal, Fns_store_selection_internal):
7380 Use ns_symbol_to_pb and check if return value is nil.
7381 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
7382 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
7383 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
7384 renamed to Sns_store_selection_internal.
7385 (ns_handle_selection_request): Move code to Fx_own_selection_internal
7386 and remove this function.
7387 (ns_handle_selection_clear): Remove, never used.
7388 (Fx_own_selection_internal): Move code from ns_handle_selection_request
7389 here.
7390
7391 2011-12-17 Ken Brown <kbrown@cornell.edu>
7392
7393 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
7394 GID is unknown (Bug#10257).
7395
7396 2011-12-17 Paul Eggert <eggert@cs.ucla.edu>
7397
7398 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
7399 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
7400 which caused a build failure on GNU/Linux IA-64. This problem was
7401 introduced by my 2011-10-07 patch.
7402
7403 2011-12-15 Juri Linkov <juri@jurta.org>
7404
7405 * image.c (imagemagick_error): New function. (Bug#10112)
7406 (imagemagick_load_image): Comment out `MagickSetResolution' call.
7407 Use `imagemagick_error' where ImageMagick functions return
7408 `MagickFalse'.
7409 (Fimagemagick_types): Add `Fnreverse' to return the list in the
7410 proper order.
7411
7412 2011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7413
7414 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
7415 fill background (Bug#8992).
7416
7417 2011-12-13 Martin Rudalics <rudalics@gmx.at>
7418
7419 * window.c (Vwindow_combination_resize)
7420 (Vwindow_combination_limit): Use t instead of non-nil in
7421 doc-strings.
7422 (Vrecenter_redisplay): Add first sentence of doc-string on
7423 separate line.
7424 (Frecenter): Fix doc-string typo.
7425
7426 2011-12-11 Kenichi Handa <handa@m17n.org>
7427
7428 * coding.c (Funencodable_char_position): Pay attention to the
7429 buffer text relocation (Bug#9389).
7430
7431 2011-12-10 Jan Djärv <jan.h.d@swipnet.se>
7432
7433 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
7434 gtk_init (Bug#10100).
7435
7436 2011-12-10 Eli Zaretskii <eliz@gnu.org>
7437
7438 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
7439 IT->string is nil. (Bug#10263)
7440
7441 2011-12-10 Jan Djärv <jan.h.d@swipnet.se>
7442
7443 * nsterm.h (x_free_frame_resources): Declare.
7444
7445 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
7446 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
7447
7448 * nsterm.h (ns_get_defaults_value): Declare.
7449
7450 * nsterm.m (ns_default): Call ns_get_defaults_value.
7451
7452 2011-12-09 Eli Zaretskii <eliz@gnu.org>
7453
7454 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
7455 (Bug#10170)
7456
7457 2011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7458
7459 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
7460 that where the value of an _OBJC_* symbol points to is in the .bss
7461 section (Bug#10240).
7462
7463 2011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
7464
7465 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
7466 after the loop to call ccl_driver at least once (Bug#8619).
7467
7468 2011-12-08 Kenichi Handa <handa@m17n.org>
7469
7470 * ftfont.c (get_adstyle_property): Fix previous change
7471 (Bug#10233).
7472
7473 2011-12-07 Juanma Barranquero <lekktu@gmail.com>
7474
7475 * w32.c (init_environment): If no_site_lisp, remove site-lisp
7476 dirs from the default value of EMACSLOADPATH (bug#10208).
7477
7478 2011-12-07 Glenn Morris <rgm@gnu.org>
7479
7480 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
7481 installation and source directories as well. (Bug#10208)
7482
7483 2011-12-06 Chong Yidong <cyd@gnu.org>
7484
7485 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
7486
7487 2011-12-06 Glenn Morris <rgm@gnu.org>
7488
7489 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
7490 as an error, not just -1. (Bug#10217)
7491
7492 2011-12-05 Chong Yidong <cyd@gnu.org>
7493
7494 * keyboard.c (process_special_events): New function.
7495 (swallow_events, Finput_pending_p): Use it (Bug#10195).
7496
7497 2011-12-05 Paul Eggert <eggert@cs.ucla.edu>
7498
7499 * coding.c (encode_designation_at_bol): Don't use uninitialized
7500 local variable (Bug#9318).
7501
7502 2011-12-05 Kenichi Handa <handa@m17n.org>
7503
7504 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
7505 return Qnil (Bug#8046, Bug#10193).
7506
7507 2011-12-05 Kenichi Handa <handa@m17n.org>
7508
7509 * coding.c (encode_designation_at_bol): New args charbuf_end and
7510 dst. Return the number of produced bytes. Callers changed.
7511 (coding_set_source): Return how many bytes coding->source was
7512 relocated.
7513 (coding_set_destination): Return how many bytes
7514 coding->destination was relocated.
7515 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
7516 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
7517
7518 2011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
7519
7520 * coding.c (CODING_CHAR_CHARSET_P): New macro.
7521 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
7522 macro (Bug#9318).
7523
7524 2011-12-05 Andreas Schwab <schwab@linux-m68k.org>
7525
7526 The following changes are to fix Bug#9318.
7527
7528 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
7529 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
7530 (encode_coding_iso_2022, encode_coding_sjis)
7531 (encode_coding_big5, encode_coding_charset): Use the above macros.
7532
7533 2011-12-05 Juanma Barranquero <lekktu@gmail.com>
7534
7535 * lisp.h (process_quit_flag): Fix external declaration.
7536
7537 2011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
7538
7539 Don't macro-inline non-performance-critical code.
7540 * eval.c (process_quit_flag): New function.
7541 * lisp.h (QUIT): Use it.
7542
7543 2011-12-04 Jan Djärv <jan.h.d@swipnet.se>
7544
7545 * nsfns.m (get_geometry_from_preferences): New function.
7546 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
7547
7548 2011-12-04 Andreas Schwab <schwab@linux-m68k.org>
7549
7550 * emacs.c (Qkill_emacs): Define.
7551 (syms_of_emacs): Initialize it.
7552 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
7553 Qquit_flag to `kill-emacs' instead.
7554 (quit_throw_to_read_char): Add parameter `from_signal'.
7555 All callers changed. Call Fkill_emacs if requested and safe.
7556 * lisp.h (QUIT): Call Fkill_emacs if requested.
7557
7558 2011-12-03 Jan Djärv <jan.h.d@swipnet.se>
7559
7560 * widget.c (update_wm_hints): Return if wmshell is null.
7561 (widget_update_wm_size_hints): New function.
7562
7563 * widget.h (widget_update_wm_size_hints): Declare.
7564
7565 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
7566 widget_update_wm_size_hints (Bug#10104).
7567
7568 2011-12-03 Eli Zaretskii <eliz@gnu.org>
7569
7570 * xdisp.c (handle_invisible_prop): If the invisible text ends just
7571 before a newline, prepare the bidi iterator for consuming the
7572 newline, and keep the current paragraph direction. (Bug#10183)
7573 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
7574
7575 2011-12-02 Juri Linkov <juri@jurta.org>
7576
7577 * search.c (Fword_search_regexp): New Lisp function created from
7578 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
7579 (Fword_search_backward, Fword_search_forward)
7580 (Fword_search_backward_lax, Fword_search_forward_lax):
7581 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
7582 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
7583
7584 2011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
7585
7586 * fileio.c (Finsert_file_contents): Move after-change-function call
7587 to before the "handled:" label, since all "goto handled" appear in
7588 cases where the *-change-functions have already been properly called
7589 (bug#10117).
7590
7591 2011-12-01 Andreas Schwab <schwab@linux-m68k.org>
7592
7593 * keyboard.c (interrupt_signal): Don't call kill-emacs when
7594 waiting for input. (Bug#10169)
7595
7596 2011-11-30 Eli Zaretskii <eliz@gnu.org>
7597
7598 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
7599 verifies glyph row's hash code--we have just reallocated the
7600 glyphs, so their contents can be complete garbage. (Bug#10164)
7601
7602 2011-11-30 Juanma Barranquero <lekktu@gmail.com>
7603
7604 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
7605
7606 2011-11-30 Eli Zaretskii <eliz@gnu.org>
7607
7608 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
7609 attributes are tested _before_ calling verify_row_hash, to protect
7610 against GCC re-ordering of the tests. (Bug#10164)
7611
7612 2011-11-29 Jan Djärv <jan.h.d@swipnet.se>
7613
7614 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
7615
7616 * xterm.c (handle_one_xevent): Only set async_visible and friends
7617 if net_wm_state_hidden_seen is non-zero (Bug#10002)
7618 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
7619 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
7620
7621 2011-11-28 Paul Eggert <eggert@cs.ucla.edu>
7622
7623 Remove GCPRO-related macros that exist only to avoid shadowing locals.
7624 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
7625 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
7626 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
7627 All uses changed to use GCPRO1 etc.
7628 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
7629 Revert to old implementation (i.e., before 2011-03-11).
7630
7631 2011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7632
7633 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
7634 of scroll runs so as to avoid assigning disabled bogus rows and
7635 unnecessary graphics copy operations.
7636
7637 2011-11-27 Eli Zaretskii <eliz@gnu.org>
7638
7639 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
7640 (snprintf) [_MSC_VER]: Redirect to _snprintf.
7641 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
7642 (malloc, free, realloc, calloc): Redirect to e_* only when
7643 compiling Emacs.
7644
7645 * lisp.h (GCTYPEBITS): Move before first use.
7646 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
7647 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
7648 this macro definition.
7649
7650 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
7651 _MSC_VER.
7652
7653 2011-11-27 Jan Djärv <jan.h.d@swipnet.se>
7654
7655 * gtkutil.c (xg_create_frame_widgets):
7656 Call gtk_window_set_has_resize_grip (FALSE) if that function is
7657 present with Gtk+ 2.0.
7658
7659 2011-11-26 Paul Eggert <eggert@cs.ucla.edu>
7660
7661 * fileio.c (Finsert_file_contents): Undo previous change; see
7662 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
7663
7664 2011-11-26 Paul Eggert <eggert@cs.ucla.edu>
7665
7666 Rename locals to avoid shadowing.
7667 * fileio.c (Finsert_file_contents):
7668 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
7669 * process.c (wait_reading_process_output):
7670 Rename inner 'proc' to 'p' to avoid shadowing.
7671 Indent for consistency with usual Emacs style.
7672
7673 2011-11-25 Eli Zaretskii <eliz@gnu.org>
7674
7675 * xdisp.c (redisplay_window): If cursor row is not fully visible
7676 after recentering, and scroll-conservatively is set to a large
7677 number, scroll window by a few more lines to make the cursor fully
7678 visible and out of scroll-margin. (Bug#10105)
7679 (start_display): Don't move to the next line if the display should
7680 start at a newline that is part of a display vector or an overlay
7681 string. (Bug#10119)
7682
7683 2011-11-24 Juri Linkov <juri@jurta.org>
7684
7685 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
7686 after the `MagickPingImage' call. (Bug#10112)
7687
7688 2011-11-23 Chong Yidong <cyd@gnu.org>
7689
7690 * window.c (Fcoordinates_in_window_p): Accept only live windows.
7691
7692 2011-11-23 Martin Rudalics <rudalics@gmx.at>
7693
7694 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
7695 making another buffer current. (Bug#10114)
7696
7697 2011-11-23 Glenn Morris <rgm@gnu.org>
7698
7699 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
7700
7701 2011-11-23 Chong Yidong <cyd@gnu.org>
7702
7703 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
7704 using it (Bug#5984).
7705
7706 2011-11-22 Eli Zaretskii <eliz@gnu.org>
7707
7708 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
7709 and header-lines, as they don't have one computed for them.
7710 (Bug#10098)
7711
7712 * .gdbinit (prow): Make displayed values more self-explaining.
7713 Add row's hash code.
7714
7715 2011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
7716
7717 * process.c (wait_reading_process_output): Fix asynchrounous
7718 GnuTLS socket handling on some versions of the GnuTLS library.
7719 (wait_reading_process_output): Add comment and URL.
7720
7721 2011-11-21 Jan Djärv <jan.h.d@swipnet.se>
7722
7723 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
7724
7725 2011-11-21 Chong Yidong <cyd@gnu.org>
7726
7727 * window.c (Fnext_window, Fprevious_window): Doc fix.
7728
7729 2011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
7730
7731 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
7732
7733 2011-11-20 Juanma Barranquero <lekktu@gmail.com>
7734
7735 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
7736
7737 2011-11-20 Martin Rudalics <rudalics@gmx.at>
7738
7739 * window.c (Fset_window_combination_limit): Rename argument
7740 STATUS to LIMIT.
7741 (Vwindow_combination_limit): Remove "status" from doc-string.
7742
7743 2011-11-20 Andreas Schwab <schwab@linux-m68k.org>
7744
7745 * m/ibms390.h: Remove.
7746 * m/ibms390x.h: Don't include "ibms390.h".
7747
7748 2011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
7749
7750 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
7751 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
7752
7753 2011-11-20 Juanma Barranquero <lekktu@gmail.com>
7754
7755 * casetab.c (Fset_case_table):
7756 * charset.c (Fcharset_after): Fix typos.
7757
7758 2011-11-20 Paul Eggert <eggert@cs.ucla.edu>
7759
7760 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
7761 Otherwise, valgrind does not work on some platforms.
7762 Problem reported by Andreas Schwab in
7763 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
7764 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
7765 is set, removing the need for VIRT_ADDRESS_VARIES.
7766 (PURE_P): Use a more-efficient implementation that needs just one
7767 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
7768 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
7769 to 4 (xorl, subq, cmpq, setbe).
7770 * alloc.c (pure): Always extern now, since that's the
7771 VIRT_ADDR_VARIES behavior.
7772 (PURE_POINTER_P): Use a single comparison, not two, for
7773 consistency with the new puresize.h.
7774 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
7775 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
7776 Remove VIRT_ADDR_VARIES no longer needed.
7777
7778 2011-11-19 Eli Zaretskii <eliz@gnu.org>
7779
7780 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
7781 (erase_phys_cursor, update_window_cursor, show_mouse_face)
7782 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
7783 behave as if the cursor position were at the window margin.
7784
7785 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
7786 and the cursor position is out of bounds, behave as if the cursor
7787 position were at the window margin. (Bug#10075)
7788
7789 2011-11-18 Chong Yidong <cyd@gnu.org>
7790
7791 * window.c (Fwindow_combination_limit): Make first argument
7792 non-optional, since it is meaningless for live windows like the
7793 selected window.
7794
7795 2011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
7796
7797 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
7798
7799 2011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
7800
7801 * intervals.c: Fix grafting over the whole buffer (bug#10071).
7802 (graft_intervals_into_buffer): Simplify.
7803
7804 2011-11-18 Eli Zaretskii <eliz@gnu.org>
7805
7806 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
7807 hash values of the two rows.
7808 (copy_row_except_pointers): Preserve the used[] arrays and the
7809 hash values of the two rows. (Bug#10035)
7810 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
7811
7812 * xdisp.c (row_hash): New function, body extracted from
7813 compute_line_metrics.
7814 (compute_line_metrics): Call row_hash, instead of computing the
7815 hash code inline.
7816
7817 * dispnew.c (verify_row_hash): Call row_hash for computing the
7818 hash code of a row, instead of duplicating code from xdisp.c.
7819
7820 * dispextern.h (row_hash): Add prototype.
7821
7822 2011-11-18 Tassilo Horn <tassilo@member.fsf.org>
7823
7824 * frame.c (delete_frame): Don't delete the terminal when the last
7825 X frame is closed if emacs is built with GTK toolkit.
7826
7827 2011-11-17 Juanma Barranquero <lekktu@gmail.com>
7828
7829 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
7830
7831 2011-11-17 Martin Rudalics <rudalics@gmx.at>
7832
7833 * window.c (Vwindow_splits): Rename to
7834 Vwindow_combination_resize. Suggested by Juri Linkov.
7835 (Fsplit_window_internal): Use Vwindow_combination_resize instead
7836 of Vwindow_splits.
7837
7838 2011-11-16 Juanma Barranquero <lekktu@gmail.com>
7839
7840 * nsfns.m (Fns_font_name):
7841 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
7842
7843 2011-11-16 Martin Rudalics <rudalics@gmx.at>
7844
7845 * window.h (window): Rename slot "nest" to "combination_limit".
7846 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
7847 (Fset_window_nest): Rename to Fset_window_combination_limit.
7848 (Vwindow_nest): Rename to Vwindow_combination_limit.
7849 (recombine_windows, make_parent_window, make_window)
7850 (Fsplit_window_internal, saved_window)
7851 (Fset_window_configuration, save_window_save): Rename all
7852 occurrences of window_nest to window_combination_limit.
7853
7854 2011-11-15 Juanma Barranquero <lekktu@gmail.com>
7855
7856 * image.c (imagemagick_load_image): Fix typo.
7857
7858 2011-11-14 Eli Zaretskii <eliz@gnu.org>
7859
7860 * xdisp.c (display_line): Move the call to
7861 highlight_trailing_whitespace before the call to
7862 compute_line_metrics, since the latter needs to see the final
7863 faces of all the glyphs to compute ROW's hash value.
7864 Fixes assertion violations in row_equal_p. (Bug#10035)
7865
7866 2011-11-14 Juanma Barranquero <lekktu@gmail.com>
7867
7868 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
7869 just return (bug#10044).
7870
7871 2011-11-12 Eli Zaretskii <eliz@gnu.org>
7872
7873 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
7874 with user-defined heap size. Bump the default size of the temacs
7875 heap to 27MB, to avoid memory warning when running temacs.
7876 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
7877
7878 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
7879 current_matrix and desired_matrix. (Bug#9990)
7880 (verify_row_hash) [XASSERTS]: New function.
7881 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
7882 that the hash value of glyph rows is correct.
7883
7884 2011-11-12 Martin Rudalics <rudalics@gmx.at>
7885
7886 * window.h (window): Remove splits slot.
7887 * window.c (Fwindow_splits, Fset_window_splits): Remove.
7888 (Fdelete_other_windows_internal, make_parent_window)
7889 (make_window, Fsplit_window_internal, Fdelete_window_internal)
7890 (Fset_window_configuration, save_window_save): Don't deal with
7891 split status of windows.
7892 (saved_window): Remove splits slot.
7893 (Vwindow_splits): Rewrite doc-string.
7894
7895 2011-11-11 Jan Djärv <jan.h.d@swipnet.se>
7896
7897 * xfns.c (unwind_create_frame):
7898 * nsfns.m (unwind_create_frame):
7899 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
7900 Vframe_list (Bug#9999).
7901
7902 2011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
7903
7904 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
7905
7906 2011-11-11 Kenichi Handa <handa@m17n.org>
7907
7908 * callproc.c (Fcall_process): Set the member dst_multibyte of
7909 process_coding.
7910
7911 2011-11-11 Johan Bockgård <bojohan@gnu.org>
7912
7913 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
7914 avoid a crash (bug#9496).
7915
7916 2011-11-09 Chong Yidong <cyd@gnu.org>
7917
7918 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
7919 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
7920
7921 2011-11-08 Paul Eggert <eggert@cs.ucla.edu>
7922
7923 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
7924
7925 2011-11-08 Paul Eggert <eggert@cs.ucla.edu>
7926
7927 Avoid some portability problems by eschewing 'extern inline' functions.
7928 The trivial performance wins aren't worth the portability hassles; see
7929 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
7930 et seq.
7931 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
7932 (window_box_width, window_box_left, window_box_left_offset)
7933 (window_box_right, window_box_right_offset): Undo previous change,
7934 by removing the "extern"s.
7935 * intervals.c (adjust_intervals_for_insertion)
7936 (adjust_intervals_for_deletion): Undo previous change,
7937 making these static again.
7938 (offset_intervals, temp_set_point_both, temp_set_point)
7939 (copy_intervals_to_string): No longer inline.
7940 * xdisp.c (window_text_bottom_y, window_box_width)
7941 (window_box_height, window_box_left_offset)
7942 (window_box_right_offset, window_box_left, window_box_right)
7943 (window_box): No longer inline.
7944
7945 2011-11-08 Chong Yidong <cyd@gnu.org>
7946
7947 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
7948 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
7949 Signal an error if not a live window.
7950 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
7951 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
7952
7953 2011-11-07 Juanma Barranquero <lekktu@gmail.com>
7954
7955 * lisp.h (syms_of_abbrev): Remove declaration.
7956 Reported by CHENG Gao <chenggao@royau.me>.
7957
7958 2011-11-07 Eli Zaretskii <eliz@gnu.org>
7959
7960 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
7961 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
7962 of temacs in GUI mode.
7963
7964 2011-11-07 Martin Rudalics <rudalics@gmx.at>
7965
7966 * window.h: Declare delete_all_child_windows instead of
7967 delete_all_subwindows.
7968 * window.c (Fwindow_nest, Fset_window_nest)
7969 (Fset_window_new_total, Fset_window_new_normal)
7970 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
7971 (delete_all_subwindows): Rename to delete_all_child_windows.
7972 (Fdelete_other_windows_internal, Fset_window_configuration):
7973 Call delete_all_child_windows instead of delete_all_subwindows.
7974 * frame.c (delete_frame): Call delete_all_child_windows instead
7975 of delete_all_subwindows.
7976
7977 2011-11-07 Paul Eggert <eggert@cs.ucla.edu>
7978
7979 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
7980 This is also needed for porting to any host where GC_MARK_STACK is
7981 not GC_MAKE_GCPROS_NOOPS.
7982 (which_symbols): Use it.
7983
7984 2011-11-07 Kenichi Handa <handa@m17n.org>
7985
7986 * coding.c (coding_set_destination): Check coding->src_pos only
7987 when coding->src_object is a buffer (bug#9910).
7988
7989 * process.c (send_process): Set the member src_multibyte of coding
7990 to 0 (bug#9911) when sending a unibyte text.
7991
7992 * callproc.c (Fcall_process): Set the member src_multibyte of
7993 process_coding to 0 (bug#9912).
7994
7995 2011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7996
7997 * xmenu.c (cleanup_widget_value_tree): New function.
7998 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
7999 calling free_menubar_widget_value_tree directly (Bug#9830).
8000
8001 2011-11-06 Paul Eggert <eggert@cs.ucla.edu>
8002
8003 Fix some portability problems with 'inline'.
8004 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
8005 (window_box_width, window_box_left, window_box_left_offset)
8006 (window_box_right, window_box_right_offset): Declare extern.
8007 Otherwise, these inline functions do not conform to C99 and
8008 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
8009 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
8010 * intervals.c (adjust_intervals_for_insertion)
8011 (adjust_intervals_for_deletion): Now extern, because otherwise the
8012 extern inline functions 'offset_intervals' couldn't refer to it.
8013 (static_offset_intervals): Remove.
8014 (offset_intervals): Rewrite using the old contents of
8015 static_offset_intervals. The old version didn't conform to C99
8016 because an extern inline function contained a reference to an
8017 identifier with static linkage.
8018
8019 2011-11-06 Andreas Schwab <schwab@linux-m68k.org>
8020
8021 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
8022 GC.
8023
8024 2011-11-06 Eli Zaretskii <eliz@gnu.org>
8025
8026 * xdisp.c (init_iterator, reseat_to_string): Don't set the
8027 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
8028 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
8029 return Qleft_to_right.
8030
8031 2011-11-06 Chong Yidong <cyd@gnu.org>
8032
8033 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
8034 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
8035 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
8036 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
8037 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
8038 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
8039 (Fwindow_vscroll): Doc fix.
8040 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
8041 argument, since it makes no sense to pass a live window and for
8042 consistency with window-child.
8043
8044 2011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
8045
8046 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
8047 support MSVC.
8048
8049 2011-11-05 Jason Rumney <jasonr@gnu.org>
8050
8051 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
8052 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
8053 fonts (Bug#6029).
8054 (add_font_entity_to_list): Fix logic errors in mixed boolean and
8055 bitwise arithmetic preventing use of unicode-sip and non-truetype
8056 opentype fonts.
8057
8058 2011-11-05 Eli Zaretskii <eliz@gnu.org>
8059
8060 * s/ms-w32.h (fstat, stat, utime): Move redirections to
8061 "emacs"-only part.
8062
8063 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
8064 initialization code to keep similarity to xfns.c after changes
8065 from 2011-11-05.
8066
8067 2011-11-05 Jan Djärv <jan.h.d@swipnet.se>
8068
8069 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
8070 (unwind_create_frame): New function (Bug#9943).
8071 (Fx_create_frame): Restructure code to be more similar to the one in
8072 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
8073 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
8074 Move terminal->reference_count++ just before making the frame official
8075 (Bug#9943).
8076
8077 * nsterm.m (x_free_frame_resources): New function.
8078 (x_destroy_window): Move code to x_free_frame_resources.
8079
8080 * xfns.c (unwind_create_frame): Fix comment.
8081 (Fx_create_frame, x_create_tip_frame):
8082 Move terminal->reference_count++ just before making the frame
8083 official. Move initialization of image_cache_refcount and
8084 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
8085
8086 2011-11-05 Eli Zaretskii <eliz@gnu.org>
8087
8088 Support MSVC build with newer versions of Visual Studio.
8089 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
8090 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
8091 nt/gmake.defs.
8092
8093 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
8094 which are not supported by MSVC.
8095 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
8096 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
8097 bitfields.
8098 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
8099 types in bitfields.
8100 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
8101
8102 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
8103
8104 2011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
8105
8106 Support MSVC build with newer versions of Visual Studio.
8107 * w32.c: Don't include w32api.h for MSVC.
8108 (init_environment) [_MSC_VER]: Call sys_access, not _access.
8109
8110 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
8111 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
8112 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
8113 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
8114 e_* cousins.
8115 (alloca) [_MSC_VER]: Define to _alloca.
8116
8117 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
8118
8119 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
8120
8121 2011-11-04 Eli Zaretskii <eliz@gnu.org>
8122
8123 * xdisp.c (note_mouse_highlight): If either of
8124 previous/next-single-property-change returns nil, treat that as
8125 the beginning or the end of the buffer. (Bug#9955)
8126
8127 2011-11-04 Jan Djärv <jan.h.d@swipnet.se>
8128
8129 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
8130 label is not null (Bug#9951).
8131 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
8132 may be NULL.
8133
8134 2011-11-04 Eli Zaretskii <eliz@gnu.org>
8135
8136 * window.c (Fwindow_body_size): Mention in the doc string that the
8137 return value is in frame's canonical units. (Bug#9949)
8138
8139 2011-11-03 Eli Zaretskii <eliz@gnu.org>
8140
8141 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
8142
8143 * w32fns.c (unwind_create_frame): If needed, free the glyph
8144 matrices of the partially constructed frame. (Bug#9943)
8145 * xfns.c (unwind_create_frame): Likewise.
8146
8147 2011-11-01 Eli Zaretskii <eliz@gnu.org>
8148
8149 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
8150 Don't stop backward scan on the continuation glyph, even though
8151 its CHARPOS is positive.
8152 (mouse_face_from_buffer_pos, note_mouse_highlight):
8153 Rename cover_string to disp_string.
8154
8155 2011-11-01 Martin Rudalics <rudalics@gmx.at>
8156
8157 * window.c (temp_output_buffer_show): Don't use
8158 Vtemp_buffer_show_specifiers.
8159 (Vtemp_buffer_show_specifiers): Remove unused variable.
8160
8161 2011-10-30 Eli Zaretskii <eliz@gnu.org>
8162
8163 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
8164 past the beginning of the current glyph matrix.
8165
8166 2011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
8167
8168 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
8169 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
8170 HAVE_GTK3 (Bug#9869).
8171
8172 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
8173 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
8174
8175 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
8176
8177 * xterm.c: Declare x_handle_net_wm_state to return int.
8178 (handle_one_xevent): Check if we are iconified but don't have
8179 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
8180 (get_current_wm_state): Return non-zero if not hidden,
8181 check for _NET_WM_STATE_HIDDEN (Bug#9893).
8182 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
8183 (x_handle_net_wm_state): Return what get_current_wm_state returns.
8184 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
8185
8186 2011-10-29 Paul Eggert <eggert@cs.ucla.edu>
8187
8188 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
8189 so that this new function doesn't get optimized away by a
8190 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
8191
8192 2011-10-29 Andreas Schwab <schwab@linux-m68k.org>
8193
8194 * frame.h (MOUSE_HL_INFO): Remove excess parens.
8195
8196 2011-10-29 Eli Zaretskii <eliz@gnu.org>
8197
8198 Fix the `xbytecode' command.
8199 * .gdbinit (xprintbytestr): New command.
8200 (xwhichsymbols): Rename from `which'; all callers changed.
8201 (xbytecode): Print the byte-code string as well.
8202
8203 2011-10-29 Kim Storm <storm@cua.dk>
8204
8205 * alloc.c (which_symbols): New function.
8206
8207 2011-10-29 Andreas Schwab <schwab@linux-m68k.org>
8208
8209 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
8210 line. (Bug#9903)
8211
8212 2011-10-29 Glenn Morris <rgm@gnu.org>
8213
8214 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
8215 Not clear what it was for, and it causes various bugs. (Bug#9839)
8216
8217 2011-10-28 Eli Zaretskii <eliz@gnu.org>
8218
8219 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
8220 possible random value that matches one of those tested as
8221 condition to clear the mouse face.
8222
8223 2011-10-28 Chong Yidong <cyd@gnu.org>
8224
8225 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
8226
8227 2011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
8228
8229 * window.c (make_window): Initialize phys_cursor_on_p.
8230
8231 2011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
8232
8233 * lisp.h (struct Lisp_Symbol): Update comments.
8234
8235 2011-10-28 Juanma Barranquero <lekktu@gmail.com>
8236
8237 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
8238
8239 2011-10-28 Eli Zaretskii <eliz@gnu.org>
8240
8241 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
8242 <oslsachem@gmail.com> for helping to debug this.
8243
8244 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
8245 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
8246 (g_b_init_get_glyph_outline_w): New static variables.
8247 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
8248 (GetGlyphOutlineW_Proc): New typedefs.
8249 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
8250 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
8251 New functions.
8252 (w32font_open_internal, compute_metrics):
8253 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
8254 instead of calling the "wide" APIs directly.
8255
8256 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
8257
8258 * w32.h (syms_of_w32font): Add prototype.
8259
8260 2011-10-27 Juanma Barranquero <lekktu@gmail.com>
8261
8262 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
8263 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
8264 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
8265 (Fmove_to_window_line): Doc fix.
8266
8267 2011-10-27 Chong Yidong <cyd@gnu.org>
8268
8269 * process.c (make_process): Set gnutls_state to NULL.
8270
8271 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
8272 non-NULL, regardless of GNUTLS_INITSTAGE.
8273 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
8274 an error. Set process slots as soon as we allocate them.
8275
8276 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
8277
8278 2011-10-27 Chong Yidong <cyd@gnu.org>
8279
8280 * gnutls.c (emacs_gnutls_deinit): New function.
8281 Deallocate credentials structures as well as calling gnutls_deinit.
8282 (Fgnutls_deinit, Fgnutls_boot): Use it.
8283
8284 * process.c (make_process): Initialize GnuTLS credentials to NULL.
8285 (deactivate_process): Call emacs_gnutls_deinit.
8286
8287 2011-10-27 Juanma Barranquero <lekktu@gmail.com>
8288
8289 * image.c (x_create_x_image_and_pixmap):
8290 * w32.c (sys_rename, w32_delayed_load):
8291 * w32font.c (fill_in_logfont):
8292 * w32reg.c (x_get_string_resource): Silence compiler warnings.
8293
8294 2011-10-26 Juanma Barranquero <lekktu@gmail.com>
8295
8296 * w32fns.c (w32_default_color_map): New function,
8297 extracted from Fw32_default_color_map.
8298 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
8299
8300 2011-10-25 Paul Eggert <eggert@cs.ucla.edu>
8301
8302 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
8303
8304 2011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
8305
8306 * keyboard.c (test_undefined): New function (bug#9751).
8307 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
8308
8309 2011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
8310
8311 * sysdep.c (init_sys_modes): Fix the check for the controlling
8312 terminal (Bug#6649).
8313
8314 2011-10-20 Eli Zaretskii <eliz@gnu.org>
8315
8316 * dispextern.h (struct bidi_it): New member next_en_type.
8317
8318 * bidi.c (bidi_line_init): Initialize the next_en_type member.
8319 (bidi_resolve_explicit_1): When next_en_pos is valid for the
8320 current character, check also for next_en_type being WEAK_EN.
8321 (bidi_resolve_weak): Don't enter the expensive loop if the current
8322 position is before next_en_pos. Record the bidi type of the first
8323 non-ET, non-BN character we find, in addition to its position.
8324 (bidi_level_of_next_char): Invalidate next_en_type when
8325 next_en_pos is over-stepped.
8326
8327 2011-10-20 Paul Eggert <eggert@cs.ucla.edu>
8328
8329 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
8330 * editfns.c: Rewrite current-time-zone so that it invokes
8331 the equivalent of (format-time-string "%Z") to get the time zone name.
8332 This fixes a bug when the time zone name contains characters that
8333 need converting from the system time locale to Emacs internal format.
8334 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
8335 that patch fixed format-time-string to do the conversion, but
8336 I forgot to fix current-time-zone.
8337 (format_time_string): New function, containing most of
8338 what Fformat_time_string used to contain.
8339 (Fformat_time_string): Rewrite in terms of format_time_string.
8340 This doesn't change this function's behavior.
8341 (current-time-zone): Rewrite to use format_time_string.
8342 This fixes the bug reported by Michael Schierl in
8343 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
8344 Jason Rumney's 2007-06-07 change worked around this bug, but
8345 didn't fix it.
8346 * systime.h (tzname, timezone): Remove no-longer-used declarations.
8347
8348 2011-10-19 Eli Zaretskii <eliz@gnu.org>
8349
8350 * xdisp.c (start_display): If the character at POS is displayed
8351 via a display vector, reset IT->current.dpvec_index to zero.
8352 (try_window_reusing_current_matrix): If a line ends in a display
8353 vector or the next line starts in a display vector, continue
8354 redrawing the window even though the character position of
8355 start_row was reached.
8356 (Bug#9771, part 2)
8357
8358 2011-10-18 Chong Yidong <cyd@gnu.org>
8359
8360 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
8361 with nobreak-char-display too.
8362
8363 2011-10-18 Eli Zaretskii <eliz@gnu.org>
8364
8365 Fix part 3 of bug#9771.
8366 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
8367 (bidi_resolve_neutral): Don't enter the expensive loop looking for
8368 non-neutral characters if the current character is a paragraph
8369 separator (a.k.a. Newline). This avoids running the same
8370 expensive loop twice, once when we consume the preceding newline
8371 and the other time when the line actually needs to be displayed.
8372 Avoid the loop when we see neutrals on the base embedding level
8373 following a character whose directionality is the same as the
8374 paragraph's. This avoids running the expensive loop when a line
8375 ends in a long sequence of neutrals, like control characters.
8376 Add assertion against STRONG_AL type. Slightly rearrange code
8377 that determines the type of a neutral given the first non-neutral
8378 that follows it.
8379 (bidi_level_of_next_char): Set next_en_pos to zero when
8380 invalidating its info.
8381
8382 2011-10-17 Eli Zaretskii <eliz@gnu.org>
8383
8384 * xdisp.c (push_display_prop): Determine whether to record string
8385 or buffer position by IT->string, not by IT->method. Allow
8386 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
8387 (move_it_vertically_backward): Don't look for character position
8388 immediately after the newline when in a continuation line.
8389 (Bug#9771, part 1)
8390
8391 2011-10-15 Martin Rudalics <rudalics@gmx.at>
8392
8393 * window.c (coordinates_in_window): Rewrite and delabelize
8394 vertical border check. (Bug#5357) (Bug#9618)
8395
8396 2011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
8397
8398 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
8399 errors in XSetWindowBorder (bug#9310).
8400
8401 2011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
8402
8403 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
8404 avoid crash when xmalloc overrun checking is enabled.
8405
8406 2011-10-13 Eli Zaretskii <eliz@gnu.org>
8407
8408 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
8409 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
8410 cursor motion with <left> and <right> arrow keys.
8411
8412 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
8413 some callers set that themselves.
8414
8415 2011-10-12 Eli Zaretskii <eliz@gnu.org>
8416
8417 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
8418 display string and the previous row comes from the same string and
8419 is empty. (Bug#9739) (Bug#9738)
8420
8421 2011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
8422
8423 * doc.c (get_doc_string): Encode file name (bug#9735).
8424
8425 2011-10-12 Eli Zaretskii <eliz@gnu.org>
8426
8427 * bidi.c (bidi_level_of_next_char):
8428 * xdisp.c (get_visually_first_element): Remove old incorrect
8429 comments regarding the Unicode Line Separator character.
8430
8431 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
8432
8433 2011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
8434
8435 * alloc.c (Fgc_status): Do not access beyond zombies array
8436 boundary if nzombies > MAX_ZOMBIES.
8437 * alloc.c (dump_zombies): Add missing format specifier.
8438
8439 2011-10-12 Paul Eggert <eggert@cs.ucla.edu>
8440
8441 * xdisp.c (set_cursor_from_row): Simplify conditionals,
8442 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
8443
8444 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
8445 Some packages use them to denote characters with modifiers.
8446
8447 2011-10-11 Andreas Schwab <schwab@linux-m68k.org>
8448
8449 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
8450 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
8451 matching a pp-number. Rename parameter var to var1.
8452
8453 2011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
8454
8455 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
8456
8457 2011-10-08 Glenn Morris <rgm@gnu.org>
8458
8459 * callint.c (Fcall_interactively): Give a more explicit error for the
8460 'c' case with a non-character input. (Bug#8479)
8461
8462 2011-10-08 Eli Zaretskii <eliz@gnu.org>
8463
8464 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
8465 lines.
8466 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
8467 lines that are hscrolled on the left.
8468
8469 * dispnew.c (buffer_posn_from_coords): Account for a possible
8470 presence of header-line. (Bug#4426)
8471
8472 2011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
8473
8474 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
8475 Don't advertise functionality which we discourage or doesn't work.
8476
8477 2011-10-07 Paul Eggert <eggert@cs.ucla.edu>
8478
8479 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
8480 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
8481 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
8482 this makes Emacs dump core during garbage collection on rare
8483 occasions. sizeof is obviously inferior to offsetof here, so
8484 stick with offsetof.
8485 (GC_POINTER_ALIGNMENT): New macro.
8486 (mark_memory): Omit 3rd (offset) arg; caller changed.
8487 Don't assume EMACS_INT alignment is the same as pointer alignment.
8488
8489 2011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
8490
8491 * keyboard.c (read_key_sequence_remapped): New var.
8492 (read_key_sequence): Compute remapping in the right buffer.
8493 (command_loop_1): Use read_key_sequence's remapping directly.
8494
8495 2011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
8496
8497 * dired.c (file_name_completion): Don't expand file name.
8498 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
8499 before checking file name handler.
8500
8501 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
8502 they've been requested explicitly (bug#9591).
8503
8504 2011-10-01 Andreas Schwab <schwab@linux-m68k.org>
8505
8506 * keymap.c (Fsingle_key_description): Use make_specified_string
8507 instead of build_string to build string from push_key_description.
8508 (Bug#5193)
8509
8510 2011-09-30 Paul Eggert <eggert@cs.ucla.edu>
8511
8512 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
8513 This fixes a Y2038 bug on 64-bit hosts.
8514 * buffer.c (reset_buffer):
8515 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
8516 (Fclear_buffer_auto_save_failure):
8517 Use 0, not -1, to represent an unset failure time, since time_t
8518 might not be signed.
8519
8520 Remove dependency on glibc malloc internals.
8521 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
8522 Move back here from lisp.h, but with their new implementations.
8523 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
8524 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
8525 * charset.c (charset_table_init): New static var.
8526 (syms_of_charset): Use it instead of xmalloc. This removes a
8527 dependency on glibc malloc internals. See Eli Zaretskii's comment in
8528 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
8529 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
8530 Move back to alloc.c.
8531 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
8532 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
8533
8534 2011-09-30 Jan Djärv <jan.h.d@swipnet.se>
8535
8536 * nsterm.m (windowDidResize): Call x_set_window_size only when
8537 ns_in_resize is true. Otherwise set pixelwidth/height and
8538 call change_frame_size (Bug#9628).
8539
8540 2011-09-30 Paul Eggert <eggert@cs.ucla.edu>
8541
8542 Port --enable-checking=all to Fedora 14 x86-64.
8543 * charset.c (syms_of_charset): Also account for glibc malloc's
8544 internal overhead when calculating the initial malloc maximum.
8545
8546 Port --enable-checking=all to Fedora 14 x86.
8547 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
8548 Move to lisp.h.
8549 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
8550 (overrun_check_realloc, overrun_check_free):
8551 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
8552 That way, xmalloc returns a properly-aligned pointer even if
8553 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
8554 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
8555 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
8556 into account when calculating the initial malloc maximum.
8557 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
8558 Move here from alloc.c, so that charset.c can use it too.
8559 Properly align; the old code wasn't right for common 32-bit hosts
8560 when configured with --enable-checking=all.
8561 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
8562 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
8563
8564 2011-09-29 Eli Zaretskii <eliz@gnu.org>
8565
8566 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
8567 use EDOM.
8568
8569 2011-09-28 Eli Zaretskii <eliz@gnu.org>
8570
8571 * xdisp.c (compute_display_string_end): If there's no display
8572 string at CHARPOS, return -1.
8573
8574 * bidi.c (bidi_fetch_char): When compute_display_string_end
8575 returns a negative value, treat the character as a normal
8576 character not covered by a display string. (Bug#9624)
8577
8578 2011-09-28 Juanma Barranquero <lekktu@gmail.com>
8579
8580 * lread.c (Fread_from_string): Fix typo in docstring.
8581
8582 2011-09-27 Eli Zaretskii <eliz@gnu.org>
8583
8584 * xdisp.c (handle_invisible_prop): If invisible text ends on a
8585 newline, reseat the iterator instead of bidi-iterating there one
8586 character at a time. (Bug#9610)
8587 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
8588 TO_CHARPOS if the bidi iterator is at base embedding level.
8589
8590 2011-09-27 Andreas Schwab <schwab@linux-m68k.org>
8591
8592 * lread.c (readevalloop): Use correct code for NBSP.
8593 (read1): Likewise. (Bug#9608)
8594
8595 2011-09-25 Michael Albinus <michael.albinus@gmx.de>
8596
8597 * dbusbind.c (Fdbus_register_signal): When service is not
8598 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
8599
8600 2011-09-25 Glenn Morris <rgm@gnu.org>
8601
8602 * buffer.c (truncate-lines): Doc fix.
8603
8604 2011-09-24 Chong Yidong <cyd@stupidchicken.com>
8605
8606 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
8607 (Fset_window_next_buffers): Doc fix.
8608
8609 2011-09-24 Glenn Morris <rgm@gnu.org>
8610
8611 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
8612
8613 2011-09-24 Paul Eggert <eggert@cs.ucla.edu>
8614
8615 Fix minor problems found by static checking.
8616 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
8617 * indent.c (Fvertical_motion): Fix == vs = typo.
8618
8619 2011-09-24 Eli Zaretskii <eliz@gnu.org>
8620
8621 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
8622 Default value is now t. Doc fix.
8623
8624 * indent.c (Fvertical_motion): Compute and apply the overshoot
8625 logic when moving up, not only when moving down. Fix the
8626 confusing name and values of the it_overshoot_expected variable;
8627 logic changes accordingly. (Bug#9254) (Bug#9549)
8628
8629 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
8630 CHARPOS is covered by a display string which includes newlines.
8631 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
8632 is covered by a display string with embedded newlines.
8633
8634 2011-09-24 Michael Albinus <michael.albinus@gmx.de>
8635
8636 * dbusbind.c (Fdbus_register_signal): Add match rule to
8637 Vdbus_registered_objects_table. (Bug#9581)
8638 (Fdbus_register_method, Vdbus_registered_objects_table):
8639 Fix docstring.
8640
8641 2011-09-24 Jim Meyering <meyering@redhat.com>
8642
8643 do not ignore write error for any output size
8644 The previous change was incomplete.
8645 While it makes emacs --batch detect the vast majority of stdout
8646 write failures, errors were still ignored whenever the output size is
8647 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
8648 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
8649 && echo FAIL: ignored write error
8650 FAIL: ignored write error
8651 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
8652 && echo FAIL: ignored write error
8653 FAIL: ignored write error
8654 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
8655
8656 2011-09-23 Andreas Schwab <schwab@linux-m68k.org>
8657
8658 * emacs.c (Fkill_emacs): In noninteractive mode exit
8659 non-successfully if a write error occurred on stdout. (Bug#9574)
8660
8661 2011-09-21 Eli Zaretskii <eliz@gnu.org>
8662
8663 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
8664 the xassert test.
8665
8666 * dispextern.h (struct it): Update the comment documenting what
8667 can it->OBJECT be.
8668
8669 2011-09-20 Eli Zaretskii <eliz@gnu.org>
8670
8671 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
8672 a display string, extend search for cursor position to end of row.
8673 (find_row_edges): If the row ends in a newline from a display
8674 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
8675 Handle the case of a display string with multiple newlines.
8676 (Fcurrent_bidi_paragraph_direction): Fix search for previous
8677 non-empty line. Fixes confusing cursor motion with arrow keys at
8678 the beginning of a line that starts with whitespace.
8679
8680 2011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
8681
8682 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
8683 (bug#9493).
8684
8685 2011-09-18 Chong Yidong <cyd@stupidchicken.com>
8686
8687 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
8688 boolean (Bug#9154).
8689
8690 2011-09-18 Eli Zaretskii <eliz@gnu.org>
8691
8692 * xdisp.c (display_line): Record maximum and minimum buffer
8693 positions even if no glyphs were produced (e.g., by a zero-width
8694 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
8695 buffer positions that will be removed from the glyph row because
8696 they don't fit.
8697 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
8698 column is beyond frame width: don't subtract 1 "pixel" when
8699 computing width of the stretch.
8700 (reseat_at_next_visible_line_start): Undo the change made on
8701 2011-09-17 that saved paragraph information and restored it after
8702 the call to `reseat'. (Bug#9545)
8703
8704 2011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
8705
8706 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
8707 and turn window cursor on if cleared (Bug#9415).
8708
8709 2011-09-18 Andreas Schwab <schwab@linux-m68k.org>
8710
8711 * search.c (boyer_moore): Take unibyte characters from pattern
8712 literally. (Bug#9458)
8713
8714 2011-09-18 Eli Zaretskii <eliz@gnu.org>
8715
8716 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
8717
8718 2011-09-18 Paul Eggert <eggert@cs.ucla.edu>
8719
8720 Fix minor problem found by static checking.
8721 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
8722 initialized, to pacify gcc -Wuninitialized.
8723
8724 * fileio.c: Report proper errno when syscall falls.
8725 (Finsert_file_contents): Save and restore errno,
8726 so that report_file_error outputs the correct diagnostic.
8727 (Fwrite_region) [CLASH_DETECTION]: Likewise.
8728
8729 2011-09-18 Eli Zaretskii <eliz@gnu.org>
8730
8731 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
8732
8733 2011-09-17 Eli Zaretskii <eliz@gnu.org>
8734
8735 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
8736 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
8737
8738 2011-09-17 Eli Zaretskii <eliz@gnu.org>
8739
8740 * xdisp.c (reseat_at_next_visible_line_start): Keep information
8741 about the current paragraph and restore it after the call to reseat.
8742
8743 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
8744 (bidi_find_paragraph_start): Search back for paragraph beginning
8745 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
8746 (bidi_move_to_visually_next): Only trigger paragraph-related
8747 computations when the last character is a newline or at EOB, not
8748 just any NEUTRAL_B. (Bug#9470)
8749
8750 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
8751 truncated lines if point is covered by a display string. (Bug#9524)
8752
8753 2011-09-16 Paul Eggert <eggert@cs.ucla.edu>
8754
8755 * xselect.c: Relax test for outgoing X longs (Bug#9498).
8756 (cons_to_x_long): New function.
8757 (lisp_data_to_selection_data): Use it. Correct the test for
8758 short-versus-long data; it was negated. Break out of vector
8759 loop, for efficiency, when a long datum is discovered.
8760
8761 2011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
8762
8763 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
8764
8765 2011-09-16 Eli Zaretskii <eliz@gnu.org>
8766
8767 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
8768 GCC PR/17406) by declaring this function with external scope.
8769
8770 2011-09-15 Paul Eggert <eggert@cs.ucla.edu>
8771
8772 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
8773 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
8774
8775 2011-09-15 Andreas Schwab <schwab@linux-m68k.org>
8776
8777 * editfns.c (Fformat): Correctly handle text properties on "%%".
8778
8779 2011-09-15 Eli Zaretskii <eliz@gnu.org>
8780
8781 * xterm.c (x_draw_composite_glyph_string_foreground):
8782 * w32term.c (x_draw_composite_glyph_string_foreground):
8783 * term.c (encode_terminal_code):
8784 * composite.c (composition_update_it, get_composition_id):
8785 * xdisp.c (get_next_display_element)
8786 (fill_composite_glyph_string): Add comments about special meaning
8787 of TAB characters in a composition.
8788
8789 2011-09-15 Paul Eggert <eggert@cs.ucla.edu>
8790
8791 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
8792 This occurs when processing a multibyte format.
8793 Problem reported by Wolfgang Jenker.
8794
8795 2011-09-15 Johan Bockgård <bojohan@gnu.org>
8796
8797 * xdisp.c (try_cursor_movement): Only check for exact match if
8798 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
8799
8800 2011-09-14 Paul Eggert <eggert@cs.ucla.edu>
8801
8802 Remove unused external symbols.
8803 * dispextern.h (calc_pixel_width_or_height): Remove decl.
8804 * xdisp.c (calc_pixel_width_or_height): Now static.
8805 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
8806 * indent.c (check_display_width):
8807 * w32term.c: Fix comment to match code.
8808 * xterm.c, xterm.h (x_catching_errors): Remove.
8809
8810 2011-09-14 Paul Eggert <eggert@cs.ucla.edu>
8811
8812 * xselect.c: Use signed conversions more consistently (Bug#9498).
8813 (selection_data_to_lisp_data): Assume incoming selection data are
8814 signed integers, not unsigned. This is to be consistent with
8815 outgoing selection data, which was modified to use signed integers
8816 in as part of the fix to Bug#9196 in response to Jan D.'s comment
8817 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
8818 expects long, not unsigned long.
8819
8820 2011-09-14 Eli Zaretskii <eliz@gnu.org>
8821
8822 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
8823 computation of loop end. Reported by Johan Bockgård
8824 <bojohan@gnu.org>.
8825
8826 2011-09-13 Chong Yidong <cyd@stupidchicken.com>
8827
8828 * frame.c (Fother_visible_frames_p): Function deleted.
8829
8830 2011-09-12 Eli Zaretskii <eliz@gnu.org>
8831
8832 * indent.c (compute_motion): Process display vector front to back
8833 rather than the other way around. (Bug#2496)
8834
8835 2011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
8836
8837 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
8838
8839 2011-09-11 Chong Yidong <cyd@stupidchicken.com>
8840
8841 * minibuf.c (Fread_from_minibuffer): Doc fix.
8842
8843 2011-09-11 Eli Zaretskii <eliz@gnu.org>
8844
8845 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
8846 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
8847
8848 2011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
8849
8850 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
8851 value for non-existent files.
8852
8853 2011-09-11 Eli Zaretskii <eliz@gnu.org>
8854
8855 * fileio.c (Finsert_file_contents): If the file cannot be opened,
8856 set its "size" to -1. This will set the modtime_size field of
8857 the corresponding buffer to -1, which is what
8858 verify-visited-file-modtime expects for files that do not exist.
8859 (Bug#9139)
8860
8861 2011-09-11 Paul Eggert <eggert@cs.ucla.edu>
8862
8863 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
8864 here ...
8865 * lisp.h: ... from here. push_key_description is no longer
8866 defined in keyboard.c, so its declaration should not be in
8867 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
8868 logically belongs with push_key_description.
8869
8870 2011-09-10 Paul Eggert <eggert@cs.ucla.edu>
8871
8872 * buffer.h: Include <sys/types.h> instead of <time.h>.
8873 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
8874 Problem reported by Herbert J. Skuhra.
8875
8876 2011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
8877
8878 * xml.c (parse_region): Make the parsing work for
8879 non-comment-starting XML files again (bug#9144).
8880
8881 2011-09-10 Andreas Schwab <schwab@linux-m68k.org>
8882
8883 * image.c (gif_load): Fix calculation of bottom and right corner.
8884 (Bug#9468)
8885
8886 2011-09-10 Eli Zaretskii <eliz@gnu.org>
8887
8888 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
8889 redisplay in small windows.
8890
8891 2011-09-09 Eli Zaretskii <eliz@gnu.org>
8892
8893 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
8894
8895 2011-09-08 Martin Rudalics <rudalics@gmx.at>
8896
8897 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
8898 Operate on live windows only.
8899
8900 2011-09-08 Juanma Barranquero <lekktu@gmail.com>
8901
8902 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
8903
8904 2011-09-07 Eli Zaretskii <eliz@gnu.org>
8905
8906 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
8907 only under bidi iteration.
8908
8909 2011-09-07 Jan Djärv <jan.h.d@swipnet.se>
8910
8911 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
8912
8913 2011-09-06 Paul Eggert <eggert@cs.ucla.edu>
8914
8915 isnan: Fix porting problem to Solaris 10 with bundled gcc.
8916 Without this fix, the command to link temacs failed due to an
8917 undefined symbol __builtin_isnan. This is because
8918 /usr/include/iso/math_c99.h #defines isnan(x) to
8919 __builtin_isnan(x), but the bundled gcc, which identifies itself
8920 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
8921 a __builtin_isnan.
8922 * floatfns.c (isnan): #undef, and then #define to a clone of
8923 what's in data.c.
8924 (Fisnan): Always define, since it's always available now.
8925 (syms_of_floatfns): Always define isnan at the Lisp level.
8926
8927 2011-09-06 Paul Eggert <eggert@cs.ucla.edu>
8928
8929 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
8930
8931 2011-09-06 Paul Eggert <eggert@cs.ucla.edu>
8932
8933 * fileio.c: Fix bugs with large file offsets (Bug#9428).
8934 The previous code assumed that file offsets (off_t values) fit in
8935 EMACS_INT variables, which is not true on typical 32-bit hosts.
8936 The code messed up by falsely reporting buffer overflow in cases
8937 such as (insert-file-contents "big" nil 1 2) into an empty buffer
8938 when "big" contains more than 2**29 bytes, even though this
8939 inserts just one byte and does not overflow the buffer.
8940 (Finsert_file_contents): Store file offsets as off_t
8941 values, not as EMACS_INT values. Check for overflow when
8942 converting between EMACS_INT and off_t. When checking for
8943 buffer overflow or for overlap, take the offsets into account.
8944 Don't use EMACS_INT for small values where int suffices.
8945 When checking for overlap, fix a typo: ZV was used where
8946 ZV_BYTE was intended.
8947 (Fwrite_region): Don't assume off_t fits into 'long'.
8948 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
8949
8950 2011-09-05 Michael Albinus <michael.albinus@gmx.de>
8951
8952 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
8953
8954 2011-09-04 Paul Eggert <eggert@cs.ucla.edu>
8955
8956 sprintf-related integer and memory overflow issues (Bug#9412).
8957
8958 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
8959 (esprintf, exprintf, evxprintf): New functions.
8960 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
8961 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
8962 (modify_event_symbol): Do not assume that the length of
8963 name_alist_or_stem is safe to alloca and fits in int.
8964 (Fexecute_extended_command): Likewise for function name and binding.
8965 (Frecursion_depth): Wrap around reliably on integer overflow.
8966 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
8967 since some callers pass EMACS_INT values.
8968 (Fsingle_key_description): Don't crash if symbol name contains more
8969 than MAX_ALLOCA bytes.
8970 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
8971 (get_minibuffer): Arg is now EMACS_INT, not int.
8972 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
8973 (esprintf, exprintf, evxprintf): New decls.
8974 * window.h (command_loop_level, minibuf_level): Reflect API changes.
8975
8976 * dbusbind.c (signature_cat): New function.
8977 (xd_signature, Fdbus_register_signal):
8978 Do not overrun buffer; instead, report string overflow.
8979
8980 * dispnew.c (add_window_display_history): Don't overrun buffer.
8981 Truncate instead; this is OK since it's just a log.
8982
8983 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
8984 even if the time zone offset is outlandishly large.
8985 Don't mishandle offset == INT_MIN.
8986
8987 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
8988 when creating daemon; the previous buffer-overflow check was incorrect.
8989
8990 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
8991 which has the guts of the old verror function.
8992
8993 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
8994 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
8995
8996 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
8997 (font_unparse_xlfd): Don't blindly alloca long strings.
8998 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
8999 fits in int, when using sprintf. Use single snprintf to count
9000 length of string rather than counting it via multiple sprintfs;
9001 that's simpler and more reliable.
9002 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
9003 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
9004 sprintf, in case result does not fit in int.
9005
9006 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
9007 (fontset_from_font): Print it.
9008
9009 * frame.c (tty_frame_count): Now printmax_t, not int.
9010 (make_terminal_frame, set_term_frame_name): Print it.
9011 (x_report_frame_params): In X, window IDs are unsigned long,
9012 not signed long, so print them as unsigned.
9013 (validate_x_resource_name): Check for implausibly long names,
9014 and don't assume name length fits in 'int'.
9015 (x_get_resource_string): Don't blindly alloca invocation name;
9016 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
9017 not fit in int.
9018
9019 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
9020 (xg_check_special_colors, xg_set_geometry):
9021 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
9022
9023 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
9024 Use esprintf, not sprintf, in case result does not fit in int.
9025
9026 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
9027 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
9028 it as a large positive number.
9029 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
9030 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
9031
9032 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
9033 in case result does not fit in int.
9034
9035 * print.c (float_to_string): Detect width overflow more reliably.
9036 (print_object): Make sprintf buffer a bit bigger, to avoid potential
9037 buffer overrun. Don't assume list length fits in 'int'. Treat
9038 print length of 0 as 0, not as infinity; to be consistent with other
9039 uses of print length in this function. Don't overflow print length
9040 index. Don't assume hash table size fits in 'long', or that
9041 vectorlike size fits in 'unsigned long'.
9042
9043 * process.c (make_process): Use printmax_t, not int, to format
9044 process-name gensyms.
9045
9046 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
9047
9048 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
9049 to avoid potential buffer overrun.
9050
9051 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
9052 if X resource line is longer than 512 bytes.
9053
9054 * xfns.c (x_window): Make sprintf buffer a bit bigger
9055 to avoid potential buffer overrun.
9056
9057 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
9058
9059 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
9060
9061 2011-09-04 Paul Eggert <eggert@cs.ucla.edu>
9062
9063 Integer overflow fixes for scrolling, etc.
9064 Without these, Emacs silently mishandles large integers sometimes.
9065 For example, "C-u 4294967297 M-x recenter" was treated as if
9066 it were "C-u 1 M-x recenter" on a typical 64-bit host.
9067
9068 * xdisp.c (try_window_id): Check Emacs fixnum range before
9069 converting to 'int'.
9070
9071 * window.c (window_scroll_line_based, Frecenter):
9072 Check that an Emacs fixnum is in range before assigning it to 'int'.
9073 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
9074 values converted from Emacs fixnums.
9075 (Frecenter): Don't wrap around a line count if it is out of 'int'
9076 range; instead, treat it as an extreme value.
9077 (Fset_window_configuration, compare_window_configurations):
9078 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
9079
9080 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
9081 that can exceed INT_MAX. Check that EMACS_INT value is in range
9082 before assigning it to the (possibly-narrower) index.
9083 (match_limit): Don't assume that a fixnum can fit in 'int'.
9084
9085 * print.c (print_object): Use ptrdiff_t, not int, for index that can
9086 exceed INT_MAX.
9087
9088 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
9089 (Fvertical_motion): Don't wrap around LINES values that don't fit
9090 in 'int'. Instead, treat them as extreme values. This is good
9091 enough for windows, which can't have more than INT_MAX lines anyway.
9092
9093 2011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
9094
9095 * Require libxml/parser.h to avoid compilation warning.
9096
9097 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
9098
9099 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
9100 since this reportedly can destroy thread storage.
9101
9102 2011-08-30 Chong Yidong <cyd@stupidchicken.com>
9103
9104 * syntax.c (find_defun_start): Update all cache variables if
9105 exiting early (Bug#9401).
9106
9107 2011-08-30 Eli Zaretskii <eliz@gnu.org>
9108
9109 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
9110
9111 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
9112 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
9113 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
9114
9115 * term.c (tty_append_glyph): New function.
9116 (produce_stretch_glyph): Static function and its prototype deleted.
9117
9118 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
9119 Add prototypes.
9120
9121 2011-08-29 Paul Eggert <eggert@cs.ucla.edu>
9122
9123 * image.c (parse_image_spec): Check for nonnegative, not for positive,
9124 when checking :margin (Bug#9390).
9125 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
9126 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
9127 so that the name doesn't mislead. All uses changed.
9128
9129 2011-08-28 Johan Bockgård <bojohan@gnu.org>
9130
9131 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
9132 set_tty_hooks.
9133
9134 2011-08-27 Eli Zaretskii <eliz@gnu.org>
9135
9136 * xdisp.c (move_it_to): Don't bail out early when reaching
9137 position beyond to_charpos, if we are scanning backwards.
9138 (move_it_vertically_backward): When DY == 0, make sure we get to
9139 the first character in the line after the newline.
9140
9141 2011-08-27 Paul Eggert <eggert@cs.ucla.edu>
9142
9143 * ccl.c: Improve and simplify overflow checking (Bug#9196).
9144 (ccl_driver): Do not generate an out-of-range pointer.
9145 (Fccl_execute_on_string): Remove unnecessary check for
9146 integer overflow, noted by Stefan Monnier in
9147 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
9148 Remove a FIXME that didn't need fixing.
9149 Simplify the newly-introduced buffer reallocation code.
9150
9151 2011-08-27 Juanma Barranquero <lekktu@gmail.com>
9152
9153 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
9154
9155 2011-08-26 Paul Eggert <eggert@cs.ucla.edu>
9156
9157 Integer and memory overflow issues (Bug#9196).
9158
9159 * doc.c (get_doc_string): Rework so that
9160 get_doc_string_buffer_size is the actual buffer size, rather than
9161 being 1 less than the actual buffer size; this makes xpalloc more
9162 convenient.
9163
9164 * image.c (x_allocate_bitmap_record, cache_image):
9165 * xselect.c (Fx_register_dnd_atom):
9166 Simplify previous changes by using xpalloc.
9167
9168 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
9169 since either will do and ptrdiff_t is convenient with xpalloc.
9170
9171 * charset.c (charset_table_size)
9172 (struct charset_sort_data.priority): Now ptrdiff_t.
9173 (charset_compare): Don't overflow if priorities differ greatly.
9174 (Fsort_charsets): Don't assume list length fits in int.
9175 Check for size-calculation overflow when allocating sort data.
9176 (syms_of_charset): Allocate an initial charset table that is
9177 just under 64 KiB, to avoid problems with glibc malloc and mmap.
9178
9179 * cmds.c (internal_self_insert): Check for size-calculation overflow.
9180
9181 * composite.h (struct composition.glyph_len): Now int, not unsigned.
9182 The actual value is always <= INT_MAX, and leaving it unsigned made
9183 overflow checking harder.
9184
9185 * dispextern.h (struct glyph_matrix.rows_allocated)
9186 (struct face_cache.size): Now ptrdiff_t, for convenience in use
9187 with xpalloc. The values are still always <= INT_MAX.
9188
9189 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
9190
9191 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
9192 (SAFE_NALLOCA): New macro.
9193
9194 * region-cache.c (struct boundary.pos, find_cache_boundary)
9195 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
9196 (set_cache_region, invalidate_region_cache)
9197 (revalidate_region_cache, know_region_cache, region_cache_forward)
9198 (region_cache_backward, pp_cache):
9199 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
9200 so that ptrdiff_t * can be passed to xpalloc.
9201 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
9202 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
9203 (pp_cache): Don't assume cache_len fits in int.
9204 * region-cache.h: Adjust extern decls to match.
9205
9206 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
9207 EMACS_INT, since either will do, for xpalloc.
9208
9209 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
9210 (xnmalloc, xnrealloc, xpalloc): New functions.
9211
9212 * bidi.c (bidi_shelve_header_size): New constant.
9213 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
9214 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
9215
9216 * bidi.c (bidi_cache_shrink):
9217 * buffer.c (overlays_at, overlays_in, record_overlay_string)
9218 (overlay_strings):
9219 Don't update size of array until after memory allocation succeeds,
9220 because xmalloc/xrealloc may not return.
9221 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
9222 now that we have proper integer overflow checking.
9223 (record_overlay_string, overlay_strings): Catch overflows when
9224 calculating size of overlay_str_buf.
9225
9226 * callproc.c (Fcall_process): Check for size overflow when
9227 calculating size of args2.
9228 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
9229 Normally we prefer signed values, but sticking with ptrdiff_t would
9230 require adding more-complicated checks.
9231
9232 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
9233 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
9234 Redo buffer-overflow calculations to avoid integer overflow.
9235 Add a FIXME comment where memory seems to be over-allocated.
9236
9237 * character.c (Fstring): Check for size-calculation overflow.
9238
9239 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
9240 unnecessary integer overflow. Check for size overflow.
9241 (encode_coding_object): Don't update size until xmalloc succeeds.
9242
9243 * composite.c (get_composition_id): Check for overflow in glyph
9244 length calculations.
9245
9246 Integer and memory overflow fixes for display code.
9247 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
9248 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
9249 (scrolling_window): Check for overflow in size calculations.
9250 (line_draw_cost, realloc_glyph_pool, add_row_entry):
9251 Don't assume glyph table len fits in int.
9252 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
9253 (row_table_size): Now ptrdiff_t, not int.
9254 (scrolling_window): Avoid overflow in size calculations.
9255 Don't update size until allocation succeeds.
9256 * fns.c (concat): Check for overflow in size calculations.
9257 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
9258 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
9259 (NEXT_ALMOST_PRIME_LIMIT): New constant.
9260
9261 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
9262 (get_doc_string): Check for size calculation overflow.
9263 Don't update size until allocation succeeds.
9264 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
9265 EMACS_INT, where ptrdiff_t will do.
9266 (Fsubstitute_command_keys): Check for string overflow.
9267
9268 * editfns.c (set_time_zone_rule): Don't assume environment length
9269 fits in int.
9270 (message_length): Now ptrdiff_t, not int.
9271 (Fmessage_box): Don't update size until allocation succeeds.
9272 Don't assume message length fits in int.
9273 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
9274
9275 * emacs.c (main): Do not reallocate argv, since there is a null at
9276 the end that can be overwritten, and this way there's no need to
9277 worry about size-calculation overflow.
9278 (sort_args): Check for size-calculation overflow.
9279
9280 * eval.c (init_eval_once, grow_specpdl): Don't update size until
9281 alloc succeeds.
9282 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
9283
9284 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
9285 (x_set_scroll_bar_width, x_figure_window_size):
9286 Check for integer overflow.
9287 (x_set_alpha): Do not assume XINT fits in int.
9288
9289 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
9290 This is for the members text_lines, text_cols, total_lines, total_cols,
9291 where the system imposes an 'int' limit.
9292
9293 * fringe.c (Fdefine_fringe_bitmap):
9294 Don't update size until alloc works.
9295
9296 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
9297 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
9298
9299 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
9300 Check for size-calculation overflow.
9301 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
9302 do, as we prefer signed integers.
9303 (id_to_widget.max_size, id_to_widget.used)
9304 (xg_store_widget_in_map, xg_remove_widget_from_map)
9305 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
9306 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
9307 Use and return ptrdiff_t, not int.
9308 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
9309 * gtkutil.h: Change prototypes to match the above.
9310
9311 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
9312 are duplicate now that they've been promoted to lisp.h.
9313 (x_allocate_bitmap_record, x_alloc_image_color)
9314 (make_image_cache, cache_image, xpm_load):
9315 Don't update size until alloc is done.
9316 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
9317 (x_detect_edges):
9318 Check for size calculation overflow.
9319 (ct_colors_allocated_max): New constant.
9320 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
9321 overflow.
9322
9323 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
9324 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
9325 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
9326 Use ptrdiff_t, not int, to count maps.
9327 (read_char_minibuf_menu_prompt): Check for overflow in size
9328 calculations. Don't update size until allocation succeeds.
9329 Redo calculations to avoid overflow.
9330 * keyboard.h: Change prototypes to match the above.
9331
9332 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
9333 to count maps.
9334 (current_minor_maps): Check for size calculation overflow.
9335 * keymap.h: Change prototypes to match the above.
9336
9337 * lread.c (read1, init_obarray): Don't update size until alloc done.
9338
9339 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
9340 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
9341
9342 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
9343 Now ptrdiff_t, not int.
9344 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
9345 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
9346
9347 * process.c (Fnetwork_interface_list): Check for overflow
9348 in size calculation.
9349
9350 * region-cache.c (move_cache_gap): Check for size calculation overflow.
9351
9352 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
9353 overflow. Don't bother calling xmalloc when xrealloc will do.
9354
9355 * search.c (Freplace_match): Check for size calculation overflow.
9356 (Fset_match_data): Don't assume list lengths fit in 'int'.
9357
9358 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
9359 for command line length. Do not attempt to address one before the
9360 beginning of an array, as that's not portable.
9361
9362 * term.c (max_frame_lines): Remove; unused.
9363 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
9364 not int.
9365 (encode_terminal_code, calculate_costs): Check for size
9366 calculation overflow.
9367 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
9368 table lengths and related sizes. Don't update size until alloc
9369 done. Redo calculations to avoid overflow.
9370 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
9371
9372 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
9373 subtracting pointers.
9374 (gobble_line): Check for overflow more carefully. Don't update size
9375 until alloc done.
9376
9377 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
9378 Don't update size until alloc done.
9379 Redo size calculations to avoid overflow.
9380 Check for size calculation overflow.
9381 (main) [DEBUG]: Fix typo in invoking tparam1.
9382
9383 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
9384 Use ptrdiff_t, not int, for sizes.
9385 (store_mode_line_noprop_char): Don't update size until alloc done.
9386
9387 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
9388 Use ptrdiff_t, not int, for sizes.
9389 (Finternal_make_lisp_face, cache_face):
9390 Check for size calculation overflow.
9391 (cache_face): Treat size calculation overflows as if they were
9392 memory exhaustion (the usual treatment), rather than aborting.
9393
9394 * xfns.c (x_encode_text, x_set_name_internal)
9395 (Fx_change_window_property): Use ptrdiff_t, not int, to count
9396 sizes, since they can exceed INT_MAX in size. Check for size
9397 calculation overflow.
9398
9399 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
9400 (xg_select): Check for size calculation overflow.
9401 Don't update size until alloc done.
9402
9403 * xrdb.c (get_environ_db): Don't assume path length fits in int,
9404 as sprintf is limited to int lengths.
9405
9406 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
9407 (X_LONG_MIN): New macros.
9408 Use them to make the following changes clearer.
9409 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
9410 This change doesn't affect the value now, but it may help remind
9411 future maintainers not to raise the value too much later.
9412 (SELECTION_QUANTUM): Remove, replacing with ...
9413 (selection_quantum): ... new function, which avoids overflow.
9414 All uses changed.
9415 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
9416 assumption that selection length fits in 'int'.
9417 (x_reply_selection_request, x_handle_selection_request)
9418 (x_get_window_property, receive_incremental_selection)
9419 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
9420 (lisp_data_to_selection_data, clean_local_selection_data):
9421 Use ptrdiff_t, not int, to record length of selection.
9422 (x_reply_selection_request, x_get_window_property)
9423 (receive_incremental_selection, x_property_data_to_lisp):
9424 Redo calculations to avoid overflow.
9425 (x_reply_selection_request): When sending hint, ceiling it at
9426 X_LONG_MAX rather than relying on wraparound overflow to send
9427 something.
9428 (x_get_window_property, receive_incremental_selection)
9429 (lisp_data_to_selection_data, x_property_data_to_lisp):
9430 Check for size-calculation overflow.
9431 (x_get_window_property, receive_incremental_selection)
9432 (lisp_data_to_selection_data, Fx_register_dnd_atom):
9433 Don't store size until memory allocation succeeds.
9434 (x_get_window_property): Plug memory leak on memory exhaustion.
9435 Don't double-block input; malloc is safe here. Don't assume 2**34
9436 - 4 fits in unsigned long. Add an xassert to check
9437 XGetWindowProperty overflow. Be more careful about overflow
9438 calculations, and distinguish size from memory overflow better.
9439 (receive_incremental_selection): When tracing, don't assume
9440 unsigned int is less than INT_MAX.
9441 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
9442 harmful) conversions of unsigned short to int.
9443 (lisp_data_to_selection_data): Don't assume that integers
9444 in the range -65535 through -1 fit in an X unsigned short.
9445 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
9446 result parameters unless successful. Rely on cons_to_unsigned
9447 to report problems with elements; the old code wasn't right anyway.
9448 (x_check_property_data): Check for int overflow; we cannot use
9449 a wider type due to X limits.
9450 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
9451
9452 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
9453
9454 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
9455 (x_term_init): Check for size calculation overflow.
9456 (x_color_cells): Don't store size until memory allocation succeeds.
9457 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
9458 Don't assume alloca size is less than MAX_ALLOCA.
9459 (x_term_init): Don't assume length fits in int (sprintf is limited
9460 to int size).
9461
9462 Use ptrdiff_t for composition IDs.
9463 * character.c (lisp_string_width):
9464 * composite.c (composition_table_size, n_compositions)
9465 (get_composition_id, composition_gstring_from_id):
9466 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
9467 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
9468 * window.c (Frecenter):
9469 Use ptrdiff_t, not int, for composition IDs.
9470 * composite.c (get_composition_id): Check for integer overflow.
9471 * composite.h: Adjust prototypes to match the above changes.
9472
9473 Use ptrdiff_t for hash table indexes.
9474 * category.c (hash_get_category_set):
9475 * ccl.c (ccl_driver):
9476 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
9477 * coding.c (coding_system_charset_list, detect_coding_system):
9478 * coding.h (struct coding_system.id):
9479 * composite.c (get_composition_id, gstring_lookup_cache):
9480 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
9481 * image.c (xpm_get_color_table_h):
9482 * lisp.h (hash_lookup, hash_put):
9483 * minibuf.c (Ftest_completion):
9484 Use ptrdiff_t for hash table indexes, not int (which is too
9485 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
9486 32-bit --with-wide-int hosts).
9487
9488 * charset.c (Fdefine_charset_internal): Check for integer overflow.
9489 Add a FIXME comment about memory leaks.
9490 (syms_of_charset): Don't assume xmalloc returns.
9491
9492 Don't assume that stated character widths fit in int.
9493 * character.c (Fchar_width, c_string_width, lisp_string_width):
9494 * character.h (CHAR_WIDTH):
9495 * indent.c (MULTIBYTE_BYTES_WIDTH):
9496 Use sanitize_char_width to avoid undefined and/or bad behavior
9497 with outlandish widths.
9498 * character.h (sanitize_tab_width): Rename from sanitize_width,
9499 now that we have two such functions. All uses changed.
9500 (sanitize_char_width): New inline function.
9501
9502 Don't assume that tab-width fits in int.
9503 * character.h (sanitize_width): New inline function.
9504 (SANE_TAB_WIDTH): New macro.
9505 (ASCII_CHAR_WIDTH): Use it.
9506 * indent.c (sane_tab_width): Remove. All uses replaced by
9507 SANE_TAB_WIDTH (current_buffer).
9508 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
9509
9510 * fileio.c: Integer overflow issues with file modes.
9511 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
9512
9513 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
9514 Remove unreachable code.
9515 (read_hex, load_charset_map_from_file): Check for integer overflow.
9516
9517 * xterm.c: Don't go over XClientMessageEvent limit.
9518 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
9519 (x_send_scroll_bar_event): Likewise. Check that the size does not
9520 exceed limits imposed by XClientMessageEvent, as well as the usual
9521 ptrdiff_t and size_t limits.
9522
9523 * keyboard.c: Overflow, signedness and related fixes.
9524 (make_lispy_movement): Use same integer type in forward decl
9525 that is used in the definition.
9526 (read_key_sequence, keyremap_step):
9527 Change bufsize argument back to int, undoing my 2011-03-30 change.
9528 We prefer signed types, and int is wide enough here.
9529 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
9530 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
9531 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
9532 length, not size_t. Use ptrdiff_t for index, not int.
9533 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
9534 possibility of integer overflow.
9535
9536 Overflow, signedness and related fixes for images.
9537
9538 * dispextern.h (struct it.stack[0].u.image.image_id)
9539 (struct_it.image_id, struct image.id, struct image_cache.size)
9540 (struct image_cache.used, struct image_cache.ref_count):
9541 * gtkutil.c (update_frame_tool_bar):
9542 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
9543 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
9544 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
9545 * nsmenu.m (update_frame_tool_bar):
9546 * xdisp.c (calc_pixel_width_or_height):
9547 * xfns.c (image_cache_refcount):
9548 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
9549 on typical 64-bit hosts.
9550
9551 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
9552 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
9553 Omit unnecessary casts to int.
9554 (parse_image_spec): Check that integers fall into 'int' range
9555 when the callers expect that.
9556 (image_ascent): Redo ascent calculation to avoid int overflow.
9557 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
9558 (lookup_image): Remove unnecessary tests.
9559 (xbm_image_p): Locals are now of int, not EMACS_INT,
9560 since parse_image_check makes sure they fit into int.
9561 (png_load, gif_load, svg_load_image):
9562 Prefer int to unsigned where either will do.
9563 (tiff_handler): New function, combining the cores of the
9564 old tiff_error_handler and tiff_warning_handler.
9565 This function is rewritten to use vsnprintf and thereby avoid
9566 stack buffer overflows. It uses only the features of vsnprintf
9567 that are common to both POSIX and native Microsoft.
9568 (tiff_error_handler, tiff_warning_handler): Use it.
9569 (tiff_load, gif_load, imagemagick_load_image):
9570 Don't assume :index value fits in 'int'.
9571 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
9572 (imagemagick_load_image): Check that crop parameters fit into
9573 the integer types that MagickCropImage accepts. Don't assume
9574 Vimagemagick_render_type has a nonnegative value. Don't assume
9575 size_t fits in 'long'.
9576 (gs_load): Use printmax_t to print the widest integers possible.
9577 Check for integer overflow when computing image height and width.
9578
9579 2011-08-26 Eli Zaretskii <eliz@gnu.org>
9580
9581 * xdisp.c (redisplay_window): Don't force window start if point
9582 will be invisible in the resulting window. (Bug#9324)
9583
9584 2011-08-25 Eli Zaretskii <eliz@gnu.org>
9585
9586 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
9587 the display spec is of the form `(space ...)'.
9588 (handle_display_spec): Return the value returned by
9589 handle_single_display_spec, not just 1 or zero.
9590 (handle_single_display_spec): If the display spec is of the form
9591 `(space ...)', and specifies display in the text area, return 2
9592 rather than 1.
9593 (try_cursor_movement): Check for the need to scroll more
9594 accurately, and prefer exact match for point under bidi.
9595 Don't advance `row' beyond the last row of the window.
9596
9597 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
9598 into disp_prop; all users changed.
9599
9600 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
9601 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
9602 for the text covered by the display property.
9603
9604 2011-08-25 Chong Yidong <cyd@stupidchicken.com>
9605
9606 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
9607 Change return value to nil.
9608 (Frecord_buffer): Delete unused function.
9609
9610 2011-08-24 Eli Zaretskii <eliz@gnu.org>
9611
9612 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
9613 buffers, return left-to-right.
9614 (set_cursor_from_row): Consider candidate row a win if its glyph
9615 represents a newline and point is on that newline. Fixes cursor
9616 positioning on the newline at EOL of R2L text within L2R
9617 paragraph, and vice versa.
9618 (try_cursor_movement): Check continued rows, in addition to
9619 continuation rows. Fixes unwarranted scroll when point enters a
9620 continued line of R2L text within an L2R paragraph, or vice versa.
9621 (cursor_row_p): Consider the case of point being equal to
9622 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
9623 from the end of a short line to the beginning of a continued line
9624 of R2L text within L2R paragraph.
9625 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
9626 composed characters.
9627
9628 * bidi.c (bidi_check_type): Use xassert.
9629 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
9630 members.
9631
9632 2011-08-23 Eli Zaretskii <eliz@gnu.org>
9633
9634 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
9635 a character.
9636
9637 2011-08-23 Chong Yidong <cyd@stupidchicken.com>
9638
9639 * nsfont.m (ns_otf_to_script): Fix typo.
9640
9641 2011-08-22 Kenichi Handa <handa@m17n.org>
9642
9643 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
9644 extra slot even if the purpose is char-code-property-table.
9645
9646 2011-08-23 Eli Zaretskii <eliz@gnu.org>
9647
9648 * xdisp.c (redisplay_window): When computing centering_position,
9649 account for the height of the header line. (Bug#8874)
9650
9651 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
9652 instead of CHAR_TO_BYTE. Fixes a crash when a completion
9653 candidate is selected by the mouse, and that candidate has a
9654 composed character under the mouse.
9655
9656 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
9657 coordinates reported by pos-visible-in-window-p for a composed
9658 character in column zero.
9659
9660 2011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
9661
9662 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
9663
9664 2011-08-22 Eli Zaretskii <eliz@gnu.org>
9665
9666 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
9667 consider it a hit if to_charpos is anywhere in the range of the
9668 composed buffer positions.
9669
9670 2011-08-22 Chong Yidong <cyd@stupidchicken.com>
9671
9672 * image.c (gif_load): Don't assume that each subimage has the same
9673 dimensions as the base image. Handle disposal method that is
9674 "undefined" by the gif spec (Bug#9335).
9675
9676 2011-08-20 Chong Yidong <cyd@stupidchicken.com>
9677
9678 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
9679 (Fcondition_case): Document `debug' symbol in error handler.
9680
9681 2011-08-19 Eli Zaretskii <eliz@gnu.org>
9682
9683 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
9684 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
9685 from an Org mode buffer to a Speedbar frame.
9686
9687 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
9688 a composition, take its buffer position from IT->cmp_it.charpos.
9689 Fixes cursor positioning at the beginning of a line that begins
9690 with a composed character.
9691
9692 2011-08-18 Eli Zaretskii <eliz@gnu.org>
9693
9694 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
9695 character bidirectional type, use STRONG_L instead. Fixes crashes
9696 in a buffer produced by `describe-categories'.
9697
9698 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
9699 members before the level stack, so they would be saved and
9700 restored when copying iterator state. Fixes incorrect reordering
9701 around TABs covered by display properties.
9702
9703 2011-08-18 Andreas Schwab <schwab@linux-m68k.org>
9704
9705 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
9706
9707 2011-08-17 Chong Yidong <cyd@stupidchicken.com>
9708
9709 * eval.c (internal_condition_case, internal_condition_case_1)
9710 (internal_condition_case_2, internal_condition_case_n):
9711 Remove unnecessary aborts (Bug#9081).
9712
9713 2011-08-17 Eli Zaretskii <eliz@gnu.org>
9714
9715 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
9716 has no `load' handler, try opening the file locally. (Bug#9311)
9717
9718 2011-08-16 Ken Brown <kbrown@cornell.edu>
9719
9720 * gmalloc.c: Expand comment.
9721
9722 2011-08-16 Eli Zaretskii <eliz@gnu.org>
9723
9724 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
9725 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
9726
9727 2011-08-16 Ken Brown <kbrown@cornell.edu>
9728
9729 Fix memory allocation problems in Cygwin build (Bug#9273).
9730
9731 * unexcw.c ( __malloc_initialized): Declare external variable.
9732 (fixup_executable): Force the dumped emacs to reinitialize malloc.
9733
9734 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
9735 New variables.
9736 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
9737 dumped emacs.
9738 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
9739 in the static heap.
9740 [CYGWIN] (special_realloc): New function.
9741 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
9742 requests to realloc storage in the static heap.
9743
9744 2011-08-15 Paul Eggert <eggert@cs.ucla.edu>
9745
9746 * bidi.c (bidi_initialize): Remove unused local.
9747
9748 2011-08-15 Eli Zaretskii <eliz@gnu.org>
9749
9750 * bidimirror.h:
9751 * biditype.h: Remove file.
9752 * makefile.w32-in ($(BLD)/bidi.$(O)):
9753 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
9754
9755 * dispextern.h: Fix a typo in the comment to bidi_type_t.
9756
9757 * chartab.c: Improve commentary for the uniprop_table API.
9758
9759 * bidi.c (bidi_paragraph_init): Support zero value of
9760 bidi_ignore_explicit_marks_for_paragraph_level.
9761 (bidi_initialize): Use uniprop_table instead of including
9762 biditype.h and bidimirror.h.
9763
9764 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
9765 coordinates of the iterator when restoring from ppos_it.
9766 (Bug#9296)
9767
9768 2011-08-14 Kenichi Handa <handa@m17n.org>
9769
9770 * process.c (create_process): Call setup_process_coding_systems
9771 after the pid of the process is set to -1 (Bug#8162).
9772
9773 2011-08-14 Eli Zaretskii <eliz@gnu.org>
9774
9775 * xdisp.c (move_it_in_display_line_to): Don't invoke
9776 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
9777 ppos_it. Fixes vertical cursor motion when line beginning is
9778 covered by an image. (Bug#9296)
9779
9780 2011-08-14 Jan Djärv <jan.h.d@swipnet.se>
9781
9782 * nsterm.h (ns_run_ascript): Declare.
9783 (NSAPP_DATA2_RUNASSCRIPT): Define.
9784
9785 * nsfns.m (as_script, as_result, as_status): New static variables.
9786 (ns_run_ascript): New function.
9787 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
9788 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
9789 the event loop. Get status from as_status (Bug#7276).
9790
9791 * nsterm.m (sendEvent): If event is NSApplicationDefined and
9792 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
9793 the event loop (Bug#7276).
9794
9795 2011-08-14 Andreas Schwab <schwab@linux-m68k.org>
9796
9797 * gnutls.c (QCgnutls_bootprop_priority)
9798 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
9799 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
9800 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
9801 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
9802 (QCgnutls_bootprop_verify_hostname_error)
9803 (QCgnutls_bootprop_callbacks_verify): Rename from
9804 Qgnutls_bootprop_..., all uses changed.
9805
9806 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
9807 uses changed.
9808
9809 2011-08-14 Paul Eggert <eggert@cs.ucla.edu>
9810
9811 * xfaces.c (Qframe_set_background_mode): Now static.
9812 * dispextern.h (Qframe_set_background_mode): Remove decl.
9813
9814 * process.c (Fnetwork_interface_info): Declare local only if needed.
9815
9816 2011-08-13 Jan Djärv <jan.h.d@swipnet.se>
9817
9818 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
9819 (Fnetwork_interface_list): Allocate in increments of bytes instead
9820 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
9821 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
9822 sockaddr.
9823 (struct ifflag_def): notrailers is smart on OSX.
9824 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
9825 Get hardware address with getifaddrs if available.
9826
9827 2011-08-12 Eli Zaretskii <eliz@gnu.org>
9828
9829 * xdisp.c (iterate_out_of_display_property): xassert that
9830 IT->position is set to within IT->object's boundaries. Break from
9831 the loop as soon as EOB is reached; avoids infloops in redisplay
9832 when IT->position is set up wrongly due to some bug.
9833 Set IT->current to match the bidi iterator unconditionally.
9834 (push_display_prop): Allow GET_FROM_STRING as IT->method on
9835 entry. Force push_it to save on the stack the current
9836 buffer/string position, to be restored by pop_it. Fix flags in
9837 the iterator structure wrt the object coming from a display
9838 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
9839 properties. (Bug#9284)
9840
9841 2011-08-09 Andreas Schwab <schwab@linux-m68k.org>
9842
9843 * fontset.c (fontset_get_font_group): Add proper type checks.
9844 (Bug#9172)
9845
9846 2011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
9847
9848 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
9849 and LC_VERSION_MIN_MACOSX.
9850 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
9851 (dump_it) [LC_FUNCTION_STARTS]: Use it.
9852
9853 2011-08-08 Eli Zaretskii <eliz@gnu.org>
9854
9855 * xdisp.c (forward_to_next_line_start): Allow to use the
9856 no-display-properties-and-no-overlays under bidi display.
9857 Set disp_pos in the bidi iterator to avoid searches for display
9858 properties and overlays.
9859
9860 2011-08-08 Chong Yidong <cyd@stupidchicken.com>
9861
9862 * editfns.c (Fset_time_zone_rule): Document relationship with the
9863 setenv function.
9864
9865 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
9866 the font entity extracted from the cache (Bug#8109).
9867
9868 2011-08-07 Chong Yidong <cyd@stupidchicken.com>
9869
9870 * composite.c (autocmp_chars): Don't reset point. That is done by
9871 restore_point_unwind (Bug#5984).
9872
9873 2011-08-07 Juri Linkov <juri@jurta.org>
9874
9875 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
9876 to show the arg `TIME' instead of `TIMEVAL'.
9877
9878 2011-08-06 Eli Zaretskii <eliz@gnu.org>
9879
9880 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
9881 display property strides EOL and includes a newline, as in
9882 longlines-mode. (Bug#9254)
9883 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
9884 word-wrap under bidirectional display. (Bug#9224)
9885
9886 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
9887 is non-zero, even if the data buffer is NULL. Fixes a crash in
9888 vertical-motion with longlines-mode. (Bug#9254)
9889
9890 2011-08-05 Eli Zaretskii <eliz@gnu.org>
9891
9892 * bidi.c <bidi_cache_total_alloc>: Now static.
9893 (bidi_initialize): Initialize bidi_cache_total_alloc.
9894
9895 * xdisp.c (display_line): Release buffer allocated for shelved bidi
9896 cache. (Bug#9221)
9897
9898 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
9899 amount allocated this far in `bidi_cache_total_alloc'.
9900 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
9901 non-zero, only free the data buffer without restoring the cache
9902 contents. All callers changed.
9903
9904 * dispextern.h (bidi_unshelve_cache): Update prototype.
9905
9906 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
9907 (move_it_in_display_line, move_it_to)
9908 (move_it_vertically_backward, move_it_by_lines): Replace the call
9909 to xfree to an equivalent call to bidi_unshelve_cache.
9910 (move_it_in_display_line_to): Fix logic of returning
9911 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
9912
9913 2011-08-05 Eli Zaretskii <eliz@gnu.org>
9914
9915 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
9916 came from a string character with a `cursor' property. (Bug#9229)
9917
9918 2011-08-04 Jan Djärv <jan.h.d@swipnet.se>
9919
9920 * Makefile.in (LIB_PTHREAD): New variable.
9921 (LIBES): Add LIB_PTHREAD (Bug#9216).
9922
9923 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
9924 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
9925
9926 2011-08-04 Andreas Schwab <schwab@linux-m68k.org>
9927
9928 * regex.c (re_iswctype): Remove some redundant boolean conversions.
9929
9930 2011-08-04 Jan Djärv <jan.h.d@swipnet.se>
9931
9932 * xterm.c (x_find_topmost_parent): New function.
9933 (x_set_frame_alpha): Find topmost parent window with
9934 x_find_topmost_parent and set the property there also (bug#9181).
9935 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
9936
9937 2011-08-04 Paul Eggert <eggert@cs.ucla.edu>
9938
9939 * callproc.c (Fcall_process): Avoid vfork clobbering
9940 the local vars buffer, coding_systems, current_dir.
9941
9942 2011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
9943
9944 * keymap.c (Fmake_composed_keymap): Move to subr.el.
9945
9946 2011-08-03 Paul Eggert <eggert@cs.ucla.edu>
9947
9948 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
9949 so that it is not optimized away.
9950
9951 * xdisp.c (compute_display_string_pos): Remove unused local.
9952
9953 2011-08-02 Eli Zaretskii <eliz@gnu.org>
9954
9955 Fix slow cursor motion and scrolling in large buffers with
9956 selective display, like Org Mode buffers. (Bug#9218)
9957
9958 * dispextern.h (struct bidi_it): New member disp_prop_p.
9959
9960 * xdisp.c: Remove one-slot cache of display string positions.
9961 (compute_display_string_pos): Accept an additional argument
9962 DISP_PROP_P; callers changed. Scan at most 5K characters forward
9963 for a display string or property. If found, set DISP_PROP_P
9964 non-zero.
9965
9966 * bidi.c (bidi_fetch_char): Accept an additional argument
9967 DISP_PROP_P, and pass it to compute_display_string_pos.
9968 Only handle text covered by a display string if DISP_PROP_P is returned
9969 non-zero. All callers of bidi_fetch_char changed.
9970
9971 2011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
9972
9973 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
9974
9975 2010-12-03 Don March <don@ohspite.net>
9976
9977 * keymap.c (Fdefine_key): Fix non-prefix key error message when
9978 last character M-[char] is translated to ESC [char] (bug#7541).
9979
9980 2011-08-02 Kenichi Handa <handa@m17n.org>
9981
9982 * lisp.h (uniprop_table): Extern it.
9983
9984 * chartab.c (uniprop_table): Make it non-static.
9985
9986 2011-08-01 Eli Zaretskii <eliz@gnu.org>
9987
9988 * xdisp.c (forward_to_next_line_start): Accept additional argument
9989 BIDI_IT_PREV, and store into it the state of the bidi iterator had
9990 on the newline.
9991 (reseat_at_next_visible_line_start): Use the bidi iterator state
9992 returned by forward_to_next_line_start to restore the state of
9993 it->bidi_it after backing up to previous newline. (Bug#9212)
9994
9995 2011-07-30 Andreas Schwab <schwab@linux-m68k.org>
9996
9997 * regex.c (re_comp): Protoize.
9998 (re_exec): Fix return type.
9999 (regexec): Fix type of `ret'. (Bug#9203)
10000
10001 2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
10002
10003 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
10004 This is needed if max-image-size is a floating-point number.
10005
10006 2011-07-28 Andreas Schwab <schwab@linux-m68k.org>
10007
10008 * print.c (print_object): Print empty symbol as ##.
10009
10010 * lread.c (read1): Read ## as empty symbol.
10011
10012 2011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
10013
10014 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
10015 setting frame foreground color (Bug#9175).
10016 (x_set_background_color): Likewise.
10017
10018 * nsmenu.m (-setText): Size tooltip dimensions precisely to
10019 contents (Bug#9176).
10020 (EmacsTooltip -init): Remove bezels and add shadows to
10021 tooltip windows.
10022
10023 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
10024 or scroll bar (Bug#8470).
10025
10026 * nsfont.m (nsfont_open): Remove assignment to voffset and
10027 unnecessary vars hshink, expand, hd, full_height, min_height.
10028 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
10029
10030 * nsterm.h (nsfont_info): Remove voffset field.
10031
10032 2011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
10033
10034 Implement strike-through and overline on NextStep (Bug#8863).
10035
10036 * nsfont.m (nsfont_open): Use underline position provided by font,
10037 instead of hard-coded value of 2.
10038 (nsfont_draw): Call ns_draw_text_decoration instead.
10039
10040 * nsterm.h: Add declaration for ns_draw_text_decoration.
10041
10042 * nsterm.m (ns_draw_text_decoration): New function for drawing
10043 underline, overline, and strike-through.
10044 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
10045 ns_draw_text_decoration. Change treatment of cursor drawing to
10046 accommodate underlining, etc.
10047
10048 2011-07-28 Eli Zaretskii <eliz@gnu.org>
10049
10050 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
10051 default.
10052
10053 2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
10054
10055 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
10056 Without this fix, if a signal arrives just after memory fills up,
10057 'malloc' might be invoked reentrantly.
10058
10059 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
10060 In other words, assume that every image size is allowed, on non-X
10061 hosts. This assumption is probably wrong, but it lets Emacs compile.
10062
10063 2011-07-28 Andreas Schwab <schwab@linux-m68k.org>
10064
10065 * regex.c (re_iswctype): Convert return values to boolean.
10066
10067 2011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
10068
10069 * xdisp.c (compute_display_string_pos): Don't use cached display
10070 string position if the buffer had its restriction changed.
10071 (Bug#9184)
10072
10073 2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
10074
10075 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
10076
10077 2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
10078
10079 Integer signedness and overflow and related fixes. (Bug#9079)
10080
10081 * bidi.c: Integer size and overflow fixes.
10082 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
10083 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
10084 (bidi_cache_find_level_change, bidi_cache_ensure_space)
10085 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
10086 (bidi_find_other_level_edge):
10087 Use ptrdiff_t instead of EMACS_INT where either will do.
10088 This works better on 32-bit hosts configured --with-wide-int.
10089 (bidi_cache_ensure_space): Check for size-calculation overflow.
10090 Use % rather than repeated addition, for better worst-case speed.
10091 Don't set bidi_cache_size until after xrealloc returns, because it
10092 might not return.
10093 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
10094 (bidi_cache_ensure_space): Also check that the bidi cache size
10095 does not exceed that of the largest Lisp string or buffer. See Eli
10096 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
10097
10098 * alloc.c (__malloc_size_t): Remove.
10099 All uses replaced by size_t. See Andreas Schwab's note
10100 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
10101
10102 * image.c: Improve checking for integer overflow.
10103 (check_image_size): Assume that f is nonnull, since
10104 it is always nonnull in practice. This is one less thing to
10105 worry about when checking for integer overflow later.
10106 (x_check_image_size): New function, which checks for integer
10107 overflow issues inside X.
10108 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
10109 This removes the need for a memory_full check.
10110 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
10111 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
10112 (xbm_read_bitmap_data): Change locals back to 'int', since
10113 their values must fit in 'int'.
10114 (xpm_load_image, png_load, tiff_load):
10115 Invoke x_create_x_image_and_pixmap earlier,
10116 to avoid much needless work if the image is too large.
10117 (tiff_load): Treat overly large images as if
10118 x_create_x_image_and_pixmap failed, not as malloc failures.
10119 (gs_load): Use x_check_image_size.
10120
10121 * gtkutil.c: Omit integer casts.
10122 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
10123 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
10124
10125 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
10126
10127 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
10128 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
10129 would wrongly return t on a 64-bit host.
10130
10131 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
10132 The plain *_OVERFLOW macros run afoul of GCC bug 49705
10133 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
10134 and therefore cause GCC to emit a bogus diagnostic in some cases.
10135
10136 * image.c: Integer signedness and overflow and related fixes.
10137 This is not an exhaustive set of fixes, but it's time to
10138 record what I've got.
10139 (lookup_pixel_color, check_image_size): Remove redundant decls.
10140 (check_image_size): Don't assume that arbitrary EMACS_INT values
10141 fit in 'int', or that arbitrary 'double' values fit in 'int'.
10142 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
10143 (tiff_load, imagemagick_load_image):
10144 Check for overflow in size calculations.
10145 (x_create_x_image_and_pixmap): Remove unnecessary test for
10146 xmalloc returning NULL; that can't happen.
10147 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
10148 (xpm_color_bucket): Use better integer hashing function.
10149 (xpm_cache_color): Don't possibly over-allocate memory.
10150 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
10151 (gif_memory_source):
10152 Use ptrdiff_t, not int or size_t, to record sizes.
10153 (png_load): Don't assume values greater than 2**31 fit in 'int'.
10154 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
10155 either works, as we prefer signed integers.
10156 (tiff_read_from_memory, tiff_write_from_memory):
10157 Return tsize_t, not size_t, since that's what the TIFF API wants.
10158 (tiff_read_from_memory): Don't fail simply because the read would
10159 go past EOF; instead, return a short read.
10160 (tiff_load): Omit no-longer-needed casts.
10161 (Fimagemagick_types): Don't assume size fits into 'int'.
10162
10163 Improve hashing quality when configured --with-wide-int.
10164 * fns.c (hash_string): New function, taken from sxhash_string.
10165 Do not discard information about ASCII character case; this
10166 discarding is no longer needed.
10167 (sxhash-string): Use it. Change sig to match it. Caller changed.
10168 * lisp.h: Declare it.
10169 * lread.c (hash_string): Remove, since we now use fns.c's version.
10170 The fns.c version returns a wider integer if --with-wide-int is
10171 specified, so this should help the quality of the hashing a bit.
10172
10173 * emacs.c: Integer overflow minor fix.
10174 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
10175 Define only if GNU_LINUX.
10176 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
10177
10178 * dispnew.c: Integer signedness and overflow fixes.
10179 Remove unnecessary forward decls, that were a maintenance hassle.
10180 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
10181 All uses changed.
10182 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
10183 (scrolling_window): Use ptrdiff_t, not int, for byte count.
10184 (prepare_desired_row, line_draw_cost):
10185 Use int, not unsigned, where either works.
10186 (save_current_matrix, restore_current_matrix):
10187 Use ptrdiff_t, not size_t, where either works.
10188 (init_display): Check for overflow more accurately, and without
10189 relying on undefined behavior.
10190
10191 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
10192 Remove, replacing with the new symbols in lisp.h. All uses changed.
10193 * fileio.c (make_temp_name):
10194 * filelock.c (lock_file_1, lock_file):
10195 * xdisp.c (message_dolog):
10196 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
10197 Use pMd etc. instead.
10198 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
10199 replacing the pWIDE etc. symbols removed from editfns.c.
10200
10201 * keyboard.h (num_input_events): Now uintmax_t.
10202 This is (very slightly) less likely to mess up due to wraparound.
10203 All uses changed.
10204
10205 * buffer.c: Integer signedness fixes.
10206 (alloc_buffer_text, enlarge_buffer_text):
10207 Use ptrdiff_t rather than size_t when either will do, as we prefer
10208 signed integers.
10209
10210 * alloc.c: Integer signedness and overflow fixes.
10211 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
10212 (__malloc_size_t): Default to size_t, not to int.
10213 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
10214 (Fgarbage_collect, mark_object_loop_halt, mark_object):
10215 Prefer ptrdiff_t to size_t when either would do, as we prefer
10216 signed integers.
10217 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
10218 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
10219 Now const. Initialize with values that are in range even if char
10220 is signed.
10221 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
10222 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
10223 These functions do the right thing with sizes > 2**32.
10224 (check_depth): Now ptrdiff_t, not int.
10225 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
10226 Adjust to new way of storing sizes. Check for size overflow bugs
10227 in rest of code.
10228 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
10229 slightly wrong anyway, as it missed one instance of
10230 XMALLOC_OVERRUN_CHECK_OVERHEAD.
10231 (refill_memory_reserve): Omit needless cast to size_t.
10232 (mark_object_loop_halt): Mark as externally visible.
10233
10234 * xselect.c: Integer signedness and overflow fixes.
10235 (Fx_register_dnd_atom, x_handle_dnd_message):
10236 Use ptrdiff_t, not size_t, since we prefer signed.
10237 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
10238 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
10239 x_dnd_atoms_size and x_dnd_atoms_length.
10240
10241 * doprnt.c: Prefer signed to unsigned when either works.
10242 * eval.c (verror):
10243 * doprnt.c (doprnt):
10244 * lisp.h (doprnt):
10245 * xdisp.c (vmessage):
10246 Use ptrdiff_t, not size_t, when using or implementing doprnt,
10247 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
10248 prefer signed arithmetic to avoid comparison confusion.
10249 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
10250 but is a bit tricky.
10251
10252 Assume freestanding C89 headers, string.h, stdlib.h.
10253 * data.c, doprnt.c, floatfns.c, print.c:
10254 Include float.h unconditionally.
10255 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
10256 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
10257 * regex.c: Likewise for stddef.h, string.h.
10258 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
10259 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
10260 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
10261 (STDC_HEADERS): Remove obsolete defines.
10262 * sysdep.c: Include limits.h unconditionally.
10263
10264 Assume support for memcmp, memcpy, memmove, memset.
10265 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
10266 * regex.c (memcmp, memcpy):
10267 Remove; we assume C89 now.
10268
10269 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
10270 (__malloc_safe_bcopy): Remove; no longer needed.
10271
10272 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
10273 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
10274 well either way, and we prefer signed to unsigned.
10275
10276 2011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
10277
10278 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
10279 closes the connection while we're reading (bug#9182).
10280
10281 2011-07-25 Jan Djärv <jan.h.d@swipnet.se>
10282
10283 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
10284 are specified (Bug#9168).
10285
10286 2011-07-25 Paul Eggert <eggert@cs.ucla.edu>
10287
10288 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
10289 Found by GCC static checking and --with-wide-int on a 32-bit host.
10290
10291 2011-07-25 Eli Zaretskii <eliz@gnu.org>
10292
10293 * xdisp.c (compute_display_string_pos): Fix logic of caching
10294 previous display string position. Initialize cached_prev_pos to
10295 -1. Fixes slow-down at the beginning of a buffer.
10296
10297 2011-07-24 Eli Zaretskii <eliz@gnu.org>
10298
10299 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
10300 for attrs[LFACE_FONTSET_INDEX].
10301
10302 2011-07-23 Paul Eggert <eggert@cs.ucla.edu>
10303
10304 * xml.c (parse_region): Remove unused local
10305 that was recently introduced.
10306
10307 2011-07-23 Eli Zaretskii <eliz@gnu.org>
10308
10309 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
10310 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
10311
10312 * xdisp.c (move_it_in_display_line_to): Record the best matching
10313 position for TO_CHARPOS while scanning the line, and restore it on
10314 exit if none of the characters scanned was an exact match.
10315 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
10316 when exact match is impossible due to invisible text, and the
10317 lines are truncated.
10318
10319 2011-07-23 Jan Djärv <jan.h.d@swipnet.se>
10320
10321 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
10322 for OSX >= 10.7.
10323
10324 2011-07-22 Eli Zaretskii <eliz@gnu.org>
10325
10326 Fix a significant slow-down of cursor motion with C-n, C-p,
10327 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
10328 auto-repeat under bidi redisplay in fontified buffers.
10329 * xdisp.c (compute_stop_pos_backwards): New function.
10330 (next_element_from_buffer): Call compute_stop_pos_backwards to
10331 find a suitable prev_stop when we find ourselves before
10332 base_level_stop.
10333 (reseat): Don't look for prev_stop, as that could mean a very long
10334 run.
10335 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
10336 <cached_disp_overlay_modiff>: Cache for last found display string
10337 position.
10338 (compute_display_string_pos): Return the cached position if asked
10339 about the same buffer in the same area of character positions, and
10340 the buffer wasn't changed since the time the display string
10341 position was cached.
10342
10343 2011-07-22 Eli Zaretskii <eliz@gnu.org>
10344
10345 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
10346 is an integer, which is important for empty lines. (Bug#9149)
10347
10348 2011-07-22 Chong Yidong <cyd@stupidchicken.com>
10349
10350 * frame.c (Fmodify_frame_parameters): In tty case, update the
10351 default face if necessary (Bug#4238).
10352
10353 2011-07-21 Chong Yidong <cyd@stupidchicken.com>
10354
10355 * editfns.c (Fstring_to_char): No need to explain what a character
10356 is in the docstring (Bug#6576).
10357
10358 2011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
10359
10360 * xml.c (parse_region): Make sure we always return a tree.
10361
10362 2011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
10363
10364 * xml.c (parse_region): If a document contains only comments,
10365 return that, too.
10366
10367 2011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
10368
10369 * xml.c (make_dom): Return comments, too.
10370
10371 2011-07-19 Paul Eggert <eggert@cs.ucla.edu>
10372
10373 Port to OpenBSD.
10374 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
10375 and the surrounding thread.
10376 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
10377 rather than fgets, and retry after EINTR. Otherwise, 'emacs
10378 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
10379 timer goes off.
10380 * s/openbsd.h (BROKEN_SIGIO): Define.
10381 * unexelf.c (unexec) [__OpenBSD__]:
10382 Don't update the .mdebug section of the Alpha COFF symbol table.
10383
10384 2011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
10385
10386 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
10387 (bug#8460).
10388
10389 2011-07-18 Paul Eggert <eggert@cs.ucla.edu>
10390
10391 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
10392 This fixes some race conditions on the permissions of any newly
10393 created file.
10394
10395 * alloc.c (valid_pointer_p): Use pipe, not open.
10396 This fixes some permissions issues when debugging.
10397
10398 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
10399 If fchown fails to set both uid and gid, try to set just gid,
10400 as that is sometimes allowed. Adjust the file's mode to eliminate
10401 setuid or setgid bits that are inappropriate if fchown fails.
10402
10403 2011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
10404
10405 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
10406 to compare Lisp_Objects.
10407 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
10408 global_gnutls_log_level, don't mistake it for a Lisp_Object.
10409 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
10410
10411 2011-07-17 Andreas Schwab <schwab@linux-m68k.org>
10412
10413 * lread.c (read_integer): Unread even EOF character.
10414 (read1): Likewise. Properly record start position of symbol.
10415
10416 * lread.c (read1): Read `#:' as empty uninterned symbol if no
10417 symbol character follows.
10418
10419 2011-07-17 Paul Eggert <eggert@cs.ucla.edu>
10420
10421 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
10422 This works around a problem with the previous change to Fcopy_file.
10423 Recent glibc declares fchown with __attribute__((warn_unused_result)),
10424 and without this change, GCC might complain about discarding
10425 fchown's return value.
10426
10427 2011-07-16 Juanma Barranquero <lekktu@gmail.com>
10428
10429 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
10430
10431 2011-07-16 Paul Eggert <eggert@cs.ucla.edu>
10432
10433 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
10434
10435 2011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
10436
10437 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
10438 it's used from the C level.
10439
10440 * process.c: Use the same condition for POLL_FOR_INPUT in both
10441 keyboard.c and process.c (bug#1858).
10442
10443 2011-07-09 Lawrence Mitchell <wence@gmx.li>
10444
10445 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
10446 (Fgnutls_boot): Use it.
10447
10448 2011-07-15 Andreas Schwab <schwab@linux-m68k.org>
10449
10450 * doc.c (Fsubstitute_command_keys): Revert last change.
10451
10452 2011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
10453
10454 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
10455 quotes the next character, and doesn't affect other longer
10456 sequences (bug#8935).
10457
10458 * lread.c (syms_of_lread): Clarify that is isn't only
10459 `eval-buffer' and `eval-defun' that's affected by
10460 `lexical-binding' (bug#8460).
10461
10462 2011-07-15 Eli Zaretskii <eliz@gnu.org>
10463
10464 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
10465 bidi redisplay when a line includes both an image and is truncated.
10466
10467 2011-07-14 Paul Eggert <eggert@cs.ucla.edu>
10468
10469 Fix minor problems found by static checking.
10470 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
10471 (elsz): Now a signed constant, not a size_t var. We prefer signed
10472 types to unsigned, to avoid integer comparison confusion. Without
10473 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
10474 "cannot optimize loop, the loop counter may overflow", a symptom
10475 of the confusion.
10476 * indent.c (Fvertical_motion): Mark locals as initialized.
10477 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
10478
10479 2011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
10480
10481 * search.c (Fre_search_backward): Mention `case-fold-search' in
10482 all the re_search_* functions (bug#8138).
10483
10484 * keyboard.c (Fopen_dribble_file): Document when the file is
10485 closed (bug#8056).
10486
10487 2011-07-14 Eli Zaretskii <eliz@gnu.org>
10488
10489 * bidi.c (bidi_dump_cached_states): Fix format of displaying
10490 bidi_cache_idx.
10491
10492 Support bidi reordering of display and overlay strings.
10493 * xdisp.c (compute_display_string_pos)
10494 (compute_display_string_end): Accept additional argument STRING.
10495 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
10496 (reseat_to_string): Initialize bidi_it->string.s and
10497 bidi_it->string.schars.
10498 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
10499 NULL (avoids a crash in bidi_paragraph_init).
10500 Initialize itb.string.lstring.
10501 (init_iterator): Call bidi_init_it only of a valid
10502 buffer position was specified. Initialize paragraph_embedding to
10503 L2R.
10504 (reseat_to_string): Initialize the bidi iterator.
10505 (display_string): If we need to ignore text properties of
10506 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
10507 original value of -1 will not work with bidi.)
10508 (compute_display_string_pos): First arg is now struct
10509 `text_pos *'; all callers changed. Support display properties on
10510 Lisp strings.
10511 (compute_display_string_end): Support display properties on Lisp
10512 strings.
10513 (init_iterator, reseat_1, reseat_to_string): Initialize the
10514 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
10515 when iterating on a string not from display properties).
10516 (compute_display_string_pos, compute_display_string_end):
10517 Fix calculation of the object to scan. Fixes an error when using
10518 arrow keys.
10519 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
10520 base_level_stop; instead, set base_level_stop to BEGV.
10521 Fixes crashes in vertical-motion.
10522 (next_element_from_buffer): Improve commentary for when
10523 the iterator is before prev_stop.
10524 (init_iterator): Initialize bidi_p from the default value of
10525 bidi-display-reordering, not from buffer-local value. Use the
10526 buffer-local value only if initializing for buffer iteration.
10527 (handle_invisible_prop): Support invisible properties on strings
10528 that are being bidi-reordered.
10529 (set_iterator_to_next): Support bidi reordering of C strings and
10530 Lisp strings.
10531 (next_element_from_string): Support bidi reordering of Lisp
10532 strings.
10533 (handle_stop_backwards): Support Lisp strings as well.
10534 (display_string): Support display of R2L glyph rows.
10535 Use IT_STRING_CHARPOS when displaying from a Lisp string.
10536 (init_iterator): Don't initialize it->bidi_p for strings
10537 here.
10538 (reseat_to_string): Initialize it->bidi_p for strings here.
10539 (next_element_from_string, next_element_from_c_string)
10540 (next_element_from_buffer): Add xassert's for correspondence
10541 between IT's object being iterated and it->bidi_it.string
10542 structure.
10543 (face_before_or_after_it_pos): Support bidi iteration.
10544 (next_element_from_c_string): Handle the case of the first string
10545 character that is not the first one in the visual order.
10546 (get_visually_first_element): New function, refactored from common
10547 parts of next_element_from_buffer, next_element_from_string, and
10548 next_element_from_c_string.
10549 (tool_bar_lines_needed, redisplay_tool_bar)
10550 (display_menu_bar): Force left-to-right direction. Add a FIXME
10551 comment for making that be controlled by a user option.
10552 (push_it, pop_it): Save and restore the state of the
10553 bidi iterator. Save and restore the bidi_p flag.
10554 (pop_it): Iterate out of display property for string iteration as
10555 well.
10556 (iterate_out_of_display_property): Support iteration over strings.
10557 (handle_single_display_spec): Set up it->bidi_it for iteration
10558 over a display string, and call bidi_init_it.
10559 (handle_single_display_spec, next_overlay_string)
10560 (get_overlay_strings_1, push_display_prop): Set up the bidi
10561 iterator for displaying display or overlay strings.
10562 (forward_to_next_line_start): Don't use the shortcut if
10563 bidi-iterating.
10564 (back_to_previous_visible_line_start): If handle_display_prop
10565 pushed the iterator stack, restore the internal state of the bidi
10566 iterator by calling bidi_pop_it same number of times.
10567 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
10568 and we are bidi-iterating, don't decrement the iterator position;
10569 instead, set the first_elt flag in the bidi iterator, to produce
10570 the same effect.
10571 (reseat_1): Remove redundant setting of string_from_display_prop_p.
10572 (push_display_prop): xassert that we are iterating a buffer.
10573 (push_it, pop_it): Save and restore paragraph_embedding member.
10574 (handle_single_display_spec, next_overlay_string)
10575 (get_overlay_strings_1, reseat_1, reseat_to_string)
10576 (push_display_prop): Set up the `unibyte' member of bidi_it.string
10577 correctly. Don't assume unibyte strings are not bidi-reordered.
10578 (compute_display_string_pos)
10579 (compute_display_string_end): Fix handling the case of C string.
10580 (push_it, pop_it): Save and restore from_disp_prop_p.
10581 (handle_single_display_spec, push_display_prop): Set the
10582 from_disp_prop_p flag.
10583 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
10584 (pop_it): Call iterate_out_of_display_property only if we are
10585 popping after iteration over a string that came from a display
10586 property. Fix a typo in popping stretch info. Add an assertion
10587 for verifying that the iterator position is in sync with the bidi
10588 iterator.
10589 (handle_single_display_spec, get_overlay_strings_1)
10590 (push_display_prop): Fix initialization of paragraph direction for
10591 string when that of the parent object is not yet determined.
10592 (reseat_1): Call bidi_init_it to resync the bidi
10593 iterator with IT's position. (Bug#7616)
10594 (find_row_edges): If ROW->start.pos gives position
10595 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
10596 (handle_stop, back_to_previous_visible_line_start, reseat_1):
10597 Reset the from_disp_prop_p flag.
10598 (SAVE_IT, RESTORE_IT): New macros.
10599 (pos_visible_p, face_before_or_after_it_pos)
10600 (back_to_previous_visible_line_start)
10601 (move_it_in_display_line_to, move_it_in_display_line)
10602 (move_it_to, move_it_vertically_backward, move_it_by_lines)
10603 (try_scrolling, redisplay_window, display_line): Use them when
10604 saving a temporary copy of the iterator and restoring it back.
10605 (back_to_previous_visible_line_start, reseat_1)
10606 (init_iterator): Empty the bidi cache "stack".
10607 (move_it_in_display_line_to): If iterator ended up at
10608 EOL, but we never saw any buffer positions smaller than
10609 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
10610 motion in bidi-reordered lines.
10611 (move_it_in_display_line_to): Record prev_method and prev_pos
10612 immediately before the call to set_iterator_to_next. Fixes cursor
10613 motion in bidi-reordered lines with stretch glyphs and strings
10614 displayed in margins. (Bug#8133) (Bug#8867)
10615 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
10616 TO_CHARPOS.
10617 (pos_visible_p): Support positions in bidi-reordered lines.
10618 Save and restore bidi cache.
10619
10620 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
10621 (bidi_paragraph_info): Delete unused struct.
10622 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
10623 (bidi_cache_start): New variable.
10624 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
10625 to zero.
10626 (bidi_cache_fetch_state, bidi_cache_search)
10627 (bidi_cache_find_level_change, bidi_cache_iterator_state)
10628 (bidi_cache_find, bidi_peek_at_next_level)
10629 (bidi_level_of_next_char, bidi_find_other_level_edge)
10630 (bidi_move_to_visually_next): Compare cache index with
10631 bidi_cache_start rather than with zero.
10632 (bidi_fetch_char): Accept new argument STRING; all callers
10633 changed. Support iteration over a string. Support strings with
10634 display properties. Support unibyte strings. Fix the type of
10635 `len' according to what STRING_CHAR_AND_LENGTH expects.
10636 (bidi_paragraph_init, bidi_resolve_explicit_1)
10637 (bidi_resolve_explicit, bidi_resolve_weak)
10638 (bidi_level_of_next_char, bidi_move_to_visually_next):
10639 Support iteration over a string.
10640 (bidi_set_sor_type, bidi_resolve_explicit_1)
10641 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
10642 can now be zero (for strings); special values 0 and -1 were
10643 changed to -1 and -2, respectively.
10644 (bidi_char_at_pos): New function.
10645 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
10646 Call it instead of FETCH_MULTIBYTE_CHAR.
10647 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
10648 initialized to valid values.
10649 (bidi_init_it): Don't initialize charpos and bytepos with invalid
10650 values.
10651 (bidi_level_of_next_char): Allow the sentinel "position" to pass
10652 the test for valid cached positions. Fix the logic for looking up
10653 the sentinel state in the cache. GCPRO the Lisp string we are
10654 iterating.
10655 (bidi_push_it, bidi_pop_it): New functions.
10656 (bidi_initialize): Initialize the bidi cache start stack pointer.
10657 (bidi_cache_ensure_space): New function, refactored from part of
10658 bidi_cache_iterator_state. Don't assume the required size is just
10659 one BIDI_CACHE_CHUNK away.
10660 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
10661 (bidi_count_bytes, bidi_char_at_pos): New functions.
10662 (bidi_cache_search): Don't assume bidi_cache_last_idx is
10663 always valid if bidi_cache_idx is valid.
10664 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
10665 is valid if it's going to be used.
10666 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
10667 (bidi_cache_fetch_state, bidi_cache_search)
10668 (bidi_cache_find_level_change, bidi_cache_ensure_space)
10669 (bidi_cache_iterator_state, bidi_cache_find)
10670 (bidi_find_other_level_edge, bidi_cache_start_stack):
10671 All variables related to cache indices are now EMACS_INT.
10672
10673 * dispextern.h (struct bidi_string_data): New structure.
10674 (struct bidi_it): New member `string'. Make flag members be 1-bit
10675 fields, and put them last in the struct.
10676 (compute_display_string_pos, compute_display_string_end):
10677 Update prototypes.
10678 (bidi_push_it, bidi_pop_it): Add prototypes.
10679 (struct iterator_stack_entry): New members bidi_p,
10680 paragraph_embedding, and from_disp_prop_p.
10681 (struct it): Member bidi_p is now a bit field 1 bit wide.
10682 (bidi_shelve_cache, bidi_unshelve_cache):
10683 Declare prototypes.
10684
10685 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
10686 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
10687 and vector-like objects.
10688
10689 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
10690 cache around display iteration.
10691
10692 * window.c (Fwindow_end, window_scroll_pixel_based)
10693 (displayed_window_lines, Frecenter): Save and restore the bidi
10694 cache around display iteration.
10695
10696 2011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
10697
10698 * editfns.c (Fdelete_region): Clarify the use of the named
10699 parameters (bug#6788).
10700
10701 2011-07-14 Martin Rudalics <rudalics@gmx.at>
10702
10703 * indent.c (Fvertical_motion): Set and restore w->pointm when
10704 saving and restoring the window's buffer (Bug#9006).
10705
10706 2011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
10707
10708 * editfns.c (Fstring_to_char): Clarify just what is returned
10709 (bug#6576). Text by Eli Zaretskii.
10710
10711 2011-07-13 Juanma Barranquero <lekktu@gmail.com>
10712
10713 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
10714
10715 2011-07-13 Eli Zaretskii <eliz@gnu.org>
10716
10717 * buffer.c (mmap_find): Fix a typo.
10718
10719 2011-07-13 Johan Bockgård <bojohan@gnu.org>
10720
10721 Fix execution of x selection hooks.
10722 * xselect.c (Qx_lost_selection_functions)
10723 (Qx_sent_selection_functions): New vars.
10724 (syms_of_xselect): DEFSYM them.
10725 (x_handle_selection_request): Pass Qx_sent_selection_functions
10726 rather than Vx_sent_selection_functions to Frun_hook_with_args.
10727 (x_handle_selection_clear,x_clear_frame_selections):
10728 Pass Qx_lost_selection_functions rather than
10729 Vx_lost_selection_functions to Frun_hook_with_args.
10730
10731 2011-07-13 Paul Eggert <eggert@cs.ucla.edu>
10732
10733 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
10734 The old code sometimes used this field without initializing it.
10735
10736 * alloc.c (gc_sweep): Don't read past end of array.
10737 In theory, the old code could also have corrupted Emacs internals,
10738 though it'd be very unlikely.
10739
10740 2011-07-12 Andreas Schwab <schwab@linux-m68k.org>
10741
10742 * character.c (Fcharacterp): Don't advertise optional ignored
10743 argument. (Bug#4026)
10744
10745 2011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
10746
10747 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
10748 key" (bug#4257).
10749
10750 * window.c (Fset_window_start): Doc fix (bug#4199).
10751 (Fset_window_hscroll): Ditto.
10752
10753 2011-07-12 Paul Eggert <eggert@cs.ucla.edu>
10754
10755 Fix minor new problems caught by GCC 4.6.1.
10756 * term.c (init_tty): Remove unused local.
10757 * xsettings.c (store_monospaced_changed): Define this function only
10758 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
10759 not used otherwise.
10760
10761 2011-07-12 Chong Yidong <cyd@stupidchicken.com>
10762
10763 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
10764
10765 2011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
10766
10767 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
10768 are the mini-buffer and the echo area (bug#3320).
10769
10770 * term.c (init_tty): Remove support for supdup, c10 and perq
10771 terminals, which are no longer supported (bug#1482).
10772
10773 2011-07-10 Johan Bockgård <bojohan@gnu.org>
10774
10775 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
10776
10777 2011-07-10 Jan Djärv <jan.h.d@swipnet.se>
10778
10779 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
10780 for non-popups (Bug#3642).
10781
10782 2011-07-10 Andreas Schwab <schwab@linux-m68k.org>
10783
10784 * alloc.c (reset_malloc_hooks): Protoize.
10785 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
10786 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
10787 * cm.c (losecursor): Likewise.
10788 * data.c (fmod): Likewise.
10789 * dispnew.c (swap_glyphs_in_rows): Likewise.
10790 * emacs.c (memory_warning_signal): Likewise.
10791 * floatfns.c (float_error): Likewise.
10792 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
10793 (otf_open, font_otf_capability, generate_otf_features)
10794 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
10795 Likewise.
10796 * image.c (pbm_read_file): Likewise.
10797 * indent.c (string_display_width): Likewise.
10798 * intervals.c (check_for_interval, search_for_interval)
10799 (inc_interval_count, count_intervals, root_interval)
10800 (adjust_intervals_for_insertion, make_new_interval): Likewise.
10801 * lread.c (defalias): Likewise.
10802 * ralloc.c (r_alloc_check): Likewise.
10803 * regex.c (set_image_of_range_1, set_image_of_range)
10804 (regex_grow_registers): Likewise.
10805 * sysdep.c (strerror): Likewise.
10806 * termcap.c (valid_filename_p, tprint, main): Likewise.
10807 * tparam.c (main): Likewise.
10808 * unexhp9k800.c (run_time_remap, save_data_space)
10809 (update_file_ptrs, read_header, write_header, calculate_checksum)
10810 (copy_file, copy_rest, display_header): Likewise.
10811 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
10812 Likewise.
10813 * xdisp.c (check_it): Likewise.
10814 * xfaces.c (register_color, unregister_color, unregister_colors):
10815 Likewise.
10816 * xfns.c (print_fontset_result): Likewise.
10817 * xrdb.c (member, fatal, main): Likewise.
10818
10819 2011-07-10 Paul Eggert <eggert@cs.ucla.edu>
10820
10821 Fix minor problems found by static checking (Bug#9031).
10822 * chartab.c (char_table_set_range, map_sub_char_table):
10823 Remove unused locals.
10824 (uniprop_table): Now static.
10825 * composite.c (_work_char): Remove unused static var.
10826
10827 2011-07-09 Juanma Barranquero <lekktu@gmail.com>
10828
10829 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
10830
10831 2011-07-09 Jan Djärv <jan.h.d@swipnet.se>
10832
10833 * gtkutil.c (qttip_cb): Remove code without function.
10834
10835 2011-07-09 Eli Zaretskii <eliz@gnu.org>
10836
10837 * w32.c (pthread_sigmask): New stub.
10838
10839 2011-07-08 Paul Eggert <eggert@cs.ucla.edu>
10840
10841 Use pthread_sigmask, not sigprocmask (Bug#9010).
10842 sigprocmask is portable only for single-threaded applications, and
10843 Emacs can be multi-threaded when it uses GTK.
10844 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
10845 (LIBES): Use it.
10846 * callproc.c (Fcall_process):
10847 * process.c (create_process):
10848 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
10849 Use pthread_sigmask, not sigprocmask.
10850
10851 2011-07-08 Jan Djärv <jan.h.d@swipnet.se>
10852
10853 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
10854 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
10855 wrong (Bug#8591).
10856
10857 2011-07-08 Jan Djärv <jan.h.d@swipnet.se>
10858
10859 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
10860 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
10861 (xg_hide_tooltip): Fix comment.
10862
10863 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
10864 in registerServicesMenuSendTypes.
10865 (validRequestorForSendType): Don't check ns_return_types.
10866
10867 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
10868 ns_return_type.
10869
10870 2011-07-08 Jason Rumney <jasonr@gnu.org>
10871
10872 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
10873 SH_SHOW for hidden windows (Bug#5482).
10874
10875 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
10876 frame struct members of non-existent frames (Bug#6284).
10877
10878 2011-07-08 Jan Djärv <jan.h.d@swipnet.se>
10879
10880 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
10881 variable firstTime not needed on OSX >= 10.6.
10882 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
10883 >= 10.5. Use setKnobProportion, setDoubleValue.
10884
10885 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
10886 (MAC_OS_X_VERSION_10_5): Define if not defined.
10887 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
10888 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
10889 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
10890
10891 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
10892 cString and lossyCString on OSX >= 10.4.
10893
10894 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
10895 sizeToFit on OSX >= 10.2.
10896
10897 * nsimage.m (allocInitFromFile): Don't use deprecated method
10898 bestRepresentationForDevice on OSX >= 10.6.
10899
10900 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
10901 to avoid warning.
10902
10903 * emacs.c: Declare unexec_init_emacs_zone.
10904
10905 * nsgui.h: Fix compiler warning about gnulib redefining verify.
10906
10907 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
10908
10909 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
10910 on svcsMenu (Bug#8842).
10911
10912 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
10913 ns_return_types.
10914 (Fns_list_services): Just return Qnil on 10.6, code not working there.
10915
10916 * nsterm.m (QUTF8_STRING): Declare.
10917 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
10918 (validRequestorForSendType): Return type is (id).
10919 Change indexOfObjectIdenticalTo to indexOfObject.
10920 Check if we have local selection before returning self (Bug#8842).
10921 (writeSelectionToPasteboard): Put local selection into paste board
10922 if we have a local selection (Bug#8842).
10923 (syms_of_nsterm): DEFSYM QUTF8_STRING.
10924
10925 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
10926 (ns_get_local_selection): Declare.
10927
10928 2011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
10929
10930 * keymap.c (describe_map_tree): Don't insert a double newline at
10931 the end of the buffer (bug#1169) and return whether we inserted
10932 something.
10933
10934 * callint.c (Fcall_interactively): Change "reading args" to
10935 "providing args" to try to clarify what it does (bug#1010).
10936
10937 2011-07-07 Kenichi Handa <handa@m17n.org>
10938
10939 * composite.c (composition_compute_stop_pos): Ignore a static
10940 composition starting before CHARPOS (Bug#8915).
10941
10942 * xdisp.c (handle_composition_prop): Likewise.
10943
10944 2011-07-07 Eli Zaretskii <eliz@gnu.org>
10945
10946 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
10947 (Bug#9015)
10948
10949 2011-07-07 Kenichi Handa <handa@m17n.org>
10950
10951 * character.h (unicode_category_t): New enum type.
10952
10953 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
10954 (Qchar_code_property_table): New variable.
10955 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
10956 (UNIPROP_COMPRESSED_FORM_P): New macros.
10957 (char_table_ascii): Uncompress the compressed values.
10958 (sub_char_table_ref): New arg is_uniprop. Callers changed.
10959 Uncompress the compressed values.
10960 (sub_char_table_ref_and_range): Likewise.
10961 (char_table_ref_and_range): Uncompress the compressed values.
10962 (sub_char_table_set): New arg is_uniprop. Callers changed.
10963 Uncompress the compressed values.
10964 (sub_char_table_set_range): Args changed. Callers changed.
10965 (char_table_set_range): Adjuted for the above change.
10966 (map_sub_char_table): Delete args default_val and parent. Add arg
10967 top. Give decoded values to a Lisp function.
10968 (map_char_table): Adjust for the above change. Give decoded
10969 values to a Lisp function. Gcpro more variables.
10970 (uniprop_table_uncompress)
10971 (uniprop_decode_value_run_length): New functions.
10972 (uniprop_decoder, uniprop_decoder_count): New variables.
10973 (uniprop_get_decoder, uniprop_encode_value_character)
10974 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
10975 New functions.
10976 (uniprop_encoder, uniprop_encoder_count): New variables.
10977 (uniprop_get_encoder, uniprop_table)
10978 (Funicode_property_table_internal, Fget_unicode_property_internal)
10979 (Fput_unicode_property_internal): New functions.
10980 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
10981 Sunicode_property_table_internal, Sget_unicode_property_internal,
10982 and Sput_unicode_property_internal. Defvar_lisp
10983 char-code-property-alist.
10984
10985 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
10986 Vunicode_category_table.
10987
10988 * font.c (font_range): Adjust for the change of
10989 Vunicode_category_table.
10990
10991 2011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
10992
10993 * m/iris4d.h: Remove file, move contents ...
10994 * s/irix6-5.h: ... here.
10995
10996 2011-07-06 Paul Eggert <eggert@cs.ucla.edu>
10997
10998 Remove unportable assumption about struct layout (Bug#8884).
10999 * alloc.c (mark_buffer):
11000 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
11001 (clone_per_buffer_values): Don't assume that
11002 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
11003 This isn't true in general, and it's particularly not true
11004 if Emacs is configured with --with-wide-int.
11005 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
11006 New macros, used in the buffer.c change.
11007
11008 2011-07-05 Jan Djärv <jan.h.d@swipnet.se>
11009
11010 * xsettings.c: Use both GConf and GSettings if both are available.
11011 (store_config_changed_event): Add comment.
11012 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
11013 (store_tool_bar_style_changed): New functions.
11014 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
11015 (struct xsettings): Move font inside HAVE_XFT.
11016 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
11017 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
11018 Move inside HAVE_XFT.
11019 (something_changed_gsettingsCB): Rename from something_changedCB.
11020 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
11021 also.
11022 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
11023 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
11024 (something_changed_gconfCB): Rename from something_changedCB.
11025 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
11026 (parse_settings): Move check for font inside HAVE_XFT.
11027 (read_settings, apply_xft_settings): Add comment.
11028 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
11029 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
11030 call store_font_name_changed.
11031 (xft_settings_event): Add comment.
11032 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
11033 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
11034 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
11035 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
11036 (xsettings_initialize): Call init_gsettings last.
11037 (xsettings_get_system_font, xsettings_get_system_normal_font):
11038 Add comment.
11039
11040 2011-07-05 Paul Eggert <eggert@cs.ucla.edu>
11041
11042 Random fixes. E.g., (random) never returned negative values.
11043 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
11044 subseconds part to the entropy, as that's a bit more random.
11045 Prefer signed to unsigned, since the signedness doesn't matter and
11046 in general we prefer signed. When given a limit, use a
11047 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
11048 latter isn't right if USE_2_TAGS_FOR_INTS.
11049 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
11050 not 0..VALMASK. Don't discard "excess" bits that random () returns.
11051
11052 2011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
11053
11054 * textprop.c (text_property_stickiness):
11055 Obey Vtext_property_default_nonsticky.
11056 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
11057 * w32fns.c (syms_of_w32fns):
11058 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
11059
11060 2011-07-04 Paul Eggert <eggert@cs.ucla.edu>
11061
11062 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
11063 This is more efficient than Ffile_directory_p and avoids a minor race.
11064
11065 2011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
11066
11067 * buffer.c (Foverlay_put): Say what the return value is
11068 (bug#7835).
11069
11070 * fileio.c (barf_or_query_if_file_exists): Check first if the file
11071 is a directory before asking whether to use the file name
11072 (bug#7564).
11073 (barf_or_query_if_file_exists): Make the "File is a directory"
11074 error be more correct.
11075
11076 * fns.c (Frequire): Remove the mention of the .gz files, since
11077 that's installation-specific, but keep the mention of
11078 `get-load-suffixes'.
11079
11080 2011-07-04 Paul Eggert <eggert@cs.ucla.edu>
11081
11082 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
11083 Report string overflow if the output is too long.
11084
11085 2011-07-04 Juanma Barranquero <lekktu@gmail.com>
11086
11087 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
11088 (syms_of_gnutls): Remove duplicate DEFSYM for
11089 Qgnutls_bootprop_verify_hostname_error, an error for
11090 Qgnutls_bootprop_verify_error (which is no longer used).
11091
11092 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
11093 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
11094 Also (re)move comments that are misplaced or no longer relevant.
11095
11096 2011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
11097
11098 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
11099
11100 2011-07-03 Chong Yidong <cyd@stupidchicken.com>
11101
11102 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
11103 and background color parameters if they have been changed.
11104
11105 2011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
11106
11107 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
11108
11109 2011-07-03 Paul Eggert <eggert@cs.ucla.edu>
11110
11111 * xsettings.c (SYSTEM_FONT): Define only when used.
11112 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
11113
11114 * keymap.c (access_keymap_1): Now static.
11115
11116 2011-07-02 Chong Yidong <cyd@stupidchicken.com>
11117
11118 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
11119 leave any prefix arg for the up event (Bug#1586).
11120
11121 2011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
11122
11123 * lread.c (syms_of_lread): Mention single symbols defined by
11124 `defvar' or `defconst' (bug#7154).
11125
11126 * fns.c (Frequire): Mention .el.gz files (bug#7314).
11127 (Frequire): Mention get-load-suffixes.
11128
11129 2011-07-02 Martin Rudalics <rudalics@gmx.at>
11130
11131 * window.h (window): Remove clone_number slot.
11132 * window.c (Fwindow_clone_number, Fset_window_clone_number):
11133 Remove.
11134 (make_parent_window, make_window, saved_window)
11135 (Fset_window_configuration, save_window_save): Don't deal with
11136 clone numbers.
11137 * buffer.c (Qclone_number): Remove declaration.
11138 (sort_overlays, overlay_strings): Don't deal with clone numbers.
11139
11140 2011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
11141
11142 Add multiple inheritance to keymaps.
11143 * keymap.c (Fmake_composed_keymap): New function.
11144 (Fset_keymap_parent): Simplify.
11145 (fix_submap_inheritance): Remove.
11146 (access_keymap_1): New function extracted from access_keymap to handle
11147 embedded parents and handle lists of maps.
11148 (access_keymap): Use it.
11149 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
11150 (Fcopy_keymap): Handle embedded parents.
11151 (Fcommand_remapping, define_as_prefix): Simplify.
11152 (Fkey_binding): Simplify.
11153 (syms_of_keymap): Move minibuffer-local-completion-map,
11154 minibuffer-local-filename-completion-map,
11155 minibuffer-local-must-match-map, and
11156 minibuffer-local-filename-must-match-map to Elisp.
11157 (syms_of_keymap): Defsubr make-composed-keymap.
11158 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
11159 (parse_menu_item): Trivial simplification.
11160
11161 2011-07-01 Glenn Morris <rgm@gnu.org>
11162
11163 * Makefile.in (SETTINGS_LIBS): Fix typo.
11164
11165 2011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
11166
11167 * coding.c (Fencode_coding_string): Record the last coding system
11168 used, as the function doc string says (bug#8738).
11169
11170 2011-07-01 Jan Djärv <jan.h.d@swipnet.se>
11171
11172 * xsettings.c (store_monospaced_changed): Take new font as arg and
11173 check for change against current_mono_font.
11174 (EMACS_TYPE_SETTINGS): Remove this and related defines.
11175 (emacs_settings_constructor, emacs_settings_get_property)
11176 (emacs_settings_set_property, emacs_settings_class_init)
11177 (emacs_settings_init, gsettings_obj): Remove.
11178 (something_changedCB): New function for HAVE_GSETTINGS.
11179 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
11180 with value as argument.
11181 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
11182 g_settings_new (Bug#8967). Do not create gsettings_obj.
11183 Remove calls to g_settings_bind. Connect something_changedCB to
11184 "changed".
11185
11186 * xgselect.c: Add defined (HAVE_GSETTINGS).
11187 (xgselect_initialize): Ditto.
11188
11189 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
11190 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
11191 xg_select.
11192
11193 2011-07-01 Paul Eggert <eggert@cs.ucla.edu>
11194
11195 * eval.c (struct backtrace): Simplify and port the data structure.
11196 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
11197 signed bit field, as this assumption is not portable and it makes
11198 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
11199 "char debug_on_exit : 1" as this is not portable either; instead,
11200 use the portable "unsigned int debug_on_exit : 1". Remove unused
11201 member evalargs. Remove obsolete comments about cc bombing out.
11202
11203 2011-06-30 Jan Djärv <jan.h.d@swipnet.se>
11204
11205 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
11206 Let HAVE_GSETTINGS override HAVE_GCONF.
11207 (store_monospaced_changed): New function.
11208 (EMACS_SETTINGS): A new type derived from GObject to handle
11209 GSettings notifications.
11210 (emacs_settings_constructor, emacs_settings_get_property)
11211 (emacs_settings_set_property, emacs_settings_class_init):
11212 New functions.
11213 (gsettings_client, gsettings_obj): New variables.
11214 (GSETTINGS_SCHEMA): New define.
11215 (something_changedCB): Call store_monospaced_changed.
11216 (init_gsettings): New function.
11217 (xsettings_initialize): Call init_gsettings.
11218 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
11219 to NULL.
11220
11221 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
11222 GCONF_CFLAGS/LIBS.
11223
11224 2011-06-29 Martin Rudalics <rudalics@gmx.at>
11225
11226 * window.c (resize_root_window, grow_mini_window)
11227 (shrink_mini_window): Rename Qresize_root_window to
11228 Qwindow_resize_root_window and Qresize_root_window_vertically to
11229 Qwindow_resize_root_window_vertically.
11230
11231 2011-06-28 Paul Eggert <eggert@cs.ucla.edu>
11232
11233 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
11234
11235 2011-06-27 Juanma Barranquero <lekktu@gmail.com>
11236
11237 * makefile.w32-in: Redesign dependencies so they reflect more
11238 clearly which files are directly included by each source file,
11239 and not through other includes.
11240
11241 2011-06-27 Martin Rudalics <rudalics@gmx.at>
11242
11243 * buffer.c (Qclone_number): Declare static and DEFSYM it.
11244 (sort_overlays, overlay_strings): When an overlay's clone number
11245 matches the window's clone number process the overlay even if
11246 the overlay's window property doesn't match the current window.
11247
11248 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
11249 (Fwindow_hchild): Rename to Fwindow_left_child.
11250 (Fwindow_next): Rename to Fwindow_next_sibling.
11251 (Fwindow_prev): Rename to Fwindow_prev_sibling.
11252 (resize_window_check): Rename to window_resize_check.
11253 (resize_window_apply): Rename to window_resize_apply.
11254 (Fresize_window_apply): Rename to Fwindow_resize_apply.
11255 (Fdelete_other_windows_internal, resize_frame_windows)
11256 (Fsplit_window_internal, Fdelete_window_internal)
11257 (grow_mini_window, shrink_mini_window)
11258 (Fresize_mini_window_internal): Fix callers accordingly.
11259
11260 2011-06-26 Jan Djärv <jan.h.d@swipnet.se>
11261
11262 * emacsgtkfixed.h: State that this is only used with Gtk+3.
11263 (emacs_fixed_set_min_size): Remove.
11264 (emacs_fixed_new): Take frame as argument.
11265
11266 * emacsgtkfixed.c: State that this is only used with Gtk+3.
11267 (_EmacsFixedPrivate): Remove minwidth/height.
11268 Add struct frame *f.
11269 (emacs_fixed_init): Initialize priv->f.
11270 (get_parent_class, emacs_fixed_set_min_size): Remove.
11271 (emacs_fixed_new): Set priv->f to argument.
11272 (emacs_fixed_get_preferred_width)
11273 (emacs_fixed_get_preferred_height): Use min_width/height from
11274 frames size_hint to set minimum and natural (Bug#8919).
11275 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
11276 and use min_width/height from frames size_hint to set
11277 min_width/height (Bug#8919).
11278
11279 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
11280 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
11281 Fix indentation.
11282
11283 2011-06-26 Eli Zaretskii <eliz@gnu.org>
11284
11285 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
11286 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
11287 called at ZV.
11288
11289 2011-06-26 Chong Yidong <cyd@stupidchicken.com>
11290
11291 * process.c (wait_reading_process_output): Bypass select if
11292 waiting for a cell while ignoring keyboard input, and input is
11293 pending. Suggested by Jan Djärv (Bug#8869).
11294
11295 2011-06-25 Paul Eggert <eggert@cs.ucla.edu>
11296
11297 Use gnulib's dup2 module instead of rolling our own.
11298 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
11299
11300 2011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
11301
11302 * dispnew.c (scrolling_window): Before scrolling, turn off a
11303 mouse-highlight in the window being scrolled.
11304
11305 2011-06-24 Juanma Barranquero <lekktu@gmail.com>
11306
11307 Move DEFSYM to lisp.h and use everywhere.
11308
11309 * character.h (DEFSYM): Move declaration...
11310 * lisp.h (DEFSYM): ...here.
11311
11312 * gnutls.c:
11313 * minibuf.c:
11314 * w32menu.c:
11315 * w32proc.c:
11316 * w32select.c: Don't include character.h.
11317
11318 * alloc.c (syms_of_alloc):
11319 * buffer.c (syms_of_buffer):
11320 * bytecode.c (syms_of_bytecode):
11321 * callint.c (syms_of_callint):
11322 * casefiddle.c (syms_of_casefiddle):
11323 * casetab.c (init_casetab_once):
11324 * category.c (init_category_once, syms_of_category):
11325 * ccl.c (syms_of_ccl):
11326 * cmds.c (syms_of_cmds):
11327 * composite.c (syms_of_composite):
11328 * dbusbind.c (syms_of_dbusbind):
11329 * dired.c (syms_of_dired):
11330 * dispnew.c (syms_of_display):
11331 * doc.c (syms_of_doc):
11332 * editfns.c (syms_of_editfns):
11333 * emacs.c (syms_of_emacs):
11334 * eval.c (syms_of_eval):
11335 * fileio.c (syms_of_fileio):
11336 * fns.c (syms_of_fns):
11337 * frame.c (syms_of_frame):
11338 * fringe.c (syms_of_fringe):
11339 * insdel.c (syms_of_insdel):
11340 * keymap.c (syms_of_keymap):
11341 * lread.c (init_obarray, syms_of_lread):
11342 * macros.c (syms_of_macros):
11343 * msdos.c (syms_of_msdos):
11344 * print.c (syms_of_print):
11345 * process.c (syms_of_process):
11346 * search.c (syms_of_search):
11347 * sound.c (syms_of_sound):
11348 * syntax.c (init_syntax_once, syms_of_syntax):
11349 * terminal.c (syms_of_terminal):
11350 * textprop.c (syms_of_textprop):
11351 * undo.c (syms_of_undo):
11352 * w32.c (globals_of_w32):
11353 * window.c (syms_of_window):
11354 * xdisp.c (syms_of_xdisp):
11355 * xfaces.c (syms_of_xfaces):
11356 * xfns.c (syms_of_xfns):
11357 * xmenu.c (syms_of_xmenu):
11358 * xsettings.c (syms_of_xsettings):
11359 * xterm.c (syms_of_xterm): Use DEFSYM.
11360
11361 2011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
11362
11363 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
11364
11365 2011-06-23 Paul Eggert <eggert@cs.ucla.edu>
11366
11367 Integer and buffer overflow fixes (Bug#8873).
11368
11369 * print.c (printchar, strout): Check for string overflow.
11370 (PRINTPREPARE, printchar, strout):
11371 Don't set size unless allocation succeeds.
11372
11373 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
11374 for sizes. Check for string overflow more accurately.
11375 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
11376
11377 * macros.c: Integer and buffer overflow fixes.
11378 * keyboard.h (struct keyboard.kbd_macro_bufsize):
11379 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
11380 Use ptrdiff_t, not int, for sizes.
11381 Don't increment bufsize until after realloc succeeds.
11382 Check for size-calculation overflow.
11383 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
11384
11385 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
11386
11387 * lread.c: Integer overflow fixes.
11388 (read_integer): Radix is now EMACS_INT, not int,
11389 to improve quality of diagnostics for out-of-range radices.
11390 Calculate buffer size correctly for out-of-range radices.
11391 (read1): Check for integer overflow in radices, and in
11392 read-circle numbers.
11393 (read_escape): Avoid int overflow.
11394 (Fload, openp, read_buffer_size, read1)
11395 (substitute_object_recurse, read_vector, read_list, map_obarray):
11396 Use ptrdiff_t, not int, for sizes.
11397 (read1): Use EMACS_INT, not int, for sizes.
11398 Check for size overflow.
11399
11400 * image.c (cache_image): Check for size arithmetic overflow.
11401
11402 * lread.c: Integer overflow issues.
11403 (saved_doc_string_size, saved_doc_string_length)
11404 (prev_saved_doc_string_size, prev_saved_doc_string_length):
11405 Now ptrdiff_t, not int.
11406 (read1): Don't assume doc string length fits in int. Check for
11407 out-of-range doc string lengths.
11408 (read_list): Don't assume file position fits in int.
11409 (read_escape): Check for hex character overflow.
11410
11411 2011-06-22 Leo Liu <sdl.web@gmail.com>
11412
11413 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
11414 Move to minibuffer.el.
11415
11416 2011-06-22 Paul Eggert <eggert@cs.ucla.edu>
11417
11418 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
11419 The following patches are for when GLYPH_DEBUG && !XASSERT.
11420 * dispextern.h (trace_redisplay_p, dump_glyph_string):
11421 * dispnew.c (flush_stdout):
11422 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
11423 Mark as externally visible.
11424 * dispnew.c (check_window_matrix_pointers): Now static.
11425 * dispnew.c (window_to_frame_vpos):
11426 * xfns.c (unwind_create_frame):
11427 * xterm.c (x_check_font): Remove unused local.
11428 * scroll.c (CHECK_BOUNDS):
11429 * xfaces.c (cache_fache): Rename local to avoid shadowing.
11430 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
11431 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
11432 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
11433 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
11434 Now static.
11435 (debug_method_add): Use va_list and vsprintf rather than relying
11436 on undefined behavior with wrong number of arguments.
11437 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
11438 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
11439 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
11440 since we're not interested in debugging glyphs with old libraries.
11441 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
11442 GCC 4.6.0's static checking.
11443
11444 2011-06-22 Paul Eggert <eggert@cs.ucla.edu>
11445
11446 Integer overflow and signedness fixes (Bug#8873).
11447 A few related buffer overrun fixes, too.
11448
11449 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
11450
11451 * dispextern.h (struct face.stipple):
11452 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
11453 (x_bitmap_mask, x_allocate_bitmap_record)
11454 (x_create_bitmap_from_data, x_create_bitmap_from_file)
11455 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
11456 (x_create_bitmap_from_xpm_data):
11457 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
11458 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
11459 (.bitmaps_last):
11460 * xfaces.c (load_pixmap):
11461 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
11462 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
11463 (.bitmaps_last, struct x_output.icon_bitmap):
11464 Use ptrdiff_t, not int, for bitmap indexes.
11465 (x_allocate_bitmap_record): Check for size overflow.
11466 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
11467
11468 Use ptrdiff_t, not int, for overlay counts.
11469 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
11470 * editfns.c (overlays_around, get_pos_property):
11471 * textprop.c (get_char_property_and_overlay):
11472 * xdisp.c (next_overlay_change, note_mouse_highlight):
11473 * xfaces.c (face_at_buffer_position):
11474 * buffer.c (OVERLAY_COUNT_MAX): New macro.
11475 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
11476 (Fnext_overlay_change, Fprevious_overlay_change)
11477 (mouse_face_overlay_overlaps, Foverlays_in):
11478 Use ptrdiff_t, not int, for sizes.
11479 (overlays_at, overlays_in): Check for size-calculation overflow.
11480
11481 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
11482
11483 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
11484 (x_session_initialize): Do not assume string length fits in int.
11485
11486 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
11487 This is unlikely, but can occur if DPI is outlandish.
11488
11489 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
11490 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
11491
11492 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
11493 * xrdb.c (magic_file_p, search_magic_path):
11494 Omit last arg SUFFIX; it was always 0. All callers changed.
11495 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
11496
11497 * xfont.c (xfont_match): Avoid need for strlen.
11498
11499 * xfns.c: Don't assume strlen fits in int.
11500 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
11501
11502 * xdisp.c (message_log_check_duplicate): Return intmax_t,
11503 not unsigned long, as we prefer signed integers. All callers changed.
11504 Detect integer overflow in repeat count.
11505 (message_dolog): Don't assume print length fits in 39 bytes.
11506 (display_mode_element): Don't assume strlen fits in int.
11507
11508 * termcap.c: Don't assume sizes fit in int and never overflow.
11509 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
11510 (gobble_line): Check for size-calculation overflow.
11511
11512 * minibuf.c (Fread_buffer):
11513 * lread.c (intern, intern_c_string):
11514 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
11515 Don't assume string length fits in int.
11516
11517 * keyboard.c (parse_tool_bar_item):
11518 * gtkutil.c (style_changed_cb): Avoid need for strlen.
11519
11520 * font.c: Don't assume string length fits in int.
11521 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
11522 Use ptrdiff_t, not int.
11523 (font_intern_prop): Don't assume string length fits in int.
11524 Don't assume integer property fits in fixnum.
11525 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
11526
11527 * filelock.c: Fix some buffer overrun and integer overflow issues.
11528 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
11529 Reformulate so as not to need the command string.
11530 Invoke gzip -cd rather than gunzip, as it's more portable.
11531 (lock_info_type, lock_file_1, lock_file):
11532 Don't assume pid_t and time_t fit in unsigned long.
11533 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
11534 (current_lock_owner): Prefer signed type for sizes.
11535 Use memcpy, not strncpy, where memcpy is what is really wanted.
11536 Don't assume (via atoi) that time_t and pid_t fit in int.
11537 Check for time_t and/or pid_t out of range, e.g., via a network share.
11538 Don't alloca where an auto var works fine.
11539
11540 * fileio.c: Fix some integer overflow issues.
11541 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
11542 Don't assume string length fits in int.
11543 (directory_file_name): Don't assume string length fits in long.
11544 (make_temp_name): Don't assume pid fits in int, or that its print
11545 length is less than 20.
11546
11547 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
11548
11549 * coding.c (make_subsidiaries): Don't assume string length fits in int.
11550
11551 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
11552
11553 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
11554 We prefer signed integers, even for size calculations.
11555
11556 * emacs.c: Don't assume string length fits in 'int'.
11557 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
11558 (main): Don't invoke strlen when not needed.
11559
11560 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
11561 (XD_DEBUG_MESSAGE): Don't waste a byte.
11562
11563 * callproc.c (getenv_internal_1, getenv_internal)
11564 (Fgetenv_internal):
11565 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
11566
11567 * lread.c (invalid_syntax): Omit length argument.
11568 All uses changed. This doesn't fix a bug, but it simplifies the
11569 code away from its former Hollerith-constant appearance, and it's
11570 one less 'int' to worry about when looking at integer-overflow issues.
11571 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
11572
11573 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
11574 This didn't break anything, but it didn't help either.
11575 It's confusing to put a bogus integer in a place where the actual
11576 value does not matter.
11577 (LIST_END_P): Remove unused macro and its bogus comment.
11578 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
11579
11580 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
11581 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
11582 implementation.
11583 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
11584 We prefer signed types, and the value cannot exceed the EMACS_INT
11585 range anyway (because otherwise the length would not be representable).
11586 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
11587 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
11588 This avoids a GCC warning when WIDE_EMACS_INT.
11589
11590 * indent.c (sane_tab_width): New function.
11591 (current_column, scan_for_column, Findent_to, position_indentation)
11592 (compute_motion): Use it. This is just for clarity.
11593 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
11594
11595 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
11596
11597 * lisp.h (lint_assume): New macro.
11598 * composite.c (composition_gstring_put_cache):
11599 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
11600
11601 * editfns.c, insdel.c:
11602 Omit unnecessary forward decls, to simplify future changes.
11603
11604 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
11605
11606 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
11607
11608 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
11609 Use much-faster test for byte-length change.
11610 Don't assume string byte-length fits in 'int'.
11611 Check that character arg fits in 'int'.
11612 (mapcar1): Declare byte as byte, for clarity.
11613
11614 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
11615
11616 * fns.c (concat): Catch string overflow earlier.
11617 Do not rely on integer wraparound.
11618
11619 * dispextern.h (struct it.overlay_strings_charpos)
11620 (struct it.selective): Now EMACS_INT, not int.
11621 * xdisp.c (forward_to_next_line_start)
11622 (back_to_previous_visible_line_start)
11623 (reseat_at_next_visible_line_start, next_element_from_buffer):
11624 Don't arbitrarily truncate the value of 'selective' to int.
11625
11626 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
11627
11628 * composite.c: Don't truncate sizes to 'int'.
11629 (composition_gstring_p, composition_reseat_it)
11630 (composition_adjust_point): Use EMACS_INT, not int.
11631 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
11632 not EMACS_UINT, for indexes.
11633
11634 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
11635
11636 * buffer.c: Include <verify.h>.
11637 (struct sortvec.priority, struct sortstr.priority):
11638 Now EMACS_INT, not int.
11639 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
11640 (struct sortstr.size, record_overlay_string)
11641 (struct sortstrlist.size, struct sortlist.used):
11642 Don't truncate size to int.
11643 (record_overlay_string): Check for size-calculation overflow.
11644 (init_buffer_once): Check at compile-time, not run-time.
11645
11646 2011-06-22 Jim Meyering <meyering@redhat.com>
11647
11648 Don't leak an XBM-image-sized buffer
11649 * image.c (xbm_load): Free the image buffer after using it.
11650
11651 2011-06-21 Paul Eggert <eggert@cs.ucla.edu>
11652
11653 Port to Sun C.
11654 * composite.c (find_automatic_composition): Omit needless 'return 0;'
11655 that Sun C diagnosed.
11656 * fns.c (secure_hash): Fix pointer signedness issue.
11657 * intervals.c (static_offset_intervals): New function.
11658 (offset_intervals): Use it.
11659
11660 2011-06-21 Leo Liu <sdl.web@gmail.com>
11661
11662 * deps.mk (fns.o):
11663 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
11664 sha512.h.
11665
11666 * fns.c (secure_hash): Rename from crypto_hash_function and change
11667 the first arg to accept symbols.
11668 (Fsecure_hash): New primitive.
11669 (syms_of_fns): New symbols.
11670
11671 2011-06-20 Deniz Dogan <deniz@dogan.se>
11672
11673 * process.c (Fset_process_buffer): Clarify return value in
11674 docstring.
11675
11676 2011-06-18 Chong Yidong <cyd@stupidchicken.com>
11677
11678 * dispnew.c (add_window_display_history): Use BVAR.
11679
11680 * xdisp.c (debug_method_add): Use BVAR.
11681 (check_window_end, dump_glyph_matrix, dump_glyph)
11682 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
11683
11684 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
11685 Likewise.
11686
11687 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
11688 check till after the cache is created in init_frame_faces.
11689
11690 2011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
11691
11692 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
11693
11694 2011-06-16 Paul Eggert <eggert@cs.ucla.edu>
11695
11696 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
11697 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
11698 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
11699
11700 Improve buffer-overflow checking (Bug#8873).
11701 * fileio.c (Finsert_file_contents):
11702 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
11703 Remove the old (too-loose) buffer overflow checks.
11704 They weren't needed, since make_gap checks for buffer overflow.
11705 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
11706 The old code merely checked for Emacs fixnum overflow, and relied
11707 on undefined (wraparound) behavior. The new code avoids undefined
11708 behavior, and also checks for ptrdiff_t and/or size_t overflow.
11709
11710 * editfns.c (Finsert_char): Don't dump core with very negative counts.
11711 Tune. Don't use wider integers than needed. Don't use alloca.
11712 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
11713
11714 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
11715
11716 * insdel.c, lisp.h (buffer_overflow): New function.
11717 (insert_from_buffer_1, replace_range, replace_range_2):
11718 * insdel.c (make_gap_larger):
11719 * editfns.c (Finsert_char):
11720 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
11721
11722 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
11723
11724 2011-06-15 Paul Eggert <eggert@cs.ucla.edu>
11725
11726 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
11727
11728 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
11729 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
11730
11731 * fileio.c: Don't assume EMACS_INT fits in off_t.
11732 (emacs_lseek): New static function.
11733 (Finsert_file_contents, Fwrite_region): Use it.
11734 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
11735
11736 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
11737
11738 * fns.c: Don't overflow int when computing a list length.
11739 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
11740 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
11741 truncation on 64-bit hosts. Check for QUIT every
11742 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
11743 faster and is responsive enough.
11744 (Flength): Report an error instead of overflowing an integer.
11745 (Fsafe_length): Return a float if the value is not representable
11746 as a fixnum. This shouldn't happen except in contrived situations.
11747 (Fnthcdr, Fsort): Don't assume list length fits in int.
11748 (Fcopy_sequence): Don't assume vector length fits in int.
11749
11750 * alloc.c: Check that resized vectors' lengths fit in fixnums.
11751 (header_size, word_size): New constants.
11752 (allocate_vectorlike): Don't check size overflow here.
11753 (allocate_vector): Check it here instead, since this is the only
11754 caller of allocate_vectorlike that could cause overflow.
11755 Check that the new vector's length is representable as a fixnum.
11756
11757 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
11758 The previous code was bogus. For example, next_almost_prime (32)
11759 returned 39, which is undesirable as it is a multiple of 3; and
11760 next_almost_prime (24) returned 25, which is a multiple of 5 so
11761 why was the code bothering to check for multiples of 7?
11762
11763 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
11764
11765 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
11766
11767 Variadic C functions now count arguments with ptrdiff_t.
11768 This partly undoes my 2011-03-30 change, which replaced int with size_t.
11769 Back then I didn't know that the Emacs coding style prefers signed int.
11770 Also, in the meantime I found a few more instances where arguments
11771 were being counted with int, which may truncate counts on 64-bit
11772 machines, or EMACS_INT, which may be unnecessarily wide.
11773 * lisp.h (struct Lisp_Subr.function.aMANY)
11774 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
11775 Arg counts are now ptrdiff_t, not size_t.
11776 All variadic functions and their callers changed accordingly.
11777 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
11778 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
11779 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
11780 * callint.c (Fcall_interactively): Check arg count for overflow,
11781 to avoid potential buffer overrun. Use signed char, not 'int',
11782 for 'varies' array, so that we needn't bother to check its size
11783 calculation for overflow.
11784 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
11785 * eval.c (apply_lambda):
11786 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
11787 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
11788 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
11789
11790 * callint.c (Fcall_interactively): Don't use index var as event count.
11791
11792 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
11793 * mem-limits.h (SIZE): Remove; no longer used.
11794
11795 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
11796
11797 Remove unnecessary casts.
11798 * xterm.c (x_term_init):
11799 * xfns.c (x_set_border_pixel):
11800 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
11801 These aren't needed now that we assume ANSI C.
11802
11803 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
11804 It's more likely to cause problems (due to unsigned overflow)
11805 than to cure them.
11806
11807 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
11808
11809 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
11810
11811 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
11812
11813 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
11814
11815 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
11816
11817 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
11818
11819 GLYPH_CODE_FACE returns EMACS_INT, not int.
11820 * dispextern.h (merge_faces):
11821 * xfaces.c (merge_faces):
11822 * xdisp.c (get_next_display_element, next_element_from_display_vector):
11823 Don't assume EMACS_INT fits in int.
11824
11825 * character.h (CHAR_VALID_P): Remove unused parameter.
11826 * fontset.c, lisp.h, xdisp.c: All uses changed.
11827
11828 * editfns.c (Ftranslate_region_internal): Omit redundant test.
11829
11830 * fns.c (concat): Minor tuning based on overflow analysis.
11831 This doesn't fix any bugs. Use int to hold character, instead
11832 of constantly refetching from Emacs object. Use XFASTINT, not
11833 XINT, for value known to be a character. Don't bother comparing
11834 a single byte to 0400, as it's always less.
11835
11836 * floatfns.c (Fexpt):
11837 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
11838
11839 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
11840 for characters.
11841
11842 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
11843
11844 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
11845 Without this fix, on a 64-bit host (aset S 0 4294967386) would
11846 incorrectly succeed when S was a string, because 4294967386 was
11847 truncated before it was used.
11848
11849 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
11850 Otherwise, an out-of-range integer could cause undefined behavior
11851 on a 64-bit host.
11852
11853 * composite.c: Use int, not EMACS_INT, for characters.
11854 (fill_gstring_body, composition_compute_stop_pos): Use int, not
11855 EMACS_INT, for values that are known to be in character range.
11856 This doesn't fix any bugs but is the usual style inside Emacs and
11857 may generate better code on 32-bit machines.
11858
11859 Make sure a 64-bit char is never passed to ENCODE_CHAR.
11860 This is for reasons similar to the recent CHAR_STRING fix.
11861 * charset.c (Fencode_char): Check that character arg is actually
11862 a character. Pass an int to ENCODE_CHAR.
11863 * charset.h (ENCODE_CHAR): Verify that the character argument is no
11864 wider than 'int', as a compile-time check to prevent future regressions
11865 in this area.
11866
11867 * character.c (char_string): Remove unnecessary casts.
11868
11869 Make sure a 64-bit char is never passed to CHAR_STRING.
11870 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
11871 by silently ignoring the top 32 bits, allowing some values
11872 that were far too large to be valid characters.
11873 * character.h: Include <verify.h>.
11874 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
11875 arguments are no wider than unsigned, as a compile-time check
11876 to prevent future regressions in this area.
11877 * data.c (Faset):
11878 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
11879 (Fsubst_char_in_region):
11880 * fns.c (concat):
11881 * xdisp.c (decode_mode_spec_coding):
11882 Adjust to CHAR_STRING's new requirement.
11883 * editfns.c (Finsert_char, Fsubst_char_in_region):
11884 * fns.c (concat): Check that character args are actually
11885 characters. Without this test, these functions did the wrong
11886 thing with wildly out-of-range values on 64-bit hosts.
11887
11888 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
11889 These casts should not be needed on 32-bit hosts, either.
11890 * keyboard.c (read_char):
11891 * lread.c (Fload): Remove casts to unsigned.
11892
11893 * lisp.h (UNSIGNED_CMP): New macro.
11894 This fixes comparison bugs on 64-bit hosts.
11895 (ASCII_CHAR_P): Use it.
11896 * casefiddle.c (casify_object):
11897 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
11898 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
11899 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
11900 * dispextern.h (FACE_FROM_ID):
11901 * keyboard.c (read_char): Use UNSIGNED_CMP.
11902
11903 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
11904 not to EMACS_INT, to avoid GCC warning.
11905
11906 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
11907
11908 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
11909 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
11910 isn't needed on 32-bit machines.
11911
11912 * buffer.c (Fgenerate_new_buffer_name):
11913 Use EMACS_INT for count, not int.
11914 (advance_to_char_boundary): Return EMACS_INT, not int.
11915
11916 * data.c (Qcompiled_function): Now static.
11917
11918 * window.c (window_body_lines): Now static.
11919
11920 * image.c (gif_load): Rename local to avoid shadowing.
11921
11922 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
11923 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
11924 * alloc.c (make_save_value): Integer argument is now of type
11925 ptrdiff_t, not int.
11926 (mark_object): Use ptrdiff_t, not int.
11927 * lisp.h (pD): New macro.
11928 * print.c (print_object): Use it.
11929
11930 * alloc.c: Use EMACS_INT, not int, to count objects.
11931 (total_conses, total_markers, total_symbols, total_vector_size)
11932 (total_free_conses, total_free_markers, total_free_symbols)
11933 (total_free_floats, total_floats, total_free_intervals)
11934 (total_intervals, total_strings, total_free_strings):
11935 Now EMACS_INT, not int. All uses changed.
11936 (Fgarbage_collect): Compute overall total using a double, so that
11937 integer overflow is less likely to be a problem. Check for overflow
11938 when converting back to an integer.
11939 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
11940 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
11941 These were 'int' variables that could overflow on 64-bit hosts;
11942 they were never used, so remove them instead of repairing them.
11943 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
11944 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
11945 Previously, this ceilinged at INT_MAX, but that doesn't work on
11946 64-bit machines.
11947 (allocate_pseudovector): Don't use EMACS_INT when int would do.
11948
11949 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
11950 (allocate_vectorlike): Check for ptrdiff_t overflow.
11951 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
11952 when a (possibly-narrower) signed value would do just as well.
11953 We prefer using signed arithmetic, to avoid comparison confusion.
11954
11955 * alloc.c: Catch some string size overflows that we were missing.
11956 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
11957 for convenience in STRING_BYTES_MAX.
11958 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
11959 The definition here is exact; the one in lisp.h was approximate.
11960 (allocate_string_data): Check for string overflow. This catches
11961 some instances we weren't catching before. Also, it catches
11962 size_t overflow on (unusual) hosts where SIZE_MAX <= min
11963 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
11964 and ptrdiff_t and EMACS_INT are both 64 bits.
11965
11966 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
11967 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
11968 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
11969
11970 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
11971
11972 * alloc.c (Fmake_string): Check for out-of-range init.
11973
11974 2011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
11975
11976 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
11977
11978 2011-06-14 Jan Djärv <jan.h.d@swipnet.se>
11979
11980 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
11981 xg_get_default_scrollbar_width.
11982
11983 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
11984 (int_gtk_range_get_value): Move to the scroll bar part of the file.
11985 (style_changed_cb): Call update_theme_scrollbar_width and call
11986 x_set_scroll_bar_default_width and xg_frame_set_char_size for
11987 all frames (Bug#8505).
11988 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
11989 Call gtk_window_set_resizable if HAVE_GTK3.
11990 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
11991 and height if HAVE_GTK3 (Bug#8505).
11992 (scroll_bar_width_for_theme): New variable.
11993 (update_theme_scrollbar_width): New function.
11994 (xg_get_default_scrollbar_width): Move code to
11995 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
11996 (xg_initialize): Call update_theme_scrollbar_width.
11997
11998 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
11999
12000 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
12001
12002 2011-06-12 Martin Rudalics <rudalics@gmx.at>
12003
12004 * frame.c (make_frame): Call other_buffer_safely instead of
12005 other_buffer.
12006
12007 * window.c (temp_output_buffer_show): Call display_buffer with
12008 second argument Vtemp_buffer_show_specifiers and reset latter
12009 immediately after the call.
12010 (Vtemp_buffer_show_specifiers): New variable.
12011 (auto_window_vscroll_p, next_screen_context_lines)
12012 (Vscroll_preserve_screen_position): Remove leading asterisks from
12013 doc-strings.
12014
12015 2011-06-12 Paul Eggert <eggert@cs.ucla.edu>
12016
12017 Fix minor problems found by GCC 4.6.0 static checking.
12018 * buffer.c (Qclone_number): Remove for now, as it's unused.
12019 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
12020 (record_buffer): Remove unused local.
12021 * frame.c (other_visible_frames, frame_buffer_list): Now static.
12022 (set_frame_buffer_list): Remove; unused.
12023 * frame.h (other_visible_frames): Remove decl.
12024 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
12025 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
12026 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
12027 if HAVE_GPM.
12028 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
12029 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
12030 Define only if HAVE_GPM.
12031 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
12032 (update_hints_inhibit): Remove; never set. All uses removed.
12033 * widgetprv.h (emacsFrameClassRec): Remove decl.
12034 * window.c (delete_deletable_window): Now returns void, since it
12035 wasn't returning anything.
12036 (compare_window_configurations): Remove unused locals.
12037 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
12038 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
12039 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
12040 the same widths as pointers. This follows up on the 2011-05-06 patch.
12041 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
12042 * xterm.h: Likewise.
12043 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
12044
12045 2011-06-12 Juanma Barranquero <lekktu@gmail.com>
12046
12047 * makefile.w32-in: Update dependencies.
12048 (LISP_H): Add lib/intprops.h.
12049
12050 2011-06-11 Chong Yidong <cyd@stupidchicken.com>
12051
12052 * image.c (gif_load): Add animation frame delay to the metadata.
12053 (syms_of_image): Use DEFSYM. New symbol `delay'.
12054
12055 2011-06-11 Martin Rudalics <rudalics@gmx.at>
12056
12057 * window.c (delete_deletable_window): Re-add.
12058 (Fset_window_configuration): Rewrite to handle dead buffers and
12059 consequently deletable windows.
12060 (window_tree, Fwindow_tree): Remove. Supply functionality in
12061 window.el.
12062 (compare_window_configurations): Simplify code.
12063
12064 2011-06-11 Andreas Schwab <schwab@linux-m68k.org>
12065
12066 * image.c (imagemagick_load_image): Fix type mismatch.
12067 (Fimagemagick_types): Likewise.
12068
12069 * window.h (replace_buffer_in_windows): Declare.
12070
12071 2011-06-11 Martin Rudalics <rudalics@gmx.at>
12072
12073 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
12074 Qclone_number. Remove external declaration of Qdelete_window.
12075 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
12076 code.
12077 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
12078 Run Qbuffer_list_update_hook if allowed.
12079 (Fother_buffer): Rewrite doc-string. Major rewrite for new
12080 buffer list implementation.
12081 (other_buffer_safely): New function.
12082 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
12083 calls to replace_buffer_in_windows and
12084 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
12085 if allowed.
12086 (record_buffer): Inhibit quitting and rewrite using quittable
12087 functions. Run Qbuffer_list_update_hook if allowed.
12088 (Frecord_buffer, Funrecord_buffer): New functions.
12089 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
12090 Move switch-to-buffer to window.el.
12091 (bury-buffer): Move to window.el.
12092 (Vbuffer_list_update_hook): New variable.
12093
12094 * lisp.h (other_buffer_safely): Add prototype in buffer.c
12095 section.
12096
12097 * window.h (resize_frame_windows): Move up in code.
12098 (Fwindow_frame): Remove EXFUN.
12099 (replace_buffer_in_all_windows): Remove prototype.
12100 (replace_buffer_in_windows_safely): Add prototype.
12101
12102 * window.c: Declare Qdelete_window static again. Move down
12103 declaration of select_count.
12104 (Fnext_window, Fprevious_window): Rewrite doc-strings.
12105 (Fother_window): Move to window.el.
12106 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
12107 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
12108 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
12109 window.el.
12110 (replace_buffer_in_windows): Implement by calling
12111 Qreplace_buffer_in_windows.
12112 (replace_buffer_in_all_windows): Remove with some functionality
12113 moved into replace_buffer_in_windows_safely.
12114 (replace_buffer_in_windows_safely): New function.
12115 (select_window_norecord, select_frame_norecord): Move in front
12116 of run_window_configuration_change_hook. Remove now obsolete
12117 declarations.
12118 (Fset_window_buffer): Rewrite doc-string.
12119 Call Qrecord_window_buffer.
12120 (keys_of_window): Move binding for other-window to window.el.
12121
12122 2011-06-11 Chong Yidong <cyd@stupidchicken.com>
12123
12124 * dispextern.h (struct image): Replace data member, whose int_val
12125 and ptr_val fields were not used by anything, with a single
12126 lisp_val object.
12127
12128 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
12129 (gif_clear_image, gif_load, imagemagick_load_image)
12130 (gs_clear_image, gs_load): Callers changed.
12131
12132 2011-06-10 Paul Eggert <eggert@cs.ucla.edu>
12133
12134 * buffer.h: Include <time.h>, for time_t.
12135 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
12136
12137 Fix minor problems found by static checking.
12138
12139 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
12140
12141 Make identifiers static if they are not used in other modules.
12142 * data.c (Qcompiled_function, Qframe, Qvector):
12143 * image.c (QimageMagick, Qsvg):
12144 * minibuf.c (Qmetadata):
12145 * window.c (resize_window_check, resize_root_window): Now static.
12146 * window.h (resize_window_check, resize_root_window): Remove decls.
12147
12148 * window.c (window_deletion_count, delete_deletable_window):
12149 Remove; unused.
12150 (window_body_lines): Now static.
12151 (Fdelete_other_windows_internal): Mark vars as initialized.
12152 Make sure 'resize_failed' is initialized.
12153 (run_window_configuration_change_hook): Rename local to avoid shadowing.
12154 (resize_window_apply): Remove unused local.
12155 * window.h (delete_deletable_window): Remove decl.
12156
12157 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
12158 (imagemagick_load_image): Fix pointer signedness problem by changing
12159 last arg from unsigned char * to char *. All uses changed.
12160 Also, fix a local for similar reasons.
12161 Remove unused locals. Remove locals to avoid shadowing.
12162 (fn_rsvg_handle_free): Remove; unused.
12163 (svg_load, svg_load_image): Fix pointer signedness problem.
12164 (imagemagick_load_image): Don't use garbage pointer image_wand.
12165
12166 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
12167
12168 2011-06-10 Chong Yidong <cyd@stupidchicken.com>
12169
12170 * image.c (gif_load): Fix omitted cast error introduced by
12171 2011-06-06 change.
12172
12173 2011-06-10 Martin Rudalics <rudalics@gmx.at>
12174
12175 * window.h (resize_proportionally, orig_total_lines)
12176 (orig_top_line): Remove from window structure.
12177 (set_window_height, set_window_width, change_window_heights)
12178 (Fdelete_window): Remove prototypes.
12179 (resize_frame_windows): Remove duplicate declaration.
12180
12181 2011-06-10 Eli Zaretskii <eliz@gnu.org>
12182
12183 * window.h (resize_frame_windows, resize_window_check)
12184 (delete_deletable_window, resize_root_window)
12185 (resize_frame_windows): Declare prototypes.
12186
12187 * window.c (resize_window_apply): Make definition be "static" to
12188 match the prototype.
12189
12190 2011-06-10 Martin Rudalics <rudalics@gmx.at>
12191
12192 * window.c: Remove declarations of Qwindow_size_fixed,
12193 window_min_size_1, window_min_size_2, window_min_size,
12194 size_window, window_fixed_size_p, enlarge_window, delete_window.
12195 Remove static from declaration of Qdelete_window, it's
12196 temporarily needed by Fbury_buffer.
12197 (replace_window): Don't assign orig_top_line and
12198 orig_total_lines.
12199 (Fdelete_window, delete_window): Remove. Window deletion is
12200 handled by window.el.
12201 (window_loop): Remove DELETE_OTHER_WINDOWS case.
12202 Replace Fdelete_window calls with calls to Qdelete_window.
12203 (Fdelete_other_windows): Remove. Deleting other windows is
12204 handled by window.el.
12205 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
12206 handled in window.el.
12207 (window_min_size_2, window_min_size_1, window_min_size): Remove.
12208 Window minimum sizes are handled in window.el.
12209 (shrink_windows, size_window, set_window_height)
12210 (set_window_width, change_window_heights, window_height)
12211 (window_width, CURBEG, CURSIZE, enlarge_window)
12212 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
12213 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
12214 handled in window.el.
12215 (make_dummy_parent): Rename to make_parent_window and give it a
12216 second argument horflag.
12217 (make_window): Don't set resize_proportionally any more.
12218 (Fsplit_window): Remove. Windows are split in window.el.
12219 (save_restore_action, save_restore_orig_size)
12220 (shrink_window_lowest_first, save_restore_orig_size): Remove.
12221 Resize mini windows in window.el.
12222 (grow_mini_window, shrink_mini_window): Implement by calling
12223 Qresize_root_window_vertically, resize_window_check and
12224 resize_window_apply.
12225 (saved_window, Fset_window_configuration, save_window_save):
12226 Do not handle orig_top_line, orig_total_lines, and
12227 resize_proportionally.
12228 (window_min_height, window_min_width): Move to window.el.
12229 (keys_of_window): Move bindings for delete-other-windows,
12230 split-window, delete-window and enlarge-window to window.el.
12231
12232 * buffer.c: Temporarily extern Qdelete_window.
12233 (Fbury_buffer): Temporarily call Qdelete_window instead of
12234 Fdelete_window (Fbury_buffer will move to window.el soon).
12235
12236 * frame.c (set_menu_bar_lines_1): Remove code handling
12237 orig_top_line and orig_total_lines.
12238
12239 * dispnew.c (adjust_frame_glyphs_initially): Don't use
12240 set_window_height but set heights directly.
12241 (change_frame_size_1): Use resize_frame_windows.
12242
12243 * xdisp.c (init_xdisp): Don't use set_window_height but set
12244 heights directly.
12245
12246 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
12247 Use resize_frame_windows instead of change_window_heights and run
12248 run_window_configuration_change_hook.
12249
12250 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
12251 instead of change_window_heights and run
12252 run_window_configuration_change_hook.
12253
12254 2011-06-09 Martin Rudalics <rudalics@gmx.at>
12255
12256 * window.c (replace_window): Rename second argument REPLACEMENT to
12257 NEW. New third argument SETFLAG. Rewrite.
12258 (delete_window, make_dummy_parent): Call replace_window with
12259 third argument 1.
12260 (window_list_1): Move down in code.
12261 (run_window_configuration_change_hook): Move set_buffer part
12262 before select_frame_norecord part in order to unwind correctly.
12263 Rename count1 to count.
12264 (recombine_windows, delete_deletable_window, resize_root_window)
12265 (Fdelete_other_windows_internal)
12266 (Frun_window_configuration_change_hook, make_parent_window)
12267 (resize_window_check, resize_window_apply, Fresize_window_apply)
12268 (resize_frame_windows, Fsplit_window_internal)
12269 (Fdelete_window_internal, Fresize_mini_window_internal):
12270 New functions.
12271 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
12272
12273 2011-06-08 Martin Rudalics <rudalics@gmx.at>
12274
12275 * window.h (window): Add some new members to window structure -
12276 normal_lines, normal_cols, new_total, new_normal, clone_number,
12277 splits, nest, prev_buffers, next_buffers.
12278 (WINDOW_TOTAL_SIZE): Move here from window.c.
12279 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
12280
12281 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
12282 Remove.
12283 (make_dummy_parent): Set new members of windows structure.
12284 (make_window): Move down in code. Handle new members of window
12285 structure.
12286 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
12287 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
12288 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
12289 (Fset_window_prev_buffers, Fwindow_next_buffers)
12290 (Fset_window_next_buffers, Fset_window_clone_number):
12291 New functions.
12292 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
12293 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
12294 Doc-string fixes.
12295 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
12296 Argument WINDOW can be now internal window too.
12297 (Fwindow_use_time): Move up in code.
12298 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
12299 Rewrite doc-string.
12300 (Fset_window_configuration, saved_window)
12301 (Fcurrent_window_configuration, save_window_save): Handle new
12302 members of window structure.
12303 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
12304 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
12305 (syms_of_window): New Lisp objects Qrecord_window_buffer,
12306 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
12307 Qget_mru_window, Qresize_root_window,
12308 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
12309 Qauto_buffer_name; staticpro them.
12310
12311 2011-06-07 Martin Rudalics <rudalics@gmx.at>
12312
12313 * window.c (Fwindow_total_size, Fwindow_left_column)
12314 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
12315 (Fwindow_list_1): New functions.
12316 (window_box_text_cols): Replace with window_body_cols.
12317 (Fwindow_width, Fscroll_left, Fscroll_right):
12318 Use window_body_cols instead of window_box_text_cols.
12319 (delete_window, Fset_window_configuration):
12320 Call delete_all_subwindows with window as argument.
12321 (delete_all_subwindows): Take a window as argument and not a
12322 structure. Rewrite.
12323 (window_loop): Remove handling of GET_LRU_WINDOW and
12324 GET_LARGEST_WINDOW.
12325 (Fget_lru_window, Fget_largest_window): Move to window.el.
12326
12327 * window.h: Extern window_body_cols instead of
12328 window_box_text_cols. delete_all_subwindows now takes a
12329 Lisp_Object as argument.
12330
12331 * indent.c (compute_motion, Fcompute_motion):
12332 Use window_body_cols instead of window_box_text_cols.
12333
12334 * frame.c (delete_frame): Call delete_all_subwindows with root
12335 window as argument.
12336
12337 2011-06-07 Daniel Colascione <dan.colascione@gmail.com>
12338
12339 * fns.c (Fputhash): Document return value.
12340
12341 2011-06-06 Chong Yidong <cyd@stupidchicken.com>
12342
12343 * image.c (gif_load): Implement gif89a spec "no disposal" method.
12344
12345 2011-06-06 Paul Eggert <eggert@cs.ucla.edu>
12346
12347 Cons<->int and similar integer overflow fixes (Bug#8794).
12348
12349 Check for overflow when converting integer to cons and back.
12350 * charset.c (Fdefine_charset_internal, Fdecode_char):
12351 Use cons_to_unsigned to catch overflow.
12352 (Fencode_char): Use INTEGER_TO_CONS.
12353 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
12354 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
12355 * data.c (long_to_cons, cons_to_long): Remove.
12356 (cons_to_unsigned, cons_to_signed): New functions.
12357 These signal an error for invalid or out-of-range values.
12358 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
12359 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
12360 * font.c (Ffont_variation_glyphs):
12361 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
12362 * lisp.h: Include <intprops.h>.
12363 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
12364 (cons_to_signed, cons_to_unsigned): New decls.
12365 (long_to_cons, cons_to_long): Remove decls.
12366 * undo.c (record_first_change): Use INTEGER_TO_CONS.
12367 (Fprimitive_undo): Use CONS_TO_INTEGER.
12368 * xfns.c (Fx_window_property): Likewise.
12369 * xselect.c: Include <limits.h>.
12370 (x_own_selection, selection_data_to_lisp_data):
12371 Use INTEGER_TO_CONS.
12372 (x_handle_selection_request, x_handle_selection_clear)
12373 (x_get_foreign_selection, Fx_disown_selection_internal)
12374 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
12375 (lisp_data_to_selection_data): Use cons_to_unsigned.
12376 (x_fill_property_data): Use cons_to_signed.
12377 Report values out of range.
12378
12379 Check for buffer and string overflow more precisely.
12380 * buffer.h (BUF_BYTES_MAX): New macro.
12381 * lisp.h (STRING_BYTES_MAX): New macro.
12382 * alloc.c (Fmake_string):
12383 * character.c (string_escape_byte8):
12384 * coding.c (coding_alloc_by_realloc):
12385 * doprnt.c (doprnt):
12386 * editfns.c (Fformat):
12387 * eval.c (verror):
12388 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
12389 since they may not be the same number.
12390 * editfns.c (Finsert_char):
12391 * fileio.c (Finsert_file_contents):
12392 Likewise for BUF_BYTES_MAX.
12393
12394 * image.c: Use ptrdiff_t, not int, for sizes.
12395 (slurp_file): Switch from int to ptrdiff_t.
12396 All uses changed.
12397 (slurp_file): Check that file size fits in both size_t (for
12398 malloc) and ptrdiff_t (for sanity and safety).
12399
12400 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
12401 if b->modtime has its maximal value.
12402
12403 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
12404
12405 Don't assume time_t can fit into int.
12406 * buffer.h (struct buffer.modtime): Now time_t, not int.
12407 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
12408 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
12409
12410 Minor fixes for signed vs unsigned integers.
12411 * character.h (MAYBE_UNIFY_CHAR):
12412 * charset.c (maybe_unify_char):
12413 * keyboard.c (read_char, reorder_modifiers):
12414 XINT -> XFASTINT, since the integer must be nonnegative.
12415 * ftfont.c (ftfont_spec_pattern):
12416 * keymap.c (access_keymap, silly_event_symbol_error):
12417 XUINT -> XFASTINT, since the integer must be nonnegative.
12418 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
12419 since it makes no difference and we prefer signed.
12420 * keyboard.c (record_char): Use XUINT when all the neighbors do.
12421 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
12422 nonnegative.
12423
12424 2011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
12425
12426 * window.h (Fwindow_frame): Declare.
12427
12428 2011-06-06 Paul Eggert <eggert@cs.ucla.edu>
12429
12430 * alloc.c: Simplify handling of large-request failures (Bug#8800).
12431 (SPARE_MEMORY): Always define.
12432 (LARGE_REQUEST): Remove.
12433 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
12434
12435 2011-06-06 Martin Rudalics <rudalics@gmx.at>
12436
12437 * lisp.h: Move EXFUNS for Fframe_root_window,
12438 Fframe_first_window and Fset_frame_selected_window to window.h.
12439
12440 * window.h: Move EXFUNS for Fframe_root_window,
12441 Fframe_first_window and Fset_frame_selected_window here from
12442 lisp.h.
12443
12444 * frame.c (Fwindow_frame, Fframe_first_window)
12445 (Fframe_root_window, Fframe_selected_window)
12446 (Fset_frame_selected_window): Move to window.c.
12447 (Factive_minibuffer_window): Move to minibuf.c.
12448 (Fother_visible_frames_p): New function.
12449
12450 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
12451
12452 * window.c (decode_window, decode_any_window): Move up in code.
12453 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
12454 (inhibit_frame_unsplittable): Remove unused variable.
12455 (Fwindow_buffer): Move up and rewrite doc-string.
12456 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
12457 (Fwindow_prev): New functions.
12458 (Fwindow_frame): Move here from frame.c. Accept any window as
12459 argument.
12460 (Fframe_root_window, Fframe_first_window)
12461 (Fframe_selected_window): Move here from frame.c. Accept frame
12462 or arbitrary window as argument. Update doc-strings.
12463 (Fminibuffer_window): Move up in code.
12464 (Fwindow_minibuffer_p): Move up in code and simplify.
12465 (Fset_frame_selected_window): Move here from frame.c.
12466 Marginal rewrite.
12467 (Fselected_window, select_window, Fselect_window): Move up in
12468 code. Minor doc-string fixes.
12469
12470 2011-06-06 Paul Eggert <eggert@cs.ucla.edu>
12471
12472 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
12473 Do not assume that spare memory exists; that assumption is valid
12474 only if SYSTEM_MALLOC.
12475 (LARGE_REQUEST): New macro, so that the issue of large requests
12476 is separated from the issue of spare memory.
12477
12478 2011-06-05 Andreas Schwab <schwab@linux-m68k.org>
12479
12480 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
12481 format. (Bug#8806)
12482
12483 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
12484
12485 * xfns.c (x_set_scroll_bar_default_width): Move declarations
12486 before statements.
12487
12488 2011-06-05 Jan Djärv <jan.h.d@swipnet.se>
12489
12490 * gtkutil.c (xg_get_default_scrollbar_width): New function.
12491
12492 * gtkutil.h: Declare xg_get_default_scrollbar_width.
12493
12494 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
12495 min width by calling x_set_scroll_bar_default_width (Bug#8505).
12496
12497 2011-06-05 Juanma Barranquero <lekktu@gmail.com>
12498
12499 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
12500
12501 2011-06-04 Chong Yidong <cyd@stupidchicken.com>
12502
12503 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
12504 (x_clipboard_manager_save): Add return value.
12505 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
12506 New error handlers.
12507 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
12508 Obey Vx_select_enable_clipboard_manager. Catch errors in
12509 x_clipboard_manager_save (Bug#8779).
12510 (Vx_select_enable_clipboard_manager): New variable.
12511 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
12512
12513 2011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
12514
12515 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
12516
12517 2011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
12518
12519 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
12520 in the current matrix if keep_current_p is non-zero.
12521
12522 2011-06-04 Eli Zaretskii <eliz@gnu.org>
12523
12524 * bidi.c (bidi_level_of_next_char): Fix last change.
12525
12526 2011-06-03 Eli Zaretskii <eliz@gnu.org>
12527
12528 Support bidi reordering of text covered by display properties.
12529
12530 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
12531 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
12532 (bidi_cache_search, bidi_cache_iterator_state)
12533 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
12534 (bidi_level_of_next_char, bidi_move_to_visually_next):
12535 Support character positions inside a run of characters covered by a
12536 display string.
12537 (bidi_paragraph_init, bidi_resolve_explicit_1)
12538 (bidi_level_of_next_char): Call bidi_fetch_char and
12539 bidi_fetch_char_advance instead of FETCH_CHAR and
12540 FETCH_CHAR_ADVANCE.
12541 (bidi_init_it): Initialize new members.
12542 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
12543 definitions.
12544 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
12545 instead of using explicit *_CHAR codes.
12546 (bidi_resolve_explicit, bidi_resolve_weak):
12547 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
12548 bidirectional text is supported only in multibyte buffers.
12549 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
12550 it to initialize the frame_window_p member of struct bidi_it.
12551 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
12552 (bidi_resolve_explicit, bidi_resolve_weak)
12553 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
12554 bidi_it->nchars is non-positive.
12555 (bidi_level_of_next_char): Don't try to lookup the cache for the
12556 next/previous character if nothing is cached there yet, or if we
12557 were just reseat()'ed to a new position.
12558
12559 * xdisp.c (set_cursor_from_row): Set start and stop points
12560 according to the row's direction when priming the loop that looks
12561 for the glyph on which to display cursor.
12562 (single_display_spec_intangible_p): Function deleted.
12563 (display_prop_intangible_p): Reimplement to call
12564 handle_display_spec instead of single_display_spec_intangible_p.
12565 Accept 3 additional arguments needed by handle_display_spec.
12566 This fixes incorrect cursor motion across display property with complex
12567 values: lists, `(when COND...)' forms, etc.
12568 (single_display_spec_string_p): Support property values that are
12569 lists with the argument STRING its top-level element.
12570 (display_prop_string_p): Fix the condition for processing a
12571 property that is a list to be consistent with handle_display_spec.
12572 (handle_display_spec): New function, refactored from the
12573 last portion of handle_display_prop.
12574 (compute_display_string_pos): Accept additional argument
12575 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
12576 value of a `display' property is a "replacing spec".
12577 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
12578 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
12579 the display property, but just return a value indicating whether
12580 the display property will replace the characters it covers.
12581 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
12582 frame_window_p members of struct bidi_it.
12583 (compute_display_string_pos, compute_display_string_end):
12584 New functions.
12585 (push_it): Accept second argument POSITION, where pop_it should
12586 jump to continue iteration.
12587 (reseat_1): Initialize bidi_it.disp_pos.
12588
12589 * keyboard.c (adjust_point_for_property): Adjust the call to
12590 display_prop_intangible_p to its new signature.
12591
12592 * dispextern.h (struct bidi_it): New member frame_window_p.
12593 (bidi_init_it): Update prototypes.
12594 (display_prop_intangible_p): Update prototype.
12595 (compute_display_string_pos, compute_display_string_end):
12596 Declare prototypes.
12597 (struct bidi_it): New members nchars and disp_pos. ch_len is now
12598 EMACS_INT.
12599
12600 2011-06-02 Paul Eggert <eggert@cs.ucla.edu>
12601
12602 Malloc failure behavior now depends on size of allocation.
12603 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
12604 * lisp.h: Change signatures accordingly.
12605 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
12606 All callers changed. (Bug#8762)
12607
12608 * gnutls.c: Use Emacs's memory allocators.
12609 Without this change, the gnutls library would invoke malloc etc.
12610 directly, which causes problems on non-SYNC_INPUT hosts, and which
12611 runs afoul of improving memory_full behavior. (Bug#8761)
12612 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
12613 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
12614 xfree instead of the default malloc, realloc, free.
12615 (Fgnutls_boot): No need to check for memory allocation failure,
12616 since xmalloc does that for us.
12617
12618 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
12619 * category.c (hash_get_category_set):
12620 * ccl.c (ccl_driver):
12621 * charset.c (Fdefine_charset_internal):
12622 * charset.h (struct charset.hash_index):
12623 * composite.c (get_composition_id, gstring_lookup_cache)
12624 (composition_gstring_put_cache):
12625 * composite.h (struct composition.hash_index):
12626 * dispextern.h (struct image.hash):
12627 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
12628 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
12629 (hashfn_equal, hashfn_user_defined, make_hash_table)
12630 (maybe_resize_hash_table, hash_lookup, hash_put)
12631 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
12632 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
12633 (Fsxhash, Fgethash, Fputhash, Fmaphash):
12634 * image.c (make_image, search_image_cache, lookup_image)
12635 (xpm_put_color_table_h):
12636 * lisp.h (struct Lisp_Hash_Table):
12637 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
12638 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
12639 for hashes and hash indexes, instead of 'unsigned' and 'int'.
12640 * alloc.c (allocate_vectorlike):
12641 Check for overflow in vector size calculations.
12642 * ccl.c (ccl_driver):
12643 Check for overflow when converting EMACS_INT to int.
12644 * fns.c, image.c: Remove unnecessary static decls that would otherwise
12645 need to be updated by these changes.
12646 * fns.c (make_hash_table, maybe_resize_hash_table):
12647 Check for integer overflow with large hash tables.
12648 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
12649 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
12650 (SXHASH_REDUCE): New macro.
12651 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
12652 Use it instead of discarding useful hash info with large hash values.
12653 (sxhash_float): New function.
12654 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
12655 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
12656 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
12657 Rewrite to use FIXNUM_BITS, as this simplifies things.
12658 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
12659 Adjust signatures to match updated version of code.
12660 (consing_since_gc): Now EMACS_INT, since a single hash table can
12661 use more than INT_MAX bytes.
12662
12663 2011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
12664
12665 Make it possible to build with GCC-4.6+ -O2 -flto.
12666
12667 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
12668
12669 2011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
12670
12671 * minibuf.c (get_minibuffer, read_minibuf_unwind):
12672 Call minibuffer-inactive-mode.
12673
12674 2011-05-31 Juanma Barranquero <lekktu@gmail.com>
12675
12676 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
12677 Update dependencies.
12678
12679 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
12680
12681 * data.c (init_data): Remove code for UTS, this system is not
12682 supported anymore.
12683
12684 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
12685
12686 Don't force ./temacs to start in terminal mode.
12687
12688 * frame.c (make_initial_frame): Initialize faces in all cases, not
12689 only when CANNOT_DUMP is defined.
12690 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
12691
12692 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
12693
12694 * dispnew.c (add_window_display_history): Use const for the string
12695 pointer. Remove declaration, not needed.
12696
12697 2011-05-31 Paul Eggert <eggert@cs.ucla.edu>
12698
12699 Use 'inline', not 'INLINE'.
12700 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
12701 * alloc.c, fontset.c (INLINE): Remove.
12702 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
12703 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
12704 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
12705 * gmalloc.c (register_heapinfo): Use inline unconditionally.
12706 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
12707
12708 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
12709
12710 Make it possible to run ./temacs.
12711
12712 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
12713 syms_of_callproc does the same thing. Remove test for
12714 "initialized", do it in the caller.
12715 * emacs.c (main): Avoid calling set_initial_environment when dumping.
12716
12717 2011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
12718
12719 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
12720 (read_minibuf): Use get_minibuffer.
12721 (syms_of_minibuf): Use DEFSYM.
12722 (Qmetadata): New var.
12723 * data.c (Qbuffer): Don't make it static.
12724 (syms_of_data): Use DEFSYM.
12725
12726 2011-05-31 Paul Eggert <eggert@cs.ucla.edu>
12727
12728 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
12729 (CCL_CODE_MIN): New macro.
12730
12731 2011-05-30 Paul Eggert <eggert@cs.ucla.edu>
12732
12733 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
12734
12735 * eval.c (Qdebug): Now static.
12736 * lisp.h (Qdebug): Remove decl. This reverts a part of the
12737 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
12738 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
12739
12740 2011-05-29 Chong Yidong <cyd@stupidchicken.com>
12741
12742 * image.c: Various fixes to ImageMagick code comments.
12743 (Fimagemagick_types): Doc fix.
12744
12745 2011-05-29 Paul Eggert <eggert@cs.ucla.edu>
12746
12747 Minor fixes prompted by GCC 4.6.0 warnings.
12748
12749 * xselect.c (converted_selections, conversion_fail_tag): Now static.
12750
12751 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
12752 (x_clipboard_manager_save_all): Move extern decl to ...
12753 * xterm.h: ... here, so that it can be checked for consistency.
12754
12755 2011-05-29 Chong Yidong <cyd@stupidchicken.com>
12756
12757 * xselect.c (x_clipboard_manager_save_frame)
12758 (x_clipboard_manager_save_all): New functions.
12759 (Fx_clipboard_manager_save): Lisp function deleted.
12760
12761 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
12762 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
12763
12764 * xterm.h: Update prototype.
12765
12766 2011-05-28 William Xu <william.xwl@gmail.com>
12767
12768 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
12769 exiting (Bug#8239).
12770
12771 2011-05-28 Jim Meyering <meyering@redhat.com>
12772
12773 Avoid a sign-extension bug in crypto_hash_function.
12774 * fns.c (to_uchar): Define.
12775 (crypto_hash_function): Use it to convert some newly-signed
12776 variables to unsigned, to avoid sign-extension bugs. For example,
12777 without this change, (md5 "truc") would evaluate to
12778 45723a2aff78ff4fff7fff1114760e62 rather than the expected
12779 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
12780 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
12781
12782 2011-05-27 Paul Eggert <eggert@cs.ucla.edu>
12783
12784 Integer overflow fixes.
12785
12786 * dbusbind.c: Serial number integer overflow fixes.
12787 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
12788 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
12789 to hold a serial number that is too large for a fixnum.
12790 (Fdbus_method_return_internal, Fdbus_method_error_internal):
12791 Check for serial numbers out of range. Decode any serial number
12792 that was so large that it became a float. (Bug#8722)
12793
12794 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
12795 (Fdbus_call_method, Fdbus_call_method_asynchronously):
12796 Use XFASTINT rather than XUINT when numbers are nonnegative.
12797 (xd_append_arg, Fdbus_method_return_internal):
12798 (Fdbus_method_error_internal): Likewise. Also, for unsigned
12799 arguments, check that Lisp number is nonnegative, rather than
12800 silently wrapping negative numbers around. (Bug#8722)
12801 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
12802 (Bug#8722)
12803
12804 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
12805
12806 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
12807
12808 ccl: Add integer overflow checks.
12809 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
12810 (IN_INT_RANGE): New macros.
12811 (ccl_driver): Use them to check for integer overflow when
12812 decoding a CCL program. Many of the new checks are whether XINT (x)
12813 fits in int; it doesn't always, on 64-bit hosts. The new version
12814 doesn't catch all possible integer overflows, but it's an
12815 improvement. (Bug#8719)
12816
12817 * alloc.c (make_event_array): Use XINT, not XUINT.
12818 There's no need for unsigned here.
12819
12820 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
12821 This follows up to the 2011-05-06 change that substituted uintptr_t
12822 for EMACS_INT. This case wasn't caught back then.
12823
12824 Rework Fformat to avoid integer overflow issues.
12825 * editfns.c: Include <float.h> unconditionally, as it's everywhere
12826 now (part of C89). Include <verify.h>.
12827 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
12828 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
12829 (Fformat): Avoid the prepass trying to compute sizes; it was only
12830 approximate and thus did not catch overflow reliably. Instead, walk
12831 through the format just once, formatting and computing sizes as we go,
12832 checking for integer overflow at every step, and allocating a larger
12833 buffer as needed. Keep track separately whether the format is
12834 multibyte. Keep only the most-recently calculated precision, rather
12835 than them all. Record whether each argument has been converted to
12836 string. Use EMACS_INT, not int, for byte and char and arg counts.
12837 Support field widths and precisions larger than INT_MAX. Avoid
12838 sprintf's undefined behavior with conversion specifications such as %#d
12839 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
12840 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
12841 formatting out-of-range floating point numbers with int
12842 formats. (Bug#8668)
12843
12844 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
12845
12846 * data.c: Avoid integer truncation in expressions involving floats.
12847 * data.c: Include <intprops.h>.
12848 (arith_driver): When there's an integer overflow in an expression
12849 involving floating point, convert the integers to floating point
12850 so that the resulting value does not suffer from catastrophic
12851 integer truncation. For example, on a 64-bit host (* 4
12852 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
12853 Do not rely on undefined behavior after integer overflow.
12854
12855 merge count_size_as_multibyte, parse_str_to_multibyte
12856 * character.c, character.h (count_size_as_multibyte):
12857 Rename from parse_str_to_multibyte; all uses changed.
12858 Check for integer overflow.
12859 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
12860 since it's now a duplicate of the other. This is more of
12861 a character than a buffer op, so better that it's in character.c.
12862 * fns.c, print.c: Adjust to above changes.
12863
12864 2011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
12865
12866 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
12867
12868 2011-05-27 Paul Eggert <eggert@cs.ucla.edu>
12869
12870 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
12871 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
12872 (x_clipboard_manager_save): Now static.
12873 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
12874
12875 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
12876 (crypto_hash_function): Now static.
12877 Fix pointer signedness problems. Avoid unnecessary initializations.
12878
12879 2011-05-27 Chong Yidong <cyd@stupidchicken.com>
12880
12881 * termhooks.h (Vselection_alist): Make it terminal-local.
12882
12883 * terminal.c (create_terminal): Initialize it.
12884
12885 * xselect.c: Support for clipboard managers.
12886 (Vselection_alist): Move to termhooks.h as terminal-local var.
12887 (LOCAL_SELECTION): New macro.
12888 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
12889 (symbol_to_x_atom): Remove gratuitous arg.
12890 (x_handle_selection_request, lisp_data_to_selection_data)
12891 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
12892 (x_own_selection, x_get_local_selection, x_convert_selection):
12893 New arg, specifying work frame. Use terminal-local Vselection_alist.
12894 (some_frame_on_display): Delete unused function.
12895 (Fx_own_selection_internal, Fx_get_selection_internal)
12896 (Fx_disown_selection_internal, Fx_selection_owner_p)
12897 (Fx_selection_exists_p): New optional frame arg.
12898 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
12899 (x_handle_selection_clear): Don't treat other terminals with the
12900 same keyboard specially. Use the terminal-local Vselection_alist.
12901 (x_clear_frame_selections): Use Frun_hook_with_args.
12902
12903 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
12904
12905 * xterm.h: Add support for those atoms.
12906
12907 2011-05-26 Chong Yidong <cyd@stupidchicken.com>
12908
12909 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
12910 (converted_selections, conversion_fail_tag): New global variables.
12911 (x_selection_request_lisp_error): Free the above.
12912 (x_get_local_selection): Remove unnecessary code.
12913 (x_reply_selection_request): Args changed; handle arbitrary array
12914 of converted selections stored in converted_selections.
12915 Separate the XChangeProperty and SelectionNotify steps.
12916 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
12917 (x_convert_selection): New function.
12918 (x_handle_selection_event): Simplify.
12919 (x_get_foreign_selection): Don't ignore incoming requests while
12920 waiting for an answer; this will fail when we implement
12921 SAVE_TARGETS, and seems unnecessary anyway.
12922 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
12923 (Vx_sent_selection_functions): Doc fix.
12924
12925 2011-05-26 Leo Liu <sdl.web@gmail.com>
12926
12927 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
12928
12929 2011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
12930
12931 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
12932
12933 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
12934 for fringe update if it has periodic bitmap.
12935 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
12936 and fringe_bitmap_periodic_p.
12937
12938 * fringe.c (get_fringe_bitmap_data): New function.
12939 (draw_fringe_bitmap_1, update_window_fringes): Use it.
12940 (update_window_fringes): Record periodicity of fringe bitmap in glyph
12941 row. Mark glyph row for fringe update if periodicity changed.
12942
12943 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
12944 for fringe update unless it has periodic bitmap.
12945
12946 2011-05-25 Kenichi Handa <handa@m17n.org>
12947
12948 * xdisp.c (get_next_display_element): Set correct it->face_id for
12949 a static composition.
12950
12951 2011-05-24 Leo Liu <sdl.web@gmail.com>
12952
12953 * deps.mk (fns.o):
12954 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
12955
12956 * fns.c (crypto_hash_function, Fsha1): New function.
12957 (Fmd5): Use crypto_hash_function.
12958 (syms_of_fns): Add Ssha1.
12959
12960 2011-05-22 Paul Eggert <eggert@cs.ucla.edu>
12961
12962 * gnutls.c: Remove unused macros.
12963 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
12964 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
12965 Remove macros that are defined and never used.
12966 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
12967
12968 2011-05-22 Chong Yidong <cyd@stupidchicken.com>
12969
12970 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
12971 (Fx_get_selection_internal): Minor cleanup.
12972 (Fx_own_selection_internal): Rename arguments for consistency with
12973 select.el.
12974
12975 2011-05-22 Paul Eggert <eggert@cs.ucla.edu>
12976
12977 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
12978
12979 2011-05-22 Chong Yidong <cyd@stupidchicken.com>
12980
12981 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
12982
12983 2011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
12984
12985 * dispnew.c (scrolling_window): Don't exclude the case that the
12986 last enabled row in the desired matrix touches the bottom boundary.
12987
12988 2011-05-21 Glenn Morris <rgm@gnu.org>
12989
12990 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
12991 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
12992 and add some more files.
12993
12994 2011-05-20 Eli Zaretskii <eliz@gnu.org>
12995
12996 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
12997 report_file_error introduced by the change from 2011-05-07.
12998
12999 2011-05-20 Paul Eggert <eggert@cs.ucla.edu>
13000
13001 * systime.h (Time): Define only if emacs is defined.
13002 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
13003 where the include path doesn't have X11/X.h by default. See
13004 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
13005
13006 2011-05-20 Kenichi Handa <handa@m17n.org>
13007
13008 * composite.c (find_automatic_composition): Fix previous change.
13009
13010 2011-05-20 Glenn Morris <rgm@gnu.org>
13011
13012 * lisp.mk: New file, split from Makefile.in.
13013 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
13014 (shortlisp): Remove.
13015 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
13016
13017 2011-05-19 Glenn Morris <rgm@gnu.org>
13018
13019 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
13020 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
13021 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
13022 (lisp): Set the order to that of loadup.el.
13023 (shortlisp): Make it a copy of $lisp.
13024 (SOME_MACHINE_LISP): Remove.
13025 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
13026 Use just $shortlisp, not $SOME_MACHINE_LISP too.
13027
13028 2011-05-18 Kenichi Handa <handa@m17n.org>
13029
13030 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
13031 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
13032 (find_automatic_composition): Mostly rewrite for efficiency.
13033
13034 2011-05-18 Juanma Barranquero <lekktu@gmail.com>
13035
13036 * makefile.w32-in: Update dependencies.
13037
13038 2011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
13039
13040 * menu.c: Include limits.h (fixes the MS-Windows build broken by
13041 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
13042
13043 2011-05-18 Paul Eggert <eggert@cs.ucla.edu>
13044
13045 Fix some integer overflow issues, such as string length overflow.
13046
13047 * insdel.c (count_size_as_multibyte): Check for string overflow.
13048
13049 * character.c (lisp_string_width): Check for string overflow.
13050 Use EMACS_INT, not int, for string indexes and lengths; in
13051 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
13052 the resulting string length overflows an EMACS_INT; instead,
13053 report a string overflow if no precision given. When checking for
13054 precision exhaustion, use a check that cannot possibly have
13055 integer overflow. (Bug#8675)
13056 * character.h (lisp_string_width): Adjust to new signature.
13057
13058 * alloc.c (string_overflow): New function.
13059 (Fmake_string): Use it. This doesn't change behavior, but saves
13060 a few bytes and will simplify future changes.
13061 * character.c (string_escape_byte8): Likewise.
13062 * lisp.h (string_overflow): New decl.
13063
13064 Fixups, following up to the user-interface timestamp change.
13065 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
13066 for UI timestamps, instead of unsigned long.
13067 * msdos.c (mouse_get_pos): Likewise.
13068 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
13069 * w32gui.h (Time): Define by including "systime.h" rather than by
13070 declaring it ourselves. (Bug#8664)
13071
13072 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
13073 * image.c (clear_image_cache): Likewise.
13074
13075 * term.c (term_mouse_position): Don't assume time_t wraparound.
13076
13077 Be more systematic about user-interface timestamps.
13078 Before, the code sometimes used 'Time', sometimes 'unsigned long',
13079 and sometimes 'EMACS_UINT', to represent these timestamps.
13080 This change causes it to use 'Time' uniformly, as that's what X uses.
13081 This makes the code easier to follow, and makes it easier to catch
13082 integer overflow bugs such as Bug#8664.
13083 * frame.c (Fmouse_position, Fmouse_pixel_position):
13084 Use Time, not unsigned long, for user-interface timestamps.
13085 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
13086 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
13087 * keyboard.h (last_event_timestamp): Likewise.
13088 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
13089 * menu.h (xmenu_show): Likewise.
13090 * term.c (term_mouse_position): Likewise.
13091 * termhooks.h (struct input_event.timestamp): Likewise.
13092 (struct terminal.mouse_position_hook): Likewise.
13093 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
13094 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
13095 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
13096 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
13097 what it was before.
13098 * menu.h, termhooks.h: Include "systime.h", for Time.
13099
13100 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
13101 Don't assume that the difference between two unsigned long values
13102 can fit into an integer. At this point, we know button_down_time
13103 <= event->timestamp, so the difference must be nonnegative, so
13104 there's no need to cast the result if double-click-time is
13105 nonnegative, as it should be; check that it's nonnegative, just in
13106 case. This bug is triggered when events are more than 2**31 ms
13107 apart (about 25 days). (Bug#8664)
13108
13109 * xselect.c (last_event_timestamp): Remove duplicate decl.
13110 (x_own_selection): Remove needless cast to unsigned long.
13111
13112 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
13113 that always fit in int. Use a sentinel instead of a counter, to
13114 avoid a temp and to allay GCC's concerns about possible int overflow.
13115 * frame.h (struct frame): Use int for menu_bar_items_used
13116 instead of EMACS_INT, since it always fits in int.
13117
13118 * menu.c (grow_menu_items): Check for int overflow.
13119
13120 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
13121
13122 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
13123 Before, the code was not consistent. These values cannot exceed
13124 2**31 - 1 so there's no need to make them unsigned.
13125 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
13126 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
13127 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
13128 as modifiers.
13129 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
13130
13131 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
13132 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
13133 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
13134 presumably because the widths might not match.
13135
13136 * window.c (size_window): Avoid needless test at loop start.
13137
13138 2011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
13139
13140 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
13141
13142 2011-05-12 Drew Adams <drew.adams@oracle.com>
13143
13144 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
13145
13146 2011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
13147
13148 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
13149 `width' to `bar_area_x' and `bar_area_width', respectively.
13150 (x_scroll_run): Take account of fringe background extension.
13151
13152 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
13153 Rename local vars `left' and `width' to `bar_area_x' and
13154 `bar_area_width', respectively.
13155 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
13156 background extension.
13157
13158 2011-05-10 Jim Meyering <meyering@redhat.com>
13159
13160 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
13161
13162 2011-05-10 Juanma Barranquero <lekktu@gmail.com>
13163
13164 * image.c (Finit_image_library): Return t for built-in image types,
13165 like pbm and xbm. (Bug#8640)
13166
13167 2011-05-09 Andreas Schwab <schwab@linux-m68k.org>
13168
13169 * w32menu.c (set_frame_menubar): Fix submenu allocation.
13170
13171 2011-05-07 Eli Zaretskii <eliz@gnu.org>
13172
13173 * w32console.c (Fset_screen_color): Doc fix.
13174 (Fget_screen_color): New function.
13175 (syms_of_ntterm): Defsubr it.
13176
13177 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
13178 unlink the temporary file if Fcall_process didn't create it in the
13179 first place.
13180 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
13181 child process will be redirected to a file specified with `:file'.
13182 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
13183 cue to call_process_cleanup not to close that handle.
13184
13185 2011-05-07 Ben Key <bkey76@gmail.com>
13186
13187 * makefile.w32-in: The bootstrap-temacs rule now makes use of
13188 one of two shell specific rules, either bootstrap-temacs-CMD or
13189 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
13190 to the previous implementation of the bootstrap-temacs rule.
13191 The bootstrap-temacs-CMD rule is similar to the previous
13192 implementation of the bootstrap-temacs rule except that it
13193 makes use of the ESC_CFLAGS variable instead of the CFLAGS
13194 variable.
13195
13196 These changes, along with some changes to nt/configure.bat,
13197 nt/gmake.defs, and nt/nmake.defs, are required to extend my
13198 earlier fix to add support for --cflags and --ldflags options
13199 that include quotes so that it works whether make uses cmd or
13200 sh as the shell.
13201
13202 2011-05-06 Michael Albinus <michael.albinus@gmx.de>
13203
13204 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
13205 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
13206 is a constant.
13207 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
13208 a string. Handle both cases.
13209 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
13210 (Fdbus_register_method): Use Qinvalid_function.
13211
13212 2011-05-06 Juanma Barranquero <lekktu@gmail.com>
13213
13214 * makefile.w32-in: Update dependencies.
13215 (LISP_H): Add inttypes.h and stdin.h.
13216 (PROCESS_H): Add unistd.h.
13217
13218 2011-05-06 Eli Zaretskii <eliz@gnu.org>
13219
13220 * lread.c: Include limits.h (fixes the MS-Windows build broken by
13221 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
13222
13223 2011-05-06 Paul Eggert <eggert@cs.ucla.edu>
13224
13225 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
13226
13227 * term.c (vfatal): Remove stray call to va_end.
13228 It's not needed and the C Standard doesn't allow it here anyway.
13229
13230 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
13231 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
13232
13233 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
13234 bytes.
13235
13236 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
13237
13238 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
13239
13240 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
13241
13242 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
13243
13244 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
13245
13246 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
13247 * charset.c (Fdefine_charset_internal): Don't initialize
13248 charset.code_space[15]. The value was garbage, on hosts with
13249 32-bit int (Bug#8600).
13250
13251 * lread.c (read_integer): Be more consistent with string-to-number.
13252 Use string_to_number to do the actual conversion; this avoids
13253 rounding errors and fixes some other screwups. Without this fix,
13254 for example, #x1fffffffffffffff was misread as -2305843009213693952.
13255 (digit_to_number): Move earlier, for benefit of read_integer.
13256 Return -1 if the digit is out of range for the base, -2 if it is
13257 not a digit in any supported base. (Bug#8602)
13258
13259 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
13260
13261 * dispnew.c (scrolling_window): Return 1 if we scrolled,
13262 to match comment at start of function. This also removes a
13263 GCC warning about overflow in a 32+64-bit port.
13264
13265 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
13266
13267 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
13268 Reported by Stefan Monnier in
13269 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
13270 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
13271 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
13272
13273 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
13274 (EMACS_UINTPTR): Likewise, with uintptr_t.
13275
13276 * lisp.h: Prefer 64-bit EMACS_INT if available.
13277 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
13278 on 32-bit hosts that have 64-bit int, so that they can access
13279 large files.
13280 However, temporarily disable this change unless the temporary
13281 symbol WIDE_EMACS_INT is defined.
13282
13283 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
13284
13285 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
13286 This removes an assumption that EMACS_INT and long are the same
13287 width as pointers. The assumption is true for Emacs porting targets
13288 now, but we want to make other targets possible.
13289 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
13290 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
13291 In the rest of the code, change types of integers that hold casted
13292 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
13293 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
13294 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
13295 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
13296 No need to cast type when ORing.
13297 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
13298 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
13299 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
13300 assume EMACS_INT is the same width as char *.
13301 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
13302 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
13303 Remove no-longer-needed casts.
13304 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
13305 (xg_tool_bar_help_callback, xg_make_tool_item):
13306 Use EMACS_INTPTR to hold an integer
13307 that will be cast to void *; this can avoid a GCC warning
13308 if EMACS_INT is not the same width as void *.
13309 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
13310 * xdisp.c (display_echo_area_1, resize_mini_window_1):
13311 (current_message_1, set_message_1):
13312 Use a local to convert to proper width without a cast.
13313 * xmenu.c (dialog_selection_callback): Likewise.
13314
13315 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
13316 Also, don't assume VALBITS / RAND_BITS is less than 5,
13317 and don't rely on undefined behavior when shifting a 1 left into
13318 the sign bit.
13319 * lisp.h (get_random): Change signature to match.
13320
13321 * lread.c (hash_string): Use size_t, not int, for hash computation.
13322 Normally we prefer signed values; but hashing is special, because
13323 it's better to use unsigned division on hash table sizes so that
13324 the remainder is nonnegative. Also, size_t is the natural width
13325 for hashing into memory. The previous code used 'int', which doesn't
13326 retain enough info to hash well into very large tables.
13327 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
13328
13329 * dbusbind.c: Don't possibly lose pointer info when converting.
13330 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
13331 Use XPNTR rather than XHASH, so that the high-order bits of
13332 the pointer aren't lost when converting through void *.
13333
13334 * eval.c (Fautoload): Don't double-shift a pointer.
13335
13336 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
13337
13338 2011-05-06 Juanma Barranquero <lekktu@gmail.com>
13339
13340 * gnutls.c (DEF_GNUTLS_FN):
13341 * image.c (DEF_IMGLIB_FN): Make function pointers static.
13342
13343 2011-05-05 Andreas Schwab <schwab@linux-m68k.org>
13344
13345 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
13346 marker. (Bug#8610)
13347
13348 2011-05-05 Eli Zaretskii <eliz@gnu.org>
13349
13350 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
13351 New version that can reserve upto 2GB of heap space.
13352
13353 2011-05-05 Chong Yidong <cyd@stupidchicken.com>
13354
13355 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
13356
13357 2011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
13358
13359 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
13360 `gnutls_certificate_set_x509_key_file'.
13361
13362 2011-05-05 Juanma Barranquero <lekktu@gmail.com>
13363
13364 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
13365 Update dependencies.
13366
13367 2011-05-04 Juanma Barranquero <lekktu@gmail.com>
13368
13369 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
13370 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
13371 Remove unused parameter `fildes'.
13372 * process.c (read_process_output, send_process): Don't pass it.
13373
13374 2011-05-04 Juanma Barranquero <lekktu@gmail.com>
13375
13376 Fix previous change: the library cache is defined in w32.c.
13377 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
13378 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
13379
13380 2011-05-04 Juanma Barranquero <lekktu@gmail.com>
13381
13382 Implement dynamic loading of GnuTLS on Windows.
13383
13384 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
13385 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
13386 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
13387 Declare.
13388
13389 * gnutls.c (Qgnutls_dll): Define.
13390 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
13391 (gnutls_*): Declare function pointers.
13392 (init_gnutls_functions): New function to initialize function pointers.
13393 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
13394 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
13395 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
13396 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
13397 (emacs_gnutls_write, emacs_gnutls_read)
13398 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
13399 (Fgnutls_available_p): New function.
13400 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
13401 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
13402 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
13403
13404 * image.c: Include w32.h.
13405 (Vimage_type_cache): Delete.
13406 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
13407 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
13408 (w32_delayed_load): Move to w32.c.
13409
13410 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
13411
13412 * w32.c (QCloaded_from, Vlibrary_cache): Define.
13413 (w32_delayed_load): Move from image.c. When loading a library, record
13414 its filename in the :loaded-from property of the library id.
13415 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
13416 Initialize and staticpro them.
13417 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
13418
13419 * process.c: Include lisp.h before w32.h, not after.
13420 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
13421 instead of gnutls_record_check_pending.
13422
13423 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
13424
13425 2011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
13426
13427 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
13428 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
13429 as passed in.
13430
13431 2011-05-03 Jan Djärv <jan.h.d@swipnet.se>
13432
13433 * xterm.c (x_set_frame_alpha): Do not set property on anything
13434 else than FRAME_X_OUTER_WINDOW (Bug#8608).
13435
13436 2011-05-02 Juanma Barranquero <lekktu@gmail.com>
13437
13438 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
13439
13440 2011-05-02 Juanma Barranquero <lekktu@gmail.com>
13441
13442 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
13443 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
13444 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
13445 (gnutls_global_initialized, Qgnutls_bootprop_priority)
13446 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
13447 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
13448 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
13449 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
13450 (Qgnutls_bootprop_callbacks_verify): Make static.
13451
13452 2011-05-01 Andreas Schwab <schwab@linux-m68k.org>
13453
13454 * callproc.c: Indentation fixup.
13455
13456 * sysdep.c (wait_for_termination_1): Make static.
13457 (wait_for_termination, interruptible_wait_for_termination):
13458 Move after wait_for_termination_1.
13459
13460 2011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
13461
13462 * sysdep.c (interruptible_wait_for_termination): New function
13463 which is like wait_for_termination, but allows keyboard
13464 interruptions.
13465
13466 * callproc.c (Fcall_process): Add (:file "file") as an option for
13467 the STDOUT buffer.
13468 (Fcall_process_region): Ditto.
13469
13470 2011-04-30 Eli Zaretskii <eliz@gnu.org>
13471
13472 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
13473 rather than `XVECTOR (FOO)->size'.
13474
13475 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
13476 inttypes.h, as a gnulib replacement is used if it not available in
13477 system headers.
13478
13479 2011-04-21 Eli Zaretskii <eliz@gnu.org>
13480
13481 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
13482 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
13483 of MOST_POSITIVE_FIXNUM. (Bug#8528)
13484
13485 * coding.c (coding_alloc_by_realloc): Error out if destination
13486 will grow beyond MOST_POSITIVE_FIXNUM.
13487 (decode_coding_emacs_mule): Abort if there isn't enough place in
13488 charbuf for the composition carryover bytes. Reserve an extra
13489 space for up to 2 characters produced in a loop.
13490 (decode_coding_iso_2022): Abort if there isn't enough place in
13491 charbuf for the composition carryover bytes.
13492
13493 2011-04-21 Eli Zaretskii <eliz@gnu.org>
13494
13495 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
13496 aborting when %lld or %lll format is passed.
13497 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
13498 %llo or %llx format is passed. (Bug#8545)
13499
13500 * window.c (window_scroll_line_based): Use a marker instead of
13501 simple variables to record original value of point. (Bug#7952)
13502
13503 * doprnt.c (doprnt): Fix the case where a multibyte sequence
13504 produced by %s or %c overflows available buffer space. (Bug#8545)
13505
13506 2011-04-28 Paul Eggert <eggert@cs.ucla.edu>
13507
13508 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
13509 (SIZE_MAX): Move defn after all includes, as they might #define it.
13510
13511 2011-04-28 Juanma Barranquero <lekktu@gmail.com>
13512
13513 * w32.c (init_environment): Warn about defaulting HOME to C:\.
13514
13515 2011-04-28 Juanma Barranquero <lekktu@gmail.com>
13516
13517 * keyboard.c (Qdelayed_warnings_hook): Define.
13518 (command_loop_1): Run `delayed-warnings-hook'
13519 if Vdelayed_warnings_list is non-nil.
13520 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
13521 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
13522
13523 2011-04-28 Eli Zaretskii <eliz@gnu.org>
13524
13525 * doprnt.c (doprnt): Don't return value smaller than the buffer
13526 size if the message was truncated. (Bug#8545).
13527
13528 2011-04-28 Juanma Barranquero <lekktu@gmail.com>
13529
13530 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
13531 (Fx_window_property): #if-0 the whole functions, not just the bodies.
13532
13533 2011-04-27 Paul Eggert <eggert@cs.ucla.edu>
13534
13535 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
13536
13537 2011-04-27 Juanma Barranquero <lekktu@gmail.com>
13538
13539 * makefile.w32-in: Update dependencies.
13540
13541 2011-04-27 Eli Zaretskii <eliz@gnu.org>
13542
13543 Improve `doprnt' and its usage. (Bug#8545)
13544 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
13545 `format_end'. Remove support for %l as a conversion specifier.
13546 Don't use xrealloc. Improve diagnostics when the %l size modifier
13547 is used. Update the commentary.
13548
13549 * eval.c (verror): Simplify calculation of size_t.
13550
13551 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
13552 messages.
13553
13554 2011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
13555
13556 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
13557 change.
13558
13559 2011-04-27 Paul Eggert <eggert@cs.ucla.edu>
13560
13561 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
13562 This makes this file independent of the recent pseudovector change.
13563
13564 2011-04-26 Paul Eggert <eggert@cs.ucla.edu>
13565
13566 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
13567
13568 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
13569 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
13570 Remove unused local.
13571 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
13572
13573 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
13574 GCC 4.6.0 optimizes based on type-based alias analysis.
13575 For example, if b is of type struct buffer * and v of type struct
13576 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
13577 != &v->size, and therefore "v->size = 1; b->size = 2; return
13578 v->size;" must therefore return 1. This assumption is incorrect
13579 for Emacs, since it type-puns struct Lisp_Vector * with many other
13580 types. To fix this problem, this patch adds a new type struct
13581 vectorlike_header that documents the constraints on layout of vectors
13582 and pseudovectors, and helps optimizing compilers not get fooled
13583 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
13584 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
13585 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
13586 the size member.
13587 (XSETPVECTYPE): Rewrite in terms of new macro.
13588 (XSETPVECTYPESIZE): New macro, specifying both type and size.
13589 This is a bit clearer, and further avoids the possibility of
13590 undesirable aliasing.
13591 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
13592 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
13593 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
13594 since Lisp_Subr is a special case (no "next" field).
13595 (ASIZE): Now uses header.size rather than size.
13596 All previous uses of XVECTOR (foo)->size replaced to use this macro,
13597 to avoid the hassle of writing XVECTOR (foo)->header.size.
13598 (struct vectorlike_header): New type.
13599 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
13600 object, to help avoid aliasing.
13601 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
13602 (SUBRP): Likewise, since Lisp_Subr is a special case.
13603 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
13604 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
13605 (struct Lisp_Hash_Table): Combine first two members into a single
13606 struct vectorlike_header member. All uses of "size" and "next" members
13607 changed to be "header.size" and "header.next".
13608 * buffer.h (struct buffer): Likewise.
13609 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
13610 * frame.h (struct frame): Likewise.
13611 * process.h (struct Lisp_Process): Likewise.
13612 * termhooks.h (struct terminal): Likewise.
13613 * window.c (struct save_window_data, struct saved_window): Likewise.
13614 * window.h (struct window): Likewise.
13615 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
13616 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
13617 * buffer.c (init_buffer_once): Likewise.
13618 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
13619 special case.
13620 * process.c (Fformat_network_address): Use local var for size,
13621 for brevity.
13622
13623 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
13624
13625 Make the Lisp reader and string-to-float more consistent (Bug#8525)
13626 * data.c (atof): Remove decl; no longer used or needed.
13627 (digit_to_number): Move to lread.c.
13628 (Fstring_to_number): Use new string_to_number function, to be
13629 consistent with how the Lisp reader treats infinities and NaNs.
13630 Do not assume that floating-point numbers represent EMACS_INT
13631 without losing information; this is not true on most 64-bit hosts.
13632 Avoid double-rounding errors, by insisting on integers when
13633 parsing non-base-10 numbers, as the documentation specifies.
13634 * lisp.h (string_to_number): New decl, replacing ...
13635 (isfloat_string): Remove.
13636 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
13637 (read1): Do not accept +. and -. as integers; this
13638 appears to have been a coding error. Similarly, do not accept
13639 strings like +-1e0 as floating point numbers. Do not report
13640 overflow for integer overflows unless the base is not 10 which
13641 means we have no simple and reliable way to continue.
13642 Break out the floating-point parsing into a new
13643 function string_to_number, so that Fstring_to_number parses
13644 floating point numbers consistently with the Lisp reader.
13645 (digit_to_number): Move here from data.c. Make it static inline.
13646 (E_CHAR, EXP_INT): Remove, replacing with ...
13647 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
13648 (string_to_number): New function, replacing isfloat_string.
13649 This function checks for valid syntax and produces the resulting
13650 Lisp float number too. Rework it so that string-to-number
13651 no longer mishandles examples like "1.0e+". Use strtoumax,
13652 so that overflow for non-base-10 numbers is reported only when
13653 there's no portable and simple way to convert to floating point.
13654
13655 * textprop.c (set_text_properties_1): Rewrite for clarity,
13656 and to avoid GCC warning about integer overflow.
13657
13658 * intervals.h (struct interval): Use EMACS_INT for members
13659 where EMACS_UINT might cause problems. See
13660 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
13661 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
13662 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
13663 All uses changed.
13664 (offset_intervals): Tell GCC not to worry about length overflow
13665 when negating a negative length.
13666
13667 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
13668 (overrun_check_free): Likewise.
13669
13670 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
13671 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
13672 word size.
13673
13674 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
13675 (gnutls_make_error): Rename local to avoid shadowing.
13676 (gnutls_emacs_global_deinit): ifdef out; not used.
13677 (Fgnutls_boot): Use const for pointer to readonly storage.
13678 Comment out unused local. Fix pointer signedness problems.
13679
13680 * lread.c (openp): Don't stuff size_t into an 'int'.
13681 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
13682 about possible signed overflow.
13683
13684 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
13685 (GDK_KEY_g): Don't define if already defined.
13686 (xg_prepare_tooltip): Avoid pointer signedness problem.
13687 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
13688
13689 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
13690 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
13691
13692 * xfns.c (Fx_window_property): Simplify a bit,
13693 to make a bit faster and to avoid GCC 4.6.0 warning.
13694 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
13695
13696 * fns.c (internal_equal): Don't assume size_t fits in int.
13697
13698 * alloc.c (compact_small_strings): Tighten assertion a little.
13699
13700 Replace pEd with more-general pI, and fix some printf arg casts.
13701 * lisp.h (pI): New macro, generalizing old pEd macro to other
13702 conversion specifiers. For example, use "...%"pI"d..." rather
13703 than "...%"pEd"...".
13704 (pEd): Remove. All uses replaced with similar uses of pI.
13705 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
13706 * alloc.c (check_pure_size): Don't overflow by converting size to int.
13707 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
13708 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
13709 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
13710 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
13711 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
13712 64-bit hosts.
13713 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
13714 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
13715 * print.c (safe_debug_print, print_object): Likewise.
13716 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
13717 to int.
13718 Use pI instead of if-then-else-abort. Use %p to avoid casts,
13719 avoiding the 0 flag, which is not portable.
13720 * process.c (Fmake_network_process): Use pI to avoid cast.
13721 * region-cache.c (pp_cache): Likewise.
13722 * xdisp.c (decode_mode_spec): Likewise.
13723 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
13724 behavior on 64-bit hosts with printf arg.
13725 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
13726 (x_stop_queuing_selection_requests): Likewise.
13727 (x_get_window_property): Don't truncate byte count to an 'int'
13728 when tracing.
13729
13730 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
13731 here, since it parses constructs like leading '-' and spaces,
13732 which are not wanted; and it overflows with large numbers.
13733 Instead, simply match F[0-9]+, which is what is wanted anyway.
13734
13735 * alloc.c: Remove unportable assumptions about struct layout.
13736 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
13737 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
13738 (allocate_vectorlike, make_pure_vector): Use the new macros,
13739 plus offsetof, to remove unportable assumptions about struct layout.
13740 These assumptions hold on all porting targets that I know of, but
13741 they are not guaranteed, they're easy to remove, and removing them
13742 makes further changes easier.
13743
13744 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
13745 This doesn't fix a bug but makes the code clearer.
13746 (string_overrun_cookie): Now const. Use initializers that
13747 don't formally overflow signed char, to avoid warnings.
13748 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
13749 can cause Emacs to crash when string overrun checking is enabled.
13750 (allocate_buffer): Don't assume sizeof (struct buffer) is a
13751 multiple of sizeof (EMACS_INT); it need not be, if
13752 alignof(EMACS_INT) < sizeof (EMACS_INT).
13753 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
13754
13755 2011-04-26 Juanma Barranquero <lekktu@gmail.com>
13756
13757 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
13758
13759 2011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
13760
13761 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
13762 supposed to be handshaking. (Bug#8556)
13763 Reported by Paul Eggert <eggert@cs.ucla.edu>.
13764
13765 2011-04-26 Daniel Colascione <dan.colascione@gmail.com>
13766
13767 * lisp.h (Qdebug): List symbol.
13768 * eval.c (Qdebug): Restore global linkage.
13769 * keyboard.c (debug-on-event): New variable.
13770 (handle_user_signal): Break into debugger when debug-on-event
13771 matches the current signal symbol.
13772
13773 2011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
13774
13775 * alloc.c (check_sblock, check_string_bytes)
13776 (check_string_free_list): Convert to standard C.
13777
13778 2011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
13779
13780 * w32.c (emacs_gnutls_push): Fix typo.
13781
13782 2011-04-25 Eli Zaretskii <eliz@gnu.org>
13783
13784 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
13785 "cast to pointer from integer of different size".
13786
13787 Improve doprnt and its use in verror. (Bug#8545)
13788 * doprnt.c (doprnt): Document the set of format control sequences
13789 supported by the function. Use SAFE_ALLOCA instead of always
13790 using `alloca'.
13791
13792 * eval.c (verror): Don't limit the buffer size at size_max-1, that
13793 is one byte too soon. Don't use xrealloc; instead xfree and
13794 xmalloc anew.
13795
13796 2011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
13797
13798 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
13799 callbacks stage.
13800
13801 * gnutls.c: Renamed global_initialized to
13802 gnutls_global_initialized. Added internals for the
13803 :verify-hostname-error, :verify-error, and :verify-flags
13804 parameters of `gnutls-boot' and documented those parameters in the
13805 docstring. Start callback support.
13806 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
13807 unless a fatal error occurred. Call gnutls_alert_send_appropriate
13808 on error. Return error code.
13809 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
13810 (emacs_gnutls_read): Likewise.
13811 (Fgnutls_boot): Return handshake error code.
13812 (emacs_gnutls_handle_error): New function.
13813 (wsaerror_to_errno): Likewise.
13814
13815 * w32.h (emacs_gnutls_pull): Add prototype.
13816 (emacs_gnutls_push): Likewise.
13817
13818 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
13819 (emacs_gnutls_push): Likewise.
13820
13821 2011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
13822
13823 * process.c (wait_reading_process_output): Check if GnuTLS
13824 buffered some data internally if no FDs are set for TLS
13825 connections.
13826
13827 * makefile.w32-in (OBJ2): Add gnutls.$(O).
13828 (LIBS): Link to USER_LIBS.
13829 ($(BLD)/gnutls.$(0)): New target.
13830
13831 2011-04-24 Eli Zaretskii <eliz@gnu.org>
13832
13833 * xdisp.c (handle_single_display_spec): Rename the
13834 display_replaced_before_p argument into display_replaced_p, to
13835 make it consistent with the commentary. Fix typos in the
13836 commentary.
13837
13838 * textprop.c (syms_of_textprop): Remove dead code.
13839 (copy_text_properties): Delete obsolete commentary about an
13840 interface that was deleted long ago. Fix typos in the description
13841 of arguments.
13842
13843 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
13844 to changes in oldXMenu/XMenu.h from 2011-04-16.
13845 <menu_help_message, prev_menu_help_message>: Constify.
13846 (IT_menu_make_room): menu->help_text is now `const char **';
13847 adjust.
13848
13849 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
13850 to changes in oldXMenu/XMenu.h from 2011-04-16.
13851 (struct XMenu): Declare `help_text' `const char **'.
13852
13853 * xfaces.c <Qunspecified>: Make extern again.
13854
13855 * syntax.c: Include sys/types.h before including regex.h, as
13856 required by POSIX.
13857
13858 * doc.c (get_doc_string): Improve the format passed to `error'.
13859
13860 * doprnt.c (doprnt): Improve commentary.
13861
13862 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
13863
13864 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
13865 them with etags.
13866
13867 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
13868 changes in globals.h immediately force recompilation.
13869 (TAGS): Depend on $(CURDIR)/m/intel386.h and
13870 $(CURDIR)/s/ms-w32.h.
13871 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
13872
13873 * character.c (Fchar_direction): Function deleted.
13874 (syms_of_character): Don't defsubr it.
13875 <char-direction-table>: Deleted.
13876
13877 2011-04-23 Eli Zaretskii <eliz@gnu.org>
13878
13879 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
13880 * doprnt.c: Include limits.h.
13881 (SIZE_MAX): New macro.
13882 (doprnt): Return a size_t value. 2nd arg is now size_t.
13883 Many local variables are now size_t instead of int or unsigned.
13884 Improve overflow protection. Support `l' modifier for integer
13885 conversions. Support %l conversion. Don't assume an EMACS_INT
13886 argument for integer conversions and for %c.
13887
13888 * lisp.h (doprnt): Restore prototype.
13889
13890 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
13891 $(SRC)/character.h.
13892
13893 * Makefile.in (base_obj): Add back doprnt.o.
13894
13895 * deps.mk (doprnt.o): Add back prerequisites.
13896 (callint.o): Depend on character.h.
13897
13898 * eval.c (internal_lisp_condition_case): Include the handler
13899 representation in the error message.
13900 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
13901 when breaking from the loop.
13902
13903 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
13904
13905 * callint.c (Fcall_interactively): When displaying error message
13906 about invalid control letter, pass the character's codepoint, not
13907 a pointer to its multibyte form. Improve display of the character
13908 in octal and display also its hex code.
13909
13910 * character.c (char_string): Use %x to display the (unsigned)
13911 codepoint of an invalid character, to avoid displaying a bogus
13912 negative value.
13913
13914 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
13915 `error', not SYMBOL_NAME itself.
13916
13917 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
13918 character arguments to `error'.
13919
13920 * charset.c (check_iso_charset_parameter): Fix incorrect argument
13921 to `error' in error message about FINAL_CHAR argument. Make sure
13922 FINAL_CHAR is a character, and use %c when it is passed as
13923 argument to `error'.
13924
13925 2011-04-23 Eli Zaretskii <eliz@gnu.org>
13926
13927 * s/ms-w32.h (localtime): Redirect to sys_localtime.
13928
13929 * w32.c: Include <time.h>.
13930 (sys_localtime): New function.
13931
13932 2011-04-23 Chong Yidong <cyd@stupidchicken.com>
13933
13934 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
13935
13936 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
13937
13938 2011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
13939
13940 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
13941 zombies (Bug#8467).
13942
13943 2011-04-19 Eli Zaretskii <eliz@gnu.org>
13944
13945 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
13946 gl_state.e_property when gl_state.object is Qt.
13947
13948 * insdel.c (make_gap_larger): Remove limitation of buffer size
13949 to <= INT_MAX.
13950
13951 2011-04-18 Chong Yidong <cyd@stupidchicken.com>
13952
13953 * xdisp.c (lookup_glyphless_char_display)
13954 (produce_glyphless_glyph): Handle cons cell entry in
13955 glyphless-char-display.
13956 (Vglyphless_char_display): Document it.
13957
13958 * term.c (produce_glyphless_glyph): Handle cons cell entry in
13959 glyphless-char-display.
13960
13961 2011-04-17 Chong Yidong <cyd@stupidchicken.com>
13962
13963 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
13964
13965 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
13966
13967 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
13968 definition for no-X builds.
13969
13970 2011-04-16 Paul Eggert <eggert@cs.ucla.edu>
13971
13972 Static checks with GCC 4.6.0 and non-default toolkits.
13973
13974 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
13975
13976 * process.c (keyboard_bit_set): Define only if SIGIO.
13977 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
13978 (send_process): Repair possible setjmp clobbering.
13979
13980 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
13981
13982 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
13983
13984 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
13985
13986 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
13987 Define only if needed.
13988
13989 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
13990 by pacifying GCC about it. Maybe it's time to retire it?
13991 * xfaces.c (USG, __TIMEVAL__): Likewise.
13992
13993 * dispextern.h (struct redisplay_interface): Rename param
13994 to avoid shadowing.
13995 * termhooks.h (struct terminal): Likewise.
13996 * xterm.c (xembed_send_message): Likewise.
13997
13998 * insdel.c (make_gap_smaller): Define only if
13999 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
14000
14001 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
14002 it.
14003
14004 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
14005 so that we aren't warned about unused symbols.
14006
14007 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
14008
14009 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
14010
14011 * xfns.c (x_real_positions): Mark locals as initialized.
14012
14013 * xmenu.c (xmenu_show): Don't use uninitialized vars.
14014
14015 * xterm.c: Fix problems found by static analysis with other toolkits.
14016 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
14017 (x_dispatch_event): Declare static if USE_GTK, and
14018 define if USE_GTK || USE_X_TOOLKIT.
14019 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
14020 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
14021 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
14022 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
14023
14024 * xmenu.c (menu_help_callback): Pointer type fixes.
14025 Use const pointers when pointing at readonly data. Avoid pointer
14026 signedness clashes.
14027 (FALSE): Remove unused macro.
14028 (update_frame_menubar): Remove unused decl.
14029
14030 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
14031
14032 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
14033 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
14034 (single_menu_item): Rename local to avoid shadowing.
14035
14036 * keyboard.c (make_lispy_event): Remove unused local var.
14037
14038 * frame.c, frame.h (x_get_resource_string): Bring this back, but
14039 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
14040
14041 * bitmaps: Change bitmaps from unsigned char back to the X11
14042 compatible char. Avoid the old compiler warnings about
14043 out-of-range initializers by using, for example, '\xab' rather
14044 than 0xab.
14045
14046 * xgselect.c (xgselect_initialize): Check vs interface
14047 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
14048
14049 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
14050
14051 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
14052 to read-only memory.
14053
14054 * fns.c (vector): Remove; this old hack is no longer needed.
14055
14056 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
14057 Remove unused var.
14058 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
14059
14060 * xrdb.c (x_load_resources): Omit unused local.
14061
14062 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
14063 (x_window): Rename locals to avoid shadowing.
14064 (USG): Use the kludged USG macro, to pacify gcc.
14065
14066 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
14067 (x_term_init): Remove local to avoid shadowing.
14068
14069 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
14070
14071 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
14072 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
14073
14074 2011-04-16 Eli Zaretskii <eliz@gnu.org>
14075
14076 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
14077
14078 Fix regex.c, syntax.c and friends for buffers > 2GB.
14079 * syntax.h (struct gl_state_s): Declare character position members
14080 EMACS_INT.
14081
14082 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
14083
14084 * textprop.c (verify_interval_modification, interval_of):
14085 Declare arguments EMACS_INT.
14086
14087 * intervals.c (adjust_intervals_for_insertion): Declare arguments
14088 EMACS_INT.
14089
14090 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
14091
14092 * indent.c (Fvertical_motion): Local variable it_start is now
14093 EMACS_INT.
14094
14095 * regex.c (re_match, re_match_2, re_match_2_internal)
14096 (bcmp_translate, regcomp, regexec, print_double_string)
14097 (group_in_compile_stack, re_search, re_search_2, regex_compile)
14098 (re_compile_pattern, re_exec): Declare arguments and local
14099 variables `size_t' and `ssize_t' and return values `regoff_t', as
14100 appropriate.
14101 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
14102 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
14103 <compile_stack_type>: `size' and `avail' are now `size_t'.
14104
14105 * regex.h <regoff_t>: Use ssize_t, not int.
14106 (re_search, re_search_2, re_match, re_match_2): Arguments that
14107 specify buffer/string position and length are now ssize_t and
14108 size_t. Return type is regoff_t.
14109
14110 2011-04-16 Ben Key <bkey76@gmail.com>
14111
14112 * nsfont.m: Fixed bugs in ns_get_family and
14113 ns_descriptor_to_entity that were caused by using free to
14114 deallocate memory blocks that were allocated by xmalloc (via
14115 xstrdup). This caused Emacs to crash when compiled with
14116 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
14117 --enable-checking=xmallocoverrun). xfree is now used to
14118 deallocate these memory blocks.
14119
14120 2011-04-15 Paul Eggert <eggert@cs.ucla.edu>
14121
14122 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
14123
14124 emacs_write: Accept and return EMACS_INT for sizes.
14125 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
14126 et seq.
14127 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
14128 Accept and return EMACS_INT.
14129 (emacs_gnutls_write): Return the number of bytes written on
14130 partial writes.
14131 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
14132 (emacs_read, emacs_write): Remove check for negative size, as the
14133 Emacs source code has been audited now.
14134 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
14135 (emacs_read, emacs_write): Use it.
14136 * process.c (send_process): Adjust to the new signatures of
14137 emacs_write and emacs_gnutls_write. Do not attempt to store
14138 a byte offset into an 'int'; it might overflow.
14139 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
14140
14141 * sound.c: Don't assume sizes fit in 'int'.
14142 (struct sound_device.period_size, alsa_period_size):
14143 Return EMACS_INT, not int.
14144 (struct sound_device.write, vox_write, alsa_write):
14145 Accept EMACS_INT, not int.
14146 (wav_play, au_play): Use EMACS_INT to store sizes and to
14147 record read return values.
14148
14149 2011-04-15 Ben Key <bkey76@gmail.com>
14150
14151 * keyboard.c (Qundefined): Don't declare static since it is used
14152 in nsfns.m.
14153 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
14154 static since they are used in nsfont.m.
14155
14156 2011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
14157
14158 * process.c (Qprocessp): Don't declare static.
14159 * lisp.h (Qprocessp): Declare again.
14160
14161 2011-04-15 Juanma Barranquero <lekktu@gmail.com>
14162
14163 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
14164
14165 2011-04-14 Paul Eggert <eggert@cs.ucla.edu>
14166
14167 Improve C-level modularity by making more things 'static'.
14168
14169 Don't publish debugger-only interfaces to other modules.
14170 * lisp.h (safe_debug_print, debug_output_compilation_hack):
14171 (verify_bytepos, count_markers): Move decls to the only modules
14172 that need them.
14173 * region-cache.h (pp_cache): Likewise.
14174 * window.h (check_all_windows): Likewise.
14175 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
14176
14177 * sysdep.c (croak): Now static, if
14178 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
14179 * syssignal.h (croak): Declare only if not static.
14180
14181 * alloc.c (refill_memory_reserve): Now static if
14182 !defined REL_ALLOC || defined SYSTEM_MALLOC.
14183 * lisp.h (refill_memory_reserve): Declare only if not static.
14184
14185 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
14186 Define only if USE_LUCID.
14187
14188 * xrdb.c (x_customization_string, x_rm_string): Now static.
14189
14190 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
14191 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
14192
14193 * xdisp.c (draw_row_with_mouse_face): Now static.
14194 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
14195
14196 * window.h (check_all_windows): Mark externally visible.
14197
14198 * window.c (window_deletion_count): Now static.
14199
14200 * undo.c: Make symbols static if they're not exported.
14201 (last_undo_buffer, last_boundary_position, pending_boundary):
14202 Now static.
14203
14204 * textprop.c (interval_insert_behind_hooks): Now static.
14205 (interval_insert_in_front_hooks): Likewise.
14206
14207 * term.c: Make symbols static if they're not exported.
14208 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
14209 (max_frame_lines, tty_set_terminal_modes):
14210 (tty_reset_terminal_modes, tty_turn_off_highlight):
14211 (get_tty_terminal): Now static.
14212 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
14213 * termhooks.h (term_mouse_moveto): Do not declare if
14214 HAVE_WINDOW_SYSTEM.
14215 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
14216 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
14217
14218 * sysdep.c: Make symbols static if they're not exported.
14219 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
14220 Now static.
14221 (sigprocmask_set, full_mask): Remove; unused.
14222 (wait_debugging): Mark as visible.
14223 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
14224 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
14225
14226 * syntax.c (syntax_temp): Define only if !__GNUC__.
14227
14228 * sound.c (current_sound_device, current_sound): Now static.
14229
14230 * search.c (searchbufs, searchbuf_head): Now static.
14231
14232 * scroll.c (scroll_cost): Remove; unused.
14233 * dispextern.h (scroll_cost): Remove decl.
14234
14235 * region-cache.h (pp_cache): Mark as externally visible.
14236
14237 * process.c: Make symbols static if they're not exported.
14238 (process_tick, update_tick, create_process, chan_process):
14239 (Vprocess_alist, proc_buffered_char, datagram_access):
14240 (fd_callback_data, send_process_frame, process_sent_to): Now static.
14241 (deactivate_process): Mark defn as static, as well as decl.
14242 * lisp.h (create_process): Remove decl.
14243 * process.h (chan_process, Vprocess_alist): Remove decls.
14244
14245 * print.c: Make symbols static if they're not exported.
14246 (print_depth, new_backquote_output, being_printed, print_buffer):
14247 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
14248 (print_interval, print_number_index, initial_stderr_stream):
14249 Now static.
14250 * lisp.h (Fprinc): Remove decl.
14251 (debug_output_compilation_hack): Mark as externally visible.
14252
14253 * sysdep.c (croak): Move decl from here to syssignal.h.
14254 * syssignal.h (croak): Put it here, so the API can be checked when
14255 'croak' is called from dissociate_if_controlling_tty.
14256
14257 * minibuf.c: Make symbols static if they're not exported.
14258 (minibuf_save_list, choose_minibuf_frame): Now static.
14259 * lisp.h (choose_minibuf_frame): Remove decl.
14260
14261 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
14262
14263 * lread.c: Make symbols static if they're not exported.
14264 (read_objects, initial_obarray, oblookup_last_bucket_number):
14265 Now static.
14266 (make_symbol): Remove; unused.
14267 * lisp.h (initial_obarray, make_symbol): Remove decls.
14268
14269 * keyboard.c: Make symbols static if they're not exported.
14270 (single_kboard, recent_keys_index, total_keys, recent_keys):
14271 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
14272 (this_single_command_key_start, echoing, last_auto_save):
14273 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
14274 (command_loop, echo_now, keyboard_init_hook, help_char_p):
14275 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
14276 (Vlispy_mouse_stem, double_click_count):
14277 Now static.
14278 (force_auto_save_soon): Define only if SIGDANGER.
14279 (ignore_mouse_drag_p): Now static if
14280 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
14281 (print_help): Remove; unused.
14282 (stop_character, last_timer_event): Mark as externally visible.
14283 * keyboard.h (ignore_mouse_drag_p): Declare only if
14284 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
14285 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
14286 * lisp.h (echoing): Remove decl.
14287 (force_auto_save_soon): Declare only if SIGDANGER.
14288 * xdisp.c (redisplay_window): Simplify code, to make it more
14289 obvious that ignore_mouse_drag_p is not accessed if !defined
14290 USE_GTK && !defined HAVE_NS.
14291
14292 * intervals.c: Make symbols static if they're not exported.
14293 (merge_properties_sticky, merge_interval_right, delete_interval):
14294 Now static.
14295 * intervals.h (merge_interval_right, delete_interval): Remove decls.
14296
14297 * insdel.c: Make symbols static if they're not exported.
14298 However, leave prepare_to_modify_buffer alone. It's never
14299 called from outside this function, but that appears to be a bug.
14300 (combine_after_change_list, combine_after_change_buffer):
14301 (adjust_after_replace, signal_before_change): Now static.
14302 (adjust_after_replace_noundo): Remove; unused.
14303 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
14304 (signal_before_change): Remove decls.
14305
14306 * indent.c (val_compute_motion, val_vmotion): Now static.
14307
14308 * image.c: Make symbols static if they're not exported.
14309 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
14310 if USE_GTK.
14311 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
14312 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
14313
14314 * fringe.c (standard_bitmaps): Now static.
14315 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
14316
14317 * frame.c: Make symbols static if they're not exported.
14318 (x_report_frame_params, make_terminal_frame): Now static.
14319 (get_frame_param): Now static, unless HAVE_NS.
14320 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
14321 (x_get_resource_string): Remove; not used.
14322 * frame.h (make_terminal_frame, x_report_frame_params):
14323 (x_get_resource_string); Remove decls.
14324 (x_fullscreen_adjust): Declare only if WINDOWSNT.
14325 * lisp.h (get_frame_param): Declare only if HAVE_NS.
14326
14327 * font.c, fontset.c: Make symbols static if they're not exported.
14328 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
14329 (FACE_SUITABLE_FOR_CHAR_P): Use it.
14330 * font.c (font_close_object): Now static.
14331 * font.h (font_close_object): Remove.
14332 * fontset.c (FONTSET_OBJLIST): Remove.
14333 (free_realized_fontset) #if-0 the body, which does nothing.
14334 (face_suitable_for_char_p): #if-0, as it's never called.
14335 * fontset.h (face_suitable_for_char_p): Remove decl.
14336 * xfaces.c (face_at_string_position):
14337 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
14338 since 0 is always ASCII.
14339
14340 * fns.c (weak_hash_tables): Now static.
14341
14342 * fileio.c: Make symbols static if they're not exported.
14343 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
14344 (Vwrite_region_annotation_buffers): Now static.
14345
14346 * eval.c: Make symbols static if they're not exported.
14347 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
14348 * lisp.h (backtrace_list): Remove decl.
14349
14350 * emacs.c: Make symbols static if they're not exported.
14351 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
14352 (fatal_error_code, fatal_error_signal_hook, standard_args):
14353 Now static.
14354 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
14355 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
14356 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
14357 * lisp.h (fatal_error_signal_hook): Remove decl.
14358 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
14359
14360 * editfns.c: Move a (normally-unused) function to its only use.
14361 * editfns.c, lisp.h (get_operating_system_release): Remove.
14362 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
14363 worth the hassle of breaking this out.
14364
14365 * xterm.c: Make symbols static if they're not exported.
14366 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
14367 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
14368 (x_destroy_window, x_delete_display):
14369 Now static.
14370 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
14371 (x_mouse_leave): Remove; unused.
14372 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
14373 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
14374 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
14375 Remove decls.
14376 (x_mouse_leave): Declare only if WINDOWSNT.
14377 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
14378 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
14379 USE_X_TOOLKIT.
14380
14381 * ftxfont.c: Make symbols static if they're not exported.
14382 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
14383 HAVE_FREETYPE.
14384 * font.h (ftxfont_driver): Likewise.
14385
14386 * xfns.c: Make symbols static if they're not exported.
14387 (x_last_font_name, x_display_info_for_name):
14388 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
14389 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
14390 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
14391 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
14392 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
14393 (last_show_tip_args): Now static.
14394 (xic_defaut_fontset, xic_create_fontsetname): Define only if
14395 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
14396 (x_screen_planes): Remove; unused.
14397 * dispextern.h (x_screen_planes): Remove decl.
14398
14399 * dispnew.c: Make symbols static if they're not exported.
14400 * dispextern.h (redraw_garbaged_frames, scrolling):
14401 (increment_row_positions): Remove.
14402 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
14403 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
14404 Now static.
14405 (redraw_garbaged_frames): Remove; unused.
14406
14407 * xfaces.c: Make symbols static if they're not exported.
14408 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
14409 Remove decls.
14410 * xterm.h (defined_color): Remove decls.
14411 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
14412 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
14413 (menu_face_changed_default, defined_color, free_realized_face):
14414 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
14415 (ascii_face_of_lisp_face): Remove; unused.
14416
14417 * xdisp.c: Make symbols static if they're not exported.
14418 * dispextern.h (scratch_glyph_row, window_box_edges):
14419 (glyph_to_pixel_coords, set_cursor_from_row):
14420 (get_next_display_element, set_iterator_to_next):
14421 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
14422 (show_mouse_face): Remove decls
14423 * frame.h (message_buf_print): Likewise.
14424 * lisp.h (pop_message, set_message, check_point_in_composition):
14425 Likewise.
14426 * xterm.h (set_vertical_scroll_bar): Likewise.
14427 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
14428 (message_buf_print, scratch_glyph_row, displayed_buffer):
14429 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
14430 (get_next_display_element, show_mouse_face, window_box_edges):
14431 (frame_to_window_pixel_xy, check_point_in_composition):
14432 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
14433 (glyph_to_pixel_coords): Remove; unused.
14434
14435 * dired.c (file_name_completion): Now static.
14436
14437 * dbusbind.c (xd_in_read_queued_messages): Now static.
14438
14439 * lisp.h (circular_list_error, FOREACH): Remove; unused.
14440 * data.c (circular_list_error): Remove.
14441
14442 * commands.h (last_point_position, last_point_position_buffer):
14443 (last_point_position_window): Remove decls.
14444 * keyboard.c: Make these variables static.
14445
14446 * coding.h (coding, code_convert_region, encode_coding_gap):
14447 Remove decls.
14448 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
14449 (iso_code_class, detect_coding, code_convert_region): Now static.
14450 (encode_coding_gap): Remove; unused.
14451
14452 * chartab.c (chartab_chars, chartab_bits): Now static.
14453
14454 * charset.h (charset_iso_8859_1): Remove decl.
14455 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
14456 Now static.
14457
14458 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
14459 * ccl.c (Vccl_program_table): Now static.
14460 (check_ccl_update): Remove; unused.
14461
14462 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
14463 * category.h: ... from here.
14464 * category.c (check_category_table, set_category_set): Now static.
14465
14466 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
14467 * lisp.h: Remove these decls.
14468
14469 * buffer.c (buffer_count): Remove unused var.
14470
14471 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
14472 so that it's not optimized away.
14473 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
14474 * dispextern.h (bidi_dump_cached_states): Remove, since it's
14475 exported only to the debugger.
14476
14477 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
14478 * atimer.h (run_all_atimers): Remove; not exported.
14479
14480 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
14481 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
14482 was inaccessible from Lisp.
14483 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
14484 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
14485
14486 alloc.c: Import and export fewer symbols, and remove unused items.
14487 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
14488 is defined.
14489 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
14490 it's not optimized away by whole-program optimization.
14491 (message_enable_multibyte, free_misc): Remove.
14492 (catchlist, handlerlist, mark_backtrace):
14493 Declare only if BYTE_MARK_STACK.
14494 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
14495 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
14496 (message_enable_multibyte): Remove decl.
14497 (free_misc, interval_free_list, float_block, float_block_index):
14498 (n_float_blocks, float_free_list, cons_block, cons_block_index):
14499 (cons_free_list, last_marked_index):
14500 Now static.
14501 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
14502 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
14503 (mark_backtrace): Define only if BYTE_MARK_STACK.
14504 * xdisp.c (message_enable_multibyte): Now static.
14505
14506 Declare Lisp_Object Q* variables to be 'static' if not exported.
14507 This makes it easier for human readers (and static analyzers)
14508 to see whether these variables are used from other modules.
14509 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
14510 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
14511 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
14512 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
14513 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
14514 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
14515 * xmenu.c, xselect.c:
14516 Declare Q* vars static if they are not used in other modules.
14517 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
14518 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
14519 Remove decls of unexported vars.
14520 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
14521
14522 * lisp.h (DEFINE_FUNC): Make sname 'static'.
14523
14524 Make Emacs functions such as Fatom 'static' by default.
14525 This makes it easier for human readers (and static analyzers)
14526 to see whether these functions can be called from other modules.
14527 DEFUN now defines a static function. To make the function external
14528 so that it can be used in other C modules, use the new macro DEFUE.
14529 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
14530 (Finit_image_library):
14531 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
14532 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
14533 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
14534 Remove decls, since these functions are now static.
14535 (Funintern, Fget_internal_run_time): New decls, since these functions
14536 were already external.
14537
14538 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
14539 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
14540 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
14541 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
14542 * keyboard.c, keymap.c, lread.c:
14543 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
14544 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
14545 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
14546 Mark functions with DEFUE instead of DEFUN,
14547 if they are used in other modules.
14548 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
14549 decls for now-static functions.
14550 * buffer.h (Fdelete_overlay): Remove decl.
14551 * callproc.c (Fgetenv_internal): Mark as internal.
14552 * composite.c (Fremove_list_of_text_properties): Remove decl.
14553 (Fcomposition_get_gstring): New forward static decl.
14554 * composite.h (Fcomposite_get_gstring): Remove decl.
14555 * dired.c (Ffile_attributes): New forward static decl.
14556 * doc.c (Fdocumntation_property): New forward static decl.
14557 * eval.c (Ffetch_bytecode): New forward static decl.
14558 (Funintern): Remove extern decl; now in .h file where it belongs.
14559 * fileio.c (Fmake_symbolic_link): New forward static decl.
14560 * image.c (Finit_image_library): New forward static decl.
14561 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
14562 * intervals.h (Fprevious_property_change):
14563 (Fremove_list_of_text_properties): Remove decls.
14564 * keyboard.c (Fthis_command_keys): Remove decl.
14565 (Fcommand_execute): New forward static decl.
14566 * keymap.c (Flookup_key): New forward static decl.
14567 (Fcopy_keymap): Now static.
14568 * keymap.h (Flookup_key): Remove decl.
14569 * process.c (Fget_process): New forward static decl.
14570 (Fprocess_datagram_address): Mark as internal.
14571 * syntax.c (Fsyntax_table_p): New forward static decl.
14572 (skip_chars): Remove duplicate decl.
14573 * textprop.c (Fprevious_property_change): New forward static decl.
14574 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
14575 Now internal.
14576 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
14577 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
14578
14579 * editfns.c (Fformat): Remove unreachable code.
14580
14581 2011-04-14 Andreas Schwab <schwab@linux-m68k.org>
14582
14583 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
14584 change. (Bug#8496)
14585
14586 2011-04-13 Eli Zaretskii <eliz@gnu.org>
14587
14588 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
14589 when at ZV. (Bug#8487)
14590
14591 2011-04-12 Andreas Schwab <schwab@linux-m68k.org>
14592
14593 * charset.c (Fclear_charset_maps): Use xfree instead of free.
14594 (Bug#8437)
14595 * keyboard.c (parse_tool_bar_item): Likewise.
14596 * sound.c (sound_cleanup, alsa_close): Likewise.
14597 * termcap.c (tgetent): Likewise.
14598 * xfns.c (x_default_font_parameter): Likewise.
14599 * xsettings.c (read_and_apply_settings): Likewise.
14600
14601 * alloc.c (overrun_check_malloc, overrun_check_realloc)
14602 (overrun_check_free): Protoize.
14603
14604 2011-04-12 Paul Eggert <eggert@cs.ucla.edu>
14605
14606 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
14607 since callers should never pass a negative size.
14608 Change the signature to match that of plain 'read' and 'write'; see
14609 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
14610 * lisp.h: Update prototypes of emacs_write and emacs_read.
14611
14612 2011-04-11 Eli Zaretskii <eliz@gnu.org>
14613
14614 * xdisp.c (redisplay_window): Don't try to determine the character
14615 position of the scroll margin if the window start point w->startp
14616 is outside the buffer's accessible region. (Bug#8468)
14617
14618 2011-04-10 Eli Zaretskii <eliz@gnu.org>
14619
14620 Fix write-region and its subroutines for buffers > 2GB.
14621 * fileio.c (a_write, e_write): Modify declaration of arguments and
14622 local variables to support buffers larger than 2GB.
14623 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
14624
14625 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
14626 argument, local variables, and return value.
14627
14628 * lisp.h: Update prototypes of emacs_write and emacs_read.
14629
14630 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
14631
14632 2011-04-10 Paul Eggert <eggert@cs.ucla.edu>
14633
14634 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
14635
14636 Fix more problems found by GCC 4.6.0's static checks.
14637
14638 * xdisp.c (vmessage): Use a better test for character truncation.
14639
14640 * charset.c (load_charset_map): <, not <=, for optimization,
14641 and to avoid potential problems with integer overflow.
14642 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
14643 * casetab.c (set_identity, shuffle): Likewise.
14644 * editfns.c (Fformat): Likewise.
14645 * syntax.c (skip_chars): Likewise.
14646
14647 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
14648 This also lets GCC 4.6.0 generate slightly better loop code.
14649
14650 * callint.c (Fcall_interactively): <, not <=, for optimization.
14651 (Fcall_interactively): Count the number of arguments produced,
14652 not the number of arguments given. This is simpler and lets GCC
14653 4.6.0 generate slightly better code.
14654
14655 * ftfont.c: Distingish more carefully between FcChar8 and char.
14656 The previous code passed unsigned char * to a functions like
14657 strlen and xstrcasecmp that expect char *, which does not
14658 conform to the C standard.
14659 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
14660 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
14661 char * when the C standard requires it.
14662
14663 * keyboard.c (read_char): Remove unused var.
14664
14665 * eval.c: Port to Windows vsnprintf (Bug#8435).
14666 Include <limits.h>.
14667 (SIZE_MAX): Define if the headers do not.
14668 (verror): Do not give up if vsnprintf returns a negative count.
14669 Instead, grow the buffer. This ports to Windows vsnprintf, which
14670 does not conform to C99. Problem reported by Eli Zaretskii.
14671 Also, simplify the allocation scheme, by avoiding the need for
14672 calling realloc, and removing the ALLOCATED variable.
14673
14674 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
14675
14676 Remove invocations of doprnt, as Emacs now uses vsnprintf.
14677 But keep the doprint source code for now, as we might revamp it
14678 and use it again (Bug#8435).
14679 * lisp.h (doprnt): Remove.
14680 * Makefile.in (base_obj): Remove doprnt.o.
14681 * deps.mk (doprnt.o): Remove.
14682
14683 error: Print 32- and 64-bit integers portably (Bug#8435).
14684 Without this change, on typical 64-bit hosts error ("...%d...", N)
14685 was used to print both 32- and 64-bit integers N, which relied on
14686 undefined behavior.
14687 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
14688 * lisp.h (error, verror): Mark as printf-like functions.
14689 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
14690 Report overflow in size calculations when allocating printf buffer.
14691 Do not truncate output string at its first null byte.
14692 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
14693 Truncate the output at a character boundary, since vsnprintf does not
14694 do that.
14695 * charset.c (check_iso_charset_parameter): Convert internal
14696 character to string before calling 'error', since %c now has the
14697 printf meaning.
14698 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
14699 overflow when computing char to be passed to 'error'. Do not
14700 pass Lisp_Object to 'error'; pass the integer instead.
14701 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
14702 formatted with plain %d.
14703
14704 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
14705
14706 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
14707
14708 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
14709
14710 * xterm.c (x_catch_errors): Remove duplicate declaration.
14711
14712 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
14713
14714 * xdisp.c, lisp.h (message_nolog): Remove; unused.
14715
14716 2011-04-10 Jim Meyering <meyering@redhat.com>
14717
14718 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
14719 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
14720 return ssize_t not "int", and use size_t as the buffer length.
14721 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
14722 * gnutls.h: Update declarations.
14723 * process.c (read_process_output): Use ssize_t, to match.
14724 (send_process): Likewise.
14725
14726 2011-04-09 Chong Yidong <cyd@stupidchicken.com>
14727
14728 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
14729
14730 2011-04-09 Chong Yidong <cyd@stupidchicken.com>
14731
14732 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
14733 Use unsigned char, to match FcChar8 type definition.
14734
14735 * xterm.c (handle_one_xevent):
14736 * xmenu.c (create_and_show_popup_menu):
14737 * xselect.c (x_decline_selection_request)
14738 (x_reply_selection_request): Avoid type-punned deref of X events.
14739
14740 2011-04-09 Eli Zaretskii <eliz@gnu.org>
14741
14742 Fix some uses of `int' instead of EMACS_INT.
14743 * search.c (string_match_1, fast_string_match)
14744 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
14745 (scan_buffer, find_next_newline_no_quit)
14746 (find_before_next_newline, search_command, Freplace_match)
14747 (Fmatch_data): Make some `int' variables be EMACS_INT.
14748
14749 * xdisp.c (display_count_lines): 3rd argument and return value now
14750 EMACS_INT. All callers changed.
14751 (pint2hrstr): Last argument is now EMACS_INT.
14752
14753 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
14754 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
14755 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
14756 (decode_coding_utf_16, decode_coding_emacs_mule)
14757 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
14758 (decode_coding_ccl, decode_coding_charset)
14759 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
14760 (decode_coding_iso_2022, decode_coding_emacs_mule)
14761 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
14762 <char_offset, last_offset>: Declare EMACS_INT.
14763 (encode_coding_utf_8, encode_coding_utf_16)
14764 (encode_coding_emacs_mule, encode_invocation_designation)
14765 (encode_designation_at_bol, encode_coding_iso_2022)
14766 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
14767 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
14768 Declare EMACS_INT.
14769 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
14770 (encode_invocation_designation): Last argument P_NCHARS is now
14771 EMACS_INT.
14772 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
14773 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
14774
14775 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
14776 All users changed.
14777
14778 * ccl.c (Fccl_execute_on_string): Declare some variables
14779 EMACS_INT.
14780
14781 2011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
14782
14783 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
14784
14785 2011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
14786
14787 * process.c (Fformat_network_address): Doc fix.
14788
14789 2011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
14790
14791 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
14792
14793 2011-04-08 Chong Yidong <cyd@stupidchicken.com>
14794
14795 * keyboard.c (read_char): Call Lisp function help-form-show,
14796 instead of using internal_with_output_to_temp_buffer.
14797 (Qhelp_form_show): New var.
14798 (syms_of_keyboard): Use DEFSYM macro.
14799
14800 * print.c (internal_with_output_to_temp_buffer): Function deleted.
14801
14802 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
14803
14804 2011-04-06 Chong Yidong <cyd@stupidchicken.com>
14805
14806 * process.c (Flist_processes): Remove to Lisp.
14807 (list_processes_1): Delete.
14808
14809 2011-04-06 Eli Zaretskii <eliz@gnu.org>
14810
14811 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
14812
14813 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
14814
14815 2011-04-06 Paul Eggert <eggert@cs.ucla.edu>
14816
14817 Fix more problems found by GCC 4.6.0's static checks.
14818
14819 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
14820
14821 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
14822
14823 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
14824
14825 * xdisp.c (vmessage): Mark as a printf-like function.
14826
14827 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
14828
14829 * sound.c (sound_warning): Don't crash if arg contains a printf format.
14830
14831 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
14832 printf-like functions.
14833 (tiff_load): Add casts to remove these marks before passing them
14834 to system-supplied API.
14835
14836 * eval.c (Fsignal): Remove excess argument to 'fatal'.
14837
14838 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
14839 This avoids several warnings with gcc -Wstrict-overflow.
14840 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
14841 directly, rather than having caller test rule sign. This avoids
14842 some unnecessary tests.
14843 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
14844 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
14845 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
14846
14847 * xfont.c (xfont_text_extents): Remove var that was set but not used.
14848 (xfont_open): Avoid unnecessary tests.
14849
14850 * composite.c (composition_gstring_put_cache): Use unsigned integer.
14851
14852 * composite.h, composite.c (composition_gstring_put_cache):
14853 Use EMACS_INT, not int, for length.
14854
14855 * composite.h (COMPOSITION_DECODE_REFS): New macro,
14856 breaking out part of COMPOSITION_DECODE_RULE.
14857 (COMPOSITION_DECODE_RULE): Use it.
14858 * composite.c (get_composition_id): Remove unused local vars,
14859 by using the new macro.
14860
14861 * textprop.c (set_text_properties_1): Change while to do-while,
14862 since the condition is always true at first.
14863
14864 * intervals.c (graft_intervals_into_buffer): Mark var as used.
14865 (interval_deletion_adjustment): Return unsigned value.
14866 All uses changed.
14867
14868 * process.c (list_processes_1, create_pty, read_process_output):
14869 (exec_sentinel): Remove vars that were set but not used.
14870 (create_pty): Remove unnecessary "volatile"s.
14871 (Fnetwork_interface_info): Avoid possibility of int overflow.
14872 (read_process_output): Do adaptive read buffering even if carryover.
14873 (read_process_output): Simplify nbytes computation if buffered.
14874
14875 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
14876
14877 * syntax.c (scan_words): Remove var that was set but not used.
14878 (update_syntax_table): Use unsigned instead of int.
14879
14880 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
14881 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
14882 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
14883
14884 * print.c (print_error_message): Avoid int overflow.
14885
14886 * font.c (font_list_entities): Redo for clarity,
14887 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
14888
14889 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
14890 (font_score): Avoid potential overflow in diff calculation.
14891
14892 * fns.c (substring_both): Remove var that is set but not used.
14893 (sxhash): Redo loop for clarity and to avoid wraparound warning.
14894
14895 * eval.c (funcall_lambda): Rename local to avoid shadowing.
14896
14897 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
14898 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
14899 can always succeed if overflow has undefined behavior.
14900
14901 * search.c (boyer_moore, wordify): Remove vars set but not used.
14902 (wordify): Omit three unnecessary tests.
14903
14904 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
14905 All callers changed. This avoids the need for an unused var.
14906
14907 * casefiddle.c (casify_region): Remove var that is set but not used.
14908
14909 * dired.c (file_name_completion): Remove var that is set but not used.
14910
14911 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
14912
14913 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
14914 (Finsert_file_contents): Remove unnecessary code checking fd.
14915
14916 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
14917 Check for integer overflow on size calculations.
14918
14919 * buffer.c (Fprevious_overlay_change): Remove var that is set
14920 but not used.
14921
14922 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
14923 Remove vars that are set but not used.
14924 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
14925 (timer_check_2): Mark vars as initialized.
14926
14927 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
14928
14929 * image.c (lookup_image): Remove var that is set but not used.
14930 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
14931
14932 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
14933 that are set but not used.
14934
14935 * xfns.c (make_invisible_cursor): Don't return garbage
14936 if XCreateBitmapFromData fails (Bug#8410).
14937
14938 * xselect.c (x_get_local_selection, x_handle_property_notify):
14939 Remove vars that are set but not used.
14940
14941 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
14942 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
14943
14944 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
14945 Remove var that is set but not used.
14946 (scroll_bar_windows_size): Now size_t, not int.
14947 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
14948 Check for overflow.
14949
14950 * xfaces.c (realize_named_face): Remove vars that are set but not used.
14951 (map_tty_color) [!defined MSDOS]: Likewise.
14952
14953 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
14954
14955 * coding.c: Remove vars that are set but not used.
14956 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
14957 All callers changed.
14958 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
14959 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
14960 (decode_coding_charset): Remove vars that are set but not used.
14961
14962 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
14963 that is set but not used.
14964
14965 * print.c (print_object): Remove var that is set but not used.
14966
14967 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
14968 The gnulib version avoids calling malloc in the usual case,
14969 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
14970 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
14971 * filelock.c (current_lock_owner): Likewise.
14972 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
14973 * sysdep.c: Include allocator.h, careadlinkat.h.
14974 (emacs_no_realloc_allocator): New static constant.
14975 (emacs_readlink): New function.
14976 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
14977 ../lib/careadlinkat.h.
14978
14979 2011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
14980
14981 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
14982 first non-nil return value).
14983
14984 2011-04-03 Jan Djärv <jan.h.d@swipnet.se>
14985
14986 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
14987 if not defined (Bug#8403).
14988
14989 2011-04-02 Juanma Barranquero <lekktu@gmail.com>
14990
14991 * xdisp.c (display_count_lines): Remove parameter `start',
14992 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
14993 (get_char_face_and_encoding): Remove parameter `multibyte_p',
14994 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
14995 (fill_stretch_glyph_string): Remove parameters `row' and `area',
14996 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
14997 and thereabouts. All callers changed.
14998 (get_per_char_metric): Remove parameter `f', unused since
14999 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
15000
15001 2011-04-02 Jim Meyering <meyering@redhat.com>
15002
15003 do not dereference NULL upon failed strdup
15004 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
15005 (ns_get_family): Likewise.
15006
15007 2011-04-02 Juanma Barranquero <lekktu@gmail.com>
15008
15009 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
15010
15011 2011-04-02 Jan Djärv <jan.h.d@swipnet.se>
15012
15013 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
15014 later (Bug#8403).
15015
15016 2011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
15017
15018 Add lexical binding.
15019
15020 * window.c (Ftemp_output_buffer_show): New fun.
15021 (Fsave_window_excursion):
15022 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
15023
15024 * lread.c (lisp_file_lexically_bound_p): New function.
15025 (Fload): Bind Qlexical_binding.
15026 (readevalloop): Remove `evalfun' arg.
15027 Bind Qinternal_interpreter_environment.
15028 (Feval_buffer): Bind Qlexical_binding.
15029 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
15030 Mark as dynamic.
15031 (syms_of_lread): Declare `lexical-binding'.
15032
15033 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
15034
15035 * keyboard.c (eval_dyn): New fun.
15036 (menu_item_eval_property): Use it.
15037
15038 * image.c (parse_image_spec): Use Ffunctionp.
15039
15040 * fns.c (concat, mapcar1): Accept byte-code-functions.
15041
15042 * eval.c (Fsetq): Handle lexical vars.
15043 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
15044 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
15045 (FletX, Flet): Obey lexical binding.
15046 (Fcommandp): Handle closures.
15047 (Feval): New `lexical' arg.
15048 (eval_sub): New function extracted from Feval. Use it almost
15049 everywhere where Feval was used. Look up vars in lexical env.
15050 Handle closures.
15051 (Ffunctionp): Move from subr.el.
15052 (Ffuncall): Handle closures.
15053 (apply_lambda): Remove `eval_flags'.
15054 (funcall_lambda): Handle closures and new byte-code-functions.
15055 (Fspecial_variable_p): New function.
15056 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
15057 but without exporting it to Lisp.
15058
15059 * doc.c (Fdocumentation, store_function_docstring):
15060 * data.c (Finteractive_form): Handle closures.
15061
15062 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
15063 interactive spec.
15064
15065 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
15066 New byte-codes.
15067 (exec_byte_code): New function extracted from Fbyte_code to handle new
15068 calling convention for byte-code-functions. Add new byte-codes.
15069
15070 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
15071
15072 * alloc.c (Fmake_symbol): Init new `declared_special' field.
15073
15074 2011-03-31 Juanma Barranquero <lekktu@gmail.com>
15075
15076 * xdisp.c (redisplay_internal): Fix prototype.
15077
15078 2011-03-31 Eli Zaretskii <eliz@gnu.org>
15079
15080 * xdisp.c (SCROLL_LIMIT): New macro.
15081 (try_scrolling): Use it when setting scroll_limit.
15082 Limit scrolling to 100 screen lines.
15083 (redisplay_window): Even when falling back on "recentering",
15084 position point in the window according to scroll-conservatively,
15085 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
15086
15087 (try_scrolling): When point is above the window, allow searching
15088 as far as scroll_max, or one screenful, to compute vertical
15089 distance from PT to the scroll margin position. This prevents
15090 try_scrolling from unnecessarily failing when
15091 scroll-conservatively is set to a value slightly larger than the
15092 window height. Clean up the case of PT below the margin at bottom
15093 of window: scroll_max can no longer be INT_MAX. When aggressive
15094 scrolling is in use, don't let point enter the opposite scroll
15095 margin as result of the scroll.
15096 (syms_of_xdisp) <scroll-conservatively>: Document the
15097 threshold of 100 lines for never-recentering scrolling.
15098
15099 2011-03-31 Juanma Barranquero <lekktu@gmail.com>
15100
15101 * dispextern.h (move_it_by_lines):
15102 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
15103 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
15104 (message_log_check_duplicate): Remove parameters `prev_bol' and
15105 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
15106 (redisplay_internal): Remove parameter `preserve_echo_area',
15107 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
15108
15109 * indent.c (Fvertical_motion):
15110 * window.c (window_scroll_pixel_based, Frecenter):
15111 Don't pass `need_y_p' to `move_it_by_lines'.
15112
15113 2011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
15114
15115 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
15116 steal a few bits to be more compact.
15117 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
15118 Remove unneeded casts.
15119
15120 * bytecode.c (Fbyte_code): CAR and CDR can GC.
15121
15122 2011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
15123
15124 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
15125 binding" message (bug#7967).
15126
15127 2011-03-30 Paul Eggert <eggert@cs.ucla.edu>
15128
15129 Fix more problems found by GCC 4.6.0's static checks.
15130
15131 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
15132 Remove unused local var.
15133
15134 * editfns.c (Fmessage_box): Remove unused local var.
15135
15136 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
15137 (note_mode_line_or_margin_highlight, note_mouse_highlight):
15138 Omit unused local vars.
15139 * window.c (shrink_windows): Omit unused local var.
15140 * menu.c (digest_single_submenu): Omit unused local var.
15141 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
15142 Omit unused local var.
15143
15144 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
15145 Don't assume string length fits in int.
15146 (keyremap_step, read_key_sequence): Use size_t for sizes.
15147 (read_key_sequence): Don't check last_real_key_start redundantly.
15148
15149 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
15150 instead of alloca (Bug#8344).
15151
15152 * eval.c (Fbacktrace): Don't assume nargs fits in int.
15153 (Fbacktrace_frame): Don't assume nframes fits in int.
15154
15155 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
15156
15157 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
15158 concerns.
15159
15160 * term.c (produce_glyphless_glyph): Remove unnecessary test.
15161
15162 * cm.c (calccost): Turn while-do into do-while, for clarity.
15163
15164 * keyboard.c (syms_of_keyboard): Use the same style as later
15165 in this function when indexing through an array. This also
15166 works around GCC bug 48267.
15167
15168 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
15169
15170 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
15171
15172 * chartab.c (sub_char_table_ref_and_range): Redo for slight
15173 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
15174
15175 * keyboard.c, keyboard.h (num_input_events): Now size_t.
15176 This avoids undefined behavior on integer overflow, and is a bit
15177 more convenient anyway since it is compared to a size_t variable.
15178
15179 Variadic C functions now count arguments with size_t, not int.
15180 This avoids an unnecessary limitation on 64-bit machines, which
15181 caused (substring ...) to crash on large vectors (Bug#8344).
15182 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
15183 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
15184 All variadic functions and their callers changed accordingly.
15185 (struct gcpro.nvars): Now size_t, not int. All uses changed.
15186 * data.c (arith_driver, float_arith_driver): Likewise.
15187 * editfns.c (general_insert_function): Likewise.
15188 * eval.c (struct backtrace.nargs, interactive_p)
15189 (internal_condition_case_n, run_hook_with_args, apply_lambda)
15190 (funcall_lambda, mark_backtrace): Likewise.
15191 * fns.c (concat): Likewise.
15192 * frame.c (x_set_frame_parameters): Likewise.
15193 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
15194 0 if not found, not -1. All callers changed.
15195
15196 * alloc.c (garbage_collect): Don't assume stack size fits in int.
15197 (stack_copy_size): Now size_t, not int.
15198 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
15199
15200 2011-03-28 Juanma Barranquero <lekktu@gmail.com>
15201
15202 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
15203 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
15204 All callers changed.
15205
15206 * lisp.h (multibyte_char_to_unibyte):
15207 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
15208 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
15209 * character.h (CHAR_TO_BYTE8):
15210 * cmds.c (internal_self_insert):
15211 * editfns.c (general_insert_function):
15212 * keymap.c (push_key_description):
15213 * search.c (Freplace_match):
15214 * xdisp.c (message_dolog, set_message_1): All callers changed.
15215
15216 2011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
15217
15218 * keyboard.c (safe_run_hook_funcall): New function.
15219 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
15220 don't set the hook to nil, but remove the offending function instead.
15221 (Qcommand_hook_internal): Remove, unused.
15222 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
15223 Vcommand_hook_internal.
15224
15225 * eval.c (enum run_hooks_condition): Remove.
15226 (funcall_nil, funcall_not): New functions.
15227 (run_hook_with_args): Call each function through a `funcall' argument.
15228 Remove `cond' argument, now redundant.
15229 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
15230 (Frun_hook_with_args_until_failure): Adjust accordingly.
15231 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
15232
15233 2011-03-28 Juanma Barranquero <lekktu@gmail.com>
15234
15235 * dispextern.h (string_buffer_position): Remove declaration.
15236
15237 * print.c (strout): Remove parameter `multibyte', unused since
15238 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
15239
15240 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
15241 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
15242 All callers changed.
15243
15244 * w32.c (_wsa_errlist): Use braces for struct initializers.
15245
15246 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
15247 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
15248 All callers changed.
15249 (string_buffer_position): Likewise. Also, make static (it's never
15250 used outside xdisp.c).
15251 (cursor_row_p): Remove parameter `w', unused since
15252 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
15253 (decode_mode_spec): Remove parameter `precision', introduced during
15254 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
15255 All callers changed.
15256
15257 2011-03-27 Jan Djärv <jan.h.d@swipnet.se>
15258
15259 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
15260
15261 2011-03-27 Anders Lindgren <andlind@gmail.com>
15262
15263 * nsterm.m (ns_menu_bar_is_hidden): New variable.
15264 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
15265 (ns_update_auto_hide_menu_bar): New functions.
15266 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
15267 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
15268 ns_constrain_all_frames.
15269 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
15270 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
15271
15272 2011-03-27 Jan Djärv <jan.h.d@swipnet.se>
15273
15274 * nsmenu.m (runDialogAt): Remove argument to timer_check.
15275
15276 2011-03-27 Glenn Morris <rgm@gnu.org>
15277
15278 * syssignal.h: Replace RETSIGTYPE with void.
15279 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
15280 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
15281 Replace SIGTYPE with void everywhere.
15282 * s/usg5-4-common.h (SIGTYPE): Remove definition.
15283 * s/template.h (SIGTYPE): Remove commented out definition.
15284
15285 2011-03-26 Eli Zaretskii <eliz@gnu.org>
15286
15287 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
15288 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
15289
15290 2011-03-26 Juanma Barranquero <lekktu@gmail.com>
15291
15292 * w32.c (read_unc_volume): Use parameter `henum', instead of
15293 global variable `wget_enum_handle'.
15294
15295 * keymap.c (describe_vector): Remove parameters `indices' and
15296 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
15297 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
15298
15299 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
15300
15301 * keyboard.c (timer_check): Remove parameter `do_it_now',
15302 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
15303 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
15304 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
15305
15306 * keyboard.c (read_char):
15307 * w32menu.c (w32_menu_display_help):
15308 * xmenu.c (show_help_event, menu_help_callback):
15309 Adjust calls to `show_help_echo'.
15310
15311 * gtkutil.c (xg_maybe_add_timer):
15312 * keyboard.c (readable_events):
15313 * process.c (wait_reading_process_output):
15314 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
15315
15316 * insdel.c (adjust_markers_gap_motion):
15317 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
15318 (gap_left, gap_right): Don't call it.
15319
15320 2011-03-25 Chong Yidong <cyd@stupidchicken.com>
15321
15322 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
15323 incurred during fontification.
15324
15325 2011-03-25 Juanma Barranquero <lekktu@gmail.com>
15326
15327 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
15328 (DEFVAR_PER_BUFFER): Don't pass it.
15329
15330 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
15331 (scrolling_window): Don't pass it.
15332
15333 2011-03-25 Juanma Barranquero <lekktu@gmail.com>
15334
15335 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
15336
15337 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
15338 and `suffix'.
15339 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
15340 of variables specific to SELinux and computation of `encoded_absname'.
15341
15342 * image.c (XPutPixel): Remove unused variable `height'.
15343
15344 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
15345
15346 * unexw32.c (get_section_info): Remove unused variable `section'.
15347
15348 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
15349 (system_process_attributes): Remove unused variable `sess'.
15350 (sys_read): Remove unused variable `err'.
15351
15352 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
15353 (w32_wnd_proc): Remove unused variable `isdead'.
15354 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
15355 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
15356 (x_create_tip_frame): Remove unused variable `tem'.
15357
15358 * w32inevt.c (w32_console_read_socket):
15359 Remove unused variable `no_events'.
15360
15361 * w32term.c (x_draw_composite_glyph_string_foreground):
15362 Remove unused variable `width'.
15363
15364 2011-03-24 Juanma Barranquero <lekktu@gmail.com>
15365
15366 * w32term.c (x_set_glyph_string_clipping):
15367 Don't pass uninitialized region to CombineRgn.
15368
15369 2011-03-23 Juanma Barranquero <lekktu@gmail.com>
15370
15371 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
15372 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
15373 (Fx_close_connection): Remove unused variable `i'.
15374
15375 * w32font.c (w32font_draw): Return number of glyphs.
15376 (w32font_open_internal): Remove unused variable `i'.
15377 (w32font_driver): Add missing initializer.
15378
15379 * w32menu.c (utf8to16): Remove unused variable `utf16'.
15380 (fill_in_menu): Remove unused variable `items_added'.
15381
15382 * w32term.c (last_mouse_press_frame): Remove static global variable.
15383 (w32_clip_to_row): Remove unused variable `f'.
15384 (x_delete_terminal): Remove unused variable `i'.
15385
15386 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
15387 (NOTHING): Remove unused static global variable.
15388 (uniscribe_check_otf): Remove unused variable `table'.
15389 (uniscribe_font_driver): Add missing initializers.
15390
15391 2011-03-23 Julien Danjou <julien@danjou.info>
15392
15393 * term.c (Fsuspend_tty, Fresume_tty):
15394 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
15395 * window.c (temp_output_buffer_show):
15396 * insdel.c (signal_before_change):
15397 * frame.c (Fhandle_switch_frame):
15398 * fileio.c (Fdo_auto_save):
15399 * emacs.c (Fkill_emacs):
15400 * editfns.c (save_excursion_restore):
15401 * cmds.c (internal_self_insert):
15402 * callint.c (Fcall_interactively):
15403 * buffer.c (Fkill_all_local_variables):
15404 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
15405 Use Frun_hooks.
15406 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
15407 unconditionally since it does the check itself.
15408
15409 2011-03-23 Paul Eggert <eggert@cs.ucla.edu>
15410
15411 Fix more problems found by GCC 4.5.2's static checks.
15412
15413 * coding.c (encode_coding_raw_text): Avoid unnecessary test
15414 the first time through the loop, since we know p0 < p1 then.
15415 This also avoids a gcc -Wstrict-overflow warning.
15416
15417 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
15418 leading to a memory leak, possible in functions like
15419 load_charset_map_from_file that can allocate an unbounded number
15420 of objects (Bug#8318).
15421
15422 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
15423 that could (at least in theory) be that large.
15424
15425 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
15426 This is less likely to overflow, and avoids undefined behavior if
15427 overflow does occur. All callers changed. Use strtoul to scan
15428 for the unsigned long integer.
15429 (pint2hrstr): Simplify and tune code slightly.
15430 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
15431
15432 * scroll.c (do_scrolling): Work around GCC bug 48228.
15433 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
15434
15435 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
15436 This also avoids a warning with gcc -Wstrict-overflow.
15437 (validate_x_resource_name): Simplify count usage.
15438 This also avoids a warning with gcc -Wstrict-overflow.
15439
15440 * fileio.c (Fcopy_file): Report error if fchown or fchmod
15441 fail (Bug#8306).
15442
15443 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
15444
15445 * process.c (Fmake_network_process): Use socklen_t, not int,
15446 where POSIX says socklen_t is required in portable programs.
15447 This fixes a porting bug on hosts like 64-bit HP-UX, where
15448 socklen_t is wider than int (Bug#8277).
15449 (Fmake_network_process, server_accept_connection):
15450 (wait_reading_process_output, read_process_output):
15451 Likewise.
15452
15453 * process.c: Rename or move locals to avoid shadowing.
15454 (list_processes_1, Fmake_network_process):
15455 (read_process_output_error_handler, exec_sentinel_error_handler):
15456 Rename or move locals.
15457 (Fmake_network_process): Define label "retry_connect" only if needed.
15458 (Fnetwork_interface_info): Fix pointer signedness.
15459 (process_send_signal): Add cast to avoid pointer signedness problem.
15460 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
15461 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
15462
15463 Make tparam.h and terminfo.c consistent.
15464 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
15465 Include tparam.h instead, since it declares them.
15466 * cm.h (PC): Remove extern decl; tparam.h now does this.
15467 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
15468 * terminfo.c: Include tparam.h, to check interfaces.
15469 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
15470 (tparam): Adjust signature to match interface in tparam.h;
15471 this removes some undefined behavior. Check that outstring and len
15472 are zero, which they always are with Emacs.
15473 * tparam.h (PC, BC, UP): New extern decls.
15474
15475 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
15476 (xftfont_open): Rename locals to avoid shadowing.
15477
15478 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
15479 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
15480 (OTF_TAG_SYM): Omit macro if not needed.
15481 (ftfont_list): Remove unused local.
15482 (get_adstyle_property, ftfont_pattern_entity):
15483 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
15484 Rename locals to avoid shadowing.
15485
15486 * xfont.c (xfont_list_family): Mark var as initialized.
15487
15488 * xml.c (make_dom): Now static.
15489
15490 * composite.c (composition_compute_stop_pos): Rename local to
15491 avoid shadowing.
15492 (composition_reseat_it): Remove unused locals.
15493 (find_automatic_composition, composition_adjust_point): Likewise.
15494 (composition_update_it): Mark var as initialized.
15495 (find_automatic_composition): Mark vars as initialized,
15496 with a FIXME (Bug#8290).
15497
15498 character.h: Rename locals to avoid shadowing.
15499 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
15500 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
15501 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
15502 (BUF_DEC_POS): Be more systematic about renaming local temporaries
15503 to avoid shadowing.
15504
15505 * textprop.c (property_change_between_p): Remove; unused.
15506
15507 * intervals.c (interval_start_pos): Now static.
15508
15509 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
15510
15511 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
15512 Rename locals to avoid shadowing.
15513
15514 * sound.c (wav_play, au_play, Fplay_sound_internal):
15515 Fix pointer signedness.
15516 (alsa_choose_format): Remove unused local var.
15517 (wav_play): Initialize a variable to 0, to prevent undefined
15518 behavior (Bug#8278).
15519
15520 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
15521
15522 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
15523
15524 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
15525 clobbering (Bug#8298).
15526 * sysdep.c (sys_subshell): Likewise.
15527 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
15528
15529 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
15530 This should get cleaned up, so that child_setup has the
15531 same signature on all platforms.
15532
15533 * callproc.c (call_process_cleanup): Now static.
15534 (relocate_fd): Rename locals to avoid shadowing.
15535
15536 2011-03-22 Chong Yidong <cyd@stupidchicken.com>
15537
15538 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
15539 not to be necessary, and produces flickering.
15540
15541 2011-03-20 Glenn Morris <rgm@gnu.org>
15542
15543 * config.in: Remove file.
15544
15545 2011-03-20 Juanma Barranquero <lekktu@gmail.com>
15546
15547 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
15548 are now in src/globals.h.
15549 (syms_of_minibuf): Remove spurious & from previous change.
15550
15551 2011-03-20 Leo Liu <sdl.web@gmail.com>
15552
15553 * minibuf.c (completing-read-function): New variable.
15554 (completing-read-default): Rename from completing-read.
15555 (completing-read): Call completing-read-function.
15556
15557 2011-03-19 Juanma Barranquero <lekktu@gmail.com>
15558
15559 * xfaces.c (Fx_load_color_file):
15560 Read color file from absolute filename (bug#8250).
15561
15562 2011-03-19 Juanma Barranquero <lekktu@gmail.com>
15563
15564 * makefile.w32-in: Update dependencies.
15565
15566 2011-03-17 Eli Zaretskii <eliz@gnu.org>
15567
15568 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
15569
15570 2011-03-17 Paul Eggert <eggert@cs.ucla.edu>
15571
15572 Fix more problems found by GCC 4.5.2's static checks.
15573
15574 * process.c (make_serial_process_unwind, send_process_trap):
15575 (sigchld_handler): Now static.
15576
15577 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
15578 That way, the code declares only the vars that it needs.
15579 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
15580 * s/cygwin.h (PTY_ITERATION): Likewise.
15581 * s/darwin.h (PTY_ITERATION): Likewise.
15582 * s/gnu-linux.h (PTY_ITERATION): Likewise.
15583
15584 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
15585 * process.c (allocate_pty): Don't declare stb unless it's needed.
15586
15587 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
15588 (CONSTANTLIM): Remove; unused.
15589 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
15590 Define only if needed.
15591
15592 * unexelf.c (unexec): Name an expression,
15593 to avoid gcc -Wbad-function-cast warning.
15594 Use a different way to cause a compilation error if anyone uses
15595 n rather than nn, a way that does not involve shadowing.
15596 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
15597
15598 * deps.mk (unexalpha.o): Remove; unused.
15599
15600 New file unexec.h, the (simple) interface for unexec (Bug#8267).
15601 * unexec.h: New file.
15602 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
15603 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
15604 Depend on unexec.h.
15605 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
15606 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
15607 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
15608 Change as necessary to match prototype in unexec.h.
15609
15610 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
15611 shadowing.
15612 (back_comment, skip_chars): Mark vars as initialized.
15613
15614 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
15615 Rename locals to avoid shadowing.
15616
15617 * lread.c (read1): Rewrite so as not to use empty "else".
15618 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
15619
15620 * print.c (Fredirect_debugging_output): Fix pointer signedess.
15621
15622 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
15623 warning when compiling print.c.
15624
15625 * font.c (font_unparse_fcname): Abort in an "impossible" situation
15626 instead of using an uninitialized var.
15627 (font_sort_entities): Mark var as initialized.
15628
15629 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
15630
15631 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
15632 pointers to constants.
15633 (font_parse_fcname): Remove unused vars.
15634 (font_delete_unmatched): Now static.
15635 (font_get_spec): Remove; unused.
15636 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
15637 (font_update_drivers, Ffont_get_glyphs, font_add_log):
15638 Rename or move locals to avoid shadowing.
15639
15640 * fns.c (require_nesting_list, require_unwind): Now static.
15641 (Ffillarray): Rename locals to avoid shadowing.
15642
15643 * floatfns.c (domain_error2): Define only if needed.
15644 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
15645
15646 * alloc.c (mark_backtrace): Move decl from here ...
15647 * lisp.h: ... to here, so that it can be checked.
15648
15649 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
15650 (Fdefvar): Rewrite so as not to use empty "else".
15651 (lisp_indirect_variable): Name an expression,
15652 to avoid gcc -Wbad-function-cast warning.
15653 (Fdefvar): Rename locals to avoid shadowing.
15654
15655 * callint.c (quotify_arg, quotify_args): Now static.
15656 (Fcall_interactively): Rename locals to avoid shadowing.
15657 Use const pointer when appropriate.
15658
15659 * lisp.h (get_system_name, get_operating_system_release):
15660 Move decls here, to check interfaces.
15661 * process.c (get_operating_system_release): Move decl to lisp.h.
15662 * xrdb.c (get_system_name): Likewise.
15663 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
15664 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
15665 some of which prompt warnings from gcc -Wbad-function-cast.
15666 (Fformat_time_string, Fencode_time, Finsert_char):
15667 (Ftranslate_region_internal, Fformat):
15668 Rename or remove local vars to avoid shadowing.
15669 (Ftranslate_region_internal): Mark var as initialized.
15670
15671 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
15672 avoid shadowing.
15673
15674 * lisp.h (eassert): Check that the argument compiles, even if
15675 ENABLE_CHECKING is not defined.
15676
15677 * data.c (Findirect_variable): Name an expression, to avoid
15678 gcc -Wbad-function-cast warning.
15679 (default_value, arithcompare, arith_driver, arith_error): Now static.
15680 (store_symval_forwarding): Rename local to avoid shadowing.
15681 (Fmake_variable_buffer_local, Fmake_local_variable):
15682 Mark variables as initialized.
15683 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
15684
15685 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
15686 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
15687 Rename locals to avoid shadowing.
15688 (mark_stack): Move local variables into the #ifdef region where
15689 they're used.
15690 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
15691 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
15692 needed otherwise.
15693 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
15694 (GC_STRING_CHARS): Remove; not used.
15695 (Fmemory_limit): Cast sbrk's returned value to char *.
15696
15697 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
15698 avoids undefined behavior in theory.
15699
15700 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
15701
15702 Use functions, not macros, for up- and down-casing (Bug#8254).
15703 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
15704 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
15705 to use the following functions instead of these macros.
15706 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
15707 EMACS_INT, since callers assume the returned value fits in int.
15708 (upcase1): Likewise, for UPCASE_TABLE.
15709 (uppercasep, lowercasep, upcase): New static inline functions.
15710 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
15711 the race-condition problem in the old DOWNCASE.
15712
15713 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
15714 Rename locals to avoid shadowing.
15715 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
15716 (regex_compile, re_search_2, re_match_2_internal):
15717 Remove unused local vars.
15718 (FREE_VAR): Rewrite so as not to use empty "else",
15719 which gcc can warn about.
15720 (regex_compile, re_match_2_internal): Mark locals as initialized.
15721 (RETALLOC_IF): Define only if needed.
15722 (WORDCHAR_P): Likewise. This one is never needed, but is used
15723 only in a comment talking about a compiler bug, so put inside
15724 the #if 0 of that comment.
15725 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
15726 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
15727 Remove; unused.
15728
15729 * search.c (boyer_moore): Rename locals to avoid shadowing.
15730 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
15731 (PREV_CHAR_BOUNDARY): Likewise.
15732
15733 * search.c (simple_search): Remove unused var.
15734
15735 * dired.c (compile_pattern): Move decl from here ...
15736 * lisp.h: ... to here, so that it can be checked.
15737 (struct re_registers): New forward decl.
15738
15739 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
15740
15741 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
15742 All uses changed.
15743 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
15744 Rename locals to avoid shadowing.
15745 (Fvertical_motion): Mark locals as initialized.
15746
15747 * casefiddle.c (casify_object, casify_region): Now static.
15748 (casify_region): Mark local as initialized.
15749
15750 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
15751
15752 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
15753 New macros, so that the caller can use some names other than
15754 gcpro1, gcpro2, etc.
15755 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
15756 of the new macros.
15757 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
15758 argument, for consistency with GCPRO2_VAR, etc: it is now the
15759 prefix of the variable, not the variable itself. All uses
15760 changed.
15761 * dired.c (directory_files_internal, file_name_completion):
15762 Rename locals to avoid shadowing.
15763
15764 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
15765 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
15766 dired.c's scmp function, had undefined behavior.
15767 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
15768 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
15769 * buffer.h: ... to here, because these macros use current_buffer,
15770 and the new implementation with inline functions needs to have
15771 current_buffer in scope now, rather than later when the macros
15772 are used.
15773 (downcase, upcase1): New static inline functions.
15774 (DOWNCASE, UPCASE1): Reimplement using these functions.
15775 This avoids undefined behavior in expressions like
15776 DOWNCASE (x) == DOWNCASE (y), which previously suffered
15777 from race conditions in accessing the global variables
15778 case_temp1 and case_temp2.
15779 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
15780 * lisp.h (case_temp1, case_temp2): Remove their decls.
15781 * character.h (ASCII_CHAR_P): Move from here ...
15782 * lisp.h: ... to here, so that the inline functions mentioned
15783 above can use them.
15784
15785 * dired.c (directory_files_internal_unwind): Now static.
15786
15787 * fileio.c (file_name_as_directory, directory_file_name):
15788 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
15789 Now static.
15790 (file_name_as_directory): Use const pointers when appropriate.
15791 (Fexpand_file_name): Likewise. In particular, newdir might
15792 point at constant storage, so make it a const pointer.
15793 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
15794 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
15795 signedness issues.
15796 (Fset_file_times, Finsert_file_contents, auto_save_error):
15797 Rename locals to avoid shadowing.
15798
15799 * minibuf.c (choose_minibuf_frame_1): Now static.
15800 (Ftry_completion, Fall_completions): Rename or remove locals
15801 to avoid shadowing.
15802
15803 * marker.c (bytepos_to_charpos): Remove; unused.
15804
15805 * lisp.h (verify_bytepos, count_markers): New decls,
15806 so that gcc does not warn that these functions aren't declared.
15807
15808 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
15809 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
15810 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
15811 (copy_text): Remove unused local var.
15812
15813 * filelock.c (within_one_second): Now static.
15814 (lock_file_1): Rename local to avoid shadowing.
15815
15816 * buffer.c (fix_overlays_before): Mark locals as initialized.
15817 (fix_start_end_in_overlays): Likewise. This function should be
15818 simplified by using pointers-to-pointers, but that's a different
15819 matter.
15820 (switch_to_buffer_1): Now static.
15821 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
15822 (report_overlay_modification): Rename locals to avoid shadowing.
15823
15824 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
15825 Fix pointer signedness issue.
15826 (sys_subshell): Mark local as volatile if checking for lint,
15827 to suppress a gcc -Wclobbered warning that does not seem to be right.
15828 (MAXPATHLEN): Define only if needed.
15829
15830 * process.c (serial_open, serial_configure): Move decls from here ...
15831 * systty.h: ... to here, so that they can be checked.
15832
15833 * fns.c (get_random, seed_random): Move extern decls from here ...
15834 * lisp.h: ... to here, so that they can be checked.
15835
15836 * sysdep.c (reset_io): Now static.
15837 (wait_for_termination_signal): Remove; unused.
15838
15839 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
15840 (copy_keymap_item, append_key, push_text_char_description):
15841 Now static.
15842 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
15843 (DENSE_TABLE_SIZE): Remove; unused.
15844 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
15845 (describe_map_tree):
15846 Rename locals to avoid shadowing.
15847
15848 * keyboard.c: Declare functions static if they are not used elsewhere.
15849 (echo_char, echo_dash, cmd_error, top_level_2):
15850 (poll_for_input, handle_async_input): Now static.
15851 (read_char, kbd_buffer_get_event, make_lispy_position):
15852 (make_lispy_event, make_lispy_movement, apply_modifiers):
15853 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
15854 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
15855 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
15856 (read_key_sequence, read_char): Mark locals as initialized.
15857 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
15858
15859 * keyboard.h (make_ctrl_char): New decl.
15860 (mark_kboards): Move decl here ...
15861 * alloc.c (mark_kboards): ... from here.
15862
15863 * lisp.h (force_auto_save_soon): New decl.
15864
15865 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
15866 (DEFINE_DUMMY_FUNCTION): New macro.
15867 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
15868 Use it.
15869 (main): Add casts to avoid warnings
15870 if GCC considers string literals to be constants.
15871
15872 * lisp.h (fatal_error_signal): Add decl, since it's exported.
15873
15874 * dbusbind.c: Pointer signedness fixes.
15875 (xd_signature, xd_append_arg, xd_initialize):
15876 (Fdbus_call_method, Fdbus_call_method_asynchronously):
15877 (Fdbus_method_return_internal, Fdbus_method_error_internal):
15878 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
15879 (Fdbus_register_signal): Use SSDATA when the context wants char *.
15880
15881 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
15882 if GCC considers string literals to be constants.
15883 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
15884
15885 2011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
15886
15887 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
15888 (print_preprocess, print_object): New macro to fix last change.
15889
15890 * print.c (print_preprocess): Don't forget font objects.
15891
15892 2011-03-16 Juanma Barranquero <lekktu@gmail.com>
15893
15894 * emacs.c (USAGE3): Doc fixes.
15895
15896 2011-03-15 Andreas Schwab <schwab@linux-m68k.org>
15897
15898 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
15899 structure.
15900
15901 2011-03-14 Juanma Barranquero <lekktu@gmail.com>
15902
15903 * lisp.h (VWindow_system, Qfile_name_history):
15904 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
15905 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
15906 (w32_system_caret_x, w32_system_caret_y): Declare extern.
15907
15908 * w32select.c: Don't #include "keyboard.h".
15909 (run_protected): Add extern declaration for waiting_for_input.
15910
15911 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
15912 * w32console.c (detect_input_pending, read_input_pending)
15913 (encode_terminal_code):
15914 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
15915 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
15916 (w32_system_caret_y, Qfile_name_history):
15917 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
15918 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
15919 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
15920 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
15921 * w32proc.c (Qlocal, report_file_error):
15922 * w32term.c (Vwindow_system, updating_frame):
15923 * w32uniscribe.c (initialized, uniscribe_font_driver):
15924 Remove unneeded extern declarations.
15925
15926 2011-03-14 Chong Yidong <cyd@stupidchicken.com>
15927
15928 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
15929
15930 2011-03-13 Chong Yidong <cyd@stupidchicken.com>
15931
15932 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
15933 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
15934 These macros can no longer be used for assignment.
15935
15936 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
15937 Assign struct members directly, instead of using BUF_BEGV etc.
15938 (record_buffer_markers, fetch_buffer_markers): New functions for
15939 recording and fetching special buffer markers.
15940 (set_buffer_internal_1, set_buffer_temp): Use them.
15941
15942 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
15943
15944 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
15945
15946 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
15947 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
15948
15949 * xdisp.c (hscroll_window_tree):
15950 (reconsider_clip_changes): Use PT instead of BUF_PT.
15951
15952 2011-03-13 Eli Zaretskii <eliz@gnu.org>
15953
15954 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
15955 $(EMACS_ROOT)/lib/intprops.h.
15956
15957 2011-03-13 Paul Eggert <eggert@cs.ucla.edu>
15958
15959 Fix more problems found by GCC 4.5.2's static checks.
15960
15961 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
15962 to unsigned char * to avoid compiler diagnostic.
15963 (xg_free_frame_widgets): Make it clear that a local variable is
15964 needed only if USE_GTK_TOOLTIP.
15965 (gdk_window_get_screen): Make it clear that this macro is needed
15966 only if USE_GTK_TOOLTIP.
15967 (int_gtk_range_get_value): New function, which avoids a diagnostic
15968 from gcc -Wbad-function-cast.
15969 (xg_set_toolkit_scroll_bar_thumb): Use it.
15970 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
15971 diagnostic from gcc -Wbad-function-cast.
15972 (get_utf8_string, xg_get_file_with_chooser):
15973 Rename locals to avoid shadowing.
15974 (create_dialog): Move locals to avoid shadowing.
15975
15976 * xgselect.c (xg_select): Remove unused var.
15977
15978 * image.c (four_corners_best): Mark locals as initialized.
15979 (gif_load): Initialize transparent_p to zero (Bug#8238).
15980 Mark another local as initialized.
15981 (my_png_error, my_error_exit): Mark with NO_RETURN.
15982
15983 * image.c (clear_image_cache): Now static.
15984 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
15985 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
15986 (x_edge_detection): Remove unnecessary cast that
15987 gcc -Wbad-function-cast diagnoses.
15988 (gif_load): Fix pointer signedness.
15989 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
15990 (jpeg_load, gif_load): Rename locals to avoid shadowing.
15991
15992 2011-03-12 Paul Eggert <eggert@cs.ucla.edu>
15993
15994 Improve quality of tests for time stamp overflow.
15995 For example, without this patch (encode-time 0 0 0 1 1
15996 1152921504606846976) returns the obviously-bogus value (-948597
15997 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
15998 reports time overflow. See
15999 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
16000 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
16001 * editfns.c: Include limits.h and intprops.h.
16002 (TIME_T_MIN, TIME_T_MAX): New macros.
16003 (time_overflow): Move earlier, to before first use.
16004 (hi_time, lo_time): New functions, for an accurate test for
16005 out-of-range times.
16006 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
16007 (Fget_internal_run_time): Don't assume time_t fits in int.
16008 (make_time): Use list2 instead of Fcons twice.
16009 (Fdecode_time): More accurate test for out-of-range times.
16010 (check_tm_member): New function.
16011 (Fencode_time): Use it, to test for out-of-range times.
16012 (lisp_time_argument): Don't rely on undefined left-shift and
16013 right-shift behavior when checking for time stamp overflow.
16014
16015 * editfns.c (time_overflow): New function, refactoring common code.
16016 (Fformat_time_string, Fdecode_time, Fencode_time):
16017 (Fcurrent_time_string): Use it.
16018
16019 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
16020 * dired.c (make_time): Move to ...
16021 * editfns.c (make_time): ... here.
16022 * systime.h: Note the move.
16023
16024 2011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
16025
16026 * fringe.c (update_window_fringes): Remove unused variables.
16027
16028 * unexmacosx.c (copy_data_segment): Also copy __got section.
16029 (Bug#8223)
16030
16031 2011-03-12 Eli Zaretskii <eliz@gnu.org>
16032
16033 * termcap.c [MSDOS]: Include "msdos.h".
16034 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
16035 Constify `char *' arguments and their references according to
16036 prototypes in tparam.h.
16037
16038 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
16039
16040 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
16041 Adapt all references accordingly.
16042
16043 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
16044
16045 2011-03-11 Tom Tromey <tromey@redhat.com>
16046
16047 * buffer.c (syms_of_buffer): Remove obsolete comment.
16048
16049 2011-03-11 Eli Zaretskii <eliz@gnu.org>
16050
16051 * termhooks.h (encode_terminal_code): Declare prototype.
16052
16053 * msdos.c (encode_terminal_code): Don't declare prototype.
16054
16055 * term.c (encode_terminal_code): Now external again, used by
16056 w32console.c and msdos.c.
16057
16058 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
16059 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
16060
16061 2011-03-11 Paul Eggert <eggert@cs.ucla.edu>
16062
16063 Fix some minor problems found by GCC 4.5.2's static checks.
16064
16065 * fringe.c (update_window_fringes): Mark locals as initialized
16066 (Bug#8227).
16067 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
16068
16069 * alloc.c (mark_fringe_data): Move decl from here ...
16070 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
16071 to check its interface.
16072 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
16073
16074 * fontset.c (free_realized_fontset): Now static.
16075 (Fset_fontset_font): Rename local to avoid shadowing.
16076 (fontset_font): Mark local as initialized.
16077 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
16078
16079 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
16080
16081 * xselect.c (x_disown_buffer_selections): Remove; not used.
16082 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
16083 (x_own_selection, Fx_disown_selection_internal): Rename locals
16084 to avoid shadowing.
16085 (x_handle_dnd_message): Remove local to avoid shadowing.
16086
16087 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
16088 so that the caller can use some name other than gcpro1.
16089 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
16090 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
16091 (Fx_backspace_delete_keys_p):
16092 Use them to avoid shadowing, and rename vars to avoid shadowing.
16093 (x_decode_color, x_set_name, x_window): Now static.
16094 (Fx_create_frame): Add braces to silence GCC warning.
16095 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
16096 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
16097 Remove unused locals.
16098 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
16099 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
16100 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
16101 macros.
16102
16103 * xterm.h (x_mouse_leave): New decl.
16104
16105 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
16106 Remove unused functions.
16107 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
16108 (x_calc_absolute_position): Now static.
16109 (XTread_socket): Don't define label "out" unless it's used.
16110 Don't declare local "event" unless it's used.
16111 (x_iconify_frame, x_free_frame_resources): Don't declare locals
16112 unless they are used.
16113 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
16114 (x_fatal_error_signal): Remove; not used.
16115 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
16116 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
16117 (x_error_catcher, x_connection_closed, x_error_handler):
16118 (x_error_quitter, xembed_send_message, x_iconify_frame):
16119 (my_log_handler): Rename locals to avoid shadowing.
16120 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
16121 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
16122
16123 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
16124 Rename or move locals to avoid shadowing.
16125 (tty_defined_color, merge_face_heights): Now static.
16126 (free_realized_faces_for_fontset): Remove; not used.
16127 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
16128 does not deduce is never used uninitialized.
16129 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
16130 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
16131
16132 * terminal.c (store_terminal_param): Now static.
16133
16134 * xmenu.c (menu_highlight_callback): Now static.
16135 (set_frame_menubar): Remove unused local.
16136 (xmenu_show): Rename parameter to avoid shadowing.
16137 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
16138 since they might point to immutable storage.
16139 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
16140 since it's unused otherwise.
16141
16142 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
16143 Add a FIXME, since the code still doesn't look right. (Bug#8215)
16144 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
16145 avoids a gcc -Wuninitialized diagnostic.
16146 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
16147 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
16148 does not deduce are never used uninitialized.
16149
16150 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
16151
16152 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
16153 * window.c (window_loop, size_window):
16154 (run_window_configuration_change_hook, enlarge_window): Likewise.
16155
16156 * window.c (display_buffer): Now static.
16157 (size_window): Mark variables that gcc -Wuninitialized
16158 does not deduce are never used uninitialized.
16159 * window.h (check_all_windows): New decl, to forestall
16160 gcc -Wmissing-prototypes diagnostic.
16161 * dispextern.h (bidi_dump_cached_states): Likewise.
16162
16163 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
16164 shadowing.
16165 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
16166 Include <limits.h>.
16167 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
16168 and to avoid gcc -Wuninitialized warning.
16169 (load_charset_map): Mark variables that gcc -Wuninitialized
16170 does not deduce are never used uninitialized.
16171 (load_charset): Abort instead of using uninitialized var (Bug#8229).
16172
16173 * coding.c (coding_set_source, coding_set_destination):
16174 Use "else { /* comment */ }" rather than "else /* comment */;"
16175 for clarity, and to avoid gcc -Wempty-body warning.
16176 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
16177 a block, when the outer 'i' will do.
16178 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
16179 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
16180 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
16181 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
16182 (Fdecode_sjis_char, Fdefine_coding_system_internal):
16183 Rename locals to avoid shadowing.
16184 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
16185 * coding.c (emacs_mule_char, encode_invocation_designation):
16186 Now static, since they're not used elsewhere.
16187 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
16188 (decode_coding_object, encode_coding_object, detect_coding_system):
16189 (decode_coding_emacs_mule): Mark variables that gcc
16190 -Wuninitialized does not deduce are never used uninitialized.
16191 (detect_coding_iso_2022): Initialize a local variable that might
16192 be used uninitialized. Leave a FIXME because it's not clear that
16193 this initialization is needed. (Bug#8211)
16194 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
16195 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
16196 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
16197 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
16198 Remove unused macros.
16199
16200 * category.c (hash_get_category_set): Remove unused local var.
16201 (copy_category_table): Now static, since it's not used elsewhere.
16202 * character.c (string_count_byte8): Likewise.
16203
16204 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
16205 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
16206
16207 * chartab.c (copy_sub_char_table): Now static, since it's not used
16208 elsewhere.
16209 (sub_char_table_ref_and_range, char_table_ref_and_range):
16210 Rename locals to avoid shadowing.
16211 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
16212
16213 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
16214 (BIDI_BOB): Remove unused macro.
16215
16216 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
16217 deduce are never used uninitialized.
16218 * term.c (encode_terminal_code): Likewise.
16219
16220 * term.c (encode_terminal_code): Now static. Remove unused local.
16221
16222 * tparam.h: New file.
16223 * term.c, tparam.h: Include it.
16224 * deps.mk (term.o, tparam.o): Depend on tparam.h.
16225 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
16226 Move these decls to tparam.h, and make them agree with what
16227 is actually in tparam.c. The previous trick of using incompatible
16228 decls in different modules does not conform to the C standard.
16229 All callers of tparam changed to use tparam's actual API.
16230 * tparam.c (tparam1, tparam, tgoto):
16231 Use const pointers where appropriate.
16232
16233 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
16234 * cm.h (struct cm): Likewise.
16235 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
16236 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
16237 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
16238 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
16239 (turn_on_face, init_tty): Likewise.
16240 * termchar.h (struct tty_display_info): Likewise.
16241
16242 * term.c (term_mouse_position): Rename local to avoid shadowing.
16243
16244 * alloc.c (mark_ttys): Move decl from here ...
16245 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
16246
16247 2011-03-11 Andreas Schwab <schwab@linux-m68k.org>
16248
16249 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
16250
16251 2011-03-09 Juanma Barranquero <lekktu@gmail.com>
16252
16253 * search.c (compile_pattern_1): Remove argument regp, unused since
16254 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
16255 (compile_pattern): Don't pass it.
16256
16257 2011-03-08 Jan Djärv <jan.h.d@swipnet.se>
16258
16259 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
16260 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
16261 for ! HAVE_GTK3.
16262 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
16263
16264 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
16265
16266 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
16267 gdk_window_get_screen, gdk_window_get_geometry,
16268 gdk_x11_window_lookup_for_display and GDK_KEY_g.
16269 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
16270 (xg_get_pixbuf_from_pixmap): New function.
16271 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
16272 to Pixmap, take frame as parameter, remove GdkColormap parameter.
16273 Call xg_get_pixbuf_from_pixmap instead of
16274 gdk_pixbuf_get_from_drawable.
16275 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
16276 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
16277 (xg_check_special_colors): Use GtkStyleContext and its functions
16278 for HAVE_GTK3.
16279 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
16280 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
16281 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
16282 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
16283 Call gtk_widget_get_preferred_size.
16284 (xg_frame_resized): gdk_window_get_geometry only takes 5
16285 parameters.
16286 (xg_win_to_widget, xg_event_is_for_menubar):
16287 Call gdk_x11_window_lookup_for_display.
16288 (xg_set_widget_bg): New function.
16289 (delete_cb): New function.
16290 (xg_create_frame_widgets): Connect delete-event to delete_cb.
16291 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
16292 (xg_set_background_color): Call xg_set_widget_bg.
16293 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
16294 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
16295 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
16296 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
16297 if ! HAVE_GTK3.
16298 (update_frame_tool_bar): Call gtk_widget_hide.
16299 (xg_initialize): Use GDK_KEY_g.
16300
16301 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
16302 if ! HAVE_GTK3
16303 (x_session_initialize): Call gdk_x11_set_sm_client_id.
16304
16305 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
16306 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
16307 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
16308
16309 2011-03-08 Juanma Barranquero <lekktu@gmail.com>
16310
16311 * w32xfns.c (select_palette): Check success of RealizePalette against
16312 GDI_ERROR, not zero.
16313
16314 See ChangeLog.11 for earlier changes.
16315
16316 ;; Local Variables:
16317 ;; coding: utf-8
16318 ;; End:
16319
16320 Copyright (C) 2011-2012 Free Software Foundation, Inc.
16321
16322 This file is part of GNU Emacs.
16323
16324 GNU Emacs is free software: you can redistribute it and/or modify
16325 it under the terms of the GNU General Public License as published by
16326 the Free Software Foundation, either version 3 of the License, or
16327 (at your option) any later version.
16328
16329 GNU Emacs is distributed in the hope that it will be useful,
16330 but WITHOUT ANY WARRANTY; without even the implied warranty of
16331 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16332 GNU General Public License for more details.
16333
16334 You should have received a copy of the GNU General Public License
16335 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.