* src/eval.c (Fdefvar): Don't check constants since we only set the var if
[bpt/emacs.git] / src / ChangeLog
CommitLineData
464d5a5e
SM
12012-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
2
5fbc0409
SM
3 * eval.c (Fdefvar): Don't check constants since we only set the var if
4 it's not yet defined anyway (bug#11904).
5
464d5a5e
SM
6 * lisp.h (last_undo_boundary): Declare new var.
7 * keyboard.c (command_loop_1): Set it.
8 * cmds.c (Fself_insert_command): Use it to only remove boundaries that
9 were auto-added by the command loop (bug#11774).
10
8dc2e44a
AS
112012-07-18 Andreas Schwab <schwab@linux-m68k.org>
12
13 * w32font.c (Qsymbol): Remove local definition.
14 (syms_of_w32font): Don't DEFSYM it.
15
169925ec
DA
162012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
17
18 Fix sweep_vectors to handle large bool vectors correctly.
19 * alloc.c (sweep_vectors): Account total_vector_bytes for
20 bool vectors larger than VBLOCK_BYTES_MAX.
21
5fbfb018
CY
222012-07-18 Chong Yidong <cyd@gnu.org>
23
24 * frame.c (x_set_frame_parameters): Revert bogus change introduced
25 in 2012-05-25 commit by Paul Eggert (Bug#11738).
26
3ab6e069
DA
272012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
28
29 Return more descriptive data from Fgarbage_collect.
30 Suggested by Stefan Monnier in
31 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00369.html.
32 * alloc.c (bounded_number): New function.
33 (total_buffers, total_vectors): New variable.
34 (total_string_size): Rename to total_string_bytes, adjust users.
35 (total_vector_size): Rename to total_vector_bytes, adjust users.
36 (sweep_vectors): Account total_vectors and total_vector_bytes.
37 (Fgarbage_collect): New return value. Adjust documentation.
38 (gc_sweep): Account total_buffers.
39 (Fmemory_free, Fmemory_use_counts): Use bounded_number.
40 (VECTOR_SIZE): Remove.
41 * data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global.
42 (Qinterval, Qmisc): New symbols.
43 (syms_of_data): Initialize them.
44 * lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat)
45 (Qcons, Qbuffer): New declarations.
46
6d02fe5b
PE
472012-07-17 Paul Eggert <eggert@cs.ucla.edu>
48
49 * alloc.c (Fmemory_free): Account for memory-free's own storage.
50 Round up, not down. Improve doc.
51
b7ffe040
DA
522012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
53
54 Restore old code in allocate_string_data to avoid Faset breakage.
55 Reported by Julien Danjou <julien@danjou.info> in
56 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00371.html.
57 * alloc.c (allocate_string_data): Restore old code with minor
58 adjustments, fix comment to explain this subtle issue.
59
4dc7c8d5
SM
602012-07-17 Eli Zaretskii <eliz@gnu.org>
61
62 Remove FILE_SYSTEM_CASE.
63 * s/msdos.h (FILE_SYSTEM_CASE): Don't define.
64
65 * fileio.c (FILE_SYSTEM_CASE): Don't define.
66 (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE.
67 Fixes problems on MS-DOS with Vtemp_file_name_pattern when
68 call-process-region passes it through expand-file-name.
69
70 * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE.
71
722012-07-17 Andreas Schwab <schwab@linux-m68k.org>
73
74 Fix crash when creating indirect buffer (Bug#11917)
75 * buffer.c (buffer_lisp_local_variables): Add argument CLONE.
76 Don't handle unbound variables specially if non-zero.
77 (Fbuffer_local_variables): Pass zero.
78 (clone_per_buffer_values): Pass non-zero.
79
802012-07-17 Andreas Schwab <schwab@linux-m68k.org>
81
82 * gnutls.c (emacs_gnutls_handshake): Revert last change. Add QUIT
83 to make the loop interruptible.
84
852012-07-17 Andreas Schwab <schwab@linux-m68k.org>
86
87 * gnutls.c (emacs_gnutls_handshake): Only retry if
88 GNUTLS_E_INTERRUPTED.
89
902012-07-17 Eli Zaretskii <eliz@gnu.org>
cce7fefc
DA
912012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
92
93 Cleanup and convert miscellaneous checks to eassert.
94 * alloc.c (mark_interval): Fix comment, partially rephrase
95 old comment from intervals.h (see below).
96 * intervals.c (find_interval, adjust_intervals_for_insertion)
97 (delete_interval, adjust_intervals_for_deletion)
98 (graft_intervals_into_buffer, temp_set_point_both, copy_intervals):
99 Convert to eassert.
100 (adjust_intervals_for_insertion, make_new_interval):
101 Remove obsolete and unused code.
102 * intervals.h (struct interval): Remove obsolete comment.
103 * textprotp.c (erase_properties): Remove unused code.
104 (Fadd_text_properties, set_text_properties_1, Fremove_text_properties)
105 (Fremove_list_of_text_properties): Convert to eassert.
106
9ea10cc3
CY
1072012-07-17 Chong Yidong <cyd@gnu.org>
108
109 * editfns.c (Finsert_char): Doc fix.
110
3900d5de
DA
1112012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
112
113 Fix previous change to make Fmemory_free always accurate.
114 * alloc.c (make_interval): Update total_free_intervals.
115 (make_float): Likewise for total_free_floats.
116 (free_cons, Fcons): Likewise for total_free_conses.
117 (SETUP_ON_FREE_LIST, allocate_vector_from_block):
118 Likewise for total_free_vector_bytes.
119 (Fmake_symbol): Likewise for total_free_symbols.
120 (bytes_free): Remove.
121
7098646f
DA
1222012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
123
124 Simple free memory accounting feature.
125 * alloc.c (bytes_free, total_free_vector_bytes): New variable.
126 (sweep_vectors): Accumulate size of free vectors.
127 (Fgarbage_collect): Setup bytes_free.
128 (Fmemory_free): New function.
129 (syms_of_alloc): Register it.
130
22657b40
DA
1312012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
132
133 Cleanup overlays checking.
134 * buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP.
135 * buffer.c (overlay_touches_p, recenter_overlay_lists): Change to
136 eassert and OVERLAYP.
137 (sort_overlays): Change to use OVERLAYP.
138
ddfc8813
RK
1392012-07-16 René Kyllingstad <Rene@Kyllingstad.com> (tiny change)
140
141 * editfns.c (Finsert_char): Make it interactive, and make the
142 second arg optional. Copy interactive spec and docstring from
143 ucs-insert.
144
7c26cf3c
PE
1452012-07-17 Paul Eggert <eggert@cs.ucla.edu>
146
147 * floatfns.c (Fabs): Do not wrap fabs inside IN_FLOAT (Bug#11913).
148 Unlike the other wrapped functions, fabs has an unspecified
149 effect on errno.
150
5d127af9
JD
1512012-07-16 Jan Djärv <jan.h.d@swipnet.se>
152
153 * nsterm.m (keyDown): Interpret flags without left/right bits
154 as the left key (Bug#11670).
155
6a0dd1d7
DA
1562012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
157
158 Remove empty and useless init functions.
159 * lisp.h (init_character_once, init_fns, init_image)
160 (init_filelock, init_sound): Remove prototype.
161 * character.c (init_character_once): Remove.
162 * filelock.c (init_filelock): Likewise.
163 * fns.c (init_fns): Likewise.
164 * image.c (init_image): Likewise.
165 * sound.c (init_sound): Likewise.
166 * emacs.c (main): Adjust accordingly.
167
7a6136fd
DA
1682012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
169
170 * gtkutil.h: Tiny cleanups.
171 (use_old_gtk_file_dialog): Remove useless declaration.
172 (xg_uses_old_file_dialog): Add suggested const attribute.
173
ce811ad9
EZ
1742012-07-15 Eli Zaretskii <eliz@gnu.org>
175
176 * bidi.c (MAX_STRONG_CHAR_SEARCH): New macro.
177 (bidi_paragraph_init): Use it to limit search forward for a strong
178 directional character in abnormally large paragraphs full of
179 neutral or weak characters. (Bug#11943)
180
c9adfeaa
SF
1812012-07-15 Stefano Facchini <stefano.facchini@gmail.com> (tiny change)
182
183 * gtkutil.c (xg_create_tool_bar): Apply "primary-toolbar" style to
184 the toolbar (Bug#9451).
185 (xg_make_tool_item): Give the widget event box a transparent
186 background.
187
fff62aa9
DA
1882012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
189
190 Cleanup basic allocation variables and functions.
191 * alloc.c (ignore_warnings, init_intervals, init_float)
192 (init_cons, init_symbol, init_marker): Remove.
193 (interval_block_index): Initialize to INTERVAL_BLOCK_SIZE.
194 (float_block_index): Initialize to FLOAT_BLOCK_SIZE.
195 (cons_block_index): Initialize to CONS_BLOCK_SIZE.
196 (symbol_block_size): Initialize to SYMBOL_BLOCK_SIZE.
197 (marker_block_index): Initialize to MARKER_BLOCK_SIZE.
198 (staticidx, init_alloc_once, init_strings, free_ablock):
199 Remove redundant initialization.
200 * fns.c (init_weak_hash_tables): Remove.
201 * lisp.h (init_weak_hash_tables): Remove prototype.
202
9730daca
DA
2032012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
204
205 Use zero_vector where appropriate.
206 * alloc.c (zero_vector): Define as Lisp_Object. Adjust users
207 accordingly.
208 * lisp.h (zero_vector): New declaration.
209 * font.c (null_vector): Remove.
210 (syms_of_font): Remove initialization and staticpro.
211 (font_list_entities, font_find_for_lface): Change to use zero_vector.
212 * keymap.c (Faccessible_keymaps): Likewise.
213
2e2d2a13
LL
2142012-07-15 Leo Liu <sdl.web@gmail.com>
215
216 * fringe.c: Fix typo in comments.
217
cd276f6e
LL
2182012-07-14 Leo Liu <sdl.web@gmail.com>
219
220 * fringe.c: Add a new bitmap exclamation-mark.
221
5a1131d9
EZ
2222012-07-14 Eli Zaretskii <eliz@gnu.org>
223
224 * gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference.
225
226 * s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE)
227 (HAVE_MENUS): Don't define, defined by editing config.in with
228 msdos/sed2v2.inp.
229 (GMALLOC_INHIBIT_VALLOC): Don't define.
230 (MODE_LINE_BINARY_TEXT): Remove, not used anymore.
231
22e983b7
JB
2322012-07-14 Juanma Barranquero <lekktu@gmail.com>
233
234 * s/ms-w32.h (GC_SETJMP_WORKS, GC_MARK_STACK): Set in nt/config.nt.
235
5b3f250f
GM
2362012-07-14 Glenn Morris <rgm@gnu.org>
237
238 * s/aix4-2.h, s/freebsd.h, s/gnu-linux.h, s/hpux10-20.h:
239 * s/irix6-5.h, s/netbsd.h, s/sol2-6.h, s/unixware.h:
240 Let configure set GC_SETJMP_WORKS, GC_MARK_STACK.
241
33d63ff4
GM
2422012-07-13 Glenn Morris <rgm@gnu.org>
243
5b633342
GM
244 * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Let configure set it.
245
33d63ff4
GM
246 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Let configure set it.
247 * s/irix6-5.h (SETUP_SLAVE_PTY): No more need to unset it.
248
b55b9f85
JD
2492012-07-13 Jan Djärv <jan.h.d@swipnet.se>
250
0dc8cf50
JD
251 * nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP.
252 (x_free_frame_resources): Pass x_free_frame_resources to NSTRACE.
253 (ns_lisp_to_color, ns_string_to_lispmod, ns_term_init)
254 (ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA
255 where appropriate.
256 (ns_exec_path, ns_load_path, changeFont): Put () around assignment used
257 as boolean expression.
258 (x_set_window_size): Remove unused variable toolbar.
259 (ns_get_color_default, ns_mod_to_lisp): Remove.
260 (ns_mouse_position): Remove unused variables xchar and ychar.
261 (ns_compute_glyph_string_overhangs): Remove unused variable face.
262 (ns_set_vertical_scroll_bar): Remove unused variable count.
263 (ns_delete_terminal): Remove unused variable i.
264 (ns_term_init): Remove unused variables r, g and b.
265 (mouseDown): Remove unused variable window.
266 (windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP.
267 (initFrameFromEmacs): Remove unused variable vbextra.
268 (mouseEntered): Remove unused variables p and dpyinfo.
269 (mouseExited): Remove unused variables p and r.
270 (ns_define_frame_cursor, ns_clear_frame_area)
271 (ns_draw_window_cursor, ns_initialize_display_info): Make static.
272 (menuDown): Assign [sender tag] to variable and cast the variable.
273
274 * nsterm.h (menuDown): Add id as type to argument sender.
275 (ns_display_info_for_name): Add Lisp_Object argument.
276 (ns_term_init): Add Lisp_Object argument.
277 (ns_map_event_to_object): Add void argument.
278 (ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct
279 prototype with arguments and only declare if __OBJC__.
280 (nxatoms_of_nsselect): Add void argument.
281 (ns_lisp_to_cursor_type): Add Lisp_Object argument.
282 (ns_alloc_autorelease_pool): Add void argument.
283 (ns_release_autorelease_pool): Add void* argument.
284 (ns_get_defaults_value): Add const char* argument.
285
286 * nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog)
287 (initFromContents): Use SSDATA where appropriate.
288 (ns_update_menubar): Add braces to ambigous if-else.
289 (initWithTitle): Put () around assignment in if statement.
290 (ns_menu_show): Remove unused variables window and keymap.
291 (update_frame_tool_bar): Remove unused variable selected_p.
292 (initWithContentRect): Remove unused variable this_cmd_name.
293
294 * nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where
295 appropriate.
296 (setXBMColor): Remove unused variable len.
297 (setPixmapData): Put () around assignment in loop statement.
298
299 * nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script)
300 (ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA
301 where appropriate.
302 (ns_get_covering_families, ns_findfonts, nsfont_list_family): Put ()
303 around assignment in loop statement.
304 (nsfont_open): Remove unused variable i.
305 (nsfont_open): Remove unused variable len.
306 (nsfont_draw): Remove unused variable cs.
307
308 * nsfns.m (x_set_icon_name, ns_set_name_internal)
309 (ns_set_name_as_filename, ns_implicitly_set_icon_type)
310 (x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name)
311 (Fns_get_resource, Fns_set_resource, Fx_open_connection)
312 (Fns_font_name, Fns_perform_service)
313 (Fns_convert_utf8_nfd_to_nfc, ns_do_applescript)
314 (Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate.
315 (ns_set_name): Remove unused variable view.
316 (x_set_menu_bar_lines): Remove unused variable olines.
317 (x_set_tool_bar_lines): Remove unused variable root_window.
318 (Fns_list_colors): Put () around assignment in while statement.
319 (Fns_perform_service): Remove unused variable len.
320 (Fns_display_usable_bounds): Remove unused variable top.
321 (syms_of_nsfns): Remove unused variable i.
322
b55b9f85
JD
323 * nsmenu.m (ns_update_menubar): Exchange place of argument 2 and 3 to
324 memcpy (Bug#11907).
325
ed9265fc 3262012-07-13 Kalle Kankare <kalle.kankare@iki.fi> (tiny change)
2277de02
JD
327
328 * image.c (Fimagemagick_types): Initialize ex with GetExceptionInfo
329 and free it with DestroyExceptionInfo (Bug#11558).
330
ef099b57
JB
3312012-07-13 Juanma Barranquero <lekktu@gmail.com>
332
333 * s/ms-w32.h (FIRST_PTY_LETTER, HAVE_SOCKETS): Move to nt/config.nt.
334 (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE___BUILTIN_UNWIND_INIT):
335 Set here, not in nt/config.nt.
336
ea814a5d
EZ
3372012-07-13 Eli Zaretskii <eliz@gnu.org>
338
339 * xdisp.c (move_it_in_display_line_to): On GUI terminals, allow
340 cursor overflow into the last glyph on display line when the right
341 fringe is off. (Bug#11832)
342
1a952767
PE
3432012-07-13 Paul Eggert <eggert@cs.ucla.edu>
344
345 * xdisp.c (produce_special_glyphs): Now static.
346 * dispextern.h (produce_special_glyphs): Remove decl.
347
983188fd
GM
3482012-07-13 Glenn Morris <rgm@gnu.org>
349
32fb4bb6
GM
350 * s/bsd-common, s/cygwin.h: Remove empty files.
351 * s/freebsd.h, s/netbsd.h: Do not include bsd-common.h.
352
983188fd
GM
353 * s/usg5-4-common.h (USG, USG5):
354 * s/template.h (USG5, USG, HPUX, BSD4_2, BSD_SYSTEM):
355 * s/sol2-6.h (SOLARIS2):
356 * s/irix6-5.h (IRIX6_5):
357 * s/hpux10-20.h (USG, USG5, HPUX):
358 * s/gnu-linux.h (USG, GNU_LINUX):
359 * s/freebsd.h (BSD_SYSTEM):
360 * s/darwin.h (BSD4_2, BSD_SYSTEM, DARWIN_OS):
361 * s/cygwin.h (CYGWIN):
362 * s/bsd-common.h (BSD_SYSTEM, BSD4_2):
363 * s/aix4-2.h (USG, USG5, _AIX): Move "system type" macros to configure.
364
d1e68667 3652012-07-13 BT Templeton <bpt@hcoop.net> (tiny change)
24ef80ae
PE
366
367 * nsfont.m (ns_charset_covers): Don't abort if no bitmap (Bug#11853).
24ef80ae 368
6de0e799
GM
3692012-07-13 Glenn Morris <rgm@gnu.org>
370
739ae010
GM
371 * s/usg5-4-common.h (NSIG_MINIMUM): Let configure set it.
372
dbee5793
GM
373 * s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE.
374
6de0e799
GM
375 * process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION.
376 * s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro.
377
b82da769
GM
3782012-07-12 Glenn Morris <rgm@gnu.org>
379
4fae5a7a 380 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure.
b82da769
GM
381
382 * process.c (init_process_emacs): Rename from init_process.
383 The old name is also the name of a Mach system call.
384 * lisp.h, emacs.c: Update for this name change.
385 * nsgui.h, sysselect.h, s/darwin.h: Remove workaround that is no
386 longer needed.
387
5a979817
EZ
3882012-07-12 Eli Zaretskii <eliz@gnu.org>
389
390 * xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in
391 memmove call that removes glyphs covered by the left truncation
392 glyph. Improve commentary.
393 (display_line): Fix display of continuation glyphs on GUI frames
394 when the right fringe is turned off and variable-size fonts are
395 used in the window. Move the code that appends a stretch glyph to
396 produce_special_glyphs, so that it could be used for truncation
397 and continuation glyphs alike.
398 (produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch
399 glyph of a suitably computed width, to align the special glyphs at
400 the window margin. Code moved from display_line. (Bug#11832)
401
3e91a053
GM
4022012-07-12 Glenn Morris <rgm@gnu.org>
403
ba9e4b84
GM
404 * s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES.
405
406 * s/gnu-linux.h, s/hpux10-20.h:
407 Do not unconditionally define HAVE_XRMSETDATABASE.
408
3e91a053
GM
409 * s/gnu-linux.h (UNIX98_PTYS): Let configure set it.
410
b300b1f4
PE
4112012-07-12 Paul Eggert <eggert@cs.ucla.edu>
412
413 Fix typos that broke OS X build.
414 Reported by Randal L. Schwartz in
415 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00225.html>.
416 * nsterm.m (ns_timeout): Add missing local decl.
417 (ns_get_color): snprintf -> sprintf, to fix typo.
418
6e777848
GM
4192012-07-12 Glenn Morris <rgm@gnu.org>
420
3f922c37
GM
421 * src/s/aix4-2.h, src/s/cygwin.h, src/s/darwin.h:
422 * src/s/gnu-linux.h, src/s/hpux10-20.h, src/s/irix6-5.h:
423 * src/s/sol2-6.h, src/s/unixware.h, src/s/usg5-4-common.h:
424 Move PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF to configure.
425
0ab7b23a
GM
426 * s/cygwin.h, s/darwin.h, s/gnu-linux.h, s/irix6-5.h:
427 Move PTY_OPEN to configure.
428
6e777848
GM
429 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
430 * s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h, s/template.h:
431 * s/usg5-4-common.h: Move FIRST_PTY_LETTER, PTY_ITERATION to configure.
432
4a7edc24
DA
4332012-07-12 Dmitry Antipov <dmantipov@yandex.ru>
434
435 Use empty_unibyte_string where applicable.
436 * keyboard.c (parse_tool_bar_item): Use empty_unibyte_string.
437 * lread.c (read1): Likewise.
438 * xsettings.c (syms_of_xsettings): Likewise.
439
308aab79
GM
4402012-07-12 Glenn Morris <rgm@gnu.org>
441
42bd1719
GM
442 * s/cygwin.h (G_SLICE_ALWAYS_MALLOC):
443 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN):
7ccad002
GM
444 * s/irix6-5.h (SETPGRP_RELEASES_CTTY, PREFER_VSUSP):
445 * s/hpux10-20.h (RUN_TIME_REMAP):
446 * s/bsd-common.h (TABDLY): Move to configure.
447
448 * s/hpux10-20.h, s/sol2-6.h: Move XOS_NEEDS_TIME_H to configure.
449
450 * s/bsd-common.h, s/darwin.h: Move TAB3 to configure.
451
ea0bbd17 452 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
42bd1719 453 (BROKEN_SIGPOLL, BROKEN_GET_CURRENT_DIR_NAME): Let configure set them.
ea0bbd17
GM
454
455 * s/darwin.h (NO_ABORT, NO_MATHERR): Let configure set them.
51c3b9b4 456
308aab79
GM
457 * s/bsd-common.h, s/cygwin.h, s/gnu-linux.h, s/irix6-5.h:
458 * s/template.h: Move NARROWPROTO to configure.
459
ee1cf5cf
GM
4602012-07-11 Glenn Morris <rgm@gnu.org>
461
30fe9bf4
GM
462 * s/gnu-linux.h, s/sol2-6.h: No longer define POSIX,
463 unused since 2011-01-17 change to systty.h.
464
ee1cf5cf
GM
465 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h, s/gnu-linux.h:
466 * s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
467 Move HAVE_PTYS and HAVE_SOCKETS to configure.
468
63e47e07
PE
4692012-07-11 Paul Eggert <eggert@cs.ucla.edu>
470
471 * s/sol2-6.h (HAVE_LIBKSTAT): Remove. (Bug#11914)
472
c43fb4c3
GM
4732012-07-11 Glenn Morris <rgm@gnu.org>
474
475 * s/darwin.h, s/gnu-linux.h, s/template.h:
476 Move INTERRUPT_INPUT to configure.
477
e8df9267
DA
4782012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
479
480 Minor adjustments to interning code.
481 * lisp.h (intern, intern_c_string): Redefine as static inline
482 wrappers for intern_1 and intern_c_string_1, respectively.
483 (intern_1, intern_c_string_1): Rename prototypes.
2bce5643
DA
484 * lread.c (intern_1, intern_c_string_1, oblookup): Simplify
485 Vobarray checking.
e8df9267
DA
486 * font.c (font_intern_prop): Likewise. Adjust comment.
487 * w32font.c (intern_font_name): Likewise.
488
34348bd4
AS
4892012-07-11 Andreas Schwab <schwab@linux-m68k.org>
490
d96a1e0c
AS
491 * gnutls.c (Fgnutls_boot): Properly parse :keylist argument.
492
34348bd4
AS
493 * coding.c (Fdefine_coding_system_internal): Use XCAR/XCDR instead
494 of Fcar/Fcdr if possible.
495 * font.c (check_otf_features): Likewise.
496 * fontset.c (Fnew_fontset): Likewise.
497 * gnutls.c (Fgnutls_boot): Likewise.
498 * minibuf.c (read_minibuf): Likewise.
499 * msdos.c (IT_set_frame_parameters): Likewise.
500 * xmenu.c (Fx_popup_dialog): Likewise.
501 * w32menu.c (Fx_popup_dialog): Likewise.
502
c8add24e
GM
5032012-07-11 Glenn Morris <rgm@gnu.org>
504
4b575b3c
GM
505 * s/bsd-common.h, s/cygwin.h: No need to undefine INTERRUPT_INPUT,
506 since nothing has defined it on these platforms.
507
09f4e3b0
GM
508 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h:
509 * s/irix6-5.h: Move SIGNALS_VIA_CHARACTERS to configure.
510
172bedef
GM
511 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
512 * s/gnu-linux.h, s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
513 Move CLASH_DETECTION to configure.
514
249685df
GM
515 * s/gnu.h: Remove file, which is now empty.
516
c8add24e
GM
517 * s/gnu.h, s/gnu-linux.h:
518 Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure.
519
b41253a3
JW
5202012-07-11 John Wiegley <johnw@newartisans.com>
521
522 * alloc.c (mark_memory): Guard the "no_address_safety_analysis"
523 function attribute, so we only use it if it exists in the
524 compiler.
525
d923b542
DA
5262012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
527
528 Avoid call to strlen in fast_c_string_match_ignore_case.
529 * search.c (fast_c_string_match_ignore_case): Change to use
530 length argument. Adjust users accordingly.
531 * lisp.h (fast_c_string_match_ignore_case): Adjust prototype.
532
5ebbef1d
PE
5332012-07-11 Paul Eggert <eggert@cs.ucla.edu>
534
bb352260
PE
535 Assume mkdir, rmdir.
536 * sysdep.c (mkdir) [!HAVE_MKDIR]: Remove.
537 * sysdep.c (rmdir) [!HAVE_RMDIR]: Remove.
538
57054ddd
PE
539 Assume rename.
540 * sysdep.c (rename) [!HAVE_RENAME]: Remove.
541
b747d3f7
PE
542 Assume perror.
543 * s/hpux10-20.h (HAVE_PERROR): Remove.
544 * sysdep.c (perror) [HPUX && !HAVE_PERROR]:
545 Remove dummy definition, as this problem was obsolete long ago.
546
5ebbef1d
PE
547 Assume strerror.
548 * sysdep.c (strerror) [!HAVE_STRERROR && !WINDOWSNT]: Remove.
549
984e7f30
DA
5502012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
551
552 Avoid calls to strlen in font processing functions.
553 * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname)
d923b542 554 (font_open_by_name): Change to use length argument. Adjust
984e7f30 555 users accordingly.
d923b542
DA
556 * font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd):
557 Adjust prototypes.
558 * xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd):
559 Change to return ptrdiff_t.
984e7f30
DA
560 (xfont_list_pattern, xfont_match): Use length returned by
561 xfont_decode_coding_xlfd.
562 * xfns.c (x_default_font_parameter): Omit useless xstrdup.
563
20e94fdd
GM
5642012-07-11 Glenn Morris <rgm@gnu.org>
565
9d596af3
GM
566 * s/darwin.h, s/freebsd.h, s/netbsd.h:
567 Move DONT_REOPEN_PTY to configure.
568
20e94fdd
GM
569 * sound.c (DEFAULT_SOUND_DEVICE) [!WINDOWSNT]:
570 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Let configure set it.
571
e99a530f
PE
5722012-07-10 Paul Eggert <eggert@cs.ucla.edu>
573
22ffb973
PE
574 Remove "#define unix" that is no longer needed (Bug#11905).
575 * s/aix4-2.h (unix): Remove; no longer needed.
576
e9a9ae03
PE
577 EMACS_TIME simplification (Bug#11875).
578 This replaces macros (which typically do not work in GDB)
579 with functions, typedefs and enums, making the code easier to debug.
580 The functional style also makes code easier to read and maintain.
581 * systime.h: Include <sys/time.h> on all hosts, not just if
582 WINDOWSNT, since 'struct timeval' is needed in general.
583 (EMACS_TIME): Now a typedef, not a macro.
584 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
585 not macros.
586 (EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
587 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
588 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
589 (EMACS_TIME_LE): Now functions, not macros.
590 (EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
591 (EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
592 which are not functions. All uses rewritten to use:
593 (make_emacs_time): New function.
594 (EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
595 (EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
596 not functions. All uses rewritten to use the following, respectively:
597 (emacs_secs_addr, invalid_emacs_time, get_emacs_time)
598 (add_emacs_time, sub_emacs_time): New functions.
ed9265fc 599 * atimer.c: Don't include <sys/time.h>, as "systime.h" does this.
e9a9ae03
PE
600 * fileio.c (Fcopy_file):
601 * xterm.c (XTflash): Get the current time closer to when it's used.
602 * makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
603
ffacb126
PE
604 * bytecode.c (targets): Suppress -Woverride-init warnings.
605
e99a530f
PE
606 Simplify by avoiding confusing use of strncpy etc.
607 * doc.c (Fsnarf_documentation):
608 * fileio.c (Ffile_name_directory, Fsubstitute_in_file_name):
609 * frame.c (Fmake_terminal_frame):
610 * gtkutil.c (get_utf8_string):
611 * lread.c (openp):
612 * nsmenu.m (ns_update_menubar):
613 * regex.c (regerror):
614 Prefer memcpy to strncpy and strncat when either will do.
615 * fileio.c (Fsubstitute_in_file_name):
616 * keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached)
617 (menu_separator_name_p):
618 * nsmenu.m (ns_update_menubar):
619 Prefer memcmp to strncmp when either will do.
620 * nsterm.m: Include <ftoastr.h>.
621 (ns_get_color):
622 * s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF):
623 Prefer snprintf to strncpy.
624 * nsterm.m (ns_term_init):
625 * widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy.
626 * nsterm.m (ns_term_init):
627 Avoid the need for strncpy, by using build_string or
628 make_unibyte_string directly. Use dtoastr, not snprintf.
629 * process.c (Fmake_network_process): Diagnose service names that
630 are too long, rather than silently truncating them or creating
631 non-null-terminated names.
632 (Fnetwork_interface_info): Likewise, for interface names.
633 * sysdep.c (system_process_attributes) [GNU_LINUX]:
634 Prefer sprintf to strncat.
635 * xdisp.c (debug_method_add) [GLYPH_DEBUG]:
636 Prefer vsnprintf to vsprintf + strncpy.
637
c59592b3
GM
6382012-07-10 Glenn Morris <rgm@gnu.org>
639
640 * dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]:
641 Clarify fallback case.
642
7d7bbefd
DA
6432012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
644
645 Use XCAR and XCDR instead of Fcar and Fcdr where possible.
646 * callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c,
647 * frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c,
d923b542 648 * w32menu.c, window.c, xmenu.c: Change to use XCAR and XCDR
7d7bbefd
DA
649 where argument type is known to be a Lisp_Cons.
650
3a4c8000
TT
6512012-07-10 Tom Tromey <tromey@redhat.com>
652
653 * bytecode.c (BYTE_CODE_THREADED): New macro.
654 (BYTE_CODES): New macro. Replaces all old byte-code defines.
655 (enum byte_code_op): New type.
656 (CASE, NEXT, FIRST, CASE_DEFAULT, CASE_ABORT): New macros.
657 (exec_byte_code): Use them. Use token threading when applicable.
658
2a0213a6
DA
6592012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
660
661 Optimize pure C strings initialization.
662 * lisp.h (make_pure_string): Fix prototype.
663 (build_pure_c_string): New function, defined as static inline. This
664 provides a better opportunity to optimize away calls to strlen when
665 the function is called with compile-time constant argument.
666 * alloc.c (make_pure_c_string): Fix comment. Change to add nchars
667 argument, adjust users accordingly. Use build_pure_c_string where
668 appropriate.
669 * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
670 * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
671 * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
672
cb1caeaf
DA
6732012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
674
675 Avoid calls to strlen in miscellaneous functions.
676 * buffer.c (init_buffer): Use precalculated len, adjust if needed.
677 * font.c (Ffont_xlfd_name): Likewise. Change to call make_string.
678 * lread.c (openp): Likewise.
679
c293e30c
DA
6802012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
681
682 Avoid calls to strlen in path processing functions.
683 * fileio.c (file_name_as_directory): Add comment. Change to add
684 srclen argument and return the length of result. Adjust users
685 accordingly.
686 (directory_file_name): Fix comment. Change to add srclen argument,
cb1caeaf 687 swap 1st and 2nd arguments to obey the common convention. Adjust
c293e30c
DA
688 users accordingly.
689 * filelock.c (fill_in_lock_file_name): Avoid calls to strlen.
690
9e059e3f
GM
6912012-07-10 Glenn Morris <rgm@gnu.org>
692
d02eb359
GM
693 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h:
694 Move PENDING_OUTPUT_COUNT definition to configure.
695
882cf227
GM
696 * s/irix6-5.h (DATA_START, DATA_SEG_BITS):
697 * s/hpux10-20.h (DATA_SEG_BITS, DATA_START):
698 * s/gnu.h (DATA_START): Move definitions to configure.
699
af6e839f
GM
700 * s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards.
701 We include usg5-4-common.h, which defines them both.
702
40289a12
GM
703 * s/gnu.h: Don't include fcntl.h (every file in Emacs that uses
704 O_RDONLY already includes it).
705
9e059e3f
GM
706 Stop ns builds setting the EMACSLOADPATH environment variable.
707 * nsterm.m (ns_load_path): Rename from ns_init_paths.
708 Now it does not set EMACSLOADPATH, just returns the load-path string.
709 * nsterm.h: Update accordingly.
710 * lread.c [HAVE_NS]: Include nsterm.h.
711 (init_lread) [HAVE_NS]: Use ns_load_path.
712 * emacs.c (main) [HAVE_NS]: No longer call ns_init_paths.
713
7c4e8ec0
GM
7142012-07-09 Glenn Morris <rgm@gnu.org>
715
d4f600ff
GM
716 * s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here,
717 since the included bsd-common.h does so.
718
cbb31951
GM
719 Stop ns builds setting the EMACSPATH environment variable.
720 * nsterm.m (ns_exec_path): New function, split from ns_init_paths.
721 (ns_init_paths): Do not set EMACSPATH.
722 * nsterm.h (ns_exec_path): Add it.
723 * callproc.c (init_callproc_1, init_callproc) [HAVE_NS]:
724 Use ns_exec_path.
725
7c4e8ec0
GM
726 * nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return.
727
26bccfae
PE
7282012-07-09 Paul Eggert <eggert@cs.ucla.edu>
729
a0bee46f
PE
730 * process.c (wait_reading_process_output): 'waitchannels' was unset
731 when read_kbd || !NILP (wait_for_cell); fix this.
732
5994c183
PE
733 Add GCC-style 'const' attribute to functions that can use it.
734 * character.h (char_resolve_modifier_mask):
735 * keyboard.h (make_ctrl_char):
736 * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe)
737 (init_character_once, next_almost_prime, init_fns, init_image)
738 (flush_pending_output, init_sound):
739 * mem-limits.h (start_of_data):
740 * menu.h (finish_menu_items):
741 Add ATTRIBUTE_CONST.
742 * emacs.c (DEFINE_DUMMY_FUNCTION):
743 Declare the dummy function with ATTRIBUTE_CONST.
744 * lisp.h (Fbyteorder, Fmax_char, Fidentity):
745 Add decls with ATTRIBUTE_CONST.
746
26bccfae
PE
747 Minor improvements to make_formatted_string.
748 * alloc.c (make_formatted_string): Prefer int to ptrdiff_t
749 where int is good enough, as vsprintf returns an int.
750 * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF.
751
a8290ec3
DA
7522012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
753
754 Use make_formatted_string to avoid double length calculation.
755 * lisp.h (make_formatted_string): New prototype.
756 * alloc.c (make_formatted_string): New function.
757 * buffer.c (Fgenerate_new_buffer_name): Use it.
758 * dbus.c (syms_of_dbusbind): Likewise.
759 * editfns.c (Fcurrent_time_zone): Likewise.
760 * filelock.c (get_boot_time): Likewise.
761 * frame.c (make_terminal_frame, set_term_frame_name)
762 (x_report_frame_params): Likewise.
763 * image.c (gs_load): Likewise.
764 * minibuf.c (get_minibuffer): Likewise.
765 * msdos.c (dos_set_window_size): Likewise.
766 * process.c (make_process): Likewise.
767 * xdisp.c (ensure_echo_area_buffers): Likewise.
768 * xsettings.c (apply_xft_settings): Likewise.
769
d01ba2f1
GM
7702012-07-09 Glenn Morris <rgm@gnu.org>
771
772 Stop ns builds polluting the environment with EMACSDATA, EMACSDOC.
773 * nsterm.m (ns_etc_directory): New function, split from ns_init_paths.
774 (ns_init_paths): Do not set EMACSDATA, EMACSDOC.
775 * nsterm.h (ns_etc_directory): Add it.
776 * callproc.c [HAVE_NS]: Include nsterm.h.
777 (init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory.
778
f1f924b6
DA
7792012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
780
781 Move marker debugging code under MARKER_DEBUG.
782 * marker.c (MARKER_DEBUG): Move marker debugging code under
783 #ifdef MARKER_DEBUG because byte_char_debug_check is too slow
784 for bootstrap with --enable-checking (~3x slowdown reported
785 by Juanma Barranquero <lekktu@gmail.com>).
786 (verify_bytepos): Move under #ifdef MARKER_DEBUG.
787
ab531b66
PE
7882012-07-08 Paul Eggert <eggert@cs.ucla.edu>
789
790 * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t.
791 See <http://bugs.gnu.org/11825#29>.
792
c4b3bc8a
EZ
7932012-07-08 Eli Zaretskii <eliz@gnu.org>
794
795 * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph
796 has no font, use the frame's font. (Bug#11813)
3434fe8a
EZ
797 (display_line): Add commentary about displaying truncation glyphs
798 on GUI frames.
799 (produce_special_glyphs): Move here from term.c.
800
801 * term.c (produce_special_glyphs): Move to xdisp.c.
802
803 * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c
804 section.
c4b3bc8a 805
b676b881
AS
8062012-07-07 Andreas Schwab <schwab@linux-m68k.org>
807
f17c5273
AS
808 * xdisp.c (display_line): Avoid warning about implicit declaration
809 of FRAME_FONT.
810
298819b9
AS
811 * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM.
812
b676b881
AS
813 * lisp.h: Remove empty conditional.
814
6045c4fd
PE
8152012-07-07 Paul Eggert <eggert@cs.ucla.edu>
816
b3350bf9
PE
817 * lread.c (load_path_check): Now static.
818
6045c4fd
PE
819 Fix some minor --with-ns problems found by static checking.
820 * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
821 (x_set_font) [!HAVE_X_WINDOWS]:
822 * image.c (xpm_load_image) [HAVE_NS]:
823 (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
824 (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
825 Remove unused local.
826 (Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
827 (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
828 * image.c (x_create_bitmap_from_file) [HAVE_NS]:
829 (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
830 * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
831 * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
832 Fix pointer signedness problem.
833 * xfaces.c (FRAME_X_FONT_TABLE):
834 * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
835
929e7845
GM
8362012-07-07 Glenn Morris <rgm@gnu.org>
837
838 * lread.c (load_path_check): New function, split from init_lread.
839 (init_lread): Reorganize. Motivation:
840 If EMACSLOADPATH is set, check/warn about that rather than the
841 defaults, which we are not going to use. Hence we can remove
842 the turn_off_warning and WINDOWSNT || HAVE_NS tests.
843 Don't warn if site-lisp directories are missing.
844 If not installed, start from a blank load-path, since
845 PATH_LOADSEARCH refers to the eventual installation directories.
846
58dd0aa4
EZ
8472012-07-07 Eli Zaretskii <eliz@gnu.org>
848
849 Support truncation and continuation glyphs on GUI frames, when
850 fringes are disabled. (Bug#11832)
851 * xdisp.c (init_iterator): Get dimensions of truncation and
852 continuation glyphs even if on GUI frames. Adjust
853 it->last_visible_x on GUI frames when the left or right fringes,
854 or both, are absent.
855 (start_display, move_it_in_display_line_to): Handle the case of a
856 GUI frame without a fringe to display continuation or truncation
857 glyphs.
858 (insert_left_trunc_glyphs): Support GUI frames: make sure
859 truncation glyphs overwrite enough glyphs from the current line to
860 have sufficient space in pixels.
861 (display_line): Support truncation and continuation glyphs on GUI
862 frames. If some spare pixels are left on the line after inserting
863 the truncation glyphs, fill that space with a stretch glyph of a
864 suitably computed width.
865
866 * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not
867 produce_glyphs, to support GUI sessions.
868
31571fd7
PE
8692012-07-07 Paul Eggert <eggert@cs.ucla.edu>
870
5a16b9bc
PE
871 * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781).
872
f3047c75
PE
873 * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797).
874
31571fd7
PE
875 Do not require float-time's arg to fit in time_t (Bug#11825).
876 This works better on hosts where time_t is unsigned, and where
877 float-time is applied to the (negative) difference between two times.
878 * editfns.c (decode_time_components): Last arg is now double *,
879 not int *, and means to store all the result as a double, without
880 worrying about whether the seconds part fits in time_t.
881 All callers changed.
882 (lisp_time_argument): Remove last int * arg, as it's no longer needed.
883 All callers changed.
884 (Ffloat_time): Do not fail merely because the specified time falls
885 outside of time_t range.
886
4516fbef
GM
8872012-07-07 Glenn Morris <rgm@gnu.org>
888
889 * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV):
890 * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM):
891 * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively).
892
07adc2c6
JB
8932012-07-07 Juanma Barranquero <lekktu@gmail.com>
894
895 * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)):
896 Update dependencies.
897
898 * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp.
899
fd573f31
PE
9002012-07-06 Paul Eggert <eggert@cs.ucla.edu>
901
fee5959d
PE
902 Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
903 * dispextern.h, nsfns.m, nsterm.m: Include <c-strcase.h>.
904 * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp.
905 * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp.
906 * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp.
907 * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove.
908
fd573f31
PE
909 * xfont.c (compare_font_names): Redo to omit the need for casts.
910
ddadbc0e
AS
9112012-07-06 Andreas Schwab <schwab@linux-m68k.org>
912
fca8d6b6
AS
913 * xfns.c (Fx_change_window_property): Doc fix.
914 * w32fns.c (Fx_change_window_property): Doc fix.
915
ddadbc0e
AS
916 * w32fns.c (Fx_window_property): Accept the same arguments as the
917 X Windows version. Doc fix.
918 * xfns.c (Fx_window_property): Doc fix. (Bug#11870)
919
ed9265fc 9202012-07-06 Juanma Barranquero <lekktu@gmail.com>
f247498e
JB
921 Eli Zaretskii <eliz@gnu.org>
922
923 * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt.
924 Windows-specific code from nt/config.nt moved here.
925 Obsolete settings removed.
926
216ee680
PE
9272012-07-06 Paul Eggert <eggert@cs.ucla.edu>
928
929 * process.c: Avoid unnecessary calls to gettime.
930 (wait_reading_process_output): Don't get the time of day
931 when gobbling data immediately and not waiting, as there's no need
932 for it in that case. This removes a FIXME.
933
bdd091e4
JD
9342012-07-06 Jan Djärv <jan.h.d@swipnet.se>
935
936 * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3
937 is defined (Bug#11768).
938
9d44f8ce
DA
9392012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
940
941 Fix marker debugging code.
942 * marker.c (byte_char_debug_check): Do not perform the check
943 if buffer is not multibyte.
090bd7cb
JB
944 (buf_charpos_to_bytepos, buf_bytepos_to_charpos):
945 Call byte_char_debug_check with correct arguments.
9d44f8ce 946
90fc4786
DA
9472012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
948
949 Compile marker debugging code only if ENABLE_CHECKING is defined.
090bd7cb
JB
950 * marker.c (byte_char_debug_check, count_markers):
951 Use only if ENABLE_CHECKING is defined.
90fc4786
DA
952 (byte_debug_flag): Remove.
953 (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos):
954 Always call byte_char_debug_check if ENABLE_CHECKING is defined.
955
7b7ae965
DA
9562012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
957
4e57b342
DA
958 Avoid code repetition in marker-related functions.
959 * marker.c (attach_marker): New function.
960 (Fset_marker, set_marker_restricted, set_marker_both)
961 (set_marker_restricted_both): Use it.
962 (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at):
963 Consistently rename charno to charpos.
964 (marker_position): Add eassert.
965 (marker_byte_position): Convert to eassert.
966
9672012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
968
969 Simplify list operations in unchain_overlay and unchain_marker.
7b7ae965 970 * buffer.c (unchain_overlay): Simplify. Add comment.
4e57b342 971 * marker.c (unchain_marker): Simplify. Fix comments.
7b7ae965 972
657924ff
DA
9732012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
974
975 Introduce fast path for the widely used marker operation.
976 * alloc.c (build_marker): New function.
977 * lisp.h (build_marker): New prototype.
978 * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
979 * composite.c (autocmp_chars): Likewise.
980 * editfns.c (buildmark): Remove.
981 (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
982 (save_restriction_save): Use build_marker.
983 * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
984 * window.c (save_window_save): Likewise.
985
041a49a6
DA
9862012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
987
988 Do not use Fdelete_overlay in delete_all_overlays
989 to avoid redundant calls to unchain_overlay.
990 * buffer.c (drop_overlay): New function.
991 (delete_all_overlays, Fdelete_overlay): Use it.
992 * minibuf.c (get_minibuffer): Fix comment.
993
7dca65a4
PE
9942012-07-06 Paul Eggert <eggert@cs.ucla.edu>
995
996 Port to OpenBSD 5.1 amd64.
997 * sysdep.c [BSD_SYSTEM]: Include <sys/param.h> before <sys/sysctl.h>.
998 This is needed for OpenBSD, and should be harmless on all BSD systems.
999 Also, include <sys/sysctl.h>, as it should be available on all
1000 BSD_SYSTEM hosts given that we're already calling sysctl in that case.
1001 (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but
1002 use p_pid member, not kp_proc.pid.
1003
8eb876e2
GM
10042012-07-06 Glenn Morris <rgm@gnu.org>
1005
1006 * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows.
1007
38182d90
PE
10082012-07-05 Paul Eggert <eggert@cs.ucla.edu>
1009
1010 More xmalloc and related cleanup.
1011 * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
1012 * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
1013 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
1014 * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
1015 * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
1016 * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
1017 * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
1018 * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
1019 * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
1020 * xterm.c:
1021 Omit needless casts involving void * pointers and allocation.
1022 Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
1023 as the former is more robust if P's type is changed.
1024 Prefer xzalloc to xmalloc + memset 0.
1025 Simplify malloc-or-realloc to realloc.
1026 Don't worry about xmalloc returning a null pointer.
1027 Prefer xstrdup to xmalloc + strcpy.
1028 * editfns.c (Fmessage_box): Grow message_text by at least 80 when
1029 growing it.
1030 * keyboard.c (apply_modifiers_uncached): Prefer local array to
1031 alloca of a constant.
1032
6dd5a677
EZ
10332012-07-05 Eli Zaretskii <eliz@gnu.org>
1034
1035 * xdisp.c (display_line): Fix horizontal pixel coordinates when
1036 hscroll is larger than the line width. Fixes long and futile
1037 looping inside extend_face_to_end_of_line (on a TTY) producing
1038 glyphs that are not needed and thrown away.
1039
6b312f0f
DA
10402012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
1041
1042 * marker.c (set_marker_restricted_both): Simplify by using
1043 clip_to_bounds.
1044
f520ef9b
PE
10452012-07-05 Paul Eggert <eggert@cs.ucla.edu>
1046
1047 * editfns.c (region_limit): Simplify by using clip_to_bounds.
1048
383b7c95
JD
10492012-07-05 Jan Djärv <jan.h.d@swipnet.se>
1050
1051 * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is
1052 not defined (Bug#11768).
1053 (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768).
1054 (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser)
1055 (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new
1056 followed by gtk_box_set_homogeneous (Bug#11768).
1057 (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768).
090bd7cb
JB
1058 (update_theme_scrollbar_width, xg_create_scroll_bar):
1059 Use gtk_scrollbar_new (Bug#11768).
383b7c95
JD
1060 (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3.
1061 (is_box_type): New function (Bug#11768).
1062 (xg_tool_item_stale_p): Call is_box_type.
5293d758 1063 (xg_initialize): Get settings by calling gtk_settings_get_for_screen
383b7c95
JD
1064 with default display (Bug#11768).
1065
d6e7bf45
EZ
10662012-07-05 Eli Zaretskii <eliz@gnu.org>
1067
1068 * xdisp.c (window_hscroll_limited): New function.
1069 (pos_visible_p, init_iterator): Use it to avoid overflow of pixel
1070 coordinates when window's hscroll is set to insanely large
1071 values. (Bug#11857)
1072
431391ec
JB
10732012-07-05 Juanma Barranquero <lekktu@gmail.com>
1074
1075 * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo.
1076 ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies.
1077
23f86fce
DA
10782012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
1079
1080 Cleanup xmalloc.
1081 * lisp.h (xzalloc): New prototype. Omit needless casts.
1082 * alloc.c (xzalloc): New function. Omit needless casts.
1083 * charset.c: Omit needless casts. Convert all calls to
1084 xmalloc with following memset to xzalloc.
1085 * dispnew.c: Likewise.
1086 * fringe.c: Likewise.
1087 * image.c: Likewise.
1088 * sound.c: Likewise.
1089 * term.c: Likewise.
1090 * w32fns.c: Likewise.
1091 * w32font.c: Likewise.
1092 * w32term.c: Likewise.
1093 * xfaces.c: Likewise.
1094 * xfns.c: Likewise.
1095 * xterm.c: Likewise.
1096 * atimer.c: Omit needless casts.
1097 * buffer.c: Likewise.
1098 * callproc.c: Likewise.
1099 * ccl.c: Likewise.
1100 * coding.c: Likewise.
1101 * composite.c: Likewise.
1102 * doc.c: Likewise.
1103 * doprnt.c: Likewise.
1104 * editfns.c: Likewise.
1105 * emacs.c: Likewise.
1106 * eval.c: Likewise.
1107 * filelock.c: Likewise.
1108 * fns.c: Likewise.
1109 * gtkutil.c: Likewise.
1110 * keyboard.c: Likewise.
1111 * lisp.h: Likewise.
1112 * lread.c: Likewise.
1113 * minibuf.c: Likewise.
1114 * msdos.c: Likewise.
1115 * print.c: Likewise.
1116 * process.c: Likewise.
1117 * region-cache.c: Likewise.
1118 * search.c: Likewise.
1119 * sysdep.c: Likewise.
1120 * termcap.c: Likewise.
1121 * terminal.c: Likewise.
1122 * tparam.c: Likewise.
1123 * w16select.c: Likewise.
1124 * w32.c: Likewise.
1125 * w32reg.c: Likewise.
1126 * w32select.c: Likewise.
1127 * w32uniscribe.c: Likewise.
1128 * widget.c: Likewise.
1129 * xdisp.c: Likewise.
1130 * xmenu.c: Likewise.
1131 * xrdb.c: Likewise.
1132 * xselect.c: Likewise.
1133
0497dc44
PE
11342012-07-05 Paul Eggert <eggert@cs.ucla.edu>
1135
1136 * fileio.c (time_error_value): Check the right error number.
1137 Problem reported by Troels Nielsen in
1138 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00095.html>.
1139
356e7178
PE
11402012-07-04 Paul Eggert <eggert@cs.ucla.edu>
1141
4e71fd89
PE
1142 * window.c (set_window_hscroll): Revert the 100000 hscroll limit.
1143 This should be fixed in a better way; see Eli Zaretskii in
1144 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
1145 (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
1146
f0941253
PE
1147 * fileio.c (time_error_value): Rename from special_mtime.
1148 The old name's problems were noted by Eli Zaretskii in
1149 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00087.html>.
1150
065c9eb4
PE
1151 * emacs.c (gdb_pvec_type): Change it back to enum pvec_type.
1152 This variable's comment says Emacs needs at least one GDB-visible
1153 symbol of type enum pvec_type, to work around GDB problems.
1154 The symbol's value doesn't matter.
1155
356e7178
PE
1156 * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';'
1157 that causes compilation to fail on pre-C99 compilers.
1158
ed9265fc 11592012-07-04 Juanma Barranquero <lekktu@gmail.com>
95f61aa2
JB
1160
1161 * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY)
1162 (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete.
1163
3884d954
DA
11642012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
1165
d209e2fb 1166 * buffer.c (init_buffer_once): Fix initialization of
3884d954
DA
1167 headers for buffer_defaults and buffer_local_symbols.
1168 Reported by Juanma Barranquero <lekktu@gmail.com>.
1169
ee28be33
SM
11702012-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
1171
1172 Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
1173 * lisp.h (enum pvec_type): Use fewer bits.
1174 (PSEUDOVECTOR_SIZE_BITS): New constant.
1175 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
1176 (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
1177 change in pvec_type.
1178 (PSEUDOVECTOR_TYPEP): New macro.
1179 (TYPED_PSEUDOVECTORP): Use it.
1180 * fns.c (internal_equal): Adapt code to extract pvectype.
1181 * emacs.c (gdb_pvec_type): Update type.
1182 * alloc.c (PSEUDOVECTOR_NBYTES): New macro.
1183 (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
1184 (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
1185 (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
1186 (sweep_vectors): Use it. Use local var `total_bytes' instead of
1187 abusing vector->header.next.nbytes.
1188 (live_vector_p): Use PVEC_TYPE.
1189 (mark_object): Adapt code to extract pvectype. Use switch.
1190
c7f2cd7f
PE
11912012-07-04 Paul Eggert <eggert@cs.ucla.edu>
1192
1193 * doprnt.c (doprnt): Don't assume string length fits in 'int'.
1194 Tighten new eassert a bit.
1195
8ce70ed2
DA
11962012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
1197
1198 Fix compilation with --enable-gcc-warnings and -O1
1199 optimization level.
1200 * doprnt.c (doprnt): Change type of tem to int, initialize
1201 to avoid compiler warning. Add eassert.
1202 * search.c (simple_search): Initialize match_byte to avoid
1203 compiler warning. Add eassert.
1204
dea7f1e5
PE
12052012-07-04 Paul Eggert <eggert@cs.ucla.edu>
1206
24a212eb
PE
1207 Avoid weird behavior with large horizontal scrolls.
1208 Without this change, for example, large hscroll values would
1209 mess up Emacs's display on Fedora 15 x86, presumably due to
1210 overflows in int calculations in the display code.
1211 Also, if buffers had long lines, Emacs would freeze.
1212 * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
1213 (set_window_hscroll): New function, containing the old guts of
1214 Fset_window_hscroll. Return the clipped value.
1215 (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
1216 This avoids the need to check against PTRDIFF_MAX.
1217
dea7f1e5
PE
1218 * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
1219
76046526
DA
12202012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
1221
1222 * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
1223
39adff0d
PE
12242012-07-04 Paul Eggert <eggert@cs.ucla.edu>
1225
63807d47
PE
1226 * regex.c: Suppress GCC warning on RHEL 6. (Bug#11207)
1227 Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
1228 since GCC 4.4.6 issues a bogus warning for them.
1229
39adff0d
PE
1230 Fix bugs in file timestamp newness comparisons.
1231 * fileio.c (Ffile_newer_than_file_p):
1232 * lread.c (Fload): Use full timestamp resolution of files,
1233 not just the 1-second resolution, so that files that are only
1234 slightly newer still count as newer.
1235 * fileio.c (Ffile_newer_than_file_p): Don't assume file
1236 timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
1237
dbeed9a6
PE
12382012-07-03 Paul Eggert <eggert@cs.ucla.edu>
1239
1240 * fileio.c: Improve handling of file time marker. (Bug#11852)
1241 (special_mtime): New function.
1242 (Finsert_file_contents, Fverify_visited_file_modtime):
1243 Use it to set special mtime values consistently.
1244
636334d6
AS
12452012-07-03 Andreas Schwab <schwab@linux-m68k.org>
1246
1247 * fileio.c (Finsert_file_contents): Properly handle st_mtime
1248 marker for non-existing file. (Bug#11852)
1249
e2017fe2
GM
12502012-07-03 Glenn Morris <rgm@gnu.org>
1251
1252 * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
1253 and did not make it into globals.h).
1254
404dbd37
TT
12552012-07-03 Tom Tromey <tromey@redhat.com>
1256
1257 * window.c (Fset_window_margins, Fset_window_fringes)
1258 (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
1259 * textprop.c (Fprevious_property_change): No longer static.
1260 * syntax.c (Fsyntax_table_p): No longer static.
1261 * process.c (Fget_process, Fprocess_datagram_address): No longer
1262 static.
1263 * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
1264 * keyboard.c (Fcommand_execute): No longer static.
1265 Remove EXFUN.
1266 * insdel.c (Fcombine_after_change_execute): No longer static.
1267 * image.c (Finit_image_library): No longer static.
1268 * fileio.c (Fmake_symbolic_link): No longer static.
1269 * eval.c (Ffetch_bytecode): No longer static.
1270 * editfns.c (Fuser_full_name): No longer static.
d209e2fb
JB
1271 * doc.c (Fdocumentation_property, Fsnarf_documentation):
1272 No longer static.
404dbd37
TT
1273 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
1274 static.
1275 * dired.c (Ffile_attributes): No longer static.
1276 * composite.c (Fcomposition_get_gstring): No longer static.
1277 * callproc.c (Fgetenv_internal): No longer static.
1278
1279 * ccl.h: Remove EXFUNs.
1280 * buffer.h: Remove EXFUNs.
1281 * dispextern.h: Remove EXFUNs.
1282 * intervals.h: Remove EXFUNs.
1283 * fontset.h: Remove EXFUN.
1284 * font.h: Remove EXFUNs.
1285 * dosfns.c (system_process_attributes): Remove EXFUN.
1286 * keymap.h: Remove EXFUNs.
1287 * lisp.h: Remove EXFUNs.
1288 * w32term.h: Remove EXFUNs.
1289 * window.h: Remove EXFUNs.
1290 * xsettings.h: Remove EXFUN.
1291 * xterm.h: Remove EXFUN.
1292
8e4fd1e1
GM
12932012-07-03 Glenn Morris <rgm@gnu.org>
1294
1295 * lisp.h (Frandom): Make it visible to C.
1296 * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
1297 buffer for invisible buffers. (Bug#1229)
1298
ca95b3eb
DA
12992012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
1300
1301 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
1302 values which aren't power of 2.
1303 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro. Verify
1304 it's value and the value of VECTOR_BLOCK_SIZE. Adjust users
1305 accordingly.
1306
7555c33f
SM
13072012-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
1308
1309 * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
1310
1311 * alloc.c (mark_object): Revert part of last patch to use `switch'.
1312
d12e8f5a
DA
13132012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
1314
1315 * alloc.c (allocate_vector_block): Remove redundant
1316 calls to mallopt if DOUG_LEA_MALLOC is defined.
1317 (allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
1318 avoid calls to mallopt if zero_vector is returned.
1319
296094c3
DA
13202012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
1321
1322 * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
1323 is enabled, avoid dereferencing NULL current_sblock if
1324 running undumped.
1325
36429c89
DA
13262012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
1327
1328 Cleanup basic buffer management.
1329 * buffer.h (struct buffer): Change layout to use generic vector
1330 marking code. Fix some comments. Change type of 'clip_changed'
1331 to bitfield. Remove unused #ifndef old.
1332 (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
1333 (GET_OVERLAYS_AT): Fix indentation.
1334 (for_each_per_buffer_object_at): New macro.
1335 * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
1336 (Fbuffer_local_variables): Use it.
1337 (init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
1338 * alloc.c (allocate_buffer): Adjust to match new layout of
1339 struct buffer. Fix comment.
1340 (mark_overlay): New function.
1341 (mark_buffer): Use it. Use mark_vectorlike to mark normal
1342 Lisp area of struct buffer.
1343 (mark_object): Use it. Adjust marking of misc objects
1344 and related comments.
1345
3b3e4cac
PE
13462012-07-02 Paul Eggert <eggert@cs.ucla.edu>
1347
1348 * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
1349 wrapper that is not needed because the wrapped code is a no-op (zero
1350 machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
1351 This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
1352
cf5c0175
DA
13532012-07-02 Dmitry Antipov <dmantipov@yandex.ru>
1354
1355 * alloc.c (mark_buffer): Simplify. Remove prototype.
1356 (mark_object): Add comment. Reorganize marking of vector-like
faf611c7 1357 objects. Use CHECK_LIVE for all vector-like objects except buffers
cf5c0175
DA
1358 and subroutines when GC_CHECK_MARKED_OBJECTS is defined. Avoid
1359 redundant calls to mark_vectorlike for bool vectors.
1360
ca26824c
GM
13612012-06-30 Glenn Morris <rgm@gnu.org>
1362
2e4c5312
GM
1363 * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
1364
ca26824c
GM
1365 * epaths.in (PATH_SITELOADSEARCH): New.
1366 * lread.c (init_lread): Use PATH_SITELOADSEARCH.
1367 This is rather than relying on --enable-locallisppath elements
1368 having "site-lisp" in their names. (Bug#10208#25, 11658)
1369
0d23c240
EZ
13702012-06-30 Eli Zaretskii <eliz@gnu.org>
1371
c9240d7a
EZ
1372 * w32proc.c (sys_select): Accept and ignore one more argument.
1373
1374 * w32.c (emacs_gnutls_pull): Call select with one more argument.
1375
0d23c240 1376 * sysselect.h [DOS_NT]: Don't include sys/select.h.
9ff8f76b 1377 (pselect) [!MS_DOS]: Redirect to sys_select.
0d23c240
EZ
1378
1379 * sysdep.c: Don't include dos.h and dosfns.h.
1380
1381 * process.c (sys_select):
1382 * msdos.c (sys_select): Accept one more argument and ignore it.
1383
1384 * msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
1385 adapt data types and code to that.
1386
1387 * dosfns.c:
1388 * msdos.c (gettime, settime): Define away the prototypes in dos.h,
1389 which clashes with the gnulib function of the same name.
1390
af5a5a98
AS
13912012-06-30 Andreas Schwab <schwab@linux-m68k.org>
1392
c5e4379c
AS
1393 * font.c (font_style_to_value, font_style_symbolic)
1394 (font_prop_validate_style): Add type checks for values in
1395 font_style_table.
1396
af5a5a98
AS
1397 * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
1398 argument.
1399 * character.c, charset.c, menu.c, process.c, window.c: Adjust all
1400 uses.
1401
8d38f461
EZ
14022012-06-29 Eli Zaretskii <eliz@gnu.org>
1403
2e5a6631
EZ
1404 * xdisp.c (try_window_id): Undo last change.
1405
8d38f461
EZ
1406 * w32.c (getwd): Adjust commentary about startup_dir.
1407 (init_environment): Always call sys_access, even in non-MSVC
1408 builds. Don't chdir to the directory of the Emacs executable.
1409 This undoes code from 1997 which was justified by the need to
1410 "avoid conflicts when removing and renaming directories". But its
1411 downside was that every relative file name was being interpreted
1412 relative to the directory of the Emacs executable, which can never
1413 be TRT. In particular, it broke sys_access when called with
1414 relative file names.
1415 (sys_access): Map GetLastError to errno.
1416
2af3565e
DA
14172012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
1418
1419 * window.h (struct window): Change type of 'fringes_outside_margins'
1420 to bitfield. Fix comment. Adjust users accordingly.
cf5c0175 1421 (struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
2af3565e
DA
1422 Adjust comment.
1423 * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
1424 to ptrdiff_t.
1425
c8d3a25c 14262012-06-29 Andreas Schwab <schwab@linux-m68k.org>
57570cd3 1427
c8d3a25c
GM
1428 * gnutls.c (emacs_gnutls_handshake):
1429 Add QUIT to make the loop interruptible.
57570cd3 1430
c8d3a25c 14312012-06-29 Glenn Morris <rgm@gnu.org>
d01fd55f 1432
c8d3a25c
GM
1433 * charset.c (init_charset): Make lack of etc/charsets fatal.
1434
3e984ee8
DA
14352012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
1436
1437 * editfns.c (region_limit): Fix type mismatch.
1438
ef884f23
DA
14392012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
1440
1441 * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
1442 undefined. Convert from xassert to eassert.
1443 * nsmenu.m: Convert from xassert to eassert.
1444 * nsterm.m: Likewise.
1445
7d7e0027
SM
14462012-06-28 Stefan Monnier <monnier@iro.umontreal.ca>
1447
1448 * editfns.c (region_limit): Clip to narrowing (bug#11770).
1449
aa754e6a
PE
14502012-06-28 Paul Eggert <eggert@cs.ucla.edu>
1451
1452 Avoid integer overflow on scroll-left and scroll-right.
1453 * window.c (HSCROLL_MAX): New macro.
1454 (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
1455 overflow when requested scroll falls outside ptrdiff_t range.
1456
80b00b08
DA
14572012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
1458
1459 * window.h (struct window): Change type of 'hscroll',
1460 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
1461 'last_modified' and 'last_overlay_modified' to EMACS_INT.
1462 Adjust users accordingly.
1463 * xdisp.c (try_cursor_movement): Replace type check with eassert.
1464 * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
1465 from EMACS_INT to ptrdiff_t.
1466 (make_window): Omit redundant initialization.
1467
62b2bcf6
JB
14682012-06-28 Juanma Barranquero <lekktu@gmail.com>
1469
1470 * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
1471
45942c7d
DA
14722012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
1473
1474 * window.h (struct window): Change type of 'use_time' and
1475 'sequence_number' from Lisp_Object to int.
1476 * frame.c (make_frame): Adjust users accordingly.
1477 * print.c (print_object): Likewise.
1478 * window.c (select_window, Fwindow_use_time, make_parent_window)
1479 (make_window): Likewise.
1480
e509cfa6
DA
14812012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
1482
1483 * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
1484 enabled with --enable-checking=[all,glyphs] configure option.
1485 Fix GLYPH_DEBUG usage assuming that it may be undefined,
1486 adjust comments accordingly.
1487 * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
1488 undefined, adjust comments accordingly.
1489 * image.c: Likewise.
1490 * scroll.c: Likewise.
1491 * w32fns.c: Likewise.
1492 * w32term.c: Likewise.
1493 * xdisp.c: Likewise.
1494 * xfaces.c: Likewise.
1495 * xfns.c: Likewise.
1496 * xterm.c: Likewise.
1497
a54e2c05
DA
14982012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
1499
1500 Generalize run-time debugging checks.
1501 * dispextern.h (XASSERTS): Remove.
1502 * fontset.c (xassert): Remove.
1503 Convert from xassert to eassert.
1504 * alloc.c: Convert from xassert to eassert.
1505 * bidi.c: Likewise.
1506 * dispnew.c: Likewise.
1507 * fns.c: Likewise.
1508 * fringe.c: Likewise.
1509 * ftfont.c: Likewise.
1510 * gtkutil.c: Likewise.
1511 * image.c: Likewise.
1512 * keyboard.c: Likewise.
1513 * menu.c: Likewise.
1514 * process.c: Likewise.
1515 * scroll.c: Likewise.
1516 * sound.c: Likewise.
1517 * term.c: Likewise.
1518 * w32console.c: Likewise.
1519 * w32fns.c: Likewise.
1520 * w32term.c: Likewise.
1521 * window.c: Likewise.
1522 * xdisp.c: Likewise.
1523 * xfaces.c: Likewise.
1524 * xfns.c: Likewise.
1525 * xselect.c: Likewise.
1526 * xterm.c: Likewise.
1527
1ec4b7b2
SM
15282012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
1529
1530 * fns.c (maybe_resize_hash_table): Output message when growing the
1531 purify-hashtable.
1532
2014308a
DA
15332012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
1534
1535 * alloc.c (allocate_string_data): Remove dead code.
1536 * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
1537 avoid GCC warning about unused macro.
1538
246155eb
DA
15392012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
1540
1541 * alloc.c (allocate_string): Omit intervals initialization.
1542 * alloc.c (make_uninit_multibyte_string): Initialize intervals
1543 as in make_pure_string and make_pure_c_string.
1544
43184b7b
DA
15452012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
1546
d209e2fb 1547 * alloc.c (allocate_string): Fix last change.
43184b7b 1548
3fe6dd74
DA
15492012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
1550
d209e2fb 1551 * alloc.c (allocate_string): Remove two redundant calls
3fe6dd74
DA
1552 to memset, add explicit initialization where appropriate.
1553
1ba6038a
GM
15542012-06-27 Glenn Morris <rgm@gnu.org>
1555
1556 * lisp.mk (lisp): Remove paths.elc.
1557
c89926a5
CY
15582012-06-27 Chong Yidong <cyd@gnu.org>
1559
1560 * doc.c (Fsubstitute_command_keys): Fix punctuation.
1561
ed6b3510
JW
15622012-06-26 John Wiegley <johnw@newartisans.com>
1563
1ec4b7b2 1564 * unexmacosx.c (copy_data_segment): Add two section names used
157e99e4
JW
1565 on Mac OS X Lion: __mod_init_func and __mod_term_func.
1566
ed6b3510
JW
1567 * alloc.c (mark_memory): Do not check with -faddress-sanitizer
1568 when building with Clang.
1569
8edd4a2b
SM
15702012-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
1571
1572 * eval.c (Fapply): Allow calling it with a single argument.
1573
f6f62d1b
EZ
15742012-06-26 Eli Zaretskii <eliz@gnu.org>
1575
1576 * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
1577 _stricmp and _strnicmp.
1578 (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
1579
62efea5e
DA
15802012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
1581
1582 * alloc.c (allocate_window): Zero out non-Lisp part of newly
1583 allocated window.
1584 (allocate_process): Likewise for new process.
8edd4a2b 1585 (allocate_terminal): Change to use offsetof.
62efea5e
DA
1586 (allocate_frame): Likewise.
1587 * frame.c (make_frame): Omit redundant initialization.
1588 * window.c (make_parent_window): Use memset.
1589 (make_window): Omit redundant initialization.
1590 * process.c (make_process): Omit redundant initialization.
1591 * terminal.c (create_terminal): Likewise.
1592
42997f4d
DA
15932012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
1594
1595 * term.c (delete_tty): Remove redundant call to memset.
1596
1130ecfc
DA
15972012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
1598
1599 * alloc.c: Remove build_string.
1600 * lisp.h: Define build_string as static inline. This provides
1601 a better opportunity to optimize away calls to strlen when the
1602 function is called with compile-time constant argument.
1603 * image.c (imagemagick_error): Convert to build_string.
1604 * w32proc.c (sys_spawnve): Likewise.
1605 * xterm.c (x_term_init): Likewise.
1606
cf38a720
PE
16072012-06-26 Paul Eggert <eggert@cs.ucla.edu>
1608
99027bdd
PE
1609 Use sprintf return value instead of invoking strlen on result.
1610 In the old days this wasn't portable, since some sprintf
1611 implementations returned char *. But they died out years ago and
1612 Emacs already assumes sprintf returns int.
1613 Similarly for float_to_string.
1614 This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
1615 * ccl.c (ccl_driver):
1616 * character.c (string_escape_byte8):
1617 * data.c (Fnumber_to_string):
1618 * doprnt.c (doprnt):
1619 * print.c (print_object):
1620 * xdisp.c (message_dolog):
1621 * xfns.c (syms_of_xfns):
1622 Use sprintf or float_to_string result to avoid need to call strlen.
1623 * data.c (Fnumber_to_string):
1624 Use make_unibyte_string, since the string must be ASCII.
1625 * lisp.h, print.c (float_to_string): Now returns int length.
1626 * term.c (produce_glyphless_glyph):
1627 Use sprintf result rather than recomputing it.
1628
cf38a720
PE
1629 Clean out last vestiges of the old HAVE_CONFIG_H stuff.
1630 * Makefile.in (ALL_CFLAGS):
1631 * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
1632 * gmalloc.c, regex.c: Include <config.h> unconditionally.
1633
3511c784
DA
16342012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
1635
0a08eb21 1636 * dispextern.h (xstrcasecmp): Define to library function
3511c784
DA
1637 strcasecmp if available.
1638 * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
1639
fb7da12e
AS
16402012-06-25 Andreas Schwab <schwab@linux-m68k.org>
1641
1642 * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
1643 Avoid comma operator.
1644 * menu.c (push_submenu_start, push_submenu_end)
1645 (push_left_right_boundary, push_menu_pane): Likewise.
1646 * msdos.c (dos_rawgetc): Likewise.
1647
afa2ffd8
DA
16482012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
1649
1650 * xfns.c (xic_create_fontsetname): Remove redundant calls
1651 to memset.
1652
b3b4476b
PE
16532012-06-25 Paul Eggert <eggert@cs.ucla.edu>
1654
4495ff38
PE
1655 * gtkutil.c (get_utf8_string): Remove redundant assignment.
1656 sprintf already null-terminates its output.
1657
b3b4476b
PE
1658 * xfns.c (x_window): Remove redundant cast.
1659
b00876c9
DA
16602012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
1661
1662 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
1663 `const char *' to `char *' to avoid compiler warning.
1664
d188e26b
PE
16652012-06-24 Paul Eggert <eggert@cs.ucla.edu>
1666
885d1d74
PE
1667 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
1668 instead of truncating it to 63 (admittedly a generous limit).
1669
d188e26b
PE
1670 * process.c: Fix spelling and caps in comments.
1671
e2f560b1
DN
16722012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
1673
e86db54b 1674 * emacs.c (setpgrp): Remove definition, unused.
e2f560b1
DN
1675 * sysdep.c (setpgrp): Remove definition, not used in this file.
1676
7583a3a1
JB
16772012-06-24 Juanma Barranquero <lekktu@gmail.com>
1678
1679 * makefile.w32-in: Update dependencies.
1680
696056c2
EZ
16812012-06-24 Eli Zaretskii <eliz@gnu.org>
1682
1683 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
1684 (SYSTIME_H): Add nt/inc/sys/time.h.
1685
1686 * systime.h [WINDOWSNT]: Include sys/time.h.
1687
1688 * s/ms-w32.h (struct timespec): Definition moved from
1689 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
1690
845ca893
PE
16912012-06-24 Paul Eggert <eggert@cs.ucla.edu>
1692
1693 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
1694 * buffer.h (buffer_slot_type_mismatch):
1695 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
1696 * eval.c (unwind_to_catch):
1697 * image.c (my_png_error, my_error_exit):
1698 * keyboard.c (quit_throw_to_read_char, user_error)
1699 (Fexit_recursive_edit, Fabort_recursive_edit):
1700 * lisp.h (die, args_out_of_range, args_out_of_range_3)
1701 (wrong_type_argument, buffer_overflow, __executable_start)
1702 (memory_full, buffer_memory_full, string_overflow, Fthrow)
1703 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
1704 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
1705 (fatal):
1706 (child_setup) [!DOS_NT]:
1707 * lread.c (end_of_file_error, invalid_syntax):
1708 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
1709 * puresize.h (pure_write_error):
1710 * search.c (matcher_overflow):
1711 * sound.c (sound_perror, alsa_sound_perror):
1712 * sysdep.c, syssignal.h (croak):
1713 * term.c (maybe_fatal, vfatal):
1714 * textprop.c (text_read_only):
1715 * undo.c (user_error):
1716 * unexmacosx.c (unexec_error):
1717 * xterm.c (x_ins_del_lines, x_delete_glyphs):
1718 Use _Noreturn rather than NO_RETURN.
1719 No need for separate decl merely because of _Noreturn.
1720 * sound.c (sound_warning, parse_sound):
1721 Remove unnecessary forward decls.
1722
f1dd8073
PE
17232012-06-24 Paul Eggert <eggert@cs.ucla.edu>
1724
1725 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
1726 * lisp.h (WAIT_READING_MAX): New macro.
1727 * dispnew.c (Fsleep_for, sit_for):
1728 * keyboard.c (kbd_buffer_get_event):
1729 * process.c (Faccept_process_output):
1730 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
1731 This improves on the previous patch, which introduced a bug
1732 when time_t is unsigned and as wide as intmax_t.
1733 See <http://bugs.gnu.org/9000#51>.
1734
b82c1755
EZ
17352012-06-23 Eli Zaretskii <eliz@gnu.org>
1736
1737 * dispnew.c (sit_for, Fsleep_for):
1738 * keyboard.c (kbd_buffer_get_event):
1739 * process.c (Faccept_process_output): Avoid compiler warnings when
1740 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
1741
ca300656
JB
17422012-06-23 Juanma Barranquero <lekktu@gmail.com>
1743
049ec95b
JB
1744 * makefile.w32-in: Update dependencies.
1745
ca300656
JB
1746 * w32.c (ltime): Add return type and declare static.
1747 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
1748
db7b8d06
PE
17492012-06-23 Paul Eggert <eggert@cs.ucla.edu>
1750
1751 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
1752 Privately reported by Herbert J. Skuhra.
1753 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
1754 All uses changed.
1755 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
1756 not make_lisp_timeval, when the argument is of type EMACS_TIME.
1757
0bd8297f
EZ
17582012-06-23 Eli Zaretskii <eliz@gnu.org>
1759
96512555
EZ
1760 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
1761 last argument of make_unibyte_string.
1762
0bd8297f
EZ
1763 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
1764 language ID in the event parameters.
1765
1766 * w32term.c (w32_read_socket): Put the new keyboard codepage into
1767 event.code, not the obscure "character set ID".
1768
63def6b6
CY
17692012-06-23 Chong Yidong <cyd@gnu.org>
1770
1771 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
1772
e8a02204
EZ
17732012-06-23 Eli Zaretskii <eliz@gnu.org>
1774
388cdec0
EZ
1775 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
1776 * w32.c (fdutimens): New function.
1777
1778 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
1779
1780 * s/ms-w32.h (pselect): Redirect to sys_select.
1781
1782 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
1783
e8a02204
EZ
1784 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
1785 in the logic of incrementing and decrementing the value of
1786 use_relocatable_buffers.
1787
d054f3fb
PE
17882012-06-23 Paul Eggert <eggert@cs.ucla.edu>
1789
1790 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
1791 Privately reported by Herbert J. Skuhra.
1792 [__FreeBSD__]: Remove "*/" typo after "#include".
1793 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
1794 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
1795 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
1796 Don't assume EMACS_TIME and struct timeval are the same type.
1797
d35af63c
PE
17982012-06-22 Paul Eggert <eggert@cs.ucla.edu>
1799
1800 Support higher-resolution time stamps (Bug#9000).
1801 The time stamps are only nanosecond-resolution at the C level,
1802 since that's the best that any real-world system supports now.
1803 But they are picosecond-resolution at the Lisp level, as that's
1804 easy, and leaves room for future OS improvements.
1805
1806 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
1807 (LIBES): Use it.
1808
1809 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
1810 Don't get current time unless it's needed.
1811
1812 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
1813 now provides it if it's absent.
1814 (start_atimer): Port to higher-res time stamps.
1815 Check for time stamp overflow. Don't get current time more
1816 often than is needed.
1817
1818 * buffer.h (struct buffer): Buffer modtime now has high resolution.
1819 Include systime.h, not time.h.
1820 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
1821
1822 * dired.c: Include stat-time.h.
1823 (Ffile-attributes): File times now have higher resolution.
1824
1825 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
1826 (struct image): Timestamp now has higher resolution.
1827
1828 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
1829 has at least microseconds now. All uses removed.
1830 (update_frame, update_single_window, update_window, update_frame_1)
1831 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
1832
1833 * editfns.c (time_overflow): Now extern.
1834 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
1835 (float-time, Fformat_time_string, Fcurrent_time_string)
1836 (Fcurrent_time_zone): Accept and generate higher-resolution
1837 time stamps.
1838 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
1839 (decode_time_components, lisp_seconds_argument): New functions.
1840 (make_time): Now static.
1841 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
1842 Report an error if the time is invalid, rather than having the caller
1843 do that.
1844
1845 * fileio.c: Include <stat-time.h>
1846 (Fcopy_file): Copy higher-resolution time stamps.
1847 Prefer to set the time stamp via a file descriptor if that works.
1848 (Fset_file_times, Finsert_file_contents, Fwrite_region)
1849 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
1850 (Fvisited_file_modtime, Fset_visited_file_modtime):
1851 Support higher-resolution time stamps.
1852
1853 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
1854
1855 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
1856
1857 * image.c (prepare_image_for_display, clear_image_cache)
1858 (lookup_image): Port to higer-resolution time stamps.
1859
1860 * keyboard.c (start_polling, bind_polling_period):
1861 Check for time stamp overflow.
1862 (read_char, kbd_buffer_get_event, timer_start_idle)
1863 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
1864 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
1865 Port to higher-resolution time stamps. Do not assume time_t is signed.
1866 (decode_timer): New function. Timers are now vectors of length 9,
1867 not 8, to accommodate the picosecond component.
1868 (timer_check_2): Use it.
1869
1870 * nsterm.m (select_timeout, timeval_subtract): Remove.
1871 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
1872 as they're a bit more accurate and handle overflow better.
1873 (ns_select): Change prototype to be compatible with pselect.
1874 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
1875 * nsterm.h (ns_select): Adjust prototype.
1876
1877 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
1878 us-resolution time stamps.
1879 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
1880
1881 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
1882
1883 * lisp.h (time_overflow): New decl.
1884 (wait_reading_process_output): First arg is now intmax_t, not int,
1885 to accommodate larger waits.
1886
1887 * process.h (struct Lisp_Process.read_output_delay):
1888 Now counts nanoseconds, not microseconds.
1889 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
1890 EMACS_HAS_USECS.
1891 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
1892 (wait_reading_process_output):
1893 Port to ns-resolution time stamps.
1894 (Faccept_process_output, wait_reading_process_output):
1895 Check for time stamp overflow. Do not assume time_t is signed.
1896 (select_wrapper): Remove; we now use pselect.
1897 (Fprocess_attributes): Now generates ns-resolution time stamps.
1898
1899 * sysdep.c: Include utimens.h. Don't include utime.h
1900 or worry about struct utimbuf; gnulib does that for us now.
1901 (gettimeofday): Remove; gnulib provides a substitute.
1902 (make_timeval): New function.
1903 (set_file_times): Now sets ns-resolution time stamps.
1904 New arg FD; all uses changed.
1905 (time_from_jiffies, ltime_from_jiffies, get_up_time)
1906 (system_process_attributes):
1907 Now returns ns-resolution time stamp. All uses changed.
1908 Check for time stamp overflow.
1909
1910 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
1911 provides a substitute now.
1912
1913 * systime.h: Include timespec.h rather than sys/time.h and time.h,
1914 since it guarantees struct timespec.
1915 (EMACS_TIME): Now struct timespec, so that we can support
1916 ns-resolution time stamps.
1917 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
1918 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
1919 (EMACS_USECS): Remove.
1920 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
1921 so multiply the arg by 1000 before storing it.
1922 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
1923 New macros.
1924 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
1925 Port to ns-resolution time stamps.
1926 (EMACS_TIME_NEG_P): Remove; replaced by....
1927 (EMACS_TIME_SIGN): New macro.
1928 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
1929 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
1930 (set_file_times, make_time, lisp_time_argument): Adjust signature.
1931 (make_timeval, make_lisp_time, decode_time_components): New decls.
1932 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
1933 that it mishandled time_t overflow. You can't compare by subtracting!
1934 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
1935 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
1936
1937 * term.c: Include <sys/time.h>.
1938 (timeval_to_Time): New function, for proper overflow wraparound.
1939 (term_mouse_position, term_mouse_click): Use it.
1940
1941 * undo.c (record_first_change): Support higher-resolution time stamps
1942 in the undo buffer.
1943 (Fprimitive_undo): Use them when restoring time stamps.
1944
1945 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
1946 (w32_get_internal_run_time):
1947 Port to higher-resolution Emacs time stamps.
1948 (ltime): Now accepts single 64-bit integer, as that's more convenient
1949 for callers.
1950
1951 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
1952
1953 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
1954 for compatibility with pselect. Support ns-resolution time stamps.
1955
1956 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
1957
1958 * xselect.c (wait_for_property_change, x_get_foreign_selection):
1959 Check for time stamp overflow, and support ns-resolution time stamps.
1960
1961 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
1962 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
1963 (timeval_subtract): Remove; no longer needed.
1964 (XTflash, XTring_bell, x_wait_for_event):
1965 Port to ns-resolution time stamps. Don't assume time_t is signed.
1966
b6a92dfe
CY
19672012-06-22 Chong Yidong <cyd@gnu.org>
1968
1969 * xdisp.c (x_consider_frame_title): Revert last change.
1970
d251c37c
EZ
19712012-06-22 Eli Zaretskii <eliz@gnu.org>
1972
1973 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
1974 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
1975 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
1976 staticidx goes up to 1597 out of 1600 = 0x640.)
1977
f10deafb
PE
19782012-06-20 Paul Eggert <eggert@cs.ucla.edu>
1979
1980 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
1981 Otherwise, the umask might be mistakenly 0 while handling input signals.
1982
ec6de1e2
SM
19832012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
1984
1985 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
1986
28be1ada
DA
19872012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
1988
1989 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
1990 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
1991 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
1992 access to `contents' member of Lisp_Vector objects with AREF and ASET
1993 where appropriate.
1994
c6bf3022
CY
19952012-06-19 Chong Yidong <cyd@gnu.org>
1996
1997 * frame.c (delete_frame): When selecting a frame on a different
1998 text terminal, do not alter the terminal's top-frame.
1999
2000 * xdisp.c (format_mode_line_unwind_data): Record the target
2001 frame's selected window and its terminal's top-frame.
2002 (unwind_format_mode_line): Restore them.
2003 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
2004 Callers changed.
2005 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
2006 since tty frames can be explicitly named.
2007 (prepare_menu_bars): Likewise.
2008
2009 * term.c (Ftty_top_frame): New function.
2010
defd4196
PE
20112012-06-18 Paul Eggert <eggert@cs.ucla.edu>
2012
2013 Port byte-code-meter to modern targets.
2014 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
2015 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
8b5257e1 2016 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
defd4196
PE
2017 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
2018 (METER_1, METER_2): Simplify.
2019
1053a871
SM
20202012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
2021
2022 * data.c (Fdefalias): Return `symbol' (bug#11686).
2023
b7e8d081
MR
20242012-06-18 Martin Rudalics <rudalics@gmx.at>
2025
2026 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
1053a871
SM
2027 gets killed during executing of this function (Bug#11665).
2028 Try to always return Qt when the buffer has been actually killed.
b7e8d081
MR
2029 (Vkill_buffer_query_functions): In doc-string say that functions
2030 run by this hook should not change the current buffer.
2031
7ea2b339
PE
20322012-06-18 Paul Eggert <eggert@cs.ucla.edu>
2033
2034 Fix recently-introduced process.c problems found by static checking.
2035 * process.c (write_queue_push, write_queue_pop, send_process):
2036 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
2037 (write_queue_pop): Fix pointer signedness problem.
2038 (send_process): Remove unused local.
2039
96a313a1
CY
20402012-06-17 Chong Yidong <cyd@gnu.org>
2041
2042 * xdisp.c (redisplay_internal): No need to redisplay terminal
2043 frames that are not on top.
2044
20ca2e94
TN
20452012-06-17 Troels Nielsen <bn.troels@gmail.com>
2046
2047 * process.c (make_process): Initialize write_queue.
2048 (write_queue_push, write_queue_pop): New functions.
2049 (send_process): Use them to maintain correct ordering of process
2050 writes (Bug#10815).
2051
9a900ca9
PE
20522012-06-17 Paul Eggert <eggert@cs.ucla.edu>
2053
310fbfa8
PE
2054 * lisp.h (eassert): Assume C89 or later.
2055 This removes the need for CHECK.
2056 (CHECK): Remove. Its comments about always evaluating its
2057 argument were confusing, as 'eassert' typically does not evaluate
2058 its argument.
2059
27bb1ca4
PE
2060 * coding.c (produce_chars): Use ptrdiff_t, not int.
2061
9a900ca9
PE
2062 * xterm.c (x_draw_underwave): Check for integer overflow.
2063 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
2064
41b7f8bc 20652012-06-17 Jan Djärv <jan.h.d@swipnet.se>
50a93863
JD
2066
2067 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
2068 referenced (Bug#11583).
2069
9b0e3eba
AA
20702012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
2071
2072 Implement wave-style variant of underlining.
2073 * dispextern.h (face_underline_type): New enum.
2074 (face): Add field for underline type.
2075 * nsterm.m (ns_draw_underwave): New function.
2076 (ns_draw_text_decoration): Use it.
2077 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
2078 New functions.
2079 (x_draw_glyph_string): Use them.
2080 * xfaces.c (Qline, Qwave): New Lisp objects.
2081 (check_lface_attrs, merge_face_ref)
1053a871
SM
2082 (Finternal_set_lisp_face_attribute, realize_x_face):
2083 Handle wave-style underline face attributes.
9b0e3eba
AA
2084 * xterm.c (x_draw_underwave): New function.
2085 (x_draw_glyph_string): Use it.
2086
0fb52f11
JB
20872012-06-16 Juanma Barranquero <lekktu@gmail.com>
2088
2089 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
2090 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
2091 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
2092 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
2093 ($(BLD)/w32select.$(O)): Update dependencies.
2094
e5560ff7
AS
20952012-06-16 Andreas Schwab <schwab@linux-m68k.org>
2096
2097 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
2098 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
2099 * character.c (_fetch_multibyte_char_p): Remove.
2100 * alloc.c: Include "character.h" before "buffer.h".
2101 * bidi.c: Likewise.
2102 * buffer.c: Likewise.
2103 * bytecode.c: Likewise.
2104 * callint.c: Likewise.
2105 * callproc.c: Likewise.
2106 * casefiddle.c: Likewise.
2107 * casetab.c: Likewise.
2108 * category.c: Likewise.
2109 * cmds.c: Likewise.
2110 * coding.c: Likewise.
2111 * composite.c: Likewise.
2112 * dired.c: Likewise.
2113 * dispnew.c: Likewise.
2114 * doc.c: Likewise.
2115 * dosfns.c: Likewise.
2116 * editfns.c: Likewise.
2117 * emacs.c: Likewise.
2118 * fileio.c: Likewise.
2119 * filelock.c: Likewise.
2120 * font.c: Likewise.
2121 * fontset.c: Likewise.
2122 * fringe.c: Likewise.
2123 * indent.c: Likewise.
2124 * insdel.c: Likewise.
2125 * intervals.c: Likewise.
2126 * keyboard.c: Likewise.
2127 * keymap.c: Likewise.
2128 * lread.c: Likewise.
2129 * macros.c: Likewise.
2130 * marker.c: Likewise.
2131 * minibuf.c: Likewise.
2132 * nsfns.m: Likewise.
2133 * nsmenu.m: Likewise.
2134 * print.c: Likewise.
2135 * process.c: Likewise.
2136 * regex.c: Likewise.
2137 * region-cache.c: Likewise.
2138 * search.c: Likewise.
2139 * syntax.c: Likewise.
2140 * term.c: Likewise.
2141 * textprop.c: Likewise.
2142 * undo.c: Likewise.
2143 * unexsol.c: Likewise.
2144 * w16select.c: Likewise.
2145 * w32fns.c: Likewise.
2146 * w32menu.c: Likewise.
2147 * window.c: Likewise.
2148 * xdisp.c: Likewise.
2149 * xfns.c: Likewise.
2150 * xmenu.c: Likewise.
2151 * xml.c: Likewise.
2152 * xselect.c: Likewise.
2153
2f07e6af
EZ
21542012-06-16 Eli Zaretskii <eliz@gnu.org>
2155
1053a871
SM
2156 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
2157 If all the glyphs of the glyph row came from strings, and we have no
2f07e6af 2158 cursor positioning clues, put the cursor on the first glyph of the
1097afe4
EZ
2159 row.
2160 (handle_face_prop): Use chunk-relative overlay string index when
2161 indexing into it->string_overlays array. (Bug#11653)
946fdb73
EZ
2162 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
2163 the rightmost. (Bug#11720)
2f07e6af 2164
29b83cec
AS
21652012-06-16 Andreas Schwab <schwab@linux-m68k.org>
2166
2167 * category.h (CHAR_HAS_CATEGORY): Define as inline.
2168 (CATEGORY_MEMBER): Enforce 1/0 value.
2169 * category.c (_temp_category_set): Remove.
2170
4c5501e9
EZ
21712012-06-16 Eli Zaretskii <eliz@gnu.org>
2172
2173 * window.c (Fdelete_other_windows_internal)
2174 (Fdelete_window_internal): Don't access frame's mouse highlight
2175 info of the initial frame. (Bug#11677)
2176
2b570124
PE
21772012-06-14 Paul Eggert <eggert@cs.ucla.edu>
2178
e93864f9
PE
2179 * .gdbinit (xgetint): Fix recently-introduced paren typo.
2180 Assume USE_2_TAGS_FOR_INTS.
2181 (xreload): Adjust $tagmask width to match recent lisp.h change.
2182
2b570124
PE
2183 Simplify lisp.h in minor ways that should not affect code.
2184 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
2185 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
2186 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
2187 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
2188 (INTTYPEBITS): New macro, for clarity.
2189 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
1053a871
SM
2190 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
2191 Simplify now that USE_LSB_TAG is always defined.
2b570124
PE
2192 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
2193 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
2194
81755f69
JB
21952012-06-13 Juanma Barranquero <lekktu@gmail.com>
2196
2197 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
2198
16192a57
GM
21992012-06-13 Glenn Morris <rgm@gnu.org>
2200
2201 * s/bsd-common.h (BSD4_3):
2202 * s/usg5-4-common.h (USG5_4): No longer define; unused.
2203
646b5f55
AS
22042012-06-13 Andreas Schwab <schwab@linux-m68k.org>
2205
2206 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
2207 instead of union.
2208 (XLI, XIL): Define.
1053a871
SM
2209 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
2210 Use them.
2211 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
646b5f55 2212 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
1053a871 2213 * alloc.c (widen_to_Lisp_Object): Remove.
646b5f55
AS
2214 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
2215 * frame.c (delete_frame): Remove outdated comment.
2216 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
2217 USE_LISP_UNION_TYPE.
2218 (Fw32_unregister_hot_key): Likewise.
2219 (Fw32_toggle_lock_key): Likewise.
2220 * w32menu.c (add_menu_item): Likewise.
2221 (w32_menu_display_help): Use XIL instead of checking
2222 USE_LISP_UNION_TYPE.
2223 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
2224 (init_heap): Likewise.
2225 * w32term.c (w32_read_socket): Update comment.
2226
1d3823c9
GM
22272012-06-13 Glenn Morris <rgm@gnu.org>
2228
c62ff706
GM
2229 * s/usg5-4-common.h, src/s/unixware.h:
2230 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
2231
1d3823c9
GM
2232 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
2233
bfe3e0a2
PE
22342012-06-13 Paul Eggert <eggert@cs.ucla.edu>
2235
2236 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
2237 * alloc.c (make_number) [!defined make_number]:
2238 Remove, as lisp.h always defines this now.
2239 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
2240 (roundup_size): Verify that it is a power of 2.
2241 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
2242 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
2243 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
2244 -DUSE_LSB_TAG=0, to override the automatically-selected default.
2245 USE_LSB_TAG now is always defined to be either 0 or 1.
2246 All uses changed.
2247 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
2248 code works fine either way, and efficiency is not a concern here,
2249 as the union type is for debugging, not for production.
2250 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
2251 Use an inline function on all platforms when using the union type,
2252 since this is simpler and 'static inline' can be used portably
2253 within Emacs now.
2254 (LISP_INITIALLY_ZERO): New macro.
2255 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
2256 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
2257
45fa9c0f
GM
22582012-06-12 Glenn Morris <rgm@gnu.org>
2259
b4492cba
GM
2260 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
2261
2262 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
0d369729 2263
45fa9c0f
GM
2264 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
2265 Move BROKEN_SIGIO to configure.
2266
2267 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
2268 Move NO_TERMIO to configure.
2269
0e25d334
CY
22702012-06-12 Chong Yidong <cyd@gnu.org>
2271
2272 * image.c (imagemagick_load_image): Use MagickFlattenImage if
2273 MagickMergeImageLayers is undefined. Use pixel pusher loop if
2274 MagickExportImagePixels is undefined.
2275
43682bb6
PE
22762012-06-12 Paul Eggert <eggert@cs.ucla.edu>
2277
2278 * image.c (imagemagick_load_image): Remove unused label.
2279
a9be7d2b
GM
22802012-06-11 Glenn Morris <rgm@gnu.org>
2281
2282 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
2283 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
2284 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
2285 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
2286
3017f87f
SM
22872012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
2288
2289 * alloc.c (make_byte_code): New function.
2290 (Fmake_byte_code): Use it. Don't purify here.
2291 * lread.c (read1): Use it as well to avoid extra allocation.
2292
1b9b4cf4
CY
22932012-06-11 Chong Yidong <cyd@gnu.org>
2294
2295 * image.c (imagemagick_load_image): Implement transparency.
2296
95988fcf
AS
22972012-06-10 Andreas Schwab <schwab@linux-m68k.org>
2298
2299 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
2300 account for preceding backslashes. (Bug#11663)
2301
cd4eb164
CY
23022012-06-09 Chong Yidong <cyd@gnu.org>
2303
2304 * term.c: Support italics in capable terminals (Bug#9652).
2305 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
2306 (turn_on_face): Output using TS_enter_italic_mode if available.
2307 Don't handle unused blinking and alt-charset cases.
2308 (turn_off_face): Handle italic case; discard unused tty_blinking_p
2309 and tty_alt_charset_p cases.
2310 (tty_capable_p, init_tty): Support italics.
2311
2312 * termchar.h (struct tty_display_info): Add field for italics.
2313 Remove unused blink field.
2314
2315 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
2316 Handle slant.
2317
2318 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
2319 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
2320 tty_alt_charset_p. Add tty_italic_p.
2321
ff88beb8
MA
23222012-06-09 Michael Albinus <michael.albinus@gmx.de>
2323
2324 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
2325 dbus_type_is_basic if available.
2326 (xd_extract_signed, xd_extract_unsigned): Rename from
2327 extract_signed and extract_unsigned, respectively. Adapt callers.
2328
44286096
CY
23292012-06-09 Chong Yidong <cyd@gnu.org>
2330
1682701f
CY
2331 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
2332
44286096
CY
2333 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
2334 case (Bug#9752).
2335
d86feb17
PE
23362012-06-08 Paul Eggert <eggert@cs.ucla.edu>
2337
2338 * xdisp.c (vmessage): Treat frame message as multibyte.
2339 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
2340 would generate the diagnostic "Making \302\247 buffer-local while
2341 let-bound!".
2342
d5c20fe8
EZ
23432012-06-08 Eli Zaretskii <eliz@gnu.org>
2344
2345 * dispnew.c (showing_window_margins_p): Undo last change, which
2346 was done due to an inadvertent commit.
2347 (adjust_frame_glyphs_for_frame_redisplay): Do call
2348 showing_window_margins_p.
2349
513749ee
SM
23502012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
2351
2352 * eval.c (Fmake_var_non_special): New primitive.
2353 (syms_of_eval): Defsubr it.
2354 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
2355
d4a8f5c1
JB
23562012-06-08 Juanma Barranquero <lekktu@gmail.com>
2357
2358 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
2359 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
2360
8bbbc977
EZ
23612012-06-08 Eli Zaretskii <eliz@gnu.org>
2362
2363 * alloc.c (allocate_vectorlike): Fix last change.
2364
f3372c87
DA
23652012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
2366
2367 Block-based vector allocation of small vectors.
2368 * lisp.h (struct vectorlike_header): New field `nbytes',
2369 adjust comment accordingly.
2370 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
2371 to denote vector blocks. Adjust users (live_vector_p,
2372 mark_maybe_pointer, valid_lisp_object_p) accordingly.
2373 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
2374 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
2375 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
2376 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
2377 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
2378 (roundup_size): New constant.
2379 (struct vector_block): New data type.
2380 (vector_blocks, vector_free_lists, zero_vector): New variables.
513749ee 2381 (all_vectors): Rename to `large_vectors'.
f3372c87
DA
2382 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
2383 (sweep_vectors): New functions.
2384 (allocate_vectorlike): Return `zero_vector' as the only vector of
2385 0 items. Allocate new vector from block if vector size is less than
2386 or equal to VBLOCK_BYTES_MAX.
2387 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
2388 (init_alloc_once): Add call to init_vectors.
2389
4f18a4ed
SM
23902012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
2391
2392 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
2393
86f158bc
PE
23942012-06-07 Paul Eggert <eggert@cs.ucla.edu>
2395
2396 * doprnt.c (doprnt): Truncate multibyte char correctly.
2397 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
2398 would mishandle a string argument "Xc" if X was a multibyte
2399 character of length 2: it would truncate after X's first byte
2400 rather than including all of X.
2401
c5cfcbe0
CY
24022012-06-06 Chong Yidong <cyd@gnu.org>
2403
2404 * buffer.c (word_wrap): Doc fix.
2405
c05cf390
PE
24062012-06-04 Paul Eggert <eggert@cs.ucla.edu>
2407
2408 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
2409
0c3461de
GM
24102012-06-03 Glenn Morris <rgm@gnu.org>
2411
2412 * xdisp.c (tool-bar-style): Doc fix.
2413
c71232db
UM
24142012-06-03 Ulrich Müller <ulm@gentoo.org>
2415
2416 * Makefile.in (PAXCTL): Define.
2417 (temacs$(EXEEXT)): Disable memory randomization for the temacs
2418 binary via PaX flags if the paxctl utility is available.
2419 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
2420 Restore PaX flags to their default. (Bug#11398)
2421
383f7350
CY
24222012-06-03 Chong Yidong <cyd@gnu.org>
2423
2424 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
2425 buffer (Bug#11226).
2426
5f2c76c6
CY
24272012-06-03 Chong Yidong <cyd@gnu.org>
2428
2429 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
2430 (note_mode_line_or_margin_highlight): If there is no help echo,
2431 use mode-line-default-help-echo. Handle the case where the mouse
2432 position is past the end of the mode line string.
2433
2434 * buffer.c (buffer_local_value_1): New function, split from
2435 Fbuffer_local_value; can return Qunbound.
2436 (Fbuffer_local_value): Use it.
2437 (Vmode_line_format): Docstring tweaks.
2438
773d47f6
PE
24392012-06-02 Paul Eggert <eggert@cs.ucla.edu>
2440
2441 * sysdep.c (system_process_attributes): Improve comment.
2442
f2d6a3df
SM
24432012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
2444
2445 * keyboard.c: Export real-this-command to Elisp.
2446 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
2447 and DEFVAR it. Update all users.
2448
63810350
PE
24492012-06-02 Paul Eggert <eggert@cs.ucla.edu>
2450
7bd5c1f4
PE
2451 * minibuf.c (Fassoc_string): Remove duplicate declaration.
2452
63810350
PE
2453 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
2454 Convert pctcpu and pctmem to Lisp float properly.
2455 Let the compiler fold better, as 100.0/0x8000 is exact.
2456
a2821611
AS
24572012-06-02 Andreas Schwab <schwab@linux-m68k.org>
2458
2459 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
2460 cons_block.
2461
5fceba1d
PE
24622012-06-01 Paul Eggert <eggert@cs.ucla.edu>
2463
2464 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
2465
c98ff5dd
DA
24662012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
2467
2468 For a 'struct window', replace some Lisp_Object fields to
2469 bitfields where appropriate, remove unused fields.
2470 * window.h (struct window): Remove unused 'last_mark_x' and
2471 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
2472 change it's type from Lisp_Object to bitfield.
2473 Change type of 'force_start', 'optional_new_start',
2474 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
2475 fields from Lisp_Object to bitfield. Adjust users accordingly.
2476
ca34e0be
PE
24772012-05-31 Paul Eggert <eggert@cs.ucla.edu>
2478
2479 Pacify gcc -Wdouble-precision when using Xaw.
2480 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
2481 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
2482 Use 'float' consistently, rather than 'float' in most places
2483 and 'double' in a couple of places.
2484
efc00ab1 24852012-05-31 Eli Zaretskii <eliz@gnu.org>
d5fd2c54
EZ
2486
2487 * xdisp.c (handle_stop): Detect whether we have overlay strings
2488 loaded by testing it->current.overlay_string_index to be
2489 non-negative, instead of checking whether n_overlay_strings is
2490 positive. (Bug#11587)
2491
efc00ab1 24922012-05-31 Chong Yidong <cyd@gnu.org>
353c87f6
CY
2493
2494 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
2495
2496 * doc.c (Fsubstitute_command_keys): Doc fix.
2497
efc00ab1 24982012-05-31 Eli Zaretskii <eliz@gnu.org>
a02ae4e5
EZ
2499
2500 * search.c (search_buffer): Remove calls to
2501 r_alloc_inhibit_buffer_relocation, as it is now called by
2502 maybe_unify_char, which was the cause of relocation of buffer text
2503 in bug#11519.
2504
efc00ab1 25052012-05-31 Eli Zaretskii <eliz@gnu.org>
291d430f
EZ
2506
2507 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
2508 for the duration of call to load_charset, to avoid problems with
2509 callers of maybe_unify_char that access buffer text through C
2510 pointers.
2511
2512 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
2513 decrement the inhibition flag, instead of just setting or
2514 resetting it.
2515
ba93a187
PE
25162012-05-31 Paul Eggert <eggert@cs.ucla.edu>
2517
2518 Remove obsolete '#define static' cruft.
2519 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
2520 This #undef was "temporary" in 2000; it is no longer needed
2521 now that '#define static' has gone away.
2522 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
2523 (gray_bitmap_bits): Remove; no longer needed.
2524 All uses replaced with definiens.
2525 * xterm.c: Include "bitmaps/gray.xbm".
2526
9e4bf381
PE
25272012-05-30 Paul Eggert <eggert@cs.ucla.edu>
2528
2529 Clean up __executable_start, monstartup when --enable-profiling.
2530 The following changes affect the code only when profiling.
2531 * dispnew.c (__executable_start): Rename from safe_bcopy.
2532 Define only on platforms that need it.
2533 * emacs.c: Include <sys/gmon.h> when profiling.
2534 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
2535 (__executable_start): Remove decl, since lisp.h does it now.
2536 (safe_bcopy): Remove decl; no longer has that name.
2537 (main): Coalesce #if into single bit of code, for simplicity.
2538 Cast pointers to uintptr_t, since standard libraries want integers
2539 and not pointers.
2540 * lisp.h (__executable_start): New decl.
2541
32d72c2f
GM
25422012-05-31 Glenn Morris <rgm@gnu.org>
2543
2544 * image.c (Fimagemagick_types): Doc fix.
2545
baac5bc7
JM
25462012-05-30 Jim Meyering <meyering@redhat.com>
2547
2548 * callproc.c (Fcall_process_region): Include directory component
2549 in mkstemp error message (Bug#11586).
2550
72cb32cf
PE
25512012-05-30 Paul Eggert <eggert@cs.ucla.edu>
2552
2553 * alloc.c, lisp.h (make_pure_vector): Now static.
2554
61b108cc
SM
25552012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
2556
2557 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
2558 Move to byte-run.el.
2559 (Fautoload): Do the hash-doc more carefully.
2560 * data.c (Fdefalias): Purify definition, except for keymaps.
2561 (Qdefun): Move from eval.c.
2562 * lisp.h (Qdefun): Remove.
2563 * lread.c (read1): Tiny simplification.
2564
471fe23d
TN
25652012-05-29 Troels Nielsen <bn.troels@gmail.com>
2566
934f3f58 2567 Do not create empty overlays with the evaporate property (Bug#9642).
471fe23d
TN
2568 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
2569 Bug#9642, but explicitly check that the buffer the overlay would
2570 be moved to is live and rearrange lines to make sure that errors
2571 will not put the overlay in an inconsistent state.
2572 (Fdelete_overlay): Cosmetics.
2573
85d0efd1
EZ
25742012-05-28 Eli Zaretskii <eliz@gnu.org>
2575
2576 * w32term.c (my_bring_window_to_top): New function.
2577 (x_raise_frame): Use handle returned by DeferWindowPos, which
61b108cc
SM
2578 could be different from the original one.
2579 Call my_bring_window_to_top instead of my_set_foreground_window.
85d0efd1
EZ
2580 (Bug#11513)
2581
2582 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
2583 by calling BringWindowToTop.
2584
2585 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
2586 (WM_EMACS_END): Increase by one.
2587
da92a98c
PE
25882012-05-28 Paul Eggert <eggert@cs.ucla.edu>
2589
2590 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
2591 This avoids undefined behavior that might cause the eassert
2592 to not catch an out-of-range value.
2593
74d1f848
JB
25942012-05-28 Juanma Barranquero <lekktu@gmail.com>
2595
2596 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
2597 Update dependencies.
2598
9e1a06fc
EZ
25992012-05-27 Eli Zaretskii <eliz@gnu.org>
2600
2601 * bidi.c (bidi_mirror_char): Fix last change.
2602
f3dd7312
AS
26032012-05-27 Andreas Schwab <schwab@linux-m68k.org>
2604
2605 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
2606 when referring to sectname field in printf format.
2607
81899c91
PE
26082012-05-27 Paul Eggert <eggert@cs.ucla.edu>
2609
57b81a9f
PE
2610 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
2611 Only r_alloc_inhibit_buffer_relocation needed to be added;
2612 the others were already declared.
2613
81899c91
PE
2614 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
2615 before checking whether it's out of range. Put the check inside
2616 eassert. See
2617 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
2618
33017faf 26192012-05-27 Ken Brown <kbrown@cornell.edu>
2f9b9adb
KB
2620
2621 * callproc.c (Fcall_process): Restore a line that was accidentally
2622 commented out in the 2011-02-13 change (bug#11547).
2623
33017faf 26242012-05-27 Eli Zaretskii <eliz@gnu.org>
52c55cc7
EZ
2625
2626 * lisp.h [REL_ALLOC]: Add prototypes for external functions
2627 defined on ralloc.c.
2628
2629 * buffer.c [REL_ALLOC]: Remove prototypes of
2630 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
2631 they are now on lisp.h.
2632
2633 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
2634
2635 * search.c (search_buffer): Use it to inhibit relocation of buffer
2636 text while re_search_2 is doing its job, because re_search_2 is
2637 passed C pointers to buffer text. (Bug#11519)
2638
23415acf
EZ
2639 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
2640 Update value to 24.
2641
44e27368
EZ
2642 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
2643 state after an additional call to move_it_in_display_line_to, keep
2644 the values of it->max_ascent and it->max_descent found for the
2645 entire line.
2646 (pos_visible_p): Revert the comparison against bottom_y to what it
2647 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
2648 (Bug#11464)
2649
c1892f11
PE
26502012-05-26 Paul Eggert <eggert@cs.ucla.edu>
2651
2652 Fix coding-related core dumps with gcc -ftrapv.
2653 The code was computing A - B, where A and B are pointers, and B is
2654 random garbage. This can lead to core dumps on platforms that
2655 have special pointer registers, and it also leads to core dumps on
2656 x86-64 when compiled with gcc -ftrapv. The fix is to compute
2657 A - B only when B is initialized properly.
2658 * coding.c (coding_set_source, coding_set_destination): Return void.
2659 (coding_change_source, coding_change_destinations): New functions,
2660 with the old behaviors of coding_set_source and coding_set_destination.
2661 All callers that need an offset changed to use these new functions.
2662
eb7afdad
GM
26632012-05-26 Glenn Morris <rgm@gnu.org>
2664
2665 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
2666
f12fdf02
EZ
26672012-05-26 Eli Zaretskii <eliz@gnu.org>
2668
53a63be6 2669 Extend mouse support on W32 text-mode console.
61b108cc
SM
2670 * xdisp.c (draw_row_with_mouse_face):
2671 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
eb3f6f01 2672
eb3f6f01 2673 * w32console.c: Include window.h.
61b108cc
SM
2674 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
2675 New functions.
eb3f6f01
EZ
2676 (initialize_w32_display): Initialize mouse-highlight data.
2677
53a63be6
EZ
2678 * w32inevt.c: Include termchar.h and window.h.
2679 (do_mouse_event): Support mouse-autoselect-window. When the mouse
2680 moves, call note_mouse_highlight. If help_echo changed, call
2681 gen_help_event to produce help-echo message in the echo area.
2682 Call clear_mouse_face if mouse_face_hidden is set in the mouse
2683 highlight info.
2684
4cfd81f6
PE
26852012-05-26 Paul Eggert <eggert@cs.ucla.edu>
2686
2687 * lread.c (read1): Simplify slightly to avoid an overflow warning
2688 with GCC 4.7.0 on x86-64.
2689
4446092a
EZ
26902012-05-26 Eli Zaretskii <eliz@gnu.org>
2691
2692 * bidi.c (bidi_mirror_char): Revert last change: an int is
2693 definitely wide enough here.
2694
42b2a986 26952012-05-25 Paul Eggert <eggert@cs.ucla.edu>
3164aeac 2696
42b2a986 2697 Fix integer width and related bugs (Bug#9874).
eb106a49 2698 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
d311d28c
PE
2699 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
2700 (string_bytes, check_sblock, allocate_string_data):
2701 (compact_small_strings, Fmake_bool_vector, make_string)
2702 (make_unibyte_string, make_multibyte_string)
2703 (make_string_from_bytes, make_specified_string)
2704 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
2705 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
2706 (mark_vectorlike):
2707 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2708 (allocate_pseudovector):
2709 Use int, not EMACS_INT, where int is wide enough.
2710 (inhibit_garbage_collection, Fgarbage_collect):
2711 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2712 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
2713 int might not be wide enough.
2714 (bidi_cache_search, bidi_cache_find, bidi_init_it)
2715 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
2716 (bidi_at_paragraph_end, bidi_find_paragraph_start)
2717 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
2718 (bidi_level_of_next_char, bidi_move_to_visually_next):
2719 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2720 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
2721 (Fkill_buffer, Fset_buffer_major_mode)
2722 (advance_to_char_boundary, Fbuffer_swap_text)
2723 (Fset_buffer_multibyte, overlays_at, overlays_in)
2724 (overlay_touches_p, struct sortvec, record_overlay_string)
2725 (overlay_strings, recenter_overlay_lists)
2726 (adjust_overlays_for_insert, adjust_overlays_for_delete)
2727 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
2728 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
2729 (Foverlay_recenter, last_overlay_modification_hooks_used)
2730 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
2731 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
977b0e45
PE
2732 (validate_region): Omit unnecessary test for b <= e,
2733 since that's guaranteed by the previous test.
d311d28c
PE
2734 (adjust_overlays_for_delete): Avoid pos + length overflow.
2735 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
2736 (report_overlay_modification):
2737 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2738 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
2739 Omit pointer cast, which isn't needed anyway, and doesn't work
2740 after the EMACS_INT -> ptrdiff_t change.
02481186 2741 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
d311d28c
PE
2742 * buffer.h: Adjust decls to match defn changes elsewhere.
2743 (struct buffer_text, struct buffer):
2744 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2745 Use EMACS_INT, not int, where int might not be wide enough.
39b5db3b
PE
2746 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
2747 not int, to avoid needless 32-bit limit on 64-bit hosts.
2748 (exec_byte_code): Use tighter memory-full test, one that checks
2749 for alloca overflow. Don't compute the address of the object just
2750 before an array, as that's not portable. Use EMACS_INT, not
2751 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
d311d28c
PE
2752 * callint.c (Fcall_interactively):
2753 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2754 * callproc.c (call_process_kill, Fcall_process):
2755 Don't assume pid_t fits into an Emacs fixnum.
2756 (call_process_cleanup, Fcall_process, child_setup):
2757 Don't assume pid_t fits into int.
2758 (call_process_cleanup, Fcall_process, delete_temp_file)
2759 (Fcall_process_region):
2760 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2761 (Fcall_process): Simplify handling of volatile integers.
2762 Use int, not EMACS_INT, where int will do.
2763 * casefiddle.c (casify_object, casify_region, operate_on_word)
2764 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
2765 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2766 (casify_object): Avoid integer overflow when overallocating buffer.
2767 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
45c2afd6 2768 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
d311d28c
PE
2769 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
2770 * category.h (CATEGORYP): Don't assume arg is nonnegative.
2771 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
2772 integers are now checked earlier. All uses replaced with XINT.
2773 (ccl_driver):
2774 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2775 For CCL_MapSingle, check that content and value are in int range.
c801946a
PE
2776 (ccl_driver, Fregister_code_conversion_map):
2777 Check that Vcode_version_map_vector is a vector.
d311d28c
PE
2778 (resolve_symbol_ccl_program): Check that vector header is in range.
2779 Always copy the vector, so that we can check its contents reliably
2780 now rather than having to recheck each instruction as it's being
2781 executed. Check that vector words fit in 'int'.
2782 (ccl_get_compiled_code, Fregister_ccl_program)
2783 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
2784 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
2785 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
2786 contents are in range.
2787 (Fccl_execute_on_string): Check that status is in range.
2788 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
2789 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
2790 Accept and return EMACS_INT, not int, because callers can pass values
2791 out of 'int' range.
2792 (c_string_width, strwidth, lisp_string_width, chars_in_text)
2793 (multibyte_chars_in_text, parse_str_as_multibyte)
2794 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
2795 (str_as_unibyte, str_to_unibyte, string_count_byte8)
2796 (string_escape_byte8, Fget_byte):
2797 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
a14e1568 2798 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
d311d28c
PE
2799 avoid mishandling large integers.
2800 * character.h: Adjust decls to match defn changes elsewhere.
2801 * charset.c (load_charset_map_from_file, find_charsets_in_text)
2802 (Ffind_charset_region):
2803 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2804 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
2805 (load_charset_map_from_vector, Fdefine_charset_internal):
3c7649c1 2806 Don't assume fixnum fits in int.
d311d28c
PE
2807 (load_charset_map_from_vector, Fmap_charset_chars):
2808 Remove now-unnecessary CHECK_NATNUMs.
2809 (Fdefine_charset_internal): Check ranges here, more carefully.
3c7649c1
PE
2810 Don't rely on undefined behavior with signed left shift overflow.
2811 Don't assume unsigned int fits into fixnum, or that fixnum fits
2812 into unsigned int. Don't require max_code to be a valid fixnum;
2813 that's not true for gb10830 4-byte on a 32-bit host. Allow
2814 invalid_code to be a cons, for the same reason. Require code_offset
2815 to be a character. Avoid int overflow if max_char is close
2816 to INT_MAX.
2817 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
2818 this is intended anyway and avoids some undefined behavior.
2819 (load_charset_map): Pass unsigned, not int, as 2nd arg of
2820 INDEX_TO_CODE_POINT, as that's what it expects.
2821 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
60ad3eab
PE
2822 * charset.h (DECODE_CHAR): Return int, not unsigned;
2823 this is what was intended anyway, and it avoids undefined behavior.
2824 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
2825 integer-overflow issues.
2826 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
2827 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
2828 where the argument is EMACS_INT, and this behavior is not intended.
d311d28c
PE
2829 * chartab.c (Fmake_char_table, Fset_char_table_range)
2830 (uniprop_get_decoder, uniprop_get_encoder):
2831 Don't assume fixnum fits in int.
2832 * cmds.c (move_point): New function, that does the gist of
2833 Fforward_char and Fbackward_char, but does so while checking
2834 for integer overflow more accurately.
c96e5d6a 2835 (Fforward_char, Fbackward_char): Use it.
d311d28c
PE
2836 (Fforward_line, Fend_of_line, internal_self_insert)
2837 (internal_self_insert):
2838 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2839 Fix a FIXME, by checking for integer overflow when calculating
2840 target_clm and actual_clm.
2841 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
8f50130c 2842 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
d311d28c
PE
2843 (ASSURE_DESTINATION, coding_alloc_by_realloc)
2844 (coding_alloc_by_making_gap, alloc_destination)
2845 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
2846 (encode_coding_utf_16, detect_coding_emacs_mule)
2847 (decode_coding_emacs_mule, encode_coding_emacs_mule)
2848 (detect_coding_iso_2022, decode_coding_iso_2022)
2849 (encode_invocation_designation, encode_designation_at_bol)
2850 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
2851 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
2852 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
2853 (encode_coding_ccl, encode_coding_raw_text)
2854 (detect_coding_charset, decode_coding_charset)
2855 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
2856 (produce_composition, produce_charset, produce_annotation)
2857 (decode_coding, handle_composition_annotation)
2858 (handle_charset_annotation, consume_chars, decode_coding_gap)
2859 (decode_coding_object, encode_coding_object, detect_coding_system)
2860 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
2861 (code_convert_region, code_convert_string)
8f50130c
PE
2862 (Fdefine_coding_system_internal)
2863 (coding_set_source, coding_set_destination):
d311d28c
PE
2864 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2865 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
2866 (Fdefine_coding_system_internal):
2867 Don't assume fixnums fit in int.
2868 (decode_coding_gap, decode_coding_object, encode_coding_object)
5895d7b9 2869 (Fread_coding_system, Fdetect_coding_region)
2c6a9faa
PE
2870 (Funencodable_char_position, Fcheck_coding_systems_region)
2871 (get_translation, handle_composition_annotation, consume_chars):
d311d28c 2872 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
977b0e45 2873 (consume_chars): Rewrite to not calculate an address outside buffer.
d311d28c 2874 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
7b09a37a 2875 Don't access memory outside of the args array.
d311d28c 2876 (Fdefine_coding_system_internal): Check for charset-id overflow.
47664caa
PE
2877 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
2878 result of ENCODE_CHAR.
d311d28c
PE
2879 * coding.h: Adjust decls to match defn changes elsewhere.
2880 (struct coding_system):
2881 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2882 * composite.c (get_composition_id, find_composition)
2883 (run_composition_function, update_compositions)
2884 (compose_text, composition_gstring_put_cache)
2885 (composition_gstring_p, composition_gstring_width)
2886 (fill_gstring_header, fill_gstring_body, autocmp_chars)
2887 (composition_compute_stop_pos, composition_reseat_it)
2888 (composition_update_it, struct position_record)
2889 (find_automatic_composition, composition_adjust_point)
2890 (Fcomposition_get_gstring, Ffind_composition_internal):
2891 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2892 (update_compositions):
2893 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2894 * composite.h: Adjust decls to match defn changes elsewhere.
2895 (struct composition):
2896 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2897 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
2898 Do not attempt to compute the address of the object just before a
2899 buffer; this is not portable.
2900 (Faref, Faset):
2901 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2902 (Faset): Use int, not EMACS_INT, where int is wide enough.
2903 (Fstring_to_number): Don't assume fixnums fit in int.
2904 (Frem): Don't assume arg is nonnegative.
2905 * dbusbind.c (xd_append_arg): Check for integers out of range.
2906 (Fdbus_call_method): Don't overflow the timeout int.
42b2a986 2907 (extract_signed, extract_unsigned): New functions.
243e0530
PE
2908 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
2909 (xd_get_connection_references): Return ptrdiff_t, not int.
2910 All uses changed.
2911 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
2912 (xd_read_message_1):
2913 Use int, not unsigned, where the dbus API uses int.
2914 (Fdbus_message_internal): Don't overflow mtype.
2915 (syms_of_dbusbind): Allocate right-sized buffer for integers.
d311d28c
PE
2916 * dired.c (directory_files_internal, file_name_completion, scmp)
2917 (file_name_completion_stat):
2918 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2919 (file_name_completion): Don't overflow matchcount.
2920 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
2921 * dispextern.h: Adjust decls to match defn changes elsewhere.
2922 (struct text_pos, struct glyph, struct bidi_saved_info)
2923 (struct bidi_string_data, struct bidi_it, struct composition_it)
2924 (struct it):
2925 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2926 (struct display_pos, struct composition_it, struct it):
2927 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2928 * dispnew.c (increment_matrix_positions)
2929 (increment_row_positions, mode_line_string)
2930 (marginal_area_string):
2931 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
54e1617f 2932 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
d311d28c
PE
2933 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2934 (duration_to_sec_usec): New function, to check for overflow better.
2935 (Fsleep_for, sit_for): Use it.
2936 * doc.c (get_doc_string, store_function_docstring):
2937 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2938 (get_doc_string, Fsnarf_documentation):
2939 Use int, not EMACS_INT, where int is wide enough.
2940 (get_doc_string):
2941 Use SAFE_ALLOCA, not alloca.
2942 Check for overflow when converting EMACS_INT to off_t.
2943 * doprnt.c (doprnt):
2944 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2945 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
2946 Don't assume uid_t fits into fixnum.
2947 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
2948 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
2949 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
2950 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
2951 (general_insert_function)
2952 (Finsert_char, make_buffer_string, make_buffer_string_both)
2953 (update_buffer_properties, Fbuffer_substring)
2954 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
2955 (Fsubst_char_in_region, check_translation)
2956 (Ftranslate_region_internal, save_restriction_restore, Fformat)
2957 (transpose_markers, Ftranspose_regions):
2958 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2959 (clip_to_bounds): Move to lisp.h as an inline function).
2960 (Fconstrain_to_field): Don't assume integers are nonnegative.
2961 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
2962 (Fsubst_char_in_region, Fsave_restriction):
2963 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2964 (Femacs_pid): Don't assume pid_t fits into fixnum.
2965 (lo_time): Use int, not EMACS_INT, when int suffices.
2966 (lisp_time_argument): Check for usec out of range.
2967 (Fencode_time): Don't assume fixnum fits in int.
3f4eabd1
PE
2968 (Fuser_login_name, Fuser_full_name): Signal an error
2969 if a uid argument is out of range, rather than relying on
2970 undefined behavior.
c8d5c857
PE
2971 (Fformat_time_string): Remove now-unnecessary check.
2972 lisp_time_argument checks for out-of-range usec now.
243e0530 2973 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
d311d28c
PE
2974 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
2975 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
2976 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
2977 (init_cmdargs, Fdump_emacs):
2978 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2979 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
2980 the bottom (typically) 32 bits of the fixnum.
2981 * eval.c (specpdl_size, call_debugger):
2982 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2983 (when_entered_debugger, Fbacktrace_debug):
2984 Don't assume fixnum can fit in int.
2985 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
2986 the object just before a buffer; this is not portable.
2987 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
2988 (grow_specpdl, unbind_to):
2989 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2990 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
2991 (grow_specpdl): Simplify allocation by using xpalloc.
856bbc81 2992 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
d311d28c
PE
2993 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
2994 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
2995 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2996 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
2997 (a_write, e_write):
2998 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2999 (Fcopy_file, non_regular_nbytes, read_non_regular)
3000 (Finsert_file_contents):
3001 Use int, not EMACS_INT, where int is wide enough.
3002 (READ_BUF_SIZE): Verify that it fits in int.
3003 (Finsert_file_contents): Check that counts are in proper range,
3004 rather than assuming fixnums fit into ptrdiff_t etc.
3005 Don't assume fixnums fit into int.
125b3835 3006 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
5895d7b9
PE
3007 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
3008 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
d311d28c
PE
3009 (string_char_to_byte, string_byte_to_char)
3010 (string_make_multibyte, string_to_multibyte)
3011 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
3012 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
3013 (substring_both, Fdelete, internal_equal, Ffillarray)
3014 (Fclear_string, mapcar1)
3015 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
3016 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
3017 (larger_vector, make_hash_table, maybe_resize_hash_table)
3018 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
3019 (Fmaphash, secure_hash):
3020 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3021 (concat): Check for string index and length overflow.
3022 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
3023 (Frequire):
3024 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3025 (larger_vector): New API (vec, incr_min, size_max) replaces old
3026 one (vec, new_size, init). This catches size overflow.
3027 INIT was removed because it was always Qnil.
3028 All callers changed.
3029 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
3030 the upper bound on a hash table index size.
3031 (make_hash_table, maybe_resize_hash_table): Use it.
3032 (secure_hash): Computer start_byte and end_byte only after
3033 they're known to be in ptrdiff_t range.
3034 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
3035 (Ffont_get_glyphs, Ffont_at):
3036 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3037 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
3038 (Flist_fonts, Fopen_font):
3039 Don't assume fixnum can fit in int.
3040 (check_gstring): Don't assume index can fit in int.
3041 (font_match_p): Check that fixnum is a character, not a nonnegative
3042 fixnum, since the later code needs to stuff it into an int.
3043 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
3044 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
3045 conversion overflow issues.
3046 (Fopen_font): Check for integer out of range.
3047 (Ffont_get_glyphs): Don't assume index can fit in int.
3048 * font.h: Adjust decls to match defn changes elsewhere.
3049 * fontset.c (reorder_font_vector): Redo score calculation to avoid
3050 integer overflow.
3051 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
3052 printmax_t, where ptrdiff_t is wide enough.
3053 (Finternal_char_font):
3054 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3055 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
3056 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
3057 (Fset_frame_position, x_set_frame_parameters)
3058 (x_set_line_spacing, x_set_border_width)
3059 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
3060 Check that fixnums are in proper range for system types.
3061 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
3062 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3063 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
3064 Use SAFE_ALLOCA_LISP, not alloca.
3065 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
3066 intptr_t is wide enough.
3067 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
3068 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
3069 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
3070 Check for fixnum out of range.
3071 * ftfont.c (ftfont_list): Don't assume index fits in int.
3072 Check that fixnums are in proper range for system types.
3073 (ftfont_shape_by_flt):
3074 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
d311d28c
PE
3075 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
3076 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3077 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
3078 Check that fixnums are in proper range for system types.
3079 * gnutls.h: Adjust decls to match defn changes elsewhere.
3080 * gtkutil.c (xg_dialog_run):
3081 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3082 (update_frame_tool_bar):
3083 Check that fixnums are in proper range for system types.
3084 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
5895d7b9 3085 (lookup_image): Check that fixnums are in range for system types.
d311d28c
PE
3086 * indent.c (last_known_column, last_known_column_point):
3087 (current_column_bol_cache):
3088 (skip_invisible, current_column, check_display_width):
3089 (check_display_width, scan_for_column, current_column_1)
3090 (Findent_to, Fcurrent_indentation, position_indentation)
3091 (indented_beyond_p, Fmove_to_column, compute_motion):
3092 (Fcompute_motion, Fvertical_motion):
3093 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3094 (last_known_column_modified): Use EMACS_INT, not int.
3095 (check_display_width):
3096 (Fcompute_motion):
3097 Check that fixnums and floats are in proper range for system types.
3098 (compute_motion): Don't assume index or fixnum fits in int.
3099 (compute_motion, Fcompute_motion):
3100 Use int, not EMACS_INT, when it is wide enough.
3101 (vmotion): Omit local var start_hpos that is always 0; that way
3102 we don't need to worry about overflow in expressions involving it.
3103 * indent.h: Adjust decls to match defn changes elsewhere.
3104 (struct position):
3105 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3106 Use int, not EMACS_INT, where int is wide enough.
3107 Remove unused members ovstring_chars_done and tab_offset;
3108 all uses removed.
3109 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
3110 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
3111 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
3112 (make_gap, copy_text, insert, insert_and_inherit)
3113 (insert_before_markers, insert_before_markers_and_inherit)
3114 (insert_1, count_combining_before, count_combining_after)
3115 (insert_1_both, insert_from_string)
3116 (insert_from_string_before_markers, insert_from_string_1)
3117 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
3118 (adjust_after_replace, adjust_after_insert, replace_range)
3119 (replace_range_2, del_range, del_range_1, del_range_byte)
3120 (del_range_both, del_range_2, modify_region)
3121 (prepare_to_modify_buffer, signal_before_change)
3122 (signal_after_change, Fcombine_after_change_execute):
3123 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3124 * intervals.c (traverse_intervals, rotate_right, rotate_left)
3125 (balance_an_interval, split_interval_right, split_interval_left)
3126 (find_interval, next_interval, update_interval)
3127 (adjust_intervals_for_insertion, delete_node, delete_interval)
3128 (interval_deletion_adjustment, adjust_intervals_for_deletion)
3129 (static_offset_intervals, offset_intervals)
3130 (merge_interval_right, merge_interval_left, make_new_interval)
3131 (graft_intervals_into_buffer, temp_set_point_both)
3132 (temp_set_point, set_point, adjust_for_invis_intang)
3133 (set_point_both, move_if_not_intangible, get_property_and_range)
3134 (get_local_map, copy_intervals, copy_intervals_to_string)
3135 (compare_string_intervals, set_intervals_multibyte_1):
3136 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3137 * intervals.h: Adjust decls to match defn changes elsewhere.
3138 (struct interval):
3139 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3140 * keyboard.c (this_command_key_count, this_single_command_key_start)
3141 (before_command_key_count, before_command_echo_length, echo_now)
3142 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
3143 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
3144 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
3145 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
3146 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3147 (last_non_minibuf_size, last_point_position, echo_truncate)
3148 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
3149 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
3150 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
3151 (stuff_buffered_input):
3152 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3153 (last_auto_save, command_loop_1, read_char):
3154 Use EMACS_INT, not int, to avoid integer overflow.
3155 (record_char): Avoid overflow in total_keys computation.
3156 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
3157 * keyboard.h: Adjust decls to match defn changes elsewhere.
3158 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
3159 (Fkey_description, Fdescribe_vector, Flookup_key):
3160 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3161 (click_position): New function, to check that positions are in range.
3162 (Fcurrent_active_maps):
3163 (describe_command):
3164 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3165 (Faccessible_keymaps, Fkey_description):
3166 (preferred_sequence_p):
3167 Don't assume fixnum can fit into int.
3168 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
3169 Check for integer overflow in size calculations.
3170 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
3171 avoid mishandling large integers.
3172 * lisp.h: Adjust decls to match defn changes elsewhere.
3173 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
3174 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
3175 (struct Lisp_Marker):
3176 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3177 (clip_to_bounds): Now an inline function, moved here from editfns.c.
d311d28c
PE
3178 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
3179 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
3180 All callers changed.
3181 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
3182 Assume the arg has valid form, since it always does.
3183 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
3184 unsigned integer system type.
3185 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
3186 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
3187 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3188 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
3189 (duration_to_sec_usec): New decl.
3190 * lread.c (read_from_string_index, read_from_string_index_byte)
3191 (read_from_string_limit, readchar, unreadchar, openp)
3192 (read_internal_start, read1, oblookup):
3193 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3194 (Fload, readevalloop, Feval_buffer, Feval_region):
3195 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3196 (openp): Check for out-of-range argument to 'access'.
3197 (read1): Use int, not EMACS_INT, where int is wide enough.
3198 Don't assume fixnum fits into int.
6efdadfd 3199 Fix off-by-one error that can read outside a buffer.
1ab7b8ac
PE
3200 (read_filtered_event): Use duration_to_sec_usec
3201 to do proper overflow checking on durations.
d311d28c
PE
3202 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
3203 in size calculation.
3204 (Fexecute_kbd_macro):
3205 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3206 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
3207 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
3208 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
3209 (set_marker_both, set_marker_restricted_both, marker_position)
3210 (marker_byte_position, Fbuffer_has_markers_at):
3211 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3212 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
61b108cc 3213 * menu.c (ensure_menu_items): Rename from grow_menu_items.
d311d28c
PE
3214 It now merely ensures that the menu is large enough, without
3215 necessarily growing it, as this avoids some integer overflow issues.
3216 All callers changed.
3217 (keymap_panes, parse_single_submenu, Fx_popup_menu):
3218 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3219 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
3220 Use SAFE_ALLOCA_LISP, not alloca.
3221 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
3222 to EMACS_INT. Check that fixnums are in proper range for system types.
3223 * minibuf.c (minibuf_prompt_width, string_to_object)
3224 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
3225 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
3226 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3227 (get_minibuffer, read_minibuf_unwind):
3228 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3229 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
3230 this simplifies overflow checking. All callers changed.
3231 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
3232 (Ftest_completion):
3233 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3234 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
3235 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
3236 Check that fixnums are in proper range for system types.
3237 (Fx_create_frame, Fx_show_tip):
3238 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3239 * nsfont.m (ns_findfonts, nsfont_list_family):
3240 Don't assume fixnum fits in long.
3241 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
3242 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3243 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
3244 wide enough.
17fdb222 3245 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
d311d28c
PE
3246 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3247 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
3248 (PRINTDECLARE, PRINTPREPARE):
3249 (strout, print_string):
3250 (print, print_preprocess, print_check_string_charset_prop)
3251 (print_object):
3252 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3253 (PRINTDECLARE):
3254 (temp_output_buffer_setup, Fprin1_to_string, print_object):
3255 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3256 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
d311d28c 3257 (printchar, strout): Use xpalloc to catch size calculation overflow.
0fd11aa5 3258 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
d311d28c
PE
3259 (print_error_message): Use SAFE_ALLOCA, not alloca.
3260 (print_object): Use int, not EMACS_INT, where int is wide enough.
a8b7caa3
PE
3261 (print_depth, new_backquote_output, print_number_index):
3262 Use ptrdiff_t, not int, where int might not be wide enough.
d311d28c
PE
3263 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
3264 (Fset_process_window_size, Fformat_network_address)
3265 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
d44287d4 3266 (sigchld_handler):
d311d28c 3267 Check that fixnums are in proper range for system types.
d44287d4 3268 (Fsignal_process): Simplify by avoiding a goto.
d83cf4cc
PE
3269 Check for process-ids out of pid_t range rather than relying on
3270 undefined behavior.
e4d81efc 3271 (process_tick, update_tick): Use EMACS_INT, not int.
d311d28c
PE
3272 (Fformat_network_address, read_process_output, send_process)
3273 (Fprocess_send_region, status_notify):
3274 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3275 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
3276 (wait_reading_process_output, read_process_output, exec_sentinel):
3277 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3278 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
3279 (Faccept_process_output): Use duration_to_sec_usec to do proper
3280 overflow checking on durations.
dde14581
PE
3281 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
3282 Don't assume pid_t fits in int.
02481186
PE
3283 * process.h (struct Lisp_Process): Members tick and update_tick
3284 are now of type EMACS_INT, not int.
b62b53e8
PE
3285 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
3286 configured --with-wide-int.
d311d28c
PE
3287 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
3288 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
3289 * search.c (looking_at_1, string_match_1):
3290 (fast_string_match, fast_c_string_match_ignore_case)
3291 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
3292 (scan_newline, find_before_next_newline, search_command)
3293 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
3294 (set_search_regs, wordify):
3295 (Freplace_match):
3296 (Fmatch_data):
3297 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3298 (string_match_1, search_buffer, set_search_regs):
3299 (Fmatch_data):
3300 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3301 (wordify): Check for overflow in size calculation.
3302 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
3303 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
3304 Check that fixnums are in proper range for system types.
3305 * sound.c (struct sound_device)
3306 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
3307 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3308 (Fplay_sound_internal):
3309 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
eacd378d 3310 * syntax.c (struct lisp_parse_state, find_start_modiff)
d311d28c
PE
3311 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
3312 (Fparse_partial_sexp):
3313 Don't assume fixnums can fit in int.
3314 (struct lisp_parse_state, find_start_pos, find_start_value)
3315 (find_start_value_byte, find_start_begv)
3316 (update_syntax_table, char_quoted, dec_bytepos)
3317 (find_defun_start, prev_char_comend_first, back_comment):
3318 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
3319 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
3320 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3321 (Finternal_describe_syntax_value): Check that match_lisp is a
3322 character, not an integer, since the code stuffs it into int.
3323 (scan_words, scan_sexps_forward):
3324 Check that fixnums are in proper range for system types.
3325 (Fforward_word):
3326 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3327 (scan_sexps_forward):
3328 Use CHARACTERP, not INTEGERP, since the value must fit into int.
3329 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
3330 * syntax.h: Adjust decls to match defn changes elsewhere.
3331 (struct gl_state_s):
3332 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
e4ecdc9c
PE
3333 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
3334 MOST_POSITIVE_FIXNUM.
d311d28c
PE
3335 * sysdep.c (wait_for_termination_1, wait_for_termination)
3336 (interruptible_wait_for_termination, mkdir):
3337 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
3338 (emacs_read, emacs_write):
3339 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
225a2cff
PE
3340 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
3341 and double all fit in int.
d311d28c
PE
3342 * term.c (set_tty_color_mode):
3343 Check that fixnums are in proper range for system types.
3344 * termhooks.h (struct input_event):
3345 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3346 * textprop.c (validate_interval_range, interval_of)
3347 (Fadd_text_properties, set_text_properties_1)
3348 (Fremove_text_properties, Fremove_list_of_text_properties)
3349 (Ftext_property_any, Ftext_property_not_all)
3350 (copy_text_properties, text_property_list, extend_property_ranges)
3351 (verify_interval_modification):
3352 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3353 (Fnext_single_char_property_change)
3354 (Fprevious_single_char_property_change):
3355 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5895d7b9
PE
3356 (copy_text_properties):
3357 Check for integer overflow in index calculation.
d311d28c
PE
3358 * undo.c (last_boundary_position, record_point, record_insert)
3359 (record_delete, record_marker_adjustment, record_change)
3360 (record_property_change):
3361 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3362 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
3363 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3364 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
3365 (Fx_hide_tip, Fx_file_dialog):
3366 * w32menu.c (set_frame_menubar):
3367 Use ptrdiff_t, not int, for consistency with rest of code.
3368 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
3369 (select_window, Fdelete_other_windows_internal)
3370 (window_scroll_pixel_based, window_scroll_line_based)
3371 (Frecenter, Fset_window_configuration):
3372 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3373 (Fset_window_hscroll, run_window_configuration_change_hook)
3374 (set_window_buffer, temp_output_buffer_show, scroll_command)
5895d7b9 3375 (Fscroll_other_window, Frecenter):
d311d28c
PE
3376 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3377 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
3378 Don't assume fixnum fits in int.
3379 (Fset_window_scroll_bars):
3380 Check that fixnums are in proper range for system types.
3381 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
3382 (string_pos, c_string_pos, number_of_chars, init_iterator)
3383 (in_ellipses_for_invisible_text_p, init_from_display_pos)
3384 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
3385 (compute_display_string_end, handle_face_prop)
5895d7b9
PE
3386 (face_before_or_after_it_pos, handle_invisible_prop)
3387 (handle_display_prop, handle_display_spec, handle_single_display_spec)
d311d28c
PE
3388 (display_prop_intangible_p, string_buffer_position_lim)
3389 (string_buffer_position, handle_composition_prop, load_overlay_strings)
3390 (get_overlay_strings_1, get_overlay_strings)
3391 (iterate_out_of_display_property, forward_to_next_line_start)
3392 (back_to_previous_visible_line_start, reseat, reseat_to_string)
3393 (get_next_display_element, set_iterator_to_next)
3394 (get_visually_first_element, compute_stop_pos_backwards)
3395 (handle_stop_backwards, next_element_from_buffer)
3396 (move_it_in_display_line_to, move_it_in_display_line)
3397 (move_it_to, move_it_vertically_backward, move_it_by_lines)
3398 (add_to_log, message_dolog, message_log_check_duplicate)
3399 (message2, message2_nolog, message3, message3_nolog
3400 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
3401 (current_message_1, truncate_echo_area, truncate_message_1)
3402 (set_message, set_message_1, store_mode_line_noprop)
3403 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
3404 (text_outside_line_unchanged_p, check_point_in_composition)
3405 (reconsider_clip_changes)
3406 (redisplay_internal, set_cursor_from_row, try_scrolling)
3407 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
3408 (redisplay_window, find_last_unchanged_at_beg_row)
3409 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
3410 (trailing_whitespace_p, find_row_edges, display_line)
3411 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
3412 (display_mode_element, store_mode_line_string)
3413 (pint2str, pint2hrstr, decode_mode_spec)
3414 (display_count_lines, display_string, draw_glyphs)
3415 (x_produce_glyphs, x_insert_glyphs)
3416 (rows_from_pos_range, mouse_face_from_buffer_pos)
3417 (fast_find_string_pos, mouse_face_from_string_pos)
3418 (note_mode_line_or_margin_highlight, note_mouse_highlight):
3419 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3420 (safe_call, init_from_display_pos, handle_fontified_prop)
3421 (handle_single_display_spec, load_overlay_strings)
3422 (with_echo_area_buffer, setup_echo_area_for_printing)
3423 (display_echo_area, echo_area_display)
3424 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
3425 (update_tool_bar, hscroll_window_tree, redisplay_internal)
5895d7b9
PE
3426 (redisplay_window, dump_glyph_row, display_mode_line)
3427 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
43ad2e9a 3428 (handle_display_spec, display_prop_string_p):
d311d28c
PE
3429 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3430 (handle_single_display_spec, build_desired_tool_bar_string)
3431 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
3432 (get_specified_cursor_type):
3433 Check that fixnums are in proper range for system types.
3434 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
3435 (Flookup_image_map):
3436 Don't assume fixnums fit in int.
3437 (compare_overlay_entries):
3438 Avoid mishandling comparisons due to subtraction overflow.
3439 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
3440 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
3441 (handle_tool_bar_click):
3442 Use int, not unsigned, since we prefer signed and the signedness
3443 doesn't matter here.
3444 (get_next_display_element, next_element_from_display_vector):
3445 Use int, not EMACS_INT, when int is wide enough.
3446 (start_hourglass): Use duration_to_sec_usec to do proper
3447 overflow checking on durations.
3448 * xfaces.c (Fbitmap_spec_p):
3449 Check that fixnums are in proper range for system types.
3450 (compare_fonts_by_sort_order):
3451 Avoid mishandling comparisons due to subtraction overflow.
3452 (Fx_family_fonts, realize_basic_faces):
3453 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3454 (Fx_family_fonts):
3455 Don't assume fixnum fits in int.
3456 Use SAFE_ALLOCA_LISP, not alloca.
3457 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
3458 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
3459 (face_at_buffer_position, face_for_overlay_string)
3460 (face_at_string_position):
3461 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3462 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
3463 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
3464 (Fx_show_tip):
3465 Check that fixnums are in proper range for system types.
3466 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
3467 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
3468 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3469 (Fx_change_window_property): Don't assume fixnums fit in int.
3470 * xfont.c (xfont_chars_supported):
3471 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3472 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
3473 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
3474 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3475 * xml.c (parse_region):
3476 * xrdb.c (magic_file_p):
3477 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3478 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
3479 (x_get_local_selection, x_reply_selection_request)
3480 (x_handle_selection_request, wait_for_property_change):
3481 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3482 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
3483 short is wide enough.
3484 (x_send_client_event): Don't assume fixnum fits in int.
3485 * xterm.c (x_x_to_emacs_modifiers):
3486 Don't assume EMACS_INT overflows nicely into int.
3487 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
3488 may come from Lisp.
3489 (handle_one_xevent): NATNUMP can eval its arg twice.
3490 (x_connection_closed):
3491 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3492 * xterm.h: Adjust decls to match defn changes elsewhere.
3493 (struct scroll_bar): Use struct vectorlike_header
3494 rather than rolling our own approximation.
3495 (SCROLL_BAR_VEC_SIZE): Remove; not used.
3496
c6574eb5
GM
34972012-05-25 Glenn Morris <rgm@gnu.org>
3498
3499 * lisp.mk (lisp): Update for more files being compiled now.
3500
e8d32c7e
SM
35012012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
3502
48def666
SM
3503 * lread.c: Remove `read_pure' which makes no difference.
3504 (read_pure): Remove var.
3505 (unreadpure): Remove function.
3506 (readevalloop): Don't call read_list with -1 flag.
3507 (read1, read_vector): Don't test read_pure any more.
3508 (read_list): Simplify.
3509
e8d32c7e
SM
3510 * fileio.c, character.h: Minor style tweaks.
3511
4b2addb7
DA
35122012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
3513
3514 * window.h (clip_changed): Remove useless declaration.
3515
584461b2
JB
35162012-05-22 Juanma Barranquero <lekktu@gmail.com>
3517
3518 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
3519 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
3520
34374650
PE
35212012-05-22 Paul Eggert <eggert@cs.ucla.edu>
3522
3523 Remove src/m/*.
3524 This directory predates autoconf and is no longer needed nowadays.
3525 Move its few remaining bits of functionality to where they're needed.
3526 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
3527 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
3528 * m/template.h: Remove.
3529 * Makefile.in (M_FILE): Remove. All uses removed.
3530 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
3531 * lisp.h (USE_LSB_TAG):
3532 * mem-limits.h (EXCEEDS_LISP_PTR):
3533 Use VAL_MAX, not VALBITS, in #if.
3534 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
3535 (EMACS_UINT): Define unconditionally now.
3536 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
3537 (BITS_PER_EMACS_INT): New constants, replacing
3538 what used to be in config.h, but not useful in #if.
3539 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
3540 define them any more.
3541 (VAL_MAX): New macro.
3542 (VALMASK): Use it.
3543 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
3544 BITS_PER_EMACS_INT, in #if.
3545 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
3546 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
3547 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
3548 * s/ms-w32.h (DATA_START):
3549 Move here from removed file m/intel386.h.
3550 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
3551 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
3552
261cb4bb
PE
35532012-05-21 Paul Eggert <eggert@cs.ucla.edu>
3554
3555 Assume C89 or later.
3556 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
3557 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
3558 (xrealloc):
3559 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
3560 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
3561 * textprop.c, tparam.c (NULL): Remove.
3562 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
3563 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
3564 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
3565 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
3566 * xterm.c (input_signal_count): Assume volatile works.
3567
ff23cd9f
KB
35682012-05-21 Ken Brown <kbrown@cornell.edu>
3569
3570 * xgselect.c (xg_select): Fix first argument in call to 'select'
3571 (bug#11508).
3572
1b170bc6
KB
35732012-05-20 Ken Brown <kbrown@cornell.edu>
3574
3575 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
bd7239f5 3576 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
1b170bc6 3577
b2f4d39f
KB
35782012-05-19 Ken Brown <kbrown@cornell.edu>
3579
3580 * xfns.c (x_in_use): Remove `static' qualifier.
3581 * xterm.h (x_in_use): Declare.
3582 * xgselect.c: Include xterm.h.
3583 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
3584 and `display_arg' (bug#9754).
3585
003fdae2
PE
35862012-05-19 Paul Eggert <eggert@cs.ucla.edu>
3587
9232a6d9
PE
3588 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
3589
003fdae2
PE
3590 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
3591 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
3592
784b56e2
EZ
35932012-05-18 Eli Zaretskii <eliz@gnu.org>
3594
3595 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
3596
3597 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
090bd7cb 3598 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c.
784b56e2
EZ
3599
3600 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
3601 reference to image_cache->refcount.
3602 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
3603
a0a79cde
JL
36042012-05-17 Juri Linkov <juri@jurta.org>
3605
3606 * search.c (Fword_search_regexp, Fword_search_backward)
3607 (Fword_search_forward, Fword_search_backward_lax)
3608 (Fword_search_forward_lax): Move functions to isearch.el
3609 (bug#10145, bug#11381).
3610
b0572523
PE
36112012-05-16 Paul Eggert <eggert@cs.ucla.edu>
3612
3613 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
3614
9660f5fc
SM
36152012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
3616
3617 * lread.c (init_obarray): Declare Qt and Qnil as special.
3618
4374de83
GM
36192012-05-14 Glenn Morris <rgm@gnu.org>
3620
3621 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
985584ae 3622 Put "libexec" before "bin", for the sake of init_callproc_1.
4374de83 3623
dc44c39a
PE
36242012-05-14 Paul Eggert <eggert@cs.ucla.edu>
3625
078c97cb
PE
3626 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
3627
dc44c39a
PE
3628 * unexaix.c: Port to more-recent AIX compilers.
3629 (report_error, report_error_1, make_hdr, copy_sym)
3630 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
3631 Make arguments const char *, not char *, to avoid violations of C
3632 standard and to fix some AIX warnings reported by Gilles Pion.
3633
e18afed7 36342012-05-14 Eli Zaretskii <eliz@gnu.org>
ac268e67
EZ
3635
3636 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
3637 already have overlays loaded.
3638 (handle_single_display_spec): Before returning without displaying
3639 fringe bitmap, synchronize the bidi iterator with the main display
3640 iterator, by calling iterate_out_of_display_property.
3641 (iterate_out_of_display_property): Detect buffer iteration by
3642 testing that it->string is a Lisp string.
3643 (get_next_display_element): When the current object is exhausted,
3644 and there's something on it->stack, call set_iterator_to_next to
3645 proceed with what's on the stack, instead of returning zero.
3646 (set_iterator_to_next): If called at the end of a Lisp string,
3647 proceed to consider_string_end without incrementing string
3648 position. Don't increment display vector index past the end of
3649 the display vector. (Bug#11417)
c8fb9dc6
EZ
3650 (pos_visible_p): Don't report a position visible when move_it_to
3651 stopped at the last line of window, which happens to be scanned
3652 backwards by the bidi iteration. (Bug#11464)
ac268e67 3653
e18afed7 36542012-05-14 Eli Zaretskii <eliz@gnu.org>
82f9b393
EZ
3655
3656 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
3657 and right-margin display specs even if the spec is invalid or we
61b108cc
SM
3658 are on a TTY, and thus unable to display on the fringes.
3659 That's because the text with the property will not be displayed anyway,
82f9b393
EZ
3660 so we need to signal to the caller that this is a "replacing"
3661 display spec. This fixes display when the spec is invalid or we
3662 are on a TTY.
3663
e18afed7 36642012-05-14 Paul Eggert <eggert@cs.ucla.edu>
297834cd
PE
3665
3666 * unexaix.c (make_hdr): Fix typo in prototype.
3667 This bug broke the build on AIX. Problem reported by Gilles Pion.
3668
9d0a235a
MA
36692012-05-14 Michael Albinus <michael.albinus@gmx.de>
3670
3671 * keyboard.c (kbd_buffer_get_event): Read special events also in
3672 batch mode. (Bug#11415)
3673
9e6b06ed
GM
36742012-05-12 Glenn Morris <rgm@gnu.org>
3675
3676 * ns.mk: Update for ns_appbindir no longer having trailing "/".
3677
c1a1d7a3
EZ
36782012-05-12 Eli Zaretskii <eliz@gnu.org>
3679
3680 * lisp.mk (lisp): Add newcomment.elc.
3681
3fe7cdc8
GM
36822012-05-12 Glenn Morris <rgm@gnu.org>
3683
3684 * Makefile.in (MKDIR_P): New, set by configure.
3685 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
3686
53f7d2c0
PE
36872012-05-11 Paul Eggert <eggert@cs.ucla.edu>
3688
3689 Remove unused function hourglass_started.
3690 * dispextern.h (hourglass_started):
3691 * w32fns.c (hourglass_started):
3692 * xdisp.c (hourglass_started): Remove.
3693
75aafb17
JB
36942012-05-10 Juanma Barranquero <lekktu@gmail.com>
3695
3696 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
3697 Update dependencies.
3698
12959e8e
PE
36992012-05-10 Paul Eggert <eggert@cs.ucla.edu>
3700
97107e2e
PE
3701 * xgselect.c (xg_select): Put maxfds+1 into a var.
3702 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
3703
12959e8e
PE
3704 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
3705
836d29b3
DA
37062012-05-10 Dave Abrahams <dave@boostpro.com>
3707
3708 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
3709 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
3710
5cb67954
MA
37112012-05-09 Michael Albinus <michael.albinus@gmx.de>
3712
3713 * dbusbind.c (xd_registered_buses): New internal Lisp object.
3714 Rename all occurences of Vdbus_registered_buses to xd_registered_buses.
3715 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
3716 Initialize xd_registered_buses.
3717
3478ec45
PE
37182012-05-09 Paul Eggert <eggert@cs.ucla.edu>
3719
b263a6b0
PE
3720 Untag more efficiently if USE_LSB_TAG.
3721 This is based on a proposal by YAMAMOTO Mitsuharu in
3722 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
3723 For an admittedly artificial (nth 8000 longlist) benchmark on
3724 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
3725 Emacs's overall text size by 1%.
3726 * lisp.h (XUNTAG): New macro.
3727 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
3728 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
3729 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
3730 * eval.c (Fautoload):
3731 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
3732 * frame.h (XFRAME): Use XUNTAG.
3733
3478ec45
PE
3734 Port recent dbusbind.c changes to 32-bit --with-wide-int.
3735 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
3736 Remove unportable assumptions about print widths of types like
3737 dbus_uint32_t.
3738 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
3739 intptr_t when converting between pointer and integer, to avoid GCC
3740 warnings about wrong width.
3741
666b903b 37422012-05-09 Eli Zaretskii <eliz@gnu.org>
0d887c7d
EZ
3743
3744 * w32proc.c (new_child): Force Windows to reserve only 64KB of
3745 stack for each reader_thread, instead of defaulting to 8MB
3746 determined by the linker. This avoids failures in creating
3747 subprocesses on Windows 7, see the discussion in this thread:
3748 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
3749
b120cc17
JC
37502012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
3751
3752 Fix up display of the *Minibuf-0* buffer in the mini window.
3753 * keyboard.c (read_char): Don't clear the echo area if there's no
3754 message to clear.
3755 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
2fed2689 3756 contents of *Minibuf-0*) if there's no message displayed in its stead.
b120cc17 3757
9a4b36f8
MA
37582012-05-07 Michael Albinus <michael.albinus@gmx.de>
3759
3760 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
3761 batch mode.
3762
e5f9458f
CY
37632012-05-06 Chong Yidong <cyd@gnu.org>
3764
3765 * lisp.mk (lisp): Update.
3766
eceeb5fc 37672012-05-05 Jim Meyering <meyering@redhat.com>
bf98199c
JM
3768
3769 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
3770
71873e2b
SM
37712012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
3772
3773 * data.c (PUT_ERROR): New macro.
3774 (syms_of_data): Use it. Add new error type `user-error'.
3775 * undo.c (user_error): New function.
3776 (Fprimitive_undo): Use it.
3777 * print.c (print_error_message): Adjust print style for `user-error'.
3778 * keyboard.c (user_error): New function.
3779 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
3780
ab0fa4e4
PE
37812012-05-03 Paul Eggert <eggert@cs.ucla.edu>
3782
3783 Do not limit current-time-string to years 1000..9999.
3784 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
3785 (Fcurrent_time_string): Support any year that is supported by the
3786 underlying localtime representation. Don't use asctime, as it
3787 has undefined behavior for years outside the range -999..9999.
3788
7ed806a7
PE
37892012-05-02 Paul Eggert <eggert@cs.ucla.edu>
3790
3791 Fix race conditions involving setenv, gmtime, localtime, asctime.
3792 Without this fix, interrupts could mess up code that uses these
3793 nonreentrant functions, since setting TZ invalidates existing
3794 tm_zone or tzname values, and since most of these functions return
3795 pointers to static storage.
3796 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
3797 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
3798 Grow the critical sections to include not just invoking
3799 localtime/gmtime, but also accessing these functions' results
3800 including their tm_zone values if any, and any related TZ setting.
3801 (format_time_string): Last arg is now struct tm *, not struct tm **,
71873e2b
SM
3802 so that the struct tm is saved in the critical section.
3803 All callers changed. Simplify allocation of initial buffer, partly
7ed806a7
PE
3804 motivated by the fact that memory allocation needs to be outside
3805 the critical section.
3806
0c16dfed
DA
38072012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
3808
3809 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
3810 with RESET_INTERVAL.
3811
3812 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
3813 Remove duplicated buffer name initialization.
3814
3f83ace8
JM
38152012-05-02 Jim Meyering <jim@meyering.net>
3816
3817 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
3818
c7b8541e
JM
3819 * xfns.c (x_window): Use xstrdup (Bug#11375).
3820
90207a15 38212012-05-02 Eli Zaretskii <eliz@gnu.org>
2fa85638
EZ
3822
3823 * xdisp.c (pos_visible_p): If already at a newline from the
3824 display string before the 'while' loop, don't walk back the glyphs
3825 from it3.glyph_row. Solves assertion violation when the display
3826 string begins with a newline (egg.el). (Bug#11367)
3827
b593d6a9
AH
38282012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
3829
3830 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
3831 Move to simple.el.
3832
4737362e
GM
38332012-05-01 Glenn Morris <rgm@gnu.org>
3834
99cf43f9
GM
3835 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
3836 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
3837 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
3838 All were removed before 23.1.
3839
9311dcff
GM
3840 * dispnew.c: Remove HAVE_LIBNCURSES test;
3841 it is always true on relevant platforms.
3842
4d5c6349
GM
3843 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
3844 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
3845
4737362e
GM
3846 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
3847
74dd3a6b
AS
38482012-04-30 Andreas Schwab <schwab@linux-m68k.org>
3849
3850 * .gdbinit (xpr): Remove checks for no longer existing misc types.
3851 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
3852 Remove.
3853
13c379ee
PE
38542012-04-28 Paul Eggert <eggert@cs.ucla.edu>
3855
3856 Do not avoid creating empty evaporating overlays (Bug#9642).
3857 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
3858 That is, do not delete an evaporating overlay if it becomes
3859 empty after its bounds are adjusted to fit within its buffer.
3860 This fix caused other problems, and I'm reverting it until we get
3861 to the bottom of them.
3862
a8e7d6d7 38632012-04-27 Chong Yidong <cyd@gnu.org>
9be2fd9b
CY
3864
3865 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
3866
a8e7d6d7 38672012-04-27 Eli Zaretskii <eliz@gnu.org>
f0ee99a0
EZ
3868
3869 * xdisp.c (pos_visible_p): If the window start position is beyond
3870 ZV, start the display from buffer beginning. Prevents assertion
3871 violation in init_iterator when the minibuffer window is scrolled
3872 via the scroll bar.
3873
3874 * window.c (window_scroll_pixel_based): Likewise.
3875
a8e7d6d7 38762012-04-27 Chong Yidong <cyd@gnu.org>
9ec7751f
CY
3877
3878 * keymap.c (where_is_internal): Doc fix (Bug#10872).
3879
a8e7d6d7 38802012-04-27 Glenn Morris <rgm@gnu.org>
24c51a09
GM
3881
3882 * fileio.c (Fcopy_file, Fset_file_selinux_context):
3883 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
3884
a8e7d6d7 38852012-04-27 Eli Zaretskii <eliz@gnu.org>
73055685 3886
b593d6a9
AH
3887 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
3888 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
73055685 3889
1c6900d9
EZ
38902012-04-26 Eli Zaretskii <eliz@gnu.org>
3891
4c3fa1d9
EZ
3892 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
3893 display element, check also the underlying string or buffer
3894 character. (Bug#11341)
3895
1c6900d9
EZ
3896 * w32menu.c: Include w32heap.h.
3897 (add_menu_item): If the call to AppendMenuW (via
3898 unicode_append_menu) fails, disable Unicode menus only if we are
3899 running on Windows 9X/Me.
3900
42bf8205
AS
39012012-04-24 Andreas Schwab <schwab@linux-m68k.org>
3902
3903 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
3904 (xgetint): Add missing shift for LSB tags.
3905
b1bac16e
MR
39062012-04-24 Martin Rudalics <rudalics@gmx.at>
3907
3908 * keyboard.c (read_char): Don't wipe echo area for select window
3909 events: These might get delayed via `mouse-autoselect-window'
3910 (Bug#11304).
3911
d69621cc
JB
39122012-04-24 Juanma Barranquero <lekktu@gmail.com>
3913
3914 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
3915 manipulation of :loaded-from data.
3916
02fd101b
JB
39172012-04-23 Juanma Barranquero <lekktu@gmail.com>
3918
3919 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
3920 now a cons (bug#11311).
3921
888bec30
PE
39222012-04-23 Paul Eggert <eggert@cs.ucla.edu>
3923
89a438bd
PE
3924 Do not create empty overlays with the evaporate property (Bug#9642).
3925 * buffer.c (Fmove_overlay): Delete an evaporating overlay
3926 if it becomes empty after its bounds are adjusted to fit within
3927 its buffer. Without this fix, in a nonempty buffer (let ((o
3928 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
3929 yields an empty overlay that has the evaporate property, which is
3930 not supposed to happen.
3931
1068fe4d
PE
3932 Fix minor GTK3 problems found by static checking.
3933 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
3934 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
3935 (struct _EmacsFixedClass, emacs_fixed_get_type):
3936 Move decls here from emacsgtkfixed.h, since they needn't be public.
3937 (emacs_fixed_get_type): Now static.
3938 (emacs_fixed_class_init): Omit unused local.
3939 (emacs_fixed_child_type): Remove; unused.
3940 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
3941 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
3942 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
3943 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
3944 (EMACS_FIXED_GET_CLASS): Remove; unused.
3945 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
3946
888bec30
PE
3947 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
3948 Problem reported by Juanma Barranquero for Windows -Wunused-function.
3949
de85e130
PE
39502012-04-22 Paul Eggert <eggert@cs.ucla.edu>
3951
d0baac98 3952 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
bd7239f5 3953 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
d0baac98
PE
3954 (__malloc_size_t, __malloc_ptrdiff_t):
3955 Remove. All uses removed, replaced by the definiens if needed,
3956 since we can assume C89 or better now.
3957 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
3958 (protect_malloc_state, align, get_contiguous_space)
3959 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
3960 (malloc_atfork_handler_child, malloc_enable_thread)
3961 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
3962 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
3963 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
3964 (special_realloc, _realloc_internal_nolock, _realloc_internal)
3965 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
3966 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
3967 Define using prototypes, not old style.
3968 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
3969 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
3970 (align): Don't assume that signed integer overflow wraps around.
3971 Omit unused local var.
3972 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
3973 (_free_internal_nolock, memalign, mallochook, reallochook):
3974 Omit no-longer-needed casts.
3975 (valloc): Use getpagesize, not __getpagesize.
3976 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
3977 (struct hdr): The 'magic' member is now size_t, not unsigned long.
3978
de85e130
PE
3979 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
3980
dcbf5805
MA
39812012-04-22 Michael Albinus <michael.albinus@gmx.de>
3982
3983 Move functions from C to Lisp. Make non-blocking method calls
3984 the default. Implement further D-Bus standard interfaces.
3985
3986 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
3987 (QCdbus_request_name_allow_replacement)
3988 (QCdbus_request_name_replace_existing)
3989 (QCdbus_request_name_do_not_queue)
3990 (QCdbus_request_name_reply_primary_owner)
3991 (QCdbus_request_name_reply_in_queue)
3992 (QCdbus_request_name_reply_exists)
3993 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
3994 (QCdbus_registered_serial, QCdbus_registered_method)
3995 (QCdbus_registered_signal): New Lisp objects.
3996 (XD_DEBUG_MESSAGE): Use sizeof.
3997 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
3998 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
3999 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
4000 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
4001 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
4002 (xd_signature, xd_append_arg): Allow float for integer types.
4003 (xd_get_connection_references): New function.
b593d6a9
AH
4004 (xd_get_connection_address): Rename from xd_initialize.
4005 Return cached address.
dcbf5805
MA
4006 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
4007 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
4008 level.
4009 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
9a4b36f8 4010 Return number of refcounts.
dcbf5805
MA
4011 (Fdbus_get_unique_name): Make stronger parameter check.
4012 (Fdbus_message_internal): New defun.
4013 (Fdbus_call_method, Fdbus_call_method_asynchronously)
4014 (Fdbus_method_return_internal, Fdbus_method_error_internal)
4015 (Fdbus_send_signal, Fdbus_register_service)
4016 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
4017 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
4018 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
4019 (Vdbus_compiled_version, Vdbus_runtime_version)
4020 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
4021 (Vdbus_message_type_method_return, Vdbus_message_type_error)
4022 (Vdbus_message_type_signal): New defvars.
b593d6a9
AH
4023 (Vdbus_registered_buses, Vdbus_registered_objects_table):
4024 Adapt docstring.
dcbf5805 4025
52828e02
PE
40262012-04-22 Paul Eggert <eggert@cs.ucla.edu>
4027
da05bc4c
PE
4028 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
4029 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
4030 Do not assume ptrdiff_t is the same width as 'int'.
4031
52828e02
PE
4032 * alloc.c: Handle unusual debugging option combinations.
4033 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
4034 since the two debugging options are incompatible.
4035 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
4036 is defined.
4037 (mem_init, mem_insert, mem_insert_fixup):
4038 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
4039 (NEED_MEM_INSERT): Remove; no longer needed.
4040
f01769f9
LL
40412012-04-22 Leo Liu <sdl.web@gmail.com>
4042
4043 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
4044
5790543d
PE
40452012-04-22 Paul Eggert <eggert@cs.ucla.edu>
4046
4047 * sysdep.c [__FreeBSD__]: Minor cleanups.
4048 (list_system_processes, system_process_attributes) [__FreeBSD__]:
4049 Use Emacs indenting style more consistently. Avoid some casts.
4050 Use 'double' consistently rather than mixing 'float' and 'double'.
4051
b91b7e4d
EW
40522012-04-21 Eduard Wiebe <usenet@pusto.de>
4053
b593d6a9
AH
4054 * sysdep.c (list_system_processes, system_process_attributes):
4055 Add implementation for FreeBSD (Bug#5243).
b91b7e4d 4056
6114eb15
AS
40572012-04-21 Andreas Schwab <schwab@linux-m68k.org>
4058
4059 * lisp.mk (lisp): Update.
4060
2f38dff7
PE
40612012-04-20 Paul Eggert <eggert@cs.ucla.edu>
4062
4063 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
4064 It is never used otherwise.
4065
4ae29f89
SM
40662012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
4067
4068 * print.c (print_preprocess): Only check print_depth if print-circle
4069 is nil.
4070 (print_object): Check for cycles even when print-circle is nil and
4071 print-gensym is t, but only check print_depth if print-circle is nil.
4072
f30d612a
CY
40732012-04-20 Chong Yidong <cyd@gnu.org>
4074
4075 * process.c (wait_reading_process_output): If EIO occurs on a pty,
4076 set the status to "failed" and ensure that sentinel is run.
4077
c07a4c0b 40782012-04-20 Glenn Morris <rgm@gnu.org>
016a35df
GM
4079
4080 * process.c (Fset_process_inherit_coding_system_flag)
4081 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
4373fd43 4082 (Fmake_network_process, Fmake_serial_process): Doc fix.
016a35df 4083
c07a4c0b 40842012-04-20 Eli Zaretskii <eliz@gnu.org>
20a68157
EZ
4085
4086 * xdisp.c (string_buffer_position_lim): Limit starting position to
4087 BEGV.
4088 (set_cursor_from_row): If called for a mode-line or header-line
4089 row, return zero immediately.
4090 (try_cursor_movement): If inside continuation line, don't back up
4ae29f89
SM
4091 farther than the first row after the header line, if any.
4092 Don't consider the header-line row as "partially visible", even if
20a68157
EZ
4093 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
4094
c07a4c0b 40952012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 4096
4ae29f89
SM
4097 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
4098 (bug#11238).
ad3a2b41 4099
c07a4c0b 41002012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
6c94c34f 41012012-04-18 Paul Eggert <eggert@cs.ucla.edu>
ae6e112d
PE
4102
4103 configure: new option --enable-gcc-warnings (Bug#11207)
4104 * Makefile.in (C_WARNINGS_SWITCH): Remove.
4105 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
4106 (ALL_CFLAGS): Use new macros rather than old.
4107 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
4108 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
4109 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
4110 -Wunused-result, -Wunused-variable. This should go away once
4111 the Emacs and Gnulib regex code is merged.
4112 (xmalloc, xrealloc): Now static.
4113
aba027e8
PE
41142012-04-17 Paul Eggert <eggert@cs.ucla.edu>
4115
4116 * dired.c (Fsystem_groups): Remove unused local.
4117
e5a36063
GM
41182012-04-17 Glenn Morris <rgm@gnu.org>
4119
4120 * dired.c (Fsystem_users): Doc fix.
4121
316411f0
DA
41222012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
4123
4124 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
4125 (syms_of_dired): Add them.
4126
9426aba4
PE
41272012-04-16 Paul Eggert <eggert@cs.ucla.edu>
4128
b62a57be
PE
4129 Fix minor alloc.c problems found by static checking.
4130 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
4131 New extern decls, to avoid calling undeclared functions.
4132 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
4133 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
4134 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
4135 (NEED_MEM_INSERT): New macro.
4136 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
4b5afbb0 4137 Remove one incorrect comment and fix another.
b62a57be 4138
3539f31f
PE
4139 Fix minor ralloc.c problems found by static checking.
4140 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
4141 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
4142 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
4143 (r_alloc_sbrk): Now static.
4144
a041960a
PE
4145 Improve ralloc.c interface checking.
4146 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
4147 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
4148 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
4149 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
4150 [REL_ALLOC]: ... to here, to check interface.
4151 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
4152 Remove decls. This fixes an "It stinks!".
4153
9426aba4
PE
4154 * alloc.c (which_symbols): Fix alignment issue / type clash.
4155
d55c12ed
AS
41562012-04-15 Andreas Schwab <schwab@linux-m68k.org>
4157
4158 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
4159 (struct Lisp_Misc_Any): Likewise.
4160 (struct Lisp_Free): Likewise.
4161 * alloc.c (union aligned_Lisp_Symbol): Define.
4162 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
4163 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
4164 (union aligned_Lisp_Misc): Define.
4165 (MARKER_BLOCK_SIZE, struct marker_block): Use union
4166 aligned_Lisp_Misc instead of union Lisp_Misc.
4ae29f89 4167 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
d55c12ed 4168
b948ce8b
PE
41692012-04-14 Paul Eggert <eggert@cs.ucla.edu>
4170
4171 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
4172 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
4173 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
4174 * s/netbsd.h, s/sol2-6.h:
4175 Remove definition of GC_MARK_STACK, since the default now works.
4176 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
4177 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
4178 no longer the default.
4179 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
4180
35dc09a1 41812012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 4182
35dc09a1
GM
4183 * lread.c (lisp_file_lexically_bound_p):
4184 Fix hang at ";-*-\n" (bug#11238).
ad3a2b41 4185
35dc09a1
GM
41862012-04-14 Eli Zaretskii <eliz@gnu.org>
4187
4188 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
4189 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
4190
41912012-04-14 Jan Djärv <jan.h.d@swipnet.se>
4192
4193 * nsterm.m (constrainFrameRect): Always constrain when there is only
4194 one screen (Bug#10962).
4195
bcd86815
KB
41962012-04-13 Ken Brown <kbrown@cornell.edu>
4197
4198 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
4199
c25df26e
RT
42002012-04-13 Reuben Thomas <rrt@sc3d.org>
4201
4202 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
4203
0fc59f1e
DC
42042012-04-11 Daniel Colascione <dancol@dancol.org>
4205
4206 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
4207 against is gone. It's better to use vfork now so that when Cygwin
4208 gains a new, working vfork, we use it automatically (bug#10398).
4209
de8c03dc
SM
42102012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
4211
4212 * window.c (save_window_save): Obey window-point-insertion-type.
4213
2f097256
GM
42142012-04-11 Glenn Morris <rgm@gnu.org>
4215
4216 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
4217
453b951e
SM
42182012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
4219
4220 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
4221
75f1671a 42222012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
6bbef4e5
JC
4223
4224 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
4225 (force_quit_count): New var.
4226 (handle_interrupt): Use it.
4227
2a8ce227
JB
42282012-04-10 Juanma Barranquero <lekktu@gmail.com>
4229
4230 * w32.c (w32_delayed_load): Record the full path of the library
4231 being loaded (bug#10424).
4232
935396c0
GM
42332012-04-09 Glenn Morris <rgm@gnu.org>
4234
05920a43
GM
4235 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
4236 not just in the obarray, before snarfing them. (Bug#11036)
4237
935396c0
GM
4238 * Makefile.in ($(leimdir)/leim-list.el):
4239 Pass EMACS rather than BUILT_EMACS.
4240
a18ecafa
TZ
42412012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
4242
4243 * process.c (make_process):
4244 * process.h: Add integer `gnutls_handshakes_tried' member to
4245 process struct.
4246
6bbef4e5
JC
4247 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
4248 Add convenience `GNUTLS_LOG2i' macro.
a18ecafa
TZ
4249
4250 * gnutls.c (gnutls_log_function2i): Convenience log function.
4251 (emacs_gnutls_read): Use new log functions,
4252 `gnutls_handshakes_tried' process member, and
4253 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
4254 attempts per process (connection).
4255
b4d3bc10
CY
42562012-04-09 Chong Yidong <cyd@gnu.org>
4257
4258 * eval.c (Fuser_variable_p, user_variable_p_eh)
4259 (lisp_indirect_variable): Functions deleted.
4260 (Fdefvar): Caller changed.
4261
4262 * callint.c (Finteractive, Fcall_interactively):
4263 * minibuf.c (Fread_variable): Callers changed.
4264
70f4d973
EZ
42652012-04-09 Eli Zaretskii <eliz@gnu.org>
4266
4267 * xdisp.c (set_cursor_from_row): If the display string appears in
4268 the buffer at position that is closer to point than the position
4269 after the display string, display the cursor on the first glyph of
4270 the display string. Fixes cursor display when a 'display' text
4271 property immediately follows invisible text. (Bug#11094)
4272
cb3c2e3e
PE
42732012-04-09 Paul Eggert <eggert@cs.ucla.edu>
4274
4275 composite.c: use 'double' consistently
4276 * composite.c (get_composition_id): Use 'double' consistently
4277 instead of converting 'float' to 'double' and vice versa; this is
4278 easier to understand and avoids a GCC warning.
4279
fd06db5d
GM
42802012-04-09 Glenn Morris <rgm@gnu.org>
4281
50fe702a
GM
4282 * Makefile.in: Generate leim-list with bootstrap-emacs, in
4283 preparation for dumping it with emacs. (Bug#4789)
4284 (leimdir): New variable.
4285 ($(leimdir)/leim-list.el): New rule.
4286 (emacs$(EXEEXT)): Depend on leim-list.el.
4287
fd06db5d
GM
4288 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
4289 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
4290 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
4291
55c131ee
AS
42922012-04-08 Andreas Schwab <schwab@linux-m68k.org>
4293
4294 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
4295 proper alignment.
4296
9209588f
JB
42972012-04-07 Juanma Barranquero <lekktu@gmail.com>
4298
4299 * xml.c (init_libxml2_functions) [WINDOWSNT]:
4300 Remove unused local variable.
4301
e3fb2efb
PE
43022012-04-07 Paul Eggert <eggert@cs.ucla.edu>
4303
4304 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
4305 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
4306 (mark_memory): Mark Lisp_Objects only if pointers might hide in
4307 objects, as mark_maybe_pointer will catch them otherwise.
4308 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
4309 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
4310
b5385551
PE
43112012-04-07 Paul Eggert <eggert@cs.ucla.edu>
4312
4313 Fix typo that broke non-Windows builds.
4314 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
4315
9078ead6
EZ
43162012-04-07 Eli Zaretskii <eliz@gnu.org>
4317
4318 Support building on MS-Windows with libxml2.
4319
4320 * makefile.w32-in (OBJ2): Add xml.$(O).
4321 (GLOBAL_SOURCES): Add xml.c.
4322 ($(BLD)/xml.$(O)): New dependency list.
4323
4324 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
4325 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
4326 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
4327 [!WINDOWSNT]: New macros.
4328 (init_libxml2_functions, libxml2_loaded_p): New functions.
4329 (parse_region): Call fn_xmlCheckVersion instead of using the macro
4330 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
4331 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
4332 Calls xmlCleanupParser only if libxml2 was loaded (or statically
4333 linked in).
6bbef4e5
JC
4334 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
4335 Call init_libxml2_functions before calling libxml2 functions.
9078ead6
EZ
4336 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
4337
4338 * emacs.c: Don't include libxml/parser.h.
4339 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
4340 xmlCleanupParser directly.
4341
4342 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
4343
3811fdf3
EZ
43442012-04-07 Eli Zaretskii <eliz@gnu.org>
4345
4346 * indent.c (Fvertical_motion): If there is a display string at
4347 point, use it.vpos to compute how many lines to backtrack after
4348 move_it_to point. (Bug#11133)
4349
2f8e16b2
EZ
43502012-04-06 Eli Zaretskii <eliz@gnu.org>
4351
4352 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
4353 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
4354 about subtle differences between FETCH_CHAR* and STRING_CHAR*
4355 macros related to unification of CJK characters. For the details,
4356 see the discussion following the message here:
4357 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
4358
3d439cd1
CY
43592012-04-04 Chong Yidong <cyd@gnu.org>
4360
4361 * keyboard.c (Vdelayed_warnings_list): Doc fix.
4362
8bc53d00
EZ
43632012-04-01 Eli Zaretskii <eliz@gnu.org>
4364
4365 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
4366 instead of alloca. (Bug#11138)
4367
3b0512a3
AS
43682012-04-01 Andreas Schwab <schwab@linux-m68k.org>
4369
4370 * w32menu.c (is_simple_dialog): Properly check lisp types.
4371 (Bug#11141)
4372
8427ddd2
EZ
43732012-03-31 Eli Zaretskii <eliz@gnu.org>
4374
979022ef
EZ
4375 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
4376 position we get to after a call to move_it_to fails the
4377 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
4378 only if we wind up in a string from display property. (Bug#11063)
4379
a6b1c7cc
EZ
4380 * window.c (Fdelete_other_windows_internal): Invalidate the row
4381 and column information about mouse highlight, so that redisplay
4382 restores it after reallocating the glyph matrices. (Bug#7464)
4383
8427ddd2
EZ
4384 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
4385 string comes from a `display' text property, use the buffer
4386 position of that property as if we actually saw that position in
4387 the row's glyphs.
697ba24b
EZ
4388 (move_it_by_lines): Remove the assertion that
4389 "it->current_x == 0 && it->hpos == 0" which can be legitimately
4390 violated when there's a before-string at the beginning of a line.
4391 (Bug#11063)
8427ddd2 4392
65a0a738
EZ
43932012-03-30 Eli Zaretskii <eliz@gnu.org>
4394
4395 * xdisp.c (append_space_for_newline): If the default face was
4396 remapped, use the remapped face for the appended newline.
4397 (extend_face_to_end_of_line): Use the remapped default face for
4398 extending the face to the end of the line.
4399 (display_line): Call extend_face_to_end_of_line when the default
4400 face was remapped. (Bug#11068)
4401
581355cc
EZ
44022012-03-29 Eli Zaretskii <eliz@gnu.org>
4403
4404 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
4405
e8fc049f
SM
44062012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
4407
4408 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
4409
4fb9a543
GM
44102012-03-27 Glenn Morris <rgm@gnu.org>
4411
4412 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
4413 Doc fixes.
4414
679910f1
KH
44152012-03-26 Kenichi Handa <handa@m17n.org>
4416
4417 * dispextern.h (struct glyph): Fix previous change. Change the
4418 bit length of glyphless.ch to 25 (Bug#11082).
4419
90d49b7f
CY
44202012-03-26 Chong Yidong <cyd@gnu.org>
4421
4422 * keyboard.c (Vselection_inhibit_update_commands): New variable.
4423 (command_loop_1): Use it; inhibit selection update for
4424 handle-select-window too (Bug#8996).
4425
f514f6f0
FP
44262012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
4427
e8fc049f 4428 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
f514f6f0 4429
bf43fa51
KH
44302012-03-25 Kenichi Handa <handa@m17n.org>
4431
4432 * dispextern.h (struct glyph): Change the bit length of
4433 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
4434
8a0c01dd
EZ
44352012-03-24 Eli Zaretskii <eliz@gnu.org>
4436
4437 * s/ms-w32.h (tzname): Include time.h before redirecting to
4438 _tzname. Fixes the MSVC build. (Bug#9960)
4439
7d1c3a76
AS
44402012-03-24 Andreas Schwab <schwab@linux-m68k.org>
4441
8ed79523
AS
4442 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
4443 characters.
4444
7d1c3a76
AS
4445 * xterm.c (XTread_socket): Only modify handling_signal if
4446 !SYNC_INPUT. (Bug#11080)
4447
e99a9b8b
EZ
44482012-03-23 Eli Zaretskii <eliz@gnu.org>
4449
4450 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
4451 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
4452 when fetching a multibyte character consumes more bytes than
4453 CHAR_BYTES returns, due to unification of CJK characters in
4454 string_char. (Bug#11073)
4455
5063c0e1
TN
44562012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
4457
4458 * process.c (wait_reading_process_output): Handle pty disconnect
4459 by refraining from sending oneself a SIGCHLD (bug#10933).
4460
9f851fbd
CY
44612012-03-22 Chong Yidong <cyd@gnu.org>
4462
4463 * dispextern.h (struct it): New member string_from_prefix_prop_p.
4464
5063c0e1 4465 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
9f851fbd
CY
4466 Mark string as coming from a prefix property.
4467 (handle_face_prop): Use default face for prefix strings (Bug#4281).
4468 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
4469
fb5b8aca
CY
44702012-03-21 Chong Yidong <cyd@gnu.org>
4471
4472 * xfaces.c (Vface_remapping_alist): Doc fix.
4473
62356a1b
EZ
44742012-03-20 Eli Zaretskii <eliz@gnu.org>
4475
4476 * w32proc.c (Fw32_set_console_codepage)
5063c0e1
TN
4477 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
4478 Doc fixes.
62356a1b 4479
025de85b
CY
44802012-03-20 Chong Yidong <cyd@gnu.org>
4481
4482 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
4483 to reflect default non-nil value of redisplay-dont-pause.
4484
4827f94e
KH
44852012-03-19 Kenichi Handa <handa@m17n.org>
4486
4487 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
4488 it fit in a valid range (Bug#11003).
4489
e50a24a2
EZ
44902012-03-18 Eli Zaretskii <eliz@gnu.org>
4491
4492 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
4493 that is not from display property, accept the row as a "cursor
4494 row" if one of the string's character has a non-nil `cursor'
4495 property. Fixes cursor positioning when there are newlines in
4496 overlay strings, e.g. in icomplete.el. (Bug#11035)
4497
9af5ed87
PE
44982012-03-12 Paul Eggert <eggert@cs.ucla.edu>
4499
4500 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
4501
d1f55f16
CY
45022012-03-12 Chong Yidong <cyd@gnu.org>
4503
4504 * eval.c (inhibit_lisp_code): Rename from
4505 inhibit_window_configuration_change_hook; move from window.c.
4506
4507 * xfns.c (unwind_create_frame_1, Fx_create_frame):
4508 * window.c (run_window_configuration_change_hook)
4509 (syms_of_window): Callers changed.
4510
66c5eebd
CY
45112012-03-11 Chong Yidong <cyd@gnu.org>
4512
413df973
CY
4513 * keymap.c (Fkey_description): Doc fix (Bug#9700).
4514
66c5eebd
CY
4515 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
4516
1de11f56
CY
45172012-03-10 Chong Yidong <cyd@gnu.org>
4518
4519 * frame.c (other_visible_frames): Don't assume the selected frame
4520 is visible (Bug#10955).
4521
cae07000
SM
45222012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
4523
4524 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
4525
89c94350
JD
45262012-03-08 Jan Djärv <jan.h.d@swipnet.se>
4527
4528 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
4529 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
4530 zero (Bug#10954).
4531
999dd333
GM
45322012-03-03 Glenn Morris <rgm@gnu.org>
4533
01a6dcc8 4534 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
999dd333 4535
de0100f2
EZ
45362012-03-02 Eli Zaretskii <eliz@gnu.org>
4537
4538 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
4539 position past the first glyph_row that ends at ZV. (Bug#10902)
b8456c5c
EZ
4540 (redisplay_window, next_element_from_string): Fix typos in
4541 comments.
3e441275
EZ
4542 (redisplay_window): Pass to move_it_vertically the margin in
4543 pixels, not in screen lines.
de0100f2 4544
96a72ee9
GM
45452012-03-02 Glenn Morris <rgm@gnu.org>
4546
4547 * buffer.c (buffer-list-update-hook): Doc fix.
4548
312508d7
EZ
45492012-02-29 Eli Zaretskii <eliz@gnu.org>
4550
4551 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
4552 push_it before setting up the iterator for the first overlay
4553 string, even if we have an empty string loaded.
4554 (next_overlay_string): If there's an empty string on the iterator
4555 stack, pop the stack. (Bug#10903)
4556
27f3c637
PE
45572012-02-25 Paul Eggert <eggert@cs.ucla.edu>
4558
4559 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
4560 Suggested by Stefan Monnier in
4561 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
4562 * alloc.c (widen_to_Lisp_Object): New static function.
4563 (mark_memory): Also mark Lisp_Objects by fetching pointer words
4564 and widening them to Lisp_Objects. This would work even if
4565 USE_LSB_TAG is defined and wide integers are used, which might
4566 happen in a future version of Emacs.
4567
3c9dfce6
CY
45682012-02-25 Chong Yidong <cyd@gnu.org>
4569
fa74b241
CY
4570 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
4571 Doc fix.
4572
3c9dfce6
CY
4573 * xselect.c (Fx_selection_exists_p): Doc fix.
4574 (x_clipboard_manager_save_all): Print an informative message
4575 before saving to clipboard manager.
4576
9486df08
CY
45772012-02-24 Chong Yidong <cyd@gnu.org>
4578
4579 * keyboard.c (process_special_events): Handle all X selection
4580 requests in kbd_buffer, not just the next one (Bug#8869).
4581
f01d3321
CY
45822012-02-23 Chong Yidong <cyd@gnu.org>
4583
4584 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
4585 call when setting menu-bar-lines and tool-bar-lines parameters.
4586 (unwind_create_frame_1): New helper function.
4587
4588 * window.c (inhibit_window_configuration_change_hook): New var.
4589 (run_window_configuration_change_hook): Obey it.
b2e4ca7d 4590 (syms_of_window): Initialize it.
f01d3321 4591
86b847b6
CY
45922012-02-22 Chong Yidong <cyd@gnu.org>
4593
4594 * xterm.c (x_draw_image_relief): Add missing type check for
4595 Vtool_bar_button_margin (Bug#10743).
4596
a59225b1
CY
45972012-02-21 Chong Yidong <cyd@gnu.org>
4598
4599 * fileio.c (Vfile_name_handler_alist): Doc fix.
4600
4601 * buffer.c (Fget_file_buffer): Protect against invalid file
4602 handler return value.
4603
310f5bd4
PE
46042012-02-20 Paul Eggert <eggert@cs.ucla.edu>
4605
cb3a28cc
PE
4606 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
4607 when computing $valmask.
4608
310f5bd4
PE
4609 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
4610 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
4611 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
4612 It's useless in that case, and it can cause problems on hosts
4613 that allocate halves of EMACS_INT values separately.
4614 Reported by Dan Horák. Diagnosed by Andreas Schwab in
4615 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
4616 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
4617 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
4618 it avoids undefined behavior on hosts where shifting right by more
4619 than the word width has undefined behavior.
4620
2375c96a
CY
46212012-02-19 Chong Yidong <cyd@gnu.org>
4622
4623 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
4624 (Funhandled_file_name_directory, Ffile_name_as_directory)
4625 (Fdirectory_file_name, Fexpand_file_name)
4626 (Fsubstitute_in_file_name): Protect against invalid file handler
4627 return values (Bug#10845).
4628
3eb49e71
EZ
46292012-02-18 Eli Zaretskii <eliz@gnu.org>
4630
4631 * .gdbinit (pitx): Fix incorrect references to fields of the
4632 iterator stack.
4633
7b926f3f
CY
46342012-02-17 Chong Yidong <cyd@gnu.org>
4635
4636 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
4637
11273115
PE
46382012-02-15 Paul Eggert <eggert@cs.ucla.edu>
4639
4640 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
4641 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
4642
c3a70e2b
CY
46432012-02-15 Chong Yidong <cyd@gnu.org>
4644
4645 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
4646 marked as special. Also, starting docstrings with * is obsolete.
4647
0ca43699
AS
46482012-02-13 Andreas Schwab <schwab@linux-m68k.org>
4649
4650 * gnutls.c (emacs_gnutls_write): Fix last change.
4651
2e8f3c56
LI
46522012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
4653
4654 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
4655 send_process.
4656
af70074f
SM
46572012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
4658
4659 * keymap.c (Fsingle_key_description): Handle char ranges.
4660
95986d52
CY
46612012-02-12 Chong Yidong <cyd@gnu.org>
4662
afd83bd1
CY
4663 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
4664 as that creates a dangerous corner case.
4665
95986d52
CY
4666 * window.c (Fdelete_window_internal): Invalidate the mouse
4667 highlight (Bug#9904).
4668
bd7da63e
GM
46692012-02-12 Glenn Morris <rgm@gnu.org>
4670
4671 * xselect.c (Fx_own_selection_internal)
4672 (Fx_get_selection_internal, Fx_disown_selection_internal)
4673 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
4674 * nsselect.m (Fx_own_selection_internal)
4675 (Fx_disown_selection_internal, Fx_selection_exists_p)
4676 (Fx_selection_owner_p, Fx_get_selection_internal):
4677 Sync docs and argument specs with the xselect.c versions.
4678
77abcbc2
LI
46792012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
4680
4681 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
4682
90b671e2
EZ
46832012-02-11 Eli Zaretskii <eliz@gnu.org>
4684
1c0ca0b7
EZ
4685 * w32select.c (Fx_selection_exists_p): Sync doc string and
4686 argument list with xselect.c. (Bug#10783)
4687
4688 * w16select.c (Fx_selection_exists_p): Sync doc string and
4689 argument list with xselect.c. (Bug#10783)
90b671e2 4690
49241268
GM
46912012-02-10 Glenn Morris <rgm@gnu.org>
4692
4693 * fns.c (Fsecure_hash): Doc fix.
4694
f998bbe7 46952012-02-09 Kenichi Handa <handa@m17n.org>
5c1ca13d
KH
4696
4697 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
4698
0992bd9c
CY
46992012-02-07 Chong Yidong <cyd@gnu.org>
4700
4701 * buffer.c (Fbuffer_local_variables)
4702 (buffer_lisp_local_variables): Handle unbound vars correctly;
4703 don't let Qunbound leak into Lisp.
4704
af008560
GM
47052012-02-07 Glenn Morris <rgm@gnu.org>
4706
dd605cc4
GM
4707 * image.c (Fimagemagick_types): Doc fix.
4708
af008560
GM
4709 * image.c (imagemagick-render-type): Change it from a lisp object
4710 to an integer. Move the doc here from the lisp manual.
4711 Treat all values not equal to 0 the same.
4712
1449fa1d
CY
47132012-02-06 Chong Yidong <cyd@gnu.org>
4714
4715 * doc.c (store_function_docstring): Avoid applying docstring of
4716 alias to base function (Bug#2603).
4717
3723ec07
AS
47182012-02-04 Andreas Schwab <schwab@linux-m68k.org>
4719
4720 * .gdbinit (pp1, pv1): Remove redundant defines.
4721 (pr): Use pp.
4722
79c1cc1e
CY
47232012-02-04 Chong Yidong <cyd@gnu.org>
4724
4725 * nsterm.m: Declare a global (Bug#10694).
4726
d7f29f8e
EZ
47272012-02-04 Eli Zaretskii <eliz@gnu.org>
4728
cae07000
SM
4729 * w32.c (get_emacs_configuration_options):
4730 Include --enable-checking, if specified, in the return value.
d7f29f8e 4731
3b95a6f9
MR
47322012-02-04 Martin Rudalics <rudalics@gmx.at>
4733
4734 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
4735 after rounding frame sizes. (Bug#9723)
4736
d6fa96a6
EZ
47372012-02-04 Eli Zaretskii <eliz@gnu.org>
4738
4739 * keyboard.c (adjust_point_for_property): Don't position point
4740 before BEGV. (Bug#10696)
4741
df0b2940
PE
47422012-02-03 Paul Eggert <eggert@cs.ucla.edu>
4743
4744 Handle overflow when computing char display width (Bug#9496).
4745 * character.c (char_width): Return EMACS_INT, not int.
4746 (char_width, c_string_width): Check for overflow when
4747 computing the width; this is possible now that individual
4748 characters can have unbounded width. Problem introduced
4749 by merge from Emacs 23 on 2012-01-19.
4750
6bee44d6
MA
47512012-02-02 Michael Albinus <michael.albinus@gmx.de>
4752
4753 * dbusbind.c (Fdbus_register_method): Mention the return value
4754 :ignore in the docstring.
4755
44f92739
GM
47562012-02-02 Glenn Morris <rgm@gnu.org>
4757
1b9f60cc
GM
4758 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
4759
44f92739
GM
4760 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
4761 Unconditionally set to t. (Bug#10673)
4762 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
4763 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
4764 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
4765
c5d3843c
KH
47662012-02-02 Kenichi Handa <handa@m17n.org>
4767
4768 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
4769 0, do not call append_composite_glyph.
4770
159462d4 47712012-02-02 Kenichi Handa <handa@m17n.org>
d2a51fd7
KH
4772
4773 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
4774 NULL (Bug#6988).
4775 (x_produce_glyphs): If the component of a composition is a null
4776 string, set it->pixel_width to 1 to avoid zero-width glyph.
4777
78cef877
EZ
47782012-02-01 Eli Zaretskii <eliz@gnu.org>
4779
4780 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
4781 first 2 arguments are identical. This makes inserting large
4782 output from a subprocess an order of magnitude faster on
4783 MS-Windows, where all sbrk'ed memory is always contiguous.
4784
97897668
GM
47852012-01-31 Glenn Morris <rgm@gnu.org>
4786
4787 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
c78c6e0b 4788 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
97897668
GM
4789 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
4790
31fd3586
GM
47912012-01-29 Glenn Morris <rgm@gnu.org>
4792
4793 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
4794
0e24a8b2
CY
47952012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
4796
4797 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
4798
cc0adcb0
CY
47992012-01-28 Chong Yidong <cyd@gnu.org>
4800
4801 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
4802
acc28cb9
CY
48032012-01-26 Chong Yidong <cyd@gnu.org>
4804
9c69cfb7
CY
4805 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
4806
acc28cb9
CY
4807 * search.c (Fsearch_forward, Fsearch_backward): Document negative
4808 repeat counts (Bug#10507).
4809
48da7392
GM
48102012-01-26 Glenn Morris <rgm@gnu.org>
4811
4812 * lread.c (syms_of_lread): Doc fix.
4813
14af5f7f
CY
48142012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
4815
4816 * coding.c (encode_designation_at_bol): Change return value to
4817 EMACS_INT.
4818
0b21c100
CY
48192012-01-25 Chong Yidong <cyd@gnu.org>
4820
4821 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
4822
3c2907f7
CY
48232012-01-21 Chong Yidong <cyd@gnu.org>
4824
4825 * floatfns.c (Fcopysign): Make the second argument non-optional,
4826 since nil is not allowed anyway.
4827
959ad23f
AS
48282012-01-21 Andreas Schwab <schwab@linux-m68k.org>
4829
4830 * process.c (read_process_output): Use p instead of XPROCESS (proc).
4831 (send_process): Likewise.
4832
34a02f46
MR
48332012-01-19 Martin Rudalics <rudalics@gmx.at>
4834
4835 * window.c (save_window_save, Fcurrent_window_configuration)
cae07000
SM
4836 (Vwindow_persistent_parameters): Do not use Qstate.
4837 Rewrite doc-strings.
34a02f46 4838
1259009a 48392012-01-19 Kenichi Handa <handa@m17n.org>
25ed9e61
KH
4840
4841 * character.c (char_width): New function.
70d4fdf6
GM
4842 (Fchar_width, c_string_width, lisp_string_width):
4843 Use char_width (Bug#9496).
25ed9e61 4844
6a6ee00d
MR
48452012-01-16 Martin Rudalics <rudalics@gmx.at>
4846
4847 * window.c (Vwindow_persistent_parameters): New variable.
4848 (Fset_window_configuration, save_window_save): Handle persistent
4849 window parameters.
4850
c85efaf7
EZ
48512012-01-14 Eli Zaretskii <eliz@gnu.org>
4852
4853 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
4854 thrashing the stack of the thread. (Bug#9087)
4855
5944709e
PE
48562012-01-12 Paul Eggert <eggert@cs.ucla.edu>
4857
4858 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
4859
e71f5d99
EZ
48602012-01-11 Eli Zaretskii <eliz@gnu.org>
4861
4862 * xdisp.c (rows_from_pos_range): Handle the case where the
4863 highlight ends on a newline. (Bug#10464)
4864 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
4865 he end column for display of highlight that ends on a newline
4866 before a R2L line.
4867
ce316182
GM
48682012-01-11 Glenn Morris <rgm@gnu.org>
4869
4870 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
4871 from load-path also when installation-directory is nil. (Bug#10208)
4872
5b43da69
GM
48732012-01-10 Glenn Morris <rgm@gnu.org>
4874
74cc8ff9
GM
4875 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
4876
7d8d6e4e
GM
4877 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
4878 Update template values to be closer to their typical values these days.
5b43da69 4879
a0db8d43
EZ
48802012-01-09 Eli Zaretskii <eliz@gnu.org>
4881
4882 * xdisp.c (rows_from_pos_range): Accept additional argument
4883 DISP_STRING, and accept any glyph in a row whose object is that
4884 string as eligible for mouse highlight. Fixes mouse highlight of
4885 display strings from overlays. (Bug#10464)
4886
9a0115ab 48872012-01-07 Paul Eggert <eggert@cs.ucla.edu>
09450bae 4888
b9110d6a 4889 emacs: fix an auto-save permissions race condition (Bug#10400)
09450bae
PE
4890 * fileio.c (auto_saving_dir_umask): New static var.
4891 (Fmake_directory_internal): Use it.
4892 (do_auto_save_make_dir): Set it, instead of invoking chmod after
4893 creating the directory. The old code temporarily assigns
4894 too-generous permissions to the directory.
4895 (do_auto_save_eh): Clear it.
b9110d6a 4896 (Fdo_auto_save): Catch all errors, not just file errors, so
09450bae
PE
4897 that the var is always cleared.
4898
6c1bd3f3
EZ
48992012-01-07 Eli Zaretskii <eliz@gnu.org>
4900
4901 * search.c (scan_buffer): Pass character positions to
4902 know_region_cache, not byte positions. (Bug#6540)
4903
069d2b50
L
49042012-01-07 LynX <_LynX@bk.ru> (tiny change)
4905
4906 * w32.c (sys_rename): Report EXDEV when rename of a directory
4907 fails because the target is on another logical disk. (Bug#10284)
4908
75bf0d33
DB
49092012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
4910
4911 * xterm.c (x_embed_request_focus): New function.
4912
4913 * xterm.h: Add prototype.
4914
4915 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
4916
1c6e5a32
GM
49172012-01-05 Glenn Morris <rgm@gnu.org>
4918
4919 * emacs.c (emacs_copyright): Update short copyright year to 2012.
4920
651e947e
EZ
49212012-01-01 Eli Zaretskii <eliz@gnu.org>
4922
4923 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
4924 Load gnutls_transport_set_lowat only if GnuTLS version is below
4925 2.11.1.
4926 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
4927 GnuTLS versions below 2.11.1.
4928
3778cdd8
AL
49292011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
4930
4931 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
4932 to the doc string advising against its use for altering the way
4933 windows are scrolled.
4934
0e5317f7
KH
49352011-12-28 Kenichi Handa <handa@m17n.org>
4936
4937 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
4938 coding-system ASCII compatible only when it does not produce BOM
4939 on encoding (Bug#10383).
4940
93d5ca1f
JD
49412011-12-26 Jan Djärv <jan.h.d@swipnet.se>
4942
4943 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
4944 can scroll.
4945 (create_and_show_popup_menu): Always use menu_position_func for
4946 Gtk3 (Bug#10361).
4947
ca22b785
AS
49482011-12-24 Andreas Schwab <schwab@linux-m68k.org>
4949
4950 * callint.c (Fcall_interactively): Don't truncate prompt string.
4951
d048e1e6
EZ
49522011-12-23 Eli Zaretskii <eliz@gnu.org>
4953
4954 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
4955 property that ends at ZV, so that the bidi iteration could be
3ba1a2ad 4956 resumed from there (after widening). (Bug#10360)
d048e1e6 4957
5ccaba1f
JD
49582011-12-22 Jan Djärv <jan.h.d@swipnet.se>
4959
4960 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
4961
204ee57f
JD
49622011-12-21 Jan Djärv <jan.h.d@swipnet.se>
4963
b81d40f0
JB
4964 * nsterm.m (x_free_frame_resources):
4965 Release f->output_data.ns->miniimage.
204ee57f
JD
4966 (ns_index_color): Fix indentation. Do not retain
4967 color_table->colors[i].
4968
4969 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
4970 before returning.
4971
4972 * nsfns.m (x_set_background_color): Assign return value from
4973 ns_index_color to face-background instead of NSColor*.
4974 (ns_implicitly_set_icon_type): Fix indentation.
4975 Change assignment in for loop to comparison.
4976
4977 * emacs.c (ns_pool): New variable.
4978 (main): Assign ns_pool.
4979 (Fkill_emacs): Call ns_release_autorelease_pool.
4980
4981 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
4982 autorelease fdesc, release fdAttrs and tdict.
4983 (ns_get_covering_families): Release charset.
4984 (ns_findfonts): Release NSFontDescriptor created with new.
4985 (ns_uni_to_glyphs): Fix indentation.
4986 (setString): Release attrStr before assigning new value.
4987
c803b2b7
JD
49882011-12-18 Jan Djärv <jan.h.d@swipnet.se>
4989
678f4426
JD
4990 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
4991 and NS_IMPL_COCOA.
4992 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
4993 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
4994
cd394be1 49952011-12-18 David Reitter <reitter@cmu.edu>
678f4426 4996
5fecd5fc
JD
4997 * nsterm.m (ns_term_init): Subscribe for notifications
4998 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
4999 to method trackingNotification in EmacsMenu.
5000
5001 * nsmenu.m (trackingMenu): New variable.
3771cb17 5002 (trackingNotification): New method (from Aquamacs).
5fecd5fc 5003 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
3771cb17 5004 from Aquamacs (Bug#7030).
678f4426
JD
5005
50062011-12-18 Jan Djärv <jan.h.d@swipnet.se>
5fecd5fc 5007
c803b2b7
JD
5008 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
5009 (symbol_to_nsstring): Fix indentation.
5010 (ns_symbol_to_pb): New function.
cae07000
SM
5011 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
5012 (Fns_rotate_cut_buffers_internal): Remove.
5013 (Fns_store_selection_internal): Rename from
c803b2b7
JD
5014 Fns_store_cut_buffer_internal.
5015 (ns_get_foreign_selection, Fx_own_selection_internal)
5016 (Fx_disown_selection_internal, Fx_selection_exists_p)
b81d40f0
JB
5017 (Fns_get_selection_internal, Fns_store_selection_internal):
5018 Use ns_symbol_to_pb and check if return value is nil.
5019 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
5020 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
c803b2b7
JD
5021 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
5022 renamed to Sns_store_selection_internal.
5023 (ns_handle_selection_request): Move code to Fx_own_selection_internal
5024 and remove this function.
5025 (ns_handle_selection_clear): Remove, never used.
5026 (Fx_own_selection_internal): Move code from ns_handle_selection_request
5027 here.
5028
e1b01a3a
KB
50292011-12-17 Ken Brown <kbrown@cornell.edu>
5030
5031 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
5032 GID is unknown (Bug#10257).
5033
2adb6e85
PE
50342011-12-17 Paul Eggert <eggert@cs.ucla.edu>
5035
5036 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
5037 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
5038 which caused a build failure on GNU/Linux IA-64. This problem was
5039 introduced by my 2011-10-07 patch.
5040
d1d7b339
JL
50412011-12-15 Juri Linkov <juri@jurta.org>
5042
5043 * image.c (imagemagick_error): New function. (Bug#10112)
5044 (imagemagick_load_image): Comment out `MagickSetResolution' call.
5045 Use `imagemagick_error' where ImageMagick functions return
5046 `MagickFalse'.
5047 (Fimagemagick_types): Add `Fnreverse' to return the list in the
5048 proper order.
5049
100d5755
KH
50502011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
5051
5052 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
5053 fill background (Bug#8992).
5054
454592a6
MR
50552011-12-13 Martin Rudalics <rudalics@gmx.at>
5056
5057 * window.c (Vwindow_combination_resize)
5058 (Vwindow_combination_limit): Use t instead of non-nil in
5059 doc-strings.
61d4b438
MR
5060 (Vrecenter_redisplay): Add first sentence of doc-string on
5061 separate line.
53524d93 5062 (Frecenter): Fix doc-string typo.
454592a6 5063
3633e3aa
KH
50642011-12-11 Kenichi Handa <handa@m17n.org>
5065
5066 * coding.c (Funencodable_char_position): Pay attention to the
5067 buffer text relocation (Bug#9389).
5068
7b9d523a 50692011-12-10 Jan Djärv <jan.h.d@swipnet.se>
61ccba97 5070
7b9d523a
JD
5071 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
5072 gtk_init (Bug#10100).
5073
b73189c6
EZ
50742011-12-10 Eli Zaretskii <eliz@gnu.org>
5075
5076 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
5077 IT->string is nil. (Bug#10263)
5078
f7dfe5d6
JD
50792011-12-10 Jan Djärv <jan.h.d@swipnet.se>
5080
83faebb4
JD
5081 * nsterm.h (x_free_frame_resources): Declare.
5082
f7dfe5d6
JD
5083 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
5084 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
5085
5086 * nsterm.h (ns_get_defaults_value): Declare.
5087
5088 * nsterm.m (ns_default): Call ns_get_defaults_value.
5089
7cd4e72c
EZ
50902011-12-09 Eli Zaretskii <eliz@gnu.org>
5091
5092 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
5093 (Bug#10170)
5094
b34d7317
YM
50952011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
5096
5097 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
5098 that where the value of an _OBJC_* symbol points to is in the .bss
5099 section (Bug#10240).
5100
76470ad1
KH
51012011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
5102
5103 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
2fac8180 5104 after the loop to call ccl_driver at least once (Bug#8619).
76470ad1 5105
745fff94
KH
51062011-12-08 Kenichi Handa <handa@m17n.org>
5107
5108 * ftfont.c (get_adstyle_property): Fix previous change
5109 (Bug#10233).
5110
6e44397c
JB
51112011-12-07 Juanma Barranquero <lekktu@gmail.com>
5112
5113 * w32.c (init_environment): If no_site_lisp, remove site-lisp
5114 dirs from the default value of EMACSLOADPATH (bug#10208).
5115
7efa6272
GM
51162011-12-07 Glenn Morris <rgm@gnu.org>
5117
5118 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
5119 installation and source directories as well. (Bug#10208)
5120
f6fc4d87
CY
51212011-12-06 Chong Yidong <cyd@gnu.org>
5122
5123 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
5124
2bf26180
GM
51252011-12-06 Glenn Morris <rgm@gnu.org>
5126
5127 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
5128 as an error, not just -1. (Bug#10217)
5129
3a6ad4f0
CY
51302011-12-05 Chong Yidong <cyd@gnu.org>
5131
5132 * keyboard.c (process_special_events): New function.
5133 (swallow_events, Finput_pending_p): Use it (Bug#10195).
5134
75a3b399
PE
51352011-12-05 Paul Eggert <eggert@cs.ucla.edu>
5136
5137 * coding.c (encode_designation_at_bol): Don't use uninitialized
5138 local variable (Bug#9318).
5139
c3c9e25e
KH
51402011-12-05 Kenichi Handa <handa@m17n.org>
5141
5142 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
5143 return Qnil (Bug#8046, Bug#10193).
5144
5eb05ea3
KH
51452011-12-05 Kenichi Handa <handa@m17n.org>
5146
5147 * coding.c (encode_designation_at_bol): New args charbuf_end and
5148 dst. Return the number of produced bytes. Callers changed.
a79703f5
KH
5149 (coding_set_source): Return how many bytes coding->source was
5150 relocated.
5151 (coding_set_destination): Return how many bytes
5152 coding->destination was relocated.
5153 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
cae07000 5154 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
5eb05ea3
KH
5155
51562011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
5157
5158 * coding.c (CODING_CHAR_CHARSET_P): New macro.
5159 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
5160 macro (Bug#9318).
5161
51622011-12-05 Andreas Schwab <schwab@linux-m68k.org>
5163
5164 The following changes are to fix Bug#9318.
5165
a79703f5 5166 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
5eb05ea3
KH
5167 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
5168 (encode_coding_iso_2022, encode_coding_sjis)
a79703f5 5169 (encode_coding_big5, encode_coding_charset): Use the above macros.
5eb05ea3 5170
7dbda6df
JB
51712011-12-05 Juanma Barranquero <lekktu@gmail.com>
5172
5173 * lisp.h (process_quit_flag): Fix external declaration.
5174
6d5eb5b0
SM
51752011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
5176
5177 Don't macro-inline non-performance-critical code.
5178 * eval.c (process_quit_flag): New function.
5179 * lisp.h (QUIT): Use it.
5180
a0c3fad0
JD
51812011-12-04 Jan Djärv <jan.h.d@swipnet.se>
5182
5183 * nsfns.m (get_geometry_from_preferences): New function.
5184 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
5185
6c07aac2
AS
51862011-12-04 Andreas Schwab <schwab@linux-m68k.org>
5187
5188 * emacs.c (Qkill_emacs): Define.
5189 (syms_of_emacs): Initialize it.
5190 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
5191 Qquit_flag to `kill-emacs' instead.
6d5eb5b0
SM
5192 (quit_throw_to_read_char): Add parameter `from_signal'.
5193 All callers changed. Call Fkill_emacs if requested and safe.
6c07aac2
AS
5194 * lisp.h (QUIT): Call Fkill_emacs if requested.
5195
c052ead4
JD
51962011-12-03 Jan Djärv <jan.h.d@swipnet.se>
5197
5198 * widget.c (update_wm_hints): Return if wmshell is null.
5199 (widget_update_wm_size_hints): New function.
5200
5201 * widget.h (widget_update_wm_size_hints): Declare.
5202
5203 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
5204 widget_update_wm_size_hints (Bug#10104).
5205
9e49252b
EZ
52062011-12-03 Eli Zaretskii <eliz@gnu.org>
5207
5208 * xdisp.c (handle_invisible_prop): If the invisible text ends just
5209 before a newline, prepare the bidi iterator for consuming the
5210 newline, and keep the current paragraph direction. (Bug#10183)
e9a49426 5211 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
9e49252b 5212
02b16839
JL
52132011-12-02 Juri Linkov <juri@jurta.org>
5214
5215 * search.c (Fword_search_regexp): New Lisp function created from
5216 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
5217 (Fword_search_backward, Fword_search_forward)
5218 (Fword_search_backward_lax, Fword_search_forward_lax):
5219 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
5220 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
5221
0068070e
SM
52222011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
5223
5224 * fileio.c (Finsert_file_contents): Move after-change-function call
5225 to before the "handled:" label, since all "goto handled" appear in
5226 cases where the *-change-functions have already been properly called
5227 (bug#10117).
5228
3360a3fc
AS
52292011-12-01 Andreas Schwab <schwab@linux-m68k.org>
5230
5231 * keyboard.c (interrupt_signal): Don't call kill-emacs when
5232 waiting for input. (Bug#10169)
5233
73d6c093
EZ
52342011-11-30 Eli Zaretskii <eliz@gnu.org>
5235
5236 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
5237 verifies glyph row's hash code--we have just reallocated the
5238 glyphs, so their contents can be complete garbage. (Bug#10164)
5239
febe6bea
JB
52402011-11-30 Juanma Barranquero <lekktu@gmail.com>
5241
5242 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
5243
801a4313
EZ
52442011-11-30 Eli Zaretskii <eliz@gnu.org>
5245
5246 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
5247 attributes are tested _before_ calling verify_row_hash, to protect
5248 against GCC re-ordering of the tests. (Bug#10164)
5249
2b56b87e
JD
52502011-11-29 Jan Djärv <jan.h.d@swipnet.se>
5251
5252 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
5253
5254 * xterm.c (handle_one_xevent): Only set async_visible and friends
5255 if net_wm_state_hidden_seen is non-zero (Bug#10002)
7dbda6df 5256 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
2b56b87e
JD
5257 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
5258
dbf31225
PE
52592011-11-28 Paul Eggert <eggert@cs.ucla.edu>
5260
5261 Remove GCPRO-related macros that exist only to avoid shadowing locals.
5262 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
5263 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
5264 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
5265 All uses changed to use GCPRO1 etc.
5266 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
5267 Revert to old implementation (i.e., before 2011-03-11).
5268
1305621b
YM
52692011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
5270
5271 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
5272 of scroll runs so as to avoid assigning disabled bogus rows and
5273 unnecessary graphics copy operations.
5274
8c9afb46
EZ
52752011-11-27 Eli Zaretskii <eliz@gnu.org>
5276
5277 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
5278 (snprintf) [_MSC_VER]: Redirect to _snprintf.
5279 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
5280 (malloc, free, realloc, calloc): Redirect to e_* only when
5281 compiling Emacs.
5282
5283 * lisp.h (GCTYPEBITS): Move before first use.
5284 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
5285 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
5286 this macro definition.
5287
5288 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
5289 _MSC_VER.
5290
54e9e3bf
JD
52912011-11-27 Jan Djärv <jan.h.d@swipnet.se>
5292
6d5eb5b0
SM
5293 * gtkutil.c (xg_create_frame_widgets):
5294 Call gtk_window_set_has_resize_grip (FALSE) if that function is
54e9e3bf
JD
5295 present with Gtk+ 2.0.
5296
83aca1cb
PE
52972011-11-26 Paul Eggert <eggert@cs.ucla.edu>
5298
5299 * fileio.c (Finsert_file_contents): Undo previous change; see
5300 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
5301
5b76caa4
PE
53022011-11-26 Paul Eggert <eggert@cs.ucla.edu>
5303
5304 Rename locals to avoid shadowing.
5305 * fileio.c (Finsert_file_contents):
5306 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
5307 * process.c (wait_reading_process_output):
5308 Rename inner 'proc' to 'p' to avoid shadowing.
5309 Indent for consistency with usual Emacs style.
5310
8c535114
EZ
53112011-11-25 Eli Zaretskii <eliz@gnu.org>
5312
5313 * xdisp.c (redisplay_window): If cursor row is not fully visible
5314 after recentering, and scroll-conservatively is set to a large
5315 number, scroll window by a few more lines to make the cursor fully
5316 visible and out of scroll-margin. (Bug#10105)
91b4a718
EZ
5317 (start_display): Don't move to the next line if the display should
5318 start at a newline that is part of a display vector or an overlay
5319 string. (Bug#10119)
8c535114 5320
fa4fdb5c
JL
53212011-11-24 Juri Linkov <juri@jurta.org>
5322
5323 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
5324 after the `MagickPingImage' call. (Bug#10112)
5325
90ec88df
CY
53262011-11-23 Chong Yidong <cyd@gnu.org>
5327
5328 * window.c (Fcoordinates_in_window_p): Accept only live windows.
5329
56e2e794
MR
53302011-11-23 Martin Rudalics <rudalics@gmx.at>
5331
5332 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
5333 making another buffer current. (Bug#10114)
5334
b6e64c41
GM
53352011-11-23 Glenn Morris <rgm@gnu.org>
5336
5337 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
5338
6b21de18
CY
53392011-11-23 Chong Yidong <cyd@gnu.org>
5340
5341 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
5342 using it (Bug#5984).
5343
b12cd789
EZ
53442011-11-22 Eli Zaretskii <eliz@gnu.org>
5345
5346 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
5347 and header-lines, as they don't have one computed for them.
5348 (Bug#10098)
5349
5350 * .gdbinit (prow): Make displayed values more self-explaining.
5351 Add row's hash code.
5352
261b6fd4
LMI
53532011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
5354
5355 * process.c (wait_reading_process_output): Fix asynchrounous
5356 GnuTLS socket handling on some versions of the GnuTLS library.
16c1ad08 5357 (wait_reading_process_output): Add comment and URL.
261b6fd4 5358
e7cfd277
JD
53592011-11-21 Jan Djärv <jan.h.d@swipnet.se>
5360
5361 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
5362
a9b9b7f5
CY
53632011-11-21 Chong Yidong <cyd@gnu.org>
5364
5365 * window.c (Fnext_window, Fprevious_window): Doc fix.
5366
b0d15b4f
SM
53672011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
5368
5369 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
5370
fe7a3057
JB
53712011-11-20 Juanma Barranquero <lekktu@gmail.com>
5372
5373 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
5374
d2999b1a
MR
53752011-11-20 Martin Rudalics <rudalics@gmx.at>
5376
5377 * window.c (Fset_window_combination_limit): Rename argument
5378 STATUS to LIMIT.
5379 (Vwindow_combination_limit): Remove "status" from doc-string.
5380
d5ff9cd0
AS
53812011-11-20 Andreas Schwab <schwab@linux-m68k.org>
5382
5383 * m/ibms390.h: Remove.
5384 * m/ibms390x.h: Don't include "ibms390.h".
5385
a5bb9bd3
SM
53862011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
5387
5388 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
5389 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
5390
cd1181db
JB
53912011-11-20 Juanma Barranquero <lekktu@gmail.com>
5392
5393 * casetab.c (Fset_case_table):
5394 * charset.c (Fcharset_after): Fix typos.
5395
615a3b8d 53962011-11-20 Paul Eggert <eggert@cs.ucla.edu>
6a0bf43d 5397
17e845af
PE
5398 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
5399 Otherwise, valgrind does not work on some platforms.
5400 Problem reported by Andreas Schwab in
6a0bf43d
PE
5401 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
5402 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
5403 is set, removing the need for VIRT_ADDRESS_VARIES.
5404 (PURE_P): Use a more-efficient implementation that needs just one
5405 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
5406 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
5407 to 4 (xorl, subq, cmpq, setbe).
5408 * alloc.c (pure): Always extern now, since that's the
5409 VIRT_ADDR_VARIES behavior.
5410 (PURE_POINTER_P): Use a single comparison, not two, for
5411 consistency with the new puresize.h.
5412 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
5413 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
5414 Remove VIRT_ADDR_VARIES no longer needed.
5415
f8fe6f96
EZ
54162011-11-19 Eli Zaretskii <eliz@gnu.org>
5417
5418 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
5419 (erase_phys_cursor, update_window_cursor, show_mouse_face)
5420 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
5421 behave as if the cursor position were at the window margin.
5422
5423 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
5424 and the cursor position is out of bounds, behave as if the cursor
5425 position were at the window margin. (Bug#10075)
5426
df05a53c
CY
54272011-11-18 Chong Yidong <cyd@gnu.org>
5428
5429 * window.c (Fwindow_combination_limit): Make first argument
5430 non-optional, since it is meaningless for live windows like the
5431 selected window.
61ccba97 5432
2071918e
DA
54332011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
5434
5435 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
5436
b50a28de
SM
54372011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
5438
5439 * intervals.c: Fix grafting over the whole buffer (bug#10071).
5440 (graft_intervals_into_buffer): Simplify.
5441
015137db
EZ
54422011-11-18 Eli Zaretskii <eliz@gnu.org>
5443
5444 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
5445 hash values of the two rows.
5446 (copy_row_except_pointers): Preserve the used[] arrays and the
5447 hash values of the two rows. (Bug#10035)
68c95424 5448 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
015137db
EZ
5449
5450 * xdisp.c (row_hash): New function, body extracted from
5451 compute_line_metrics.
5452 (compute_line_metrics): Call row_hash, instead of computing the
5453 hash code inline.
5454
5455 * dispnew.c (verify_row_hash): Call row_hash for computing the
5456 hash code of a row, instead of duplicating code from xdisp.c.
5457
5458 * dispextern.h (row_hash): Add prototype.
5459
a2addb04
TH
54602011-11-18 Tassilo Horn <tassilo@member.fsf.org>
5461
5462 * frame.c (delete_frame): Don't delete the terminal when the last
5463 X frame is closed if emacs is built with GTK toolkit.
5464
df85d315
JB
54652011-11-17 Juanma Barranquero <lekktu@gmail.com>
5466
5467 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
5468
a0c2d0ae
MR
54692011-11-17 Martin Rudalics <rudalics@gmx.at>
5470
5471 * window.c (Vwindow_splits): Rename to
5472 Vwindow_combination_resize. Suggested by Juri Linkov.
5473 (Fsplit_window_internal): Use Vwindow_combination_resize instead
5474 of Vwindow_splits.
5475
58179cce
JB
54762011-11-16 Juanma Barranquero <lekktu@gmail.com>
5477
7877f373
JB
5478 * nsfns.m (Fns_font_name):
5479 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
58179cce 5480
b6f67890
MR
54812011-11-16 Martin Rudalics <rudalics@gmx.at>
5482
5483 * window.h (window): Rename slot "nest" to "combination_limit".
5484 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
5485 (Fset_window_nest): Rename to Fset_window_combination_limit.
5486 (Vwindow_nest): Rename to Vwindow_combination_limit.
5487 (recombine_windows, make_parent_window, make_window)
5488 (Fsplit_window_internal, saved_window)
5489 (Fset_window_configuration, save_window_save): Rename all
5490 occurrences of window_nest to window_combination_limit.
5491
c7015153
JB
54922011-11-15 Juanma Barranquero <lekktu@gmail.com>
5493
5494 * image.c (imagemagick_load_image): Fix typo.
5495
322ad6ec
EZ
54962011-11-14 Eli Zaretskii <eliz@gnu.org>
5497
5498 * xdisp.c (display_line): Move the call to
5499 highlight_trailing_whitespace before the call to
5500 compute_line_metrics, since the latter needs to see the final
6d5eb5b0
SM
5501 faces of all the glyphs to compute ROW's hash value.
5502 Fixes assertion violations in row_equal_p. (Bug#10035)
322ad6ec 5503
f067b8ec
JB
55042011-11-14 Juanma Barranquero <lekktu@gmail.com>
5505
5506 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
5507 just return (bug#10044).
5508
1e5b2111
EZ
55092011-11-12 Eli Zaretskii <eliz@gnu.org>
5510
7ef3cbd5
EZ
5511 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
5512 with user-defined heap size. Bump the default size of the temacs
5513 heap to 27MB, to avoid memory warning when running temacs.
5514 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
5515
1e5b2111
EZ
5516 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
5517 current_matrix and desired_matrix. (Bug#9990)
7a7270dd
EZ
5518 (verify_row_hash) [XASSERTS]: New function.
5519 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
5520 that the hash value of glyph rows is correct.
1e5b2111 5521
89d61221
MR
55222011-11-12 Martin Rudalics <rudalics@gmx.at>
5523
5524 * window.h (window): Remove splits slot.
5525 * window.c (Fwindow_splits, Fset_window_splits): Remove.
5526 (Fdelete_other_windows_internal, make_parent_window)
5527 (make_window, Fsplit_window_internal, Fdelete_window_internal)
5528 (Fset_window_configuration, save_window_save): Don't deal with
5529 split status of windows.
5530 (saved_window): Remove splits slot.
5531 (Vwindow_splits): Rewrite doc-string.
5532
97f18cc8
JD
55332011-11-11 Jan Djärv <jan.h.d@swipnet.se>
5534
5535 * xfns.c (unwind_create_frame):
5536 * nsfns.m (unwind_create_frame):
5537 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
5538 Vframe_list (Bug#9999).
5539
22a648b4
DA
55402011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
5541
0b381c7e 5542 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
22a648b4 5543
659afede
KH
55442011-11-11 Kenichi Handa <handa@m17n.org>
5545
5546 * callproc.c (Fcall_process): Set the member dst_multibyte of
5547 process_coding.
5548
9ac0394b
KH
55492011-11-11 Johan Bockgård <bojohan@gnu.org>
5550
5551 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
5552 avoid a crash (bug#9496).
5553
2fbdc249
CY
55542011-11-09 Chong Yidong <cyd@gnu.org>
5555
5556 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
5557 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
5558
ac6b1f81
PE
55592011-11-08 Paul Eggert <eggert@cs.ucla.edu>
5560
5561 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
5562
09db192c
PE
55632011-11-08 Paul Eggert <eggert@cs.ucla.edu>
5564
5565 Avoid some portability problems by eschewing 'extern inline' functions.
5566 The trivial performance wins aren't worth the portability hassles; see
5567 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
5568 et seq.
5569 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
5570 (window_box_width, window_box_left, window_box_left_offset)
5571 (window_box_right, window_box_right_offset): Undo previous change,
5572 by removing the "extern"s.
5573 * intervals.c (adjust_intervals_for_insertion)
5574 (adjust_intervals_for_deletion): Undo previous change,
5575 making these static again.
5576 (offset_intervals, temp_set_point_both, temp_set_point)
5577 (copy_intervals_to_string): No longer inline.
5578 * xdisp.c (window_text_bottom_y, window_box_width)
5579 (window_box_height, window_box_left_offset)
5580 (window_box_right_offset, window_box_left, window_box_right)
5581 (window_box): No longer inline.
5582
105216ed
CY
55832011-11-08 Chong Yidong <cyd@gnu.org>
5584
5585 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
6d5eb5b0
SM
5586 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
5587 Signal an error if not a live window.
105216ed
CY
5588 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
5589 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
5590
ae9e237f
JB
55912011-11-07 Juanma Barranquero <lekktu@gmail.com>
5592
5593 * lisp.h (syms_of_abbrev): Remove declaration.
5594 Reported by CHENG Gao <chenggao@royau.me>.
5595
c7aa8333
EZ
55962011-11-07 Eli Zaretskii <eliz@gnu.org>
5597
5598 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
5599 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
5600 of temacs in GUI mode.
5601
be7f5545
MR
56022011-11-07 Martin Rudalics <rudalics@gmx.at>
5603
5604 * window.h: Declare delete_all_child_windows instead of
5605 delete_all_subwindows.
5606 * window.c (Fwindow_nest, Fset_window_nest)
5607 (Fset_window_new_total, Fset_window_new_normal)
5608 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
5609 (delete_all_subwindows): Rename to delete_all_child_windows.
5610 (Fdelete_other_windows_internal, Fset_window_configuration):
5611 Call delete_all_child_windows instead of delete_all_subwindows.
5612 * frame.c (delete_frame): Call delete_all_child_windows instead
5613 of delete_all_subwindows.
5614
ca78dc43
PE
56152011-11-07 Paul Eggert <eggert@cs.ucla.edu>
5616
5617 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
5618 This is also needed for porting to any host where GC_MARK_STACK is
5619 not GC_MAKE_GCPROS_NOOPS.
5620 (which_symbols): Use it.
5621
a0241d01
KH
56222011-11-07 Kenichi Handa <handa@m17n.org>
5623
5624 * coding.c (coding_set_destination): Check coding->src_pos only
5625 when coding->src_object is a buffer (bug#9910).
5626
5627 * process.c (send_process): Set the member src_multibyte of coding
5628 to 0 (bug#9911) when sending a unibyte text.
5629
5630 * callproc.c (Fcall_process): Set the member src_multibyte of
5631 process_coding to 0 (bug#9912).
5632
a64bfdfa 56332011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
ba24cea2
YM
5634
5635 * xmenu.c (cleanup_widget_value_tree): New function.
5636 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
5637 calling free_menubar_widget_value_tree directly (Bug#9830).
5638
cb41b32a
PE
56392011-11-06 Paul Eggert <eggert@cs.ucla.edu>
5640
5641 Fix some portability problems with 'inline'.
5642 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
5643 (window_box_width, window_box_left, window_box_left_offset)
5644 (window_box_right, window_box_right_offset): Declare extern.
5645 Otherwise, these inline functions do not conform to C99 and
5646 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
5647 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
5648 * intervals.c (adjust_intervals_for_insertion)
5649 (adjust_intervals_for_deletion): Now extern, because otherwise the
5650 extern inline functions 'offset_intervals' couldn't refer to it.
5651 (static_offset_intervals): Remove.
5652 (offset_intervals): Rewrite using the old contents of
5653 static_offset_intervals. The old version didn't conform to C99
5654 because an extern inline function contained a reference to an
5655 identifier with static linkage.
5656
b7041366
AS
56572011-11-06 Andreas Schwab <schwab@linux-m68k.org>
5658
5659 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
5660 GC.
5661
88a37c4d
EZ
56622011-11-06 Eli Zaretskii <eliz@gnu.org>
5663
5664 * xdisp.c (init_iterator, reseat_to_string): Don't set the
5665 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
5666 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
5667 return Qleft_to_right.
5668
49745b39
CY
56692011-11-06 Chong Yidong <cyd@gnu.org>
5670
5671 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
5672 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
5673 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
5674 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
5675 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
5676 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
5677 (Fwindow_vscroll): Doc fix.
5678 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
5679 argument, since it makes no sense to pass a live window and for
5680 consistency with window-child.
5681
1f05cd82
CS
56822011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
5683
5684 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
5685 support MSVC.
5686
22610910
JR
56872011-11-05 Jason Rumney <jasonr@gnu.org>
5688
5689 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
5690 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
5691 fonts (Bug#6029).
5692 (add_font_entity_to_list): Fix logic errors in mixed boolean and
5693 bitwise arithmetic preventing use of unicode-sip and non-truetype
5694 opentype fonts.
5695
a06776b2
EZ
56962011-11-05 Eli Zaretskii <eliz@gnu.org>
5697
3ad924ba
EZ
5698 * s/ms-w32.h (fstat, stat, utime): Move redirections to
5699 "emacs"-only part.
5700
a06776b2
EZ
5701 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
5702 initialization code to keep similarity to xfns.c after changes
5703 from 2011-11-05.
5704
c9e7db78
JD
57052011-11-05 Jan Djärv <jan.h.d@swipnet.se>
5706
a97f8f3f
JD
5707 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
5708 (unwind_create_frame): New function (Bug#9943).
5709 (Fx_create_frame): Restructure code to be more similar to the one in
5710 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
5711 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
5712 Move terminal->reference_count++ just before making the frame official
5713 (Bug#9943).
5714
5715 * nsterm.m (x_free_frame_resources): New function.
5716 (x_destroy_window): Move code to x_free_frame_resources.
5717
c9e7db78 5718 * xfns.c (unwind_create_frame): Fix comment.
6d5eb5b0
SM
5719 (Fx_create_frame, x_create_tip_frame):
5720 Move terminal->reference_count++ just before making the frame
75f1671a 5721 official. Move initialization of image_cache_refcount and
c9e7db78
JD
5722 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
5723
a6fc3b5c
EZ
57242011-11-05 Eli Zaretskii <eliz@gnu.org>
5725
5726 Support MSVC build with newer versions of Visual Studio.
5727 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
5728 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
5729 nt/gmake.defs.
5730
5731 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
5732 which are not supported by MSVC.
5733 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
5734 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
5735 bitfields.
5736 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
5737 types in bitfields.
5738 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
5739
5740 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
5741
58179cce 57422011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
a6fc3b5c
EZ
5743
5744 Support MSVC build with newer versions of Visual Studio.
5745 * w32.c: Don't include w32api.h for MSVC.
5746 (init_environment) [_MSC_VER]: Call sys_access, not _access.
5747
5748 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
5749 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
5750 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
5751 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
5752 e_* cousins.
5753 (alloca) [_MSC_VER]: Define to _alloca.
5754
5755 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
5756
5757 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
5758
a58c13ed
EZ
57592011-11-04 Eli Zaretskii <eliz@gnu.org>
5760
5761 * xdisp.c (note_mouse_highlight): If either of
5762 previous/next-single-property-change returns nil, treat that as
5763 the beginning or the end of the buffer. (Bug#9955)
5764
fe0b6370
JD
57652011-11-04 Jan Djärv <jan.h.d@swipnet.se>
5766
a58c13ed 5767 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
fe0b6370
JD
5768 label is not null (Bug#9951).
5769 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
5770 may be NULL.
5771
89bd5ee1
EZ
57722011-11-04 Eli Zaretskii <eliz@gnu.org>
5773
5774 * window.c (Fwindow_body_size): Mention in the doc string that the
5775 return value is in frame's canonical units. (Bug#9949)
5776
84c3edb9
EZ
57772011-11-03 Eli Zaretskii <eliz@gnu.org>
5778
4e2fb5c7
EZ
5779 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
5780
84c3edb9 5781 * w32fns.c (unwind_create_frame): If needed, free the glyph
3ab15fd6 5782 matrices of the partially constructed frame. (Bug#9943)
2a58bbc1 5783 * xfns.c (unwind_create_frame): Likewise.
84c3edb9 5784
bc17a887
EZ
57852011-11-01 Eli Zaretskii <eliz@gnu.org>
5786
5787 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
5788 Don't stop backward scan on the continuation glyph, even though
5789 its CHARPOS is positive.
6d5eb5b0
SM
5790 (mouse_face_from_buffer_pos, note_mouse_highlight):
5791 Rename cover_string to disp_string.
bc17a887 5792
4ee88440
MR
57932011-11-01 Martin Rudalics <rudalics@gmx.at>
5794
5795 * window.c (temp_output_buffer_show): Don't use
5796 Vtemp_buffer_show_specifiers.
5797 (Vtemp_buffer_show_specifiers): Remove unused variable.
5798
c2ff3c02
EZ
57992011-10-30 Eli Zaretskii <eliz@gnu.org>
5800
5801 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
5802 past the beginning of the current glyph matrix.
5803
58179cce 58042011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
6e56383b
JD
5805
5806 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
5807 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
5808 HAVE_GTK3 (Bug#9869).
b77a6a7f 5809
3b574623
JD
5810 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
5811 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
5812
b77a6a7f
JD
5813 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
5814
5815 * xterm.c: Declare x_handle_net_wm_state to return int.
5816 (handle_one_xevent): Check if we are iconified but don't have
5817 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
5818 (get_current_wm_state): Return non-zero if not hidden,
5819 check for _NET_WM_STATE_HIDDEN (Bug#9893).
5820 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
5821 (x_handle_net_wm_state): Return what get_current_wm_state returns.
5822 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
5823
196e41e4
PE
58242011-10-29 Paul Eggert <eggert@cs.ucla.edu>
5825
5826 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
5827 so that this new function doesn't get optimized away by a
5828 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
5829
021f2e1a
AS
58302011-10-29 Andreas Schwab <schwab@linux-m68k.org>
5831
5832 * frame.h (MOUSE_HL_INFO): Remove excess parens.
5833
8b058d44
EZ
58342011-10-29 Eli Zaretskii <eliz@gnu.org>
5835
5836 Fix the `xbytecode' command.
5837 * .gdbinit (xprintbytestr): New command.
b50a28de 5838 (xwhichsymbols): Rename from `which'; all callers changed.
8b058d44
EZ
5839 (xbytecode): Print the byte-code string as well.
5840
4452fb80
EZ
58412011-10-29 Kim Storm <storm@cua.dk>
5842
8b058d44
EZ
5843 * alloc.c (which_symbols): New function.
5844
21b72067
AS
58452011-10-29 Andreas Schwab <schwab@linux-m68k.org>
5846
5847 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
5848 line. (Bug#9903)
5849
83ed7b5c
GM
58502011-10-29 Glenn Morris <rgm@gnu.org>
5851
5852 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
5853 Not clear what it was for, and it causes various bugs. (Bug#9839)
5854
5a7a728b
EZ
58552011-10-28 Eli Zaretskii <eliz@gnu.org>
5856
5857 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
5858 possible random value that matches one of those tested as
5859 condition to clear the mouse face.
5860
d3d0842f
CY
58612011-10-28 Chong Yidong <cyd@gnu.org>
5862
5863 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
5864
31b39d13
DN
58652011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
5866
5867 * window.c (make_window): Initialize phys_cursor_on_p.
5868
9aba6043
SM
58692011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
5870
5871 * lisp.h (struct Lisp_Symbol): Update comments.
5872
c20992f4
JB
58732011-10-28 Juanma Barranquero <lekktu@gmail.com>
5874
5875 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
5876
db4f02f2
EZ
58772011-10-28 Eli Zaretskii <eliz@gnu.org>
5878
5879 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
5880 <oslsachem@gmail.com> for helping to debug this.
5881
5882 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
5883 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
5884 (g_b_init_get_glyph_outline_w): New static variables.
5885 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
5886 (GetGlyphOutlineW_Proc): New typedefs.
5887 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
9aba6043
SM
5888 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
5889 New functions.
5890 (w32font_open_internal, compute_metrics):
5891 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
db4f02f2
EZ
5892 instead of calling the "wide" APIs directly.
5893
5894 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
5895
5896 * w32.h (syms_of_w32font): Add prototype.
5897
87e68db4
JB
58982011-10-27 Juanma Barranquero <lekktu@gmail.com>
5899
5900 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
5901 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
5902 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
5903 (Fmove_to_window_line): Doc fix.
5904
435c1d67
CY
59052011-10-27 Chong Yidong <cyd@gnu.org>
5906
5907 * process.c (make_process): Set gnutls_state to NULL.
5908
5909 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
5910 non-NULL, regardless of GNUTLS_INITSTAGE.
5911 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
5912 an error. Set process slots as soon as we allocate them.
5913
5914 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
5915
9c6c6f49
CY
59162011-10-27 Chong Yidong <cyd@gnu.org>
5917
9aba6043
SM
5918 * gnutls.c (emacs_gnutls_deinit): New function.
5919 Deallocate credentials structures as well as calling gnutls_deinit.
9c6c6f49
CY
5920 (Fgnutls_deinit, Fgnutls_boot): Use it.
5921
5922 * process.c (make_process): Initialize GnuTLS credentials to NULL.
5923 (deactivate_process): Call emacs_gnutls_deinit.
5924
657d08d3
JB
59252011-10-27 Juanma Barranquero <lekktu@gmail.com>
5926
5927 * image.c (x_create_x_image_and_pixmap):
5928 * w32.c (sys_rename, w32_delayed_load):
5929 * w32font.c (fill_in_logfont):
5930 * w32reg.c (x_get_string_resource): Silence compiler warnings.
5931
5430d399
JB
59322011-10-26 Juanma Barranquero <lekktu@gmail.com>
5933
5934 * w32fns.c (w32_default_color_map): New function,
5935 extracted from Fw32_default_color_map.
a7ef684b 5936 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
5430d399 5937
fe0055fa
PE
59382011-10-25 Paul Eggert <eggert@cs.ucla.edu>
5939
5940 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
5941
e6346438
SM
59422011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
5943
5944 * keyboard.c (test_undefined): New function (bug#9751).
5945 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
5946
e112cc37
ET
59472011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
5948
5949 * sysdep.c (init_sys_modes): Fix the check for the controlling
5950 terminal (Bug#6649).
5951
7b5d6677
EZ
59522011-10-20 Eli Zaretskii <eliz@gnu.org>
5953
5954 * dispextern.h (struct bidi_it): New member next_en_type.
5955
5956 * bidi.c (bidi_line_init): Initialize the next_en_type member.
5957 (bidi_resolve_explicit_1): When next_en_pos is valid for the
5958 current character, check also for next_en_type being WEAK_EN.
5959 (bidi_resolve_weak): Don't enter the expensive loop if the current
5960 position is before next_en_pos. Record the bidi type of the first
5961 non-ET, non-BN character we find, in addition to its position.
5962 (bidi_level_of_next_char): Invalidate next_en_type when
5963 next_en_pos is over-stepped.
5964
7da0b018
PE
59652011-10-20 Paul Eggert <eggert@cs.ucla.edu>
5966
5967 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
5968 * editfns.c: Rewrite current-time-zone so that it invokes
5969 the equivalent of (format-time-string "%Z") to get the time zone name.
5970 This fixes a bug when the time zone name contains characters that
5971 need converting from the system time locale to Emacs internal format.
5972 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
5973 that patch fixed format-time-string to do the conversion, but
5974 I forgot to fix current-time-zone.
5975 (format_time_string): New function, containing most of
5976 what Fformat_time_string used to contain.
5977 (Fformat_time_string): Rewrite in terms of format_time_string.
5978 This doesn't change this function's behavior.
5979 (current-time-zone): Rewrite to use format_time_string.
5980 This fixes the bug reported by Michael Schierl in
5981 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
5982 Jason Rumney's 2007-06-07 change worked around this bug, but
5983 didn't fix it.
5984 * systime.h (tzname, timezone): Remove no-longer-used declarations.
5985
8547b010
EZ
59862011-10-19 Eli Zaretskii <eliz@gnu.org>
5987
5988 * xdisp.c (start_display): If the character at POS is displayed
5989 via a display vector, reset IT->current.dpvec_index to zero.
12b32963
EZ
5990 (try_window_reusing_current_matrix): If a line ends in a display
5991 vector or the next line starts in a display vector, continue
5992 redrawing the window even though the character position of
5993 start_row was reached.
8547b010
EZ
5994 (Bug#9771, part 2)
5995
4e948d15
CY
59962011-10-18 Chong Yidong <cyd@gnu.org>
5997
5998 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
5999 with nobreak-char-display too.
6000
4787455f
EZ
60012011-10-18 Eli Zaretskii <eliz@gnu.org>
6002
6003 Fix part 3 of bug#9771.
6004 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
6005 (bidi_resolve_neutral): Don't enter the expensive loop looking for
6006 non-neutral characters if the current character is a paragraph
6007 separator (a.k.a. Newline). This avoids running the same
6008 expensive loop twice, once when we consume the preceding newline
6009 and the other time when the line actually needs to be displayed.
6010 Avoid the loop when we see neutrals on the base embedding level
6011 following a character whose directionality is the same as the
6012 paragraph's. This avoids running the expensive loop when a line
6013 ends in a long sequence of neutrals, like control characters.
6014 Add assertion against STRONG_AL type. Slightly rearrange code
6015 that determines the type of a neutral given the first non-neutral
6016 that follows it.
6017 (bidi_level_of_next_char): Set next_en_pos to zero when
6018 invalidating its info.
6019
2c91f553
EZ
60202011-10-17 Eli Zaretskii <eliz@gnu.org>
6021
6022 * xdisp.c (push_display_prop): Determine whether to record string
6023 or buffer position by IT->string, not by IT->method. Allow
6024 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
f2ff9e88
EZ
6025 (move_it_vertically_backward): Don't look for character position
6026 immediately after the newline when in a continuation line.
6027 (Bug#9771, part 1)
2c91f553 6028
c7b08b0d
MR
60292011-10-15 Martin Rudalics <rudalics@gmx.at>
6030
6031 * window.c (coordinates_in_window): Rewrite and delabelize
6032 vertical border check. (Bug#5357) (Bug#9618)
6033
6b02f655
SM
60342011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
6035
6036 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
6037 errors in XSetWindowBorder (bug#9310).
6038
81d40c92
DA
60392011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
6040
6041 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
6042 avoid crash when xmalloc overrun checking is enabled.
6043
d4172c3b
EZ
60442011-10-13 Eli Zaretskii <eliz@gnu.org>
6045
6046 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
6047 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
6048 cursor motion with <left> and <right> arrow keys.
6049
6050 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
6051 some callers set that themselves.
6052
b00eea75
EZ
60532011-10-12 Eli Zaretskii <eliz@gnu.org>
6054
6055 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
6056 display string and the previous row comes from the same string and
6057 is empty. (Bug#9739) (Bug#9738)
6058
8fe012c4
SM
60592011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
6060
6061 * doc.c (get_doc_string): Encode file name (bug#9735).
6062
0074aef2
EZ
60632011-10-12 Eli Zaretskii <eliz@gnu.org>
6064
79beb178
EZ
6065 * bidi.c (bidi_level_of_next_char):
6066 * xdisp.c (get_visually_first_element): Remove old incorrect
6067 comments regarding the Unicode Line Separator character.
6068
0074aef2
EZ
6069 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
6070
6e4b3fbe
DA
60712011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
6072
6073 * alloc.c (Fgc_status): Do not access beyond zombies array
6074 boundary if nzombies > MAX_ZOMBIES.
6075 * alloc.c (dump_zombies): Add missing format specifier.
6076
0324f3af
PE
60772011-10-12 Paul Eggert <eggert@cs.ucla.edu>
6078
b5525cac
PE
6079 * xdisp.c (set_cursor_from_row): Simplify conditionals,
6080 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
6081
0324f3af
PE
6082 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
6083 Some packages use them to denote characters with modifiers.
6084
e9b5f888
AS
60852011-10-11 Andreas Schwab <schwab@linux-m68k.org>
6086
6087 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
6088 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
6089 matching a pp-number. Rename parameter var to var1.
6090
127827c0
SM
60912011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
6092
6093 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
6094
c8fd3bd0
GM
60952011-10-08 Glenn Morris <rgm@gnu.org>
6096
6097 * callint.c (Fcall_interactively): Give a more explicit error for the
6098 'c' case with a non-character input. (Bug#8479)
6099
352ec8ff
EZ
61002011-10-08 Eli Zaretskii <eliz@gnu.org>
6101
03669ccb
EZ
6102 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
6103 lines.
7061c986
EZ
6104 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
6105 lines that are hscrolled on the left.
03669ccb 6106
352ec8ff
EZ
6107 * dispnew.c (buffer_posn_from_coords): Account for a possible
6108 presence of header-line. (Bug#4426)
6109
a66cfb1c
SM
61102011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
6111
6b02f655
SM
6112 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
6113 Don't advertise functionality which we discourage or doesn't work.
a66cfb1c 6114
7c5ee88e
PE
61152011-10-07 Paul Eggert <eggert@cs.ucla.edu>
6116
6117 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
6118 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
6119 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
6120 this makes Emacs dump core during garbage collection on rare
6121 occasions. sizeof is obviously inferior to offsetof here, so
6122 stick with offsetof.
6123 (GC_POINTER_ALIGNMENT): New macro.
6124 (mark_memory): Omit 3rd (offset) arg; caller changed.
6125 Don't assume EMACS_INT alignment is the same as pointer alignment.
6126
df1bbe5b
SM
61272011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
6128
6129 * keyboard.c (read_key_sequence_remapped): New var.
6130 (read_key_sequence): Compute remapping in the right buffer.
6131 (command_loop_1): Use read_key_sequence's remapping directly.
6132
51553db6
SM
61332011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
6134
32c1fffd
SM
6135 * dired.c (file_name_completion): Don't expand file name.
6136 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
6137 before checking file name handler.
6138
51553db6
SM
6139 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
6140 they've been requested explicitly (bug#9591).
6141
b6bd1599 61422011-10-01 Andreas Schwab <schwab@linux-m68k.org>
fa2ec41f
AS
6143
6144 * keymap.c (Fsingle_key_description): Use make_specified_string
6145 instead of build_string to build string from push_key_description.
6146 (Bug#5193)
6147
f701dc2a
PE
61482011-09-30 Paul Eggert <eggert@cs.ucla.edu>
6149
4222c55d
PE
6150 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
6151 This fixes a Y2038 bug on 64-bit hosts.
6152 * buffer.c (reset_buffer):
6153 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
6154 (Fclear_buffer_auto_save_failure):
6155 Use 0, not -1, to represent an unset failure time, since time_t
6156 might not be signed.
6157
f701dc2a
PE
6158 Remove dependency on glibc malloc internals.
6159 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
6160 Move back here from lisp.h, but with their new implementations.
6161 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
6162 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
6163 * charset.c (charset_table_init): New static var.
6164 (syms_of_charset): Use it instead of xmalloc. This removes a
6165 dependency on glibc malloc internals. See Eli Zaretskii's comment in
6166 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
6167 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
6168 Move back to alloc.c.
6169 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
6170 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
6171
9ceebf39
JD
61722011-09-30 Jan Djärv <jan.h.d@swipnet.se>
6173
6174 * nsterm.m (windowDidResize): Call x_set_window_size only when
6175 ns_in_resize is true. Otherwise set pixelwidth/height and
6176 call change_frame_size (Bug#9628).
6177
cb993c58
PE
61782011-09-30 Paul Eggert <eggert@cs.ucla.edu>
6179
3930c88b
PE
6180 Port --enable-checking=all to Fedora 14 x86-64.
6181 * charset.c (syms_of_charset): Also account for glibc malloc's
6182 internal overhead when calculating the initial malloc maximum.
6183
cb993c58
PE
6184 Port --enable-checking=all to Fedora 14 x86.
6185 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
6186 Move to lisp.h.
6187 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
6188 (overrun_check_realloc, overrun_check_free):
6189 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
6190 That way, xmalloc returns a properly-aligned pointer even if
6191 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
6192 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
6193 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
6194 into account when calculating the initial malloc maximum.
6195 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
6196 Move here from alloc.c, so that charset.c can use it too.
6197 Properly align; the old code wasn't right for common 32-bit hosts
6198 when configured with --enable-checking=all.
6199 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
6200 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
6201
31bed486
EZ
62022011-09-29 Eli Zaretskii <eliz@gnu.org>
6203
04c70788 6204 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
31bed486
EZ
6205 use EDOM.
6206
fbcaa2f3
EZ
62072011-09-28 Eli Zaretskii <eliz@gnu.org>
6208
6209 * xdisp.c (compute_display_string_end): If there's no display
6210 string at CHARPOS, return -1.
6211
6212 * bidi.c (bidi_fetch_char): When compute_display_string_end
6213 returns a negative value, treat the character as a normal
6214 character not covered by a display string. (Bug#9624)
6215
a239d4e9
JB
62162011-09-28 Juanma Barranquero <lekktu@gmail.com>
6217
6218 * lread.c (Fread_from_string): Fix typo in docstring.
6219
88652fd5
EZ
62202011-09-27 Eli Zaretskii <eliz@gnu.org>
6221
6222 * xdisp.c (handle_invisible_prop): If invisible text ends on a
6223 newline, reseat the iterator instead of bidi-iterating there one
6224 character at a time. (Bug#9610)
32c1fffd
SM
6225 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
6226 TO_CHARPOS if the bidi iterator is at base embedding level.
88652fd5 6227
ed497dd4
AS
62282011-09-27 Andreas Schwab <schwab@linux-m68k.org>
6229
6230 * lread.c (readevalloop): Use correct code for NBSP.
6231 (read1): Likewise. (Bug#9608)
6232
b2bf61aa
MA
62332011-09-25 Michael Albinus <michael.albinus@gmx.de>
6234
6235 * dbusbind.c (Fdbus_register_signal): When service is not
6236 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
6237
32bbb17c
GM
62382011-09-25 Glenn Morris <rgm@gnu.org>
6239
6240 * buffer.c (truncate-lines): Doc fix.
6241
94e0933e
CY
62422011-09-24 Chong Yidong <cyd@stupidchicken.com>
6243
6244 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
6245 (Fset_window_next_buffers): Doc fix.
6246
cddde921
GM
62472011-09-24 Glenn Morris <rgm@gnu.org>
6248
6249 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
6250
1260aef1
PE
62512011-09-24 Paul Eggert <eggert@cs.ucla.edu>
6252
25b4bfa0
PE
6253 Fix minor problems found by static checking.
6254 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
1260aef1
PE
6255 * indent.c (Fvertical_motion): Fix == vs = typo.
6256
e3cbd34b
EZ
62572011-09-24 Eli Zaretskii <eliz@gnu.org>
6258
a66cfb1c
SM
6259 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
6260 Default value is now t. Doc fix.
6bf7006f 6261
e3cbd34b 6262 * indent.c (Fvertical_motion): Compute and apply the overshoot
32c1fffd 6263 logic when moving up, not only when moving down. Fix the
e3cbd34b 6264 confusing name and values of the it_overshoot_expected variable;
32c1fffd 6265 logic changes accordingly. (Bug#9254) (Bug#9549)
e3cbd34b
EZ
6266
6267 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
6268 CHARPOS is covered by a display string which includes newlines.
6269 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
6270 is covered by a display string with embedded newlines.
6271
a3de0cbd
MA
62722011-09-24 Michael Albinus <michael.albinus@gmx.de>
6273
6274 * dbusbind.c (Fdbus_register_signal): Add match rule to
6275 Vdbus_registered_objects_table. (Bug#9581)
a66cfb1c
SM
6276 (Fdbus_register_method, Vdbus_registered_objects_table):
6277 Fix docstring.
a3de0cbd 6278
b260039d
JM
62792011-09-24 Jim Meyering <meyering@redhat.com>
6280
32c1fffd 6281 do not ignore write error for any output size
b260039d
JM
6282 The previous change was incomplete.
6283 While it makes emacs --batch detect the vast majority of stdout
6284 write failures, errors were still ignored whenever the output size is
6285 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
6286 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
6287 && echo FAIL: ignored write error
6288 FAIL: ignored write error
6289 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
6290 && echo FAIL: ignored write error
6291 FAIL: ignored write error
6292 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
6293
8eca8a7c
AS
62942011-09-23 Andreas Schwab <schwab@linux-m68k.org>
6295
6296 * emacs.c (Fkill_emacs): In noninteractive mode exit
6297 non-successfully if a write error occurred on stdout. (Bug#9574)
6298
3341db62
EZ
62992011-09-21 Eli Zaretskii <eliz@gnu.org>
6300
6301 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
6302 the xassert test.
6303
6304 * dispextern.h (struct it): Update the comment documenting what
6305 can it->OBJECT be.
6306
8c203dbf
EZ
63072011-09-20 Eli Zaretskii <eliz@gnu.org>
6308
6309 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
6310 a display string, extend search for cursor position to end of row.
6311 (find_row_edges): If the row ends in a newline from a display
6312 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
6313 Handle the case of a display string with multiple newlines.
fd317ddf
EZ
6314 (Fcurrent_bidi_paragraph_direction): Fix search for previous
6315 non-empty line. Fixes confusing cursor motion with arrow keys at
6316 the beginning of a line that starts with whitespace.
8c203dbf 6317
a4824228
LMI
63182011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
6319
6320 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
6321 (bug#9493).
6322
33ed493b
CY
63232011-09-18 Chong Yidong <cyd@stupidchicken.com>
6324
6325 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
6326 boolean (Bug#9154).
6327
56cd55c8
EZ
63282011-09-18 Eli Zaretskii <eliz@gnu.org>
6329
6330 * xdisp.c (display_line): Record maximum and minimum buffer
6331 positions even if no glyphs were produced (e.g., by a zero-width
6332 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
6333 buffer positions that will be removed from the glyph row because
6334 they don't fit.
c02dcedf
EZ
6335 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
6336 column is beyond frame width: don't subtract 1 "pixel" when
6337 computing width of the stretch.
3e62b7e0
EZ
6338 (reseat_at_next_visible_line_start): Undo the change made on
6339 2011-09-17 that saved paragraph information and restored it after
6340 the call to `reseat'. (Bug#9545)
56cd55c8 6341
5ed99d36 63422011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3390454c
YM
6343
6344 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
6345 and turn window cursor on if cleared (Bug#9415).
6346
5ed99d36 63472011-09-18 Andreas Schwab <schwab@linux-m68k.org>
edb7b4dc
AS
6348
6349 * search.c (boyer_moore): Take unibyte characters from pattern
6350 literally. (Bug#9458)
6351
9bade7b2
EZ
63522011-09-18 Eli Zaretskii <eliz@gnu.org>
6353
6354 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
6355
e5e9d610
PE
63562011-09-18 Paul Eggert <eggert@cs.ucla.edu>
6357
87e4427a
PE
6358 Fix minor problem found by static checking.
6359 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
6360 initialized, to pacify gcc -Wuninitialized.
6361
e5e9d610
PE
6362 * fileio.c: Report proper errno when syscall falls.
6363 (Finsert_file_contents): Save and restore errno,
6364 so that report_file_error outputs the correct diagnostic.
6365 (Fwrite_region) [CLASH_DETECTION]: Likewise.
6366
a1674f0b
EZ
63672011-09-18 Eli Zaretskii <eliz@gnu.org>
6368
6369 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
6370
fbfb6dd4
EZ
63712011-09-17 Eli Zaretskii <eliz@gnu.org>
6372
6373 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
6374 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
6375
bb187662
EZ
63762011-09-17 Eli Zaretskii <eliz@gnu.org>
6377
1137e8b8 6378 * xdisp.c (reseat_at_next_visible_line_start): Keep information
6b02f655 6379 about the current paragraph and restore it after the call to reseat.
1137e8b8
EZ
6380
6381 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
6382 (bidi_find_paragraph_start): Search back for paragraph beginning
6383 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
6384 (bidi_move_to_visually_next): Only trigger paragraph-related
6385 computations when the last character is a newline or at EOB, not
6386 just any NEUTRAL_B. (Bug#9470)
6387
bb187662
EZ
6388 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
6389 truncated lines if point is covered by a display string. (Bug#9524)
6390
2e621251
PE
63912011-09-16 Paul Eggert <eggert@cs.ucla.edu>
6392
6393 * xselect.c: Relax test for outgoing X longs (Bug#9498).
6394 (cons_to_x_long): New function.
6395 (lisp_data_to_selection_data): Use it. Correct the test for
6396 short-versus-long data; it was negated. Break out of vector
6397 loop, for efficiency, when a long datum is discovered.
6398
91a15bc6
SM
63992011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
6400
6401 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
6402
b41c3a35
EZ
64032011-09-16 Eli Zaretskii <eliz@gnu.org>
6404
6405 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
6406 GCC PR/17406) by declaring this function with external scope.
6407
7812ba2d
PE
64082011-09-15 Paul Eggert <eggert@cs.ucla.edu>
6409
6410 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
6411 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
6412
cf7edc2a
AS
64132011-09-15 Andreas Schwab <schwab@linux-m68k.org>
6414
6415 * editfns.c (Fformat): Correctly handle text properties on "%%".
6416
bd01620e
EZ
64172011-09-15 Eli Zaretskii <eliz@gnu.org>
6418
6419 * xterm.c (x_draw_composite_glyph_string_foreground):
6420 * w32term.c (x_draw_composite_glyph_string_foreground):
6421 * term.c (encode_terminal_code):
6422 * composite.c (composition_update_it, get_composition_id):
6423 * xdisp.c (get_next_display_element)
6424 (fill_composite_glyph_string): Add comments about special meaning
6425 of TAB characters in a composition.
6426
a02719a3
PE
64272011-09-15 Paul Eggert <eggert@cs.ucla.edu>
6428
6429 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
4c122725
PE
6430 This occurs when processing a multibyte format.
6431 Problem reported by Wolfgang Jenker.
a02719a3 6432
72589a3c
JB
64332011-09-15 Johan Bockgård <bojohan@gnu.org>
6434
6435 * xdisp.c (try_cursor_movement): Only check for exact match if
6436 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
6437
1c14176c
PE
64382011-09-14 Paul Eggert <eggert@cs.ucla.edu>
6439
6440 Remove unused external symbols.
6441 * dispextern.h (calc_pixel_width_or_height): Remove decl.
6442 * xdisp.c (calc_pixel_width_or_height): Now static.
6443 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
6444 * indent.c (check_display_width):
6445 * w32term.c: Fix comment to match code.
6446 * xterm.c, xterm.h (x_catching_errors): Remove.
6447
d2eea5b5
PE
64482011-09-14 Paul Eggert <eggert@cs.ucla.edu>
6449
6450 * xselect.c: Use signed conversions more consistently (Bug#9498).
6451 (selection_data_to_lisp_data): Assume incoming selection data are
6452 signed integers, not unsigned. This is to be consistent with
6453 outgoing selection data, which was modified to use signed integers
6454 in as part of the fix to Bug#9196 in response to Jan D.'s comment
6455 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
6456 expects long, not unsigned long.
6457
46888499
EZ
64582011-09-14 Eli Zaretskii <eliz@gnu.org>
6459
6460 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
6461 computation of loop end. Reported by Johan Bockgård
6462 <bojohan@gnu.org>.
6463
ef8ef9fb
CY
64642011-09-13 Chong Yidong <cyd@stupidchicken.com>
6465
6466 * frame.c (Fother_visible_frames_p): Function deleted.
6467
fa819fed
EZ
64682011-09-12 Eli Zaretskii <eliz@gnu.org>
6469
6470 * indent.c (compute_motion): Process display vector front to back
6471 rather than the other way around. (Bug#2496)
6472
2ba8e008
SM
64732011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
6474
6475 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
6476
20f53c69
CY
64772011-09-11 Chong Yidong <cyd@stupidchicken.com>
6478
6479 * minibuf.c (Fread_from_minibuffer): Doc fix.
6480
d562d7a4
EZ
64812011-09-11 Eli Zaretskii <eliz@gnu.org>
6482
6483 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
6484 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
6485
1c4d7f3d
LMI
64862011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
6487
6488 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
6489 value for non-existent files.
6490
b885bf36
EZ
64912011-09-11 Eli Zaretskii <eliz@gnu.org>
6492
6493 * fileio.c (Finsert_file_contents): If the file cannot be opened,
6494 set its "size" to -1. This will set the modtime_size field of
6495 the corresponding buffer to -1, which is what
6496 verify-visited-file-modtime expects for files that do not exist.
6497 (Bug#9139)
6498
6612f0bf
PE
64992011-09-11 Paul Eggert <eggert@cs.ucla.edu>
6500
6501 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
6502 here ...
6503 * lisp.h: ... from here. push_key_description is no longer
6504 defined in keyboard.c, so its declaration should not be in
6505 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
6506 logically belongs with push_key_description.
6507
dfb3f755
PE
65082011-09-10 Paul Eggert <eggert@cs.ucla.edu>
6509
6510 * buffer.h: Include <sys/types.h> instead of <time.h>.
6511 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
6512 Problem reported by Herbert J. Skuhra.
6513
3134906c
LMI
65142011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
6515
6516 * xml.c (parse_region): Make the parsing work for
6517 non-comment-starting XML files again (bug#9144).
6518
8d903f4e
AS
65192011-09-10 Andreas Schwab <schwab@linux-m68k.org>
6520
6521 * image.c (gif_load): Fix calculation of bottom and right corner.
6522 (Bug#9468)
6523
80ad64f4
EZ
65242011-09-10 Eli Zaretskii <eliz@gnu.org>
6525
6526 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
6527 redisplay in small windows.
6528
208a048d
EZ
65292011-09-09 Eli Zaretskii <eliz@gnu.org>
6530
6531 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
6532
9b1c252e
MR
65332011-09-08 Martin Rudalics <rudalics@gmx.at>
6534
6535 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
6536 Operate on live windows only.
6537
2949f33b
JB
65382011-09-08 Juanma Barranquero <lekktu@gmail.com>
6539
6540 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
6541
e08dcafd
EZ
65422011-09-07 Eli Zaretskii <eliz@gnu.org>
6543
6544 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
6545 only under bidi iteration.
6546
115b96bd
JD
65472011-09-07 Jan Djärv <jan.h.d@swipnet.se>
6548
6549 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
6550
c8199d0f
PE
65512011-09-06 Paul Eggert <eggert@cs.ucla.edu>
6552
6553 isnan: Fix porting problem to Solaris 10 with bundled gcc.
6554 Without this fix, the command to link temacs failed due to an
6555 undefined symbol __builtin_isnan. This is because
6556 /usr/include/iso/math_c99.h #defines isnan(x) to
6557 __builtin_isnan(x), but the bundled gcc, which identifies itself
6558 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
6559 a __builtin_isnan.
6560 * floatfns.c (isnan): #undef, and then #define to a clone of
6561 what's in data.c.
6562 (Fisnan): Always define, since it's always available now.
6563 (syms_of_floatfns): Always define isnan at the Lisp level.
6564
e39b275c 65652011-09-06 Paul Eggert <eggert@cs.ucla.edu>
1c262cae
PE
6566
6567 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
6568
b2db44d9 65692011-09-06 Paul Eggert <eggert@cs.ucla.edu>
728f8f0a 6570
f4af5137 6571 * fileio.c: Fix bugs with large file offsets (Bug#9428).
728f8f0a
PE
6572 The previous code assumed that file offsets (off_t values) fit in
6573 EMACS_INT variables, which is not true on typical 32-bit hosts.
6574 The code messed up by falsely reporting buffer overflow in cases
6575 such as (insert-file-contents "big" nil 1 2) into an empty buffer
6576 when "big" contains more than 2**29 bytes, even though this
6577 inserts just one byte and does not overflow the buffer.
6578 (Finsert_file_contents): Store file offsets as off_t
6579 values, not as EMACS_INT values. Check for overflow when
6580 converting between EMACS_INT and off_t. When checking for
6581 buffer overflow or for overlap, take the offsets into account.
6582 Don't use EMACS_INT for small values where int suffices.
6583 When checking for overlap, fix a typo: ZV was used where
6584 ZV_BYTE was intended.
6585 (Fwrite_region): Don't assume off_t fits into 'long'.
6586 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
6587
ecfc0a49
MA
65882011-09-05 Michael Albinus <michael.albinus@gmx.de>
6589
6590 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
6591
6511acf2 65922011-09-04 Paul Eggert <eggert@cs.ucla.edu>
61bfeeb7 6593
0999621a 6594 sprintf-related integer and memory overflow issues (Bug#9412).
62f19c19
PE
6595
6596 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
8666506e 6597 (esprintf, exprintf, evxprintf): New functions.
62f19c19 6598 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
6b02f655 6599 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
62f19c19
PE
6600 (modify_event_symbol): Do not assume that the length of
6601 name_alist_or_stem is safe to alloca and fits in int.
6602 (Fexecute_extended_command): Likewise for function name and binding.
6603 (Frecursion_depth): Wrap around reliably on integer overflow.
6604 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
6605 since some callers pass EMACS_INT values.
6606 (Fsingle_key_description): Don't crash if symbol name contains more
6607 than MAX_ALLOCA bytes.
6608 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
6609 (get_minibuffer): Arg is now EMACS_INT, not int.
6610 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
8666506e 6611 (esprintf, exprintf, evxprintf): New decls.
62f19c19
PE
6612 * window.h (command_loop_level, minibuf_level): Reflect API changes.
6613
2be7d702
PE
6614 * dbusbind.c (signature_cat): New function.
6615 (xd_signature, Fdbus_register_signal):
2ea16b89
PE
6616 Do not overrun buffer; instead, report string overflow.
6617
9d1df220
PE
6618 * dispnew.c (add_window_display_history): Don't overrun buffer.
6619 Truncate instead; this is OK since it's just a log.
6620
33ef5c64
PE
6621 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
6622 even if the time zone offset is outlandishly large.
6623 Don't mishandle offset == INT_MIN.
6624
66c6fdd5
PE
6625 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
6626 when creating daemon; the previous buffer-overflow check was incorrect.
6627
d749b01b
PE
6628 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
6629 which has the guts of the old verror function.
6630
b5cd1905
PE
6631 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
6632 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
6633
6e1a67fb
PE
6634 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
6635 (font_unparse_xlfd): Don't blindly alloca long strings.
c21721cc 6636 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
8666506e 6637 fits in int, when using sprintf. Use single snprintf to count
c21721cc
PE
6638 length of string rather than counting it via multiple sprintfs;
6639 that's simpler and more reliable.
c21721cc
PE
6640 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
6641 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
6642 sprintf, in case result does not fit in int.
6643
c57b67fc
PE
6644 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
6645 (fontset_from_font): Print it.
6646
8a401434
PE
6647 * frame.c (tty_frame_count): Now printmax_t, not int.
6648 (make_terminal_frame, set_term_frame_name): Print it.
6649 (x_report_frame_params): In X, window IDs are unsigned long,
6650 not signed long, so print them as unsigned.
6651 (validate_x_resource_name): Check for implausibly long names,
6652 and don't assume name length fits in 'int'.
6653 (x_get_resource_string): Don't blindly alloca invocation name;
6654 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
6655 not fit in int.
6656
6e1a67fb
PE
6657 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
6658 (xg_check_special_colors, xg_set_geometry):
84722b3d
PE
6659 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
6660
0df02bf3
PE
6661 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
6662 Use esprintf, not sprintf, in case result does not fit in int.
6663
48e30793
PE
6664 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
6665 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
6666 it as a large positive number.
6667 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
6668 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
6669
a66ff6d8
PE
6670 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
6671 in case result does not fit in int.
6672
aca216ff
PE
6673 * print.c (float_to_string): Detect width overflow more reliably.
6674 (print_object): Make sprintf buffer a bit bigger, to avoid potential
6675 buffer overrun. Don't assume list length fits in 'int'. Treat
6676 print length of 0 as 0, not as infinity; to be consistent with other
6677 uses of print length in this function. Don't overflow print length
6678 index. Don't assume hash table size fits in 'long', or that
6679 vectorlike size fits in 'unsigned long'.
6680
31c286f7
PE
6681 * process.c (make_process): Use printmax_t, not int, to format
6682 process-name gensyms.
6683
55e5faa1
PE
6684 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
6685
80f2e268
PE
6686 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
6687 to avoid potential buffer overrun.
6688
670741ab
PE
6689 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
6690 if X resource line is longer than 512 bytes.
6691
b7163a50
PE
6692 * xfns.c (x_window): Make sprintf buffer a bit bigger
6693 to avoid potential buffer overrun.
6694
ae58ff1f
PE
6695 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
6696
c43c8a6a
PE
6697 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
6698
3f8236f4
PE
66992011-09-04 Paul Eggert <eggert@cs.ucla.edu>
6700
53e9fe90 6701 Integer overflow fixes for scrolling, etc.
6511acf2
PE
6702 Without these, Emacs silently mishandles large integers sometimes.
6703 For example, "C-u 4294967297 M-x recenter" was treated as if
53e9fe90
PE
6704 it were "C-u 1 M-x recenter" on a typical 64-bit host.
6705
6511acf2
PE
6706 * xdisp.c (try_window_id): Check Emacs fixnum range before
6707 converting to 'int'.
806add1d 6708
6511acf2 6709 * window.c (window_scroll_line_based, Frecenter):
71f02bc5
PE
6710 Check that an Emacs fixnum is in range before assigning it to 'int'.
6711 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
6712 values converted from Emacs fixnums.
6713 (Frecenter): Don't wrap around a line count if it is out of 'int'
6714 range; instead, treat it as an extreme value.
6715 (Fset_window_configuration, compare_window_configurations):
6716 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
6717
6511acf2
PE
6718 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
6719 that can exceed INT_MAX. Check that EMACS_INT value is in range
6720 before assigning it to the (possibly-narrower) index.
a0efffc8
PE
6721 (match_limit): Don't assume that a fixnum can fit in 'int'.
6722
6511acf2 6723 * print.c (print_object): Use ptrdiff_t, not int, for index that can
29ebea3b
PE
6724 exceed INT_MAX.
6725
6511acf2 6726 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
3f8236f4
PE
6727 (Fvertical_motion): Don't wrap around LINES values that don't fit
6728 in 'int'. Instead, treat them as extreme values. This is good
6729 enough for windows, which can't have more than INT_MAX lines anyway.
6730
fcb901a7
LMI
67312011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
6732
0f2f6b6d
LMI
6733 * Require libxml/parser.h to avoid compilation warning.
6734
fcb901a7
LMI
6735 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
6736
6737 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
6738 since this reportedly can destroy thread storage.
6739
6e20a0d4
CY
67402011-08-30 Chong Yidong <cyd@stupidchicken.com>
6741
6742 * syntax.c (find_defun_start): Update all cache variables if
6743 exiting early (Bug#9401).
6744
148ae00e
EZ
67452011-08-30 Eli Zaretskii <eliz@gnu.org>
6746
f6cfbd8f
EZ
6747 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
6748
148ae00e
EZ
6749 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
6750 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
6751 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
6752
6753 * term.c (tty_append_glyph): New function.
6754 (produce_stretch_glyph): Static function and its prototype deleted.
6755
a66cfb1c
SM
6756 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
6757 Add prototypes.
148ae00e 6758
c4a07a4c
PE
67592011-08-29 Paul Eggert <eggert@cs.ucla.edu>
6760
6761 * image.c (parse_image_spec): Check for nonnegative, not for positive,
6762 when checking :margin (Bug#9390).
6763 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
a66cfb1c 6764 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
c4a07a4c
PE
6765 so that the name doesn't mislead. All uses changed.
6766
6bc8cd65
JB
67672011-08-28 Johan Bockgård <bojohan@gnu.org>
6768
6769 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
6770 set_tty_hooks.
6771
dca4927e
EZ
67722011-08-27 Eli Zaretskii <eliz@gnu.org>
6773
6774 * xdisp.c (move_it_to): Don't bail out early when reaching
6775 position beyond to_charpos, if we are scanning backwards.
6776 (move_it_vertically_backward): When DY == 0, make sure we get to
6777 the first character in the line after the newline.
6778
f2cad773
PE
67792011-08-27 Paul Eggert <eggert@cs.ucla.edu>
6780
6781 * ccl.c: Improve and simplify overflow checking (Bug#9196).
6782 (ccl_driver): Do not generate an out-of-range pointer.
6783 (Fccl_execute_on_string): Remove unnecessary check for
6784 integer overflow, noted by Stefan Monnier in
6785 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
6786 Remove a FIXME that didn't need fixing.
6787 Simplify the newly-introduced buffer reallocation code.
6788
0cae2cdb
JB
67892011-08-27 Juanma Barranquero <lekktu@gmail.com>
6790
6791 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
6792
5fc295a4 67932011-08-26 Paul Eggert <eggert@cs.ucla.edu>
ddff3151 6794
70c60eb2 6795 Integer and memory overflow issues (Bug#9196).
726e0ab1 6796
d31850da
PE
6797 * doc.c (get_doc_string): Rework so that
6798 get_doc_string_buffer_size is the actual buffer size, rather than
6799 being 1 less than the actual buffer size; this makes xpalloc more
6800 convenient.
6801
a69fbedb
PE
6802 * image.c (x_allocate_bitmap_record, cache_image):
6803 * xselect.c (Fx_register_dnd_atom):
6804 Simplify previous changes by using xpalloc.
6805
fe5c5d37
PE
6806 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
6807 since either will do and ptrdiff_t is convenient with xpalloc.
6808
0065d054
PE
6809 * charset.c (charset_table_size)
6810 (struct charset_sort_data.priority): Now ptrdiff_t.
6811 (charset_compare): Don't overflow if priorities differ greatly.
6812 (Fsort_charsets): Don't assume list length fits in int.
6813 Check for size-calculation overflow when allocating sort data.
6814 (syms_of_charset): Allocate an initial charset table that is
6815 just under 64 KiB, to avoid problems with glibc malloc and mmap.
6816
6817 * cmds.c (internal_self_insert): Check for size-calculation overflow.
6818
6819 * composite.h (struct composition.glyph_len): Now int, not unsigned.
6820 The actual value is always <= INT_MAX, and leaving it unsigned made
6821 overflow checking harder.
6822
6823 * dispextern.h (struct glyph_matrix.rows_allocated)
6824 (struct face_cache.size): Now ptrdiff_t, for convenience in use
6825 with xpalloc. The values are still always <= INT_MAX.
6826
6827 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
6828
6829 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
6830 (SAFE_NALLOCA): New macro.
6831
6832 * region-cache.c (struct boundary.pos, find_cache_boundary)
6833 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
6834 (set_cache_region, invalidate_region_cache)
6835 (revalidate_region_cache, know_region_cache, region_cache_forward)
6836 (region_cache_backward, pp_cache):
6837 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
6838 so that ptrdiff_t * can be passed to xpalloc.
6839 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
6840 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
6841 (pp_cache): Don't assume cache_len fits in int.
6842 * region-cache.h: Adjust extern decls to match.
6843
6844 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
6845 EMACS_INT, since either will do, for xpalloc.
6846
6847 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
6848 (xnmalloc, xnrealloc, xpalloc): New functions.
6849
726e0ab1
PE
6850 * bidi.c (bidi_shelve_header_size): New constant.
6851 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
6852 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
6853
51f30bc5 6854 * bidi.c (bidi_cache_shrink):
726e0ab1
PE
6855 * buffer.c (overlays_at, overlays_in, record_overlay_string)
6856 (overlay_strings):
6857 Don't update size of array until after memory allocation succeeds,
6858 because xmalloc/xrealloc may not return.
0065d054
PE
6859 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
6860 now that we have proper integer overflow checking.
6861 (record_overlay_string, overlay_strings): Catch overflows when
6862 calculating size of overlay_str_buf.
726e0ab1 6863
0065d054
PE
6864 * callproc.c (Fcall_process): Check for size overflow when
6865 calculating size of args2.
6866 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
6867 Normally we prefer signed values, but sticking with ptrdiff_t would
6868 require adding more-complicated checks.
726e0ab1
PE
6869
6870 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
6871 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
6872 Redo buffer-overflow calculations to avoid integer overflow.
0065d054 6873 Add a FIXME comment where memory seems to be over-allocated.
726e0ab1
PE
6874
6875 * character.c (Fstring): Check for size-calculation overflow.
6876
6877 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
6878 unnecessary integer overflow. Check for size overflow.
6879 (encode_coding_object): Don't update size until xmalloc succeeds.
6880
6881 * composite.c (get_composition_id): Check for overflow in glyph
6882 length calculations.
6883
6884 Integer and memory overflow fixes for display code.
6885 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
6886 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
6887 (scrolling_window): Check for overflow in size calculations.
6888 (line_draw_cost, realloc_glyph_pool, add_row_entry):
6889 Don't assume glyph table len fits in int.
6890 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
6891 (row_table_size): Now ptrdiff_t, not int.
6892 (scrolling_window): Avoid overflow in size calculations.
6893 Don't update size until allocation succeeds.
6894 * fns.c (concat): Check for overflow in size calculations.
6895 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
6896 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
6897 (NEXT_ALMOST_PRIME_LIMIT): New constant.
6898
6899 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
6900 (get_doc_string): Check for size calculation overflow.
6901 Don't update size until allocation succeeds.
6902 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
6903 EMACS_INT, where ptrdiff_t will do.
6904 (Fsubstitute_command_keys): Check for string overflow.
6905
6906 * editfns.c (set_time_zone_rule): Don't assume environment length
6907 fits in int.
6908 (message_length): Now ptrdiff_t, not int.
6909 (Fmessage_box): Don't update size until allocation succeeds.
6910 Don't assume message length fits in int.
6911 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
6912
0065d054
PE
6913 * emacs.c (main): Do not reallocate argv, since there is a null at
6914 the end that can be overwritten, and this way there's no need to
6915 worry about size-calculation overflow.
6916 (sort_args): Check for size-calculation overflow.
726e0ab1
PE
6917
6918 * eval.c (init_eval_once, grow_specpdl): Don't update size until
6919 alloc succeeds.
6920 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
6921
6922 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
6923 (x_set_scroll_bar_width, x_figure_window_size):
6924 Check for integer overflow.
6925 (x_set_alpha): Do not assume XINT fits in int.
6926
6927 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
6928 This is for the members text_lines, text_cols, total_lines, total_cols,
6929 where the system imposes an 'int' limit.
6930
6931 * fringe.c (Fdefine_fringe_bitmap):
6932 Don't update size until alloc works.
6933
6934 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
6935 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
6936
6937 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
6938 Check for size-calculation overflow.
6939 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
6940 do, as we prefer signed integers.
6941 (id_to_widget.max_size, id_to_widget.used)
6942 (xg_store_widget_in_map, xg_remove_widget_from_map)
6943 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
6944 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
6945 Use and return ptrdiff_t, not int.
6946 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
6947 * gtkutil.h: Change prototypes to match the above.
6948
6949 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
6950 are duplicate now that they've been promoted to lisp.h.
6951 (x_allocate_bitmap_record, x_alloc_image_color)
6952 (make_image_cache, cache_image, xpm_load):
6953 Don't update size until alloc is done.
6954 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
6955 (x_detect_edges):
3256efce 6956 Check for size calculation overflow.
726e0ab1
PE
6957 (ct_colors_allocated_max): New constant.
6958 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
6959 overflow.
3256efce 6960
726e0ab1
PE
6961 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
6962 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
6963 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
6964 Use ptrdiff_t, not int, to count maps.
6965 (read_char_minibuf_menu_prompt): Check for overflow in size
a66cfb1c
SM
6966 calculations. Don't update size until allocation succeeds.
6967 Redo calculations to avoid overflow.
726e0ab1
PE
6968 * keyboard.h: Change prototypes to match the above.
6969
6970 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
6971 to count maps.
6972 (current_minor_maps): Check for size calculation overflow.
6973 * keymap.h: Change prototypes to match the above.
6974
6975 * lread.c (read1, init_obarray): Don't update size until alloc done.
6976
6977 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
6978 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
6979
726e0ab1
PE
6980 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
6981 Now ptrdiff_t, not int.
6982 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
6983 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
6984
6985 * process.c (Fnetwork_interface_list): Check for overflow
6986 in size calculation.
6987
6988 * region-cache.c (move_cache_gap): Check for size calculation overflow.
6989
6990 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
6991 overflow. Don't bother calling xmalloc when xrealloc will do.
6992
6993 * search.c (Freplace_match): Check for size calculation overflow.
6994 (Fset_match_data): Don't assume list lengths fit in 'int'.
6995
6996 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
6997 for command line length. Do not attempt to address one before the
6998 beginning of an array, as that's not portable.
6999
7000 * term.c (max_frame_lines): Remove; unused.
7001 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
7002 not int.
7003 (encode_terminal_code, calculate_costs): Check for size
7004 calculation overflow.
7005 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
7006 table lengths and related sizes. Don't update size until alloc
7007 done. Redo calculations to avoid overflow.
7008 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
7009
7010 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
7011 subtracting pointers.
7012 (gobble_line): Check for overflow more carefully. Don't update size
7013 until alloc done.
7014
7015 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
7016 Don't update size until alloc done.
7017 Redo size calculations to avoid overflow.
7018 Check for size calculation overflow.
0065d054 7019 (main) [DEBUG]: Fix typo in invoking tparam1.
726e0ab1
PE
7020
7021 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
7022 Use ptrdiff_t, not int, for sizes.
7023 (store_mode_line_noprop_char): Don't update size until alloc done.
7024
0065d054
PE
7025 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
7026 Use ptrdiff_t, not int, for sizes.
7027 (Finternal_make_lisp_face, cache_face):
7028 Check for size calculation overflow.
7029 (cache_face): Treat size calculation overflows as if they were
7030 memory exhaustion (the usual treatment), rather than aborting.
726e0ab1
PE
7031
7032 * xfns.c (x_encode_text, x_set_name_internal)
7033 (Fx_change_window_property): Use ptrdiff_t, not int, to count
7034 sizes, since they can exceed INT_MAX in size. Check for size
7035 calculation overflow.
7036
0065d054
PE
7037 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
7038 (xg_select): Check for size calculation overflow.
726e0ab1
PE
7039 Don't update size until alloc done.
7040
0065d054 7041 * xrdb.c (get_environ_db): Don't assume path length fits in int,
726e0ab1 7042 as sprintf is limited to int lengths.
1d526e2f 7043
252c5ee1
PE
7044 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
7045 (X_LONG_MIN): New macros.
864d7ce7
PE
7046 Use them to make the following changes clearer.
7047 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
7048 This change doesn't affect the value now, but it may help remind
7049 future maintainers not to raise the value too much later.
7050 (SELECTION_QUANTUM): Remove, replacing with ...
7051 (selection_quantum): ... new function, which avoids overflow.
7052 All uses changed.
7053 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
7054 assumption that selection length fits in 'int'.
7055 (x_reply_selection_request, x_handle_selection_request)
7056 (x_get_window_property, receive_incremental_selection)
7057 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
7058 (lisp_data_to_selection_data, clean_local_selection_data):
7059 Use ptrdiff_t, not int, to record length of selection.
7060 (x_reply_selection_request, x_get_window_property)
7061 (receive_incremental_selection, x_property_data_to_lisp):
7062 Redo calculations to avoid overflow.
7063 (x_reply_selection_request): When sending hint, ceiling it at
252c5ee1 7064 X_LONG_MAX rather than relying on wraparound overflow to send
864d7ce7
PE
7065 something.
7066 (x_get_window_property, receive_incremental_selection)
7067 (lisp_data_to_selection_data, x_property_data_to_lisp):
7068 Check for size-calculation overflow.
7069 (x_get_window_property, receive_incremental_selection)
7070 (lisp_data_to_selection_data, Fx_register_dnd_atom):
7071 Don't store size until memory allocation succeeds.
7072 (x_get_window_property): Plug memory leak on memory exhaustion.
7073 Don't double-block input; malloc is safe here. Don't assume 2**34
7074 - 4 fits in unsigned long. Add an xassert to check
7075 XGetWindowProperty overflow. Be more careful about overflow
7076 calculations, and distinguish size from memory overflow better.
7077 (receive_incremental_selection): When tracing, don't assume
7078 unsigned int is less than INT_MAX.
7079 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
7080 harmful) conversions of unsigned short to int.
7081 (lisp_data_to_selection_data): Don't assume that integers
7082 in the range -65535 through -1 fit in an X unsigned short.
7083 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
7084 result parameters unless successful. Rely on cons_to_unsigned
7085 to report problems with elements; the old code wasn't right anyway.
7086 (x_check_property_data): Check for int overflow; we cannot use
7087 a wider type due to X limits.
7088 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
7089
726e0ab1 7090 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
34db673b 7091
0065d054
PE
7092 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
7093 (x_term_init): Check for size calculation overflow.
726e0ab1
PE
7094 (x_color_cells): Don't store size until memory allocation succeeds.
7095 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
0065d054 7096 Don't assume alloca size is less than MAX_ALLOCA.
726e0ab1
PE
7097 (x_term_init): Don't assume length fits in int (sprintf is limited
7098 to int size).
bc18e09d 7099
ebfa62c0
PE
7100 Use ptrdiff_t for composition IDs.
7101 * character.c (lisp_string_width):
7102 * composite.c (composition_table_size, n_compositions)
7103 (get_composition_id, composition_gstring_from_id):
7104 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
7105 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
7106 * window.c (Frecenter):
7107 Use ptrdiff_t, not int, for composition IDs.
7108 * composite.c (get_composition_id): Check for integer overflow.
7109 * composite.h: Adjust prototypes to match the above changes.
7110
d3411f89
PE
7111 Use ptrdiff_t for hash table indexes.
7112 * category.c (hash_get_category_set):
7113 * ccl.c (ccl_driver):
7114 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
7115 * coding.c (coding_system_charset_list, detect_coding_system):
7116 * coding.h (struct coding_system.id):
7117 * composite.c (get_composition_id, gstring_lookup_cache):
7118 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
7119 * image.c (xpm_get_color_table_h):
7120 * lisp.h (hash_lookup, hash_put):
7121 * minibuf.c (Ftest_completion):
7122 Use ptrdiff_t for hash table indexes, not int (which is too
7123 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
7124 32-bit --with-wide-int hosts).
7125
e097a6fa
PE
7126 * charset.c (Fdefine_charset_internal): Check for integer overflow.
7127 Add a FIXME comment about memory leaks.
7128 (syms_of_charset): Don't assume xmalloc returns.
7129
5637687f
PE
7130 Don't assume that stated character widths fit in int.
7131 * character.c (Fchar_width, c_string_width, lisp_string_width):
7132 * character.h (CHAR_WIDTH):
7133 * indent.c (MULTIBYTE_BYTES_WIDTH):
7134 Use sanitize_char_width to avoid undefined and/or bad behavior
7135 with outlandish widths.
a66cfb1c 7136 * character.h (sanitize_tab_width): Rename from sanitize_width,
5637687f
PE
7137 now that we have two such functions. All uses changed.
7138 (sanitize_char_width): New inline function.
7139
a2271ba2
PE
7140 Don't assume that tab-width fits in int.
7141 * character.h (sanitize_width): New inline function.
7142 (SANE_TAB_WIDTH): New macro.
7143 (ASCII_CHAR_WIDTH): Use it.
7144 * indent.c (sane_tab_width): Remove. All uses replaced by
7145 SANE_TAB_WIDTH (current_buffer).
7146 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
7147
18c52557
PE
7148 * fileio.c: Integer overflow issues with file modes.
7149 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
7150
caeeedc1
PE
7151 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
7152 Remove unreachable code.
7153 (read_hex, load_charset_map_from_file): Check for integer overflow.
7154
6df6ae42 7155 * xterm.c: Don't go over XClientMessageEvent limit.
50849c52
PE
7156 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
7157 (x_send_scroll_bar_event): Likewise. Check that the size does not
7158 exceed limits imposed by XClientMessageEvent, as well as the usual
7159 ptrdiff_t and size_t limits.
7160
b13995db
PE
7161 * keyboard.c: Overflow, signedness and related fixes.
7162 (make_lispy_movement): Use same integer type in forward decl
7163 that is used in the definition.
7164 (read_key_sequence, keyremap_step):
7165 Change bufsize argument back to int, undoing my 2011-03-30 change.
7166 We prefer signed types, and int is wide enough here.
7167 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
7168 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
7169 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
7170 length, not size_t. Use ptrdiff_t for index, not int.
7171 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
7172 possibility of integer overflow.
7173
13464394
PE
7174 Overflow, signedness and related fixes for images.
7175
7176 * dispextern.h (struct it.stack[0].u.image.image_id)
7177 (struct_it.image_id, struct image.id, struct image_cache.size)
7178 (struct image_cache.used, struct image_cache.ref_count):
7179 * gtkutil.c (update_frame_tool_bar):
7180 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
7181 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
7182 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
7183 * nsmenu.m (update_frame_tool_bar):
7184 * xdisp.c (calc_pixel_width_or_height):
7185 * xfns.c (image_cache_refcount):
7186 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
7187 on typical 64-bit hosts.
7188
7189 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
7190 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
7191 Omit unnecessary casts to int.
7192 (parse_image_spec): Check that integers fall into 'int' range
7193 when the callers expect that.
7194 (image_ascent): Redo ascent calculation to avoid int overflow.
7195 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
7196 (lookup_image): Remove unnecessary tests.
7197 (xbm_image_p): Locals are now of int, not EMACS_INT,
7198 since parse_image_check makes sure they fit into int.
7199 (png_load, gif_load, svg_load_image):
7200 Prefer int to unsigned where either will do.
7201 (tiff_handler): New function, combining the cores of the
a66cfb1c
SM
7202 old tiff_error_handler and tiff_warning_handler.
7203 This function is rewritten to use vsnprintf and thereby avoid
13464394
PE
7204 stack buffer overflows. It uses only the features of vsnprintf
7205 that are common to both POSIX and native Microsoft.
7206 (tiff_error_handler, tiff_warning_handler): Use it.
7207 (tiff_load, gif_load, imagemagick_load_image):
7208 Don't assume :index value fits in 'int'.
7209 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
7210 (imagemagick_load_image): Check that crop parameters fit into
7211 the integer types that MagickCropImage accepts. Don't assume
7212 Vimagemagick_render_type has a nonnegative value. Don't assume
7213 size_t fits in 'long'.
7214 (gs_load): Use printmax_t to print the widest integers possible.
7215 Check for integer overflow when computing image height and width.
7216
c11821d4
EZ
72172011-08-26 Eli Zaretskii <eliz@gnu.org>
7218
7219 * xdisp.c (redisplay_window): Don't force window start if point
7220 will be invisible in the resulting window. (Bug#9324)
7221
0c95fcf7
EZ
72222011-08-25 Eli Zaretskii <eliz@gnu.org>
7223
7224 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
7225 the display spec is of the form `(space ...)'.
7226 (handle_display_spec): Return the value returned by
7227 handle_single_display_spec, not just 1 or zero.
7228 (handle_single_display_spec): If the display spec is of the form
7229 `(space ...)', and specifies display in the text area, return 2
7230 rather than 1.
fee65a97 7231 (try_cursor_movement): Check for the need to scroll more
a66cfb1c
SM
7232 accurately, and prefer exact match for point under bidi.
7233 Don't advance `row' beyond the last row of the window.
0c95fcf7
EZ
7234
7235 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
7236 into disp_prop; all users changed.
7237
7238 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
7239 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
7240 for the text covered by the display property.
7241
e4ed06f1
CY
72422011-08-25 Chong Yidong <cyd@stupidchicken.com>
7243
7244 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
7245 Change return value to nil.
7246 (Frecord_buffer): Delete unused function.
7247
f67cdd7f
EZ
72482011-08-24 Eli Zaretskii <eliz@gnu.org>
7249
5980d4c6
EZ
7250 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
7251 buffers, return left-to-right.
8610fe8b
EZ
7252 (set_cursor_from_row): Consider candidate row a win if its glyph
7253 represents a newline and point is on that newline. Fixes cursor
7254 positioning on the newline at EOL of R2L text within L2R
7255 paragraph, and vice versa.
7256 (try_cursor_movement): Check continued rows, in addition to
7257 continuation rows. Fixes unwarranted scroll when point enters a
7258 continued line of R2L text within an L2R paragraph, or vice versa.
7259 (cursor_row_p): Consider the case of point being equal to
7260 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
7261 from the end of a short line to the beginning of a continued line
7262 of R2L text within L2R paragraph.
7263 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
7264 composed characters.
5980d4c6 7265
f67cdd7f
EZ
7266 * bidi.c (bidi_check_type): Use xassert.
7267 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
7268 members.
7269
bca633fb
EZ
72702011-08-23 Eli Zaretskii <eliz@gnu.org>
7271
7272 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
7273 a character.
7274
4a5885a7
CY
72752011-08-23 Chong Yidong <cyd@stupidchicken.com>
7276
7277 * nsfont.m (ns_otf_to_script): Fix typo.
7278
0902a04e
KH
72792011-08-22 Kenichi Handa <handa@m17n.org>
7280
7281 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
7282 extra slot even if the purpose is char-code-property-table.
7283
1a2e6670
EZ
72842011-08-23 Eli Zaretskii <eliz@gnu.org>
7285
8ddde651
EZ
7286 * xdisp.c (redisplay_window): When computing centering_position,
7287 account for the height of the header line. (Bug#8874)
7288
425cc014
EZ
7289 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
7290 instead of CHAR_TO_BYTE. Fixes a crash when a completion
7291 candidate is selected by the mouse, and that candidate has a
7292 composed character under the mouse.
7293
1a2e6670
EZ
7294 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
7295 coordinates reported by pos-visible-in-window-p for a composed
7296 character in column zero.
7297
8b76d6f8
SM
72982011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
7299
7300 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
7301
dac347dd
EZ
73022011-08-22 Eli Zaretskii <eliz@gnu.org>
7303
7304 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
7305 consider it a hit if to_charpos is anywhere in the range of the
7306 composed buffer positions.
7307
e013fb34
CY
73082011-08-22 Chong Yidong <cyd@stupidchicken.com>
7309
7310 * image.c (gif_load): Don't assume that each subimage has the same
7311 dimensions as the base image. Handle disposal method that is
7312 "undefined" by the gif spec (Bug#9335).
7313
bd1ba3e8
CY
73142011-08-20 Chong Yidong <cyd@stupidchicken.com>
7315
7316 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
024a2d76 7317 (Fcondition_case): Document `debug' symbol in error handler.
bd1ba3e8 7318
54a1215b
EZ
73192011-08-19 Eli Zaretskii <eliz@gnu.org>
7320
823564e5
EZ
7321 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
7322 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
7323 from an Org mode buffer to a Speedbar frame.
7324
54a1215b
EZ
7325 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
7326 a composition, take its buffer position from IT->cmp_it.charpos.
7327 Fixes cursor positioning at the beginning of a line that begins
7328 with a composed character.
7329
9778ebcc
EZ
73302011-08-18 Eli Zaretskii <eliz@gnu.org>
7331
0be6ee06
EZ
7332 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
7333 character bidirectional type, use STRONG_L instead. Fixes crashes
7334 in a buffer produced by `describe-categories'.
7335
9778ebcc
EZ
7336 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
7337 members before the level stack, so they would be saved and
7338 restored when copying iterator state. Fixes incorrect reordering
7339 around TABs covered by display properties.
7340
156bffbe
AS
73412011-08-18 Andreas Schwab <schwab@linux-m68k.org>
7342
6b02f655 7343 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
156bffbe 7344
72ad093b
CY
73452011-08-17 Chong Yidong <cyd@stupidchicken.com>
7346
7347 * eval.c (internal_condition_case, internal_condition_case_1)
8b76d6f8
SM
7348 (internal_condition_case_2, internal_condition_case_n):
7349 Remove unnecessary aborts (Bug#9081).
72ad093b 7350
35774242
EZ
73512011-08-17 Eli Zaretskii <eliz@gnu.org>
7352
7353 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
7354 has no `load' handler, try opening the file locally. (Bug#9311)
7355
db76dd85
KB
73562011-08-16 Ken Brown <kbrown@cornell.edu>
7357
7358 * gmalloc.c: Expand comment.
7359
b215eee5
EZ
73602011-08-16 Eli Zaretskii <eliz@gnu.org>
7361
7362 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
7363 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
7364
a4579d33
KB
73652011-08-16 Ken Brown <kbrown@cornell.edu>
7366
7367 Fix memory allocation problems in Cygwin build (Bug#9273).
7368
7369 * unexcw.c ( __malloc_initialized): Declare external variable.
7370 (fixup_executable): Force the dumped emacs to reinitialize malloc.
7371
8b76d6f8
SM
7372 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
7373 New variables.
a4579d33
KB
7374 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
7375 dumped emacs.
7376 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
7377 in the static heap.
7378 [CYGWIN] (special_realloc): New function.
7379 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
7380 requests to realloc storage in the static heap.
7381
3ebec551
PE
73822011-08-15 Paul Eggert <eggert@cs.ucla.edu>
7383
7384 * bidi.c (bidi_initialize): Remove unused local.
7385
9fd8be00
EZ
73862011-08-15 Eli Zaretskii <eliz@gnu.org>
7387
6b02f655
SM
7388 * bidimirror.h:
7389 * biditype.h: Remove file.
7390 * makefile.w32-in ($(BLD)/bidi.$(O)):
7391 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
474a8465
EZ
7392
7393 * dispextern.h: Fix a typo in the comment to bidi_type_t.
7394
7395 * chartab.c: Improve commentary for the uniprop_table API.
7396
32413314
EZ
7397 * bidi.c (bidi_paragraph_init): Support zero value of
7398 bidi_ignore_explicit_marks_for_paragraph_level.
474a8465
EZ
7399 (bidi_initialize): Use uniprop_table instead of including
7400 biditype.h and bidimirror.h.
32413314 7401
9fd8be00
EZ
7402 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
7403 coordinates of the iterator when restoring from ppos_it.
7404 (Bug#9296)
7405
5cf2b69b
KH
74062011-08-14 Kenichi Handa <handa@m17n.org>
7407
7408 * process.c (create_process): Call setup_process_coding_systems
72ad093b 7409 after the pid of the process is set to -1 (Bug#8162).
5cf2b69b 7410
daf17d00
EZ
74112011-08-14 Eli Zaretskii <eliz@gnu.org>
7412
7413 * xdisp.c (move_it_in_display_line_to): Don't invoke
7414 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
7415 ppos_it. Fixes vertical cursor motion when line beginning is
7416 covered by an image. (Bug#9296)
7417
08e3161a
JD
74182011-08-14 Jan Djärv <jan.h.d@swipnet.se>
7419
7420 * nsterm.h (ns_run_ascript): Declare.
7421 (NSAPP_DATA2_RUNASSCRIPT): Define.
7422
7423 * nsfns.m (as_script, as_result, as_status): New static variables.
7424 (ns_run_ascript): New function.
5e617bc2 7425 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
08e3161a
JD
7426 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
7427 the event loop. Get status from as_status (Bug#7276).
7428
7429 * nsterm.m (sendEvent): If event is NSApplicationDefined and
7430 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
7431 the event loop (Bug#7276).
7432
a3720aa2
AS
74332011-08-14 Andreas Schwab <schwab@linux-m68k.org>
7434
7435 * gnutls.c (QCgnutls_bootprop_priority)
7436 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
7437 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
7438 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
7439 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
7440 (QCgnutls_bootprop_verify_hostname_error)
7441 (QCgnutls_bootprop_callbacks_verify): Rename from
7442 Qgnutls_bootprop_..., all uses changed.
7443
7444 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
7445 uses changed.
7446
0a0d27fb
PE
74472011-08-14 Paul Eggert <eggert@cs.ucla.edu>
7448
19d5c50c
PE
7449 * xfaces.c (Qframe_set_background_mode): Now static.
7450 * dispextern.h (Qframe_set_background_mode): Remove decl.
7451
0a0d27fb
PE
7452 * process.c (Fnetwork_interface_info): Declare local only if needed.
7453
377538cb
JD
74542011-08-13 Jan Djärv <jan.h.d@swipnet.se>
7455
7456 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
7457 (Fnetwork_interface_list): Allocate in increments of bytes instead
7458 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
7459 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
7460 sockaddr.
7461 (struct ifflag_def): notrailers is smart on OSX.
7462 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
7463 Get hardware address with getifaddrs if available.
7464
08fff70c
EZ
74652011-08-12 Eli Zaretskii <eliz@gnu.org>
7466
7467 * xdisp.c (iterate_out_of_display_property): xassert that
7468 IT->position is set to within IT->object's boundaries. Break from
7469 the loop as soon as EOB is reached; avoids infloops in redisplay
8b76d6f8
SM
7470 when IT->position is set up wrongly due to some bug.
7471 Set IT->current to match the bidi iterator unconditionally.
08fff70c
EZ
7472 (push_display_prop): Allow GET_FROM_STRING as IT->method on
7473 entry. Force push_it to save on the stack the current
7474 buffer/string position, to be restored by pop_it. Fix flags in
7475 the iterator structure wrt the object coming from a display
7476 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
7477 properties. (Bug#9284)
7478
7be1c708 74792011-08-09 Andreas Schwab <schwab@linux-m68k.org>
aac0c6e3 7480
7be1c708
CY
7481 * fontset.c (fontset_get_font_group): Add proper type checks.
7482 (Bug#9172)
aac0c6e3 7483
7be1c708 74842011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
aac0c6e3 7485
7be1c708
CY
7486 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
7487 and LC_VERSION_MIN_MACOSX.
7488 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
7489 (dump_it) [LC_FUNCTION_STARTS]: Use it.
aac0c6e3 7490
97bb72a6
EZ
74912011-08-08 Eli Zaretskii <eliz@gnu.org>
7492
7493 * xdisp.c (forward_to_next_line_start): Allow to use the
8b76d6f8
SM
7494 no-display-properties-and-no-overlays under bidi display.
7495 Set disp_pos in the bidi iterator to avoid searches for display
757664a4 7496 properties and overlays.
97bb72a6 7497
d5617611
CY
74982011-08-08 Chong Yidong <cyd@stupidchicken.com>
7499
37e11a63
CY
7500 * editfns.c (Fset_time_zone_rule): Document relationship with the
7501 setenv function.
7502
d5617611
CY
7503 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
7504 the font entity extracted from the cache (Bug#8109).
7505
58872834
CY
75062011-08-07 Chong Yidong <cyd@stupidchicken.com>
7507
7508 * composite.c (autocmp_chars): Don't reset point. That is done by
7509 restore_point_unwind (Bug#5984).
7510
75bfc667
JL
75112011-08-07 Juri Linkov <juri@jurta.org>
7512
7513 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
7514 to show the arg `TIME' instead of `TIMEVAL'.
7515
d1410150
EZ
75162011-08-06 Eli Zaretskii <eliz@gnu.org>
7517
7518 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
7519 display property strides EOL and includes a newline, as in
7520 longlines-mode. (Bug#9254)
75b771e4
EZ
7521 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
7522 word-wrap under bidirectional display. (Bug#9224)
d1410150
EZ
7523
7524 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
7525 is non-zero, even if the data buffer is NULL. Fixes a crash in
7526 vertical-motion with longlines-mode. (Bug#9254)
7527
35928349
EZ
75282011-08-05 Eli Zaretskii <eliz@gnu.org>
7529
ec7cc85b
EZ
7530 * bidi.c <bidi_cache_total_alloc>: Now static.
7531 (bidi_initialize): Initialize bidi_cache_total_alloc.
7532
8b76d6f8 7533 * xdisp.c (display_line): Release buffer allocated for shelved bidi
35928349
EZ
7534 cache. (Bug#9221)
7535
7536 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
7537 amount allocated this far in `bidi_cache_total_alloc'.
7538 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
7539 non-zero, only free the data buffer without restoring the cache
7540 contents. All callers changed.
7541
7542 * dispextern.h (bidi_unshelve_cache): Update prototype.
7543
7544 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
7545 (move_it_in_display_line, move_it_to)
7546 (move_it_vertically_backward, move_it_by_lines): Replace the call
7547 to xfree to an equivalent call to bidi_unshelve_cache.
7548 (move_it_in_display_line_to): Fix logic of returning
412b6358 7549 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
35928349 7550
e2e2423b
EZ
75512011-08-05 Eli Zaretskii <eliz@gnu.org>
7552
7553 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
7554 came from a string character with a `cursor' property. (Bug#9229)
7555
ae9e757a
JD
75562011-08-04 Jan Djärv <jan.h.d@swipnet.se>
7557
7558 * Makefile.in (LIB_PTHREAD): New variable.
7559 (LIBES): Add LIB_PTHREAD (Bug#9216).
7560
7561 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
7562 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
7563
213bd7f2
AS
75642011-08-04 Andreas Schwab <schwab@linux-m68k.org>
7565
6b02f655 7566 * regex.c (re_iswctype): Remove some redundant boolean conversions.
213bd7f2 7567
99aaf75f
JD
75682011-08-04 Jan Djärv <jan.h.d@swipnet.se>
7569
7570 * xterm.c (x_find_topmost_parent): New function.
7571 (x_set_frame_alpha): Find topmost parent window with
7572 x_find_topmost_parent and set the property there also (bug#9181).
7573 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
7574
c74e9d86
PE
75752011-08-04 Paul Eggert <eggert@cs.ucla.edu>
7576
7577 * callproc.c (Fcall_process): Avoid vfork clobbering
7578 the local vars buffer, coding_systems, current_dir.
7579
640c8776
SM
75802011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
7581
7582 * keymap.c (Fmake_composed_keymap): Move to subr.el.
7583
f26d0e4c
PE
75842011-08-03 Paul Eggert <eggert@cs.ucla.edu>
7585
8a10d76c
PE
7586 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
7587 so that it is not optimized away.
7588
f26d0e4c
PE
7589 * xdisp.c (compute_display_string_pos): Remove unused local.
7590
55439c61
EZ
75912011-08-02 Eli Zaretskii <eliz@gnu.org>
7592
7593 Fix slow cursor motion and scrolling in large buffers with
7594 selective display, like Org Mode buffers. (Bug#9218)
7595
7596 * dispextern.h (struct bidi_it): New member disp_prop_p.
7597
7598 * xdisp.c: Remove one-slot cache of display string positions.
7599 (compute_display_string_pos): Accept an additional argument
5e617bc2 7600 DISP_PROP_P; callers changed. Scan at most 5K characters forward
55439c61
EZ
7601 for a display string or property. If found, set DISP_PROP_P
7602 non-zero.
7603
7604 * bidi.c (bidi_fetch_char): Accept an additional argument
640c8776
SM
7605 DISP_PROP_P, and pass it to compute_display_string_pos.
7606 Only handle text covered by a display string if DISP_PROP_P is returned
55439c61
EZ
7607 non-zero. All callers of bidi_fetch_char changed.
7608
fb33fa43
SM
76092011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
7610
7611 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
7612
b099e063
DM
76132010-12-03 Don March <don@ohspite.net>
7614
7615 * keymap.c (Fdefine_key): Fix non-prefix key error message when
7616 last character M-[char] is translated to ESC [char] (bug#7541).
7617
5cc7f7af
KH
76182011-08-02 Kenichi Handa <handa@m17n.org>
7619
d0fffa3f 7620 * lisp.h (uniprop_table): Extern it.
5cc7f7af
KH
7621
7622 * chartab.c (uniprop_table): Make it non-static.
7623
525d5e6e
EZ
76242011-08-01 Eli Zaretskii <eliz@gnu.org>
7625
7626 * xdisp.c (forward_to_next_line_start): Accept additional argument
7627 BIDI_IT_PREV, and store into it the state of the bidi iterator had
7628 on the newline.
7629 (reseat_at_next_visible_line_start): Use the bidi iterator state
7630 returned by forward_to_next_line_start to restore the state of
7631 it->bidi_it after backing up to previous newline. (Bug#9212)
7632
31011111
AS
76332011-07-30 Andreas Schwab <schwab@linux-m68k.org>
7634
7635 * regex.c (re_comp): Protoize.
7636 (re_exec): Fix return type.
7637 (regexec): Fix type of `ret'. (Bug#9203)
7638
476371c4
PE
76392011-07-28 Paul Eggert <eggert@cs.ucla.edu>
7640
e5d76069
PE
7641 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
7642 This is needed if max-image-size is a floating-point number.
7643
9a79b20c
AS
76442011-07-28 Andreas Schwab <schwab@linux-m68k.org>
7645
7646 * print.c (print_object): Print empty symbol as ##.
7647
7648 * lread.c (read1): Read ## as empty symbol.
7649
d8c2fa78
AA
76502011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
7651
7652 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
7653 setting frame foreground color (Bug#9175).
7654 (x_set_background_color): Likewise.
7655
ffe57a7a
AA
7656 * nsmenu.m (-setText): Size tooltip dimensions precisely to
7657 contents (Bug#9176).
7658 (EmacsTooltip -init): Remove bezels and add shadows to
7659 tooltip windows.
7660
bf3492a5
AA
7661 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
7662 or scroll bar (Bug#8470).
7663
d55e9c53
AA
7664 * nsfont.m (nsfont_open): Remove assignment to voffset and
7665 unnecessary vars hshink, expand, hd, full_height, min_height.
7666 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
7667
7668 * nsterm.h (nsfont_info): Remove voffset field.
7669
d8c2fa78 76702011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
4843aac3
AA
7671
7672 Implement strike-through and overline on NextStep (Bug#8863).
7673
7674 * nsfont.m (nsfont_open): Use underline position provided by font,
7675 instead of hard-coded value of 2.
7676 (nsfont_draw): Call ns_draw_text_decoration instead.
7677
7678 * nsterm.h: Add declaration for ns_draw_text_decoration.
7679
7680 * nsterm.m (ns_draw_text_decoration): New function for drawing
7681 underline, overline, and strike-through.
7682 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
7683 ns_draw_text_decoration. Change treatment of cursor drawing to
8d5ed899 7684 accommodate underlining, etc.
4843aac3 7685
4cc60b9b
EZ
76862011-07-28 Eli Zaretskii <eliz@gnu.org>
7687
bc7ece87
EZ
7688 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
7689 default.
4cc60b9b 7690
476371c4
PE
76912011-07-28 Paul Eggert <eggert@cs.ucla.edu>
7692
66606eea
PE
7693 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
7694 Without this fix, if a signal arrives just after memory fills up,
7695 'malloc' might be invoked reentrantly.
7696
476371c4
PE
7697 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
7698 In other words, assume that every image size is allowed, on non-X
7699 hosts. This assumption is probably wrong, but it lets Emacs compile.
7700
f3fcc40d
AS
77012011-07-28 Andreas Schwab <schwab@linux-m68k.org>
7702
7703 * regex.c (re_iswctype): Convert return values to boolean.
7704
350c992f
EZ
77052011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
7706
7707 * xdisp.c (compute_display_string_pos): Don't use cached display
7708 string position if the buffer had its restriction changed.
7709 (Bug#9184)
7710
5266b4bb
PE
77112011-07-28 Paul Eggert <eggert@cs.ucla.edu>
7712
7713 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
7714
2573a837 77152011-07-28 Paul Eggert <eggert@cs.ucla.edu>
ca4aa935 7716
41f55ccd 7717 Integer signedness and overflow and related fixes. (Bug#9079)
cf950e6b 7718
39e378da
PE
7719 * bidi.c: Integer size and overflow fixes.
7720 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
7721 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
7722 (bidi_cache_find_level_change, bidi_cache_ensure_space)
7723 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
7724 (bidi_find_other_level_edge):
7725 Use ptrdiff_t instead of EMACS_INT where either will do.
7726 This works better on 32-bit hosts configured --with-wide-int.
7727 (bidi_cache_ensure_space): Check for size-calculation overflow.
7728 Use % rather than repeated addition, for better worst-case speed.
7729 Don't set bidi_cache_size until after xrealloc returns, because it
7730 might not return.
7731 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
f0eb61e9
PE
7732 (bidi_cache_ensure_space): Also check that the bidi cache size
7733 does not exceed that of the largest Lisp string or buffer. See Eli
7734 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
39e378da 7735
5e927815
PE
7736 * alloc.c (__malloc_size_t): Remove.
7737 All uses replaced by size_t. See Andreas Schwab's note
7738 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
7739
ca4aa935
PE
7740 * image.c: Improve checking for integer overflow.
7741 (check_image_size): Assume that f is nonnull, since
7742 it is always nonnull in practice. This is one less thing to
7743 worry about when checking for integer overflow later.
7744 (x_check_image_size): New function, which checks for integer
7745 overflow issues inside X.
7746 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
7747 This removes the need for a memory_full check.
7748 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
7749 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
7750 (xbm_read_bitmap_data): Change locals back to 'int', since
7751 their values must fit in 'int'.
7752 (xpm_load_image, png_load, tiff_load):
7753 Invoke x_create_x_image_and_pixmap earlier,
7754 to avoid much needless work if the image is too large.
7755 (tiff_load): Treat overly large images as if
7756 x_create_x_image_and_pixmap failed, not as malloc failures.
7757 (gs_load): Use x_check_image_size.
7758
5f8f9cc2
PE
7759 * gtkutil.c: Omit integer casts.
7760 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
7761 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
7762
5adf60bc
PE
7763 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
7764
c8907a93
PE
7765 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
7766 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
7767 would wrongly return t on a 64-bit host.
7768
e3c25c68
PE
7769 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
7770 The plain *_OVERFLOW macros run afoul of GCC bug 49705
7771 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
7772 and therefore cause GCC to emit a bogus diagnostic in some cases.
7773
3f791afe
PE
7774 * image.c: Integer signedness and overflow and related fixes.
7775 This is not an exhaustive set of fixes, but it's time to
7776 record what I've got.
7777 (lookup_pixel_color, check_image_size): Remove redundant decls.
7778 (check_image_size): Don't assume that arbitrary EMACS_INT values
7779 fit in 'int', or that arbitrary 'double' values fit in 'int'.
7780 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
7781 (tiff_load, imagemagick_load_image):
7782 Check for overflow in size calculations.
7783 (x_create_x_image_and_pixmap): Remove unnecessary test for
7784 xmalloc returning NULL; that can't happen.
7785 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
7786 (xpm_color_bucket): Use better integer hashing function.
7787 (xpm_cache_color): Don't possibly over-allocate memory.
7788 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
7789 (gif_memory_source):
7790 Use ptrdiff_t, not int or size_t, to record sizes.
7791 (png_load): Don't assume values greater than 2**31 fit in 'int'.
7792 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
7793 either works, as we prefer signed integers.
7794 (tiff_read_from_memory, tiff_write_from_memory):
7795 Return tsize_t, not size_t, since that's what the TIFF API wants.
7796 (tiff_read_from_memory): Don't fail simply because the read would
7797 go past EOF; instead, return a short read.
7798 (tiff_load): Omit no-longer-needed casts.
7799 (Fimagemagick_types): Don't assume size fits into 'int'.
7800
3cc5a532
PE
7801 Improve hashing quality when configured --with-wide-int.
7802 * fns.c (hash_string): New function, taken from sxhash_string.
7803 Do not discard information about ASCII character case; this
7804 discarding is no longer needed.
7805 (sxhash-string): Use it. Change sig to match it. Caller changed.
7806 * lisp.h: Declare it.
7807 * lread.c (hash_string): Remove, since we now use fns.c's version.
7808 The fns.c version returns a wider integer if --with-wide-int is
7809 specified, so this should help the quality of the hashing a bit.
7810
b312a492
PE
7811 * emacs.c: Integer overflow minor fix.
7812 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
7813 Define only if GNU_LINUX.
7814 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
7815
dfd153ae
PE
7816 * dispnew.c: Integer signedness and overflow fixes.
7817 Remove unnecessary forward decls, that were a maintenance hassle.
7818 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
7819 All uses changed.
7820 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
7821 (scrolling_window): Use ptrdiff_t, not int, for byte count.
7822 (prepare_desired_row, line_draw_cost):
7823 Use int, not unsigned, where either works.
7824 (save_current_matrix, restore_current_matrix):
7825 Use ptrdiff_t, not size_t, where either works.
7826 (init_display): Check for overflow more accurately, and without
7827 relying on undefined behavior.
7828
a81d11a3
PE
7829 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
7830 Remove, replacing with the new symbols in lisp.h. All uses changed.
7831 * fileio.c (make_temp_name):
7832 * filelock.c (lock_file_1, lock_file):
7833 * xdisp.c (message_dolog):
7834 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
7835 Use pMd etc. instead.
7836 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
7837 replacing the pWIDE etc. symbols removed from editfns.c.
7838
3300e6fd
PE
7839 * keyboard.h (num_input_events): Now uintmax_t.
7840 This is (very slightly) less likely to mess up due to wraparound.
7841 All uses changed.
7842
fd05c7e9
PE
7843 * buffer.c: Integer signedness fixes.
7844 (alloc_buffer_text, enlarge_buffer_text):
7845 Use ptrdiff_t rather than size_t when either will do, as we prefer
7846 signed integers.
7847
903fe15d
PE
7848 * alloc.c: Integer signedness and overflow fixes.
7849 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
7850 (__malloc_size_t): Default to size_t, not to int.
7851 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
7852 (Fgarbage_collect, mark_object_loop_halt, mark_object):
7853 Prefer ptrdiff_t to size_t when either would do, as we prefer
7854 signed integers.
7855 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
7856 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
7857 Now const. Initialize with values that are in range even if char
7858 is signed.
7859 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
7860 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
7861 These functions do the right thing with sizes > 2**32.
7862 (check_depth): Now ptrdiff_t, not int.
7863 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
7864 Adjust to new way of storing sizes. Check for size overflow bugs
7865 in rest of code.
7866 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
7867 slightly wrong anyway, as it missed one instance of
7868 XMALLOC_OVERRUN_CHECK_OVERHEAD.
7869 (refill_memory_reserve): Omit needless cast to size_t.
7870 (mark_object_loop_halt): Mark as externally visible.
7871
ac82cc6a
PE
7872 * xselect.c: Integer signedness and overflow fixes.
7873 (Fx_register_dnd_atom, x_handle_dnd_message):
7874 Use ptrdiff_t, not size_t, since we prefer signed.
7875 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
7876 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
7877 x_dnd_atoms_size and x_dnd_atoms_length.
7878
c2d1e36d
PE
7879 * doprnt.c: Prefer signed to unsigned when either works.
7880 * eval.c (verror):
7881 * doprnt.c (doprnt):
7882 * lisp.h (doprnt):
7883 * xdisp.c (vmessage):
7884 Use ptrdiff_t, not size_t, when using or implementing doprnt,
7885 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
7886 prefer signed arithmetic to avoid comparison confusion.
7887 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
7888 but is a bit tricky.
7889
0e926e56
PE
7890 Assume freestanding C89 headers, string.h, stdlib.h.
7891 * data.c, doprnt.c, floatfns.c, print.c:
7892 Include float.h unconditionally.
7893 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
7894 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
7895 * regex.c: Likewise for stddef.h, string.h.
7896 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
7897 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
7898 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
7899 (STDC_HEADERS): Remove obsolete defines.
7900 * sysdep.c: Include limits.h unconditionally.
7901
9cfdb3ec
PE
7902 Assume support for memcmp, memcpy, memmove, memset.
7903 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
7904 * regex.c (memcmp, memcpy):
7905 Remove; we assume C89 now.
7906
7907 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
7908 (__malloc_safe_bcopy): Remove; no longer needed.
7909
cf950e6b 7910 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
6089c567
PE
7911 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
7912 well either way, and we prefer signed to unsigned.
7913
dbf38e02
LMI
79142011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
7915
7916 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
7917 closes the connection while we're reading (bug#9182).
7918
d6f0886c 79192011-07-25 Jan Djärv <jan.h.d@swipnet.se>
24e0f6b1 7920
d6f0886c
JD
7921 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
7922 are specified (Bug#9168).
24e0f6b1 7923
2eb1f9e6
PE
79242011-07-25 Paul Eggert <eggert@cs.ucla.edu>
7925
7926 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
7927 Found by GCC static checking and --with-wide-int on a 32-bit host.
7928
22381272 79292011-07-25 Eli Zaretskii <eliz@gnu.org>
7daee910
EZ
7930
7931 * xdisp.c (compute_display_string_pos): Fix logic of caching
7932 previous display string position. Initialize cached_prev_pos to
7933 -1. Fixes slow-down at the beginning of a buffer.
7934
f25e39b4
EZ
79352011-07-24 Eli Zaretskii <eliz@gnu.org>
7936
7937 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
7938 for attrs[LFACE_FONTSET_INDEX].
7939
04c4b52e
PE
79402011-07-23 Paul Eggert <eggert@cs.ucla.edu>
7941
7942 * xml.c (parse_region): Remove unused local
7943 that was recently introduced.
7944
c1734fbd
EZ
79452011-07-23 Eli Zaretskii <eliz@gnu.org>
7946
be18c5a5
EZ
7947 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
7948 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
7949
c1734fbd
EZ
7950 * xdisp.c (move_it_in_display_line_to): Record the best matching
7951 position for TO_CHARPOS while scanning the line, and restore it on
640c8776
SM
7952 exit if none of the characters scanned was an exact match.
7953 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
a9269c18
EZ
7954 when exact match is impossible due to invisible text, and the
7955 lines are truncated.
7956
a258d627
JD
79572011-07-23 Jan Djärv <jan.h.d@swipnet.se>
7958
7959 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
7960 for OSX >= 10.7.
7961
b6d5a689
EZ
79622011-07-22 Eli Zaretskii <eliz@gnu.org>
7963
0f74f785
EZ
7964 Fix a significant slow-down of cursor motion with C-n, C-p,
7965 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
7966 auto-repeat under bidi redisplay in fontified buffers.
b6d5a689 7967 * xdisp.c (compute_stop_pos_backwards): New function.
b6d5a689
EZ
7968 (next_element_from_buffer): Call compute_stop_pos_backwards to
7969 find a suitable prev_stop when we find ourselves before
0f74f785
EZ
7970 base_level_stop.
7971 (reseat): Don't look for prev_stop, as that could mean a very long
7972 run.
7973 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
7974 <cached_disp_overlay_modiff>: Cache for last found display string
7975 position.
551918c1 7976 (compute_display_string_pos): Return the cached position if asked
0f74f785
EZ
7977 about the same buffer in the same area of character positions, and
7978 the buffer wasn't changed since the time the display string
7979 position was cached.
551918c1 7980
b2d0c91a
EZ
79812011-07-22 Eli Zaretskii <eliz@gnu.org>
7982
7983 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
7984 is an integer, which is important for empty lines. (Bug#9149)
7985
043604ee
CY
79862011-07-22 Chong Yidong <cyd@stupidchicken.com>
7987
7988 * frame.c (Fmodify_frame_parameters): In tty case, update the
7989 default face if necessary (Bug#4238).
7990
da4adb04
CY
79912011-07-21 Chong Yidong <cyd@stupidchicken.com>
7992
7993 * editfns.c (Fstring_to_char): No need to explain what a character
7994 is in the docstring (Bug#6576).
7995
9abd0532
LMI
79962011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
7997
7998 * xml.c (parse_region): Make sure we always return a tree.
7999
36881d16
HK
80002011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
8001
8002 * xml.c (parse_region): If a document contains only comments,
8003 return that, too.
8004
1e98674d
LMI
80052011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
8006
8007 * xml.c (make_dom): Return comments, too.
8008
590bd467
PE
80092011-07-19 Paul Eggert <eggert@cs.ucla.edu>
8010
8011 Port to OpenBSD.
8012 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
8013 and the surrounding thread.
8014 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
8015 rather than fgets, and retry after EINTR. Otherwise, 'emacs
8016 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
8017 timer goes off.
8018 * s/openbsd.h (BROKEN_SIGIO): Define.
8019 * unexelf.c (unexec) [__OpenBSD__]:
8020 Don't update the .mdebug section of the Alpha COFF symbol table.
8021
f41628b2
LMI
80222011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
8023
8024 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
8025 (bug#8460).
8026
b59b67c5
PE
80272011-07-18 Paul Eggert <eggert@cs.ucla.edu>
8028
15e3a074
PE
8029 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
8030 This fixes some race conditions on the permissions of any newly
8031 created file.
8032
41bed37d
PE
8033 * alloc.c (valid_pointer_p): Use pipe, not open.
8034 This fixes some permissions issues when debugging.
8035
b59b67c5
PE
8036 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
8037 If fchown fails to set both uid and gid, try to set just gid,
8038 as that is sometimes allowed. Adjust the file's mode to eliminate
8039 setuid or setgid bits that are inappropriate if fchown fails.
8040
925a6be7
SM
80412011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
8042
8043 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
8044 to compare Lisp_Objects.
8045 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
8046 global_gnutls_log_level, don't mistake it for a Lisp_Object.
8047 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
8048
52968808
AS
80492011-07-17 Andreas Schwab <schwab@linux-m68k.org>
8050
0a6a104b
AS
8051 * lread.c (read_integer): Unread even EOF character.
8052 (read1): Likewise. Properly record start position of symbol.
8053
52968808
AS
8054 * lread.c (read1): Read `#:' as empty uninterned symbol if no
8055 symbol character follows.
8056
9e381cdd
PE
80572011-07-17 Paul Eggert <eggert@cs.ucla.edu>
8058
8059 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
8060 This works around a problem with the previous change to Fcopy_file.
8061 Recent glibc declares fchown with __attribute__((warn_unused_result)),
8062 and without this change, GCC might complain about discarding
8063 fchown's return value.
8064
b5641435
JB
80652011-07-16 Juanma Barranquero <lekktu@gmail.com>
8066
8067 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
8068
a8031457
PE
80692011-07-16 Paul Eggert <eggert@cs.ucla.edu>
8070
8071 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
8072
dd889327
LMI
80732011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
8074
750c33f7
LMI
8075 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
8076 it's used from the C level.
8077
dd889327
LMI
8078 * process.c: Use the same condition for POLL_FOR_INPUT in both
8079 keyboard.c and process.c (bug#1858).
8080
87e86684
LM
80812011-07-09 Lawrence Mitchell <wence@gmx.li>
8082
8083 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
8084 (Fgnutls_boot): Use it.
8085
64348f40
AS
80862011-07-15 Andreas Schwab <schwab@linux-m68k.org>
8087
8088 * doc.c (Fsubstitute_command_keys): Revert last change.
8089
1d698799
LMI
80902011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
8091
f863868c
LMI
8092 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
8093 quotes the next character, and doesn't affect other longer
8094 sequences (bug#8935).
8095
1d698799
LMI
8096 * lread.c (syms_of_lread): Clarify that is isn't only
8097 `eval-buffer' and `eval-defun' that's affected by
8098 `lexical-binding' (bug#8460).
8099
aa4b6df6
EZ
81002011-07-15 Eli Zaretskii <eliz@gnu.org>
8101
8102 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
6b02f655 8103 bidi redisplay when a line includes both an image and is truncated.
aa4b6df6 8104
5d856da6
PE
81052011-07-14 Paul Eggert <eggert@cs.ucla.edu>
8106
ad6042bb
PE
8107 Fix minor problems found by static checking.
8108 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
8109 (elsz): Now a signed constant, not a size_t var. We prefer signed
8110 types to unsigned, to avoid integer comparison confusion. Without
8111 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
8112 "cannot optimize loop, the loop counter may overflow", a symptom
8113 of the confusion.
f00bbb22 8114 * indent.c (Fvertical_motion): Mark locals as initialized.
5d856da6
PE
8115 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
8116
6468f31c
LMI
81172011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
8118
49080b10
LMI
8119 * search.c (Fre_search_backward): Mention `case-fold-search' in
8120 all the re_search_* functions (bug#8138).
8121
6468f31c
LMI
8122 * keyboard.c (Fopen_dribble_file): Document when the file is
8123 closed (bug#8056).
8124
c965adc5
EZ
81252011-07-14 Eli Zaretskii <eliz@gnu.org>
8126
df9733bf
EZ
8127 * bidi.c (bidi_dump_cached_states): Fix format of displaying
8128 bidi_cache_idx.
8129
0bb23927
EZ
8130 Support bidi reordering of display and overlay strings.
8131 * xdisp.c (compute_display_string_pos)
8132 (compute_display_string_end): Accept additional argument STRING.
8133 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
8134 (reseat_to_string): Initialize bidi_it->string.s and
8135 bidi_it->string.schars.
8136 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
640c8776
SM
8137 NULL (avoids a crash in bidi_paragraph_init).
8138 Initialize itb.string.lstring.
0bb23927
EZ
8139 (init_iterator): Call bidi_init_it only of a valid
8140 buffer position was specified. Initialize paragraph_embedding to
8141 L2R.
8142 (reseat_to_string): Initialize the bidi iterator.
8143 (display_string): If we need to ignore text properties of
8144 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
8145 original value of -1 will not work with bidi.)
8146 (compute_display_string_pos): First arg is now struct
8147 `text_pos *'; all callers changed. Support display properties on
8148 Lisp strings.
8149 (compute_display_string_end): Support display properties on Lisp
8150 strings.
8151 (init_iterator, reseat_1, reseat_to_string): Initialize the
8152 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
8153 when iterating on a string not from display properties).
640c8776
SM
8154 (compute_display_string_pos, compute_display_string_end):
8155 Fix calculation of the object to scan. Fixes an error when using
0bb23927
EZ
8156 arrow keys.
8157 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
640c8776
SM
8158 base_level_stop; instead, set base_level_stop to BEGV.
8159 Fixes crashes in vertical-motion.
0bb23927
EZ
8160 (next_element_from_buffer): Improve commentary for when
8161 the iterator is before prev_stop.
8162 (init_iterator): Initialize bidi_p from the default value of
8163 bidi-display-reordering, not from buffer-local value. Use the
8164 buffer-local value only if initializing for buffer iteration.
8165 (handle_invisible_prop): Support invisible properties on strings
8166 that are being bidi-reordered.
8167 (set_iterator_to_next): Support bidi reordering of C strings and
8168 Lisp strings.
8169 (next_element_from_string): Support bidi reordering of Lisp
8170 strings.
8171 (handle_stop_backwards): Support Lisp strings as well.
640c8776
SM
8172 (display_string): Support display of R2L glyph rows.
8173 Use IT_STRING_CHARPOS when displaying from a Lisp string.
0bb23927
EZ
8174 (init_iterator): Don't initialize it->bidi_p for strings
8175 here.
8176 (reseat_to_string): Initialize it->bidi_p for strings here.
8177 (next_element_from_string, next_element_from_c_string)
8178 (next_element_from_buffer): Add xassert's for correspondence
8179 between IT's object being iterated and it->bidi_it.string
8180 structure.
8181 (face_before_or_after_it_pos): Support bidi iteration.
8182 (next_element_from_c_string): Handle the case of the first string
8183 character that is not the first one in the visual order.
8184 (get_visually_first_element): New function, refactored from common
8185 parts of next_element_from_buffer, next_element_from_string, and
8186 next_element_from_c_string.
8187 (tool_bar_lines_needed, redisplay_tool_bar)
8188 (display_menu_bar): Force left-to-right direction. Add a FIXME
8189 comment for making that be controlled by a user option.
8190 (push_it, pop_it): Save and restore the state of the
8191 bidi iterator. Save and restore the bidi_p flag.
8192 (pop_it): Iterate out of display property for string iteration as
8193 well.
8194 (iterate_out_of_display_property): Support iteration over strings.
8195 (handle_single_display_spec): Set up it->bidi_it for iteration
8196 over a display string, and call bidi_init_it.
8197 (handle_single_display_spec, next_overlay_string)
8198 (get_overlay_strings_1, push_display_prop): Set up the bidi
8199 iterator for displaying display or overlay strings.
8200 (forward_to_next_line_start): Don't use the shortcut if
8201 bidi-iterating.
8202 (back_to_previous_visible_line_start): If handle_display_prop
8203 pushed the iterator stack, restore the internal state of the bidi
8204 iterator by calling bidi_pop_it same number of times.
8205 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
8206 and we are bidi-iterating, don't decrement the iterator position;
8207 instead, set the first_elt flag in the bidi iterator, to produce
8208 the same effect.
8209 (reseat_1): Remove redundant setting of string_from_display_prop_p.
8210 (push_display_prop): xassert that we are iterating a buffer.
8211 (push_it, pop_it): Save and restore paragraph_embedding member.
8212 (handle_single_display_spec, next_overlay_string)
8213 (get_overlay_strings_1, reseat_1, reseat_to_string)
8214 (push_display_prop): Set up the `unibyte' member of bidi_it.string
8215 correctly. Don't assume unibyte strings are not bidi-reordered.
8216 (compute_display_string_pos)
8217 (compute_display_string_end): Fix handling the case of C string.
8218 (push_it, pop_it): Save and restore from_disp_prop_p.
8219 (handle_single_display_spec, push_display_prop): Set the
8220 from_disp_prop_p flag.
8221 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
8222 (pop_it): Call iterate_out_of_display_property only if we are
8223 popping after iteration over a string that came from a display
8224 property. Fix a typo in popping stretch info. Add an assertion
8225 for verifying that the iterator position is in sync with the bidi
8226 iterator.
8227 (handle_single_display_spec, get_overlay_strings_1)
8228 (push_display_prop): Fix initialization of paragraph direction for
8229 string when that of the parent object is not yet determined.
8230 (reseat_1): Call bidi_init_it to resync the bidi
8231 iterator with IT's position. (Bug#7616)
8232 (find_row_edges): If ROW->start.pos gives position
8233 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
8234 (handle_stop, back_to_previous_visible_line_start, reseat_1):
8235 Reset the from_disp_prop_p flag.
8236 (SAVE_IT, RESTORE_IT): New macros.
8237 (pos_visible_p, face_before_or_after_it_pos)
8238 (back_to_previous_visible_line_start)
8239 (move_it_in_display_line_to, move_it_in_display_line)
8240 (move_it_to, move_it_vertically_backward, move_it_by_lines)
8241 (try_scrolling, redisplay_window, display_line): Use them when
8242 saving a temporary copy of the iterator and restoring it back.
8243 (back_to_previous_visible_line_start, reseat_1)
8244 (init_iterator): Empty the bidi cache "stack".
8245 (move_it_in_display_line_to): If iterator ended up at
8246 EOL, but we never saw any buffer positions smaller than
8247 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
8248 motion in bidi-reordered lines.
8249 (move_it_in_display_line_to): Record prev_method and prev_pos
8250 immediately before the call to set_iterator_to_next. Fixes cursor
8251 motion in bidi-reordered lines with stretch glyphs and strings
8252 displayed in margins. (Bug#8133) (Bug#8867)
8253 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
8254 TO_CHARPOS.
640c8776
SM
8255 (pos_visible_p): Support positions in bidi-reordered lines.
8256 Save and restore bidi cache.
0bb23927
EZ
8257
8258 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
8259 (bidi_paragraph_info): Delete unused struct.
8260 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
8261 (bidi_cache_start): New variable.
8262 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
8263 to zero.
8264 (bidi_cache_fetch_state, bidi_cache_search)
8265 (bidi_cache_find_level_change, bidi_cache_iterator_state)
8266 (bidi_cache_find, bidi_peek_at_next_level)
8267 (bidi_level_of_next_char, bidi_find_other_level_edge)
8268 (bidi_move_to_visually_next): Compare cache index with
8269 bidi_cache_start rather than with zero.
8270 (bidi_fetch_char): Accept new argument STRING; all callers
8271 changed. Support iteration over a string. Support strings with
8272 display properties. Support unibyte strings. Fix the type of
8273 `len' according to what STRING_CHAR_AND_LENGTH expects.
8274 (bidi_paragraph_init, bidi_resolve_explicit_1)
8275 (bidi_resolve_explicit, bidi_resolve_weak)
640c8776
SM
8276 (bidi_level_of_next_char, bidi_move_to_visually_next):
8277 Support iteration over a string.
0bb23927
EZ
8278 (bidi_set_sor_type, bidi_resolve_explicit_1)
8279 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
8280 can now be zero (for strings); special values 0 and -1 were
8281 changed to -1 and -2, respectively.
8282 (bidi_char_at_pos): New function.
8283 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
8284 Call it instead of FETCH_MULTIBYTE_CHAR.
8285 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
8286 initialized to valid values.
8287 (bidi_init_it): Don't initialize charpos and bytepos with invalid
8288 values.
8289 (bidi_level_of_next_char): Allow the sentinel "position" to pass
8290 the test for valid cached positions. Fix the logic for looking up
8291 the sentinel state in the cache. GCPRO the Lisp string we are
8292 iterating.
8293 (bidi_push_it, bidi_pop_it): New functions.
8294 (bidi_initialize): Initialize the bidi cache start stack pointer.
8295 (bidi_cache_ensure_space): New function, refactored from part of
8296 bidi_cache_iterator_state. Don't assume the required size is just
8297 one BIDI_CACHE_CHUNK away.
8298 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
8299 (bidi_count_bytes, bidi_char_at_pos): New functions.
8300 (bidi_cache_search): Don't assume bidi_cache_last_idx is
8301 always valid if bidi_cache_idx is valid.
8302 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
8303 is valid if it's going to be used.
8304 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
8305 (bidi_cache_fetch_state, bidi_cache_search)
c965adc5
EZ
8306 (bidi_cache_find_level_change, bidi_cache_ensure_space)
8307 (bidi_cache_iterator_state, bidi_cache_find)
640c8776
SM
8308 (bidi_find_other_level_edge, bidi_cache_start_stack):
8309 All variables related to cache indices are now EMACS_INT.
c965adc5 8310
0bb23927
EZ
8311 * dispextern.h (struct bidi_string_data): New structure.
8312 (struct bidi_it): New member `string'. Make flag members be 1-bit
8313 fields, and put them last in the struct.
640c8776
SM
8314 (compute_display_string_pos, compute_display_string_end):
8315 Update prototypes.
0bb23927
EZ
8316 (bidi_push_it, bidi_pop_it): Add prototypes.
8317 (struct iterator_stack_entry): New members bidi_p,
8318 paragraph_embedding, and from_disp_prop_p.
8319 (struct it): Member bidi_p is now a bit field 1 bit wide.
640c8776
SM
8320 (bidi_shelve_cache, bidi_unshelve_cache):
8321 Declare prototypes.
0bb23927
EZ
8322
8323 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
8324 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
8325 and vector-like objects.
8326
8327 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
8328 cache around display iteration.
8329
8330 * window.c (Fwindow_end, window_scroll_pixel_based)
8331 (displayed_window_lines, Frecenter): Save and restore the bidi
8332 cache around display iteration.
8333
3bbd2265
LMI
83342011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
8335
8336 * editfns.c (Fdelete_region): Clarify the use of the named
8337 parameters (bug#6788).
8338
adc47434
MR
83392011-07-14 Martin Rudalics <rudalics@gmx.at>
8340
8341 * indent.c (Fvertical_motion): Set and restore w->pointm when
8342 saving and restoring the window's buffer (Bug#9006).
8343
837c31f8
LMI
83442011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
8345
8346 * editfns.c (Fstring_to_char): Clarify just what is returned
8347 (bug#6576). Text by Eli Zaretskii.
8348
ac389d0c
JB
83492011-07-13 Juanma Barranquero <lekktu@gmail.com>
8350
8351 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
8352
0be0ce47
EZ
83532011-07-13 Eli Zaretskii <eliz@gnu.org>
8354
8355 * buffer.c (mmap_find): Fix a typo.
8356
cd18e7e3
JB
83572011-07-13 Johan Bockgård <bojohan@gnu.org>
8358
8359 Fix execution of x selection hooks.
8360 * xselect.c (Qx_lost_selection_functions)
8361 (Qx_sent_selection_functions): New vars.
8362 (syms_of_xselect): DEFSYM them.
8363 (x_handle_selection_request): Pass Qx_sent_selection_functions
8364 rather than Vx_sent_selection_functions to Frun_hook_with_args.
8365 (x_handle_selection_clear,x_clear_frame_selections):
8366 Pass Qx_lost_selection_functions rather than
8367 Vx_lost_selection_functions to Frun_hook_with_args.
8368
47ea7f44
PE
83692011-07-13 Paul Eggert <eggert@cs.ucla.edu>
8370
ac389d0c 8371 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
2941c447
PE
8372 The old code sometimes used this field without initializing it.
8373
47ea7f44
PE
8374 * alloc.c (gc_sweep): Don't read past end of array.
8375 In theory, the old code could also have corrupted Emacs internals,
8376 though it'd be very unlikely.
8377
bc985c87
AS
83782011-07-12 Andreas Schwab <schwab@linux-m68k.org>
8379
8380 * character.c (Fcharacterp): Don't advertise optional ignored
ac389d0c 8381 argument. (Bug#4026)
bc985c87 8382
0cf34688
LMI
83832011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
8384
b3dadd76
LMI
8385 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
8386 key" (bug#4257).
8387
0cf34688
LMI
8388 * window.c (Fset_window_start): Doc fix (bug#4199).
8389 (Fset_window_hscroll): Ditto.
8390
270768cd
PE
83912011-07-12 Paul Eggert <eggert@cs.ucla.edu>
8392
077e3dda 8393 Fix minor new problems caught by GCC 4.6.1.
270768cd 8394 * term.c (init_tty): Remove unused local.
490011a6 8395 * xsettings.c (store_monospaced_changed): Define this function only
077e3dda 8396 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
490011a6 8397 not used otherwise.
270768cd 8398
b1f58454
CY
83992011-07-12 Chong Yidong <cyd@stupidchicken.com>
8400
8401 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
8402
22b9578d
LMI
84032011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
8404
6e70ab07
LMI
8405 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
8406 are the mini-buffer and the echo area (bug#3320).
8407
22b9578d
LMI
8408 * term.c (init_tty): Remove support for supdup, c10 and perq
8409 terminals, which are no longer supported (bug#1482).
8410
8974cc9f
JB
84112011-07-10 Johan Bockgård <bojohan@gnu.org>
8412
8413 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
8414
a560d974
JD
84152011-07-10 Jan Djärv <jan.h.d@swipnet.se>
8416
8417 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
8418 for non-popups (Bug#3642).
8419
1dae0f0a
AS
84202011-07-10 Andreas Schwab <schwab@linux-m68k.org>
8421
268c2c36 8422 * alloc.c (reset_malloc_hooks): Protoize.
1dae0f0a 8423 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
268c2c36
AS
8424 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
8425 * cm.c (losecursor): Likewise.
1dae0f0a
AS
8426 * data.c (fmod): Likewise.
8427 * dispnew.c (swap_glyphs_in_rows): Likewise.
8428 * emacs.c (memory_warning_signal): Likewise.
8429 * floatfns.c (float_error): Likewise.
8430 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
8431 (otf_open, font_otf_capability, generate_otf_features)
8432 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
8433 Likewise.
8434 * image.c (pbm_read_file): Likewise.
8435 * indent.c (string_display_width): Likewise.
8436 * intervals.c (check_for_interval, search_for_interval)
8437 (inc_interval_count, count_intervals, root_interval)
8438 (adjust_intervals_for_insertion, make_new_interval): Likewise.
8439 * lread.c (defalias): Likewise.
268c2c36 8440 * ralloc.c (r_alloc_check): Likewise.
1dae0f0a
AS
8441 * regex.c (set_image_of_range_1, set_image_of_range)
8442 (regex_grow_registers): Likewise.
8443 * sysdep.c (strerror): Likewise.
8444 * termcap.c (valid_filename_p, tprint, main): Likewise.
8445 * tparam.c (main): Likewise.
8446 * unexhp9k800.c (run_time_remap, save_data_space)
8447 (update_file_ptrs, read_header, write_header, calculate_checksum)
8448 (copy_file, copy_rest, display_header): Likewise.
8449 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
8450 Likewise.
8451 * xdisp.c (check_it): Likewise.
8452 * xfaces.c (register_color, unregister_color, unregister_colors):
8453 Likewise.
8454 * xfns.c (print_fontset_result): Likewise.
8455 * xrdb.c (member, fatal, main): Likewise.
8456
99033785
PE
84572011-07-10 Paul Eggert <eggert@cs.ucla.edu>
8458
8459 Fix minor problems found by static checking (Bug#9031).
8460 * chartab.c (char_table_set_range, map_sub_char_table):
8461 Remove unused locals.
8462 (uniprop_table): Now static.
8463 * composite.c (_work_char): Remove unused static var.
8464
9cb2ac56
JB
84652011-07-09 Juanma Barranquero <lekktu@gmail.com>
8466
8467 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
8468
f25661f0
JD
84692011-07-09 Jan Djärv <jan.h.d@swipnet.se>
8470
8471 * gtkutil.c (qttip_cb): Remove code without function.
8472
8278c4fe
EZ
84732011-07-09 Eli Zaretskii <eliz@gnu.org>
8474
8475 * w32.c (pthread_sigmask): New stub.
8476
1692ae2d 84772011-07-08 Paul Eggert <eggert@cs.ucla.edu>
123403e4 8478
8a6ebd58 8479 Use pthread_sigmask, not sigprocmask (Bug#9010).
123403e4
PE
8480 sigprocmask is portable only for single-threaded applications, and
8481 Emacs can be multi-threaded when it uses GTK.
1301ac26
PE
8482 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
8483 (LIBES): Use it.
8484 * callproc.c (Fcall_process):
8485 * process.c (create_process):
8486 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
8487 Use pthread_sigmask, not sigprocmask.
123403e4 8488
1b854618
JD
84892011-07-08 Jan Djärv <jan.h.d@swipnet.se>
8490
8491 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
8492 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
8493 wrong (Bug#8591).
8494
3fe4b549
JD
84952011-07-08 Jan Djärv <jan.h.d@swipnet.se>
8496
0ce7e563
JD
8497 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
8498 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
8499 (xg_hide_tooltip): Fix comment.
8500
3fe4b549
JD
8501 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
8502 in registerServicesMenuSendTypes.
8503 (validRequestorForSendType): Don't check ns_return_types.
8504
8505 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
8506 ns_return_type.
8507
5df75e47
JR
85082011-07-08 Jason Rumney <jasonr@gnu.org>
8509
22610910
JR
8510 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
8511 SH_SHOW for hidden windows (Bug#5482).
8512
5df75e47
JR
8513 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
8514 frame struct members of non-existent frames (Bug#6284).
8515
699c10bd
JD
85162011-07-08 Jan Djärv <jan.h.d@swipnet.se>
8517
4393663b
JD
8518 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
8519 variable firstTime not needed on OSX >= 10.6.
8520 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
8521 >= 10.5. Use setKnobProportion, setDoubleValue.
8522
8523 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
8524 (MAC_OS_X_VERSION_10_5): Define if not defined.
8525 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
8526 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
8527 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
8528
8529 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
090bd7cb 8530 cString and lossyCString on OSX >= 10.4.
4393663b 8531
58179cce 8532 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
4393663b
JD
8533 sizeToFit on OSX >= 10.2.
8534
8535 * nsimage.m (allocInitFromFile): Don't use deprecated method
8536 bestRepresentationForDevice on OSX >= 10.6.
8537
8538 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
8539 to avoid warning.
8540
8541 * emacs.c: Declare unexec_init_emacs_zone.
8542
a63e0781
JD
8543 * nsgui.h: Fix compiler warning about gnulib redefining verify.
8544
699c10bd
JD
8545 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
8546
8547 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
8548 on svcsMenu (Bug#8842).
8549
8550 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
8551 ns_return_types.
8552 (Fns_list_services): Just return Qnil on 10.6, code not working there.
8553
8554 * nsterm.m (QUTF8_STRING): Declare.
8555 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
8556 (validRequestorForSendType): Return type is (id).
8557 Change indexOfObjectIdenticalTo to indexOfObject.
8558 Check if we have local selection before returning self (Bug#8842).
8559 (writeSelectionToPasteboard): Put local selection into paste board
8560 if we have a local selection (Bug#8842).
8561 (syms_of_nsterm): DEFSYM QUTF8_STRING.
8562
8563 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
8564 (ns_get_local_selection): Declare.
8565
54e10184
LMI
85662011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
8567
9888ff71
LMI
8568 * keymap.c (describe_map_tree): Don't insert a double newline at
8569 the end of the buffer (bug#1169) and return whether we inserted
8570 something.
8571
54e10184
LMI
8572 * callint.c (Fcall_interactively): Change "reading args" to
8573 "providing args" to try to clarify what it does (bug#1010).
8574
15fa4783
KH
85752011-07-07 Kenichi Handa <handa@m17n.org>
8576
8577 * composite.c (composition_compute_stop_pos): Ignore a static
8578 composition starting before CHARPOS (Bug#8915).
8579
8580 * xdisp.c (handle_composition_prop): Likewise.
8581
a8815b00
EZ
85822011-07-07 Eli Zaretskii <eliz@gnu.org>
8583
8584 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
8585 (Bug#9015)
8586
ef7b981d 85872011-07-07 Kenichi Handa <handa@m17n.org>
c805dec0
KH
8588
8589 * character.h (unicode_category_t): New enum type.
8590
8591 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
8592 (Qchar_code_property_table): New variable.
8593 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
8594 (UNIPROP_COMPRESSED_FORM_P): New macros.
8595 (char_table_ascii): Uncompress the compressed values.
8596 (sub_char_table_ref): New arg is_uniprop. Callers changed.
8597 Uncompress the compressed values.
ac389d0c 8598 (sub_char_table_ref_and_range): Likewise.
c805dec0
KH
8599 (char_table_ref_and_range): Uncompress the compressed values.
8600 (sub_char_table_set): New arg is_uniprop. Callers changed.
8601 Uncompress the compressed values.
8602 (sub_char_table_set_range): Args changed. Callers changed.
8603 (char_table_set_range): Adjuted for the above change.
8604 (map_sub_char_table): Delete args default_val and parent. Add arg
8605 top. Give decoded values to a Lisp function.
640c8776 8606 (map_char_table): Adjust for the above change. Give decoded
c805dec0
KH
8607 values to a Lisp function. Gcpro more variables.
8608 (uniprop_table_uncompress)
8609 (uniprop_decode_value_run_length): New functions.
8610 (uniprop_decoder, uniprop_decoder_count): New variables.
8611 (uniprop_get_decoder, uniprop_encode_value_character)
8612 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
8613 New functions.
8614 (uniprop_encoder, uniprop_encoder_count): New variables.
8615 (uniprop_get_encoder, uniprop_table)
8616 (Funicode_property_table_internal, Fget_unicode_property_internal)
8617 (Fput_unicode_property_internal): New functions.
8618 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
8619 Sunicode_property_table_internal, Sget_unicode_property_internal,
5e617bc2 8620 and Sput_unicode_property_internal. Defvar_lisp
c805dec0
KH
8621 char-code-property-alist.
8622
640c8776 8623 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
c805dec0
KH
8624 Vunicode_category_table.
8625
640c8776 8626 * font.c (font_range): Adjust for the change of
c805dec0
KH
8627 Vunicode_category_table.
8628
76b397fb
DN
86292011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
8630
8631 * m/iris4d.h: Remove file, move contents ...
8632 * s/irix6-5.h: ... here.
8633
22b4128e
PE
86342011-07-06 Paul Eggert <eggert@cs.ucla.edu>
8635
8636 Remove unportable assumption about struct layout (Bug#8884).
8a5c77bb
PE
8637 * alloc.c (mark_buffer):
8638 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
8639 (clone_per_buffer_values): Don't assume that
22b4128e
PE
8640 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
8641 This isn't true in general, and it's particularly not true
8642 if Emacs is configured with --with-wide-int.
8643 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
8644 New macros, used in the buffer.c change.
8645
869795d6
JD
86462011-07-05 Jan Djärv <jan.h.d@swipnet.se>
8647
8648 * xsettings.c: Use both GConf and GSettings if both are available.
8649 (store_config_changed_event): Add comment.
8650 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
8651 (store_tool_bar_style_changed): New functions.
5e617bc2 8652 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
869795d6
JD
8653 (struct xsettings): Move font inside HAVE_XFT.
8654 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
640c8776 8655 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
869795d6 8656 Move inside HAVE_XFT.
640c8776 8657 (something_changed_gsettingsCB): Rename from something_changedCB.
869795d6
JD
8658 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
8659 also.
8660 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
5e617bc2 8661 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
640c8776 8662 (something_changed_gconfCB): Rename from something_changedCB.
869795d6
JD
8663 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
8664 (parse_settings): Move check for font inside HAVE_XFT.
8665 (read_settings, apply_xft_settings): Add comment.
8666 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
8667 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
8668 call store_font_name_changed.
8669 (xft_settings_event): Add comment.
8670 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
8671 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
8672 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
8673 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
8674 (xsettings_initialize): Call init_gsettings last.
640c8776
SM
8675 (xsettings_get_system_font, xsettings_get_system_normal_font):
8676 Add comment.
869795d6 8677
d8ed26bd
PE
86782011-07-05 Paul Eggert <eggert@cs.ucla.edu>
8679
8680 Random fixes. E.g., (random) never returned negative values.
8681 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
8682 subseconds part to the entropy, as that's a bit more random.
8683 Prefer signed to unsigned, since the signedness doesn't matter and
8684 in general we prefer signed. When given a limit, use a
8685 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
8686 latter isn't right if USE_2_TAGS_FOR_INTS.
8687 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
8688 not 0..VALMASK. Don't discard "excess" bits that random () returns.
8689
cabf1cac
SM
86902011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
8691
8692 * textprop.c (text_property_stickiness):
8693 Obey Vtext_property_default_nonsticky.
8694 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
8695 * w32fns.c (syms_of_w32fns):
8696 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
8697
6e9b2be9
PE
86982011-07-04 Paul Eggert <eggert@cs.ucla.edu>
8699
8700 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
8701 This is more efficient than Ffile_directory_p and avoids a minor race.
8702
90186c68
LMI
87032011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
8704
7c301272
LMI
8705 * buffer.c (Foverlay_put): Say what the return value is
8706 (bug#7835).
8707
c4f2d8d4
LMI
8708 * fileio.c (barf_or_query_if_file_exists): Check first if the file
8709 is a directory before asking whether to use the file name
8710 (bug#7564).
ad637907
LMI
8711 (barf_or_query_if_file_exists): Make the "File is a directory"
8712 error be more correct.
c4f2d8d4 8713
90186c68
LMI
8714 * fns.c (Frequire): Remove the mention of the .gz files, since
8715 that's installation-specific, but keep the mention of
8716 `get-load-suffixes'.
8717
da64016e
PE
87182011-07-04 Paul Eggert <eggert@cs.ucla.edu>
8719
8720 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
8721 Report string overflow if the output is too long.
8722
7d47b580
JB
87232011-07-04 Juanma Barranquero <lekktu@gmail.com>
8724
a555cb87
JB
8725 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
8726 (syms_of_gnutls): Remove duplicate DEFSYM for
8727 Qgnutls_bootprop_verify_hostname_error, an error for
8728 Qgnutls_bootprop_verify_error (which is no longer used).
8729
7d47b580
JB
8730 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
8731 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
8732 Also (re)move comments that are misplaced or no longer relevant.
8733
1e49bfab
LMI
87342011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
8735
8736 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
8737
1485f4c0
CY
87382011-07-03 Chong Yidong <cyd@stupidchicken.com>
8739
8740 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
8741 and background color parameters if they have been changed.
8742
a9ab721e
LMI
87432011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
8744
8745 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
8746
cf7cff57
PE
87472011-07-03 Paul Eggert <eggert@cs.ucla.edu>
8748
2e13213d
PE
8749 * xsettings.c (SYSTEM_FONT): Define only when used.
8750 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
8751
cf7cff57
PE
8752 * keymap.c (access_keymap_1): Now static.
8753
7a8e04f7
CY
87542011-07-02 Chong Yidong <cyd@stupidchicken.com>
8755
8756 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
8757 leave any prefix arg for the up event (Bug#1586).
8758
61352f62
LMI
87592011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
8760
69bb1ef7
LMI
8761 * lread.c (syms_of_lread): Mention single symbols defined by
8762 `defvar' or `defconst' (bug#7154).
8763
61352f62 8764 * fns.c (Frequire): Mention .el.gz files (bug#7314).
7b3747f9 8765 (Frequire): Mention get-load-suffixes.
61352f62 8766
28545e04
MR
87672011-07-02 Martin Rudalics <rudalics@gmx.at>
8768
8769 * window.h (window): Remove clone_number slot.
8770 * window.c (Fwindow_clone_number, Fset_window_clone_number):
8771 Remove.
8772 (make_parent_window, make_window, saved_window)
8773 (Fset_window_configuration, save_window_save): Don't deal with
8774 clone numbers.
8775 * buffer.c (Qclone_number): Remove declaration.
8776 (sort_overlays, overlay_strings): Don't deal with clone numbers.
8777
3349e122
SM
87782011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
8779
8780 Add multiple inheritance to keymaps.
8781 * keymap.c (Fmake_composed_keymap): New function.
8782 (Fset_keymap_parent): Simplify.
8783 (fix_submap_inheritance): Remove.
8784 (access_keymap_1): New function extracted from access_keymap to handle
8785 embedded parents and handle lists of maps.
8786 (access_keymap): Use it.
8787 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
8788 (Fcopy_keymap): Handle embedded parents.
8789 (Fcommand_remapping, define_as_prefix): Simplify.
8790 (Fkey_binding): Simplify.
8791 (syms_of_keymap): Move minibuffer-local-completion-map,
8792 minibuffer-local-filename-completion-map,
8793 minibuffer-local-must-match-map, and
8794 minibuffer-local-filename-must-match-map to Elisp.
8795 (syms_of_keymap): Defsubr make-composed-keymap.
8796 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
8797 (parse_menu_item): Trivial simplification.
8798
3279eb87
GM
87992011-07-01 Glenn Morris <rgm@gnu.org>
8800
8801 * Makefile.in (SETTINGS_LIBS): Fix typo.
8802
4550efdf
KI
88032011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny patch)
8804
8805 * coding.c (Fencode_coding_string): Record the last coding system
8806 used, as the function doc string says (bug#8738).
8807
0949d2b6
JD
88082011-07-01 Jan Djärv <jan.h.d@swipnet.se>
8809
8810 * xsettings.c (store_monospaced_changed): Take new font as arg and
8811 check for change against current_mono_font.
8812 (EMACS_TYPE_SETTINGS): Remove this and related defines.
8813 (emacs_settings_constructor, emacs_settings_get_property)
8814 (emacs_settings_set_property, emacs_settings_class_init)
8815 (emacs_settings_init, gsettings_obj): Remove.
8816 (something_changedCB): New function for HAVE_GSETTINGS.
8817 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
8818 with value as argument.
8819 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
8820 g_settings_new (Bug#8967). Do not create gsettings_obj.
9173deec 8821 Remove calls to g_settings_bind. Connect something_changedCB to
0949d2b6
JD
8822 "changed".
8823
8824 * xgselect.c: Add defined (HAVE_GSETTINGS).
8825 (xgselect_initialize): Ditto.
8826
8827 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
8828 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
8829 xg_select.
8830
bbc6b304
PE
88312011-07-01 Paul Eggert <eggert@cs.ucla.edu>
8832
8833 * eval.c (struct backtrace): Simplify and port the data structure.
8834 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
8835 signed bit field, as this assumption is not portable and it makes
8836 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
8837 "char debug_on_exit : 1" as this is not portable either; instead,
8838 use the portable "unsigned int debug_on_exit : 1". Remove unused
8839 member evalargs. Remove obsolete comments about cc bombing out.
8840
9851bfc5
JD
88412011-06-30 Jan Djärv <jan.h.d@swipnet.se>
8842
51bb811f 8843 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
9851bfc5
JD
8844 Let HAVE_GSETTINGS override HAVE_GCONF.
8845 (store_monospaced_changed): New function.
8846 (EMACS_SETTINGS): A new type derived from GObject to handle
8847 GSettings notifications.
8848 (emacs_settings_constructor, emacs_settings_get_property)
8849 (emacs_settings_set_property, emacs_settings_class_init):
8850 New functions.
8851 (gsettings_client, gsettings_obj): New variables.
8852 (GSETTINGS_SCHEMA): New define.
8853 (something_changedCB): Call store_monospaced_changed.
8854 (init_gsettings): New function.
8855 (xsettings_initialize): Call init_gsettings.
8856 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
8857 to NULL.
8858
640c8776 8859 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
9851bfc5
JD
8860 GCONF_CFLAGS/LIBS.
8861
5386012d
MR
88622011-06-29 Martin Rudalics <rudalics@gmx.at>
8863
8864 * window.c (resize_root_window, grow_mini_window)
8865 (shrink_mini_window): Rename Qresize_root_window to
8866 Qwindow_resize_root_window and Qresize_root_window_vertically to
8867 Qwindow_resize_root_window_vertically.
8868
f13e0b08
PE
88692011-06-28 Paul Eggert <eggert@cs.ucla.edu>
8870
8871 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
8872
94515237
JB
88732011-06-27 Juanma Barranquero <lekktu@gmail.com>
8874
8875 * makefile.w32-in: Redesign dependencies so they reflect more
8876 clearly which files are directly included by each source file,
8877 and not through other includes.
8878
e43b6e43
MR
88792011-06-27 Martin Rudalics <rudalics@gmx.at>
8880
8881 * buffer.c (Qclone_number): Declare static and DEFSYM it.
8882 (sort_overlays, overlay_strings): When an overlay's clone number
8883 matches the window's clone number process the overlay even if
8884 the overlay's window property doesn't match the current window.
8885
d68443dc
MR
8886 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
8887 (Fwindow_hchild): Rename to Fwindow_left_child.
8888 (Fwindow_next): Rename to Fwindow_next_sibling.
8889 (Fwindow_prev): Rename to Fwindow_prev_sibling.
d615d6d2
MR
8890 (resize_window_check): Rename to window_resize_check.
8891 (resize_window_apply): Rename to window_resize_apply.
8892 (Fresize_window_apply): Rename to Fwindow_resize_apply.
8893 (Fdelete_other_windows_internal, resize_frame_windows)
8894 (Fsplit_window_internal, Fdelete_window_internal)
8895 (grow_mini_window, shrink_mini_window)
8896 (Fresize_mini_window_internal): Fix callers accordingly.
d68443dc 8897
c7e73be5
JD
88982011-06-26 Jan Djärv <jan.h.d@swipnet.se>
8899
8900 * emacsgtkfixed.h: State that this is only used with Gtk+3.
8901 (emacs_fixed_set_min_size): Remove.
8902 (emacs_fixed_new): Take frame as argument.
8903
8904 * emacsgtkfixed.c: State that this is only used with Gtk+3.
8905 (_EmacsFixedPrivate): Remove minwidth/height.
8906 Add struct frame *f.
8907 (emacs_fixed_init): Initialize priv->f.
8908 (get_parent_class, emacs_fixed_set_min_size): Remove.
8909 (emacs_fixed_new): Set priv->f to argument.
8910 (emacs_fixed_get_preferred_width)
8911 (emacs_fixed_get_preferred_height): Use min_width/height from
8912 frames size_hint to set minimum and natural (Bug#8919).
8913 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
8914 and use min_width/height from frames size_hint to set
8915 min_width/height (Bug#8919).
8916
8917 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
9173deec
JB
8918 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
8919 Fix indentation.
c7e73be5 8920
cf99dcf8
EZ
89212011-06-26 Eli Zaretskii <eliz@gnu.org>
8922
8923 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
8924 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
8925 called at ZV.
8926
029529ac
CY
89272011-06-26 Chong Yidong <cyd@stupidchicken.com>
8928
8929 * process.c (wait_reading_process_output): Bypass select if
8930 waiting for a cell while ignoring keyboard input, and input is
8931 pending. Suggested by Jan Djärv (Bug#8869).
8932
7a7ef429
PE
89332011-06-25 Paul Eggert <eggert@cs.ucla.edu>
8934
8935 Use gnulib's dup2 module instead of rolling our own.
8936 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
8937
11fdef7d 89382011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
989b42d2
YM
8939
8940 * dispnew.c (scrolling_window): Before scrolling, turn off a
8941 mouse-highlight in the window being scrolled.
8942
cd3520a4
JB
89432011-06-24 Juanma Barranquero <lekktu@gmail.com>
8944
8945 Move DEFSYM to lisp.h and use everywhere.
8946
8947 * character.h (DEFSYM): Move declaration...
8948 * lisp.h (DEFSYM): ...here.
8949
8950 * gnutls.c:
8951 * minibuf.c:
8952 * w32menu.c:
8953 * w32proc.c:
8954 * w32select.c: Don't include character.h.
8955
8956 * alloc.c (syms_of_alloc):
8957 * buffer.c (syms_of_buffer):
8958 * bytecode.c (syms_of_bytecode):
8959 * callint.c (syms_of_callint):
8960 * casefiddle.c (syms_of_casefiddle):
8961 * casetab.c (init_casetab_once):
8962 * category.c (init_category_once, syms_of_category):
8963 * ccl.c (syms_of_ccl):
8964 * cmds.c (syms_of_cmds):
8965 * composite.c (syms_of_composite):
8966 * dbusbind.c (syms_of_dbusbind):
8967 * dired.c (syms_of_dired):
8968 * dispnew.c (syms_of_display):
8969 * doc.c (syms_of_doc):
8970 * editfns.c (syms_of_editfns):
8971 * emacs.c (syms_of_emacs):
8972 * eval.c (syms_of_eval):
8973 * fileio.c (syms_of_fileio):
8974 * fns.c (syms_of_fns):
8975 * frame.c (syms_of_frame):
8976 * fringe.c (syms_of_fringe):
8977 * insdel.c (syms_of_insdel):
8978 * keymap.c (syms_of_keymap):
8979 * lread.c (init_obarray, syms_of_lread):
8980 * macros.c (syms_of_macros):
8981 * msdos.c (syms_of_msdos):
8982 * print.c (syms_of_print):
8983 * process.c (syms_of_process):
8984 * search.c (syms_of_search):
8985 * sound.c (syms_of_sound):
8986 * syntax.c (init_syntax_once, syms_of_syntax):
8987 * terminal.c (syms_of_terminal):
8988 * textprop.c (syms_of_textprop):
8989 * undo.c (syms_of_undo):
8990 * w32.c (globals_of_w32):
8991 * window.c (syms_of_window):
8992 * xdisp.c (syms_of_xdisp):
8993 * xfaces.c (syms_of_xfaces):
8994 * xfns.c (syms_of_xfns):
8995 * xmenu.c (syms_of_xmenu):
8996 * xsettings.c (syms_of_xsettings):
8997 * xterm.c (syms_of_xterm): Use DEFSYM.
8998
4228cf16
TZ
89992011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
9000
cd3520a4 9001 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
4228cf16 9002
7fcccf1e
PE
90032011-06-23 Paul Eggert <eggert@cs.ucla.edu>
9004
7efb4e0e
PE
9005 Integer and buffer overflow fixes (Bug#8873).
9006
ff5844ad
PE
9007 * print.c (printchar, strout): Check for string overflow.
9008 (PRINTPREPARE, printchar, strout):
9009 Don't set size unless allocation succeeds.
9010
90532f02
PE
9011 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
9012 for sizes. Check for string overflow more accurately.
9013 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
9014
6d84508d
PE
9015 * macros.c: Integer and buffer overflow fixes.
9016 * keyboard.h (struct keyboard.kbd_macro_bufsize):
9017 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
9018 Use ptrdiff_t, not int, for sizes.
9019 Don't increment bufsize until after realloc succeeds.
9020 Check for size-calculation overflow.
9021 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
9022
437b2cb4
PE
9023 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
9024
8b9ac8b4
PE
9025 * lread.c: Integer overflow fixes.
9026 (read_integer): Radix is now EMACS_INT, not int,
9027 to improve quality of diagnostics for out-of-range radices.
9028 Calculate buffer size correctly for out-of-range radices.
9029 (read1): Check for integer overflow in radices, and in
9030 read-circle numbers.
82cb60d3
PE
9031 (read_escape): Avoid int overflow.
9032 (Fload, openp, read_buffer_size, read1)
9033 (substitute_object_recurse, read_vector, read_list, map_obarray):
9034 Use ptrdiff_t, not int, for sizes.
9035 (read1): Use EMACS_INT, not int, for sizes.
20270765 9036 Check for size overflow.
8b9ac8b4 9037
7fcccf1e
PE
9038 * image.c (cache_image): Check for size arithmetic overflow.
9039
bfbbd7e7
PE
9040 * lread.c: Integer overflow issues.
9041 (saved_doc_string_size, saved_doc_string_length)
9042 (prev_saved_doc_string_size, prev_saved_doc_string_length):
9043 Now ptrdiff_t, not int.
9044 (read1): Don't assume doc string length fits in int. Check for
9045 out-of-range doc string lengths.
9046 (read_list): Don't assume file position fits in int.
39019e54 9047 (read_escape): Check for hex character overflow.
bfbbd7e7 9048
4e323265
LL
90492011-06-22 Leo Liu <sdl.web@gmail.com>
9050
9051 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
9052 Move to minibuffer.el.
9053
85fece3e
PE
90542011-06-22 Paul Eggert <eggert@cs.ucla.edu>
9055
20b84ce9 9056 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
85fece3e
PE
9057 The following patches are for when GLYPH_DEBUG && !XASSERT.
9058 * dispextern.h (trace_redisplay_p, dump_glyph_string):
9059 * dispnew.c (flush_stdout):
9060 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
9061 Mark as externally visible.
9062 * dispnew.c (check_window_matrix_pointers): Now static.
9063 * dispnew.c (window_to_frame_vpos):
9064 * xfns.c (unwind_create_frame):
9065 * xterm.c (x_check_font): Remove unused local.
9066 * scroll.c (CHECK_BOUNDS):
9067 * xfaces.c (cache_fache): Rename local to avoid shadowing.
9068 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
9069 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
9070 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
9071 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
9072 Now static.
9073 (debug_method_add): Use va_list and vsprintf rather than relying
9074 on undefined behavior with wrong number of arguments.
9075 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
9076 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
9077 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
9078 since we're not interested in debugging glyphs with old libraries.
9079 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
9080 GCC 4.6.0's static checking.
9081
0766b489
PE
90822011-06-22 Paul Eggert <eggert@cs.ucla.edu>
9083
31fd4b32
PE
9084 Integer overflow and signedness fixes (Bug#8873).
9085 A few related buffer overrun fixes, too.
9086
b79e8648
PE
9087 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
9088
0766b489
PE
9089 * dispextern.h (struct face.stipple):
9090 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
9091 (x_bitmap_mask, x_allocate_bitmap_record)
9092 (x_create_bitmap_from_data, x_create_bitmap_from_file)
9093 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
9094 (x_create_bitmap_from_xpm_data):
9095 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
9096 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
9097 (.bitmaps_last):
9098 * xfaces.c (load_pixmap):
9099 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
9100 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
9101 (.bitmaps_last, struct x_output.icon_bitmap):
9102 Use ptrdiff_t, not int, for bitmap indexes.
9103 (x_allocate_bitmap_record): Check for size overflow.
9104 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
9105
b081724f
PE
9106 Use ptrdiff_t, not int, for overlay counts.
9107 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
9108 * editfns.c (overlays_around, get_pos_property):
9109 * textprop.c (get_char_property_and_overlay):
9110 * xdisp.c (next_overlay_change, note_mouse_highlight):
9111 * xfaces.c (face_at_buffer_position):
21514da7
PE
9112 * buffer.c (OVERLAY_COUNT_MAX): New macro.
9113 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
9114 (Fnext_overlay_change, Fprevious_overlay_change)
9115 (mouse_face_overlay_overlaps, Foverlays_in):
b081724f 9116 Use ptrdiff_t, not int, for sizes.
21514da7 9117 (overlays_at, overlays_in): Check for size-calculation overflow.
b081724f 9118
3de73e5e
PE
9119 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
9120
2606c57b
PE
9121 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
9122 (x_session_initialize): Do not assume string length fits in int.
9123
aaafe47a
PE
9124 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
9125 This is unlikely, but can occur if DPI is outlandish.
9126
2674ddc8 9127 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
3a5077c5
PE
9128 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
9129
28154962
PE
9130 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
9131 * xrdb.c (magic_file_p, search_magic_path):
9132 Omit last arg SUFFIX; it was always 0. All callers changed.
9133 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
9134
7de51af5
PE
9135 * xfont.c (xfont_match): Avoid need for strlen.
9136
25ed6cc3
PE
9137 * xfns.c: Don't assume strlen fits in int.
9138 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
9139
4eab31dd
PE
9140 * xdisp.c (message_log_check_duplicate): Return intmax_t,
9141 not unsigned long, as we prefer signed integers. All callers changed.
9142 Detect integer overflow in repeat count.
9143 (message_dolog): Don't assume print length fits in 39 bytes.
df1f27af 9144 (display_mode_element): Don't assume strlen fits in int.
4eab31dd 9145
171e2a58
PE
9146 * termcap.c: Don't assume sizes fit in int and never overflow.
9147 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
9148 (gobble_line): Check for size-calculation overflow.
9149
ad39faca 9150 * minibuf.c (Fread_buffer):
6e5bb2dc 9151 * lread.c (intern, intern_c_string):
74ca2eb3
PE
9152 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
9153 Don't assume string length fits in int.
9154
52c61c22 9155 * keyboard.c (parse_tool_bar_item):
9bda3520
PE
9156 * gtkutil.c (style_changed_cb): Avoid need for strlen.
9157
b5b8c9e5
PE
9158 * font.c: Don't assume string length fits in int.
9159 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
9160 Use ptrdiff_t, not int.
ccd6111c
PE
9161 (font_intern_prop): Don't assume string length fits in int.
9162 Don't assume integer property fits in fixnum.
9163 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
b5b8c9e5 9164
882f0d81 9165 * filelock.c: Fix some buffer overrun and integer overflow issues.
51cab52b 9166 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
882f0d81
PE
9167 Reformulate so as not to need the command string.
9168 Invoke gzip -cd rather than gunzip, as it's more portable.
9169 (lock_info_type, lock_file_1, lock_file):
9170 Don't assume pid_t and time_t fit in unsigned long.
9171 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
9172 (current_lock_owner): Prefer signed type for sizes.
9173 Use memcpy, not strncpy, where memcpy is what is really wanted.
9174 Don't assume (via atoi) that time_t and pid_t fit in int.
9175 Check for time_t and/or pid_t out of range, e.g., via a network share.
9176 Don't alloca where an auto var works fine.
9177
93f4cf88
PE
9178 * fileio.c: Fix some integer overflow issues.
9179 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
9180 Don't assume string length fits in int.
9181 (directory_file_name): Don't assume string length fits in long.
9182 (make_temp_name): Don't assume pid fits in int, or that its print
9183 length is less than 20.
9184
f3e92b69
PE
9185 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
9186
1bfdaf10
PE
9187 * coding.c (make_subsidiaries): Don't assume string length fits in int.
9188
35016e9a
PE
9189 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
9190
3d1e65a1
PE
9191 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
9192 We prefer signed integers, even for size calculations.
9193
0b963a93
PE
9194 * emacs.c: Don't assume string length fits in 'int'.
9195 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
9196 (main): Don't invoke strlen when not needed.
9197
573f4b54
PE
9198 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
9199 (XD_DEBUG_MESSAGE): Don't waste a byte.
9200
989f33ba
PE
9201 * callproc.c (getenv_internal_1, getenv_internal)
9202 (Fgetenv_internal):
965d34eb
PE
9203 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
9204
e4d29b33
PE
9205 * lread.c (invalid_syntax): Omit length argument.
9206 All uses changed. This doesn't fix a bug, but it simplifies the
9207 code away from its former Hollerith-constant appearance, and it's
9208 one less 'int' to worry about when looking at integer-overflow issues.
51cab52b 9209 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
e4d29b33 9210
eb49b136
PE
9211 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
9212 This didn't break anything, but it didn't help either.
9213 It's confusing to put a bogus integer in a place where the actual
9214 value does not matter.
9f62aeb1 9215 (LIST_END_P): Remove unused macro and its bogus comment.
cbeff735 9216 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
eb49b136 9217
15375a22
PE
9218 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
9219 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
9220 implementation.
b61cc01c
PE
9221 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
9222 We prefer signed types, and the value cannot exceed the EMACS_INT
9223 range anyway (because otherwise the length would not be representable).
9a8e8d9b
PE
9224 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
9225 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
9226 This avoids a GCC warning when WIDE_EMACS_INT.
15375a22 9227
53b2623d
PE
9228 * indent.c (sane_tab_width): New function.
9229 (current_column, scan_for_column, Findent_to, position_indentation)
9230 (compute_motion): Use it. This is just for clarity.
8fcaf9cc 9231 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
53b2623d 9232
51cab52b 9233 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
45aebb64 9234
f2ed8a70
PE
9235 * lisp.h (lint_assume): New macro.
9236 * composite.c (composition_gstring_put_cache):
9237 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
9238
abe80cc6
PE
9239 * editfns.c, insdel.c:
9240 Omit unnecessary forward decls, to simplify future changes.
a9e860e1 9241
b02c740e
PE
9242 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
9243
ebc96716
PE
9244 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
9245
b4e50fa0 9246 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
f03dc6ef 9247 Use much-faster test for byte-length change.
311d5d7c 9248 Don't assume string byte-length fits in 'int'.
a4cf38e4 9249 Check that character arg fits in 'int'.
85461888 9250 (mapcar1): Declare byte as byte, for clarity.
b4e50fa0 9251
c0c1ee9f
PE
9252 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
9253
a498d7f4
PE
9254 * fns.c (concat): Catch string overflow earlier.
9255 Do not rely on integer wraparound.
9256
51cab52b
PE
9257 * dispextern.h (struct it.overlay_strings_charpos)
9258 (struct it.selective): Now EMACS_INT, not int.
87830974
PE
9259 * xdisp.c (forward_to_next_line_start)
9260 (back_to_previous_visible_line_start)
9261 (reseat_at_next_visible_line_start, next_element_from_buffer):
9262 Don't arbitrarily truncate the value of 'selective' to int.
9263
76031fad
PE
9264 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
9265
5eb55db9
PE
9266 * composite.c: Don't truncate sizes to 'int'.
9267 (composition_gstring_p, composition_reseat_it)
9268 (composition_adjust_point): Use EMACS_INT, not int.
7d100a81
PE
9269 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
9270 not EMACS_UINT, for indexes.
5eb55db9 9271
0703a717
PE
9272 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
9273
d6202519
PE
9274 * buffer.c: Include <verify.h>.
9275 (struct sortvec.priority, struct sortstr.priority):
8961a454 9276 Now EMACS_INT, not int.
c20998a7 9277 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
67c36fce
PE
9278 (struct sortstr.size, record_overlay_string)
9279 (struct sortstrlist.size, struct sortlist.used):
9280 Don't truncate size to int.
9281 (record_overlay_string): Check for size-calculation overflow.
d6202519 9282 (init_buffer_once): Check at compile-time, not run-time.
fadf4e30 9283
d5a19415
JM
92842011-06-22 Jim Meyering <meyering@redhat.com>
9285
029529ac 9286 Don't leak an XBM-image-sized buffer
d5a19415
JM
9287 * image.c (xbm_load): Free the image buffer after using it.
9288
a9041e6c
PE
92892011-06-21 Paul Eggert <eggert@cs.ucla.edu>
9290
9291 Port to Sun C.
9292 * composite.c (find_automatic_composition): Omit needless 'return 0;'
9293 that Sun C diagnosed.
9294 * fns.c (secure_hash): Fix pointer signedness issue.
9295 * intervals.c (static_offset_intervals): New function.
9296 (offset_intervals): Use it.
9297
7f3f739f
LL
92982011-06-21 Leo Liu <sdl.web@gmail.com>
9299
9300 * deps.mk (fns.o):
9301 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
9302 sha512.h.
9303
9304 * fns.c (secure_hash): Rename from crypto_hash_function and change
9305 the first arg to accept symbols.
5b66d427 9306 (Fsecure_hash): New primitive.
7f3f739f
LL
9307 (syms_of_fns): New symbols.
9308
76147d94
DD
93092011-06-20 Deniz Dogan <deniz@dogan.se>
9310
9311 * process.c (Fset_process_buffer): Clarify return value in
9312 docstring.
9313
7d7d0045
CY
93142011-06-18 Chong Yidong <cyd@stupidchicken.com>
9315
9316 * dispnew.c (add_window_display_history): Use BVAR.
9317
9318 * xdisp.c (debug_method_add): Use BVAR.
9319 (check_window_end, dump_glyph_matrix, dump_glyph)
9320 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
9321
9322 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
9323 Likewise.
9324
9325 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
9326 check till after the cache is created in init_frame_faces.
9327
ff2bc410
SM
93282011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
9329
9330 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
9331
28177add
PE
93322011-06-16 Paul Eggert <eggert@cs.ucla.edu>
9333
dd3482fe
PE
9334 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
9335 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
9336 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
9337
393d71f3 9338 Improve buffer-overflow checking (Bug#8873).
1c8e352f
PE
9339 * fileio.c (Finsert_file_contents):
9340 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
9341 Remove the old (too-loose) buffer overflow checks.
9342 They weren't needed, since make_gap checks for buffer overflow.
9343 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
9344 The old code merely checked for Emacs fixnum overflow, and relied
9345 on undefined (wraparound) behavior. The new code avoids undefined
9346 behavior, and also checks for ptrdiff_t and/or size_t overflow.
9347
2e6813b0 9348 * editfns.c (Finsert_char): Don't dump core with very negative counts.
21d890a4
PE
9349 Tune. Don't use wider integers than needed. Don't use alloca.
9350 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
2e6813b0 9351
599a9e4f
PE
9352 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
9353
99561444
PE
9354 * insdel.c, lisp.h (buffer_overflow): New function.
9355 (insert_from_buffer_1, replace_range, replace_range_2):
9356 * insdel.c (make_gap_larger):
9357 * editfns.c (Finsert_char):
9358 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
9359
28177add
PE
9360 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
9361
e69dafad
PE
93622011-06-15 Paul Eggert <eggert@cs.ucla.edu>
9363
4baa020d 9364 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
ff672d2c 9365
b1c46f02
PE
9366 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
9367 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
9368
e69dafad
PE
9369 * fileio.c: Don't assume EMACS_INT fits in off_t.
9370 (emacs_lseek): New static function.
9371 (Finsert_file_contents, Fwrite_region): Use it.
9372 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
9373
566684ea
PE
9374 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
9375
e6966cd6
PE
9376 * fns.c: Don't overflow int when computing a list length.
9377 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
9378 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
9379 truncation on 64-bit hosts. Check for QUIT every
9380 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
9381 faster and is responsive enough.
9382 (Flength): Report an error instead of overflowing an integer.
9383 (Fsafe_length): Return a float if the value is not representable
9384 as a fixnum. This shouldn't happen except in contrived situations.
6346d301 9385 (Fnthcdr, Fsort): Don't assume list length fits in int.
de41a810 9386 (Fcopy_sequence): Don't assume vector length fits in int.
00c604f2 9387
dd0b0efb
PE
9388 * alloc.c: Check that resized vectors' lengths fit in fixnums.
9389 (header_size, word_size): New constants.
9390 (allocate_vectorlike): Don't check size overflow here.
9391 (allocate_vector): Check it here instead, since this is the only
9392 caller of allocate_vectorlike that could cause overflow.
9393 Check that the new vector's length is representable as a fixnum.
9394
86fe5cfe
PE
9395 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
9396 The previous code was bogus. For example, next_almost_prime (32)
9397 returned 39, which is undesirable as it is a multiple of 3; and
9398 next_almost_prime (24) returned 25, which is a multiple of 5 so
9399 why was the code bothering to check for multiples of 7?
9400
80e88859
PE
9401 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
9402
4a2f0ad6
PE
9403 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
9404
f66c7cf8
PE
9405 Variadic C functions now count arguments with ptrdiff_t.
9406 This partly undoes my 2011-03-30 change, which replaced int with size_t.
9407 Back then I didn't know that the Emacs coding style prefers signed int.
9408 Also, in the meantime I found a few more instances where arguments
4a2f0ad6
PE
9409 were being counted with int, which may truncate counts on 64-bit
9410 machines, or EMACS_INT, which may be unnecessarily wide.
f66c7cf8
PE
9411 * lisp.h (struct Lisp_Subr.function.aMANY)
9412 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
9413 Arg counts are now ptrdiff_t, not size_t.
9414 All variadic functions and their callers changed accordingly.
9415 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
9416 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
9417 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
9418 * callint.c (Fcall_interactively): Check arg count for overflow,
9419 to avoid potential buffer overrun. Use signed char, not 'int',
9420 for 'varies' array, so that we needn't bother to check its size
9421 calculation for overflow.
9422 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
9423 * eval.c (apply_lambda):
9424 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
9425 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
9426 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
9427
a1759b76
PE
9428 * callint.c (Fcall_interactively): Don't use index var as event count.
9429
d96be9fc
PE
9430 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
9431 * mem-limits.h (SIZE): Remove; no longer used.
9432
a690a978 9433 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
5efd304b 9434
578c21e6
PE
9435 Remove unnecessary casts.
9436 * xterm.c (x_term_init):
9437 * xfns.c (x_set_border_pixel):
9438 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
9439 These aren't needed now that we assume ANSI C.
9440
96f53c6c
PE
9441 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
9442 It's more likely to cause problems (due to unsigned overflow)
9443 than to cure them.
9444
83c77d31
PE
9445 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
9446
ee2079f1
PE
9447 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
9448
6da65536
PE
9449 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
9450
7147c4a4
PE
9451 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
9452
193e32d9
PE
9453 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
9454
e5533da6
PE
9455 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
9456
9910e595
PE
9457 GLYPH_CODE_FACE returns EMACS_INT, not int.
9458 * dispextern.h (merge_faces):
9459 * xfaces.c (merge_faces):
01103c44
PE
9460 * xdisp.c (get_next_display_element, next_element_from_display_vector):
9461 Don't assume EMACS_INT fits in int.
9910e595 9462
2638320e
PE
9463 * character.h (CHAR_VALID_P): Remove unused parameter.
9464 * fontset.c, lisp.h, xdisp.c: All uses changed.
9465
045eb8d9
PE
9466 * editfns.c (Ftranslate_region_internal): Omit redundant test.
9467
c1f134b5
PE
9468 * fns.c (concat): Minor tuning based on overflow analysis.
9469 This doesn't fix any bugs. Use int to hold character, instead
9470 of constantly refetching from Emacs object. Use XFASTINT, not
9471 XINT, for value known to be a character. Don't bother comparing
9472 a single byte to 0400, as it's always less.
9473
395fcb93 9474 * floatfns.c (Fexpt):
327eeec8
PE
9475 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
9476
abbd3d23
PE
9477 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
9478 for characters.
9479
684a03ef
PE
9480 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
9481
0fed43f3
PE
9482 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
9483 Without this fix, on a 64-bit host (aset S 0 4294967386) would
9484 incorrectly succeed when S was a string, because 4294967386 was
9485 truncated before it was used.
9486
8fd02eb7
PE
9487 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
9488 Otherwise, an out-of-range integer could cause undefined behavior
9489 on a 64-bit host.
9490
f8c86b69
PE
9491 * composite.c: Use int, not EMACS_INT, for characters.
9492 (fill_gstring_body, composition_compute_stop_pos): Use int, not
9493 EMACS_INT, for values that are known to be in character range.
9494 This doesn't fix any bugs but is the usual style inside Emacs and
9495 may generate better code on 32-bit machines.
9496
34206dd2
PE
9497 Make sure a 64-bit char is never passed to ENCODE_CHAR.
9498 This is for reasons similar to the recent CHAR_STRING fix.
9499 * charset.c (Fencode_char): Check that character arg is actually
9500 a character. Pass an int to ENCODE_CHAR.
9501 * charset.h (ENCODE_CHAR): Verify that the character argument is no
9502 wider than 'int', as a compile-time check to prevent future regressions
9503 in this area.
9504
c5958d4c 9505 * character.c (char_string): Remove unnecessary casts.
13bdea59
PE
9506
9507 Make sure a 64-bit char is never passed to CHAR_STRING.
9508 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
9509 by silently ignoring the top 32 bits, allowing some values
9510 that were far too large to be valid characters.
9511 * character.h: Include <verify.h>.
9512 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
9513 arguments are no wider than unsigned, as a compile-time check
9514 to prevent future regressions in this area.
9515 * data.c (Faset):
01103c44 9516 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
13bdea59
PE
9517 (Fsubst_char_in_region):
9518 * fns.c (concat):
9519 * xdisp.c (decode_mode_spec_coding):
9520 Adjust to CHAR_STRING's new requirement.
9521 * editfns.c (Finsert_char, Fsubst_char_in_region):
9522 * fns.c (concat): Check that character args are actually
9523 characters. Without this test, these functions did the wrong
9524 thing with wildly out-of-range values on 64-bit hosts.
9525
d37ca623
PE
9526 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
9527 These casts should not be needed on 32-bit hosts, either.
9528 * keyboard.c (read_char):
9529 * lread.c (Fload): Remove casts to unsigned.
9530
ea204efb
PE
9531 * lisp.h (UNSIGNED_CMP): New macro.
9532 This fixes comparison bugs on 64-bit hosts.
9533 (ASCII_CHAR_P): Use it.
9534 * casefiddle.c (casify_object):
01103c44 9535 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
ea204efb
PE
9536 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
9537 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
9538 * dispextern.h (FACE_FROM_ID):
9539 * keyboard.c (read_char): Use UNSIGNED_CMP.
9540
41cb286c
PE
9541 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
9542 not to EMACS_INT, to avoid GCC warning.
9543
4a1b9832
PE
9544 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
9545
55daad71
PE
9546 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
9547 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
9548 isn't needed on 32-bit machines.
8f95c75c 9549
01103c44
PE
9550 * buffer.c (Fgenerate_new_buffer_name):
9551 Use EMACS_INT for count, not int.
0ceccced 9552 (advance_to_char_boundary): Return EMACS_INT, not int.
e762cafe
PE
9553
9554 * data.c (Qcompiled_function): Now static.
9555
c6f072e7
PE
9556 * window.c (window_body_lines): Now static.
9557
20ce5912
PE
9558 * image.c (gif_load): Rename local to avoid shadowing.
9559
9c4c5f81
PE
9560 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
9561 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
9562 * alloc.c (make_save_value): Integer argument is now of type
9563 ptrdiff_t, not int.
9564 (mark_object): Use ptrdiff_t, not int.
9565 * lisp.h (pD): New macro.
9566 * print.c (print_object): Use it.
9567
c0c5c8ae
PE
9568 * alloc.c: Use EMACS_INT, not int, to count objects.
9569 (total_conses, total_markers, total_symbols, total_vector_size)
9570 (total_free_conses, total_free_markers, total_free_symbols)
01103c44
PE
9571 (total_free_floats, total_floats, total_free_intervals)
9572 (total_intervals, total_strings, total_free_strings):
c0c5c8ae
PE
9573 Now EMACS_INT, not int. All uses changed.
9574 (Fgarbage_collect): Compute overall total using a double, so that
9575 integer overflow is less likely to be a problem. Check for overflow
9576 when converting back to an integer.
5a25e253
PE
9577 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
9578 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
9579 These were 'int' variables that could overflow on 64-bit hosts;
9580 they were never used, so remove them instead of repairing them.
211a0b2a 9581 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
6349ae4d
PE
9582 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
9583 Previously, this ceilinged at INT_MAX, but that doesn't work on
9584 64-bit machines.
e46bb31a 9585 (allocate_pseudovector): Don't use EMACS_INT when int would do.
c0c5c8ae 9586
c78baabf 9587 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
86f61a15 9588 (allocate_vectorlike): Check for ptrdiff_t overflow.
b6439961
PE
9589 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
9590 when a (possibly-narrower) signed value would do just as well.
9591 We prefer using signed arithmetic, to avoid comparison confusion.
c78baabf 9592
c9d624c6
PE
9593 * alloc.c: Catch some string size overflows that we were missing.
9594 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
9595 for convenience in STRING_BYTES_MAX.
9596 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
9597 The definition here is exact; the one in lisp.h was approximate.
9598 (allocate_string_data): Check for string overflow. This catches
9599 some instances we weren't catching before. Also, it catches
9600 size_t overflow on (unusual) hosts where SIZE_MAX <= min
9601 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
9602 and ptrdiff_t and EMACS_INT are both 64 bits.
c78baabf 9603
c9d624c6
PE
9604 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
9605 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
640c8776 9606 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
c9d624c6 9607
353032ce
PE
9608 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
9609
2bccce07
PE
9610 * alloc.c (Fmake_string): Check for out-of-range init.
9611
0ac30604
SM
96122011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
9613
9614 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
9615
c195f2de
JD
96162011-06-14 Jan Djärv <jan.h.d@swipnet.se>
9617
9618 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
9619 xg_get_default_scrollbar_width.
9620
9621 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
9622 (int_gtk_range_get_value): Move to the scroll bar part of the file.
9623 (style_changed_cb): Call update_theme_scrollbar_width and call
9624 x_set_scroll_bar_default_width and xg_frame_set_char_size for
9625 all frames (Bug#8505).
9626 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
9627 Call gtk_window_set_resizable if HAVE_GTK3.
9628 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
9629 and height if HAVE_GTK3 (Bug#8505).
9630 (scroll_bar_width_for_theme): New variable.
9631 (update_theme_scrollbar_width): New function.
9632 (xg_get_default_scrollbar_width): Move code to
9633 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
9634 (xg_initialize): Call update_theme_scrollbar_width.
9635
9636 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
9637
9638 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
9639
e10ac9f1
MR
96402011-06-12 Martin Rudalics <rudalics@gmx.at>
9641
9642 * frame.c (make_frame): Call other_buffer_safely instead of
9643 other_buffer.
9644
9645 * window.c (temp_output_buffer_show): Call display_buffer with
9646 second argument Vtemp_buffer_show_specifiers and reset latter
9647 immediately after the call.
9648 (Vtemp_buffer_show_specifiers): New variable.
9649 (auto_window_vscroll_p, next_screen_context_lines)
9650 (Vscroll_preserve_screen_position): Remove leading asterisks from
9651 doc-strings.
9652
2d3c217e 96532011-06-12 Paul Eggert <eggert@cs.ucla.edu>
4475bec4 9654
7b7f97e8 9655 Fix minor problems found by GCC 4.6.0 static checking.
4475bec4
PE
9656 * buffer.c (Qclone_number): Remove for now, as it's unused.
9657 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
9658 (record_buffer): Remove unused local.
9659 * frame.c (other_visible_frames, frame_buffer_list): Now static.
9660 (set_frame_buffer_list): Remove; unused.
9661 * frame.h (other_visible_frames): Remove decl.
9662 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
9663 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
9664 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
9665 if HAVE_GPM.
9666 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
9667 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
9668 Define only if HAVE_GPM.
9669 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
9670 (update_hints_inhibit): Remove; never set. All uses removed.
9671 * widgetprv.h (emacsFrameClassRec): Remove decl.
9672 * window.c (delete_deletable_window): Now returns void, since it
9673 wasn't returning anything.
9674 (compare_window_configurations): Remove unused locals.
9675 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
9676 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
4475bec4
PE
9677 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
9678 the same widths as pointers. This follows up on the 2011-05-06 patch.
9679 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
9680 * xterm.h: Likewise.
9681 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
9682
1384b89e
JB
96832011-06-12 Juanma Barranquero <lekktu@gmail.com>
9684
9685 * makefile.w32-in: Update dependencies.
9686 (LISP_H): Add lib/intprops.h.
9687
1100a63c
CY
96882011-06-11 Chong Yidong <cyd@stupidchicken.com>
9689
9690 * image.c (gif_load): Add animation frame delay to the metadata.
9691 (syms_of_image): Use DEFSYM. New symbol `delay'.
9692
6198ccd0
MR
96932011-06-11 Martin Rudalics <rudalics@gmx.at>
9694
9695 * window.c (delete_deletable_window): Re-add.
9696 (Fset_window_configuration): Rewrite to handle dead buffers and
9697 consequently deletable windows.
9698 (window_tree, Fwindow_tree): Remove. Supply functionality in
9699 window.el.
9700 (compare_window_configurations): Simplify code.
9701
b6e3633c
AS
97022011-06-11 Andreas Schwab <schwab@linux-m68k.org>
9703
1ab0dee5
AS
9704 * image.c (imagemagick_load_image): Fix type mismatch.
9705 (Fimagemagick_types): Likewise.
9706
b6e3633c
AS
9707 * window.h (replace_buffer_in_windows): Declare.
9708
9397e56f
MR
97092011-06-11 Martin Rudalics <rudalics@gmx.at>
9710
9711 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
9712 Qclone_number. Remove external declaration of Qdelete_window.
9713 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
9714 code.
640c8776
SM
9715 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
9716 Run Qbuffer_list_update_hook if allowed.
9397e56f
MR
9717 (Fother_buffer): Rewrite doc-string. Major rewrite for new
9718 buffer list implementation.
9719 (other_buffer_safely): New function.
9720 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
9721 calls to replace_buffer_in_windows and
9722 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
9723 if allowed.
9724 (record_buffer): Inhibit quitting and rewrite using quittable
9725 functions. Run Qbuffer_list_update_hook if allowed.
9726 (Frecord_buffer, Funrecord_buffer): New functions.
640c8776
SM
9727 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
9728 Move switch-to-buffer to window.el.
9397e56f
MR
9729 (bury-buffer): Move to window.el.
9730 (Vbuffer_list_update_hook): New variable.
9731
9732 * lisp.h (other_buffer_safely): Add prototype in buffer.c
9733 section.
9734
9735 * window.h (resize_frame_windows): Move up in code.
9736 (Fwindow_frame): Remove EXFUN.
9737 (replace_buffer_in_all_windows): Remove prototype.
9738 (replace_buffer_in_windows_safely): Add prototype.
9739
9740 * window.c: Declare Qdelete_window static again. Move down
9741 declaration of select_count.
9742 (Fnext_window, Fprevious_window): Rewrite doc-strings.
9743 (Fother_window): Move to window.el.
9744 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
9745 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
9746 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
9747 window.el.
9748 (replace_buffer_in_windows): Implement by calling
9749 Qreplace_buffer_in_windows.
9750 (replace_buffer_in_all_windows): Remove with some functionality
9751 moved into replace_buffer_in_windows_safely.
9752 (replace_buffer_in_windows_safely): New function.
9753 (select_window_norecord, select_frame_norecord): Move in front
9754 of run_window_configuration_change_hook. Remove now obsolete
9755 declarations.
640c8776
SM
9756 (Fset_window_buffer): Rewrite doc-string.
9757 Call Qrecord_window_buffer.
9397e56f
MR
9758 (keys_of_window): Move binding for other-window to window.el.
9759
b50691aa
CY
97602011-06-11 Chong Yidong <cyd@stupidchicken.com>
9761
9762 * dispextern.h (struct image): Replace data member, whose int_val
9763 and ptr_val fields were not used by anything, with a single
9764 lisp_val object.
9765
9766 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
9767 (gif_clear_image, gif_load, imagemagick_load_image)
9768 (gs_clear_image, gs_load): Callers changed.
9769
3f754b86
PE
97702011-06-10 Paul Eggert <eggert@cs.ucla.edu>
9771
cca69397
PE
9772 * buffer.h: Include <time.h>, for time_t.
9773 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
9774
109e28d0
PE
9775 Fix minor problems found by static checking.
9776
60737f02
PE
9777 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
9778
4b66faf3
PE
9779 Make identifiers static if they are not used in other modules.
9780 * data.c (Qcompiled_function, Qframe, Qvector):
9781 * image.c (QimageMagick, Qsvg):
9782 * minibuf.c (Qmetadata):
9783 * window.c (resize_window_check, resize_root_window): Now static.
9784 * window.h (resize_window_check, resize_root_window): Remove decls.
9785
109e28d0
PE
9786 * window.c (window_deletion_count, delete_deletable_window):
9787 Remove; unused.
46a4ce9e
PE
9788 (window_body_lines): Now static.
9789 (Fdelete_other_windows_internal): Mark vars as initialized.
9790 Make sure 'resize_failed' is initialized.
9791 (run_window_configuration_change_hook): Rename local to avoid shadowing.
9792 (resize_window_apply): Remove unused local.
9793 * window.h (delete_deletable_window): Remove decl.
9794
109e28d0 9795 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
33290528
PE
9796 (imagemagick_load_image): Fix pointer signedness problem by changing
9797 last arg from unsigned char * to char *. All uses changed.
9798 Also, fix a local for similar reasons.
9799 Remove unused locals. Remove locals to avoid shadowing.
9800 (fn_rsvg_handle_free): Remove; unused.
9801 (svg_load, svg_load_image): Fix pointer signedness problem.
f7e13da3 9802 (imagemagick_load_image): Don't use garbage pointer image_wand.
33290528 9803
3f754b86
PE
9804 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
9805
2547adb1
CY
98062011-06-10 Chong Yidong <cyd@stupidchicken.com>
9807
9808 * image.c (gif_load): Fix omitted cast error introduced by
9809 2011-06-06 change.
9810
2c8e37d4
MR
98112011-06-10 Martin Rudalics <rudalics@gmx.at>
9812
9813 * window.h (resize_proportionally, orig_total_lines)
9814 (orig_top_line): Remove from window structure.
9815 (set_window_height, set_window_width, change_window_heights)
9816 (Fdelete_window): Remove prototypes.
9817 (resize_frame_windows): Remove duplicate declaration.
9818
440a42e3
EZ
98192011-06-10 Eli Zaretskii <eliz@gnu.org>
9820
9821 * window.h (resize_frame_windows, resize_window_check)
9822 (delete_deletable_window, resize_root_window)
9823 (resize_frame_windows): Declare prototypes.
9824
9825 * window.c (resize_window_apply): Make definition be "static" to
9826 match the prototype.
9827
562dd5e9
MR
98282011-06-10 Martin Rudalics <rudalics@gmx.at>
9829
9830 * window.c: Remove declarations of Qwindow_size_fixed,
9831 window_min_size_1, window_min_size_2, window_min_size,
9832 size_window, window_fixed_size_p, enlarge_window, delete_window.
9833 Remove static from declaration of Qdelete_window, it's
9834 temporarily needed by Fbury_buffer.
9835 (replace_window): Don't assign orig_top_line and
9836 orig_total_lines.
9837 (Fdelete_window, delete_window): Remove. Window deletion is
9838 handled by window.el.
640c8776
SM
9839 (window_loop): Remove DELETE_OTHER_WINDOWS case.
9840 Replace Fdelete_window calls with calls to Qdelete_window.
562dd5e9
MR
9841 (Fdelete_other_windows): Remove. Deleting other windows is
9842 handled by window.el.
9843 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
9844 handled in window.el.
9845 (window_min_size_2, window_min_size_1, window_min_size): Remove.
9846 Window minimum sizes are handled in window.el.
9847 (shrink_windows, size_window, set_window_height)
9848 (set_window_width, change_window_heights, window_height)
9849 (window_width, CURBEG, CURSIZE, enlarge_window)
9850 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
9851 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
9852 handled in window.el.
9853 (make_dummy_parent): Rename to make_parent_window and give it a
9854 second argument horflag.
9855 (make_window): Don't set resize_proportionally any more.
9856 (Fsplit_window): Remove. Windows are split in window.el.
9857 (save_restore_action, save_restore_orig_size)
9858 (shrink_window_lowest_first, save_restore_orig_size): Remove.
9859 Resize mini windows in window.el.
9860 (grow_mini_window, shrink_mini_window): Implement by calling
9861 Qresize_root_window_vertically, resize_window_check and
9862 resize_window_apply.
640c8776
SM
9863 (saved_window, Fset_window_configuration, save_window_save):
9864 Do not handle orig_top_line, orig_total_lines, and
562dd5e9
MR
9865 resize_proportionally.
9866 (window_min_height, window_min_width): Move to window.el.
9867 (keys_of_window): Move bindings for delete-other-windows,
9868 split-window, delete-window and enlarge-window to window.el.
9869
9870 * buffer.c: Temporarily extern Qdelete_window.
9871 (Fbury_buffer): Temporarily call Qdelete_window instead of
9872 Fdelete_window (Fbury_buffer will move to window.el soon).
9873
9874 * frame.c (set_menu_bar_lines_1): Remove code handling
9875 orig_top_line and orig_total_lines.
9876
9877 * dispnew.c (adjust_frame_glyphs_initially): Don't use
9878 set_window_height but set heights directly.
9879 (change_frame_size_1): Use resize_frame_windows.
9880
9881 * xdisp.c (init_xdisp): Don't use set_window_height but set
9882 heights directly.
9883
640c8776
SM
9884 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
9885 Use resize_frame_windows instead of change_window_heights and run
562dd5e9
MR
9886 run_window_configuration_change_hook.
9887
9888 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
9889 instead of change_window_heights and run
9890 run_window_configuration_change_hook.
9891
1a13852e
MR
98922011-06-09 Martin Rudalics <rudalics@gmx.at>
9893
9894 * window.c (replace_window): Rename second argument REPLACEMENT to
9895 NEW. New third argument SETFLAG. Rewrite.
9896 (delete_window, make_dummy_parent): Call replace_window with
9897 third argument 1.
9898 (window_list_1): Move down in code.
9899 (run_window_configuration_change_hook): Move set_buffer part
9900 before select_frame_norecord part in order to unwind correctly.
9901 Rename count1 to count.
9902 (recombine_windows, delete_deletable_window, resize_root_window)
9903 (Fdelete_other_windows_internal)
9904 (Frun_window_configuration_change_hook, make_parent_window)
9905 (resize_window_check, resize_window_apply, Fresize_window_apply)
9906 (resize_frame_windows, Fsplit_window_internal)
640c8776
SM
9907 (Fdelete_window_internal, Fresize_mini_window_internal):
9908 New functions.
1a13852e
MR
9909 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
9910
f3d1777e
MR
99112011-06-08 Martin Rudalics <rudalics@gmx.at>
9912
496e208e
MR
9913 * window.h (window): Add some new members to window structure -
9914 normal_lines, normal_cols, new_total, new_normal, clone_number,
9915 splits, nest, prev_buffers, next_buffers.
9916 (WINDOW_TOTAL_SIZE): Move here from window.c.
b9e809c2 9917 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
496e208e 9918
f3d1777e
MR
9919 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
9920 Remove.
496e208e
MR
9921 (make_dummy_parent): Set new members of windows structure.
9922 (make_window): Move down in code. Handle new members of window
9923 structure.
9924 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
9925 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
9926 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
9927 (Fset_window_prev_buffers, Fwindow_next_buffers)
640c8776
SM
9928 (Fset_window_next_buffers, Fset_window_clone_number):
9929 New functions.
496e208e
MR
9930 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
9931 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
9932 Doc-string fixes.
9933 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
9934 Argument WINDOW can be now internal window too.
9935 (Fwindow_use_time): Move up in code.
9936 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
9937 Rewrite doc-string.
9938 (Fset_window_configuration, saved_window)
9939 (Fcurrent_window_configuration, save_window_save): Handle new
9940 members of window structure.
b9e809c2
MR
9941 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
9942 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
9943 (syms_of_window): New Lisp objects Qrecord_window_buffer,
9944 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
9945 Qget_mru_window, Qresize_root_window,
9946 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
9947 Qauto_buffer_name; staticpro them.
f3d1777e 9948
abde8f8c
MR
99492011-06-07 Martin Rudalics <rudalics@gmx.at>
9950
9951 * window.c (Fwindow_total_size, Fwindow_left_column)
9952 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
9953 (Fwindow_list_1): New functions.
9954 (window_box_text_cols): Replace with window_body_cols.
640c8776
SM
9955 (Fwindow_width, Fscroll_left, Fscroll_right):
9956 Use window_body_cols instead of window_box_text_cols.
9957 (delete_window, Fset_window_configuration):
9958 Call delete_all_subwindows with window as argument.
fa8a67e6
MR
9959 (delete_all_subwindows): Take a window as argument and not a
9960 structure. Rewrite.
190b47e6
MR
9961 (window_loop): Remove handling of GET_LRU_WINDOW and
9962 GET_LARGEST_WINDOW.
9963 (Fget_lru_window, Fget_largest_window): Move to window.el.
abde8f8c
MR
9964
9965 * window.h: Extern window_body_cols instead of
fa8a67e6
MR
9966 window_box_text_cols. delete_all_subwindows now takes a
9967 Lisp_Object as argument.
abde8f8c 9968
640c8776
SM
9969 * indent.c (compute_motion, Fcompute_motion):
9970 Use window_body_cols instead of window_box_text_cols.
abde8f8c 9971
fa8a67e6
MR
9972 * frame.c (delete_frame): Call delete_all_subwindows with root
9973 window as argument.
9974
a54e3482
DC
99752011-06-07 Daniel Colascione <dan.colascione@gmail.com>
9976
9977 * fns.c (Fputhash): Document return value.
9978
60002bf5
CY
99792011-06-06 Chong Yidong <cyd@stupidchicken.com>
9980
9981 * image.c (gif_load): Implement gif89a spec "no disposal" method.
9982
0c671da6 99832011-06-06 Paul Eggert <eggert@cs.ucla.edu>
ccd9a01a 9984
b862a52a 9985 Cons<->int and similar integer overflow fixes (Bug#8794).
77984278 9986
be44ca6c
PE
9987 Check for overflow when converting integer to cons and back.
9988 * charset.c (Fdefine_charset_internal, Fdecode_char):
9989 Use cons_to_unsigned to catch overflow.
9990 (Fencode_char): Use INTEGER_TO_CONS.
9991 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
9992 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
9993 * data.c (long_to_cons, cons_to_long): Remove.
9994 (cons_to_unsigned, cons_to_signed): New functions.
9995 These signal an error for invalid or out-of-range values.
9996 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
9997 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
9998 * font.c (Ffont_variation_glyphs):
9999 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
10000 * lisp.h: Include <intprops.h>.
10001 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
10002 (cons_to_signed, cons_to_unsigned): New decls.
10003 (long_to_cons, cons_to_long): Remove decls.
10004 * undo.c (record_first_change): Use INTEGER_TO_CONS.
10005 (Fprimitive_undo): Use CONS_TO_INTEGER.
10006 * xfns.c (Fx_window_property): Likewise.
10007 * xselect.c: Include <limits.h>.
10008 (x_own_selection, selection_data_to_lisp_data):
10009 Use INTEGER_TO_CONS.
10010 (x_handle_selection_request, x_handle_selection_clear)
10011 (x_get_foreign_selection, Fx_disown_selection_internal)
10012 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
10013 (lisp_data_to_selection_data): Use cons_to_unsigned.
10014 (x_fill_property_data): Use cons_to_signed.
10015 Report values out of range.
10016
d1f3d2af
PE
10017 Check for buffer and string overflow more precisely.
10018 * buffer.h (BUF_BYTES_MAX): New macro.
10019 * lisp.h (STRING_BYTES_MAX): New macro.
10020 * alloc.c (Fmake_string):
10021 * character.c (string_escape_byte8):
10022 * coding.c (coding_alloc_by_realloc):
10023 * doprnt.c (doprnt):
10024 * editfns.c (Fformat):
10025 * eval.c (verror):
10026 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
10027 since they may not be the same number.
10028 * editfns.c (Finsert_char):
10029 * fileio.c (Finsert_file_contents):
10030 Likewise for BUF_BYTES_MAX.
10031
dd52fcea
PE
10032 * image.c: Use ptrdiff_t, not int, for sizes.
10033 (slurp_file): Switch from int to ptrdiff_t.
10034 All uses changed.
10035 (slurp_file): Check that file size fits in both size_t (for
10036 malloc) and ptrdiff_t (for sanity and safety).
10037
7f9bbdbb
PE
10038 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
10039 if b->modtime has its maximal value.
10040
dfe18f82
PE
10041 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
10042
84acfcf0
PE
10043 Don't assume time_t can fit into int.
10044 * buffer.h (struct buffer.modtime): Now time_t, not int.
10045 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
10046 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
10047
ccd9a01a
PE
10048 Minor fixes for signed vs unsigned integers.
10049 * character.h (MAYBE_UNIFY_CHAR):
10050 * charset.c (maybe_unify_char):
10051 * keyboard.c (read_char, reorder_modifiers):
10052 XINT -> XFASTINT, since the integer must be nonnegative.
10053 * ftfont.c (ftfont_spec_pattern):
10054 * keymap.c (access_keymap, silly_event_symbol_error):
10055 XUINT -> XFASTINT, since the integer must be nonnegative.
10056 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
10057 since it makes no difference and we prefer signed.
10058 * keyboard.c (record_char): Use XUINT when all the neighbors do.
10059 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
10060 nonnegative.
10061
d6d100dd
SM
100622011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
10063
10064 * window.h (Fwindow_frame): Declare.
10065
2b6148e4
PE
100662011-06-06 Paul Eggert <eggert@cs.ucla.edu>
10067
10068 * alloc.c: Simplify handling of large-request failures (Bug#8800).
10069 (SPARE_MEMORY): Always define.
10070 (LARGE_REQUEST): Remove.
10071 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
10072
f230ecc9
MR
100732011-06-06 Martin Rudalics <rudalics@gmx.at>
10074
727e958e
MR
10075 * lisp.h: Move EXFUNS for Fframe_root_window,
10076 Fframe_first_window and Fset_frame_selected_window to window.h.
10077
10078 * window.h: Move EXFUNS for Fframe_root_window,
10079 Fframe_first_window and Fset_frame_selected_window here from
10080 lisp.h.
10081
10082 * frame.c (Fwindow_frame, Fframe_first_window)
10083 (Fframe_root_window, Fframe_selected_window)
10084 (Fset_frame_selected_window): Move to window.c.
10085 (Factive_minibuffer_window): Move to minibuf.c.
10086 (Fother_visible_frames_p): New function.
10087
10088 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
10089
f230ecc9
MR
10090 * window.c (decode_window, decode_any_window): Move up in code.
10091 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
10092 (inhibit_frame_unsplittable): Remove unused variable.
bf60a96b
MR
10093 (Fwindow_buffer): Move up and rewrite doc-string.
10094 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
10095 (Fwindow_prev): New functions.
727e958e
MR
10096 (Fwindow_frame): Move here from frame.c. Accept any window as
10097 argument.
10098 (Fframe_root_window, Fframe_first_window)
10099 (Fframe_selected_window): Move here from frame.c. Accept frame
10100 or arbitrary window as argument. Update doc-strings.
10101 (Fminibuffer_window): Move up in code.
10102 (Fwindow_minibuffer_p): Move up in code and simplify.
d6d100dd
SM
10103 (Fset_frame_selected_window): Move here from frame.c.
10104 Marginal rewrite.
727e958e
MR
10105 (Fselected_window, select_window, Fselect_window): Move up in
10106 code. Minor doc-string fixes.
f230ecc9 10107
4d09bcf6
PE
101082011-06-06 Paul Eggert <eggert@cs.ucla.edu>
10109
10110 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
10111 Do not assume that spare memory exists; that assumption is valid
10112 only if SYSTEM_MALLOC.
10113 (LARGE_REQUEST): New macro, so that the issue of large requests
10114 is separated from the issue of spare memory.
10115
810928a2
AS
101162011-06-05 Andreas Schwab <schwab@linux-m68k.org>
10117
172418ad
AS
10118 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
10119 format. (Bug#8806)
10120
43f862f7
AS
10121 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
10122
810928a2
AS
10123 * xfns.c (x_set_scroll_bar_default_width): Move declarations
10124 before statements.
10125
a059fe24
JD
101262011-06-05 Jan Djärv <jan.h.d@swipnet.se>
10127
10128 * gtkutil.c (xg_get_default_scrollbar_width): New function.
10129
10130 * gtkutil.h: Declare xg_get_default_scrollbar_width.
10131
10132 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
10133 min width by calling x_set_scroll_bar_default_width (Bug#8505).
10134
989bf368
JB
101352011-06-05 Juanma Barranquero <lekktu@gmail.com>
10136
10137 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
10138
4b80f674
CY
101392011-06-04 Chong Yidong <cyd@stupidchicken.com>
10140
10141 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
10142 (x_clipboard_manager_save): Add return value.
d6d100dd
SM
10143 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
10144 New error handlers.
4b80f674
CY
10145 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
10146 Obey Vx_select_enable_clipboard_manager. Catch errors in
10147 x_clipboard_manager_save (Bug#8779).
10148 (Vx_select_enable_clipboard_manager): New variable.
de65b42c 10149 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
4b80f674 10150
99a33b77 101512011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
8b3115e7
DN
10152
10153 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
10154
99a33b77 101552011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14eca62f
YM
10156
10157 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
10158 in the current matrix if keep_current_p is non-zero.
10159
8264569d
EZ
101602011-06-04 Eli Zaretskii <eliz@gnu.org>
10161
10162 * bidi.c (bidi_level_of_next_char): Fix last change.
10163
57f97249
EZ
101642011-06-03 Eli Zaretskii <eliz@gnu.org>
10165
fec2107c 10166 Support bidi reordering of text covered by display properties.
57f97249 10167
fec2107c
EZ
10168 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
10169 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
10170 (bidi_cache_search, bidi_cache_iterator_state)
10171 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
d6d100dd
SM
10172 (bidi_level_of_next_char, bidi_move_to_visually_next):
10173 Support character positions inside a run of characters covered by a
fec2107c
EZ
10174 display string.
10175 (bidi_paragraph_init, bidi_resolve_explicit_1)
10176 (bidi_level_of_next_char): Call bidi_fetch_char and
10177 bidi_fetch_char_advance instead of FETCH_CHAR and
10178 FETCH_CHAR_ADVANCE.
10179 (bidi_init_it): Initialize new members.
10180 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
10181 definitions.
10182 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
10183 instead of using explicit *_CHAR codes.
d6d100dd
SM
10184 (bidi_resolve_explicit, bidi_resolve_weak):
10185 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
fec2107c
EZ
10186 bidirectional text is supported only in multibyte buffers.
10187 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
10188 it to initialize the frame_window_p member of struct bidi_it.
10189 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
10190 (bidi_resolve_explicit, bidi_resolve_weak)
10191 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
10192 bidi_it->nchars is non-positive.
10193 (bidi_level_of_next_char): Don't try to lookup the cache for the
10194 next/previous character if nothing is cached there yet, or if we
10195 were just reseat()'ed to a new position.
c40e2fb2 10196
0e14fe90
EZ
10197 * xdisp.c (set_cursor_from_row): Set start and stop points
10198 according to the row's direction when priming the loop that looks
10199 for the glyph on which to display cursor.
10200 (single_display_spec_intangible_p): Function deleted.
10201 (display_prop_intangible_p): Reimplement to call
10202 handle_display_spec instead of single_display_spec_intangible_p.
d6d100dd
SM
10203 Accept 3 additional arguments needed by handle_display_spec.
10204 This fixes incorrect cursor motion across display property with complex
0e14fe90
EZ
10205 values: lists, `(when COND...)' forms, etc.
10206 (single_display_spec_string_p): Support property values that are
10207 lists with the argument STRING its top-level element.
10208 (display_prop_string_p): Fix the condition for processing a
10209 property that is a list to be consistent with handle_display_spec.
fec2107c 10210 (handle_display_spec): New function, refactored from the
fc6f18ce
EZ
10211 last portion of handle_display_prop.
10212 (compute_display_string_pos): Accept additional argument
10213 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
10214 value of a `display' property is a "replacing spec".
10215 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
10216 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
10217 the display property, but just return a value indicating whether
10218 the display property will replace the characters it covers.
10219 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
10220 frame_window_p members of struct bidi_it.
d6d100dd
SM
10221 (compute_display_string_pos, compute_display_string_end):
10222 New functions.
fec2107c
EZ
10223 (push_it): Accept second argument POSITION, where pop_it should
10224 jump to continue iteration.
10225 (reseat_1): Initialize bidi_it.disp_pos.
fc6f18ce 10226
fec2107c
EZ
10227 * keyboard.c (adjust_point_for_property): Adjust the call to
10228 display_prop_intangible_p to its new signature.
fc6f18ce
EZ
10229
10230 * dispextern.h (struct bidi_it): New member frame_window_p.
fec2107c
EZ
10231 (bidi_init_it): Update prototypes.
10232 (display_prop_intangible_p): Update prototype.
d6d100dd
SM
10233 (compute_display_string_pos, compute_display_string_end):
10234 Declare prototypes.
fec2107c
EZ
10235 (struct bidi_it): New members nchars and disp_pos. ch_len is now
10236 EMACS_INT.
fc6f18ce 10237
40087514 102382011-06-02 Paul Eggert <eggert@cs.ucla.edu>
0de4bb68 10239
57f53182
PE
10240 Malloc failure behavior now depends on size of allocation.
10241 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
10242 * lisp.h: Change signatures accordingly.
10243 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
10244 All callers changed. (Bug#8762)
10245
10246 * gnutls.c: Use Emacs's memory allocators.
10247 Without this change, the gnutls library would invoke malloc etc.
10248 directly, which causes problems on non-SYNC_INPUT hosts, and which
10249 runs afoul of improving memory_full behavior. (Bug#8761)
10250 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
10251 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
10252 xfree instead of the default malloc, realloc, free.
10253 (Fgnutls_boot): No need to check for memory allocation failure,
10254 since xmalloc does that for us.
10255
ac32cd99 10256 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
3870d916
PE
10257 * category.c (hash_get_category_set):
10258 * ccl.c (ccl_driver):
10259 * charset.c (Fdefine_charset_internal):
10260 * charset.h (struct charset.hash_index):
10261 * composite.c (get_composition_id, gstring_lookup_cache)
10262 (composition_gstring_put_cache):
10263 * composite.h (struct composition.hash_index):
10264 * dispextern.h (struct image.hash):
10265 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
10266 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
10267 (hashfn_equal, hashfn_user_defined, make_hash_table)
10268 (maybe_resize_hash_table, hash_lookup, hash_put)
10269 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
10270 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
10271 (Fsxhash, Fgethash, Fputhash, Fmaphash):
10272 * image.c (make_image, search_image_cache, lookup_image)
10273 (xpm_put_color_table_h):
10274 * lisp.h (struct Lisp_Hash_Table):
0de4bb68 10275 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
ac389d0c 10276 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
3870d916 10277 for hashes and hash indexes, instead of 'unsigned' and 'int'.
40087514
PE
10278 * alloc.c (allocate_vectorlike):
10279 Check for overflow in vector size calculations.
10280 * ccl.c (ccl_driver):
10281 Check for overflow when converting EMACS_INT to int.
0de4bb68
PE
10282 * fns.c, image.c: Remove unnecessary static decls that would otherwise
10283 need to be updated by these changes.
40087514
PE
10284 * fns.c (make_hash_table, maybe_resize_hash_table):
10285 Check for integer overflow with large hash tables.
0de4bb68
PE
10286 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
10287 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
10288 (SXHASH_REDUCE): New macro.
10289 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
10290 Use it instead of discarding useful hash info with large hash values.
10291 (sxhash_float): New function.
10292 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
10293 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
40087514
PE
10294 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
10295 Rewrite to use FIXNUM_BITS, as this simplifies things.
0de4bb68
PE
10296 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
10297 Adjust signatures to match updated version of code.
10298 (consing_since_gc): Now EMACS_INT, since a single hash table can
10299 use more than INT_MAX bytes.
10300
698d32e2
DN
103012011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
10302
10303 Make it possible to build with GCC-4.6+ -O2 -flto.
10304
10305 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
10306
fd6fa53f
SM
103072011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
10308
10309 * minibuf.c (get_minibuffer, read_minibuf_unwind):
10310 Call minibuffer-inactive-mode.
10311
864db017
JB
103122011-05-31 Juanma Barranquero <lekktu@gmail.com>
10313
10314 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
10315 Update dependencies.
10316
2ad0baf4
DN
103172011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
10318
10319 * data.c (init_data): Remove code for UTS, this system is not
10320 supported anymore.
10321
4fcc2638
DN
103222011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
10323
10324 Don't force ./temacs to start in terminal mode.
10325
10326 * frame.c (make_initial_frame): Initialize faces in all cases, not
10327 only when CANNOT_DUMP is defined.
10328 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
10329
c56e0fd5
DN
103302011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
10331
10332 * dispnew.c (add_window_display_history): Use const for the string
10333 pointer. Remove declaration, not needed.
10334
333d54da 103352011-05-31 Paul Eggert <eggert@cs.ucla.edu>
9cf9f756 10336
55d4c1b2 10337 Use 'inline', not 'INLINE'.
333d54da 10338 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
55d4c1b2
PE
10339 * alloc.c, fontset.c (INLINE): Remove.
10340 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
10341 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
10342 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
10343 * gmalloc.c (register_heapinfo): Use inline unconditionally.
10344 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
10345
738db178
DN
103462011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
10347
10348 Make it possible to run ./temacs.
10349
10350 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
10351 syms_of_callproc does the same thing. Remove test for
10352 "initialized", do it in the caller.
10353 * emacs.c (main): Avoid calling set_initial_environment when dumping.
10354
620c53a6
SM
103552011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
10356
10357 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
10358 (read_minibuf): Use get_minibuffer.
10359 (syms_of_minibuf): Use DEFSYM.
10360 (Qmetadata): New var.
10361 * data.c (Qbuffer): Don't make it static.
10362 (syms_of_data): Use DEFSYM.
10363
e003a292
PE
103642011-05-31 Paul Eggert <eggert@cs.ucla.edu>
10365
10366 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
10367 (CCL_CODE_MIN): New macro.
10368
ed008a6d
PE
103692011-05-30 Paul Eggert <eggert@cs.ucla.edu>
10370
3687c2ef
PE
10371 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
10372
ed008a6d
PE
10373 * eval.c (Qdebug): Now static.
10374 * lisp.h (Qdebug): Remove decl. This reverts a part of the
10375 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
10376 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
10377
d66c4c7c
CY
103782011-05-29 Chong Yidong <cyd@stupidchicken.com>
10379
10380 * image.c: Various fixes to ImageMagick code comments.
10381 (Fimagemagick_types): Doc fix.
10382
5fbc2025
PE
103832011-05-29 Paul Eggert <eggert@cs.ucla.edu>
10384
0196f88a
PE
10385 Minor fixes prompted by GCC 4.6.0 warnings.
10386
10387 * xselect.c (converted_selections, conversion_fail_tag): Now static.
10388
5fbc2025
PE
10389 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
10390 (x_clipboard_manager_save_all): Move extern decl to ...
10391 * xterm.h: ... here, so that it can be checked for consistency.
10392
1dd3c2d9
CY
103932011-05-29 Chong Yidong <cyd@stupidchicken.com>
10394
10395 * xselect.c (x_clipboard_manager_save_frame)
10396 (x_clipboard_manager_save_all): New functions.
10397 (Fx_clipboard_manager_save): Lisp function deleted.
10398
10399 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
10400 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
10401
10402 * xterm.h: Update prototype.
10403
5ba6571d
WX
104042011-05-28 William Xu <william.xwl@gmail.com>
10405
10406 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
10407 exiting (Bug#8239).
10408
3eaff834
JM
104092011-05-28 Jim Meyering <meyering@redhat.com>
10410
e1900994 10411 Avoid a sign-extension bug in crypto_hash_function.
3eaff834
JM
10412 * fns.c (to_uchar): Define.
10413 (crypto_hash_function): Use it to convert some newly-signed
10414 variables to unsigned, to avoid sign-extension bugs. For example,
10415 without this change, (md5 "truc") would evaluate to
10416 45723a2aff78ff4fff7fff1114760e62 rather than the expected
10417 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
e1900994 10418 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
3eaff834 10419
0f6990a7
PE
104202011-05-27 Paul Eggert <eggert@cs.ucla.edu>
10421
10422 Integer overflow fixes.
c8a9ca5a 10423
08686060
PE
10424 * dbusbind.c: Serial number integer overflow fixes.
10425 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
08686060
PE
10426 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
10427 to hold a serial number that is too large for a fixnum.
10428 (Fdbus_method_return_internal, Fdbus_method_error_internal):
10429 Check for serial numbers out of range. Decode any serial number
59568bf0 10430 that was so large that it became a float. (Bug#8722)
08686060 10431
2d1fc3c7
PE
10432 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
10433 (Fdbus_call_method, Fdbus_call_method_asynchronously):
10434 Use XFASTINT rather than XUINT when numbers are nonnegative.
10435 (xd_append_arg, Fdbus_method_return_internal):
10436 (Fdbus_method_error_internal): Likewise. Also, for unsigned
10437 arguments, check that Lisp number is nonnegative, rather than
59568bf0 10438 silently wrapping negative numbers around. (Bug#8722)
30217ff0 10439 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
59568bf0 10440 (Bug#8722)
2d1fc3c7 10441
c8a9ca5a
PE
10442 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
10443
519e1d69
PE
10444 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
10445
6df6ae42 10446 ccl: Add integer overflow checks.
30569699
PE
10447 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
10448 (IN_INT_RANGE): New macros.
10449 (ccl_driver): Use them to check for integer overflow when
10450 decoding a CCL program. Many of the new checks are whether XINT (x)
10451 fits in int; it doesn't always, on 64-bit hosts. The new version
10452 doesn't catch all possible integer overflows, but it's an
847044ea 10453 improvement. (Bug#8719)
30569699 10454
c11285dc
PE
10455 * alloc.c (make_event_array): Use XINT, not XUINT.
10456 There's no need for unsigned here.
10457
fdccd48e
PE
10458 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
10459 This follows up to the 2011-05-06 change that substituted uintptr_t
10460 for EMACS_INT. This case wasn't caught back then.
10461
37910ab2
PE
10462 Rework Fformat to avoid integer overflow issues.
10463 * editfns.c: Include <float.h> unconditionally, as it's everywhere
10464 now (part of C89). Include <verify.h>.
10465 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
10466 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
10467 (Fformat): Avoid the prepass trying to compute sizes; it was only
10468 approximate and thus did not catch overflow reliably. Instead, walk
10469 through the format just once, formatting and computing sizes as we go,
10470 checking for integer overflow at every step, and allocating a larger
10471 buffer as needed. Keep track separately whether the format is
10472 multibyte. Keep only the most-recently calculated precision, rather
10473 than them all. Record whether each argument has been converted to
10474 string. Use EMACS_INT, not int, for byte and char and arg counts.
10475 Support field widths and precisions larger than INT_MAX. Avoid
10476 sprintf's undefined behavior with conversion specifications such as %#d
10477 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
10478 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
10479 formatting out-of-range floating point numbers with int
9173deec 10480 formats. (Bug#8668)
37910ab2 10481
2e6578fb
PE
10482 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
10483
0ae6bdee
PE
10484 * data.c: Avoid integer truncation in expressions involving floats.
10485 * data.c: Include <intprops.h>.
10486 (arith_driver): When there's an integer overflow in an expression
10487 involving floating point, convert the integers to floating point
10488 so that the resulting value does not suffer from catastrophic
10489 integer truncation. For example, on a 64-bit host (* 4
10490 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
10491 Do not rely on undefined behavior after integer overflow.
10492
de883a70
PE
10493 merge count_size_as_multibyte, parse_str_to_multibyte
10494 * character.c, character.h (count_size_as_multibyte):
fd6fa53f 10495 Rename from parse_str_to_multibyte; all uses changed.
de883a70
PE
10496 Check for integer overflow.
10497 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
10498 since it's now a duplicate of the other. This is more of
10499 a character than a buffer op, so better that it's in character.c.
10500 * fns.c, print.c: Adjust to above changes.
10501
2ff916cb
PE
105022011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
10503
10504 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
10505
f1b54466
PE
105062011-05-27 Paul Eggert <eggert@cs.ucla.edu>
10507
fb1ac845
PE
10508 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
10509 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
10510 (x_clipboard_manager_save): Now static.
10511 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
10512
f1b54466
PE
10513 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
10514 (crypto_hash_function): Now static.
10515 Fix pointer signedness problems. Avoid unnecessary initializations.
10516
a9f737ee
CY
105172011-05-27 Chong Yidong <cyd@stupidchicken.com>
10518
10519 * termhooks.h (Vselection_alist): Make it terminal-local.
10520
10521 * terminal.c (create_terminal): Initialize it.
10522
10523 * xselect.c: Support for clipboard managers.
10524 (Vselection_alist): Move to termhooks.h as terminal-local var.
10525 (LOCAL_SELECTION): New macro.
10526 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
10527 (symbol_to_x_atom): Remove gratuitous arg.
10528 (x_handle_selection_request, lisp_data_to_selection_data)
10529 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
620c53a6
SM
10530 (x_own_selection, x_get_local_selection, x_convert_selection):
10531 New arg, specifying work frame. Use terminal-local Vselection_alist.
a9f737ee
CY
10532 (some_frame_on_display): Delete unused function.
10533 (Fx_own_selection_internal, Fx_get_selection_internal)
10534 (Fx_disown_selection_internal, Fx_selection_owner_p)
10535 (Fx_selection_exists_p): New optional frame arg.
10536 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
10537 (x_handle_selection_clear): Don't treat other terminals with the
10538 same keyboard specially. Use the terminal-local Vselection_alist.
10539 (x_clear_frame_selections): Use Frun_hook_with_args.
10540
10541 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
10542
10543 * xterm.h: Add support for those atoms.
10544
e067f0c1
CY
105452011-05-26 Chong Yidong <cyd@stupidchicken.com>
10546
10547 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
10548 (converted_selections, conversion_fail_tag): New global variables.
10549 (x_selection_request_lisp_error): Free the above.
10550 (x_get_local_selection): Remove unnecessary code.
10551 (x_reply_selection_request): Args changed; handle arbitrary array
620c53a6
SM
10552 of converted selections stored in converted_selections.
10553 Separate the XChangeProperty and SelectionNotify steps.
e067f0c1
CY
10554 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
10555 (x_convert_selection): New function.
10556 (x_handle_selection_event): Simplify.
10557 (x_get_foreign_selection): Don't ignore incoming requests while
10558 waiting for an answer; this will fail when we implement
10559 SAVE_TARGETS, and seems unnecessary anyway.
10560 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
10561 (Vx_sent_selection_functions): Doc fix.
10562
0f4aebc0
LL
105632011-05-26 Leo Liu <sdl.web@gmail.com>
10564
10565 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
10566
e61124cd
YM
105672011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
10568
10569 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
10570
10571 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
10572 for fringe update if it has periodic bitmap.
ac389d0c 10573 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
e61124cd
YM
10574 and fringe_bitmap_periodic_p.
10575
10576 * fringe.c (get_fringe_bitmap_data): New function.
10577 (draw_fringe_bitmap_1, update_window_fringes): Use it.
10578 (update_window_fringes): Record periodicity of fringe bitmap in glyph
10579 row. Mark glyph row for fringe update if periodicity changed.
10580
10581 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
10582 for fringe update unless it has periodic bitmap.
10583
f16d9837
KH
105842011-05-25 Kenichi Handa <handa@m17n.org>
10585
10586 * xdisp.c (get_next_display_element): Set correct it->face_id for
10587 a static composition.
10588
e1b90ef6
LL
105892011-05-24 Leo Liu <sdl.web@gmail.com>
10590
10591 * deps.mk (fns.o):
10592 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
10593
10594 * fns.c (crypto_hash_function, Fsha1): New function.
10595 (Fmd5): Use crypto_hash_function.
10596 (syms_of_fns): Add Ssha1.
10597
7400048f
PE
105982011-05-22 Paul Eggert <eggert@cs.ucla.edu>
10599
10600 * gnutls.c: Remove unused macros.
10601 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
10602 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
10603 Remove macros that are defined and never used.
10604 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
10605
abb71cf4
CY
106062011-05-22 Chong Yidong <cyd@stupidchicken.com>
10607
10608 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
10609 (Fx_get_selection_internal): Minor cleanup.
10610 (Fx_own_selection_internal): Rename arguments for consistency with
10611 select.el.
10612
6307db39
PE
106132011-05-22 Paul Eggert <eggert@cs.ucla.edu>
10614
10615 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
10616
f3d4e0a4
CY
106172011-05-22 Chong Yidong <cyd@stupidchicken.com>
10618
10619 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
10620
4d8ade89
YM
106212011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
10622
10623 * dispnew.c (scrolling_window): Don't exclude the case that the
10624 last enabled row in the desired matrix touches the bottom boundary.
10625
32078c8d
GM
106262011-05-21 Glenn Morris <rgm@gnu.org>
10627
10628 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
33cf345f
GM
10629 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
10630 and add some more files.
32078c8d 10631
7285dc67
EZ
106322011-05-20 Eli Zaretskii <eliz@gnu.org>
10633
10634 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
10635 report_file_error introduced by the change from 2011-05-07.
10636
89d1bd22
PE
106372011-05-20 Paul Eggert <eggert@cs.ucla.edu>
10638
10639 * systime.h (Time): Define only if emacs is defined.
10640 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
10641 where the include path doesn't have X11/X.h by default. See
10642 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
10643
cd394be1 106442011-05-20 Kenichi Handa <handa@m17n.org>
31bfc35c
KH
10645
10646 * composite.c (find_automatic_composition): Fix previous change.
10647
b9704ad9
GM
106482011-05-20 Glenn Morris <rgm@gnu.org>
10649
10650 * lisp.mk: New file, split from Makefile.in.
10651 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
10652 (shortlisp): Remove.
10653 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
10654
4a720484
GM
106552011-05-19 Glenn Morris <rgm@gnu.org>
10656
10657 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
10658 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
10659 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
10660 (lisp): Set the order to that of loadup.el.
10661 (shortlisp): Make it a copy of $lisp.
10662 (SOME_MACHINE_LISP): Remove.
10663 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
10664 Use just $shortlisp, not $SOME_MACHINE_LISP too.
10665
a28d4396
KH
106662011-05-18 Kenichi Handa <handa@m17n.org>
10667
10668 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
10669 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
10670 (find_automatic_composition): Mostly rewrite for efficiency.
10671
a2b1fa8e
JB
106722011-05-18 Juanma Barranquero <lekktu@gmail.com>
10673
10674 * makefile.w32-in: Update dependencies.
10675
8e1f5610
CS
106762011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
10677
10678 * menu.c: Include limits.h (fixes the MS-Windows build broken by
7d7d0045 10679 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
8e1f5610 10680
7025ee00 106812011-05-18 Paul Eggert <eggert@cs.ucla.edu>
cb93f9be 10682
cdfa6eab
PE
10683 Fix some integer overflow issues, such as string length overflow.
10684
06d6db33
PE
10685 * insdel.c (count_size_as_multibyte): Check for string overflow.
10686
2b4560a8
PE
10687 * character.c (lisp_string_width): Check for string overflow.
10688 Use EMACS_INT, not int, for string indexes and lengths; in
10689 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
10690 the resulting string length overflows an EMACS_INT; instead,
10691 report a string overflow if no precision given. When checking for
10692 precision exhaustion, use a check that cannot possibly have
10693 integer overflow. (Bug#8675)
10694 * character.h (lisp_string_width): Adjust to new signature.
10695
cb93f9be
PE
10696 * alloc.c (string_overflow): New function.
10697 (Fmake_string): Use it. This doesn't change behavior, but saves
10698 a few bytes and will simplify future changes.
10699 * character.c (string_escape_byte8): Likewise.
10700 * lisp.h (string_overflow): New decl.
10701
1a1f3366
PE
10702 Fixups, following up to the user-interface timestamp change.
10703 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
10704 for UI timestamps, instead of unsigned long.
9fbd6841
PE
10705 * msdos.c (mouse_get_pos): Likewise.
10706 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
1a1f3366
PE
10707 * w32gui.h (Time): Define by including "systime.h" rather than by
10708 declaring it ourselves. (Bug#8664)
10709
d4e3e4d3
PE
10710 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
10711 * image.c (clear_image_cache): Likewise.
10712
f6a24d19
PE
10713 * term.c (term_mouse_position): Don't assume time_t wraparound.
10714
08dc5ae6
PE
10715 Be more systematic about user-interface timestamps.
10716 Before, the code sometimes used 'Time', sometimes 'unsigned long',
620c53a6
SM
10717 and sometimes 'EMACS_UINT', to represent these timestamps.
10718 This change causes it to use 'Time' uniformly, as that's what X uses.
08dc5ae6
PE
10719 This makes the code easier to follow, and makes it easier to catch
10720 integer overflow bugs such as Bug#8664.
10721 * frame.c (Fmouse_position, Fmouse_pixel_position):
10722 Use Time, not unsigned long, for user-interface timestamps.
10723 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
10724 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
10725 * keyboard.h (last_event_timestamp): Likewise.
10726 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
10727 * menu.h (xmenu_show): Likewise.
10728 * term.c (term_mouse_position): Likewise.
10729 * termhooks.h (struct input_event.timestamp): Likewise.
10730 (struct terminal.mouse_position_hook): Likewise.
10731 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
10732 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
10733 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
10734 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
10735 what it was before.
10736 * menu.h, termhooks.h: Include "systime.h", for Time.
10737
8e55734a
PE
10738 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
10739 Don't assume that the difference between two unsigned long values
10740 can fit into an integer. At this point, we know button_down_time
10741 <= event->timestamp, so the difference must be nonnegative, so
10742 there's no need to cast the result if double-click-time is
10743 nonnegative, as it should be; check that it's nonnegative, just in
10744 case. This bug is triggered when events are more than 2**31 ms
86db42d2 10745 apart (about 25 days). (Bug#8664)
8e55734a 10746
841f1b75 10747 * xselect.c (last_event_timestamp): Remove duplicate decl.
6434756c 10748 (x_own_selection): Remove needless cast to unsigned long.
841f1b75 10749
3e26f69c
PE
10750 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
10751 that always fit in int. Use a sentinel instead of a counter, to
10752 avoid a temp and to allay GCC's concerns about possible int overflow.
d230cb74
PE
10753 * frame.h (struct frame): Use int for menu_bar_items_used
10754 instead of EMACS_INT, since it always fits in int.
3e26f69c 10755
5cc152c0
PE
10756 * menu.c (grow_menu_items): Check for int overflow.
10757
d89eb65e
PE
10758 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
10759
5235bd3e
PE
10760 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
10761 Before, the code was not consistent. These values cannot exceed
10762 2**31 - 1 so there's no need to make them unsigned.
10763 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
10764 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
10765 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
10766 as modifiers.
10767 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
10768
bc827e23
PE
10769 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
10770 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
10771 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
10772 presumably because the widths might not match.
10773
78eb494e
PE
10774 * window.c (size_window): Avoid needless test at loop start.
10775
04f2d78b
CB
107762011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
10777
10778 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
10779
d2fc7e3d 107802011-05-12 Drew Adams <drew.adams@oracle.com>
e531bdff
DA
10781
10782 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
10783
d2fc7e3d 107842011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7db47798
YM
10785
10786 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
10787 `width' to `bar_area_x' and `bar_area_width', respectively.
10788 (x_scroll_run): Take account of fringe background extension.
10789
04f2d78b
CB
10790 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
10791 Rename local vars `left' and `width' to `bar_area_x' and
7db47798
YM
10792 `bar_area_width', respectively.
10793 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
10794 background extension.
10795
79b70037
GM
107962011-05-10 Jim Meyering <meyering@redhat.com>
10797
10798 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
10799
2f142cc5
JB
108002011-05-10 Juanma Barranquero <lekktu@gmail.com>
10801
10802 * image.c (Finit_image_library): Return t for built-in image types,
10803 like pbm and xbm. (Bug#8640)
10804
57679c86
AS
108052011-05-09 Andreas Schwab <schwab@linux-m68k.org>
10806
10807 * w32menu.c (set_frame_menubar): Fix submenu allocation.
10808
888c9e86
EZ
108092011-05-07 Eli Zaretskii <eliz@gnu.org>
10810
b0512a1d
EZ
10811 * w32console.c (Fset_screen_color): Doc fix.
10812 (Fget_screen_color): New function.
10813 (syms_of_ntterm): Defsubr it.
10814
7285dc67
EZ
10815 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
10816 unlink the temporary file if Fcall_process didn't create it in the
10817 first place.
10818 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
10819 child process will be redirected to a file specified with `:file'.
888c9e86
EZ
10820 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
10821 cue to call_process_cleanup not to close that handle.
10822
4d3fcc8e
BK
108232011-05-07 Ben Key <bkey76@gmail.com>
10824
10825 * makefile.w32-in: The bootstrap-temacs rule now makes use of
10826 one of two shell specific rules, either bootstrap-temacs-CMD or
10827 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
10828 to the previous implementation of the bootstrap-temacs rule.
10829 The bootstrap-temacs-CMD rule is similar to the previous
10830 implementation of the bootstrap-temacs rule except that it
10831 makes use of the ESC_CFLAGS variable instead of the CFLAGS
10832 variable.
10833
10834 These changes, along with some changes to nt/configure.bat,
10835 nt/gmake.defs, and nt/nmake.defs, are required to extend my
10836 earlier fix to add support for --cflags and --ldflags options
10837 that include quotes so that it works whether make uses cmd or
10838 sh as the shell.
10839
b4289b64
MA
108402011-05-06 Michael Albinus <michael.albinus@gmx.de>
10841
10842 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
10843 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
10844 is a constant.
10845 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
10846 a string. Handle both cases.
10847 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
10848 (Fdbus_register_method): Use Qinvalid_function.
10849
af4c0e28
JB
108502011-05-06 Juanma Barranquero <lekktu@gmail.com>
10851
10852 * makefile.w32-in: Update dependencies.
10853 (LISP_H): Add inttypes.h and stdin.h.
10854 (PROCESS_H): Add unistd.h.
10855
c51453d9
EZ
108562011-05-06 Eli Zaretskii <eliz@gnu.org>
10857
10858 * lread.c: Include limits.h (fixes the MS-Windows build broken by
10859 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
10860
8ff0ac3c 108612011-05-06 Paul Eggert <eggert@cs.ucla.edu>
c032b5f8 10862
4c4b566b
PE
10863 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
10864
aab2b9b5
PE
10865 * term.c (vfatal): Remove stray call to va_end.
10866 It's not needed and the C Standard doesn't allow it here anyway.
10867
c378da0b
PE
10868 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
10869 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
10870
288b08c7
PE
10871 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
10872 bytes.
10873
e3601888
PE
10874 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
10875
db6c0e74
PE
10876 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
10877
dd5963ea
PE
10878 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
10879
88c9450f
PE
10880 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
10881
2f9442b8
PE
10882 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
10883
c032b5f8
PE
10884 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
10885 * charset.c (Fdefine_charset_internal): Don't initialize
10886 charset.code_space[15]. The value was garbage, on hosts with
2d38271b 10887 32-bit int (Bug#8600).
a108c10b
PE
10888
10889 * lread.c (read_integer): Be more consistent with string-to-number.
10890 Use string_to_number to do the actual conversion; this avoids
10891 rounding errors and fixes some other screwups. Without this fix,
10892 for example, #x1fffffffffffffff was misread as -2305843009213693952.
10893 (digit_to_number): Move earlier, for benefit of read_integer.
10894 Return -1 if the digit is out of range for the base, -2 if it is
48e400f0 10895 not a digit in any supported base. (Bug#8602)
a108c10b 10896
ad5f9eea
PE
10897 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
10898
aec1708a
PE
10899 * dispnew.c (scrolling_window): Return 1 if we scrolled,
10900 to match comment at start of function. This also removes a
10901 GCC warning about overflow in a 32+64-bit port.
10902
47be4ab5
PE
10903 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
10904
371cac43
PE
10905 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
10906 Reported by Stefan Monnier in
10907 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
04f2d78b
CB
10908 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
10909 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
371cac43 10910
d01a7826
PE
10911 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
10912 (EMACS_UINTPTR): Likewise, with uintptr_t.
10913
7fd47d5c
PE
10914 * lisp.h: Prefer 64-bit EMACS_INT if available.
10915 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
10916 on 32-bit hosts that have 64-bit int, so that they can access
10917 large files.
122b0c86
PE
10918 However, temporarily disable this change unless the temporary
10919 symbol WIDE_EMACS_INT is defined.
7fd47d5c 10920
8727937b
PE
10921 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
10922
8ac068ac
PE
10923 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
10924 This removes an assumption that EMACS_INT and long are the same
10925 width as pointers. The assumption is true for Emacs porting targets
10926 now, but we want to make other targets possible.
10927 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
10928 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
10929 In the rest of the code, change types of integers that hold casted
10930 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
10931 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
10932 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
10933 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
10934 No need to cast type when ORing.
10935 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
10936 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
10937 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
10938 assume EMACS_INT is the same width as char *.
10939 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
10940 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
10941 Remove no-longer-needed casts.
10942 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
10943 (xg_tool_bar_help_callback, xg_make_tool_item):
10944 Use EMACS_INTPTR to hold an integer
10945 that will be cast to void *; this can avoid a GCC warning
10946 if EMACS_INT is not the same width as void *.
10947 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
10948 * xdisp.c (display_echo_area_1, resize_mini_window_1):
10949 (current_message_1, set_message_1):
10950 Use a local to convert to proper width without a cast.
10951 * xmenu.c (dialog_selection_callback): Likewise.
10952
ede49d71
PE
10953 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
10954 Also, don't assume VALBITS / RAND_BITS is less than 5,
10955 and don't rely on undefined behavior when shifting a 1 left into
10956 the sign bit.
10957 * lisp.h (get_random): Change signature to match.
10958
2f30ecd0
PE
10959 * lread.c (hash_string): Use size_t, not int, for hash computation.
10960 Normally we prefer signed values; but hashing is special, because
10961 it's better to use unsigned division on hash table sizes so that
10962 the remainder is nonnegative. Also, size_t is the natural width
10963 for hashing into memory. The previous code used 'int', which doesn't
10964 retain enough info to hash well into very large tables.
10965 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
10966
2a866e7b
PE
10967 * dbusbind.c: Don't possibly lose pointer info when converting.
10968 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
10969 Use XPNTR rather than XHASH, so that the high-order bits of
10970 the pointer aren't lost when converting through void *.
10971
51639eac
PE
10972 * eval.c (Fautoload): Don't double-shift a pointer.
10973
92394119
PE
10974 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
10975
dbdb9a7c
JB
109762011-05-06 Juanma Barranquero <lekktu@gmail.com>
10977
10978 * gnutls.c (DEF_GNUTLS_FN):
10979 * image.c (DEF_IMGLIB_FN): Make function pointers static.
10980
db7a0b4f
AS
109812011-05-05 Andreas Schwab <schwab@linux-m68k.org>
10982
10983 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
10984 marker. (Bug#8610)
10985
cd394be1 109862011-05-05 Eli Zaretskii <eliz@gnu.org>
fab624aa
EZ
10987
10988 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
10989 New version that can reserve upto 2GB of heap space.
10990
f7ff1b0f 109912011-05-05 Chong Yidong <cyd@stupidchicken.com>
45cb8994
CY
10992
10993 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
10994
639c109b
TZ
109952011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
10996
10997 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
10998 `gnutls_certificate_set_x509_key_file'.
10999
d2127135
JB
110002011-05-05 Juanma Barranquero <lekktu@gmail.com>
11001
11002 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
11003 Update dependencies.
11004
e968f4f3
JB
110052011-05-04 Juanma Barranquero <lekktu@gmail.com>
11006
11007 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
11008 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
11009 Remove unused parameter `fildes'.
11010 * process.c (read_process_output, send_process): Don't pass it.
11011
84d358f0
JB
110122011-05-04 Juanma Barranquero <lekktu@gmail.com>
11013
11014 Fix previous change: the library cache is defined in w32.c.
11015 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
11016 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
11017
0898ca10
JB
110182011-05-04 Juanma Barranquero <lekktu@gmail.com>
11019
11020 Implement dynamic loading of GnuTLS on Windows.
11021
11022 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
11023 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
11024 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
11025 Declare.
11026
11027 * gnutls.c (Qgnutls_dll): Define.
11028 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
11029 (gnutls_*): Declare function pointers.
11030 (init_gnutls_functions): New function to initialize function pointers.
11031 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
11032 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
11033 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
11034 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
11035 (emacs_gnutls_write, emacs_gnutls_read)
11036 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
11037 (Fgnutls_available_p): New function.
11038 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
11039 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
11040 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
11041
11042 * image.c: Include w32.h.
11043 (Vimage_type_cache): Delete.
11044 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
11045 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
11046 (w32_delayed_load): Move to w32.c.
11047
11048 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
11049
11050 * w32.c (QCloaded_from, Vlibrary_cache): Define.
11051 (w32_delayed_load): Move from image.c. When loading a library, record
11052 its filename in the :loaded-from property of the library id.
11053 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
11054 Initialize and staticpro them.
11055 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
11056
11057 * process.c: Include lisp.h before w32.h, not after.
11058 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
11059 instead of gnutls_record_check_pending.
11060
11061 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
11062
ff4de4aa
TZ
110632011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
11064
11065 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
11066 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
11067 as passed in.
11068
abe95abb
JD
110692011-05-03 Jan Djärv <jan.h.d@swipnet.se>
11070
11071 * xterm.c (x_set_frame_alpha): Do not set property on anything
11072 else than FRAME_X_OUTER_WINDOW (Bug#8608).
11073
e16e55d4
JB
110742011-05-02 Juanma Barranquero <lekktu@gmail.com>
11075
11076 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
11077
bafcf6a5
JB
110782011-05-02 Juanma Barranquero <lekktu@gmail.com>
11079
11080 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
11081 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
11082 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
11083 (gnutls_global_initialized, Qgnutls_bootprop_priority)
11084 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
11085 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
11086 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
11087 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
11088 (Qgnutls_bootprop_callbacks_verify): Make static.
11089
e7a6747f
AS
110902011-05-01 Andreas Schwab <schwab@linux-m68k.org>
11091
19ed11ba
AS
11092 * callproc.c: Indentation fixup.
11093
e7a6747f 11094 * sysdep.c (wait_for_termination_1): Make static.
04f2d78b
CB
11095 (wait_for_termination, interruptible_wait_for_termination):
11096 Move after wait_for_termination_1.
e7a6747f 11097
1ef14cb4
LMI
110982011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
11099
11100 * sysdep.c (interruptible_wait_for_termination): New function
11101 which is like wait_for_termination, but allows keyboard
11102 interruptions.
11103
11104 * callproc.c (Fcall_process): Add (:file "file") as an option for
11105 the STDOUT buffer.
11106 (Fcall_process_region): Ditto.
11107
330d880c
EZ
111082011-04-30 Eli Zaretskii <eliz@gnu.org>
11109
8db90b73
EZ
11110 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
11111 rather than `XVECTOR (FOO)->size'.
11112
330d880c
EZ
11113 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
11114 inttypes.h, as a gnulib replacement is used if it not available in
11115 system headers.
11116
15cbd324
EZ
111172011-04-21 Eli Zaretskii <eliz@gnu.org>
11118
11119 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
11120 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
11121 of MOST_POSITIVE_FIXNUM. (Bug#8528)
11122
11123 * coding.c (coding_alloc_by_realloc): Error out if destination
11124 will grow beyond MOST_POSITIVE_FIXNUM.
11125 (decode_coding_emacs_mule): Abort if there isn't enough place in
11126 charbuf for the composition carryover bytes. Reserve an extra
11127 space for up to 2 characters produced in a loop.
11128 (decode_coding_iso_2022): Abort if there isn't enough place in
11129 charbuf for the composition carryover bytes.
11130
111312011-04-21 Eli Zaretskii <eliz@gnu.org>
afda1437 11132
ae940cca
EZ
11133 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
11134 aborting when %lld or %lll format is passed.
11135 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
11136 %llo or %llx format is passed. (Bug#8545)
11137
03ab8921
EZ
11138 * window.c (window_scroll_line_based): Use a marker instead of
11139 simple variables to record original value of point. (Bug#7952)
11140
afda1437
EZ
11141 * doprnt.c (doprnt): Fix the case where a multibyte sequence
11142 produced by %s or %c overflows available buffer space. (Bug#8545)
11143
f76dee0c
PE
111442011-04-28 Paul Eggert <eggert@cs.ucla.edu>
11145
11146 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
283cdbef 11147 (SIZE_MAX): Move defn after all includes, as they might #define it.
f76dee0c 11148
fdc5744d
JB
111492011-04-28 Juanma Barranquero <lekktu@gmail.com>
11150
11151 * w32.c (init_environment): Warn about defaulting HOME to C:\.
11152
638f053a
JB
111532011-04-28 Juanma Barranquero <lekktu@gmail.com>
11154
11155 * keyboard.c (Qdelayed_warnings_hook): Define.
11156 (command_loop_1): Run `delayed-warnings-hook'
11157 if Vdelayed_warnings_list is non-nil.
11158 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
11159 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
11160
d178f871
EZ
111612011-04-28 Eli Zaretskii <eliz@gnu.org>
11162
11163 * doprnt.c (doprnt): Don't return value smaller than the buffer
11164 size if the message was truncated. (Bug#8545).
11165
b124fd93
JB
111662011-04-28 Juanma Barranquero <lekktu@gmail.com>
11167
11168 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
11169 (Fx_window_property): #if-0 the whole functions, not just the bodies.
11170
e810457d
PE
111712011-04-27 Paul Eggert <eggert@cs.ucla.edu>
11172
11173 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
11174
ea51cceb
JB
111752011-04-27 Juanma Barranquero <lekktu@gmail.com>
11176
11177 * makefile.w32-in: Update dependencies.
11178
94dcfacf
EZ
111792011-04-27 Eli Zaretskii <eliz@gnu.org>
11180
11181 Improve `doprnt' and its usage. (Bug#8545)
11182 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
11183 `format_end'. Remove support for %l as a conversion specifier.
11184 Don't use xrealloc. Improve diagnostics when the %l size modifier
11185 is used. Update the commentary.
11186
11187 * eval.c (verror): Simplify calculation of size_t.
11188
11189 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
11190 messages.
11191
f61f41d7
PE
111922011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
11193
11194 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
11195 change.
11196
96fb4434
PE
111972011-04-27 Paul Eggert <eggert@cs.ucla.edu>
11198
11199 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
11200 This makes this file independent of the recent pseudovector change.
11201
671875da 112022011-04-26 Paul Eggert <eggert@cs.ucla.edu>
eab3844f 11203
69e9b5a3
PE
11204 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
11205
b5f869a7 11206 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
7754e151 11207 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
8d4c3955 11208 Remove unused local.
c8926152 11209 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
080e5a8d 11210
841a1577 11211 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
04f2d78b
CB
11212 GCC 4.6.0 optimizes based on type-based alias analysis.
11213 For example, if b is of type struct buffer * and v of type struct
eab3844f
PE
11214 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
11215 != &v->size, and therefore "v->size = 1; b->size = 2; return
11216 v->size;" must therefore return 1. This assumption is incorrect
11217 for Emacs, since it type-puns struct Lisp_Vector * with many other
11218 types. To fix this problem, this patch adds a new type struct
f904488f 11219 vectorlike_header that documents the constraints on layout of vectors
eab3844f
PE
11220 and pseudovectors, and helps optimizing compilers not get fooled
11221 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
11222 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
f904488f
PE
11223 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
11224 the size member.
eab3844f
PE
11225 (XSETPVECTYPE): Rewrite in terms of new macro.
11226 (XSETPVECTYPESIZE): New macro, specifying both type and size.
11227 This is a bit clearer, and further avoids the possibility of
11228 undesirable aliasing.
11229 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
f904488f 11230 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
eab3844f
PE
11231 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
11232 since Lisp_Subr is a special case (no "next" field).
04f2d78b
CB
11233 (ASIZE): Now uses header.size rather than size.
11234 All previous uses of XVECTOR (foo)->size replaced to use this macro,
f904488f
PE
11235 to avoid the hassle of writing XVECTOR (foo)->header.size.
11236 (struct vectorlike_header): New type.
eab3844f
PE
11237 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
11238 object, to help avoid aliasing.
11239 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
11240 (SUBRP): Likewise, since Lisp_Subr is a special case.
11241 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
11242 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
11243 (struct Lisp_Hash_Table): Combine first two members into a single
f904488f 11244 struct vectorlike_header member. All uses of "size" and "next" members
eab3844f
PE
11245 changed to be "header.size" and "header.next".
11246 * buffer.h (struct buffer): Likewise.
11247 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
11248 * frame.h (struct frame): Likewise.
11249 * process.h (struct Lisp_Process): Likewise.
11250 * termhooks.h (struct terminal): Likewise.
11251 * window.c (struct save_window_data, struct saved_window): Likewise.
11252 * window.h (struct window): Likewise.
11253 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
11254 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
11255 * buffer.c (init_buffer_once): Likewise.
11256 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
11257 special case.
11258 * process.c (Fformat_network_address): Use local var for size,
11259 for brevity.
11260
0df1eac5
PE
11261 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
11262
847ab9d1 11263 Make the Lisp reader and string-to-float more consistent (Bug#8525)
452f4150
PE
11264 * data.c (atof): Remove decl; no longer used or needed.
11265 (digit_to_number): Move to lread.c.
11266 (Fstring_to_number): Use new string_to_number function, to be
11267 consistent with how the Lisp reader treats infinities and NaNs.
11268 Do not assume that floating-point numbers represent EMACS_INT
11269 without losing information; this is not true on most 64-bit hosts.
11270 Avoid double-rounding errors, by insisting on integers when
11271 parsing non-base-10 numbers, as the documentation specifies.
11272 * lisp.h (string_to_number): New decl, replacing ...
11273 (isfloat_string): Remove.
bc0a5c13 11274 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
d78050d6 11275 (read1): Do not accept +. and -. as integers; this
452f4150
PE
11276 appears to have been a coding error. Similarly, do not accept
11277 strings like +-1e0 as floating point numbers. Do not report
11278 overflow for integer overflows unless the base is not 10 which
11279 means we have no simple and reliable way to continue.
11280 Break out the floating-point parsing into a new
11281 function string_to_number, so that Fstring_to_number parses
11282 floating point numbers consistently with the Lisp reader.
04f2d78b 11283 (digit_to_number): Move here from data.c. Make it static inline.
452f4150
PE
11284 (E_CHAR, EXP_INT): Remove, replacing with ...
11285 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
11286 (string_to_number): New function, replacing isfloat_string.
11287 This function checks for valid syntax and produces the resulting
11288 Lisp float number too. Rework it so that string-to-number
bc0a5c13 11289 no longer mishandles examples like "1.0e+". Use strtoumax,
d78050d6
PE
11290 so that overflow for non-base-10 numbers is reported only when
11291 there's no portable and simple way to convert to floating point.
452f4150 11292
67769ffc
PE
11293 * textprop.c (set_text_properties_1): Rewrite for clarity,
11294 and to avoid GCC warning about integer overflow.
11295
c20db43f
PE
11296 * intervals.h (struct interval): Use EMACS_INT for members
11297 where EMACS_UINT might cause problems. See
11298 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
11299 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
11300 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
11301 All uses changed.
37aa2f85
PE
11302 (offset_intervals): Tell GCC not to worry about length overflow
11303 when negating a negative length.
c20db43f 11304
2538aa2f
PE
11305 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
11306 (overrun_check_free): Likewise.
11307
f2d3008d
PE
11308 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
11309 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
11310 word size.
11311
ec8df744
PE
11312 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
11313 (gnutls_make_error): Rename local to avoid shadowing.
11314 (gnutls_emacs_global_deinit): ifdef out; not used.
11315 (Fgnutls_boot): Use const for pointer to readonly storage.
11316 Comment out unused local. Fix pointer signedness problems.
11317
640ee02d
PE
11318 * lread.c (openp): Don't stuff size_t into an 'int'.
11319 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
11320 about possible signed overflow.
11321
6048fb2a
PE
11322 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
11323 (GDK_KEY_g): Don't define if already defined.
11324 (xg_prepare_tooltip): Avoid pointer signedness problem.
11325 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
11326
fa3c87e1
PE
11327 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
11328 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
11329
2172544b
PE
11330 * xfns.c (Fx_window_property): Simplify a bit,
11331 to make a bit faster and to avoid GCC 4.6.0 warning.
11332 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
11333
9b821a21
PE
11334 * fns.c (internal_equal): Don't assume size_t fits in int.
11335
3c616cfa
PE
11336 * alloc.c (compact_small_strings): Tighten assertion a little.
11337
c2982e87
PE
11338 Replace pEd with more-general pI, and fix some printf arg casts.
11339 * lisp.h (pI): New macro, generalizing old pEd macro to other
11340 conversion specifiers. For example, use "...%"pI"d..." rather
11341 than "...%"pEd"...".
11342 (pEd): Remove. All uses replaced with similar uses of pI.
61bdb816 11343 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
c2982e87
PE
11344 * alloc.c (check_pure_size): Don't overflow by converting size to int.
11345 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
11346 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
11347 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
11348 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
11349 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
11350 64-bit hosts.
11351 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
11352 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
11353 * print.c (safe_debug_print, print_object): Likewise.
11354 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
11355 to int.
6f04d126
PE
11356 Use pI instead of if-then-else-abort. Use %p to avoid casts,
11357 avoiding the 0 flag, which is not portable.
c2982e87
PE
11358 * process.c (Fmake_network_process): Use pI to avoid cast.
11359 * region-cache.c (pp_cache): Likewise.
11360 * xdisp.c (decode_mode_spec): Likewise.
11361 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
11362 behavior on 64-bit hosts with printf arg.
6f04d126 11363 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
c2982e87
PE
11364 (x_stop_queuing_selection_requests): Likewise.
11365 (x_get_window_property): Don't truncate byte count to an 'int'
11366 when tracing.
0b432f21 11367
5e073ec7
PE
11368 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
11369 here, since it parses constructs like leading '-' and spaces,
11370 which are not wanted; and it overflows with large numbers.
11371 Instead, simply match F[0-9]+, which is what is wanted anyway.
11372
36372bf9
PE
11373 * alloc.c: Remove unportable assumptions about struct layout.
11374 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
11375 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
11376 (allocate_vectorlike, make_pure_vector): Use the new macros,
11377 plus offsetof, to remove unportable assumptions about struct layout.
11378 These assumptions hold on all porting targets that I know of, but
11379 they are not guaranteed, they're easy to remove, and removing them
11380 makes further changes easier.
11381
0b432f21
PE
11382 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
11383 This doesn't fix a bug but makes the code clearer.
bfd1c781
PE
11384 (string_overrun_cookie): Now const. Use initializers that
11385 don't formally overflow signed char, to avoid warnings.
000098c1
PE
11386 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
11387 can cause Emacs to crash when string overrun checking is enabled.
c7bda33c
PE
11388 (allocate_buffer): Don't assume sizeof (struct buffer) is a
11389 multiple of sizeof (EMACS_INT); it need not be, if
11390 alignof(EMACS_INT) < sizeof (EMACS_INT).
d0f4e1f5 11391 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
0b432f21 11392
895009e1
JB
113932011-04-26 Juanma Barranquero <lekktu@gmail.com>
11394
11395 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
11396
6a7a1b0b
TZ
113972011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
11398
11399 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
b5f869a7 11400 supposed to be handshaking. (Bug#8556)
6a7a1b0b
TZ
11401 Reported by Paul Eggert <eggert@cs.ucla.edu>.
11402
841a1577 114032011-04-26 Daniel Colascione <dan.colascione@gmail.com>
0438ce91
DC
11404
11405 * lisp.h (Qdebug): List symbol.
895009e1 11406 * eval.c (Qdebug): Restore global linkage.
0438ce91
DC
11407 * keyboard.c (debug-on-event): New variable.
11408 (handle_user_signal): Break into debugger when debug-on-event
11409 matches the current signal symbol.
11410
f2d3ba6f
DN
114112011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
11412
11413 * alloc.c (check_sblock, check_string_bytes)
11414 (check_string_free_list): Convert to standard C.
11415
42ce4c63
TZ
114162011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
11417
11418 * w32.c (emacs_gnutls_push): Fix typo.
11419
825cd63c
EZ
114202011-04-25 Eli Zaretskii <eliz@gnu.org>
11421
fb11d64d
EZ
11422 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
11423 "cast to pointer from integer of different size".
11424
825cd63c
EZ
11425 Improve doprnt and its use in verror. (Bug#8545)
11426 * doprnt.c (doprnt): Document the set of format control sequences
11427 supported by the function. Use SAFE_ALLOCA instead of always
11428 using `alloca'.
11429
11430 * eval.c (verror): Don't limit the buffer size at size_max-1, that
11431 is one byte too soon. Don't use xrealloc; instead xfree and
11432 xmalloc anew.
11433
e061a11b
TZ
114342011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
11435
11436 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
11437 callbacks stage.
11438
11439 * gnutls.c: Renamed global_initialized to
11440 gnutls_global_initialized. Added internals for the
11441 :verify-hostname-error, :verify-error, and :verify-flags
11442 parameters of `gnutls-boot' and documented those parameters in the
11443 docstring. Start callback support.
9173deec
JB
11444 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
11445 unless a fatal error occurred. Call gnutls_alert_send_appropriate
11446 on error. Return error code.
e061a11b
TZ
11447 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
11448 (emacs_gnutls_read): Likewise.
11449 (Fgnutls_boot): Return handshake error code.
11450 (emacs_gnutls_handle_error): New function.
11451 (wsaerror_to_errno): Likewise.
11452
11453 * w32.h (emacs_gnutls_pull): Add prototype.
11454 (emacs_gnutls_push): Likewise.
11455
11456 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
11457 (emacs_gnutls_push): Likewise.
11458
114592011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
11460
11461 * process.c (wait_reading_process_output): Check if GnuTLS
11462 buffered some data internally if no FDs are set for TLS
11463 connections.
11464
11465 * makefile.w32-in (OBJ2): Add gnutls.$(O).
11466 (LIBS): Link to USER_LIBS.
11467 ($(BLD)/gnutls.$(0)): New target.
11468
fa6996bc
EZ
114692011-04-24 Eli Zaretskii <eliz@gnu.org>
11470
eb35682e
EZ
11471 * xdisp.c (handle_single_display_spec): Rename the
11472 display_replaced_before_p argument into display_replaced_p, to
11473 make it consistent with the commentary. Fix typos in the
11474 commentary.
11475
e2ad650c
EZ
11476 * textprop.c (syms_of_textprop): Remove dead code.
11477 (copy_text_properties): Delete obsolete commentary about an
11478 interface that was deleted long ago. Fix typos in the description
11479 of arguments.
11480
1b2de274
EZ
11481 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
11482 to changes in oldXMenu/XMenu.h from 2011-04-16.
11483 <menu_help_message, prev_menu_help_message>: Constify.
11484 (IT_menu_make_room): menu->help_text is now `const char **';
11485 adjust.
11486
11487 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
11488 to changes in oldXMenu/XMenu.h from 2011-04-16.
11489 (struct XMenu): Declare `help_text' `const char **'.
11490
11491 * xfaces.c <Qunspecified>: Make extern again.
11492
11493 * syntax.c: Include sys/types.h before including regex.h, as
75f1671a 11494 required by POSIX.
1b2de274 11495
762b15be
EZ
11496 * doc.c (get_doc_string): Improve the format passed to `error'.
11497
11498 * doprnt.c (doprnt): Improve commentary.
11499
11500 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
11501
11502 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
11503 them with etags.
11504
f1052e5d
EZ
11505 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
11506 changes in globals.h immediately force recompilation.
762b15be
EZ
11507 (TAGS): Depend on $(CURDIR)/m/intel386.h and
11508 $(CURDIR)/s/ms-w32.h.
11509 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
f1052e5d 11510
fa6996bc
EZ
11511 * character.c (Fchar_direction): Function deleted.
11512 (syms_of_character): Don't defsubr it.
11513 <char-direction-table>: Deleted.
11514
e6c3da20
EZ
115152011-04-23 Eli Zaretskii <eliz@gnu.org>
11516
11517 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
11518 * doprnt.c: Include limits.h.
11519 (SIZE_MAX): New macro.
04f2d78b
CB
11520 (doprnt): Return a size_t value. 2nd arg is now size_t.
11521 Many local variables are now size_t instead of int or unsigned.
e6c3da20
EZ
11522 Improve overflow protection. Support `l' modifier for integer
11523 conversions. Support %l conversion. Don't assume an EMACS_INT
11524 argument for integer conversions and for %c.
11525
11526 * lisp.h (doprnt): Restore prototype.
11527
11528 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
11529 $(SRC)/character.h.
11530
11531 * Makefile.in (base_obj): Add back doprnt.o.
11532
11533 * deps.mk (doprnt.o): Add back prerequisites.
11534 (callint.o): Depend on character.h.
11535
11536 * eval.c (internal_lisp_condition_case): Include the handler
11537 representation in the error message.
11538 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
11539 when breaking from the loop.
11540
11541 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
11542
11543 * callint.c (Fcall_interactively): When displaying error message
11544 about invalid control letter, pass the character's codepoint, not
11545 a pointer to its multibyte form. Improve display of the character
11546 in octal and display also its hex code.
11547
11548 * character.c (char_string): Use %x to display the (unsigned)
11549 codepoint of an invalid character, to avoid displaying a bogus
11550 negative value.
11551
11552 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
11553 `error', not SYMBOL_NAME itself.
11554
11555 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
11556 character arguments to `error'.
11557
11558 * charset.c (check_iso_charset_parameter): Fix incorrect argument
11559 to `error' in error message about FINAL_CHAR argument. Make sure
11560 FINAL_CHAR is a character, and use %c when it is passed as
11561 argument to `error'.
11562
4ffd0d6b 115632011-04-23 Eli Zaretskii <eliz@gnu.org>
97a93095
EZ
11564
11565 * s/ms-w32.h (localtime): Redirect to sys_localtime.
11566
11567 * w32.c: Include <time.h>.
11568 (sys_localtime): New function.
11569
4ffd0d6b 115702011-04-23 Chong Yidong <cyd@stupidchicken.com>
c17819f4
CY
11571
11572 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
11573
4ffd0d6b 11574 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
aac0c6e3 11575
4ffd0d6b 115762011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
aac0c6e3 11577
4ffd0d6b
GM
11578 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
11579 zombies (Bug#8467).
aac0c6e3 11580
04c56954
EZ
115812011-04-19 Eli Zaretskii <eliz@gnu.org>
11582
11583 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
11584 gl_state.e_property when gl_state.object is Qt.
11585
11586 * insdel.c (make_gap_larger): Remove limitation of buffer size
11587 to <= INT_MAX.
11588
16a43933
CY
115892011-04-18 Chong Yidong <cyd@stupidchicken.com>
11590
11591 * xdisp.c (lookup_glyphless_char_display)
11592 (produce_glyphless_glyph): Handle cons cell entry in
11593 glyphless-char-display.
11594 (Vglyphless_char_display): Document it.
11595
11596 * term.c (produce_glyphless_glyph): Handle cons cell entry in
11597 glyphless-char-display.
11598
4581706e
CY
115992011-04-17 Chong Yidong <cyd@stupidchicken.com>
11600
11601 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
11602
11603 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
11604
11605 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
11606 definition for no-X builds.
11607
4887c6e2 116082011-04-16 Paul Eggert <eggert@cs.ucla.edu>
764430a3 11609
fd35b6f9
PE
11610 Static checks with GCC 4.6.0 and non-default toolkits.
11611
5c1ccb01
PE
11612 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
11613
006c5daa
PE
11614 * process.c (keyboard_bit_set): Define only if SIGIO.
11615 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
11616 (send_process): Repair possible setjmp clobbering.
11617
efc736d3
PE
11618 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
11619
4e2fe2e6
PE
11620 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
11621
f97334a2
PE
11622 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
11623
4e75f29d
PE
11624 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
11625 Define only if needed.
11626
90efadd1
PE
11627 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
11628 by pacifying GCC about it. Maybe it's time to retire it?
875975e9 11629 * xfaces.c (USG, __TIMEVAL__): Likewise.
90efadd1 11630
3c647824
PE
11631 * dispextern.h (struct redisplay_interface): Rename param
11632 to avoid shadowing.
e264f262 11633 * termhooks.h (struct terminal): Likewise.
761383f4 11634 * xterm.c (xembed_send_message): Likewise.
3c647824 11635
b58c5c4a
PE
11636 * insdel.c (make_gap_smaller): Define only if
11637 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
11638
cad59032
PE
11639 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
11640 it.
11641
c339dc2e
PE
11642 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
11643 so that we aren't warned about unused symbols.
11644
91a3e27b
PE
11645 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
11646
399c71d3 11647 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
7a3fb125 11648
8ffc96f5
PE
11649 * xfns.c (x_real_positions): Mark locals as initialized.
11650
eef9bc79
PE
11651 * xmenu.c (xmenu_show): Don't use uninitialized vars.
11652
098db9dd
PE
11653 * xterm.c: Fix problems found by static analysis with other toolkits.
11654 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
dda3aedd
PE
11655 (x_dispatch_event): Declare static if USE_GTK, and
11656 define if USE_GTK || USE_X_TOOLKIT.
098db9dd 11657 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
dda3aedd 11658 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
841a1577
JB
11659 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
11660 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
098db9dd 11661
eb18f6cc
PE
11662 * xmenu.c (menu_help_callback): Pointer type fixes.
11663 Use const pointers when pointing at readonly data. Avoid pointer
11664 signedness clashes.
11665 (FALSE): Remove unused macro.
11666 (update_frame_menubar): Remove unused decl.
11667
1fe72bf8
PE
11668 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
11669
60d9e1db
PE
11670 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
11671 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
11672 (single_menu_item): Rename local to avoid shadowing.
11673
39261c26
PE
11674 * keyboard.c (make_lispy_event): Remove unused local var.
11675
018c5e19
PE
11676 * frame.c, frame.h (x_get_resource_string): Bring this back, but
11677 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
11678
63d2b86e
PE
11679 * bitmaps: Change bitmaps from unsigned char back to the X11
11680 compatible char. Avoid the old compiler warnings about
11681 out-of-range initializers by using, for example, '\xab' rather
11682 than 0xab.
11683
aefd87e1
PE
11684 * xgselect.c (xgselect_initialize): Check vs interface
11685 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
11686
bf501fb9
PE
11687 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
11688
e9829fdf
PE
11689 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
11690 to read-only memory.
11691
1086c095
PE
11692 * fns.c (vector): Remove; this old hack is no longer needed.
11693
2baccd04 11694 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
401f10cb 11695 Remove unused var.
dde42981 11696 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
2baccd04 11697
72391843 11698 * xrdb.c (x_load_resources): Omit unused local.
3565b346 11699
436c16df 11700 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
8a94ea33 11701 (x_window): Rename locals to avoid shadowing.
dc5ddd85 11702 (USG): Use the kludged USG macro, to pacify gcc.
436c16df 11703
92bb796d 11704 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
bbbef9e1 11705 (x_term_init): Remove local to avoid shadowing.
92bb796d 11706
764430a3 11707 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
4887c6e2
PE
11708
11709 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
11710 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
11711
d1dfb56c
EZ
117122011-04-16 Eli Zaretskii <eliz@gnu.org>
11713
c4354cb4
EZ
11714 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
11715
d1dfb56c
EZ
11716 Fix regex.c, syntax.c and friends for buffers > 2GB.
11717 * syntax.h (struct gl_state_s): Declare character position members
11718 EMACS_INT.
11719
11720 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
11721
04f2d78b
CB
11722 * textprop.c (verify_interval_modification, interval_of):
11723 Declare arguments EMACS_INT.
d1dfb56c
EZ
11724
11725 * intervals.c (adjust_intervals_for_insertion): Declare arguments
11726 EMACS_INT.
11727
11728 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
11729
11730 * indent.c (Fvertical_motion): Local variable it_start is now
11731 EMACS_INT.
11732
11733 * regex.c (re_match, re_match_2, re_match_2_internal)
11734 (bcmp_translate, regcomp, regexec, print_double_string)
11735 (group_in_compile_stack, re_search, re_search_2, regex_compile)
11736 (re_compile_pattern, re_exec): Declare arguments and local
11737 variables `size_t' and `ssize_t' and return values `regoff_t', as
11738 appropriate.
11739 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
11740 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
11741 <compile_stack_type>: `size' and `avail' are now `size_t'.
11742
11743 * regex.h <regoff_t>: Use ssize_t, not int.
11744 (re_search, re_search_2, re_match, re_match_2): Arguments that
11745 specify buffer/string position and length are now ssize_t and
11746 size_t. Return type is regoff_t.
11747
613052cd
BK
117482011-04-16 Ben Key <bkey76@gmail.com>
11749
11750 * nsfont.m: Fixed bugs in ns_get_family and
11751 ns_descriptor_to_entity that were caused by using free to
11752 deallocate memory blocks that were allocated by xmalloc (via
11753 xstrdup). This caused Emacs to crash when compiled with
11754 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
11755 --enable-checking=xmallocoverrun). xfree is now used to
11756 deallocate these memory blocks.
11757
4170f62f 117582011-04-15 Paul Eggert <eggert@cs.ucla.edu>
3e047f51 11759
71b41406
PE
11760 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
11761
9587a89d
PE
11762 emacs_write: Accept and return EMACS_INT for sizes.
11763 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
11764 et seq.
11765 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
11766 Accept and return EMACS_INT.
11767 (emacs_gnutls_write): Return the number of bytes written on
11768 partial writes.
11769 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
273a5f82
PE
11770 (emacs_read, emacs_write): Remove check for negative size, as the
11771 Emacs source code has been audited now.
9587a89d
PE
11772 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
11773 (emacs_read, emacs_write): Use it.
273a5f82
PE
11774 * process.c (send_process): Adjust to the new signatures of
11775 emacs_write and emacs_gnutls_write. Do not attempt to store
11776 a byte offset into an 'int'; it might overflow.
9587a89d 11777 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
273a5f82 11778
3e047f51
PE
11779 * sound.c: Don't assume sizes fit in 'int'.
11780 (struct sound_device.period_size, alsa_period_size):
9c3c56a7 11781 Return EMACS_INT, not int.
3e047f51 11782 (struct sound_device.write, vox_write, alsa_write):
9c3c56a7
PE
11783 Accept EMACS_INT, not int.
11784 (wav_play, au_play): Use EMACS_INT to store sizes and to
3e047f51
PE
11785 record read return values.
11786
cc39a9db
BK
117872011-04-15 Ben Key <bkey76@gmail.com>
11788
c9d0ec6d
JB
11789 * keyboard.c (Qundefined): Don't declare static since it is used
11790 in nsfns.m.
11791 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
11792 static since they are used in nsfont.m.
cc39a9db 11793
6c60eb9f
SM
117942011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
11795
11796 * process.c (Qprocessp): Don't declare static.
11797 * lisp.h (Qprocessp): Declare again.
11798
7990b61a
JB
117992011-04-15 Juanma Barranquero <lekktu@gmail.com>
11800
11801 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
11802
5d4cb038
PE
118032011-04-14 Paul Eggert <eggert@cs.ucla.edu>
11804
8bd7b830 11805 Improve C-level modularity by making more things 'static'.
cd64ea1d 11806
e3b27b31
PE
11807 Don't publish debugger-only interfaces to other modules.
11808 * lisp.h (safe_debug_print, debug_output_compilation_hack):
11809 (verify_bytepos, count_markers): Move decls to the only modules
11810 that need them.
11811 * region-cache.h (pp_cache): Likewise.
11812 * window.h (check_all_windows): Likewise.
11813 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
11814
5d4cb038
PE
11815 * sysdep.c (croak): Now static, if
11816 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
11817 * syssignal.h (croak): Declare only if not static.
69003fd8
PE
11818
11819 * alloc.c (refill_memory_reserve): Now static if
11820 !defined REL_ALLOC || defined SYSTEM_MALLOC.
11821 * lisp.h (refill_memory_reserve): Declare only if not static.
93ea6e8f 11822
e87b6180
PE
11823 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
11824 Define only if USE_LUCID.
11825
ac64929e
PE
11826 * xrdb.c (x_customization_string, x_rm_string): Now static.
11827
6f37259d
PE
11828 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
11829 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
11830
1683e3ab
PE
11831 * xdisp.c (draw_row_with_mouse_face): Now static.
11832 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
11833
de9c2632
PE
11834 * window.h (check_all_windows): Mark externally visible.
11835
2b96acb7
PE
11836 * window.c (window_deletion_count): Now static.
11837
11838 * undo.c: Make symbols static if they're not exported.
11839 (last_undo_buffer, last_boundary_position, pending_boundary):
11840 Now static.
11841
50436f33
PE
11842 * textprop.c (interval_insert_behind_hooks): Now static.
11843 (interval_insert_in_front_hooks): Likewise.
11844
64520e5c
PE
11845 * term.c: Make symbols static if they're not exported.
11846 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
11847 (max_frame_lines, tty_set_terminal_modes):
11848 (tty_reset_terminal_modes, tty_turn_off_highlight):
11849 (get_tty_terminal): Now static.
11850 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
11851 * termhooks.h (term_mouse_moveto): Do not declare if
8bd7b830 11852 HAVE_WINDOW_SYSTEM.
64520e5c
PE
11853 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
11854 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
11855
1fa53021
PE
11856 * sysdep.c: Make symbols static if they're not exported.
11857 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
11858 Now static.
11859 (sigprocmask_set, full_mask): Remove; unused.
11860 (wait_debugging): Mark as visible.
11861 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
11862 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
11863
d4b43b22
PE
11864 * syntax.c (syntax_temp): Define only if !__GNUC__.
11865
b7c513d0
PE
11866 * sound.c (current_sound_device, current_sound): Now static.
11867
989b29ad
PE
11868 * search.c (searchbufs, searchbuf_head): Now static.
11869
13a55a78
PE
11870 * scroll.c (scroll_cost): Remove; unused.
11871 * dispextern.h (scroll_cost): Remove decl.
11872
de68a1fc
PE
11873 * region-cache.h (pp_cache): Mark as externally visible.
11874
40ccffa6
PE
11875 * process.c: Make symbols static if they're not exported.
11876 (process_tick, update_tick, create_process, chan_process):
11877 (Vprocess_alist, proc_buffered_char, datagram_access):
11878 (fd_callback_data, send_process_frame, process_sent_to): Now static.
11879 (deactivate_process): Mark defn as static, as well as decl.
11880 * lisp.h (create_process): Remove decl.
11881 * process.h (chan_process, Vprocess_alist): Remove decls.
11882
ad64fc97
PE
11883 * print.c: Make symbols static if they're not exported.
11884 (print_depth, new_backquote_output, being_printed, print_buffer):
11885 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
11886 (print_interval, print_number_index, initial_stderr_stream):
11887 Now static.
11888 * lisp.h (Fprinc): Remove decl.
11889 (debug_output_compilation_hack): Mark as externally visible.
11890
adddb265
PE
11891 * sysdep.c (croak): Move decl from here to syssignal.h.
11892 * syssignal.h (croak): Put it here, so the API can be checked when
11893 'croak' is called from dissociate_if_controlling_tty.
11894
1717ede2
PE
11895 * minibuf.c: Make symbols static if they're not exported.
11896 (minibuf_save_list, choose_minibuf_frame): Now static.
11897 * lisp.h (choose_minibuf_frame): Remove decl.
11898
fa5fb2bc
PE
11899 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
11900
1e3890d1
PE
11901 * lread.c: Make symbols static if they're not exported.
11902 (read_objects, initial_obarray, oblookup_last_bucket_number):
11903 Now static.
11904 (make_symbol): Remove; unused.
11905 * lisp.h (initial_obarray, make_symbol): Remove decls.
11906
8a1414fa
PE
11907 * keyboard.c: Make symbols static if they're not exported.
11908 (single_kboard, recent_keys_index, total_keys, recent_keys):
11909 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
11910 (this_single_command_key_start, echoing, last_auto_save):
11911 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
11912 (command_loop, echo_now, keyboard_init_hook, help_char_p):
11913 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
11914 (Vlispy_mouse_stem, double_click_count):
11915 Now static.
11916 (force_auto_save_soon): Define only if SIGDANGER.
11917 (ignore_mouse_drag_p): Now static if
11918 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
11919 (print_help): Remove; unused.
11920 (stop_character, last_timer_event): Mark as externally visible.
11921 * keyboard.h (ignore_mouse_drag_p): Declare only if
11922 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
11923 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
11924 * lisp.h (echoing): Remove decl.
11925 (force_auto_save_soon): Declare only if SIGDANGER.
11926 * xdisp.c (redisplay_window): Simplify code, to make it more
11927 obvious that ignore_mouse_drag_p is not accessed if !defined
11928 USE_GTK && !defined HAVE_NS.
11929
93ea6e8f
PE
11930 * intervals.c: Make symbols static if they're not exported.
11931 (merge_properties_sticky, merge_interval_right, delete_interval):
11932 Now static.
11933 * intervals.h (merge_interval_right, delete_interval): Remove decls.
11934
77382fcc
PE
11935 * insdel.c: Make symbols static if they're not exported.
11936 However, leave prepare_to_modify_buffer alone. It's never
11937 called from outside this function, but that appears to be a bug.
11938 (combine_after_change_list, combine_after_change_buffer):
4889fc82 11939 (adjust_after_replace, signal_before_change): Now static.
77382fcc
PE
11940 (adjust_after_replace_noundo): Remove; unused.
11941 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
4889fc82 11942 (signal_before_change): Remove decls.
77382fcc 11943
9306c32e
PE
11944 * indent.c (val_compute_motion, val_vmotion): Now static.
11945
cd44d2eb
PE
11946 * image.c: Make symbols static if they're not exported.
11947 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
11948 if USE_GTK.
11949 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
11950 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
11951
ad9a7a06
PE
11952 * fringe.c (standard_bitmaps): Now static.
11953 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
11954
81626931
PE
11955 * frame.c: Make symbols static if they're not exported.
11956 (x_report_frame_params, make_terminal_frame): Now static.
11957 (get_frame_param): Now static, unless HAVE_NS.
11958 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
11959 (x_get_resource_string): Remove; not used.
11960 * frame.h (make_terminal_frame, x_report_frame_params):
11961 (x_get_resource_string); Remove decls.
11962 (x_fullscreen_adjust): Declare only if WINDOWSNT.
11963 * lisp.h (get_frame_param): Declare only if HAVE_NS.
11964
239f9db9
PE
11965 * font.c, fontset.c: Make symbols static if they're not exported.
11966 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
11967 (FACE_SUITABLE_FOR_CHAR_P): Use it.
11968 * font.c (font_close_object): Now static.
11969 * font.h (font_close_object): Remove.
11970 * fontset.c (FONTSET_OBJLIST): Remove.
11971 (free_realized_fontset) #if-0 the body, which does nothing.
11972 (face_suitable_for_char_p): #if-0, as it's never called.
11973 * fontset.h (face_suitable_for_char_p): Remove decl.
04f2d78b
CB
11974 * xfaces.c (face_at_string_position):
11975 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
239f9db9
PE
11976 since 0 is always ASCII.
11977
dfcf3579
PE
11978 * fns.c (weak_hash_tables): Now static.
11979
5045092b
PE
11980 * fileio.c: Make symbols static if they're not exported.
11981 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
11982 (Vwrite_region_annotation_buffers): Now static.
11983
57a96f5c
PE
11984 * eval.c: Make symbols static if they're not exported.
11985 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
11986 * lisp.h (backtrace_list): Remove decl.
11987
35f08c38
PE
11988 * emacs.c: Make symbols static if they're not exported.
11989 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
11990 (fatal_error_code, fatal_error_signal_hook, standard_args):
11991 Now static.
11992 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
11993 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
11994 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
11995 * lisp.h (fatal_error_signal_hook): Remove decl.
11996 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
11997
f44bd759
PE
11998 * editfns.c: Move a (normally-unused) function to its only use.
11999 * editfns.c, lisp.h (get_operating_system_release): Remove.
12000 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
12001 worth the hassle of breaking this out.
12002
b532497d
PE
12003 * xterm.c: Make symbols static if they're not exported.
12004 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
12005 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
12006 (x_destroy_window, x_delete_display):
12007 Now static.
12008 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
12009 (x_mouse_leave): Remove; unused.
12010 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
12011 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
12012 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
12013 Remove decls.
12014 (x_mouse_leave): Declare only if WINDOWSNT.
12015 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
12016 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
12017 USE_X_TOOLKIT.
12018
1675728f
PE
12019 * ftxfont.c: Make symbols static if they're not exported.
12020 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
12021 HAVE_FREETYPE.
12022 * font.h (ftxfont_driver): Likewise.
12023
e4cebfca
PE
12024 * xfns.c: Make symbols static if they're not exported.
12025 (x_last_font_name, x_display_info_for_name):
12026 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
12027 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
12028 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
12029 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
12030 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
12031 (last_show_tip_args): Now static.
12032 (xic_defaut_fontset, xic_create_fontsetname): Define only if
12033 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
12034 (x_screen_planes): Remove; unused.
12035 * dispextern.h (x_screen_planes): Remove decl.
12036
5bf46f05
PE
12037 * dispnew.c: Make symbols static if they're not exported.
12038 * dispextern.h (redraw_garbaged_frames, scrolling):
12039 (increment_row_positions): Remove.
12040 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
12041 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
12042 Now static.
12043 (redraw_garbaged_frames): Remove; unused.
12044
435f4c28
PE
12045 * xfaces.c: Make symbols static if they're not exported.
12046 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
12047 Remove decls.
12048 * xterm.h (defined_color): Remove decls.
12049 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
12050 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
12051 (menu_face_changed_default, defined_color, free_realized_face):
12052 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
12053 (ascii_face_of_lisp_face): Remove; unused.
12054
8524aef3
PE
12055 * xdisp.c: Make symbols static if they're not exported.
12056 * dispextern.h (scratch_glyph_row, window_box_edges):
12057 (glyph_to_pixel_coords, set_cursor_from_row):
12058 (get_next_display_element, set_iterator_to_next):
12059 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
12060 (show_mouse_face): Remove decls
12061 * frame.h (message_buf_print): Likewise.
12062 * lisp.h (pop_message, set_message, check_point_in_composition):
12063 Likewise.
12064 * xterm.h (set_vertical_scroll_bar): Likewise.
12065 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
12066 (message_buf_print, scratch_glyph_row, displayed_buffer):
12067 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
12068 (get_next_display_element, show_mouse_face, window_box_edges):
12069 (frame_to_window_pixel_xy, check_point_in_composition):
12070 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
12071 (glyph_to_pixel_coords): Remove; unused.
12072
16390cd2
PE
12073 * dired.c (file_name_completion): Now static.
12074
12075 * dbusbind.c (xd_in_read_queued_messages): Now static.
12076
a25f4dfa
PE
12077 * lisp.h (circular_list_error, FOREACH): Remove; unused.
12078 * data.c (circular_list_error): Remove.
12079
14a9c8df
PE
12080 * commands.h (last_point_position, last_point_position_buffer):
12081 (last_point_position_window): Remove decls.
12082 * keyboard.c: Make these variables static.
12083
04f2d78b
CB
12084 * coding.h (coding, code_convert_region, encode_coding_gap):
12085 Remove decls.
74ab6df5
PE
12086 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
12087 (iso_code_class, detect_coding, code_convert_region): Now static.
12088 (encode_coding_gap): Remove; unused.
12089
38dfbee1
PE
12090 * chartab.c (chartab_chars, chartab_bits): Now static.
12091
a2cb4e63
PE
12092 * charset.h (charset_iso_8859_1): Remove decl.
12093 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
12094 Now static.
12095
127198fd
PE
12096 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
12097 * ccl.c (Vccl_program_table): Now static.
12098 (check_ccl_update): Remove; unused.
12099
d85b608f
PE
12100 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
12101 * category.h: ... from here.
12102 * category.c (check_category_table, set_category_set): Now static.
12103
31cd66f3
PE
12104 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
12105 * lisp.h: Remove these decls.
12106
c358e587
PE
12107 * buffer.c (buffer_count): Remove unused var.
12108
e78aecca
PE
12109 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
12110 so that it's not optimized away.
12111 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
12112 * dispextern.h (bidi_dump_cached_states): Remove, since it's
12113 exported only to the debugger.
12114
e192d7d3 12115 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
04f2d78b 12116 * atimer.h (run_all_atimers): Remove; not exported.
e192d7d3 12117
92470028
PE
12118 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
12119 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
12120 was inaccessible from Lisp.
12121 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
12122 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
12123
244ed907
PE
12124 alloc.c: Import and export fewer symbols, and remove unused items.
12125 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
12126 is defined.
12127 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
12128 it's not optimized away by whole-program optimization.
12129 (message_enable_multibyte, free_misc): Remove.
12130 (catchlist, handlerlist, mark_backtrace):
12131 Declare only if BYTE_MARK_STACK.
12132 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
12133 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
12134 (message_enable_multibyte): Remove decl.
12135 (free_misc, interval_free_list, float_block, float_block_index):
12136 (n_float_blocks, float_free_list, cons_block, cons_block_index):
12137 (cons_free_list, last_marked_index):
12138 Now static.
12139 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
12140 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
12141 (mark_backtrace): Define only if BYTE_MARK_STACK.
12142 * xdisp.c (message_enable_multibyte): Now static.
12143
61c2b50e 12144 Declare Lisp_Object Q* variables to be 'static' if not exported.
955cbe7b
PE
12145 This makes it easier for human readers (and static analyzers)
12146 to see whether these variables are used from other modules.
12147 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
12148 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
12149 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
12150 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
12151 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
12152 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
12153 * xmenu.c, xselect.c:
12154 Declare Q* vars static if they are not used in other modules.
12155 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
12156 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
12157 Remove decls of unexported vars.
12158 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
12159
95c82688
PE
12160 * lisp.h (DEFINE_FUNC): Make sname 'static'.
12161
16a97296
PE
12162 Make Emacs functions such as Fatom 'static' by default.
12163 This makes it easier for human readers (and static analyzers)
12164 to see whether these functions can be called from other modules.
12165 DEFUN now defines a static function. To make the function external
12166 so that it can be used in other C modules, use the new macro DEFUE.
8bd7b830
PE
12167 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
12168 (Finit_image_library):
16a97296
PE
12169 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
12170 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
12171 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
12172 Remove decls, since these functions are now static.
12173 (Funintern, Fget_internal_run_time): New decls, since these functions
12174 were already external.
95c82688 12175
16a97296
PE
12176 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
12177 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
12178 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
12179 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
12180 * keyboard.c, keymap.c, lread.c:
12181 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
12182 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
12183 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
12184 Mark functions with DEFUE instead of DEFUN,
12185 if they are used in other modules.
12186 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
12187 decls for now-static functions.
12188 * buffer.h (Fdelete_overlay): Remove decl.
12189 * callproc.c (Fgetenv_internal): Mark as internal.
12190 * composite.c (Fremove_list_of_text_properties): Remove decl.
12191 (Fcomposition_get_gstring): New forward static decl.
12192 * composite.h (Fcomposite_get_gstring): Remove decl.
12193 * dired.c (Ffile_attributes): New forward static decl.
12194 * doc.c (Fdocumntation_property): New forward static decl.
12195 * eval.c (Ffetch_bytecode): New forward static decl.
12196 (Funintern): Remove extern decl; now in .h file where it belongs.
12197 * fileio.c (Fmake_symbolic_link): New forward static decl.
12198 * image.c (Finit_image_library): New forward static decl.
12199 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
12200 * intervals.h (Fprevious_property_change):
12201 (Fremove_list_of_text_properties): Remove decls.
12202 * keyboard.c (Fthis_command_keys): Remove decl.
12203 (Fcommand_execute): New forward static decl.
12204 * keymap.c (Flookup_key): New forward static decl.
12205 (Fcopy_keymap): Now static.
12206 * keymap.h (Flookup_key): Remove decl.
12207 * process.c (Fget_process): New forward static decl.
12208 (Fprocess_datagram_address): Mark as internal.
12209 * syntax.c (Fsyntax_table_p): New forward static decl.
12210 (skip_chars): Remove duplicate decl.
12211 * textprop.c (Fprevious_property_change): New forward static decl.
12212 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
12213 Now internal.
12214 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
12215 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
12216
785bbd42
PE
12217 * editfns.c (Fformat): Remove unreachable code.
12218
8b913b57
AS
122192011-04-14 Andreas Schwab <schwab@linux-m68k.org>
12220
12221 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
12222 change. (Bug#8496)
12223
a6744a35
EZ
122242011-04-13 Eli Zaretskii <eliz@gnu.org>
12225
12226 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
12227 when at ZV. (Bug#8487)
12228
e7974947
AS
122292011-04-12 Andreas Schwab <schwab@linux-m68k.org>
12230
baad03f0
AS
12231 * charset.c (Fclear_charset_maps): Use xfree instead of free.
12232 (Bug#8437)
12233 * keyboard.c (parse_tool_bar_item): Likewise.
12234 * sound.c (sound_cleanup, alsa_close): Likewise.
12235 * termcap.c (tgetent): Likewise.
12236 * xfns.c (x_default_font_parameter): Likewise.
12237 * xsettings.c (read_and_apply_settings): Likewise.
12238
e7974947
AS
12239 * alloc.c (overrun_check_malloc, overrun_check_realloc)
12240 (overrun_check_free): Protoize.
12241
28272684
PE
122422011-04-12 Paul Eggert <eggert@cs.ucla.edu>
12243
12244 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
12245 since callers should never pass a negative size.
12246 Change the signature to match that of plain 'read' and 'write'; see
12247 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
12248 * lisp.h: Update prototypes of emacs_write and emacs_read.
12249
11997c76
EZ
122502011-04-11 Eli Zaretskii <eliz@gnu.org>
12251
12252 * xdisp.c (redisplay_window): Don't try to determine the character
12253 position of the scroll margin if the window start point w->startp
e896f03c 12254 is outside the buffer's accessible region. (Bug#8468)
11997c76 12255
8a2cbd72
EZ
122562011-04-10 Eli Zaretskii <eliz@gnu.org>
12257
12258 Fix write-region and its subroutines for buffers > 2GB.
12259 * fileio.c (a_write, e_write): Modify declaration of arguments and
12260 local variables to support buffers larger than 2GB.
12261 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
12262
12263 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
12264 argument, local variables, and return value.
12265
12266 * lisp.h: Update prototypes of emacs_write and emacs_read.
12267
12268 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
12269
4073e537 122702011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 12271
1ebfdcb6
PE
12272 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
12273
b2ded58d
PE
12274 Fix more problems found by GCC 4.6.0's static checks.
12275
7d66342c
PE
12276 * xdisp.c (vmessage): Use a better test for character truncation.
12277
bbf47d44
PE
12278 * charset.c (load_charset_map): <, not <=, for optimization,
12279 and to avoid potential problems with integer overflow.
9248994d 12280 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 12281 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 12282 * editfns.c (Fformat): Likewise.
1e69125e 12283 * syntax.c (skip_chars): Likewise.
3befa583 12284
e3019616
PE
12285 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
12286 This also lets GCC 4.6.0 generate slightly better loop code.
12287
becfa255
PE
12288 * callint.c (Fcall_interactively): <, not <=, for optimization.
12289 (Fcall_interactively): Count the number of arguments produced,
12290 not the number of arguments given. This is simpler and lets GCC
12291 4.6.0 generate slightly better code.
12292
dae0cd48
PE
12293 * ftfont.c: Distingish more carefully between FcChar8 and char.
12294 The previous code passed unsigned char * to a functions like
12295 strlen and xstrcasecmp that expect char *, which does not
12296 conform to the C standard.
12297 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
12298 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
12299 char * when the C standard requires it.
12300
76032d70
PE
12301 * keyboard.c (read_char): Remove unused var.
12302
eb3f1cc8
PE
12303 * eval.c: Port to Windows vsnprintf (Bug#8435).
12304 Include <limits.h>.
12305 (SIZE_MAX): Define if the headers do not.
12306 (verror): Do not give up if vsnprintf returns a negative count.
12307 Instead, grow the buffer. This ports to Windows vsnprintf, which
12308 does not conform to C99. Problem reported by Eli Zaretskii.
12309 Also, simplify the allocation scheme, by avoiding the need for
12310 calling realloc, and removing the ALLOCATED variable.
12311
70476b54
PE
12312 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
12313
12020a9e
PE
12314 Remove invocations of doprnt, as Emacs now uses vsnprintf.
12315 But keep the doprint source code for now, as we might revamp it
12316 and use it again (Bug#8435).
ea6c7ae6
PE
12317 * lisp.h (doprnt): Remove.
12318 * Makefile.in (base_obj): Remove doprnt.o.
12319 * deps.mk (doprnt.o): Remove.
12320
5fdb398c
PE
12321 error: Print 32- and 64-bit integers portably (Bug#8435).
12322 Without this change, on typical 64-bit hosts error ("...%d...", N)
12323 was used to print both 32- and 64-bit integers N, which relied on
12324 undefined behavior.
61bdb816 12325 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
5fdb398c
PE
12326 * lisp.h (error, verror): Mark as printf-like functions.
12327 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
12328 Report overflow in size calculations when allocating printf buffer.
12329 Do not truncate output string at its first null byte.
12330 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
12331 Truncate the output at a character boundary, since vsnprintf does not
12332 do that.
12333 * charset.c (check_iso_charset_parameter): Convert internal
12334 character to string before calling 'error', since %c now has the
12335 printf meaning.
12336 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
12337 overflow when computing char to be passed to 'error'. Do not
12338 pass Lisp_Object to 'error'; pass the integer instead.
12339 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
12340 formatted with plain %d.
12341
b189fa66
PE
12342 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
12343
bff87ef0
PE
12344 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
12345
7e2cac20
PE
12346 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
12347
ce4d90b5
PE
12348 * xterm.c (x_catch_errors): Remove duplicate declaration.
12349
266c9547
PE
12350 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
12351
79c49ad2
PE
12352 * xdisp.c, lisp.h (message_nolog): Remove; unused.
12353
368f4090
JM
123542011-04-10 Jim Meyering <meyering@redhat.com>
12355
12356 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
12357 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
12358 return ssize_t not "int", and use size_t as the buffer length.
12359 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
12360 * gnutls.h: Update declarations.
12361 * process.c (read_process_output): Use ssize_t, to match.
12362 (send_process): Likewise.
12363
a32d4040
CY
123642011-04-09 Chong Yidong <cyd@stupidchicken.com>
12365
12366 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
12367
8546720e 123682011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 12369
04f2d78b
CB
12370 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
12371 Use unsigned char, to match FcChar8 type definition.
aac0c6e3 12372
8546720e
GM
12373 * xterm.c (handle_one_xevent):
12374 * xmenu.c (create_and_show_popup_menu):
12375 * xselect.c (x_decline_selection_request)
12376 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 12377
0a2f5c1a 123782011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
12379
12380 Fix some uses of `int' instead of EMACS_INT.
12381 * search.c (string_match_1, fast_string_match)
12382 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
12383 (scan_buffer, find_next_newline_no_quit)
12384 (find_before_next_newline, search_command, Freplace_match)
12385 (Fmatch_data): Make some `int' variables be EMACS_INT.
12386
12387 * xdisp.c (display_count_lines): 3rd argument and return value now
12388 EMACS_INT. All callers changed.
12389 (pint2hrstr): Last argument is now EMACS_INT.
12390
12391 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
12392 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
12393 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
12394 (decode_coding_utf_16, decode_coding_emacs_mule)
12395 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
12396 (decode_coding_ccl, decode_coding_charset)
12397 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
12398 (decode_coding_iso_2022, decode_coding_emacs_mule)
12399 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
12400 <char_offset, last_offset>: Declare EMACS_INT.
12401 (encode_coding_utf_8, encode_coding_utf_16)
12402 (encode_coding_emacs_mule, encode_invocation_designation)
12403 (encode_designation_at_bol, encode_coding_iso_2022)
12404 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
12405 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
12406 Declare EMACS_INT.
12407 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
12408 (encode_invocation_designation): Last argument P_NCHARS is now
12409 EMACS_INT.
12410 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
12411 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
12412
12413 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
12414 All users changed.
12415
12416 * ccl.c (Fccl_execute_on_string): Declare some variables
12417 EMACS_INT.
12418
8546720e 124192011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
12420
12421 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
12422
4e19a977
CS
124232011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
12424
12425 * process.c (Fformat_network_address): Doc fix.
12426
87302331
R
124272011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
12428
ee7683eb 12429 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
87302331 12430
cbb59342
CY
124312011-04-08 Chong Yidong <cyd@stupidchicken.com>
12432
12433 * keyboard.c (read_char): Call Lisp function help-form-show,
12434 instead of using internal_with_output_to_temp_buffer.
12435 (Qhelp_form_show): New var.
e0d38eeb 12436 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
12437
12438 * print.c (internal_with_output_to_temp_buffer): Function deleted.
12439
12440 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
12441
e67a13ab
CY
124422011-04-06 Chong Yidong <cyd@stupidchicken.com>
12443
04f2d78b
CB
12444 * process.c (Flist_processes): Remove to Lisp.
12445 (list_processes_1): Delete.
e67a13ab 12446
973f782d
EZ
124472011-04-06 Eli Zaretskii <eliz@gnu.org>
12448
7c106b1e
EZ
12449 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
12450
973f782d
EZ
12451 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
12452
41cf7d1a 124532011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 12454
ca23cc88
PE
12455 Fix more problems found by GCC 4.6.0's static checks.
12456
f390e2d5
PE
12457 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
12458
42eea0d0
PE
12459 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
12460
b69769da 12461 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 12462
f9541e84
PE
12463 * xdisp.c (vmessage): Mark as a printf-like function.
12464
13841b55
PE
12465 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
12466
c136c10f
PE
12467 * sound.c (sound_warning): Don't crash if arg contains a printf format.
12468
5e2d4a30
PE
12469 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
12470 printf-like functions.
12471 (tiff_load): Add casts to remove these marks before passing them
12472 to system-supplied API.
12473
583f48b9
PE
12474 * eval.c (Fsignal): Remove excess argument to 'fatal'.
12475
b25d760e
PE
12476 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
12477 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
12478 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
12479 directly, rather than having caller test rule sign. This avoids
12480 some unnecessary tests.
12481 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
12482 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
12483 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 12484
bc7b6697 12485 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 12486 (xfont_open): Avoid unnecessary tests.
bc7b6697 12487
27ccc379
PE
12488 * composite.c (composition_gstring_put_cache): Use unsigned integer.
12489
dcd5c89a
PE
12490 * composite.h, composite.c (composition_gstring_put_cache):
12491 Use EMACS_INT, not int, for length.
12492
b13a45c6
PE
12493 * composite.h (COMPOSITION_DECODE_REFS): New macro,
12494 breaking out part of COMPOSITION_DECODE_RULE.
12495 (COMPOSITION_DECODE_RULE): Use it.
12496 * composite.c (get_composition_id): Remove unused local vars,
12497 by using the new macro.
12498
1e792e4d
PE
12499 * textprop.c (set_text_properties_1): Change while to do-while,
12500 since the condition is always true at first.
12501
dc6c6455 12502 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
12503 (interval_deletion_adjustment): Return unsigned value.
12504 All uses changed.
dc6c6455 12505
aba7731a
PE
12506 * process.c (list_processes_1, create_pty, read_process_output):
12507 (exec_sentinel): Remove vars that were set but not used.
afd4052b 12508 (create_pty): Remove unnecessary "volatile"s.
bc57d757 12509 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 12510 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 12511 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 12512
fdfc4bf3
PE
12513 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
12514
fca8fe46 12515 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 12516 (update_syntax_table): Use unsigned instead of int.
fca8fe46 12517
06a0259a 12518 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 12519 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 12520 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 12521
e7b9e80f
PE
12522 * print.c (print_error_message): Avoid int overflow.
12523
56201685
PE
12524 * font.c (font_list_entities): Redo for clarity,
12525 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
12526
78834453 12527 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 12528 (font_score): Avoid potential overflow in diff calculation.
78834453 12529
0bc0b309 12530 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 12531 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 12532
e610eaca
PE
12533 * eval.c (funcall_lambda): Rename local to avoid shadowing.
12534
b895abce
PE
12535 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
12536 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
12537 can always succeed if overflow has undefined behavior.
12538
1f1d9321 12539 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 12540 (wordify): Omit three unnecessary tests.
1f1d9321 12541
c59478bc
PE
12542 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
12543 All callers changed. This avoids the need for an unused var.
12544
79b73827
PE
12545 * casefiddle.c (casify_region): Remove var that is set but not used.
12546
a4db5dfe
PE
12547 * dired.c (file_name_completion): Remove var that is set but not used.
12548
43aae36e
PE
12549 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
12550
2a47c44d 12551 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 12552 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 12553
a37c69bf
PE
12554 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
12555 Check for integer overflow on size calculations.
12556
328ab8e7
PE
12557 * buffer.c (Fprevious_overlay_change): Remove var that is set
12558 but not used.
12559
e5a2a5cb
PE
12560 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
12561 Remove vars that are set but not used.
8d84a6eb 12562 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 12563 (timer_check_2): Mark vars as initialized.
e5a2a5cb 12564
a60e5f68
PE
12565 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
12566
f661cb61 12567 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 12568 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 12569
f0397f5a
PE
12570 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
12571 that are set but not used.
12572
8664db06 12573 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 12574 if XCreateBitmapFromData fails (Bug#8410).
8664db06 12575
6abdaa4a
PE
12576 * xselect.c (x_get_local_selection, x_handle_property_notify):
12577 Remove vars that are set but not used.
12578
0ce7538d 12579 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 12580 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 12581
9ae848fc
PE
12582 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
12583 Remove var that is set but not used.
0b918413
PE
12584 (scroll_bar_windows_size): Now size_t, not int.
12585 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
12586 Check for overflow.
9ae848fc 12587
a5a62657
PE
12588 * xfaces.c (realize_named_face): Remove vars that are set but not used.
12589 (map_tty_color) [!defined MSDOS]: Likewise.
12590
5c5cdd39
PE
12591 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
12592
66ebf983
PE
12593 * coding.c: Remove vars that are set but not used.
12594 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
12595 All callers changed.
12596 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
12597 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
12598 (decode_coding_charset): Remove vars that are set but not used.
12599
1be4d761
PE
12600 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
12601 that is set but not used.
12602
47553fa8
PE
12603 * print.c (print_object): Remove var that is set but not used.
12604
1f7196bf 12605 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
12606 The gnulib version avoids calling malloc in the usual case,
12607 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
12608 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
12609 * filelock.c (current_lock_owner): Likewise.
12610 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
12611 * sysdep.c: Include allocator.h, careadlinkat.h.
12612 (emacs_no_realloc_allocator): New static constant.
12613 (emacs_readlink): New function.
fdb61804
PE
12614 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
12615 ../lib/careadlinkat.h.
d1fdcab7 12616
f84c17c7
SM
126172011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
12618
12619 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
12620 first non-nil return value).
12621
ef3862ad
JD
126222011-04-03 Jan Djärv <jan.h.d@swipnet.se>
12623
12624 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
12625 if not defined (Bug#8403).
12626
376a7006
JB
126272011-04-02 Juanma Barranquero <lekktu@gmail.com>
12628
12629 * xdisp.c (display_count_lines): Remove parameter `start',
12630 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
12631 (get_char_face_and_encoding): Remove parameter `multibyte_p',
12632 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
12633 (fill_stretch_glyph_string): Remove parameters `row' and `area',
12634 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
12635 and thereabouts. All callers changed.
12636 (get_per_char_metric): Remove parameter `f', unused since
12637 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
12638
6ca3801d
JM
126392011-04-02 Jim Meyering <meyering@redhat.com>
12640
12641 do not dereference NULL upon failed strdup
12642 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
12643 (ns_get_family): Likewise.
12644
d8e2b5ba
JB
126452011-04-02 Juanma Barranquero <lekktu@gmail.com>
12646
12647 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
12648
8c74fcbd
JD
126492011-04-02 Jan Djärv <jan.h.d@swipnet.se>
12650
12651 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
12652 later (Bug#8403).
12653
7200d79c
SM
126542011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
12655
03408648 12656 Add lexical binding.
7200d79c 12657
03408648
SM
12658 * window.c (Ftemp_output_buffer_show): New fun.
12659 (Fsave_window_excursion):
12660 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
12661
12662 * lread.c (lisp_file_lexically_bound_p): New function.
12663 (Fload): Bind Qlexical_binding.
12664 (readevalloop): Remove `evalfun' arg.
12665 Bind Qinternal_interpreter_environment.
12666 (Feval_buffer): Bind Qlexical_binding.
12667 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
12668 Mark as dynamic.
12669 (syms_of_lread): Declare `lexical-binding'.
12670
12671 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
12672
12673 * keyboard.c (eval_dyn): New fun.
12674 (menu_item_eval_property): Use it.
ca105506
SM
12675
12676 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 12677
03408648
SM
12678 * fns.c (concat, mapcar1): Accept byte-code-functions.
12679
12680 * eval.c (Fsetq): Handle lexical vars.
12681 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
12682 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
12683 (FletX, Flet): Obey lexical binding.
12684 (Fcommandp): Handle closures.
12685 (Feval): New `lexical' arg.
12686 (eval_sub): New function extracted from Feval. Use it almost
12687 everywhere where Feval was used. Look up vars in lexical env.
12688 Handle closures.
12689 (Ffunctionp): Move from subr.el.
12690 (Ffuncall): Handle closures.
12691 (apply_lambda): Remove `eval_flags'.
12692 (funcall_lambda): Handle closures and new byte-code-functions.
12693 (Fspecial_variable_p): New function.
12694 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
12695 but without exporting it to Lisp.
23aba0ea 12696
23aba0ea 12697 * doc.c (Fdocumentation, store_function_docstring):
03408648 12698 * data.c (Finteractive_form): Handle closures.
23aba0ea 12699
03408648
SM
12700 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
12701 interactive spec.
ba83908c 12702
04f2d78b
CB
12703 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
12704 New byte-codes.
03408648
SM
12705 (exec_byte_code): New function extracted from Fbyte_code to handle new
12706 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 12707
03408648 12708 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 12709
03408648 12710 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 12711
e2abce01
JB
127122011-03-31 Juanma Barranquero <lekktu@gmail.com>
12713
12714 * xdisp.c (redisplay_internal): Fix prototype.
12715
63696a73 127162011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 12717
63696a73 12718 * xdisp.c (SCROLL_LIMIT): New macro.
04f2d78b
CB
12719 (try_scrolling): Use it when setting scroll_limit.
12720 Limit scrolling to 100 screen lines.
63696a73
EZ
12721 (redisplay_window): Even when falling back on "recentering",
12722 position point in the window according to scroll-conservatively,
12723 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
12724
12725 (try_scrolling): When point is above the window, allow searching
12726 as far as scroll_max, or one screenful, to compute vertical
12727 distance from PT to the scroll margin position. This prevents
12728 try_scrolling from unnecessarily failing when
12729 scroll-conservatively is set to a value slightly larger than the
12730 window height. Clean up the case of PT below the margin at bottom
12731 of window: scroll_max can no longer be INT_MAX. When aggressive
12732 scrolling is in use, don't let point enter the opposite scroll
12733 margin as result of the scroll.
12734 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
12735 threshold of 100 lines for never-recentering scrolling.
12736
e4cc2dfc
JB
127372011-03-31 Juanma Barranquero <lekktu@gmail.com>
12738
12739 * dispextern.h (move_it_by_lines):
12740 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
12741 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
12742 (message_log_check_duplicate): Remove parameters `prev_bol' and
12743 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
12744 (redisplay_internal): Remove parameter `preserve_echo_area',
12745 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
12746
12747 * indent.c (Fvertical_motion):
12748 * window.c (window_scroll_pixel_based, Frecenter):
12749 Don't pass `need_y_p' to `move_it_by_lines'.
12750
1c470562
SM
127512011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
12752
44f230aa
SM
12753 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
12754 steal a few bits to be more compact.
12755 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
12756 Remove unneeded casts.
12757
1c470562
SM
12758 * bytecode.c (Fbyte_code): CAR and CDR can GC.
12759
888adce9
ZK
127602011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
12761
12762 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
12763 binding" message (bug#7967).
12764
f838ed7b
PE
127652011-03-30 Paul Eggert <eggert@cs.ucla.edu>
12766
77861b95
PE
12767 Fix more problems found by GCC 4.6.0's static checks.
12768
de6dbc14
PE
12769 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
12770 Remove unused local var.
12771
f838ed7b
PE
12772 * editfns.c (Fmessage_box): Remove unused local var.
12773
792c7b2b
PE
12774 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
12775 (note_mode_line_or_margin_highlight, note_mouse_highlight):
12776 Omit unused local vars.
c499e557 12777 * window.c (shrink_windows): Omit unused local var.
b01a1c29 12778 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
12779 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
12780 Omit unused local var.
12781
ba0165e1
PE
12782 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
12783 Don't assume string length fits in int.
32ad8845 12784 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 12785 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 12786
3c59b4c9
PE
12787 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
12788 instead of alloca (Bug#8344).
12789
a3eed478 12790 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 12791 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 12792
eb4d412d
PE
12793 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
12794
1658b401
PE
12795 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
12796 concerns.
12797
12798 * term.c (produce_glyphless_glyph): Remove unnecessary test.
12799
12800 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 12801
9a2c6e05
PE
12802 * keyboard.c (syms_of_keyboard): Use the same style as later
12803 in this function when indexing through an array. This also
12804 works around GCC bug 48267.
12805
03d0a109
PE
12806 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
12807
44f730c8
PE
12808 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
12809
fe75f926
PE
12810 * chartab.c (sub_char_table_ref_and_range): Redo for slight
12811 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
12812
ffa8c828
PE
12813 * keyboard.c, keyboard.h (num_input_events): Now size_t.
12814 This avoids undefined behavior on integer overflow, and is a bit
12815 more convenient anyway since it is compared to a size_t variable.
12816
c5101a77
PE
12817 Variadic C functions now count arguments with size_t, not int.
12818 This avoids an unnecessary limitation on 64-bit machines, which
12819 caused (substring ...) to crash on large vectors (Bug#8344).
12820 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
12821 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 12822 All variadic functions and their callers changed accordingly.
c5101a77
PE
12823 (struct gcpro.nvars): Now size_t, not int. All uses changed.
12824 * data.c (arith_driver, float_arith_driver): Likewise.
12825 * editfns.c (general_insert_function): Likewise.
12826 * eval.c (struct backtrace.nargs, interactive_p)
12827 (internal_condition_case_n, run_hook_with_args, apply_lambda)
12828 (funcall_lambda, mark_backtrace): Likewise.
12829 * fns.c (concat): Likewise.
12830 * frame.c (x_set_frame_parameters): Likewise.
12831 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
12832 0 if not found, not -1. All callers changed.
12833
dd3f25f7
PE
12834 * alloc.c (garbage_collect): Don't assume stack size fits in int.
12835 (stack_copy_size): Now size_t, not int.
12836 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
12837
461c2ab9
JB
128382011-03-28 Juanma Barranquero <lekktu@gmail.com>
12839
12840 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
12841 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
12842 All callers changed.
12843
12844 * lisp.h (multibyte_char_to_unibyte):
12845 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
12846 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
12847 * character.h (CHAR_TO_BYTE8):
12848 * cmds.c (internal_self_insert):
12849 * editfns.c (general_insert_function):
12850 * keymap.c (push_key_description):
12851 * search.c (Freplace_match):
12852 * xdisp.c (message_dolog, set_message_1): All callers changed.
12853
f6d62986
SM
128542011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
12855
12856 * keyboard.c (safe_run_hook_funcall): New function.
12857 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
12858 don't set the hook to nil, but remove the offending function instead.
12859 (Qcommand_hook_internal): Remove, unused.
12860 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
12861 Vcommand_hook_internal.
12862
12863 * eval.c (enum run_hooks_condition): Remove.
12864 (funcall_nil, funcall_not): New functions.
12865 (run_hook_with_args): Call each function through a `funcall' argument.
12866 Remove `cond' argument, now redundant.
12867 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
12868 (Frun_hook_with_args_until_failure): Adjust accordingly.
12869 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
12870
1db5b1ad
JB
128712011-03-28 Juanma Barranquero <lekktu@gmail.com>
12872
12873 * dispextern.h (string_buffer_position): Remove declaration.
12874
12875 * print.c (strout): Remove parameter `multibyte', unused since
12876 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
12877
12878 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
12879 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
12880 All callers changed.
12881
12882 * w32.c (_wsa_errlist): Use braces for struct initializers.
12883
12884 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
12885 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
12886 All callers changed.
12887 (string_buffer_position): Likewise. Also, make static (it's never
12888 used outside xdisp.c).
12889 (cursor_row_p): Remove parameter `w', unused since
12890 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
12891 (decode_mode_spec): Remove parameter `precision', introduced during
12892 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
12893 All callers changed.
12894
5ffb62aa
JD
128952011-03-27 Jan Djärv <jan.h.d@swipnet.se>
12896
12897 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
12898
461c2ab9 128992011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
12900
12901 * nsterm.m (ns_menu_bar_is_hidden): New variable.
12902 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
12903 (ns_update_auto_hide_menu_bar): New functions.
12904 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
12905 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
12906 ns_constrain_all_frames.
12907 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
12908 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
12909
5c380ffb
JD
129102011-03-27 Jan Djärv <jan.h.d@swipnet.se>
12911
12912 * nsmenu.m (runDialogAt): Remove argument to timer_check.
12913
9af30bdf
GM
129142011-03-27 Glenn Morris <rgm@gnu.org>
12915
12916 * syssignal.h: Replace RETSIGTYPE with void.
12917 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
12918 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
12919 Replace SIGTYPE with void everywhere.
12920 * s/usg5-4-common.h (SIGTYPE): Remove definition.
12921 * s/template.h (SIGTYPE): Remove commented out definition.
12922
e2abce01
JB
129232011-03-26 Eli Zaretskii <eliz@gnu.org>
12924
12925 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
12926 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
12927
f868cd8a
JB
129282011-03-26 Juanma Barranquero <lekktu@gmail.com>
12929
59eb0929
JB
12930 * w32.c (read_unc_volume): Use parameter `henum', instead of
12931 global variable `wget_enum_handle'.
12932
12933 * keymap.c (describe_vector): Remove parameters `indices' and
12934 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
12935 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
12936
f868cd8a
JB
12937 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
12938
12939 * keyboard.c (timer_check): Remove parameter `do_it_now',
12940 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
12941 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
12942 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
12943
12944 * keyboard.c (read_char):
12945 * w32menu.c (w32_menu_display_help):
12946 * xmenu.c (show_help_event, menu_help_callback):
12947 Adjust calls to `show_help_echo'.
12948
12949 * gtkutil.c (xg_maybe_add_timer):
12950 * keyboard.c (readable_events):
12951 * process.c (wait_reading_process_output):
12952 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
12953
12954 * insdel.c (adjust_markers_gap_motion):
12955 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
12956 (gap_left, gap_right): Don't call it.
12957
2ecf6fdb
CY
129582011-03-25 Chong Yidong <cyd@stupidchicken.com>
12959
12960 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
12961 incurred during fontification.
12962
6b1f9ba4
JB
129632011-03-25 Juanma Barranquero <lekktu@gmail.com>
12964
12965 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
12966 (DEFVAR_PER_BUFFER): Don't pass it.
12967
12968 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
12969 (scrolling_window): Don't pass it.
12970
0f4a96b5
JB
129712011-03-25 Juanma Barranquero <lekktu@gmail.com>
12972
12973 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
12974
12975 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
12976 and `suffix'.
12977 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
12978 of variables specific to SELinux and computation of `encoded_absname'.
12979
12980 * image.c (XPutPixel): Remove unused variable `height'.
12981
12982 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
12983
12984 * unexw32.c (get_section_info): Remove unused variable `section'.
12985
12986 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
12987 (system_process_attributes): Remove unused variable `sess'.
12988 (sys_read): Remove unused variable `err'.
12989
12990 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
12991 (w32_wnd_proc): Remove unused variable `isdead'.
12992 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
12993 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
12994 (x_create_tip_frame): Remove unused variable `tem'.
12995
12996 * w32inevt.c (w32_console_read_socket):
12997 Remove unused variable `no_events'.
12998
12999 * w32term.c (x_draw_composite_glyph_string_foreground):
13000 Remove unused variable `width'.
13001
1149507c
JB
130022011-03-24 Juanma Barranquero <lekktu@gmail.com>
13003
13004 * w32term.c (x_set_glyph_string_clipping):
13005 Don't pass uninitialized region to CombineRgn.
13006
9c88f339
JB
130072011-03-23 Juanma Barranquero <lekktu@gmail.com>
13008
13009 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
13010 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
13011 (Fx_close_connection): Remove unused variable `i'.
13012
13013 * w32font.c (w32font_draw): Return number of glyphs.
13014 (w32font_open_internal): Remove unused variable `i'.
13015 (w32font_driver): Add missing initializer.
13016
13017 * w32menu.c (utf8to16): Remove unused variable `utf16'.
13018 (fill_in_menu): Remove unused variable `items_added'.
13019
13020 * w32term.c (last_mouse_press_frame): Remove static global variable.
13021 (w32_clip_to_row): Remove unused variable `f'.
13022 (x_delete_terminal): Remove unused variable `i'.
13023
13024 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
13025 (NOTHING): Remove unused static global variable.
13026 (uniscribe_check_otf): Remove unused variable `table'.
13027 (uniscribe_font_driver): Add missing initializers.
13028
dee091a3
JD
130292011-03-23 Julien Danjou <julien@danjou.info>
13030
13031 * term.c (Fsuspend_tty, Fresume_tty):
13032 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
13033 * window.c (temp_output_buffer_show):
13034 * insdel.c (signal_before_change):
13035 * frame.c (Fhandle_switch_frame):
13036 * fileio.c (Fdo_auto_save):
13037 * emacs.c (Fkill_emacs):
13038 * editfns.c (save_excursion_restore):
13039 * cmds.c (internal_self_insert):
13040 * callint.c (Fcall_interactively):
13041 * buffer.c (Fkill_all_local_variables):
13042 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
13043 Use Frun_hooks.
0f4a96b5 13044 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
e9fce1ac 13045 unconditionally since it does the check itself.
dee091a3 13046
2c520ab5 130472011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 13048
c9c49752
PE
13049 Fix more problems found by GCC 4.5.2's static checks.
13050
8abc3f12
PE
13051 * coding.c (encode_coding_raw_text): Avoid unnecessary test
13052 the first time through the loop, since we know p0 < p1 then.
13053 This also avoids a gcc -Wstrict-overflow warning.
13054
a2d26660
PE
13055 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
13056 leading to a memory leak, possible in functions like
13057 load_charset_map_from_file that can allocate an unbounded number
b12ef411 13058 of objects (Bug#8318).
a2d26660 13059
916c72e9
PE
13060 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
13061 that could (at least in theory) be that large.
13062
19ab8a18
PE
13063 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
13064 This is less likely to overflow, and avoids undefined behavior if
13065 overflow does occur. All callers changed. Use strtoul to scan
13066 for the unsigned long integer.
b7cbbd6f
PE
13067 (pint2hrstr): Simplify and tune code slightly.
13068 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 13069
f0641eff
PE
13070 * scroll.c (do_scrolling): Work around GCC bug 48228.
13071 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
13072
7f650bb9
PE
13073 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
13074 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
13075 (validate_x_resource_name): Simplify count usage.
13076 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 13077
37dd57d1
PE
13078 * fileio.c (Fcopy_file): Report error if fchown or fchmod
13079 fail (Bug#8306).
81e56e61 13080
699979fc 13081 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 13082
401bf9b4
PE
13083 * process.c (Fmake_network_process): Use socklen_t, not int,
13084 where POSIX says socklen_t is required in portable programs.
13085 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 13086 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
13087 (Fmake_network_process, server_accept_connection):
13088 (wait_reading_process_output, read_process_output):
13089 Likewise.
13090
b93aacde
PE
13091 * process.c: Rename or move locals to avoid shadowing.
13092 (list_processes_1, Fmake_network_process):
13093 (read_process_output_error_handler, exec_sentinel_error_handler):
13094 Rename or move locals.
4dc343ee 13095 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 13096 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 13097 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 13098 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 13099 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 13100
af8a867c 13101 Make tparam.h and terminfo.c consistent.
44f230aa
SM
13102 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
13103 Include tparam.h instead, since it declares them.
af8a867c
PE
13104 * cm.h (PC): Remove extern decl; tparam.h now does this.
13105 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
13106 * terminfo.c: Include tparam.h, to check interfaces.
13107 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
13108 (tparam): Adjust signature to match interface in tparam.h;
13109 this removes some undefined behavior. Check that outstring and len
13110 are zero, which they always are with Emacs.
13111 * tparam.h (PC, BC, UP): New extern decls.
13112
0248044d 13113 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 13114 (xftfont_open): Rename locals to avoid shadowing.
0248044d 13115
8ff096c1 13116 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
13117 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
13118 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 13119 (ftfont_list): Remove unused local.
49eaafba
PE
13120 (get_adstyle_property, ftfont_pattern_entity):
13121 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
13122 Rename locals to avoid shadowing.
8ff096c1 13123
e2be39f6
PE
13124 * xfont.c (xfont_list_family): Mark var as initialized.
13125
c9735e30
PE
13126 * xml.c (make_dom): Now static.
13127
8f5201ae
PE
13128 * composite.c (composition_compute_stop_pos): Rename local to
13129 avoid shadowing.
b246f932
PE
13130 (composition_reseat_it): Remove unused locals.
13131 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 13132 (composition_update_it): Mark var as initialized.
11b61122
PE
13133 (find_automatic_composition): Mark vars as initialized,
13134 with a FIXME (Bug#8290).
8f5201ae 13135
760fbc2c
PE
13136 character.h: Rename locals to avoid shadowing.
13137 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
13138 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
13139 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
13140 (BUF_DEC_POS): Be more systematic about renaming local temporaries
13141 to avoid shadowing.
13142
ff08eb85
PE
13143 * textprop.c (property_change_between_p): Remove; unused.
13144
fc7bf025
PE
13145 * intervals.c (interval_start_pos): Now static.
13146
235d7abc
PE
13147 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
13148
44f230aa
SM
13149 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
13150 Rename locals to avoid shadowing.
3e7d6594 13151
50060332
PE
13152 * sound.c (wav_play, au_play, Fplay_sound_internal):
13153 Fix pointer signedness.
d01f234b 13154 (alsa_choose_format): Remove unused local var.
c83b8872
PE
13155 (wav_play): Initialize a variable to 0, to prevent undefined
13156 behavior (Bug#8278).
50060332 13157
c4fc4e30
PE
13158 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
13159
918436ed
PE
13160 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
13161
c939f91b
PE
13162 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
13163 clobbering (Bug#8298).
b9c7f648
PE
13164 * sysdep.c (sys_subshell): Likewise.
13165 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 13166
6bd8c144
PE
13167 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
13168 This should get cleaned up, so that child_setup has the
13169 same signature on all platforms.
13170
7710357c 13171 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 13172 (relocate_fd): Rename locals to avoid shadowing.
7710357c 13173
c59da222
CY
131742011-03-22 Chong Yidong <cyd@stupidchicken.com>
13175
13176 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
13177 not to be necessary, and produces flickering.
13178
66b87493
GM
131792011-03-20 Glenn Morris <rgm@gnu.org>
13180
13181 * config.in: Remove file.
13182
45b6f6d5
JB
131832011-03-20 Juanma Barranquero <lekktu@gmail.com>
13184
13185 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
13186 are now in src/globals.h.
13187 (syms_of_minibuf): Remove spurious & from previous change.
13188
cd394be1 131892011-03-20 Leo Liu <sdl.web@gmail.com>
3ec03f7e
LL
13190
13191 * minibuf.c (completing-read-function): New variable.
13192 (completing-read-default): Rename from completing-read.
13193 (completing-read): Call completing-read-function.
13194
b14e3e21
CY
131952011-03-19 Juanma Barranquero <lekktu@gmail.com>
13196
13197 * xfaces.c (Fx_load_color_file):
13198 Read color file from absolute filename (bug#8250).
13199
f2b726e6
JB
132002011-03-19 Juanma Barranquero <lekktu@gmail.com>
13201
13202 * makefile.w32-in: Update dependencies.
13203
09f6ff02
EZ
132042011-03-17 Eli Zaretskii <eliz@gnu.org>
13205
13206 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
13207
29a6015a
PE
132082011-03-17 Paul Eggert <eggert@cs.ucla.edu>
13209
a3a6c54e
PE
13210 Fix more problems found by GCC 4.5.2's static checks.
13211
b766f867
PE
13212 * process.c (make_serial_process_unwind, send_process_trap):
13213 (sigchld_handler): Now static.
13214
be02381c
PE
13215 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
13216 That way, the code declares only the vars that it needs.
13217 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
13218 * s/cygwin.h (PTY_ITERATION): Likewise.
13219 * s/darwin.h (PTY_ITERATION): Likewise.
13220 * s/gnu-linux.h (PTY_ITERATION): Likewise.
13221
57048744
PE
13222 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
13223 * process.c (allocate_pty): Don't declare stb unless it's needed.
13224
7914961c 13225 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
13226 (CONSTANTLIM): Remove; unused.
13227 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
13228 Define only if needed.
7914961c 13229
b3967b18
PE
13230 * unexelf.c (unexec): Name an expression,
13231 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
13232 Use a different way to cause a compilation error if anyone uses
13233 n rather than nn, a way that does not involve shadowing.
73366a00 13234 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 13235
29a6015a
PE
13236 * deps.mk (unexalpha.o): Remove; unused.
13237
43cfc33e 13238 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 13239 * unexec.h: New file.
ce701a33
PE
13240 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
13241 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
13242 Depend on unexec.h.
13243 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
13244 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
13245 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 13246 Change as necessary to match prototype in unexec.h.
ce701a33 13247
01f44d5a
PE
13248 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
13249 shadowing.
4f63c6bb 13250 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 13251
a6670b0b
PE
13252 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
13253 Rename locals to avoid shadowing.
13254
cef2010d 13255 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 13256 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 13257
d4d7173a
PE
13258 * print.c (Fredirect_debugging_output): Fix pointer signedess.
13259
f08b802a
PE
13260 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
13261 warning when compiling print.c.
13262
3ddb0639
PE
13263 * font.c (font_unparse_fcname): Abort in an "impossible" situation
13264 instead of using an uninitialized var.
5ad03b97 13265 (font_sort_entities): Mark var as initialized.
3ddb0639 13266
170a2692
PE
13267 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
13268
e663c700
PE
13269 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
13270 pointers to constants.
89bc529a 13271 (font_parse_fcname): Remove unused vars.
7b81e2d0 13272 (font_delete_unmatched): Now static.
ea838e10 13273 (font_get_spec): Remove; unused.
13a547c6
PE
13274 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
13275 (font_update_drivers, Ffont_get_glyphs, font_add_log):
13276 Rename or move locals to avoid shadowing.
e663c700 13277
2a80c887 13278 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 13279 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 13280
1384fa33 13281 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 13282 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 13283
8b2c52e9
PE
13284 * alloc.c (mark_backtrace): Move decl from here ...
13285 * lisp.h: ... to here, so that it can be checked.
13286
475545b5 13287 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 13288 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
13289 (lisp_indirect_variable): Name an expression,
13290 to avoid gcc -Wbad-function-cast warning.
1faed8ae 13291 (Fdefvar): Rename locals to avoid shadowing.
475545b5 13292
b1349114 13293 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 13294 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 13295 Use const pointer when appropriate.
b1349114 13296
a2928364
PE
13297 * lisp.h (get_system_name, get_operating_system_release):
13298 Move decls here, to check interfaces.
13299 * process.c (get_operating_system_release): Move decl to lisp.h.
13300 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
13301 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
13302 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
13303 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
13304 (Fformat_time_string, Fencode_time, Finsert_char):
13305 (Ftranslate_region_internal, Fformat):
13306 Rename or remove local vars to avoid shadowing.
9710023e 13307 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 13308
a415e694
PE
13309 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
13310 avoid shadowing.
13311
8ef4622d
PE
13312 * lisp.h (eassert): Check that the argument compiles, even if
13313 ENABLE_CHECKING is not defined.
13314
946f9a5b
PE
13315 * data.c (Findirect_variable): Name an expression, to avoid
13316 gcc -Wbad-function-cast warning.
112396d6 13317 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 13318 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
13319 (Fmake_variable_buffer_local, Fmake_local_variable):
13320 Mark variables as initialized.
52746918 13321 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 13322
e5aab7e7 13323 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
13324 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
13325 Rename locals to avoid shadowing.
dff45157
PE
13326 (mark_stack): Move local variables into the #ifdef region where
13327 they're used.
7bc26fdb
PE
13328 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
13329 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
13330 needed otherwise.
13331 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
13332 (GC_STRING_CHARS): Remove; not used.
d40d4be1 13333 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 13334
e5aab7e7
PE
13335 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
13336 avoids undefined behavior in theory.
13337
4da60324
PE
13338 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
13339
88043301
PE
13340 Use functions, not macros, for up- and down-casing (Bug#8254).
13341 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
13342 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
13343 to use the following functions instead of these macros.
13344 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
13345 EMACS_INT, since callers assume the returned value fits in int.
13346 (upcase1): Likewise, for UPCASE_TABLE.
13347 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 13348 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 13349 the race-condition problem in the old DOWNCASE.
88043301 13350
19ed5445
PE
13351 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
13352 Rename locals to avoid shadowing.
13353 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
13354 (regex_compile, re_search_2, re_match_2_internal):
13355 Remove unused local vars.
952db0d7
PE
13356 (FREE_VAR): Rewrite so as not to use empty "else",
13357 which gcc can warn about.
da053e48 13358 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
13359 (RETALLOC_IF): Define only if needed.
13360 (WORDCHAR_P): Likewise. This one is never needed, but is used
13361 only in a comment talking about a compiler bug, so put inside
13362 the #if 0 of that comment.
13363 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
13364 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
13365 Remove; unused.
19ed5445 13366
1f3561e4 13367 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
13368 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
13369 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 13370
ded6f8f7
PE
13371 * search.c (simple_search): Remove unused var.
13372
dbd37a95
PE
13373 * dired.c (compile_pattern): Move decl from here ...
13374 * lisp.h: ... to here, so that it can be checked.
13375 (struct re_registers): New forward decl.
13376
7e47afad
PE
13377 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
13378
85f24f61
PE
13379 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
13380 All uses changed.
13381 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
13382 Rename locals to avoid shadowing.
5671df8f 13383 (Fvertical_motion): Mark locals as initialized.
85f24f61 13384
181aa2be 13385 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 13386 (casify_region): Mark local as initialized.
181aa2be 13387
930d429c
PE
13388 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
13389
7082eac6
PE
13390 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
13391 New macros, so that the caller can use some names other than
13392 gcpro1, gcpro2, etc.
13393 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
13394 of the new macros.
13395 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
13396 argument, for consistency with GCPRO2_VAR, etc: it is now the
13397 prefix of the variable, not the variable itself. All uses
13398 changed.
38b2c076
PE
13399 * dired.c (directory_files_internal, file_name_completion):
13400 Rename locals to avoid shadowing.
13401
15206ed9
PE
13402 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
13403 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
13404 dired.c's scmp function, had undefined behavior.
13405 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
13406 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
13407 * buffer.h: ... to here, because these macros use current_buffer,
13408 and the new implementation with inline functions needs to have
13409 current_buffer in scope now, rather than later when the macros
13410 are used.
13411 (downcase, upcase1): New static inline functions.
13412 (DOWNCASE, UPCASE1): Reimplement using these functions.
13413 This avoids undefined behavior in expressions like
13414 DOWNCASE (x) == DOWNCASE (y), which previously suffered
13415 from race conditions in accessing the global variables
13416 case_temp1 and case_temp2.
13417 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
13418 * lisp.h (case_temp1, case_temp2): Remove their decls.
13419 * character.h (ASCII_CHAR_P): Move from here ...
13420 * lisp.h: ... to here, so that the inline functions mentioned
13421 above can use them.
13422
4a6bea26
PE
13423 * dired.c (directory_files_internal_unwind): Now static.
13424
f14b7e14
PE
13425 * fileio.c (file_name_as_directory, directory_file_name):
13426 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
13427 Now static.
2893f146
PE
13428 (file_name_as_directory): Use const pointers when appropriate.
13429 (Fexpand_file_name): Likewise. In particular, newdir might
13430 point at constant storage, so make it a const pointer.
fd4ead52 13431 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
13432 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
13433 signedness issues.
f839df0c
PE
13434 (Fset_file_times, Finsert_file_contents, auto_save_error):
13435 Rename locals to avoid shadowing.
f14b7e14 13436
5716756e 13437 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
13438 (Ftry_completion, Fall_completions): Rename or remove locals
13439 to avoid shadowing.
5716756e 13440
b4c3046a
PE
13441 * marker.c (bytepos_to_charpos): Remove; unused.
13442
b45db522
PE
13443 * lisp.h (verify_bytepos, count_markers): New decls,
13444 so that gcc does not warn that these functions aren't declared.
13445
85876d07
PE
13446 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
13447 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 13448 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 13449 (copy_text): Remove unused local var.
85876d07 13450
03d78a21 13451 * filelock.c (within_one_second): Now static.
b3dd38ab 13452 (lock_file_1): Rename local to avoid shadowing.
03d78a21 13453
5df8f01b
PE
13454 * buffer.c (fix_overlays_before): Mark locals as initialized.
13455 (fix_start_end_in_overlays): Likewise. This function should be
13456 simplified by using pointers-to-pointers, but that's a different
13457 matter.
b1d876f1 13458 (switch_to_buffer_1): Now static.
8f54f30a
PE
13459 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
13460 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 13461
a70072c9 13462 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 13463 Fix pointer signedness issue.
edced198
PE
13464 (sys_subshell): Mark local as volatile if checking for lint,
13465 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 13466 (MAXPATHLEN): Define only if needed.
a70072c9 13467
a0977c44
PE
13468 * process.c (serial_open, serial_configure): Move decls from here ...
13469 * systty.h: ... to here, so that they can be checked.
13470
a884fdcc
PE
13471 * fns.c (get_random, seed_random): Move extern decls from here ...
13472 * lisp.h: ... to here, so that they can be checked.
13473
604efe86 13474 * sysdep.c (reset_io): Now static.
b8950c94 13475 (wait_for_termination_signal): Remove; unused.
604efe86 13476
38fc62d9
PE
13477 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
13478 (copy_keymap_item, append_key, push_text_char_description):
13479 Now static.
1004a21a 13480 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 13481 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
13482 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
13483 (describe_map_tree):
13484 Rename locals to avoid shadowing.
38fc62d9 13485
2f2650da
PE
13486 * keyboard.c: Declare functions static if they are not used elsewhere.
13487 (echo_char, echo_dash, cmd_error, top_level_2):
13488 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
13489 (read_char, kbd_buffer_get_event, make_lispy_position):
13490 (make_lispy_event, make_lispy_movement, apply_modifiers):
13491 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
13492 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
13493 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 13494 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 13495 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 13496
a053e86c 13497 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
13498 (mark_kboards): Move decl here ...
13499 * alloc.c (mark_kboards): ... from here.
a053e86c 13500
4752793e
PE
13501 * lisp.h (force_auto_save_soon): New decl.
13502
74f10ca7 13503 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
13504 (DEFINE_DUMMY_FUNCTION): New macro.
13505 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
13506 Use it.
c03cd23f
PE
13507 (main): Add casts to avoid warnings
13508 if GCC considers string literals to be constants.
74f10ca7 13509
022e70d4
PE
13510 * lisp.h (fatal_error_signal): Add decl, since it's exported.
13511
59d6fe83
PE
13512 * dbusbind.c: Pointer signedness fixes.
13513 (xd_signature, xd_append_arg, xd_initialize):
13514 (Fdbus_call_method, Fdbus_call_method_asynchronously):
13515 (Fdbus_method_return_internal, Fdbus_method_error_internal):
13516 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
13517 (Fdbus_register_signal): Use SSDATA when the context wants char *.
13518
78320123
PE
13519 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
13520 if GCC considers string literals to be constants.
49cebcca 13521 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 13522
35ac2a97
SM
135232011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
13524
fb103ca9
SM
13525 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
13526 (print_preprocess, print_object): New macro to fix last change.
13527
35ac2a97
SM
13528 * print.c (print_preprocess): Don't forget font objects.
13529
62973b41
JB
135302011-03-16 Juanma Barranquero <lekktu@gmail.com>
13531
13532 * emacs.c (USAGE3): Doc fixes.
13533
0e48bb22
AS
135342011-03-15 Andreas Schwab <schwab@linux-m68k.org>
13535
13536 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
13537 structure.
13538
7684e57b
JB
135392011-03-14 Juanma Barranquero <lekktu@gmail.com>
13540
13541 * lisp.h (VWindow_system, Qfile_name_history):
13542 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
13543 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
13544 (w32_system_caret_x, w32_system_caret_y): Declare extern.
13545
13546 * w32select.c: Don't #include "keyboard.h".
c96bbc66 13547 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
13548
13549 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
13550 * w32console.c (detect_input_pending, read_input_pending)
13551 (encode_terminal_code):
13552 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
13553 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
13554 (w32_system_caret_y, Qfile_name_history):
13555 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
13556 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
13557 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
13558 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
13559 * w32proc.c (Qlocal, report_file_error):
13560 * w32term.c (Vwindow_system, updating_frame):
13561 * w32uniscribe.c (initialized, uniscribe_font_driver):
13562 Remove unneeded extern declarations.
13563
2aa46d6c
CY
135642011-03-14 Chong Yidong <cyd@stupidchicken.com>
13565
c96bbc66 13566 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 13567
cffc6f3b
CY
135682011-03-13 Chong Yidong <cyd@stupidchicken.com>
13569
13570 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
13571 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
13572 These macros can no longer be used for assignment.
13573
44f230aa
SM
13574 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
13575 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
13576 (record_buffer_markers, fetch_buffer_markers): New functions for
13577 recording and fetching special buffer markers.
13578 (set_buffer_internal_1, set_buffer_temp): Use them.
13579
13580 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
13581
13582 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
13583
13584 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
13585 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
13586
13587 * xdisp.c (hscroll_window_tree):
13588 (reconsider_clip_changes): Use PT instead of BUF_PT.
13589
d251f04b
EZ
135902011-03-13 Eli Zaretskii <eliz@gnu.org>
13591
13592 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
13593 $(EMACS_ROOT)/lib/intprops.h.
13594
f0c77cd1
PE
135952011-03-13 Paul Eggert <eggert@cs.ucla.edu>
13596
3eca4629
PE
13597 Fix more problems found by GCC 4.5.2's static checks.
13598
7c86ee98
PE
13599 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
13600 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
13601 (xg_free_frame_widgets): Make it clear that a local variable is
13602 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
13603 (gdk_window_get_screen): Make it clear that this macro is needed
13604 only if USE_GTK_TOOLTIP.
1e5524e7
PE
13605 (int_gtk_range_get_value): New function, which avoids a diagnostic
13606 from gcc -Wbad-function-cast.
13607 (xg_set_toolkit_scroll_bar_thumb): Use it.
13608 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
13609 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
13610 (get_utf8_string, xg_get_file_with_chooser):
13611 Rename locals to avoid shadowing.
13612 (create_dialog): Move locals to avoid shadowing.
7c86ee98 13613
41729b81
PE
13614 * xgselect.c (xg_select): Remove unused var.
13615
f0c77cd1
PE
13616 * image.c (four_corners_best): Mark locals as initialized.
13617 (gif_load): Initialize transparent_p to zero (Bug#8238).
13618 Mark another local as initialized.
ec6cf4c6 13619 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 13620
ce0ad53d 13621 * image.c (clear_image_cache): Now static.
d5d5a617 13622 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 13623 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
13624 (x_edge_detection): Remove unnecessary cast that
13625 gcc -Wbad-function-cast diagnoses.
2037898d 13626 (gif_load): Fix pointer signedness.
6ae141d6
PE
13627 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
13628 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 13629
33383987 136302011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 13631
d32df629
PE
13632 Improve quality of tests for time stamp overflow.
13633 For example, without this patch (encode-time 0 0 0 1 1
13634 1152921504606846976) returns the obviously-bogus value (-948597
13635 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
13636 reports time overflow. See
13637 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
13638 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
13639 * editfns.c: Include limits.h and intprops.h.
13640 (TIME_T_MIN, TIME_T_MAX): New macros.
13641 (time_overflow): Move earlier, to before first use.
13642 (hi_time, lo_time): New functions, for an accurate test for
13643 out-of-range times.
13644 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
13645 (Fget_internal_run_time): Don't assume time_t fits in int.
13646 (make_time): Use list2 instead of Fcons twice.
13647 (Fdecode_time): More accurate test for out-of-range times.
13648 (check_tm_member): New function.
13649 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
13650 (lisp_time_argument): Don't rely on undefined left-shift and
13651 right-shift behavior when checking for time stamp overflow.
8be6f318 13652
fe31d94c
PE
13653 * editfns.c (time_overflow): New function, refactoring common code.
13654 (Fformat_time_string, Fdecode_time, Fencode_time):
13655 (Fcurrent_time_string): Use it.
13656
8be6f318
PE
13657 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
13658 * dired.c (make_time): Move to ...
13659 * editfns.c (make_time): ... here.
13660 * systime.h: Note the move.
13661
09d9db2c 136622011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 13663
126bc0dc
YM
13664 * fringe.c (update_window_fringes): Remove unused variables.
13665
c47cbdfd
YM
13666 * unexmacosx.c (copy_data_segment): Also copy __got section.
13667 (Bug#8223)
13668
7ac80be9
EZ
136692011-03-12 Eli Zaretskii <eliz@gnu.org>
13670
c96bbc66 13671 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
13672 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
13673 Constify `char *' arguments and their references according to
13674 prototypes in tparam.h.
13675
ecb0f94d 13676 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 13677
7ac80be9
EZ
13678 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
13679 Adapt all references accordingly.
13680
13681 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
13682
ef1fd07e
TT
136832011-03-11 Tom Tromey <tromey@redhat.com>
13684
13685 * buffer.c (syms_of_buffer): Remove obsolete comment.
13686
7ef4b50c
EZ
136872011-03-11 Eli Zaretskii <eliz@gnu.org>
13688
13689 * termhooks.h (encode_terminal_code): Declare prototype.
13690
13691 * msdos.c (encode_terminal_code): Don't declare prototype.
13692
13693 * term.c (encode_terminal_code): Now external again, used by
13694 w32console.c and msdos.c.
13695
44f230aa
SM
13696 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
13697 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 13698
4b1ec863 136992011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 13700
1714f52b 13701 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 13702
4b1ec863
PE
13703 * fringe.c (update_window_fringes): Mark locals as initialized
13704 (Bug#8227).
13705 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 13706
524c7aa6
PE
13707 * alloc.c (mark_fringe_data): Move decl from here ...
13708 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
13709 to check its interface.
13710 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
13711
a5c0af81 13712 * fontset.c (free_realized_fontset): Now static.
7519b8cd 13713 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 13714 (fontset_font): Mark local as initialized.
a9a06e0b 13715 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 13716
b4716021
PE
13717 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
13718
811e9bac 13719 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 13720 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
13721 (x_own_selection, Fx_disown_selection_internal): Rename locals
13722 to avoid shadowing.
13723 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 13724
7e3ab302
PE
13725 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
13726 so that the caller can use some name other than gcpro1.
13727 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
13728 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
13729 (Fx_backspace_delete_keys_p):
13730 Use them to avoid shadowing, and rename vars to avoid shadowing.
13731 (x_decode_color, x_set_name, x_window): Now static.
6b437900 13732 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 13733 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
13734 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
13735 Remove unused locals.
7e3ab302
PE
13736 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
13737 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
13738 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
13739 macros.
f78faa98 13740
e2b13473
PE
13741 * xterm.h (x_mouse_leave): New decl.
13742
77f23912
PE
13743 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
13744 Remove unused functions.
cdf4ba58
PE
13745 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
13746 (x_calc_absolute_position): Now static.
7411c686 13747 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 13748 Don't declare local "event" unless it's used.
ed7bf3a5
PE
13749 (x_iconify_frame, x_free_frame_resources): Don't declare locals
13750 unless they are used.
38d0b34a
PE
13751 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
13752 (x_fatal_error_signal): Remove; not used.
a6067996
PE
13753 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
13754 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
13755 (x_error_catcher, x_connection_closed, x_error_handler):
13756 (x_error_quitter, xembed_send_message, x_iconify_frame):
13757 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 13758 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 13759 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 13760
44f230aa
SM
13761 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
13762 Rename or move locals to avoid shadowing.
6b463e58 13763 (tty_defined_color, merge_face_heights): Now static.
5967d051 13764 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
13765 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
13766 does not deduce is never used uninitialized.
73719eba
PE
13767 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
13768 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 13769
426994c3 13770 * terminal.c (store_terminal_param): Now static.
5489860b 13771
032f1620 13772 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 13773 (set_frame_menubar): Remove unused local.
d4323972 13774 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
13775 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
13776 since they might point to immutable storage.
281585b0
PE
13777 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
13778 since it's unused otherwise.
032f1620 13779
367c19e5 13780 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 13781 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
13782 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
13783 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 13784 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
13785 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
13786 does not deduce are never used uninitialized.
70739cbe 13787
07b48fa9
PE
13788 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
13789
8868a238 13790 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
13791 * window.c (window_loop, size_window):
13792 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 13793
7e5cf297 13794 * window.c (display_buffer): Now static.
d6550a9f
PE
13795 (size_window): Mark variables that gcc -Wuninitialized
13796 does not deduce are never used uninitialized.
a586633d
PE
13797 * window.h (check_all_windows): New decl, to forestall
13798 gcc -Wmissing-prototypes diagnostic.
5b555da1 13799 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 13800
f6095868
PE
13801 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
13802 shadowing.
13803 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
13804 Include <limits.h>.
13805 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
13806 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
13807 (load_charset_map): Mark variables that gcc -Wuninitialized
13808 does not deduce are never used uninitialized.
53df7c11 13809 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 13810
f38b440c
PE
13811 * coding.c (coding_set_source, coding_set_destination):
13812 Use "else { /* comment */ }" rather than "else /* comment */;"
13813 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
13814 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
13815 a block, when the outer 'i' will do.
13816 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
13817 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
13818 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
13819 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
13820 (Fdecode_sjis_char, Fdefine_coding_system_internal):
13821 Rename locals to avoid shadowing.
13822 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
13823 * coding.c (emacs_mule_char, encode_invocation_designation):
13824 Now static, since they're not used elsewhere.
413bb2db 13825 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 13826 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
13827 (decode_coding_emacs_mule): Mark variables that gcc
13828 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
13829 (detect_coding_iso_2022): Initialize a local variable that might
13830 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 13831 this initialization is needed. (Bug#8211)
5f58e762
PE
13832 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
13833 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
13834 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
13835 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
13836 Remove unused macros.
f38b440c 13837
232b38b9 13838 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 13839 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 13840 * character.c (string_count_byte8): Likewise.
232b38b9 13841
fb90da1b
PE
13842 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
13843 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
13844
fb93dbc2
PE
13845 * chartab.c (copy_sub_char_table): Now static, since it's not used
13846 elsewhere.
5c156ace
PE
13847 (sub_char_table_ref_and_range, char_table_ref_and_range):
13848 Rename locals to avoid shadowing.
bbcd0949 13849 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 13850
7d3b3862 13851 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 13852 (BIDI_BOB): Remove unused macro.
7d3b3862 13853
6be7d3da
PE
13854 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
13855 deduce are never used uninitialized.
c2ed9c8b 13856 * term.c (encode_terminal_code): Likewise.
6be7d3da 13857
75f8807f 13858 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 13859
50938595
PE
13860 * tparam.h: New file.
13861 * term.c, tparam.h: Include it.
13862 * deps.mk (term.o, tparam.o): Depend on tparam.h.
13863 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
13864 Move these decls to tparam.h, and make them agree with what
13865 is actually in tparam.c. The previous trick of using incompatible
13866 decls in different modules does not conform to the C standard.
13867 All callers of tparam changed to use tparam's actual API.
13868 * tparam.c (tparam1, tparam, tgoto):
13869 Use const pointers where appropriate.
13870
fbceeba2
PE
13871 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
13872 * cm.h (struct cm): Likewise.
13873 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
13874 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
13875 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
13876 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
13877 (turn_on_face, init_tty): Likewise.
13878 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 13879
7f3f1250
PE
13880 * term.c (term_mouse_position): Rename local to avoid shadowing.
13881
e6ca6543
PE
13882 * alloc.c (mark_ttys): Move decl from here ...
13883 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
13884
c40f8d15
AS
138852011-03-11 Andreas Schwab <schwab@linux-m68k.org>
13886
13887 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
13888
cfe0661d
JB
138892011-03-09 Juanma Barranquero <lekktu@gmail.com>
13890
13891 * search.c (compile_pattern_1): Remove argument regp, unused since
13892 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
13893 (compile_pattern): Don't pass it.
13894
0afb4571
J
138952011-03-08 Jan Djärv <jan.h.d@swipnet.se>
13896
13897 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
13898 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
13899 for ! HAVE_GTK3.
13900 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
13901
13902 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
13903
13904 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
13905 gdk_window_get_screen, gdk_window_get_geometry,
13906 gdk_x11_window_lookup_for_display and GDK_KEY_g.
13907 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
13908 (xg_get_pixbuf_from_pixmap): New function.
13909 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
13910 to Pixmap, take frame as parameter, remove GdkColormap parameter.
13911 Call xg_get_pixbuf_from_pixmap instead of
13912 gdk_pixbuf_get_from_drawable.
13913 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
13914 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
13915 (xg_check_special_colors): Use GtkStyleContext and its functions
13916 for HAVE_GTK3.
13917 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
13918 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
13919 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
13920 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
13921 Call gtk_widget_get_preferred_size.
0afb4571
J
13922 (xg_frame_resized): gdk_window_get_geometry only takes 5
13923 parameters.
44f230aa
SM
13924 (xg_win_to_widget, xg_event_is_for_menubar):
13925 Call gdk_x11_window_lookup_for_display.
0afb4571
J
13926 (xg_set_widget_bg): New function.
13927 (delete_cb): New function.
895009e1 13928 (xg_create_frame_widgets): Connect delete-event to delete_cb.
5c32d3f2 13929 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
0afb4571
J
13930 (xg_set_background_color): Call xg_set_widget_bg.
13931 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
13932 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
13933 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
13934 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
13935 if ! HAVE_GTK3.
13936 (update_frame_tool_bar): Call gtk_widget_hide.
13937 (xg_initialize): Use GDK_KEY_g.
13938
13939 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
13940 if ! HAVE_GTK3
13941 (x_session_initialize): Call gdk_x11_set_sm_client_id.
13942
13943 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
13944 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
13945 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
13946
1c2cc4ef
JB
139472011-03-08 Juanma Barranquero <lekktu@gmail.com>
13948
13949 * w32xfns.c (select_palette): Check success of RealizePalette against
13950 GDI_ERROR, not zero.
13951
33383987 13952See ChangeLog.11 for earlier changes.
aac0c6e3
MR
13953
13954;; Local Variables:
13955;; coding: utf-8
aac0c6e3
MR
13956;; End:
13957
2f097256 13958 Copyright (C) 2011-2012 Free Software Foundation, Inc.
aac0c6e3
MR
13959
13960 This file is part of GNU Emacs.
13961
13962 GNU Emacs is free software: you can redistribute it and/or modify
13963 it under the terms of the GNU General Public License as published by
13964 the Free Software Foundation, either version 3 of the License, or
13965 (at your option) any later version.
13966
13967 GNU Emacs is distributed in the hope that it will be useful,
13968 but WITHOUT ANY WARRANTY; without even the implied warranty of
13969 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13970 GNU General Public License for more details.
13971
13972 You should have received a copy of the GNU General Public License
13973 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.