Added bug number (Bug#14112) to my last ChangeLog entries.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
9cc2810b
JB
12013-04-16 Juanma Barranquero <lekktu@gmail.com>
2
3 * minibuf.c (Ftest_completion): Silence compiler warning.
4
fd16b54c
EZ
52013-04-15 Eli Zaretskii <eliz@gnu.org>
6
7 * w32fns.c (w32_wnd_proc): Add more assertions to investigate
5fbcd237 8 bug#14062.
fd16b54c
EZ
9
10 * frame.h (WINDOW_FRAME): Protect macro and its argument with
11 parentheses.
12
13 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
14 (CURRENT_HEADER_LINE_HEIGHT, WINDOW_WANTS_MODELINE_P)
15 (WINDOW_WANTS_HEADER_LINE_P): Protect macro arguments with
16 parentheses where appropriate.
17
9e3379a0
PE
182013-04-14 Paul Eggert <eggert@cs.ucla.edu>
19
20 * keyboard.c (timer_start_idle): Remove no-longer-used local.
21
ddd6b685
EZ
222013-04-14 Eli Zaretskii <eliz@gnu.org>
23
24 * buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>
25 <left-fringe-width, right-fringe-width, fringes-outside-margins>:
26 Mention in the doc string that setting these variables takes
27 effect only after a call to set-window-buffer. (Bug#14200)
28
29b79ba1
EZ
292013-04-13 Eli Zaretskii <eliz@gnu.org>
30
31 * indent.c (Fvertical_motion): Don't consider display strings on
32 overlay strings as display strings on the buffer position we
33 started from. This prevents vertical cursor motion from jumping
34 more than one line when there's an overlay string with a display
35 property at end of line.
36 Reported by Karl Chen <Karl.Chen@quarl.org> in
37 http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00362.html.
38
562c6ee9
SM
392013-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
40
41 * window.c (select_window): `record_buffer' even if window is
42 already selected (bug#14191).
43
fcc1fe85
EZ
442013-04-11 Eli Zaretskii <eliz@gnu.org>
45
46 * window.c (Fwindow_end): Test more flags, including the buffer's
47 last_overlay_modified flag, to determine whether the window's
48 display is really up-to-date. Prevents the function from
49 returning a stale value. (Bug#14170)
50 (Fwindow_line_height): Fix the test for up-to-date-ness of the
51 current matrix.
52
f009190a
EZ
532013-04-10 Eli Zaretskii <eliz@gnu.org>
54
55 * frame.c (do_switch_frame): Mark the TTY frame we switch to as
562c6ee9
SM
56 garbaged only if it is not already the top frame on its TTY.
57 This prevents flickering due to constant redrawing of TTY frames when
f009190a
EZ
58 there are GUI frames open in the same session. (Bug#13864)
59
78ce603d
SM
602013-04-10 Stefan Monnier <monnier@iro.umontreal.ca>
61
62 * keyboard.c (timer_start_idle): Call internal-timer-start-idle instead
63 of marking the idle timers directly.
64
a8036e40
SM
652013-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
66
67 * minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash
68 tables (bug#14054).
69
7ffe7ef6
SM
702013-04-08 Stefan Monnier <monnier@iro.umontreal.ca>
71
72 * window.c (select_window): Don't record_buffer while the invariant is
73 temporarily broken (bug#14161).
74
75 * fns.c (Fdelq): Don't assume !NILP => CONSP.
76
7d9f6883
EZ
772013-04-07 Eli Zaretskii <eliz@gnu.org>
78
79 * fileio.c (ACL_NOT_WELL_SUPPORTED): Define macro for WINDOWSNT.
80
5406cfd9
RF
812013-04-07 Romain Francoise <romain@orebokech.com>
82
83 Ignore additional platform-specific ACL errors (Bug#13702).
84 * fileio.c (ACL_NOT_WELL_SUPPORTED): New macro copied from gnulib.
85 (Fcopy_file, Fset_file_acl) [HAVE_POSIX_ACL]: Use it.
86
95c0e83b
JD
872013-03-31 Jan Djärv <jan.h.d@swipnet.se>
88
89 * nsterm.m (ns_mouse_position): Use NS_FRAME_P instead of checking
90 f->output_data.ns.
91
876da980
PE
922013-04-07 Paul Eggert <eggert@cs.ucla.edu>
93
94 Fix --enable-profiling bug introduced by 2013-02-25 change (Bug#13783).
95 This bug was introduced by my 2013-02-25 change that simplified
96 data_start configuration. Without this change, on GNU/Linux
97 an Emacs configured with --enable-profiling fails immediately
98 due to a profiler signal.
99 * Makefile.in: Compile with $(PROFILING_CFLAGS), but do not link
100 with these flags. On platforms where special flags are needed
101 when linking temacs, the flags are now in LD_SWITCH_SYSTEM_TEMACS.
102 (ALL_CFLAGS): Remove $(PROFILING_CFLAGS).
103 (.c.o, .m.o): Compile with $(PROFILING_CFLAGS).
104
7452b7bd
DA
1052013-04-07 Dmitry Antipov <dmantipov@yandex.ru>
106
107 Get rid of some platform-specific functions examining window
108 system and its capabilities. This is a partial rework of the
109 2013-04-05 change.
110 * lisp.h (have_menus_p): Remove prototype. This function is
111 replaced with platform-independent window_system_available.
112 (check_window_system): Move to...
113 * frame.h (decode_window_system_frame, window_system_available):
114 ...here, add new prototypes.
115 * frame.c (window_system_available, decode_window_system_frame):
116 New functions.
117 (check_window_system): Platform-independent now.
118 * xterm.h (x_in_use): Remove declaration.
119 (check_x_frame):
120 * w32term.h (check_x_frame):
121 * nsterm.h (check_x_frame): Remove prototypes. This function
122 is replaced with platform-independent decode_window_system_frame.
123 * msdos.c (have_menus_p): Remove.
124 * nsfns.m (check_window_system, have_menus_p, check_ns_frame):
125 Remove platform-specific functions. Use check_window_system,
126 decode_window_system_frame and check_ns_display_info where
127 appropriate. Minor style and comment tweaks.
128 * w32fns.c (w32_in_use, check_window_system, have_menus_p)
129 (check_x_frame): Likewise.
130 * xfns.c (x_in_use, check_window_system, have_menus_p, check_x_frame):
131 Likewise.
132 * fileio.c, fns.c, font.c, fontset.c, image.c, menu.c, nsmenu.m:
133 * nsselect.m, nsterm.m, w32font.c, w32menu.c, xfaces.c, xgselect.c:
134 * xmenu.c, xselect.c: All related users changed.
135
251e9147
KH
1362013-04-03 Kenichi Handa <handa@gnu.org>
137
138 The following changes is to optimize the code for reading UTF-8
139 files.
140
562c6ee9 141 * coding.c (check_ascii): Rename from detect_ascii. Return value
251e9147
KH
142 changed. Check EOL format. Do not call adjust_coding_eol_type
143 here.
144 (check_utf_8): New function.
145 (adjust_coding_eol_type): Do nothing if already adjusted.
146 (detect_coding): Compare the return value of check_ascii with
147 coding->src_bytes. Call adjust_coding_eol_type if necessary.
148 (decode_coding_gap): Optimize for valid UTF-8.
149
8bc369d4
KH
1502013-03-21 Kenichi Handa <handa@gnu.org>
151
152 * coding.c (syms_of_coding): Cancel previous change.
153
154 * insdel.c (insert_from_gap): Fix previous change.
155
73931ad1
DA
1562013-04-05 Dmitry Antipov <dmantipov@yandex.ru>
157
158 Consistently use platform-specific function to detect window system.
159 * lisp.h (check_window_system): New prototype. This function is
160 going to replace check_x, check_w32 and check_ns.
161 (have_menus_p): Mention msdos.c in comment.
162 * fontset.c (check_window_system_func): Remove. Adjust all users.
163 * fontset.h (check_window_system_func): Remove prototype.
164 * nsterm.h (check_ns):
165 * xterm.h (check_x):
166 * w32term.h (check_w32): Likewise.
167 * menu.c (Fx_popup_menu): Use check_window_system.
168 * msdos.c (check_window_system): Define for MS-DOS.
169 * nsfns.m (check_window_system): Define for NS. Adjust all users.
170 * w32fns.c (check_window_system): Likewise for MS-Windows.
171 * xfns.c (check_window_system): Likewise for X.
172 * font.c, frame.c, nsmenu.m, nsselect.m, nsterm.m, w32menu.c:
173 * xfaces.c, xmenu.c: Use check_window_system where appropriate.
174
7216e43b
PE
1752013-04-02 Paul Eggert <eggert@cs.ucla.edu>
176
177 Prefer < to > in range checks such as 0 <= i && i < N.
178 This makes it easier to visualize quantities on a number line.
179 This patch doesn't apply to all such range checks,
180 only to the range checks affected by the 2013-03-24 change.
181 This patch reverts most of the 2013-03-24 change.
182 * alloc.c (xpalloc, Fgarbage_collect):
183 * ccl.c (ccl_driver, resolve_symbol_ccl_program):
184 * character.c (string_escape_byte8):
185 * charset.c (read_hex):
186 * data.c (cons_to_unsigned):
187 * dispnew.c (update_frame_1):
188 * doc.c (Fsubstitute_command_keys):
189 * doprnt.c (doprnt):
190 * editfns.c (hi_time, decode_time_components):
191 * fileio.c (file_offset):
192 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
193 * font.c (font_intern_prop):
194 * frame.c (x_set_alpha):
195 * gtkutil.c (get_utf8_string):
196 * indent.c (check_display_width):
197 * keymap.c (Fkey_description):
198 * lisp.h (FIXNUM_OVERFLOW_P, vcopy):
199 * lread.c (read1):
200 * minibuf.c (read_minibuf_noninteractive):
201 * process.c (wait_reading_process_output):
202 * search.c (Freplace_match):
203 * window.c (get_phys_cursor_glyph):
204 * xdisp.c (redisplay_internal):
205 * xsmfns.c (smc_save_yourself_CB):
206 Prefer < to > for range checks.
207 * dispnew.c (sit_for): Don't mishandle NaNs.
208 This fixes a bug introduced in the 2013-03-24 change.
209 * editfns.c (decode_time_components): Don't hoist comparison.
210 This fixes another bug introduced in the 2013-03-24 change.
211
92759988
DA
2122013-03-31 Dmitry Antipov <dmantipov@yandex.ru>
213
214 * frame.h (struct frame): Drop scroll_bottom_vpos
215 member becaue all real users are dead long ago.
216 (FRAME_SCROLL_BOTTOM_VPOS): Remove.
217 * xdisp.c (redisplay_internal): Adjust user.
218
9a1971bb
GM
2192013-03-30 Darren Ho <darren.hoo@gmail.com> (tiny change)
220
f38ab167
JD
221 * nsmenu.m (showAtX:Y:for:): setLevel to
222 NSPopUpMenuWindowLevel (Bug#13998).
223
6d01f1fe
JD
2242013-03-30 Jan Djärv <jan.h.d@swipnet.se>
225
226 * nsterm.h (ns_get_pending_menu_title, ns_check_menu_open)
227 (ns_check_pending_open_menu): Declare.
228
229 * nsmenu.m (ns_update_menubar): Correct NSTRACE.
230 (x_activate_menubar): Update the menu with title that matches
231 ns_get_pending_menu_title, and call
232 ns_check_pending_openmenu (Bug#12698).
233 (menuWillOpen:): New method.
234 (menuNeedsUpdate:): Add check for ! COCOA || OSX < 10.5 (Bug#12698).
235
236 * nsterm.m (menu_will_open_state, menu_mouse_point)
237 (menu_pending_title): New varaibles.
238 (ns_get_pending_menu_title, ns_check_menu_open)
239 (ns_check_pending_open_menu): New functions.
240
781f4782
DA
2412013-03-29 Dmitry Antipov <dmantipov@yandex.ru>
242
243 * indent.c (current_column_bol_cache): Remove leftover which is not
244 used in Fmove_to_column any more.
245 (current_column, scan_for_column): Adjust users.
246 * keyboard.c (last_point_position_buffer, last_point_position_window):
247 Remove leftovers which are not used for recording undo any more.
248 (command_loop_1, syms_of_keyboard): Adjust users.
249 * xdisp.c (last_max_ascent): Remove leftover which is not used in
250 redisplay_window any more.
251 (move_it_to): Adjust user.
252
1921c31b
JB
2532013-03-29 Juanma Barranquero <lekktu@gmail.com>
254
255 * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/filelock.$(O)):
256 Update dependencies.
257
717b8bcd
SM
2582013-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
259
260 * lisp.h (save_type, XSAVE_POINTER, set_save_pointer, XSAVE_INTEGER)
261 (set_save_integer, XSAVE_OBJECT, XSAVE_VALUE): Move to avoid
262 forward references.
263
e74aeda8
DA
2642013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
265
266 * window.h (struct window): Replace hchild, vchild and buffer slots
267 with the only contents slot. This is possible because each valid
268 window may have either the child window (in vertical or horizontal
269 combination) or buffer to display (for the leaf window). Using that,
270 a lof of operations to traverse and/or change window hierarchies may
271 be simplified. New member horizontal is used to distinguish between
272 horizontal and vertical combinations of internal windows.
273 (WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P)
274 (WINDOW_VERTICAL_COMBINATION_P): New macros.
275 (WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes.
276 * window.c (wset_hchild, wset_vchild): Remove. Adjust all users.
277 Use contents slot, not buffer, where appropriate.
278 (wset_combination): New function.
279 (wset_buffer): Add eassert.
280 (Fframe_first_window): Simplify the loop reaching first window.
281 (Fwindow_buffer): Use WINDOW_LEAF_P.
282 (Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P.
283 (Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P.
284 (unshow_buffer): Convert initial debugging check to eassert.
285 (replace_window, recombine_windows, Fdelete_other_windows_internal)
286 (make_parent_window, window_resize_check, window_resize_apply)
287 (resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal)
288 (Fset_window_configuration, delete_all_child_windows, save_window_save):
289 Adjust to match struct window changes.
290 (window_loop): Check for broken markers in CHECK_ALL_WINDOWS.
291 (mark_window_cursors_off, count_windows, get_leaf_windows)
292 (foreach_window_1): Simplify the loop.
293 * alloc.c (mark_object): Do not check for the leaf window because
294 internal windows has no glyph matrices anyway.
295 * dispnew.c (clear_window_matrices, showing_window_margins_p)
296 (allocate_matrices_for_window_redisplay, fake_current_matrices)
297 (allocate_matrices_for_frame_redisplay, free_window_matrices)
298 (build_frame_matrix_from_window_tree, mirror_make_current)
299 (frame_row_to_window, mirror_line_dance, check_window_matrix_pointers)
300 (update_window_tree, set_window_update_flags): Simplify the loop.
301 (sync_window_with_frame_matrix_rows): Enforce live window.
302 Use contents slot, not buffer, where appropriate.
303 * frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P
304 and WINDOW_HORIZONTAL_COMBINATION_P.
305 (make_frame_visible_1): Simplify the loop.
306 Use contents slot, not buffer, where appropriate.
307 * xdisp.c (hscroll_window_tree, mark_window_display_accurate)
308 (redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree)
309 (expose_window_tree): Likewise.
310 Use contents slot, not buffer, where appropriate.
311 * textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW
312 to avoid deleted windows. Use contents slot instead of buffer.
313 * buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c:
314 * indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c:
315 * nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c:
316 * xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate.
317
121ab1cd
EZ
3182013-03-28 Eli Zaretskii <eliz@gnu.org>
319
ef454cf7
EZ
320 * w32fns.c (w32_wnd_proc) [ENABLE_CHECKING]: Add code to help
321 identify the reasons for assertion violations in bug#14062 and
322 similar ones.
21e930f8
EZ
323 (Fx_show_tip): Fix compilation error under
324 "--enable-check-lisp-object-type". (Bug#14073)
ef454cf7 325
121ab1cd
EZ
326 * image.c (g_error_free) [WINDOWSNT]: Add DEF_IMGLIB_FN.
327 Reported by <rzl24ozi@gmail.com>.
328
5c89ca24
DA
3292013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
330
331 * xdisp.c (with_echo_area_buffer_unwind_data): Save window
332 start marker...
562c6ee9
SM
333 (unwind_with_echo_area_buffer): ...to restore it here.
334 This is needed to ensure that...
5c89ca24
DA
335 (redisplay_window): ...both window markers are valid here,
336 which is verified by eassert.
337 * editfns.c (save_excursion_save): Do not assume that
338 selected_window always displays the buffer.
c7f53895
DA
339 * buffer.c (Fbuffer_swap_text): Adjust window start markers.
340 Fix comment.
5c89ca24 341
f557c1b1
SM
3422013-03-27 Stefan Monnier <monnier@iro.umontreal.ca>
343
344 * casetab.c (init_casetab_once): Don't abuse the ascii eqv table for
345 the upcase table.
346
40693bba 3472013-03-27 rzl24ozi <rzl24ozi@gmail.com> (tiny changes)
348
349 * image.c [WINDOWSNT]: Fix calls to DEF_IMGLIB_FN for SVG function.
350
c86f791f
EZ
3512013-03-27 Eli Zaretskii <eliz@gnu.org>
352
353 * w32proc.c (IsValidLocale) [__GNUC__]: Don't declare prototype,
354 since MinGW's w32api headers do. This avoids compiler warnings.
355
356 * w32.c (FSCTL_GET_REPARSE_POINT) [_MSC_VER || _W64]: Don't define
357 if already defined.
358
c6e72e17
EZ
3592013-03-26 Eli Zaretskii <eliz@gnu.org>
360
361 * w32.c (_REPARSE_DATA_BUFFER): Condition by _MSVC and _W64.
362
54e95010
JD
3632013-03-26 Jan Djärv <jan.h.d@swipnet.se>
364
365 * gtkutil.c (style_changed_cb): Check if frame is live and an
366 X frame (Bug#14038).
367
b88b62de
EZ
3682013-03-26 Eli Zaretskii <eliz@gnu.org>
369
a18d7de6
EZ
370 * w32.c (_PROCESS_MEMORY_COUNTERS_EX) [_WIN32_WINNT < 0x0500]:
371 Define only for _WIN32_WINNT less than 0x0500.
da9dcbb8
EZ
372 (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT) [!_W64]: Don't define for
373 MinGW64.
8f5e14c8
EZ
374 Move inclusion of time.h before sys/time.h, so that MinGW64 could
375 see its own definitions of 'struct timeval' and 'struct timezone'.
a18d7de6 376
b88b62de
EZ
377 Fix incompatibilities between MinGW.org and MinGW64 headers.
378 * w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined.
379
380 * w32.c (REPARSE_DATA_BUFFER): Guard with
381 MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined.
382
c074e458
JD
3832013-03-25 Jan Djärv <jan.h.d@swipnet.se>
384
385 * xterm.c: Include X11/XKBlib.h
386 (XTring_bell): Use XkbBell if HAVE_XKB (Bug#14041).
387
908589fd
AS
3882013-03-24 Andreas Schwab <schwab@linux-m68k.org>
389
390 * alloc.c (xpalloc, Fgarbage_collect): Reorder conditions that are
391 written backwards.
392 * blockinput.h (input_blocked_p): Likewise.
393 * bytecode.c (exec_byte_code): Likewise.
394 * callproc.c (call_process_kill, call_process_cleanup)
395 (Fcall_process): Likewise.
396 * ccl.c (ccl_driver, resolve_symbol_ccl_program)
397 (Fccl_execute_on_string): Likewise.
398 * character.c (string_escape_byte8): Likewise.
399 * charset.c (read_hex): Likewise.
400 * cm.c (calccost): Likewise.
401 * data.c (cons_to_unsigned): Likewise.
402 * dired.c (directory_files_internal, file_name_completion):
403 Likewise.
404 * dispnew.c (scrolling_window, update_frame_1, Fsleep_for)
405 (sit_for): Likewise.
406 * doc.c (Fsubstitute_command_keys): Likewise.
407 * doprnt.c (doprnt): Likewise.
408 * editfns.c (hi_time, decode_time_components, Fformat): Likewise.
409 * emacsgtkfixed.c: Likewise.
410 * fileio.c (file_offset, Fwrite_region): Likewise.
411 * floatfns.c (Fexpt, fmod_float): Likewise.
412 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
413 Likewise.
414 * font.c (font_intern_prop): Likewise.
415 * frame.c (x_set_alpha): Likewise.
416 * gtkutil.c (get_utf8_string): Likewise.
417 * indent.c (check_display_width): Likewise.
418 * intervals.c (create_root_interval, rotate_right, rotate_left)
419 (split_interval_right, split_interval_left)
420 (adjust_intervals_for_insertion, delete_node)
421 (interval_deletion_adjustment, adjust_intervals_for_deletion)
422 (merge_interval_right, merge_interval_left, copy_intervals)
423 (set_intervals_multibyte_1): Likewise.
424 * keyboard.c (gobble_input, append_tool_bar_item): Likewise.
425 * keymap.c (Fkey_description): Likewise.
426 * lisp.h (FIXNUM_OVERFLOW_P, vcopy): Likewise.
427 * lread.c (openp, read_integer, read1, string_to_number):
428 Likewise.
429 * menu.c (ensure_menu_items): Likewise.
430 * minibuf.c (read_minibuf_noninteractive): Likewise.
431 * print.c (printchar, strout): Likewise.
432 * process.c (create_process, Faccept_process_output)
433 (wait_reading_process_output, read_process_output, send_process)
434 (wait_reading_process_output): Likewise.
435 * profiler.c (make_log, handle_profiler_signal): Likewise.
436 * regex.c (re_exec): Likewise.
437 * regex.h: Likewise.
438 * search.c (looking_at_1, Freplace_match): Likewise.
439 * sysdep.c (get_child_status, procfs_ttyname)
440 (procfs_get_total_memory): Likewise.
441 * systime.h (EMACS_TIME_VALID_P): Likewise.
442 * term.c (dissociate_if_controlling_tty): Likewise.
443 * window.c (get_phys_cursor_glyph): Likewise.
444 * xdisp.c (init_iterator, redisplay_internal, redisplay_window)
445 (try_window_reusing_current_matrix, try_window_id, pint2hrstr):
446 Likewise.
447 * xfns.c (Fx_window_property): Likewise.
448 * xmenu.c (set_frame_menubar): Likewise.
449 * xselect.c (x_get_window_property, x_handle_dnd_message):
450 Likewise.
451 * xsmfns.c (smc_save_yourself_CB): Likewise.
452 * xterm.c (x_scroll_bar_set_handle): Likewise.
453
2bf7d27a
DA
4542013-03-24 Dmitry Antipov <dmantipov@yandex.ru>
455
456 * xfaces.c (Finternal_face_x_get_resource): Allow 3rd (frame) argument
457 to be optional or nil. Adjust comment and convert it to docstring.
458 * xselect.c (Fx_send_client_event): Rename to Fx_send_client_message.
459 * frame.c (display_x_get_resource, Fx_get_resource): Break long line.
460
a9ebfa0b
PE
4612013-03-24 Paul Eggert <eggert@cs.ucla.edu>
462
463 Static checking by GCC 4.8-20130319.
464 * image.c (gif_load): Assume pass < 3 to pacify GCC.
465 * process.c (Fset_process_datagram_address)
466 (Fmake_network_process): Check get_lisp_to_sockaddr_size return value.
467 * xdisp.c (get_char_face_and_encoding):
468 (get_glyph_face_and_encoding): Ensure that *CHAR2B is initialized.
469 (get_glyph_face_and_encoding): Prepare face before possibly using it.
470 (get_per_char_metric): Don't use CHAR2B if it might not be initialized.
471
4f3576ee
KB
4722013-03-24 Ken Brown <kbrown@cornell.edu>
473
789b5e9a
KB
474 * w32fns.c (emacs_abort) [CYGWIN]: Define `_open' as a macro to
475 fix compilation on 64-bit Cygwin, where underscores are not
476 automatically prepended.
477
4f3576ee
KB
478 * w32term.c (w32_initialize): Silence compiler warning.
479
b5b7745f
EZ
4802013-03-23 Eli Zaretskii <eliz@gnu.org>
481
cdc0d0bd
EZ
482 * w32term.c (w32fullscreen_hook): Use FRAME_NORMAL_WIDTH,
483 FRAME_NORMAL_HEIGHT, and FRAME_PREV_FSMODE, instead of static
562c6ee9
SM
484 variables, to save and restore frame dimensions.
485 Use FRAME_NORMAL_LEFT and FRAME_NORMAL_TOP to restore frame position
486 after returning from a 'fullscreen' configuration.
487 use SendMessage instead of PostMessage to send the SC_RESTORE message,
cdc0d0bd
EZ
488 to avoid races between the main thread and the input thread.
489
490 * w32term.h (struct w32_output): New members normal_width,
491 normal_height, normal_top, normal_left, and prev_fsmode.
492 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP)
493 (FRAME_NORMAL_LEFT, FRAME_PREV_FSMODE): New macros to access these
494 members of a frame.
495
b5b7745f
EZ
496 * w32term.c (w32fullscreen_hook): Record last value of the frame's
497 'fullscreen' parameter. Always record previous width and height
498 of the frame, except when switching out of maximized modes, so
499 that they could be restored correctly, instead of resetting to the
500 default frame dimensions. Send SC_RESTORE command to the frame,
501 unless we are going to send SC_MAXIMIZE, to restore the frame
502 resize hints in the mouse pointer shown by the window manager.
503 (Bug#14032)
504
505 * frame.c (get_frame_param): Now extern for WINDOWSNT as well.
506
507 * lisp.h (get_frame_param): Adjust conditions for prototype
508 declaration.
509
a3454eed
KB
5102013-03-22 Ken Brown <kbrown@cornell.edu>
511
512 * unexcw.c: Drop unneeded inclusion of w32common.h.
513 (report_sheap_usage): Declare.
514 (read_exe_header): Add magic numbers for x86_64.
515 (fixup_executable): Fix printf format specifier for unsigned long
516 argument.
517
5a49b79c
DA
5182013-03-22 Dmitry Antipov <dmantipov@yandex.ru>
519
520 * frame.h (struct frame): Put menu_bar_window under #ifdef
521 because this member is not needed when X toolkit is in use.
522 (fset_menu_bar_window):
523 * dispnew.c (clear_current_matrices, clear_desired_matrices)
524 (free_glyphs, update_frame):
525 * xdisp.c (expose_frame): Likewise.
526 (display_menu_bar): Likewise. Remove redundant eassert.
527 * window.h (WINDOW_MENU_BAR_P): Always define to 0 if X
528 toolkit is in use.
529
d6723bf7
PE
5302013-03-21 Paul Eggert <eggert@cs.ucla.edu>
531
7b1123d8
PE
532 Use functions and constants to manipulate Lisp_Save_Value objects.
533 This replaces code that used macros and strings and token-pasting.
534 The change makes the C source a bit easier to follow,
535 and shrinks the Emacs executable a bit.
536 * alloc.c: Verify some properties of Lisp_Save_Value's representation.
537 (make_save_value): Change 1st arg from string to enum. All callers
538 changed.
539 (INTX): Remove.
540 (mark_object): Use if, not #if, for GC_MARK_STACK.
541 * lisp.h (SAVE_VALUEP, XSAVE_VALUE, XSAVE_POINTER, XSAVE_INTEGER)
542 (XSAVE_OBJECT): Now functions, not macros.
543 (STRING_BYTES_BOUND): Now just a macro, not a constant too;
544 the constant was never used.
545 (SAVE_SLOT_BITS, SAVE_VALUE_SLOTS, SAVE_TYPE_BITS, SAVE_TYPE_INT_INT)
546 (SAVE_TYPE_INT_INT_INT, SAVE_TYPE_OBJ_OBJ, SAVE_TYPE_OBJ_OBJ_OBJ)
547 (SAVE_TYPE_OBJ_OBJ_OBJ_OBJ, SAVE_TYPE_PTR_INT, SAVE_TYPE_PTR_OBJ)
548 (SAVE_TYPE_PTR_PTR, SAVE_TYPE_PTR_PTR_OBJ, SAVE_TYPE_MEMORY):
549 New constants.
550 (struct Lisp_Save_Value): Replace members area, type0, type1, type2,
551 type3 with a single member save_type. All uses changed.
552 (save_type, set_save_pointer, set_save_integer): New functions.
553 * print.c (PRINTX): Remove.
554
d6723bf7
PE
555 * alloc.c: Remove redundant static declarations.
556
5f24fa51
DA
5572013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
558
559 * window.h (struct window): Convert left_col, top_line, total_lines
560 and total_cols from Lisp_Objects to integers. Adjust comments.
561 (wset_left_col, wset_top_line, wset_total_cols, wset_total_lines):
562 Remove.
563 (WINDOW_TOTAL_COLS, WINDOW_TOTAL_LINES, WINDOW_LEFT_EDGE_COL)
564 (WINDOW_TOP_EDGE_LINE): Drop Lisp_Object to integer conversion.
565 * dispnew.c, frame.c, w32fns.c, window.c, xdisp.c, xfns.c:
566 Adjust users where appropriate.
567
42143acd
DA
5682013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
569
570 * frame.h (struct frame): Drop resx and resy because the same data is
571 available from window system-specific output context. Adjust users.
562c6ee9
SM
572 (default_pixels_per_inch_x, default_pixels_per_inch_y):
573 New functions to provide defaults when no window system available.
42143acd 574 (FRAME_RES_X, FRAME_RES_Y): New macros.
562c6ee9 575 (NUMVAL): Move from xdisp.c.
42143acd
DA
576 * font.c (font_pixel_size, font_find_for_lface, font_open_for_lface)
577 (Ffont_face_attributes, Fopen_font):
578 * image.c (gs_load):
579 * w32font.c (fill_in_logfont):
580 * xdisp.c (calc_pixel_width_or_height):
581 * xfaces.c (Fx_family_fonts, set_lface_from_font): Use them.
582 * xsettings.c (apply_xft_settings): Drop frame loop and adjust comment.
583
c0a17406
KH
5842013-03-20 Kenichi Handa <handa@gnu.org>
585
586 * coding.c (syms_of_coding): Initialize disable_ascii_optimization
587 to 1 (temporary workaround until a bug related to ASCII
588 optimization is fixed).
589
095d384d
DA
5902013-03-19 Dmitry Antipov <dmantipov@yandex.ru>
591
592 * window.c (Fwindow_combination_limit, Fset_window_combination_limit):
593 Signal error if window is not internal. Adjust docstring.
594 (delete_all_child_windows): Use combination_limit to save the buffer.
595 (Fset_window_configuration): Adjust accordingly.
cf4bb06d
DA
596 * print.c (syms_of_print): Initialize debugging output not here...
597 (init_print_once): ...but in a new function here.
598 * lisp.h (init_print_once): Add prototype.
599 * emacs.c (main): Add call to init_print_once. Adjust comments.
095d384d 600
748fa866
DA
6012013-03-18 Dmitry Antipov <dmantipov@yandex.ru>
602
603 * window.c (window_resize_check, window_resize_apply)
604 (window_from_coordinates, recombine_windows, set_window_buffer)
605 (make_parent_window, Fwindow_resize_apply, resize_frame_windows)
606 (Fsplit_window_internal, Fdelete_window_internal)
607 (freeze_window_starts): Use bool for booleans.
608 * window.h (window_frame_coordinates, resize_frame_windows)
609 (freeze_window_starts, set_window_buffer): Adjust prototypes.
610
81519fd2
SM
6112013-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
612
613 * dispnew.c (bitch_at_user): Use `user-error'.
614
6db423a9
KB
6152013-03-17 Ken Brown <kbrown@cornell.edu>
616
617 * dispextern.h (RGB_PIXEL_COLOR): Move here from image.c. Use it
618 as return type of image_background. (Bug#13981)
619 * image.c (RGB_PIXEL_COLOR): Move to dispextern.h.
620
8f2906f5
JD
6212013-03-16 Jan Djärv <jan.h.d@swipnet.se>
622
960ce480 623 * nsterm.m (updateFrameSize:): Change resize increments if needed.
6615748a 624 (ns_select): Don't return with result uninitialized.
960ce480 625
8f2906f5
JD
626 * nsterm.h (EmacsSavePanel, EmacsOpenPanel): Add getFilename
627 and getDirectory.
628
81519fd2
SM
629 * nsfns.m (ns_filename_from_panel, ns_directory_from_panel):
630 New functions.
8f2906f5
JD
631 (Fns_read_file_name): ret is BOOL. If ! dir_only_p, don't choose
632 directories. If filename is nil, get directory name (Bug#13932).
633 Use getFilename and getDirectory.
634 (getFilename, getDirectory): New methods for EmacsSavePanel and
635 EmacsOpenPanel.
636 (ok:): In EmacsOpenPanel, if we can't choose directories, just return.
637
cded56c1
PE
6382013-03-15 Paul Eggert <eggert@cs.ucla.edu>
639
640 * coding.c (decode_coding_gap): Fix typo caught by static checking.
641
251e9147 6422013-03-15 Kenichi Handa <handa@gnu.org>
8a44e6d1
KH
643
644 * insdel.c (insert_from_gap): New arg text_at_gap_tail.
645 (adjust_after_replace): Make it back to static. Delete the third
646 arg text_at_gap_tail. Cancel the code for handling it.
647
648 * coding.h (struct coding_system): New member eol_seen.
649
650 * coding.c (detect_ascii): New function.
651 (detect_coding): Set coding->head_ascii and coding->eol_seen only
652 when the source bytes are actually scanned. On detecting for
653 coding_category_utf_8_auto, call detect_ascii instead of scanning
654 source bytes directly.
655 (produce_chars): Call insert_from_gap with the new arg 0.
656 (encode_coding): Likewise.
657 (decode_coding_gap): Control ASCII optimization by the variable
658 disable_ascii_optimization instead of #ifndef .. #endif.
659 Deccode EOL format according to coding->eol_seen.
660 (syms_of_coding): Declare disable-ascii-optimization as a Lisp
661 variable.
662
8a44e6d1
KH
663 * lisp.h (adjust_after_replace): Cancel externing it.
664 (insert_from_gap): Adjust prototype.
665
5f795e34
EZ
6662013-03-15 Eli Zaretskii <eliz@gnu.org>
667
668 * w32term.c (w32fullscreen_hook): Swap FULLSCREEN_BOTH and
669 FULLSCREEN_MAXIMIZED. (Bug#13935)
670
f258b4be
DA
6712013-03-15 Dmitry Antipov <dmantipov@yandex.ru>
672
673 * region-cache.c (find_cache_boundary, move_cache_gap)
674 (insert_cache_boundary, delete_cache_boundaries, set_cache_region):
675 Simplify debugging check and convert to eassert. Adjust comment.
676 (pp_cache): Put under ENABLE_CHECKING.
677
a5cc4dde
EZ
6782013-03-14 Eli Zaretskii <eliz@gnu.org>
679
680 * w32term.c (w32_read_socket) <WM_WINDOWPOSCHANGED>: Remove old
681 and incorrect code. Treat WM_WINDOWPOSCHANGED like WM_ACTIVATE
682 and WM_ACTIVATEAPP.
683 (w32fullscreen_hook): If the frame is visible, reset
684 f->want_fullscreen flag after changing the frame size. If the
685 frame is not visible, set f->want_fullscreen to FULLSCREEN_WAIT.
686 (Bug#13953)
687
3fc5e44a
DC
6882013-03-13 Daniel Colascione <dancol@dancol.org>
689
690 * emacs.c (main): Call syms_of_cygw32 on CYGWIN non-NTGUI builds
691 too so that these builds can use Cygwin's file conversion
692 functions. (We've been building and linking cygw32.o all along
693 and just not using it.)
694
47d7532e
PE
6952013-03-13 Paul Eggert <eggert@cs.ucla.edu>
696
697 File synchronization fixes (Bug#13944).
698 * Makefile.in (LIB_FDATASYNC): New macro.
699 (LIBES): Use it.
700 * conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
701 * fileio.c (Fwrite_region, write_region_inhibit_fsync):
702 Don't worry about HAVE_FSYNC, since a substitute fsync is
703 available if the system lacks one.
704 (Fwrite_regin): Retry fsync if interrupted.
705
c7ffccaf
EZ
7062013-03-13 Eli Zaretskii <eliz@gnu.org>
707
4e2df81d 708 * w32term.c (w32_read_socket): If the Emacs frame is being
c7ffccaf
EZ
709 activated, call w32fullscreen_hook, to make sure the new frame
710 dimensions are in effect. (Bug#13937)
711
8a7debc1
DA
7122013-03-13 Dmitry Antipov <dmantipov@yandex.ru>
713
714 * xdisp.c (init_iterator): Simplify because both character and byte
715 positions are either specified or -1. Add eassert. Adjust comment.
ffcd945e
DA
716 * window.c (Fscroll_other_window): Use SET_PT_BOTH because both
717 character and byte positions can be obtained from marker.
8a7debc1 718
7fd8c501
PE
7192013-03-13 Paul Eggert <eggert@cs.ucla.edu>
720
d9df6f40
PE
721 Static checking by Sun C 5.12.
722 * alloc.c (buffer_memory_full) [REL_ALLOC]:
723 * bytecode.c (exec_byte_code):
724 * dispnew.c (init_display):
725 * eval.c (error):
726 * fileio.c (Fsubstitute_in_file_name):
727 * keyboard.c (Fevent_convert_list):
728 * keymap.c (Fsingle_key_description):
729 * term.c (maybe_fatal, fatal):
730 * xfns.c (Fx_display_backing_store, Fx_display_visual_class):
731 * xsmfns.c (Fhandle_save_session):
732 Omit unreachable code.
733 * keymap.c (map_keymap_char_table_item): Cast void * to
734 a function pointer type; the C Standard requires this.
735
7fd8c501
PE
736 * sysdep.c: Remove a use of BSD_SYSTEM, which I'm trying to phase out.
737 Include <sys/param.h> unconditionally, as that works elsewhere and
738 is simpler here. Include <sys/sysctl.h> if DARWIN_OS ||
739 __FreeBSD__, not if BSD_SYSTEM, since it's needed only for Darwin
740 and FreeBSD now.
741
cb0290df
PE
7422013-03-11 Paul Eggert <eggert@cs.ucla.edu>
743
744 * insdel.c (adjust_after_replace): Use bool for boolean.
745
cbae07d5
SM
7462013-03-11 Stefan Monnier <monnier@iro.umontreal.ca>
747
748 * keyboard.c: Move keyboard decoding to read_key_sequence.
749 (decode_keyboard_code): Remove.
750 (tty_read_avail_input): Don't try to decode input.
751 (read_decoded_char): New function.
752 (read_key_sequence): Use it.
753
819e2da9
DC
7542013-03-10 Daniel Colascione <dancol@dancol.org>
755
756 * w32term.h (GUISTR, GUI_ENCODE_FILE, GUI_ENCODE_SYSTEM, GUI_FN)
757 (GUI_SDATA, guichar_t): Macros to abstract out differences between
758 NTGUI_UNICODE and !NTGUI_UNICODE builds, some moved out of
759 w32fns.c.
760
761 * w32term.c (construct_drag_n_drop): Use the above macros to make
762 drag-and-drop work for non-ASCII filenames in cygw32 builds.
763
764 * w32fns.c (x_set_name, x_set_title): Use the above macros to
765 properly display non-ASCII frame titles in cygw32 builds.
766
767 * w32fns.c (Fw32_shell_execute): Use the above macros to properly
768 call ShellExecute in cygw32 builds.
769
770 * w32fn.c (Fx_file_dialog): Use the above macros to simplify the
771 common file dialog code.
772
773 * w32fns.c (Ffile_system_info): Remove from cygw32 builds, which
774 can just use du like other systems.
775
776 * coding.c (from_unicode_buffer): Declare.
777 * coding.c (from_unicode_buffer): Implement.
778
99ec1647
SM
7792013-03-10 Stefan Monnier <monnier@iro.umontreal.ca>
780
d2e24f92
SM
781 * lread.c: Minor cleanup.
782 (FROM_FILE_P): New macro.
783 (skip_dyn_bytes, unreadchar, read1): Use it.
784 (read_list): Consolidate duplicated code.
785
99ec1647
SM
786 * bytecode.c (struct byte_stack): Remove `constants' when unused.
787
138c0ae8
EZ
7882013-03-10 Eli Zaretskii <eliz@gnu.org>
789
790 * xdisp.c (display_tool_bar_line, redisplay_tool_bar)
791 (redisplay_internal, set_cursor_from_row, try_window)
792 (try_window_id, dump_glyph_row, extend_face_to_end_of_line)
793 (display_line, notice_overwritten_cursor)
99ec1647
SM
794 (mouse_face_from_buffer_pos, note_mouse_highlight):
795 Use MATRIX_ROW_DISPLAYS_TEXT_P.
138c0ae8 796 (note_mouse_highlight): Use MATRIX_ROW_GLYPH_START.
99ec1647
SM
797 (mouse_face_from_string_pos, fast_find_string_pos):
798 Use MATRIX_ROW_VPOS.
138c0ae8
EZ
799
800 * xfns.c (Fx_show_tip): Use MATRIX_ROW_DISPLAYS_TEXT_P.
801
802 * w32fns.c (Fx_show_tip): Use MATRIX_ROW_DISPLAYS_TEXT_P.
803
804 * xdisp.c (try_cursor_movement): Use MATRIX_ROW and
805 MATRIX_MODE_LINE_ROW.
806
807 * dispnew.c (update_window): Use MATRIX_ROW and MATRIX_MODE_LINE_ROW.
808
c230dd7d
KH
8092013-03-10 handa <handa@gnu.org>
810
811 * lisp.h (adjust_after_replace): Extern it.
812
813 * coding.c (detect_coding): Cound the heading ASCII bytes in the
814 case of detection for coding_category_utf_8_auto.
99ec1647
SM
815 (decode_coding_gap) [not CODING_DISABLE_ASCII_OPTIMIZATION]:
816 Skip decoding if all bytes are ASCII.
c230dd7d
KH
817
818 * insdel.c (adjust_after_replace): Make it public. New arg
819 text_at_gap_tail.
820 (adjust_after_insert): Call adjust_after_replace with the new arg
821 value 0.
822
27a98a62
SM
8232013-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
824
825 * keyboard.h (EVENT_START, EVENT_END, POSN_WINDOW, POSN_POSN)
826 (POSN_WINDOW_POSN, POSN_TIMESTAMP): Be careful since events may come
827 from Elisp via unread-command-events.
828
829 * keyboard.c (access_keymap_keyremap): Accept nil return value from
830 functions to mean "no change".
831
457882c2
PE
8322013-03-08 Paul Eggert <eggert@cs.ucla.edu>
833
834 region-cache.c, scroll.c, search.c: Use bool for booleans.
835 * lisp.h (compile_pattern):
836 * scroll.c (do_scrolling, do_direct_scrolling):
837 * search.c (struct regexp_cache, compile_pattern_1)
838 (compile_pattern, string_match_1, search_command)
839 (trivial_regexp_p, search_buffer, Freplace_match, match_limit)
840 (search_regs_saved, Fregexp_quote):
841 Use bool for boolean.
842 * region-cache.c (region_cache_forward, region_cache_backward):
843 Fix comments to match code: these functions return int, not boolean.
844
b5426561
DA
8452013-03-08 Dmitry Antipov <dmantipov@yandex.ru>
846
847 * search.c (find_newline): Accept start and end byte positions
848 as arguments and allow -1 if not known.
849 (find_newline_no_quit): Likewise for start position.
850 * lisp.h (find_newline, find_newline_no_quit): Adjust prototype.
851 * bidi.c (bidi_find_paragraph_start): Pass byte position to
852 find_newline_no_quit, thus eliminating CHAR_TO_BYTE.
27a98a62
SM
853 * editfns.c (Fconstrain_to_field): Break long line.
854 Adjust call to find_newline.
b5426561
DA
855 * indent.c (vmotion): Adjust calls to find_newline_no_quit.
856 Use DEC_BOTH to start next search from the previous buffer
857 position, where appropriate.
858 * xdisp.c (back_to_previous_line_start, forward_to_next_line_start)
859 (get_visually_first_element, move_it_vertically_backward): Likewise.
860 Obtain byte position from the display iterator, where appropriate.
861
0bce5d9e
PE
8622013-03-08 Paul Eggert <eggert@cs.ucla.edu>
863
864 print.c, process.c: Use bool for booleans.
865 * lisp.h (wait_reading_process_output):
866 * print.c (print_output_debug_flag, PRINTDECLARE, printchar)
867 (strout, debug_output_compilation_hack, float_to_string, print)
868 (print_object):
869 * process.c (kbd_is_on_hold, inhibit_sentinels, process_output_skip)
870 (decode_status, status_message, create_process, create_pty)
871 (Fmake_network_process, Fnetwork_interface_info)
872 (wait_reading_process_output, read_process_output)
873 (write_queue_push, write_queue_pop, process_send_signal)
874 (handle_child_signal, keyboard_bit_set, kbd_on_hold_p):
875 * process.h (struct Lisp_Process, inhibit_sentinels, kbd_on_hold_p):
876 Use bool for booleans.
877 * process.c (Fnetwork_interface_list): Remove unused local.
878 (connect_counter): Now EMACS_INT, not int.
879
36075a19
DA
8802013-03-08 Dmitry Antipov <dmantipov@yandex.ru>
881
882 * bidi.c (bidi_fetch_char): Swap first and second arguments
883 to match other functions accepting character and byte positions.
884 Adjust comment.
885 (bidi_resolve_explicit_1, bidi_level_of_next_char): Adjust users.
886 (bidi_paragraph_init): Likewise. Use DEC_BOTH which is faster
887 when you need just to move to the previous buffer position.
888 * xdisp.c (Fcurrent_bidi_paragraph_direction): Use DEC_BOTH.
889
4aae1914
EZ
8902013-03-07 Eli Zaretskii <eliz@gnu.org>
891
892 * .gdbinit (prowlims): Display the enabled_p flag of the row.
893
c54aa166
DA
8942013-03-07 Dmitry Antipov <dmantipov@yandex.ru>
895
896 Avoid character to byte conversions in motion subroutines.
897 * indent.h (compute_motion, vmotion): Add byte position argument.
898 * indent.c (compute_motion): Use it and avoid CHAR_TO_BYTE.
899 Add eassert.
900 (Fcompute_motion): Break long line. Adjust call to compute_motion.
901 Use list5 for return value.
902 (vmotion): Use byte position argument and avoid call to CHAR_TO_BYTE.
903 Adjust comments, style and calls to compute_motion.
904 (Fvertical_motion): Adjust call to vmotion.
905 * window.c (Fdelete_other_windows_internal): Record window start
906 byte position and adjust call to vmotion.
907 (window_scroll_line_based): Likewise with call to compute_motion.
908 Use SET_PT_BOTH.
909 (Frecenter): Adjust calls to vmotion.
910
3de717bd
DA
9112013-03-07 Dmitry Antipov <dmantipov@yandex.ru>
912
913 * lisp.h (list2i, list3i): New functions.
914 (list4i): Move from window.c and make LISP_INLINE.
915 * editfns.c (make_lisp_time):
916 * fns.c (Flocale_info):
917 * keyboard.c (parse_modifiers):
918 * xterm.c (x_ewmh_activate_frame): Use list2i.
919 * instel.c (signal_after_change):
920 * nsfns.m (Fx_server_version, Fxw_color_values):
921 * w32fns.c (Fxw_color_values, Fx_server_version):
922 * xfns.c (Fxw_color_values, Fx_server_version): Use list3i.
923 * fileio.c (Fvisited_file_modtime):
924 * nsfns.m (Fns_display_usable_bounds):
925 * w32.c (ltime): Use list4i.
926
d26e478e
EZ
9272013-03-06 Eli Zaretskii <eliz@gnu.org>
928
a611149e
EZ
929 * search.c (find_newline_no_quit): Rename from find_next_newline.
930 Add commentary.
931
932 * lisp.h (find_newline_no_quit): Rename prototype.
933
934 * xdisp.c (back_to_previous_line_start)
935 (forward_to_next_line_start, get_visually_first_element)
936 (move_it_vertically_backward): Callers of find_newline_no_quit changed.
937 * indent.c (vmotion): Callers of find_newline_no_quit changed.
938 * bidi.c (bidi_find_paragraph_start): Callers of
939 find_newline_no_quit changed.
940
d26e478e
EZ
941 * msdos.c: Change encoding to cp850. (Bug#13879)
942 (fr_keyboard, it_keyboard, dk_keyboard): Update keyboard layouts.
943
1af1a51a
DA
9442013-03-06 Dmitry Antipov <dmantipov@yandex.ru>
945
946 Coding system support cleanup and minor refactoring.
947 * coding.h (enum coding_result_code): Remove
948 CODING_RESULT_INCONSISTENT_EOL and CODING_RESULT_INSUFFICIENT_MEM.
949 (toplevel): Remove unused CODING_MODE_INHIBIT_INCONSISTENT_EOL.
950 (CODING_MODE_LAST_BLOCK, CODING_MODE_SELECTIVE_DISPLAY)
951 (CODING_MODE_DIRECTION, CODING_MODE_FIXED_DESTINATION)
952 (CODING_MODE_SAFE_ENCODING): Rearrange bit values.
953 (decode_coding_region, encode_coding_region, decode_coding_string):
954 Remove unused compatibility macros.
955 * coding.c (Qinconsistent_eol, Qinsufficient_memory): Remove.
956 (record_conversion_result): Adjust user.
957 (syms_of_coding): Likewise.
958 (ALLOC_CONVERSION_WORK_AREA): Use SAFE_ALLOCA.
959 (decode_coding, encode_coding): Add USE_SAFE_ALLOCA and SAFE_FREE.
960 (decode_coding_object): Simplify since xrealloc never returns NULL.
961 Add eassert.
962
0bafabe7 9632013-03-06 Paul Eggert <eggert@cs.ucla.edu>
725eb027 964
9b1c3271 965 Fix a build failure on OpenBSD 4.x and MirBSD (Bug#13881).
0845a75c
PE
966 * sysdep.c (list_system_processes)
967 [BSD_SYSTEM && !DARWIN_OS && !__FreeBSD__]:
9b1c3271 968 Make it a stub in this case; otherwise the build might fail,
0845a75c 969 and this code hasn't been tested on such hosts anyway.
725eb027 970 Problem reported by Nelson H. F. Beebe in
9b1c3271
PE
971 <http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00021.html>
972 and analyzed by Jérémie Courrèges-Anglas in
973 <http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00062.html>.
725eb027 974
ffc65bee
DA
9752013-03-06 Dmitry Antipov <dmantipov@yandex.ru>
976
977 * lisp.h (find_next_newline_no_quit): Rename to find_next_newline.
978 * xdisp.c (back_to_previous_line_start, forward_to_next_line_start)
979 (get_visually_first_element, move_it_vertically_backward): Ajust users.
980 * bidi.c (bidi_find_paragraph_start): Likewise.
981 * indent.c (vmotion): Likewise.
982
70743157
PE
9832013-03-05 Paul Eggert <eggert@cs.ucla.edu>
984
985 FILE's lock is now always .#FILE and may be a regular file (Bug#13807).
986 * filelock.c: Include <c-ctype.h>.
987 (MAX_LFINFO): New top-level constant.
988 (lock_info_type): Remove members pid, boot_time. Add members at,
989 dot, colon. Change user member to be the entire buffer, not a
990 pointer. This allows us to handle the case where a foreign
991 pid or boot time exceeds the local range. All uses changed.
992 (LINKS_MIGHT_NOT_WORK): New constant.
993 (FREE_LOCK_INFO): Remove, as the pieces no longer need freeing.
994 (defined_WINDOWSNT): Remove.
995 (MAKE_LOCK_NAME, file_in_lock_file_name):
996 Always use .#FILE (not .#-FILE) for the file lock,
997 even if it is a regular file.
998 (rename_lock_file): New function.
999 (create_lock_file): Use it.
1000 (create_lock_file, read_lock_data):
1001 Prefer a symbolic link for the lock file, falling back on a
1002 regular file if symlinks don't work. Do not try to create
1003 symlinks on MS-Windows, due to security hassles. Stick with
1004 POSIXish functions (open, read, write, close, fchmod, readlink, symlink,
1005 link, rename, unlink, mkstemp) when creating locks, as a GNUish
1006 host may be using a Windowsish file system, and cannot use
1007 MS-Windows-only system calls. Fall back on mktemp if mkstemp
1008 doesn't work. Don't fail merely because of a symlink-contents
1009 length limit in the current file system; fall back on regular
1010 files. Increase the symlink contents length limit to 8 KiB, this
1011 should be big enough for any real use and doesn't crunch the
1012 stack.
1013 (create_lock_file, lock_file_1, read_lock_data):
1014 Simplify allocation of lock file buffers now that they fit in 8 KiB.
1015 (lock_file_1): Return error number, not bool. All callers changed.
1016 (ELOOP): New macro, if not already defined.
1017 (read_lock_data): Return size of lock file contents, not Lisp object.
1018 All callers changed. Handle a race condition if some other process
1019 replaces a regular-file lock with a symlink lock or vice versa,
1020 while we're trying to read the lock.
1021 (current_lock_owner): Parse contents more carefully, to help avoid
1022 confusing a regular-file lock with some other application's use
1023 of the file. Check for lock file contents being too long, or
1024 not parsing correctly.
1025 (current_lock_owner, lock_file):
1026 Allow foreign pid and boot times that exceed the local range.
1027 (current_lock_owner, lock_if_free, lock_file):
1028 Simplify allocation of lock file contents.
1029 * w32.c (sys_rename_replace): New function, containing most of
1030 the contents of the old sys_rename.
1031 (sys_rename): Use it.
1032 (fchmod): New dummy function.
1033 * w32.h (sys_rename_replace, fchmod): New decls.
1034
05e193f1
EZ
10352013-03-05 Eli Zaretskii <eliz@gnu.org>
1036
1037 * bidi.c (bidi_resolve_explicit_1): Don't call CHAR_TO_BYTE or
1038 bidi_count_bytes, as the callers now arrange for bidi_it->charpos
1039 to be in sync with bidi_it->bytepos. Suggested by Dmitry Antipov
1040 <dmantipov@yandex.ru>.
1041
3bfc46eb
DA
10422013-03-05 Dmitry Antipov <dmantipov@yandex.ru>
1043
1044 * composite.c (get_composition_id, fill_gstring_header):
1045 Use make_uninit_vector where appropriate.
1046 * font.c (Ffont_get_glyphs, build_style_table): Likewise.
1047 * xselect.c (clean_local_selection_data): Likewise.
1048
84ac6f9d
PE
10492013-03-04 Paul Eggert <eggert@cs.ucla.edu>
1050
1051 Fix misuse of ImageMagick that caused core dump (Bug#13846).
1052 * image.c (imagemagick_load_image): Calculate height and width
1053 after flattening the image, not before.
1054
42926ec8
DA
10552013-03-04 Dmitry Antipov <dmantipov@yandex.ru>
1056
1057 * font.c (Ffont_get_glyphs): Use convenient LGLYPH_NEW.
1058 * ftfont.c (ftfont_shape_by_flt): Likewise.
1059 * w32uniscribe.c (uniscribe_shape): Likewise.
1060
b5029e23
PE
10612013-03-02 Paul Eggert <eggert@cs.ucla.edu>
1062
1063 The lock for FILE is now .#FILE or .#-FILE (Bug#13807).
1064 The old approach, which fell back on DIR/.#FILE.0 through
1065 DIR/.#FILE.9, had race conditions that could not be easily fixed.
1066 If DIR/.#FILE is a non-symlink file, Emacs now does not create a
1067 lock file for DIR/FILE; that is, DIR/FILE is no longer partly
1068 protected by a lock if DIR/.#FILE is a non-symlink file ("partly"
1069 because the locking mechanism was never reliable in that case).
1070 This patch fixes this and other bugs discovered by a code
1071 inspection that was prompted by
1072 <http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00531.html>.
1073 Also, this patch switches to .#-FILE (not .#FILE) on MS-Windows,
1074 to avoid interoperability problems between the MS-Windows and
1075 non-MS-Windows implementations. MS-Windows and non-MS-Windows
1076 instances of Emacs now ignore each others' locks.
1077 * filelock.c (defined_WINDOWSNT): New constant.
1078 (MAKE_LOCK_NAME, fill_in_lock_file_name):
1079 Don't create DIR/.#FILE.0 through DIR/.#FILE.9. Instead, create
1080 DIR/.#FILE symlinks on non-MS-Windows hosts, and DIR/.#-FILE
1081 regular files on MS-Windows hosts.
1082 (MAKE_LOCK_NAME, unlock_file, Ffile_locked_p):
1083 Use SAFE_ALLOCA to avoid problems with long file names.
1084 (MAX_LFINFO): Now a local constant, not a global macro.
1085 (IS_LOCK_FILE): Remove.
1086 (lock_file_1): Don't inspect errno if symlink call succeeds;
1087 that's not portable.
1088 (lock_file): Document that this function can return if lock
1089 creation fails.
2db41375 1090 (lock_file): Don't access freed storage.
b5029e23 1091
b270d116
AS
10922013-03-02 Andreas Schwab <schwab@linux-m68k.org>
1093
1094 * lisp.h (XPNTR) [!USE_LSB_TAG]: Remove extra paren. (Bug#13734)
1095
81c23309
PE
10962013-03-02 Paul Eggert <eggert@cs.ucla.edu>
1097
1098 * textprop.c: Use bool for booleans.
1099 (validate_interval_range, Fadd_text_properties)
1100 (Fremove_text_properties): Prefer bool to int when either works.
1101
18f2ac09
EZ
11022013-03-02 Eli Zaretskii <eliz@gnu.org>
1103
27a98a62
SM
1104 * textprop.c (Fadd_text_properties, Fremove_text_properties):
1105 If the interval tree changes as a side effect of calling
18f2ac09
EZ
1106 modify_region, re-do processing starting from the call to
1107 validate_interval_range. (Bug#13743)
1108
929aeac6 11092013-02-28 Eli Zaretskii <eliz@gnu.org>
c49e2256
EZ
1110
1111 * w32.c (sys_open): Don't reset the flags for FD in fd_info[].
1112 (Bug#13546).
1113
531e70ec
EZ
11142013-02-27 Eli Zaretskii <eliz@gnu.org>
1115
1116 * filelock.c (create_lock_file) [WINDOWSNT]: Use _sopen with
1117 _SH_DENYRW flag, instead of emacs_open, to deny any other process
1118 access to the lock file until it is written and closed.
1119 (Bug#13807)
1120
6e65b9cc
PE
11212013-02-27 Paul Eggert <eggert@cs.ucla.edu>
1122
1123 * callint.c (Qcall_interactively):
1124 * macros.c (Qexecute_kbd_macro):
1125 Now static.
1126
3b166f09
BG
11272013-02-26 Bastien Guerry <bzg@gnu.org>
1128
1129 * window.c (Frecenter): Tiny docstring enhancement.
1130
ecc0fdd4
PE
11312013-02-26 Paul Eggert <eggert@cs.ucla.edu>
1132
1133 Minor textprop integer cleanup.
1134 * intervals.h, textprop.c (add_text_properties_from_list):
1135 Return void, not int, since nobody uses the return value.
1136 * textprop.c (validate_plist, add_properties, remove_properties)
1137 (Fadd_text_properties):
1138 Don't assume list length fits in int.
1139 (interval_has_all_properties, interval_has_some_properties)
1140 (interval_has_some_properties_list, add_properties, remove_properties)
1141 (Fadd_text_properties, Fremove_text_properties)
1142 (Fremove_list_of_text_properties, text_property_stickiness):
1143 Use bool for booleans.
1144 (Fadd_text_properties, Fremove_text_properties):
1145 (Fremove_list_of_text_properties):
1146 Reindent do-while as per GNU style.
1147
0248b0d7
EZ
11482013-02-25 Eli Zaretskii <eliz@gnu.org>
1149
343a2aef
EZ
1150 Implement CLASH_DETECTION for MS-Windows.
1151
1152 * filelock.c [WINDOWSNT]: Include w32.h.
1153 (MAKE_LOCK_NAME): Don't use 'lock', it clashes with MS runtime
1154 function of that name. Up-case the macro arguments.
1155 (IS_LOCK_FILE): New macro.
1156 (fill_in_lock_file_name): Use IS_LOCK_FILE instead of S_ISLNK.
1157 (create_lock_file): New function, with body extracted from
1158 lock_file_1.
1159 [WINDOWSNT]: Implement lock files by writing a regular file with
1160 the lock information as its contents.
1161 (read_lock_data): New function, on Posix platforms just calls
1162 emacs_readlinkat.
1163 [WINDOWSNT]: Read the lock info from the file.
1164 (current_lock_owner): Call read_lock_data instead of calling
1165 emacs_readlinkat directly.
1166 (lock_file) [WINDOWSNT]: Run the file name through
1167 dostounix_filename.
1168
1169 * w32proc.c (sys_kill): Support the case of SIG = 0, in which case
1170 just check if the process by that PID exists.
1171
1172 * w32.c (sys_open): Don't reset the _O_CREAT flag if _O_EXCL is
1173 also present, as doing so will fail to error out if the file
1174 already exists.
1175
1176 * makefile.w32-in ($(BLD)/filelock.$(O)): Depend on src/w32.h.
1177
0248b0d7
EZ
1178 * textprop.c (Fadd_text_properties, Fremove_text_properties)
1179 (Fremove_list_of_text_properties): Skip all of the intervals in
1180 the region between START and END that already have resp. don't
27a98a62
SM
1181 have the requested properties, not just the first one.
1182 Add assertions that the loop afterwards always modifies the
0248b0d7
EZ
1183 properties. (Bug#13743)
1184
b5071fc7
SM
11852013-02-25 Stefan Monnier <monnier@iro.umontreal.ca>
1186
1187 * callint.c (Fcall_interactively): Use the right lexical environment
1188 for `interactive' specs (bug#13811).
1189 * eval.c (Feval): Accept a lexical environment.
1190
1ddc2bd6
PE
11912013-02-25 Paul Eggert <eggert@cs.ucla.edu>
1192
1193 Simplify data_start configuration (Bug#13783).
1194 This is a followon simplification to the fix for Bug#13650.
1195 * Makefile.in (LD_FIRSTFLAG, LIB_GCC, CRT_DIR, LIB_STANDARD)
1196 (START_FILES): Remove. All uses removed.
1197 (otherobj): Remove $(VMLIMIT_OBJ), as it's now first.
1198 (ALLOBJS): Move here from autodeps.mk, and with VMLIMITS_OBJ first.
1199 (buildobj.h): Use it.
1200 ($(ALLOBJS)): Depend on globals.h.
1201 (temacs$(EXEEXT)): Use $(ALLOBJS).
1202 * autodeps.mk (ALLOBJS): Move to Makefile.in.
1203 * deps.mk (vm-limit.o):
1204 * makefile.w32-in ($(BLD)/vm-limit.$(O)):
1205 Do not depend on mem-limits.h.
1206 * emacs.c (__do_global_ctors, __do_global_ctors_aux)
1207 (__do_global_dtors, __CTOR_LIST__, __DTOR_LIST__)
1208 [__GNUC__ && !ORDINARY_LINK]: Remove.
1209 * mem-limits.h, pre-crt0.c: Remove.
1210 * unexaix.c, unexcoff.c: Don't include mem-limits.h.
1211 * unexcoff.c (etext): New decl.
1212 (make_hdr): Use DATA_START instead of start_of_data.
1213 * vm-limit.c: Move most of mem-limits.h's contents here.
1214 (data_start): New decl. It's OK if this is approximate,
1215 so simplify-away some unnecessary exactness.
1216 (POINTER): Remove; all uses removed.
1217 (data_space_start): Now char *, to avoid casts.
1218 (exceeds_lisp_ptr): New function, replacing the old
1219 EXCEEDS_LISP_PTR macro. All uses changed.
1220 (check_memory_limits): Simplify and remove casts.
1221 (start_of_data) [!CANNOT_DUMP || !SYSTEM_MALLOC]: Remove.
1222 (memory_warnings): Use data_start instead of start_of_data.
1223
51aa2a8b
AS
12242013-02-24 Andreas Schwab <schwab@linux-m68k.org>
1225
1226 * xdisp.c (set_message): Only check for debug-on-message if STRING
1227 is a string. (Bug#13797)
1228
1938d88c
PE
12292013-02-24 Paul Eggert <eggert@cs.ucla.edu>
1230
1231 Fix regression introduced by July 10 filelock.c patch.
1232 * filelock.c (fill_in_lock_file_name): Fix crash caused by the
1233 2012-07-10 patch to this file. Reported by Eli Zaretskii in
1234 <http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00533.html>
1235 and diagnosed by Andreas Schwab in
1236 <http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00534.html>.
1237
fcee5028
PE
12382013-02-22 Paul Eggert <eggert@cs.ucla.edu>
1239
1240 Assume C89 or better.
1241 * ralloc.c (SIZE, POINTER, NIL):
1242 * vm-limit.c (POINTER):
1243 Remove, replacing all uses with C89 equivalents. These old
1244 symbols were present only for porting to pre-C89 platforms.
1245
d78cf5ed
CB
12462013-02-22 Claudio Bley <claudio.bley@gmail.com>
1247
1248 * w32.c (emacs_gnutls_pull): Don't call 'select', and don't loop.
1249 This avoids warning messages reported as part of Bug#13546.
1250
6bcd97a4
KB
12512013-02-21 Ken Brown <kbrown@cornell.edu>
1252
1253 * sheap.c (report_sheap_usage): Fix arguments of message1_no_log.
1254
b6c2bfff
SM
12552013-02-20 Stefan Monnier <monnier@iro.umontreal.ca>
1256
e11dacb5
SM
1257 * sheap.c (report_sheap_usage): Prefer message1_nolog.
1258
b6c2bfff
SM
1259 * keyboard.c (Qcommand_execute): New var.
1260 (command_loop_1, read_char): Use it.
1261 (Fcommand_execute): Remove, replace by an Elisp implementation.
1262 (syms_of_keyboard): Adjust accordingly.
1263
f4ad7ea1 12642013-02-19 Daniel Colascione <dancol@dancol.org>
b6c2bfff 1265
d69f1120
DC
1266 * sheap.c (report_sheap_usage): Use message, not message1, so
1267 that we don't try to create a buffer while we're in the middle
1268 of dumping Emacs. Explain why.
b6c2bfff 1269
2a14a4f1 12702013-02-20 Dmitry Antipov <dmantipov@yandex.ru>
42926ec8 1271
2a14a4f1
DA
1272 * search.c (find_newline): Return byte position in bytepos.
1273 Adjust comment.
b6c2bfff
SM
1274 (find_next_newline_no_quit, find_before_next_newline):
1275 Add bytepos argument.
2a14a4f1
DA
1276 * lisp.h (find_newline, find_next_newline_no_quit)
1277 (find_before_next_newline): Adjust prototypes.
1278 * bidi.c (bidi_find_paragraph_start):
1279 * editfns.c (Fconstrain_to_field, Fline_end_position):
1280 * indent.c (compute_motion, vmotion):
1281 * xdisp.c (back_to_previous_line_start, forward_to_next_line_start):
1282 (get_visually_first_element, move_it_vertically_backward):
1283 Adjust users and avoid calls to CHAR_TO_BYTE where appropriate.
1284
872faefb 12852013-02-19 Eli Zaretskii <eliz@gnu.org>
17ddfd15
EZ
1286
1287 * w32proc.c (new_child): Avoid leaking handles if the subprocess
1288 resources were not orderly released.
1289
fd80c659
EZ
12902013-02-17 Eli Zaretskii <eliz@gnu.org>
1291
1292 * xdisp.c (x_draw_vertical_border): For a window that is neither
1293 the leftmost nor the rightmost, redraw both the left and the right
1294 vertical borders. (Bug#13723)
1295
2f73da9c
SM
12962013-02-17 Stefan Monnier <monnier@iro.umontreal.ca>
1297
1298 * xml.c (init_libxml2_functions):
1299 * sound.c (sound_warning):
1300 * sheap.c (report_sheap_usage):
1301 * process.c (wait_reading_process_output):
1302 * msdos.c (XMenuActivate):
1303 * macros.c (Fstart_kbd_macro, Fend_kbd_macro):
1304 * keyboard.c (top_level_1):
1305 * editfns.c (Fmessage, Fmessage_box):
1306 * callint.c (Fcall_interactively):
1307 * fns.c (Fyes_or_no_p): Prefer `message1' over `message'.
1308
fd9547e8
JD
13092013-02-17 Jan Djärv <jan.h.d@swipnet.se>
1310
1311 * xterm.c (syms_of_xterm): Move scroll-bar-adjust-thumb-portion ...
fd9547e8
JD
1312 * frame.c (syms_of_frame): ... to here.
1313
f277993b
EZ
13142013-02-16 Eli Zaretskii <eliz@gnu.org>
1315
c7939585
EZ
1316 * w32.c (sys_chown): Remove unused function.
1317
cd91fb4b
EZ
1318 * w32term.c <input_signal_count>: Declare 'volatile'
1319 unconditionally. (Bug#9066)
1320
f277993b
EZ
1321 * w32.c (set_errno): Reset h_errno and don't set it to any other
1322 value. Set errno instead.
1323 (check_errno): Reset h_errno.
1324 (sys_socket, socket_to_fd, sys_bind, sys_connect)
1325 (sys_gethostname, sys_getservbyname, sys_getpeername)
1326 (sys_shutdown, sys_setsockopt, sys_listen, sys_getsockname)
1327 (sys_accept, sys_recvfrom, sys_sendto, fcntl, sys_read): Don't set
1328 h_errno.
1329 (sys_gethostbyname): Set h_errno only errors detected.
1330
e454145b
PE
13312013-02-15 Paul Eggert <eggert@cs.ucla.edu>
1332
1333 * process.c (h_errno) [!HAVE_H_ERRNO]: Remove unused decl.
1334
bcf7fe2a
EZ
13352013-02-15 Eli Zaretskii <eliz@gnu.org>
1336
ef9c57e2
EZ
1337 * keyboard.c (read_char): Fix calculation of auto-save time out
1338 when auto-save-timeout is less than 4. (Bug#13720)
1339
ef862e20 1340 * w32proc.c (new_child): Free up to 2 slots of dead processes at a
b2af991a 1341 time. Improve diagnostics in DebPrint. (Bug#13546)
ef862e20 1342
bcf7fe2a
EZ
1343 * w32.c (sys_socket, sys_bind, sys_connect, sys_gethostname)
1344 (sys_gethostbyname, sys_getservbyname, sys_getpeername)
1345 (sys_shutdown, sys_setsockopt, sys_listen, sys_getsockname)
1346 (sys_accept, sys_recvfrom, sys_sendto, fcntl): In case of failure,
1347 make sure errno is set to an appropriate value. (Bug#13546)
1348 (socket_to_fd): Add assertion against indexing fd_info[] with a
1349 value that is out of bounds.
1350 (sys_accept): If fd is negative, do not set up the child_process
1351 structure for reading.
1352
0063fdb1
DA
13532013-02-15 Dmitry Antipov <dmantipov@yandex.ru>
1354
1355 * composite.c (fill_gstring_header): Remove useless prototype.
1356 Break long line.
1357 * lisp.h (message_dolog, compile_pattern): Adjust prototype.
1358 * print.c (PRINTDECLARE, print_object):
1359 * search.c (compile_pattern, fast_looking_at, search_buffer):
1360 (simple_search, boyer_moore, Freplace_match):
1361 * xdisp.c (c_string_pos, number_of_chars, message_dolog):
1362 (get_overlay_arrow_glyph_row, display_mode_element):
1363 (decode_mode_spec_coding, message3):
1364 * xfaces.c (face_at_string_position): Use bool for booleans.
1365 Adjust comments.
1366
648e5523 13672013-02-15 Paul Eggert <eggert@cs.ucla.edu>
974c7646 1368
35b3a27e
PE
1369 Fix AIX port (Bug#13650).
1370 * lisp.h (XPNTR) [!USE_LSB_TAG && DATA_SEG_BITS]:
1371 Fix bug introduced in 2012-07-27 change. DATA_SEG_BITS, if set,
1372 was #undeffed earlier, so it cannot be used as a macro here.
1373 Use the constant and not the macro.
35b3a27e 1374
648e5523 13752013-02-15 Eli Zaretskii <eliz@gnu.org>
6e432f0c 1376
0e4e7b74
EZ
1377 * w32proc.c (new_child): If no vacant slots are found in
1378 child_procs[], make another pass looking for slots whose process
1379 has exited or died. (Bug#13546)
1380
6e432f0c
EZ
1381 * w32.c (sys_pipe): When failing due to file descriptors above
1382 MAXDESC, set errno to EMFILE.
1383 (_sys_read_ahead): Update cp->status when failing to read serial
1384 communications input, so that the status doesn't stay at
1385 STATUS_READ_IN_PROGRESS. (Bug#13546)
1386
51b3a99c
JD
13872013-02-14 Jan Djärv <jan.h.d@swipnet.se>
1388
1389 * gtkutil.c (tb_size_cb): New function.
1390 (xg_create_tool_bar): Connect size-allocate to tb_size_cb (Bug#13512).
1391
e31560a7
SM
13922013-02-14 Stefan Monnier <monnier@iro.umontreal.ca>
1393
1394 * keyboard.c (active_maps): Fcurrent_active_maps expects a position, not
1395 an event.
1396
fe336261
SM
13972013-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
1398
1399 * keyboard.c (syms_of_keyboard): Further tweaks of docstring.
1400
5a655b9f
DA
14012013-02-13 Dmitry Antipov <dmantipov@yandex.ru>
1402
1403 * font.c (font_range): Add pos_byte argument. Adjust comment
1404 and break long line.
1405 * font.h (font_range): Adjust prototype.
1406 * composite.c (autocmp_chars): Pass byte position to font_range.
1407 Break long line. Remove useless prototype and format comment.
1408
1a359750
GM
14092013-02-13 Glenn Morris <rgm@gnu.org>
1410
1411 * keyboard.c (input-decode-map, key-translation-map): Doc fixes.
1412
01fcc3a5 14132013-02-13 Paul Eggert <eggert@cs.ucla.edu>
4458c255 1414
f53f992a
PE
1415 Improve AIX port some more (Bug#13650).
1416 With this, it should be as good as it was in 23.3, though it's
1417 still pretty bad: the dumped emacs does not run. See Mark Fleishman in
1418 http://lists.gnu.org/archive/html/help-gnu-emacs/2011-04/msg00287.html
1419 * unexaix.c (start_of_text): Remove.
1420 (_data, _text): Declare as char[], not int, as AIX manual suggests.
1421 (bias, lnnoptr, text_scnptr, data_scnptr, load_scnptr)
1422 (orig_load_scnptr, orig_data_scnptr):
1423 Now off_t, not long, since they are file offsets.
1424 (make_hdr): Use _data, not start_of_data ().
1425 This is the key part of the fix.
1426 (make_hdr, unrelocate_symbols): Use off_t for file offsets.
1427 (unrelocate_symbols): Cast pointers to intptr_t, not to ulong.
1428
4458c255
PE
1429 * pre-crt0.c (data_start): Initialize to 1.
1430 This ports to compilers that optimize the external declaration
1431 'int x = 0;' as if it were 'int x;' to shrink the executable.
1432
227be86d
PE
1433 Improve AIX port (Bug#13650).
1434 This doesn't fix the bug, but it makes progress: Emacs builds now.
1435 * unexaix.c: Include inttypes.h, stdarg.h.
1436 (report_error, report_error_1): Mark as _Noreturn.
1437 (report_error): Don't report the wrong errno.
1438 (report_error_1): Now varargs. All callers changed.
1439 (make_hdr): Use uintptr_t, not unsigned, when converting pointers
1440 to unsigned. Don't use ADDR_CORRECT, as it no longer exists.
1441 (write_ptr): Use %p to print address rather than %lx and a cast
1442 to unsigned long. Grow buffer a bit, to be safer.
1443
01fcc3a5 14442013-02-13 Eli Zaretskii <eliz@gnu.org>
713bfeaa
EZ
1445
1446 * bidi.c (bidi_resolve_neutral): After finding the next
1447 non-neutral character, accept NEUTRAL_ON type as well, because
1448 directional control characters, such as LRE and RLE, have their
1449 type converted to that by bidi_resolve_weak. This avoids aborts
1450 when LRE/RLE follows a run of neutrals.
1451 (bidi_move_to_visually_next): Assert that return value of
1452 bidi_peek_at_next_level is non-negative. Negative values will
1453 cause an infloop.
1454
83be8524
PE
14552013-02-13 Paul Eggert <eggert@cs.ucla.edu>
1456
1457 Minor getenv-related fixes.
1458 * callproc.c (Fcall_process_region) [!DOS_NT]:
1459 Avoid unnecessary duplicate call to getenv.
1460 * callproc.c (init_callproc):
1461 * dispnew.c (init_display):
1462 * sysdep.c (sys_subshell):
1463 Omit unnecessary cast of getenv or egetenv.
1464
45b2b768
JB
14652013-02-13 Juanma Barranquero <lekktu@gmail.com>
1466
1467 * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/sysdep.$(O)):
1468 Update dependencies.
1469
33b49d71
EZ
14702013-02-12 Eli Zaretskii <eliz@gnu.org>
1471
1472 * xdisp.c (redisplay_internal): Don't set w->region_showing to the
1473 marker's position.
1474 (display_line): Set w->region_showing to the value of
1475 it->region_beg_charpos, not to -1. This fixes redisplay
1476 optimization when cursor is moved up after M->. (Bug#13623)
1477 (Bug#13626)
c4131562
EZ
1478 (try_scrolling): Scroll text up more if point is too close to ZV
1479 and inside the scroll margin. This makes sure point is moved
1480 outside the scroll margin in these cases.
33b49d71
EZ
1481
1482 * window.h (struct window): region_showing can no longer be
1483 negative.
1484
b09a4810
PE
14852013-02-11 Paul Eggert <eggert@cs.ucla.edu>
1486
a84b7c53
PE
1487 Tune by using memchr and memrchr.
1488 * doc.c (Fsnarf_documentation):
1489 * fileio.c (Fsubstitute_in_file_name):
1490 * search.c (find_newline, scan_newline):
1491 * xdisp.c (pos_visible_p, display_count_lines):
1492 Use memchr and memrchr rather than scanning byte-by-byte.
1493 * search.c (find_newline): Rename from scan_buffer.
1494 Omit first arg TARGET, as it's always '\n'. All callers changed.
1495
b09a4810
PE
1496 Clean up read_key_sequence a tiny bit more.
1497 * keyboard.c (read_char_x_menu_prompt) [HAVE_MENUS]:
1498 (read_key_sequence): Remove unused locals.
1499
99d0d6dc
SM
15002013-02-11 Stefan Monnier <monnier@iro.umontreal.ca>
1501
1502 Clean up read_key_sequence a bit; reread active keymaps after first event.
1503 * keyboard.c (read_char, read_char_x_menu_prompt)
1504 (read_char_minibuf_menu_prompt):
1505 Replace nmaps+maps with a single `map' arg.
1506 (follow_key): Operate on a single map.
1507 (active_maps): New function.
1508 (test_undefined): Also return true for nil bindings.
1509 (read_key_sequence): Use active_maps to replace the arrays of keymaps with
1510 a single (composed) keymap. Remember `first_event' to choose the right
1511 set of active keymaps. Recompute the set of keymaps after receiving
1512 the first event. Remove GOBBLE_FIRST_EVENT.
1513 (syms_of_keyboard): Remove inhibit_local_menu_bar_menus.
1514 * keyboard.h (read_char): Update declaration.
1515 * lread.c (read_filtered_event): Adjust call to read_char.
1516
f5e1b680
EZ
15172013-02-11 Eli Zaretskii <eliz@gnu.org>
1518
99d0d6dc
SM
1519 * xdisp.c (move_it_vertically_backward, move_it_by_lines):
1520 Don't use the limitation on backwards movement when lines are truncated
f5e1b680
EZ
1521 in the window. (Bug#13675)
1522
f74de345
DA
15232013-02-11 Dmitry Antipov <dmantipov@yandex.ru>
1524
1525 * marker.c (set_marker_internal): If desired position is passed
1526 as a marker, avoid call to buf_charpos_to_bytepos.
1527 * window.c (Fset_window_point): Omit redundant type checking.
1528 (Fset_window_start): Likewise. Format comment.
1529 (window_scroll_pixel_based): Use set_marker_restricted_both
1530 with character and byte positions obtained from an iterator.
1531 (Fset_window_configuration): Use set_marker_restricted_both.
1532 * xdisp.c (message_dolog): Likewise.
1533
a4ba3963
EZ
15342013-02-10 Eli Zaretskii <eliz@gnu.org>
1535
99d0d6dc
SM
1536 * xdisp.c (move_it_vertically_backward, move_it_by_lines):
1537 When text lines are longer than window's screen lines, don't move back
a4ba3963
EZ
1538 too far. This speeds up some redisplay operations. (Bug#13675)
1539
68643cde
DA
15402013-02-10 Dmitry Antipov <dmantipov@yandex.ru>
1541
1542 * syntax.c (scan_sexps_forward): Fix byte position calculation
1543 Bug#13664 (a.k.a Bug#13667) introduced with 2013-02-08 change.
1544
7ba11bee
PE
15452013-02-10 Paul Eggert <eggert@cs.ucla.edu>
1546
1547 * fileio.c (Fexpand_file_name): Omit confusing pointer comparison
1548 that was not needed.
1549
eff1c190
PE
15502013-02-09 Paul Eggert <eggert@cs.ucla.edu>
1551
1552 Minor hashing refactoring.
1553 * fns.c (SXHASH_REDUCE): Move to lisp.h.
1554 (sxhash_float): Return EMACS_UINT, for consistency with the other
1555 hash functions.
1556 * lisp.h (INTMASK): Now a macro, since SXHASH_REDUCE is now a
1557 non-static inline function and therefore can't use static vars.
1558 (SXHASH_REDUCE): Move here from fns.c, and make it inline.
1559 * profiler.c (hashfn_profiler): Use SXHASH_REDUCE, to be consistent
1560 with the other hash functions.
1561
6b48c831
EZ
15622013-02-09 Eli Zaretskii <eliz@gnu.org>
1563
4dde2087
EZ
1564 * callproc.c (Fcall_process_region) [WINDOWSNT]: Make sure the
1565 XXXXXX part of the temporary file pattern is not downcased even
1566 when w32-downcase-file-names is non-nil. (Bug#13661)
74ba1583 1567
8549f9e8
EZ
1568 * xdisp.c (decode_mode_spec): Remove handling of %t.
1569
6b48c831
EZ
1570 * msdos.c (careadlinkatcwd): Remove.
1571
75a65c7e
SM
15722013-02-08 Stefan Monnier <monnier@iro.umontreal.ca>
1573
1574 * lread.c (skip_dyn_bytes): New function (bug#12598).
1575 (read1): Use it. Use getc instead of READCHAR to read bytes.
1576 (load_each_byte): Remove. Update users.
1577
8ca30920
DA
15782013-02-08 Dmitry Antipov <dmantipov@yandex.ru>
1579
1580 * search.c (scan_buffer): Calculate end byte position just once.
1581 (scan_newline): Do not recalculate start_byte.
1582 (search_command): Use eassert.
1583 * syntax.c (struct lisp_parse_state): New member location_byte.
1584 (scan_sexps_forward): Record from_byte and avoid redundant
1585 character to byte position calculation ...
1586 (Fparse_partial_sexp): ... here. Break too long line.
1587
25721f5b
DA
15882013-02-08 Dmitry Antipov <dmantipov@yandex.ru>
1589
1590 * lisp.h (make_uninit_vector): New function.
1591 * alloc.c (Fvector, Fmake_byte_code):
1592 * ccl.c (Fregister_ccl_program):
1593 * charset.c (Fdefine_charset_internal, define_charset_internal):
1594 * coding.c (make_subsidiaries, Fdefine_coding_system_internal):
1595 * composite.c (syms_of_composite):
1596 * font.c (Fquery_font, Ffont_info, syms_of_font):
1597 * fontset.c (FONT_DEF_NEW, Fset_fontset_font):
1598 * ftfont.c (ftfont_shape_by_flt):
1599 * indent.c (recompute_width_table):
1600 * nsselect.m (clean_local_selection_data):
1601 * syntax.c (init_syntax_once):
1602 * w32unsubscribe.c (uniscribe_shape):
1603 * window.c (Fcurrent_window_configuration):
1604 * xfaces.c (Fx_family_fonts):
1605 * xselect.c (selection_data_to_lisp_data): Use it.
1606
9a9d91d9
DA
16072013-02-07 Dmitry Antipov <dmantipov@yandex.ru>
1608
1609 * coding.c (Fdefine_coding_system_internal): Use AREF where
1610 argument is known to be a vector.
1611 * fns.c (Flocale_info): Likewise for ASET.
1612 * xselect.c (selection_data_to_lisp_data): Likewise for ASET.
1613 * w32fns.c (w32_parse_hot_key): Likewise for ASIZE and AREF.
1614
6871e574
JD
16152013-02-05 Jan Djärv <jan.h.d@swipnet.se>
1616
1617 * nsmenu.m (update_frame_tool_bar): Check for negative tool bar
1618 height.
1619
1620 * nsterm.h (HAVE_NATIVE_FS): Define if OSX => 10.7.
1621 (EmacsView): Add fs_is_native, fsIsNative, isFullscreen and
1622 updateCollectionBehaviour.
1623
1624 * nsterm.m (NEW_STYLE_FS): Remove.
1625 (ns_last_use_native_fullscreen): New variable.
1626 (x_make_frame_visible): Replace NEW_STYLE_FS with isFullscreen.
1627 (x_set_window_size): Do not take title bar and tool bar into account
1628 if isFullscreen returns YES.
1629 (ns_fullscreen_hook): Replace NEW_STYLE_FS with isFullscreen.
1630 (check_native_fs): New function.
1631 (ns_select, ns_read_socket): Call check_native_fs if HAVE_NATIVE_FS.
1632 (ns_term_init): Remove NEW_STYLE_FS.
1633 (updateFrameSize:, windowWillResize:toSize:): Only adjust for title bar
1634 and tool bar if isFullscreen returns NO.
1635 (windowDidResize:): Replace NEW_STYLE_FS with fsIsNative.
1636 (initFrameFromEmacs:): Initialize fs_is_native. Replace NEW_STYLE_FS
1637 with HAVE_NATIVE_FS.
1638 (window:willUseFullScreenPresentationOptions:): New method.
1639 (windowDidEnterFullScreen:): Replace NEW_STYLE_FS with fsIsNative.
1640 Hide toolbar if not enabled (Bug#13444).
1641 (windowDidExitFullScreen:): Call updateCollectionBehaviour.
1642 Restore tool bar if enabled, hide it otherwise (Bug#13444).
1643 (fsIsNative, isFullscreen, updateCollectionBehaviour): New methods.
1644 (toggleFullScreen:): If fs_is_native, call toggleFullScreen on
1645 window. Do no set FRAME_EXTERNAL_TOOL_BAR (f) to 0.
1646 Check FRAME_EXTERNAL_TOOL_BAR (f) before restoring
1647 FRAME_TOOLBAR_HEIGHT (f). Call updateFrameSize when going non-fs.
1648 (syms_of_nsterm): Add ns-use-native-fullscreen.
1649
3f011c7f
PE
16502013-02-04 Paul Eggert <eggert@cs.ucla.edu>
1651
1652 * fileio.c (Qchoose_write_coding_system): Now static.
1653
86f7c0fe
EZ
16542013-02-04 Eli Zaretskii <eliz@gnu.org>
1655
1656 * xdisp.c (window_buffer_changed): region_showing can be negative,
1657 which still means region is being displayed.
1658 (redisplay_internal): Resurrect code that forced redisplay of the
99d0d6dc
SM
1659 whole window when showing region and the mark has changed.
1660 Record the new mark position to allow redisplay optimizations.
86f7c0fe
EZ
1661 (display_line): If it->region_beg_charpos is non-zero, set the
1662 window's region_showing member to -1. (Bug#13623) (Bug#13626)
1663
1664 * window.h (struct window) <region_showing>: Declare ptrdiff_t,
1665 not bitfield of 1 bit.
1666
5257b701
DC
16672013-02-03 Daniel Colascione <dancol@dancol.org>
1668
1669 * emacs.c: Use execvp, not execv, when DAEMON_MUST_EXEC, so that
1670 daemon mode works on cygw32 when Emacs is installed and not just
1671 during development.
1672
8ea41ea9
PE
16732013-02-02 Paul Eggert <eggert@cs.ucla.edu>
1674
1675 Avoid file time stamp bug on MS-Windows (Bug#13149).
1676 * fileio.c (Fwrite_region): Don't use the heuristic on empty files,
1677 as FAT32 doesn't update time stamps when truncating them.
1678 Also, check that a file time stamp is not a multiple of 100 ns;
1679 this should catch all instances of the problem on MS-Windows,
1680 as its native file system resolution is 100 ns or worse, and
1681 checking for a non-multiple of 100 ns should impose only a small
1682 overhead on systems with ns resolution.
1683
94fbc901 16842013-02-02 Eli Zaretskii <eliz@gnu.org>
18a80473 1685
e7ac588e
EZ
1686 Avoid encoding file names on MS-Windows when they need to be run
1687 through dostounix_filename.
1688 * w32.c (normalize_filename): Accept an additional argument
1689 MULTIBYTE; if non-zero, traverse the file name by bytes and don't
1690 downcase it even if w32-downcase-file-names is non-nil.
1691 (dostounix_filename): Accept an additional argument MULTIBYTE and
1692 pass it to normalize_filename.
1693 (emacs_root_dir): Adjust.
1694
1695 * msdos.h (dostounix_filename): Adjust prototype.
1696
1697 * w32.h (dostounix_filename): Adjust prototype.
1698
1699 * msdos.c (dostounix_filename): Accept an additional argument and
1700 ignore it.
1701 (init_environment): Adjust callers of dostounix_filename.
1702
1703 * fileio.c (Ffile_name_directory, file_name_as_directory)
1704 (directory_file_name, Fexpand_file_name)
1705 (Fsubstitute_in_file_name): [DOS_NT] Adjust call to
1706 dostounix_filename.
1707 [WINDOWSNT]: Downcase file names if w32-downcase-file-names is
1708 non-nil.
1709 (Fsubstitute_in_file_name): [DOS_NT] Don't downcase environment
1710 variables, as egetenv is case-insensitive for DOS_NT.
1711
1712 * dired.c (file_name_completion): Don't call Fdirectory_file_name
1713 with an encoded file name.
1714
99d0d6dc
SM
1715 * w32proc.c (Fw32_short_file_name, Fw32_long_file_name):
1716 Adjust calls to dostounix_filename.
e7ac588e
EZ
1717
1718 * w32fns.c (Fx_file_dialog): Adjust call to dostounix_filename.
1719
1720 * unexw32.c (unexec): Adjust call to dostounix_filename.
1721
1722 * termcap.c (tgetent) [MSDOS]: Adjust call to dostounix_filename.
1723
1724 * emacs.c (decode_env_path) [DOS_NT]: Adjust call to
1725 dostounix_filename.
1726
1727 * callproc.c (Fcall_process) [MSDOS]: Adjust call to
1728 dostounix_filename.
1729
e7c3fb06
EZ
1730 * callproc.c (Fcall_process): Make sure program name in PATH and
1731 new_argv[0] is encoded, if needed. Otherwise, un-encoded string
1732 is passed to exec/spawnve, which fails unless the file-name
1733 encoding is UTF-8.
1734
18a80473
EZ
1735 * w32proc.c (sys_spawnve): Make sure escape_char is initialized,
1736 even if w32-quote-process-args is nil.
1737
35e85499
PE
17382013-02-01 Paul Eggert <eggert@cs.ucla.edu>
1739
1740 Fix timestamp bug when write-region appends nothing (Bug#13149).
1741 * fileio.c (Fwrite_region): When neither O_EXCL nor O_TRUNC is used,
1742 the file's time stamp doesn't change if Emacs happens to write nothing
1743 to the file, and on a buggy file system this could cause Emacs to
1744 incorrectly infer that the file system doesn't have the bug.
1745 Avoid this problem by inhibiting the inference in this case.
1746
422ff52b
DA
17472013-02-01 Dmitry Antipov <dmantipov@yandex.ru>
1748
1749 * window.h (struct window): Convert base_line_number, base_line_pos
1750 and column_number_displayed members from Lisp_Object to ptrdiff_t.
1751 Convert region_showing member from Lisp_Object to bitfield.
1752 Remove sequence_number member. Adjust comments.
1753 * window.c (sequence_number): Remove.
1754 (make_window): Initialize column_number_displayed.
1755 * print.c (print_object): Follow the printed representation of
1756 frames and print window pointer to distinguish between windows.
1757 (adjust_window_count): Invalidate base_line_pos. Adjust comment.
1758 * xdisp.c (wset_base_line_number, wset_base_line_pos)
1759 (wset_column_number_displayed, wset_region_showing): Remove.
1760 (window_buffer_changed, mode_line_update_needed, redisplay_internal)
1761 (try_scrolling, try_cursor_movement, redisplay_window)
1762 (try_window_reusing_current_matrix, try_window_id, display_line)
1763 (display_mode_lines, decode_mode_spec): Adjust users.
1764 * .gdbinit (pwinx): Do not print sequence_number.
1765
8654f9d7
PE
17662013-02-01 Paul Eggert <eggert@cs.ucla.edu>
1767
1768 Use fdopendir, fstatat and readlinkat, for efficiency (Bug#13539).
1769 * conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): Remove.
1770 * dired.c: Include <fcntl.h>.
1771 (open_directory): New function, which uses open and fdopendir
1772 rather than opendir. DOS_NT platforms still use opendir, though.
1773 (directory_files_internal, file_name_completion): Use it.
1774 (file_attributes): New function, with most of the old Ffile_attributes.
1775 (directory_files_internal, Ffile_attributes): Use it.
1776 (file_attributes, file_name_completion_stat): First arg is now fd,
1777 not dir name. All uses changed. Use fstatat rather than lstat +
1778 stat.
1779 (file_attributes): Use emacs_readlinkat rather than Ffile_symlink_p.
1780 * fileio.c: Include <allocator.h>, <careadlinkat.h>.
1781 (emacs_readlinkat): New function, with much of the old
1782 Ffile_symlink_p, but with an fd argument for speed.
1783 It uses readlinkat rather than careadlinkatcwd, so that it
1784 need not assume the working directory.
1785 (Ffile_symlink_p): Use it.
1786 * filelock.c (current_lock_owner): Use emacs_readlinkat
1787 rather than emacs_readlink.
1788 * lisp.h (emacs_readlinkat): New decl.
1789 (READLINK_BUFSIZE, emacs_readlink): Remove.
1790 * sysdep.c: Do not include <allocator.h>, <careadlinkat.h>.
1791 (emacs_norealloc_allocator, emacs_readlink): Remove.
1792 This stuff is moved to fileio.c.
1793 * w32.c (fstatat, readlinkat): New functions.
1794 (careadlinkat): Don't check that fd == AT_FDCWD.
1795 (careadlinkatcwd): Remove; no longer needed.
1796
9dbda100
GM
17972013-01-31 Glenn Morris <rgm@gnu.org>
1798
1799 * fileio.c (choose_write_coding_system): Make it callable from Lisp.
20a8c477
GM
1800 (Fwrite_region): Update for new choose_write_coding_system args.
1801 Move the last piece of choose_write_coding_system here. (Bug#13522)
9dbda100
GM
1802 (syms_of_fileio): Add choose-write-coding-system.
1803
3f82a88a 18042013-01-30 Eli Zaretskii <eliz@gnu.org>
224f4ec1
EZ
1805
1806 * w32.c (sys_open): Zero out the flags for the new file descriptor.
1807 (sys_close): Zero out the flags for the file descriptor before
1808 closing it. (Bug#13546)
1809
806fed21 1810 * w32.c (parse_root, get_volume_info, readdir, read_unc_volume)
99d0d6dc
SM
1811 (logon_network_drive, stat_worker, symlink, chase_symlinks):
1812 Use CharNextExA and CharPrevExA to iterate over file names encoded in
806fed21
EZ
1813 DBCS. (Bug#13553)
1814
6ee4509a
EZ
1815 * w32.c (w32_get_long_filename, init_environment, readlink):
1816 Support file names encoded in DBCS codepages.
26854e9c
EZ
1817 (readlink): Use the current file-name-coding-system, not the ANSI
1818 codepage, to decode and handle targets of symlinks.
6ee4509a 1819
cf01a359
EZ
18202013-01-28 Eli Zaretskii <eliz@gnu.org>
1821
1822 * w32.c (opendir): Now accepts a 'const char *'.
1823
6fd326b7
DA
18242013-01-28 Dmitry Antipov <dmantipov@yandex.ru>
1825
1826 Remove obsolete redisplay code. See the discussion at
1827 http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00576.html.
1828 * dispnew.c (preemption_period, preemption_next_check): Remove.
1829 (Vredisplay_preemption_period): Likewise.
1830 (update_frame, update_single_window, update_window, update_frame_1):
1831 Adjust users. Always assume that PERIODIC_PREEMPTION_CHECKING is not
1832 used, following the 2012-06-22 change.
1833
d8cd7742
EZ
18342013-01-25 Eli Zaretskii <eliz@gnu.org>
1835
1836 * w32notify.c (Fw32notify_add_watch): Doc fix. (Bug#13540)
1837
266fee4f
DA
18382013-01-25 Dmitry Antipov <dmantipov@yandex.ru>
1839
1840 * font.c (num_fonts): Remove the leftover from old
1841 debugging code. Adjust comment style here and there.
59e624b3
DA
1842 * insdel.c (insert_1): Remove.
1843 * lisp.h (insert_1): Remove prototype.
1844 * xdisp.c (message_dolog): Adjust users to call insert_1_both.
266fee4f 1845
830e46e6 18462013-01-25 Eli Zaretskii <eliz@gnu.org>
6d2851de
EZ
1847
1848 * w32.c (max_filename_mbslen): New function.
1849 (normalize_filename, readdir): Use it to detect locales where ANSI
1850 encoding of file names uses a double-byte character set (DBCS).
1851 If a DBCS encoding is used, advance by characters using
99d0d6dc
SM
1852 CharNextExA, instead of incrementing a 'char *' pointer.
1853 Use _mbslwr instead of _strlwr. (Bug#13515)
6d2851de 1854
81abbb95
EZ
1855 * w32heap.c (allocate_heap) [!_WIN64]: Decrease the initial
1856 request of memory reservation to 1.7GB. (Bug#13065)
1857
830e46e6 18582013-01-25 Andreas Schwab <schwab@linux-m68k.org>
ba14c607
AS
1859
1860 * coding.c (detect_coding_iso_2022): Move back mis-reordered code
1861 at check_extra_latin label. (Bug#13505)
1862
fd3ceb09
DA
18632013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
1864
1865 * nsfont.m (ns_escape_name, ns_unescape_name, ns_registry_to_script):
1866 Avoid redundant calls to strlen.
1867
edfa7fa0
DA
18682013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
1869
1870 Drop async_visible and async_iconified fields of struct frame.
1871 This is possible because async input is gone; for details, see
1872 http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00734.html.
1873 * frame.h (struct frame): Remove async_visible and async_iconified
1874 members, convert garbaged to unsigned bitfield. Adjust comments.
1875 (FRAME_SAMPLE_VISIBILITY): Remove. Adjust all users.
1876 (SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED): New macros.
1877 * frame.c, gtkutil.c, term.c, w32fns.c, window.c, xdisp.c:
1878 Consistently use SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED,
1879 FRAME_VISIBLE_P and FRAME_ICONIFIED_P macros where appropriate.
1880 * w32term.c: Ditto.
1881 (w32_read_socket): Save iconified state to generate DEICONIFY_EVENT
1882 properly. Likewise for obscured.
1883 * xterm.c: Ditto.
266fee4f 1884 (handle_one_xevent): Save visible state to generate ICONIFY_EVENT
edfa7fa0
DA
1885 properly.
1886 * nsterm.m: Ditto.
1887 (windowDidDeminiaturize): Generate DEICONIFY_EVENT.
1888
5ad86e34
DA
18892013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
1890
1891 * insdel.c (prepare_to_modify_buffer): Revert last change as suggested
1892 in http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00555.html.
1893
b09cca6a
SM
18942013-01-23 Stefan Monnier <monnier@iro.umontreal.ca>
1895
1896 * xdisp.c (message2, message2_nolog): Remove functions.
1897 (message3, message3_nolog): Extract nbytes and multibyteness directly
1898 from the string. Change all callers.
1899 (message3_nolog): Don't set message_enable_multibyte since set_message
1900 will reset it anyway.
1901 (message1, message1_nolog): Use message3.
1902 (vmessage): Use a stack allocated buffer rather than f->message_buf.
1903 (with_echo_area_buffer): Remove last two arguments. Update all callers.
1904 (set_message): Drop all but the second arg, which has to be a string.
1905 (set_message_1): Simplify now that we know that a1 is NULL and the
1906 second arg is a string.
1907 * frame.h (struct frame): Remove `message_buf' field.
1908 Use glyphs_initialized_p instead.
1909 (FRAME_MESSAGE_BUF): Remove macro.
1910 * w16select.c (Fw16_set_clipboard_data): Prefer message3 to message2.
1911 * lisp.h (message2, message2_nolog): Remove declarations.
1912 (message3, message3_nolog): Update declarations.
1913 * keyboard.c (read_char_minibuf_menu_text)
1914 (read_char_minibuf_menu_width): Remove vars.
1915 (read_char_minibuf_menu_prompt): Rewrite the menu's construction so as
1916 to correctly handle multibyte strings.
1917 * frame.c (delete_frame): Don't free message_buf any more.
1918 * editfns.c (message_text, message_length): Remove vars.
1919 (Fmessage_box): Don't copy the Lisp string's bytes any longer.
1920 * fileio.c (auto_save_error): Use message3 instead of message2.
1921 * dispnew.c (adjust_frame_message_buffer): Remove function.
1922
54ab1c5a
EZ
19232013-01-23 Eli Zaretskii <eliz@gnu.org>
1924
1925 * w32term.c (w32fullscreen_hook): Account correctly for the screen
1926 real estate used for the tool bar and the menu bar.
1927
6c27465b
DA
19282013-01-23 Dmitry Antipov <dmantipov@yandex.ru>
1929
1930 * insdel.c (prepare_to_modify_buffer): Force redisplay if
1931 hidden buffer is prepared to modification (Bug#13164).
1932
9d93ce29
DA
19332013-01-22 Dmitry Antipov <dmantipov@yandex.ru>
1934
1935 * window.h (struct window): Change window_end_valid member from
1936 Lisp_Object to a bitfield. Adjust comments.
1937 (wset_window_end_valid): Remove.
1938 * window.c (adjust_window_count): Clear window_end_valid.
1939 (Fwindow_end): Adjust user. Remove ancient #if 0 code.
1940 (Fwindow_line_height, set_window_buffer, Frecenter)
1941 (Fsplit_window_internal, Fdelete_other_windows_internal)
1942 (Fset_window_fringes, Fset_window_scroll_bars): Adjust users.
1943 * dispnew.c (adjust_glyph_matrix, clear_window_matrices): Likewise.
1944 * xdisp.c (check_window_end, reconsider_clip_changes)
1945 (redisplay_internal, mark_window_display_accurate_1, redisplay_window)
1946 (try_window, try_window_reusing_current_matrix, note_mouse_highlight)
1947 (find_first_unchanged_at_end_row, try_window_id): Likewise.
1948
1dcb8ea2
DA
19492013-01-22 Dmitry Antipov <dmantipov@yandex.ru>
1950
1951 * xdisp.c (mark_window_display_accurate): Simplify the loop
1952 assuming that the only one of vchild, hchild or buffer window
1953 slots is non-nil. Call mark_window_display_accurate_1 for
1954 the leaf windows only.
1955 (mark_window_display_accurate_1): Always assume leaf window.
1956 Adjust comment.
1957
b41b8a7e
PE
19582013-01-22 Paul Eggert <eggert@cs.ucla.edu>
1959
593a5f2e
PE
1960 * emacs.c (Qkill_emacs_hook): Now static.
1961
b41b8a7e
PE
1962 * fileio.c (Finsert_file_contents): Simplify.
1963 Remove unnecessary assignments and tests.
1964
84e5ed96
EZ
19652013-01-21 Eli Zaretskii <eliz@gnu.org>
1966
1967 * w32.c (acl_set_file): Don't test for errors unless
1968 set_file_security returns FALSE. Avoids spurious errors when
1969 saving files.
1970
2ef88fd4
DA
19712013-01-21 Dmitry Antipov <dmantipov@yandex.ru>
1972
1973 * fileio.c (Finsert_file_contents): Revert code introduced at
1974 2013-01-18 in favor of the simpler and generally better fix.
1975 Save stack space by removing 'buffer' and reusing 'read_buf'
1976 where appropriate.
1977
d7a0a7c9
PE
19782013-01-19 Paul Eggert <eggert@cs.ucla.edu>
1979
1980 * lisp.h (eabs): Define unconditionally (Bug#13419).
1981 The old "#if !defined (eabs)" was an unnecessary revenant of back
1982 when this macro was called "abs". Document 'eabs' better.
1983
795e7a5b 19842013-01-19 Glenn Morris <rgm@gnu.org>
085d34c4
GM
1985
1986 * fns.c (Frandom): Doc fix.
1987
59ac2d13
EZ
19882013-01-19 Eli Zaretskii <eliz@gnu.org>
1989
1990 * editfns.c (get_pos_property): Use SAFE_ALLOCA_LISP, to avoid
1991 segfault when there are lots of overlays.
1992
1993 * buffer.c (sort_overlays): Use SAFE_NALLOCA, to avoid segfault
99d0d6dc
SM
1994 when there are lots of overlays.
1995 See http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00421.html
59ac2d13
EZ
1996 for the details and a way to reproduce.
1997
b3fbb395
PE
19982013-01-19 Paul Eggert <eggert@cs.ucla.edu>
1999
3a955a1f
PE
2000 * fileio.c: Use O_APPEND to append.
2001 This corresponds better to the natural interpretation of "append",
2002 and avoids the need to open the output file twice, or to invoke
2003 lseek when APPEND is neither nil nor a number.
2004 This relies on POSIX 1003.1-1988 or later, which is OK nowadays.
2005 (Fwrite_region): Simplify. Use O_APPEND instead of opening the
2006 file possibly twice, and lseeking to its end; this avoids the
2007 need to lseek on non-regular files. Do not use O_EXCL and O_TRUNC
2008 at the same time: the combination is never needed and apparently
2009 it doesn't work with DOS_NT.
2010
21cd50b8
PE
2011 Fix size bug on DOS_NT introduced by CIFS workaround (Bug#13149).
2012 * fileio.c (Fwrite_region): Use O_BINARY in checking code, too.
2013
b3fbb395
PE
2014 Allow floating-point file offsets.
2015 Problem reported by Vitalie Spinu in
2016 <http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00411.html>.
2017 * fileio.c (emacs_lseek): Remove.
2018 (file_offset): New function.
2019 (Finsert_file_contents, Fwrite_region): Use it.
2020
73c14218
CY
20212013-01-19 Chong Yidong <cyd@gnu.org>
2022
2023 * emacs.c (Fkill_emacs): Set waiting_for_input to 0 to avoid
2024 aborting on Fsignal (Bug#13289).
2025
6a9465f3
EZ
20262013-01-19 Eli Zaretskii <eliz@gnu.org>
2027
2028 * w32.c (acl_set_file): Treat ERROR_ACCESS_DENIED from
2029 set_file_security as failure due to insufficient privileges.
2030 Reported by Fabrice Popineau <fabrice.popineau@supelec.fr>.
76e9f7b9 2031 (fstat): Return owner and group like 'stat' and 'lstat' do.
6a9465f3 2032
fa705c99
PE
20332013-01-19 Paul Eggert <eggert@cs.ucla.edu>
2034
9fe43ff6
PE
2035 Work around bug in CIFS and vboxsf file systems (Bug#13149).
2036 The bug was observed on Ubuntu operating inside a virtual machine,
2037 editing files mounted via CIFS or vboxsf from the MS Windows 7 host.
2038 The workaround introduces a race condition on non-buggy hosts,
2039 but it's an unlikely race and anyway there's a nearly identical
2040 nearby race that can't be fixed.
2041 * fileio.c (valid_timestamp_file_system, timestamp_file_system):
2042 New static vars.
2043 (Fwrite_region): Test for file system time stamp bug.
2044 (init_fileio): New function.
2045 * lisp.h (init_fileio): Declare it.
2046 * emacs.c (main): Call it.
2047
fa705c99
PE
2048 * fileio.c (Finsert_file_contents): Simplify new diagnostic
2049 and make it more consistent with other stat-failure diagnostics.
2050
e07469fa
DA
20512013-01-18 Dmitry Antipov <dmantipov@yandex.ru>
2052
99d0d6dc
SM
2053 Fix crash when inserting data from non-regular files.
2054 See http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00406.html
e07469fa
DA
2055 for the error description produced by valgrind.
2056 * fileio.c (read_non_regular): Rename to read_contents.
2057 Free Lisp_Save_Value object used to pass parameters.
2058 (read_non_regular_quit): Rename to read_contents_quit.
2059 (Finsert_file_contents): Redesign internal file reading loop to adjust
2060 gap and end positions after each read and so help make_gap to work
2061 properly. Do not signal an I/O error too early and so do not leave
2062 not yet decoded characters in a buffer, which was the reason of
2063 redisplay crash. Use list2 to build return value. Adjust comments.
2064
67722112
PE
20652013-01-17 Paul Eggert <eggert@cs.ucla.edu>
2066
2067 Close a race when statting and reading files (Bug#13149).
2068 * fileio.c (Finsert_file_contents): Use open+fstat, not stat+open.
2069 This avoids a race if the file is renamed between stat and open.
2070 This race is not the problem originally noted in Bug#13149;
2071 see <http://bugs.gnu.org/13149#73> and later messages in the thread.
2072
468afbac
DA
20732013-01-17 Dmitry Antipov <dmantipov@yandex.ru>
2074
2075 * lisp.h (toplevel): Add comment about using Lisp_Save_Value
2076 objects, related functions and macros.
2077 (make_save_value): Adjust prototype.
2078 (make_save_pointer): New prototype.
2079 (SAFE_NALLOCA): Fix indentation. Use make_save_pointer.
2080 (SAFE_ALLOCA_LISP): Adjust make_save_value usage.
2081 * alloc.c (format_save_value): Rename to make_save_value.
2082 (make_save_pointer): New function.
2083 (record_xmalloc): Use make_save_pointer.
2084 * dired.c, editfns.c, fileio.c, font.c, gtkutil.c, lread.c:
2085 * nsmenu.m, nsterm.m, xfns.c, xmenu.c, xselect.c, keymap.c:
2086 Change users of make_save_value to make_save_pointer.
2087 Likewise for format_save_value and make_save_value.
2088
0e70695a
DA
20892013-01-17 Dmitry Antipov <dmantipov@yandex.ru>
2090
2091 * buffer.h (NARROWED, BUF_NARROWED): Drop unused macros.
2092 (DECODE_POSITION, BUFFER_CHECK_INDIRECTION): Fix indentation.
2093 * buffer.c (toplevel, syms_of_buffer): Drop old commented-out
2094 debugging stubs.
2095
963ea40f
PE
20962013-01-15 Paul Eggert <eggert@cs.ucla.edu>
2097
2098 * alloc.c (free_save_value): Now static.
2099
3346c1d0
DA
21002013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
2101
2102 * keymap.c (map_keymap_internal): Use format_save_value.
2103 (map_keymap_char_table_item): Adjust accordingly.
2104 * fileio.c (non_regular_fd, non_regular_inserted)
2105 (non_regular_nbytes): Remove.
99d0d6dc
SM
2106 (Finsert_file_contents): Convert trytry to ptrdiff_t.
2107 Use format_save_value to pass parameters to read_non_regular.
3346c1d0
DA
2108 (read_non_regular): Use XSAVE_ macros to extract parameters.
2109 Adjust comment.
2110 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT && !USE_GTK]: Use
2111 format_save_value.
2112 (pop_down_menu) [!USE_X_TOOLKIT && !USE_GTK]: Adjust user.
2113
2b30549c
DA
21142013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
2115
2116 * lisp.h (XSAVE_POINTER, XSAVE_INTEGER): Change to allow
2117 extraction from any Lisp_Save_Value slot. Add type checking.
2118 * alloc.c, dired.c, editfns.c, fileio.c, ftfont.c, gtkutil.c:
2119 * keymap.c, lread.c, nsterm.h, nsmenu.c, xfns.c, xmenu.c:
2120 * xselect.c: All users changed.
2121
1b971ac1
DA
21222013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
2123
2124 Some convenient bits to deal with Lisp_Save_Values.
2125 * lisp.h (XSAVE_OBJECT): New macro to extract saved objects.
2126 (allocate_misc): Remove prototype.
2127 (format_save_value): New prototype.
2128 * alloc.c (allocate_misc): Revert back to static.
2129 (format_save_value): New function to build Lisp_Save_Value
2130 object with the specified internal structure.
2131 (make_save_value): Reimplement using format_save_value.
2132 * editfns.c (save_excursion_save): Use format_save_value.
2133 (save_excursion_restore): Use XSAVE_OBJECT.
2134
c50cf2ea
PE
21352013-01-14 Paul Eggert <eggert@cs.ucla.edu>
2136
2137 Avoid needless casts with XSAVE_POINTER.
2138 * alloc.c (mark_object) [GC_MARK_STACK]:
2139 * dired.c (directory_files_internal_unwind):
2140 * fileio.c (do_auto_save_unwind):
2141 * gtkutil.c (pop_down_dialog):
2142 * keymap.c (map_keymap_char_table_item):
2143 * lread.c (load_unwind):
2144 * nsmenu.m (pop_down_menu):
2145 * print.c (print_object) [GC_MARK_STACK]:
2146 * xfns.c (clean_up_file_dialog):
2147 * xmenu.c (cleanup_widget_value_tree):
2148 Omit casts between XSAVE_POINTER and a pointer type.
2149
9d5a1260
DA
21502013-01-14 Dmitry Antipov <dmantipov@yandex.ru>
2151
2152 Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE.
2153 * eval.c (eval_sub): Protect `form' from being GCed before its
2154 car and cdr becomes protected with the backtrace entry.
2155
73ebd38f
DA
21562013-01-14 Dmitry Antipov <dmantipov@yandex.ru>
2157
2158 Make Lisp_Save_Value more versatile storage for up to four objects.
2159 * lisp.h (toplevel): Enumeration to describe types of saved objects.
2160 (struct Lisp_Save_Value): New layout. Adjust comments.
2161 (XSAVE_POINTER): New macro.
2162 (XSAVE_INTEGER): Likewise.
2163 (allocate_misc): Add prototype.
2164 (free_misc): Likewise.
2165 * alloc.c (allocate_misc): Now global.
2166 (free_misc): Likewise. Adjust comment.
2167 (make_save_value): Use new Lisp_Save_Value layout. Adjust comment.
2168 (free_save_value): Likewise.
2169 (mark_object): Likewise.
2170 * editfns.c (save_excursion_save): Pack everything within
2171 Lisp_Save_Value and so avoid xmalloc.
2172 (save_excursion_restore): Adjust to match new layout. Use free_misc
2173 because we do not allocate extra memory any more. Add eassert.
2174 * print.c (print_object): New code to print Lisp_Save_Value. Do not
2175 rely on valid_lisp_object_p if !GC_MARK_STACK. Adjust comments.
2176 * dired.c, fileio.c, font.c, ftfont.c, gtkutil.c, keymap.c,
2177 * lread.c, nsmenu.m, nsterm.h, xfns.c, xmenu.c, xselect.c:
2178 Use XSAVE_POINTER and XSAVE_INTEGER where appropriate.
2179
b826986f
JD
21802013-01-13 Jan Djärv <jan.h.d@swipnet.se>
2181
2182 * nsfont.m (LCD_SMOOTHING_MARGIN): New define.
2183 (nsfont_draw): Remove disabling of LCD smoothing.
2184 (ns_glyph_metrics): Add LCD_SMOOTHING_MARGIN to bearings to fix
2e7a1892 2185 Bug#11484 with LCD smoothing on.
b826986f 2186
c0511b57 21872013-01-13 Paul Eggert <eggert@cs.ucla.edu>
45b7bfdd 2188
b6f960a0
PE
2189 Fix SIGDANGER handlers, for AIX (Bug#13408).
2190 * sysdep.c.c (handle_danger_signal, deliver_danger_signal) [SIGDANGER]:
2191 Move handlers here from emacs.c; they were out of place.
2192
616763d5
JD
21932013-01-11 Jan Djärv <jan.h.d@swipnet.se>
2194
2195 * xterm.c (syms_of_xterm): Adjust documentation for
2196 scroll-bar-adjust-thumb-portion.
2197
0b59090b 21982012-12-31 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
ec782c5f
JD
2199
2200 * xterm.c (scroll-bar-adjust-thumb-portion): New variable to
2201 determine whether scroll bar thumb size should be adjusted or
2202 not. Use variable for MOTIF.
2203
2204 * gtkutil.c (scroll-bar-adjust-thumb-portion): Use variable for
2205 GTK.
2206
7bc916b4
JD
22072013-01-13 Jan Djärv <jan.h.d@swipnet.se>
2208
eac4d08f
JD
2209 * nsterm.m (keyDown:): Set processingCompose to NO if an emacs key
2210 event is generated.
2211 (doCommandBySelector:): Set processingCompose to NO.
2212
7bc916b4
JD
2213 * nsfont.m (ns_findfonts): Add block/unblock_input calls.
2214 Remove check for fkeys count > zero, block/unblock fixes the real bug.
2215 (nsfont_list_family): Add block/unblock_input calls.
2216 (nsfont_open): Move block_input earlier. Add unblock_input before early
2217 return.
2218 (nsfont_draw): Add block/unblock_input calls.
2219
bdc9b756
PE
22202013-01-12 Dmitry Antipov <dmantipov@yandex.ru>
2221
2222 * indent.c (Fvertical_motion): Remove now-incorrect GCPROs
2223 for old_charpos and old_bytepos.
2224
ee56a6dc
PE
22252013-01-12 Paul Eggert <eggert@cs.ucla.edu>
2226
2227 Fix bug with set-time-zone-rule and LOCALTIME_CACHE (Bug#13415).
2228 * editfns.c (set_time_zone_rule) [LOCALTIME_CACHE]:
2229 Clear tzvalbuf_in_environ if this workaround is in effect.
2230 Problem and fix reported by Kazuhiro Ito.
2231
9fc9a531
AH
22322013-01-11 Aaron S. Hawley <Aaron.Hawley@vtinfo.com>
2233
99d0d6dc
SM
2234 * insdel.c (Fcombine_after_change_execute, syms_of_insdel):
2235 Fix ambiguous doc string cross-reference(s).
9fc9a531
AH
2236
2237 * keyboard.c (Fcommand_execute, syms_of_keyboard): Fix ambiguous
2238 doc string cross-reference(s).
2239
2240 * window.c (Fwindow_point, syms_of_window): Fix ambiguous doc
2241 string cross-reference(s).
2242
6020559a
DA
22432013-01-11 Dmitry Antipov <dmantipov@yandex.ru>
2244
2245 Avoid unnecessary byte position calculation for the gap movement.
2246 Since all users of move_gap do CHAR_TO_BYTE for other purposes
2247 anyway, all of them should use move_gap_both instead.
2248 * lisp.h (move_gap): Remove prototype.
2249 * insdel.c (move_gap): Remove.
2250 (move_gap_both): Add eassert.
2251 * editfns.c (Ftranspose_regions): Tweak to use move_gap_both.
2252 * xml.c (parse_region): Likewise.
2253
b8956427
PE
22542013-01-11 Paul Eggert <eggert@cs.ucla.edu>
2255
2256 emacsclient -t should not suspend Emacs server (Bug#13387)
2257 * lisp.h, sysdep.c (block_tty_out_signal, unblock_tty_out_signal):
2258 New functions.
2259 * term.c (init_tty): Use them instead of rolling our own code.
2260 * sysdep.c (tcsetpgrp_without_stopping): Likewise. Here, this
2261 switches from 'signal' to 'pthread_sigmask', which is safer in
2262 multithreaded applications.
2263 * term.c (Fresume_tty): Don't bother dissociating if O_IGNORE_CTTY,
2264 which has already arranged for that.
2265 (dissociate_if_controlling_tty): If setsid fails, fall back on TIOCNOTTY.
2266 This is the main part of the bug fix.
2267
0b59090b 22682013-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> (tiny change)
48660ca5
JD
2269
2270 * gtkutil.c (xg_initialize): Add ifdef HAVE_FREETYPE around
2271 x_last_font_name (Bug#13403).
2272
58cc0a01
DA
22732013-01-10 Dmitry Antipov <dmantipov@yandex.ru>
2274
2275 Omit buffer_slot_type_mismatch and use generic predicates to enforce
2276 the type of per-buffer values where appropriate.
2277 * lisp.h (struct Lisp_Buffer_Objfwd): Rename slottype member to
2278 predicate, which is how it's really used now. Adjust comment.
2279 * buffer.h (buffer_slot_type_mismatch): Remove prototype.
2280 * buffer.c (buffer_slot_type_mismatch): Remove.
2281 (DEFVAR_PER_BUFFER, defvar_per_buffer): Rename type argument to
2282 predicate. Adjust comment.
2283 (syms_of_buffer): Use Qsymbolp for major-mode. Use Qintegerp for
2284 fill-column, left-margin, tab-width, buffer-saved-size,
2285 left-margin-width, right-margin-width, left-fringe-width,
2286 right-fringe-width, scroll-bar-width and buffer-display-count.
2287 Use Qstringp for default-directory, buffer-file-name,
2288 buffer-file-truename and buffer-auto-save-file-name. Use Qfloatp for
2289 scroll-up-aggressively and scroll-down-aggressively. Use Qnumberp for
2290 line-spacing.
2291 * data.c (store_symval_forwarding): Adjust to call the predicate.
2292
5104861e
JB
22932013-01-09 Juanma Barranquero <lekktu@gmail.com>
2294
2295 * w32.c (get_name_and_id, acl_set_file):
2296 * w32term.c (w32fullscreen_hook): Remove unused local variables.
2297
eefd7278
DA
22982013-01-09 Dmitry Antipov <dmantipov@yandex.ru>
2299
2300 * lisp.h (make_gap_1): New prototype.
2301 * buffer.h (GAP_BYTES_DFL, GAP_BYTES_MIN): New macros for the special
2302 gap size values.
2303 * editfns.c (Fbuffer_size): Rename from Fbufsize to fit the common
2304 naming convention.
2305 (syms_of_editfns): Adjust defsubr. Drop commented-out obsolete code.
2eae9ccc 2306 * insdel.c (make_gap_larger): Use GAP_BYTES_DFL. Adjust comment.
eefd7278
DA
2307 (make_gap_smaller): Use GAP_BYTES_MIN. Adjust comment.
2308 (make_gap_1): New function to adjust the gap of any buffer.
2309 * coding.c (coding_alloc_by_making_gap): Use it.
2310 * buffer.c (compact_buffer): Likewise. Use BUF_Z_BYTE, BUF_GAP_SIZE,
2311 GAP_BYTES_DFL and GAP_BYTES_MIN. Adjust comment.
2312
073ca75b
JL
23132013-01-08 Juri Linkov <juri@jurta.org>
2314
2315 * xfaces.c (tty_supports_face_attributes_p): Return 0 for the case
2316 of (supports :underline (:style wave)). (Bug#13000)
2317
3bace969
AH
23182013-01-08 Aaron S. Hawley <aaron.s.hawley@gmail.com>
2319
2320 * undo.c (Fprimitive_undo): Move to simple.el.
2321 (syms_of_undo): Remove declarations for Sprimitive_undo.
2322
63a63bd4
SM
23232013-01-08 Stefan Monnier <monnier@iro.umontreal.ca>
2324
2325 * keyboard.c (echo_add_key): Rename from echo_add_char.
2326
56ed110a
CY
23272013-01-06 Chong Yidong <cyd@gnu.org>
2328
2329 * keyboard.c (echo_add_char): New function, factored out from
2330 echo_char. Don't add a space if the previous echo string was
2331 empty (Bug#13255).
2332 (echo_char): Use it.
2333 (read_key_sequence): When echoing mock input, ensure that the
2334 trailing dash is properly added.
2335
b630991b
EZ
23362013-01-05 Eli Zaretskii <eliz@gnu.org>
2337
2338 * xdisp.c (dump_glyph): Align glyph data better. Use "pD" instead
2339 of a non-portable "t" to print ptrdiff_t values. Allow up to 9
63a63bd4
SM
2340 digits for buffer positions, before misalignment starts.
2341 Display "0" for integer "object" field.
b630991b
EZ
2342 (dump_glyph_row): Adapt the header line to changes in dump_glyph.
2343 Display the newline glyph more unambiguously.
2344
f032a318
YM
23452013-01-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2346
2347 * nsterm.m (ns_draw_underwave):
2348 * w32term.c (w32_draw_underwave):
2349 * xterm.c (x_draw_underwave): Make underwave look more triangular
2350 and also degrade gracefully for small fonts. (Bug#13000)
2351
4240dd3c
YM
2352 * nsterm.m (ns_draw_text_decoration):
2353 * w32term.c (x_draw_glyph_string):
2354 * xterm.c (x_draw_glyph_string): Don't use previous underline
2355 thickness and position if previous underline type is underwave.
2356
553081a5
SM
23572013-01-04 Stefan Monnier <monnier@iro.umontreal.ca>
2358
2359 * fileio.c (Ffile_acl): Undocument return format.
2360
9539d465 23612013-01-02 Glenn Morris <rgm@gnu.org>
08f59219
GM
2362
2363 * keymap.c (Fkey_description): Doc fix. (Bug#13323)
2364
71376d4b
PE
23652013-01-02 Paul Eggert <eggert@cs.ucla.edu>
2366
2367 Simplify via eabs.
2368 * dired.c (file_name_completion):
2369 * doc.c (get_doc_string):
2370 * floatfns.c (round2):
2371 * font.c (font_score, font_delete_unmatched):
2372 * fringe.c (compute_fringe_widths):
2373 * lread.c (read_list):
2374 * minibuf.c (Ftry_completion):
2375 * term.c (tty_ins_del_lines):
2376 * xterm.c (x_draw_image_foreground, x_draw_image_foreground_1):
2377 Use eabs (x) rather than open-coding it as (x < 0 ? -x : x).
2378
a7f11948
EZ
23792012-12-31 Eli Zaretskii <eliz@gnu.org>
2380
2381 * w32.c (unsetenv): Set up the string passed to _putenv
63a63bd4
SM
2382 correctly.
2383 See http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00863.html
a7f11948
EZ
2384 for the bug this caused.
2385
84cc1ab6
PE
23862012-12-30 Paul Eggert <eggert@cs.ucla.edu>
2387
2388 * coding.c (Qmac): Now static.
2389
5a1d858b
JD
23902012-12-30 Jan Djärv <jan.h.d@swipnet.se>
2391
2392 * gtkutil.c (TOOLBAR_TOP_WIDGET): New macro.
2393 (xg_pack_tool_bar): Use TOOLBAR_TOP_WIDGET, condition out use of
2394 handlebox_widget. Set toolbar_in_hbox to false/true, set
2395 toolbar_is_packed to true.
2396 (xg_update_tool_bar_sizes): Use widget returned by TOOLBAR_TOP_WIDGET.
2397 (update_frame_tool_bar): Check toolbar_is_packed for packing.
2398 Show all on TOOLBAR_TOP_WIDGET.
2399 (free_frame_tool_bar): Check toolbar_is_packed. Use widget returned
2400 by TOOLBAR_TOP_WIDGET.
2401 (xg_change_toolbar_position): Use widget returned by TOOLBAR_TOP_WIDGET.
2402 Check toolbar_is_packed.
8b745d92
JD
2403 (xg_have_tear_offs, tearoff_remove, tearoff_activate): Condition on
2404 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2405 (xg_have_tear_offs): When ! HAVE_GTK_TEAROFF_MENU_ITEM_NEW, return
2406 false.
2407 (create_menus): Create tearoff only if HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2408 (xg_update_menubar): Update title only if
2409 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2410 (xg_update_submenu): Skip tearoff only if
2411 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2412 (xg_initialize): Initialize xg_detached_menus only if
2413 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
5a1d858b
JD
2414
2415 * xterm.h (struct x_output): Surround handlebox_widget with
2416 #ifdef HAVE_GTK_HANDLE_BOX_NEW. toolbar_is_packed is new,
2417 toolbar_in_hbox is bool.
2418
d5e5e7b4 24192012-12-30 Andreas Schwab <schwab@linux-m68k.org>
2550c6e4
AS
2420
2421 * src/Makefile.in (TEMACS_LDFLAGS2): Remove.
2422 (LIBS_GNUSTEP): Define.
2423 (LIBES): Add $(LIBS_GNUSTEP).
2424 (temacs$(EXEEXT)): Use $(LDFLAGS) instead of $(TEMACS_LDFLAGS2).
2425
d5e5e7b4 24262012-12-30 Eli Zaretskii <eliz@gnu.org>
7a3a7493
EZ
2427
2428 * xdisp.c (set_cursor_from_row): Don't confuse a truncation or
2429 continuation glyph on a TTY with an indication of an empty line.
2430 (Bug#13277)
2431
e7ae8039
EZ
24322012-12-29 Eli Zaretskii <eliz@gnu.org>
2433
ccad023b
EZ
2434 * fileio.c (Fset_file_selinux_context, Fset_file_acl): Return t if
2435 file's SELinux context or ACLs successfully set, nil otherwise.
2436 (Bug#13298)
8d23a331 2437 (Fcopy_file) [WINDOWSNT]: Improve diagnostics when CopyFile fails.
ccad023b 2438
e7ae8039
EZ
2439 * w32proc.c (reader_thread): Avoid passing NULL handles to
2440 SetEvent and WaitForSingleObject.
2441
7456e13f
PE
24422012-12-28 Paul Eggert <eggert@cs.ucla.edu>
2443
2444 Port EXTERNALLY_VISIBLE to Clang 3.2.
2445 * conf_post.h (__has_attribute): New macro.
2446 (EXTERNALLY_VISIBLE): Use it. This ports to Clang 3.2.
2447
1ab0c851
GM
24482012-12-27 Glenn Morris <rgm@gnu.org>
2449
2450 * cygw32.c (Fcygwin_convert_file_name_to_windows)
2451 (Fcygwin_convert_file_name_from_windows): Doc fixes.
2452
82e2a1f0 24532012-12-27 Eli Zaretskii <eliz@gnu.org>
f5c81c80 2454
63a63bd4
SM
2455 * fileio.c (file_name_as_directory, directory_file_name):
2456 Accept an additional argument MULTIBYTE to indicate whether the input C
f5c81c80
EZ
2457 came from a multibyte or a unibyte Lisp string; all callers
2458 adjusted. Don't assume the input string is always multibyte.
2459 (Bug#13262)
2460 (Ffile_name_directory) [DOS_NT]: Handle unibyte strings correctly:
2461 don't ENCODE_FILE them, and return a unibyte string if the input
2462 was unibyte.
2463 (Fexpand_file_name): Don't mix unibyte with multibyte strings, and
2464 don't assume the input strings will always be multibyte. If the
2465 input strings are multibyte, decode strings obtained from C
2466 library functions.
2467
8847a0de
DA
24682012-12-26 Dmitry Antipov <dmantipov@yandex.ru>
2469
2470 * lisp.h (toplevel): Add two notices to the comment about
2471 defining a new Lisp data type.
6cda572a
DA
2472 * print.c (print_object): If Lisp_Save_Value object's pointer
2473 is the address of a memory area containing Lisp_Objects, try
2474 to print them.
2475 * alloc.c (valid_lisp_object_p): Adjust comment.
8847a0de 2476
4b298d5a
DA
24772012-12-26 Dmitry Antipov <dmantipov@yandex.ru>
2478
2479 * keyboard.c (record_asynch_buffer_change): Initialize an event
2480 only if it's really needed.
2481 * frame.h (enum output_method): Remove output_mac member since
2482 it's a leftover from the deleted code.
2483 * frame.c (Fframep): Adjust user here ...
2484 * terminal.c (Fterminal_live_p): ... and here.
2485 * coding.c (Qmac): Now here because it's only used to denote
2486 end-of-line encoding type.
2487 (syms_of_coding): DEFSYM it.
2488 * frame.h (Qmac): Remove duplicated declaration.
2489
12384b01
PE
24902012-12-26 Paul Eggert <eggert@cs.ucla.edu>
2491
2492 * window.c (select_window_1): Now static, since it's used only here.
2493
f1665bdc
EZ
24942012-12-25 Eli Zaretskii <eliz@gnu.org>
2495
2496 * window.c (window_body_cols): Subtract display margins from the
2497 window body width on TTYs as well. See
2498 http://lists.gnu.org/archive/html/help-gnu-emacs/2012-12/msg00317.html
2499 for the original report.
2500
9a0d4f34
DA
25012012-12-25 Dmitry Antipov <dmantipov@yandex.ru>
2502
2503 * xdisp.c (redisplay_window): Remove inner local variable
2504 because the outer shadowed one has the same meaning.
cd78d9b1
DA
2505 * xterm.h (struct x_output): Remove toolbar_detached member since it's
2506 set but never used.
2507 * gtkutil.c (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
2508 (xg_create_tool_bar): Adjust users.
9a0d4f34 2509
f9e7c67e
DA
25102012-12-24 Dmitry Antipov <dmantipov@yandex.ru>
2511
2512 * buffer.h (BUF_COMPACT): New macro to follow the common style.
2513 * buffer.c (Fget_buffer_create): Use it to set compact field of
2514 struct buffer_text to avoid accessing an uninitialized value
2515 when compact_buffer is called for the first time.
2516 (compact_buffer): Use convenient BUF_COMPACT and BUF_MODIFF.
2944d406
DA
2517 (Fset_buffer_modified_p): Use buffer_window_count to check
2518 whether the buffer is displayed in some window.
2519 * xdisp.c (message_dolog): Likewise.
f9e7c67e 2520
299614f3
EZ
25212012-12-23 Eli Zaretskii <eliz@gnu.org>
2522
40ff07a5
EZ
2523 * w32.c (acl_set_file): If setting the file security descriptor
2524 fails, and the new DACL is identical to the existing one, silently
2525 return success. This fixes problems for users backing up their
2526 own files without having the necessary privileges for setting
2527 security descriptors.
2528
299614f3
EZ
2529 * w32proc.c (reader_thread): Do not index fd_info[] with negative
2530 values.
2531 (reader_thread): Exit when cp->status becomes STATUS_READ_ERROR
2532 after WaitForSingleObject returns normally. This expedites reader
2533 thread shutdown when delete_child triggers it.
2534 (reap_subprocess): More accurate commentary for why we call
2535 delete_child only when cp->fd is negative.
2536
2537 * w32.c (sys_close): Do not call delete_child on a subprocess
2538 whose handle is not yet closed. Instead, set its file descriptor
2539 to a negative value, so that reap_subprocess will call
63a63bd4
SM
2540 delete_child on that subprocess when its SIGCHLD arrives.
2541 This avoids closing handles used for communications between sys_select
299614f3
EZ
2542 and reader_thread, which doesn't give sys_select a chance to
2543 notice that the process exited and invoke the SIGCHLD handler for
2544 it.
2545
cf162aee
JD
25462012-12-23 Jan Djärv <jan.h.d@swipnet.se>
2547
2548 * nsfns.m (Fns_do_applescript): Run event loop until script has
2549 been executed (Bug#12969).
2550 (ns_run_ascript): Chech as_script for nil, set to nil after
2551 executing script.
2552
94900bfe
MR
25532012-12-22 Martin Rudalics <rudalics@gmx.at>
2554
2555 * window.c (Fselect_window): Reword doc-string (Bug#13248).
2556
b2faf49c
EZ
25572012-12-22 Eli Zaretskii <eliz@gnu.org>
2558
2559 * w32term.c (w32fullscreen_hook): New function.
2560 (w32_create_terminal): Plug it into the terminal's fullscreen_hook.
2561
7efa3fb3
EZ
25622012-12-21 Eli Zaretskii <eliz@gnu.org>
2563
bb085aed
EZ
2564 * fileio.c (Finsert_file_contents): Doc fix.
2565
7efa3fb3
EZ
2566 * w32proc.c (new_child, delete_child, find_child_pid): For a
2567 subprocess, consider its slot being in use as long as its process
2568 handle (procinfo.hProcess) is not NULL. This avoids reusing the
2569 slot when a new process is started immediately after killing
2570 another one, without waiting enough time for the first process to
2571 be reaped and resources allocated for it be orderly freed.
2572 (Bug#13086)
2573 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
2574
c1f02afa
CY
25752012-12-21 Chong Yidong <cyd@gnu.org>
2576
2577 * buffer.c (Fset_buffer_major_mode): Doc fix (Bug#13231).
2578
5bec25eb
CY
2579 * fns.c (Fcompare_strings): Doc fix (Bug#13081).
2580
a4b0cca1 25812012-12-21 Eli Zaretskii <eliz@gnu.org>
92340ec7
EZ
2582
2583 * w32.c (get_name_and_id): Always pass NULL as the first argument
2584 of lookup_account_sid. Avoids crashes with UNC file names that
2585 refer to DFS domains, not to specific machine names. (Bug#12621)
2586 Remove now unused argument FNAME; all callers changed.
2587 (get_file_owner_and_group): Remove now unused argument FNAME; all
2588 callers changed.
2589
34b4b7eb
CY
25902012-12-21 Chong Yidong <cyd@gnu.org>
2591
2592 * editfns.c (Finsert_char): Since read-char-by-name now signals an
2593 error for invalid chars, don't check for a nil return value.
2594
13002885
DA
25952012-12-20 Dmitry Antipov <dmantipov@yandex.ru>
2596
2597 Avoid calls to CHAR_TO_BYTE if byte position is known.
2598 * editfns.c (make_buffer_string_both): Use move_gap_both.
2599 (Fbuffer_string): Use make_buffer_string_both.
2600 * marker.c (buf_charpos_to_bytepos): Convert to eassert.
2601 Adjust comment.
2602 (buf_bytepos_to_charpos): Likewise.
2603 (charpos_to_bytepos): Remove.
2604 * fileio.c (Finsert_file_contents): Use move_gap_both.
2605 * search.c (Freplace_match): Likewise.
9a0d4f34 2606 * process.c (process_send_region): Likewise. Use convenient
13002885
DA
2607 names for byte positions.
2608 * lisp.h (charpos_to_bytepos): Remove prototype.
2609 * indent.c (scan_for_column): Use CHAR_TO_BYTE.
2610 * insdel.c (move_gap): Likewise.
2611
99e9311c
PE
26122012-12-20 Paul Eggert <eggert@cs.ucla.edu>
2613
2614 * xdisp.c (redisplay_internal): Remove now-unused local.
2615
e02230bf
SM
26162012-12-20 Stefan Monnier <monnier@iro.umontreal.ca>
2617
2618 * xdisp.c (select_frame_for_redisplay, ensure_selected_frame): Remove.
2619 (redisplay_internal): Don't bother selecting the frame to get the
4a74c818 2620 proper value of frame-local variables (bug#13225).
e02230bf 2621
1687fb14
DA
26222012-12-20 Dmitry Antipov <dmantipov@yandex.ru>
2623
2624 * textprop.c (set_text_properties_1): Do not allow NULL interval.
2625 Rename 4th argument since it may be buffer or string. Adjust comment.
2626 * intervals.c (graft_intervals_info_buffer): Find an interval here.
2627
a2f07cd2
DA
26282012-12-19 Dmitry Antipov <dmantipov@yandex.ru>
2629
2630 * coding.c (Fdetect_coding_region): Do not check start and end with
2631 CHECK_NUMBER_COERCE_MARKER since validate_region does that itself.
2632 (code_convert_region): Likewise.
2633
474d441e
EZ
26342012-12-18 Eli Zaretskii <eliz@gnu.org>
2635
2636 * w32.c (acl_get_file, acl_set_file): Run the file name through
2637 map_w32_filename, and resolve any symlinks in the file name, like
2638 Posix platforms do.
2639 (acl_set_file): Call revert_to_self, if any privileges were
2640 enabled.
2641
8725c076
JB
26422012-12-17 Juanma Barranquero <lekktu@gmail.com>
2643
2644 * makefile.w32-in ($(BLD)/editfns.$(O), $(BLD)/fileio.$(O))
2645 ($(BLD)/w32.$(O)): Update dependencies.
2646
1e101a4b
SM
26472012-12-17 Stefan Monnier <monnier@iro.umontreal.ca>
2648
2649 * xdisp.c (select_frame_for_redisplay): Use select_window_1 to
2650 propagate redisplay's scrolling (if any) to the right window.
2651 (redisplay_internal): Use ensure_selected_frame.
2652 (display_mode_lines): Complete last fix.
2653 * window.c (select_window_1): New func, extracted from select_window.
2654 (select_window): Use it.
2655 * window.h (select_window_1): Declare.
2656
66447e07
EZ
26572012-12-17 Eli Zaretskii <eliz@gnu.org>
2658
2659 Emulate Posix ACL APIs on MS-Windows.
2660 * w32.c: Include sddl.h and sys/acl.h.
2661 (SDDL_REVISION_1): Define if not already defined.
2662 (g_b_init_get_security_descriptor_dacl)
2663 (g_b_init_convert_sd_to_sddl, g_b_init_convert_sddl_to_sd)
2664 (g_b_init_is_valid_security_descriptor)
2665 (g_b_init_set_file_security): New static flags.
2666 (globals_of_w32): Initialize them to zero.
2667 (SetFileSecurity_Name): New string constant.
2668 (SetFileSecurity_Proc, GetSecurityDescriptorDacl_Proc)
2669 (ConvertStringSecurityDescriptorToSecurityDescriptor_Proc)
2670 (ConvertSecurityDescriptorToStringSecurityDescriptor_Proc)
2671 (IsValidSecurityDescriptor_Proc): New typedefs.
2672 (get_file_security, get_security_descriptor_owner)
2673 (get_security_descriptor_group): Set errno to ENOTSUP.
2674 (set_file_security, get_security_descriptor_dacl)
2675 (is_valid_security_descriptor, convert_sd_to_sddl)
2676 (convert_sddl_to_sd, acl_valid, acl_to_text, acl_from_text)
2677 (acl_free, acl_get_file, acl_set_file): New functions.
2678
2679 * fileio.c (Fcopy_file) [WINDOWSNT]: Support copying ACLs.
2680
207a7ef0
PE
26812012-12-17 Paul Eggert <eggert@cs.ucla.edu>
2682
2683 Don't reraise SIGCHLD, as that can now lose (Bug#13192).
2684 With the 2012-12-03 fix for Bug#12980 in place, an old workaround
2685 for some of that bug's symptoms can now cause Emacs to abort.
2686 Remove the workaround.
2687 * process.c (wait_reading_process_output): Don't reraise SIGCHLD.
2688 The bug that caused SIGCHLD to get lost has been fixed, and the
2689 workaround for it can now cause Emacs to abort.
2690
17fdfc15
PE
26912012-12-16 Paul Eggert <eggert@cs.ucla.edu>
2692
2693 * sysdep.c (emacs_abort): Bump backtrace size to 40.
2694 Companion to the 2012-09-30 patch. Suggested by Eli Zaretskii in
2695 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
2696
7c3d167f
RF
26972012-12-16 Romain Francoise <romain@orebokech.com>
2698
2699 * fileio.c (Ffile_acl, Fset_file_acl): New functions.
2700 (Fcopy_file): Change last arg to `preserve_extended_attributes'
1e101a4b 2701 and copy ACL entries of file in addition to SELinux context if set.
7c3d167f
RF
2702 (syms_of_fileio): Add `file-acl' and `set-file-acl'.
2703
2704 * Makefile.in (LIBACL_LIBS): New macro.
2705 (LIBES): Use it.
2706
7d80ea23
PE
27072012-12-15 Paul Eggert <eggert@cs.ucla.edu>
2708
2709 * fileio.c (internal_delete_file): Use bool for boolean.
2710
b0728617
EZ
27112012-12-15 Eli Zaretskii <eliz@gnu.org>
2712
2713 Fix bug #13079 on MS-Windows with temp files not being deleted.
2714 * w32.h (_child_process): New members input_file and
2715 pending_deletion.
2716 (register_child): First argument is now pid_t.
2717 (record_infile, record_pending_deletion): New prototypes.
2718
2719 * w32proc.c (new_child): Initialize input_file and
2720 pending_deletion members of the child.
2721 (delete_child): Delete the child's temporary input file, if any,
2722 that is pending deletion.
2723 (register_child): First argument is now pid_t.
2724 (record_infile, record_pending_deletion): New functions.
2725 (reap_subprocess): Fix a typo in DebPrint string.
2726 (sys_spawnve, sys_kill): Use pid_t for PID arguments.
2727
2728 * fileio.c (internal_delete_file): Return an int again: non-zero
2729 if delete-file succeeds, zero otherwise.
2730
2731 * lisp.h (internal_delete_file): Adjust prototype.
2732
2733 * callproc.c (Fcall_process): Don't overwrite infile with result
2734 of DECODE_FILE.
2735 [WINDOWSNT] If BUFFER is an integer, i.e. we are launching an
2736 asynchronous subprocess, record the name of the input file name,
2737 if any.
2738 (delete_temp_file) [WINDOWSNT]: If internal_delete_file fails to
2739 delete the file, record it as pending deletion when the subprocess
2740 exits.
2741
7e90af26
EZ
27422012-12-14 Eli Zaretskii <eliz@gnu.org>
2743
2744 * editfns.c [HAVE_PWD_H]: Include grp.h.
2745
2746 * makefile.w32-in ($(BLD)/editfns.$(O)): Add $(NT_INC)/grp.h.
2747
97976f9f
PE
27482012-12-14 Paul Eggert <eggert@cs.ucla.edu>
2749
2750 Fix permissions bugs with setgid directories etc. (Bug#13125)
2751 * dired.c (Ffile_attributes): Return t as the 9th attribute,
2752 to mark it as a placeholder. The old value was often wrong.
2753 The only user of this attribute has been changed to use
2754 file-ownership-preserved-p instead, with its new group arg.
2755 * editfns.c (Fgroup_gid, Fgroup_real_gid): New functions.
2756
26ec1f49
SM
27572012-12-14 Stefan Monnier <monnier@iro.umontreal.ca>
2758
ad966fe7
SM
2759 * xdisp.c (select_frame_for_redisplay, display_mode_lines):
2760 Keep selected_window and selected_frame in sync.
26ec1f49 2761
5c207910
EZ
27622012-12-14 Eli Zaretskii <eliz@gnu.org>
2763
2764 * w32.c (stat_worker): If w32_stat_get_owner_group is zero, do not
2765 try to get accurate owner and group information from NT file
2766 security APIs. This is to make most callers of 'stat' and
2767 'lstat', which don't need that information, much faster.
2768
26ec1f49
SM
2769 * dired.c (Ffile_attributes) [WINDOWSNT]:
2770 Set w32_stat_get_owner_group to a non-zero value, to request accurate
5c207910
EZ
2771 owner and group information from 'lstat'.
2772
893f52d8
PE
27732012-12-13 Paul Eggert <eggert@cs.ucla.edu>
2774
4c95c9a5
PE
2775 * fileio.c (Finsert_file_contents): Don't put tail into head area,
2776 as that confuses set-auto-coding, so insist on the head-read
2777 returning the full 1024 bytes. Let lseek compute the tail offset;
2778 less work for us. Do not ignore I/O errors when reading the tail.
2779
893f52d8
PE
2780 * xdisp.c: Minor style fixes.
2781 (init_iterator): Hoist assignment out of if-expression.
2782 (markpos_of_region): Callers now test for sign, not for -1.
2783
40d1e434
DA
27842012-12-13 Dmitry Antipov <dmantipov@yandex.ru>
2785
2786 Minor redisplay optimization when the region length is zero.
2787 * xdisp.c (markpos_of_region): New function.
2788 (init_iterator): Do not highlight the region of zero length.
2789 (redisplay_window): Check whether the region is of non-zero length.
2790 (try_cursor_movement): Allow if the region length is zero.
2791 (try_window_reusing_current_matrix, try_window_id): Likewise.
2792
727f9739 27932012-12-13 Eli Zaretskii <eliz@gnu.org>
e8c6e965
EZ
2794
2795 * search.c (search_buffer): Check the inverse translations of each
2796 character in pattern when the buffer being searched is unibyte.
2797 (Bug#13084)
2798
727f9739 27992012-12-13 Paul Eggert <eggert@cs.ucla.edu>
184246df
PE
2800
2801 * fileio.c (Fvisited_file_modtime): Return (-1 ...) for nonexistent
2802 files, fixing a regression from 24.2.
645c6a30 2803 (Fverify_visited_file_modtime): Don't read uninitialized st.st_size.
184246df 2804
d20704ef
PE
28052012-12-13 Paul Eggert <eggert@cs.ucla.edu>
2806
2807 * fileio.c (Fcopy_file): Make fstat failure as serious as open failure.
2808 fstat shouldn't fail, and if it does fail copy-file should not proceed.
2809 Remove unnecessary S_ISLNK test, as (contra the comments) this
2810 function can't copy symlinks. Improve quality of error message
2811 when attempting to copy files that are neither regular files nor
2812 directories.
2813
2dd61a9b
DA
28142012-12-12 Dmitry Antipov <dmantipov@yandex.ru>
2815
2816 * dispnew.c (set_window_cursor_after_update): Use clip_to_bounds.
2817 * gtkutil.c (xg_set_toolkit_scroll_bar_thumb):
2818 * window.c (Frecenter):
2819 * xdisp.c (resize_mini_window, hscroll_window_tree, draw_glyphs):
2820 * xterm.c (x_set_toolkit_scroll_bar_thumb): Likewise.
2821
cc98b684
DC
28222012-12-12 Daniel Colascione <dancol@dancol.org>
2823
1e101a4b 2824 * unexcw.c (fixup_executable): Use posix_fallocate to ensure that
cc98b684
DC
2825 the dumped Emacs is not a sparse file, greatly improving Cygwin
2826 "make bootstrap" performance.
2827
38e791fd
MA
28282012-12-11 Michael Albinus <michael.albinus@gmx.de>
2829
2830 * inotify.c (inotify_callback): Generate an Emacs event for every
2831 incoming inotify event.
2832
f9d1448f
EZ
28332012-12-11 Eli Zaretskii <eliz@gnu.org>
2834
2835 * xdisp.c (handle_face_prop): Fix logic of computing
2836 it->start_of_box_run_p.
2837 (append_space_for_newline): If the glyph row is R2L, reset the
2838 iterator's end_of_box_run_p flag before prepending the space glyph.
2839 (extend_face_to_end_of_line): If the glyph row is R2L, reset the
2840 iterator's start_of_box_run_p flag before prepending the stretch.
2841 (append_glyph, produce_image_glyph, append_composite_glyph)
2842 (append_stretch_glyph, append_glyphless_glyph): Reverse the
2843 left_box_line_p and right_box_line_p flags of the glyph for R2L
2844 glyph rows. (Bug#13011)
2845
c6afe371
DA
28462012-12-11 Dmitry Antipov <dmantipov@yandex.ru>
2847
2848 * buffer.c (Fset_buffer_multibyte): Do not force redisplay
2849 if changed buffer is not shown in a window.
2850 * insdel.c (prepare_to_modify_buffer): Likewise.
2851 * window.c (replace_buffer_in_windows_safely): Do nothing
2852 if buffer is not shown in a window.
2853 (Fforce_window_update): Likewise if string or buffer argument
2854 is passed.
2855
1b47babd
EZ
28562012-12-11 Eli Zaretskii <eliz@gnu.org>
2857
2858 * inotify.c (Finotify_add_watch): Rename decoded_file_name to
2859 encoded_file_name, which is what it is.
2860
4c1acb95
DA
28612012-12-11 Dmitry Antipov <dmantipov@yandex.ru>
2862
2863 Consistently use marker_position and marker_byte_position.
2864 * fringe.c (Ffringe_bitmaps_at_pos):
2865 * indent.c (Fvertical_motion):
2866 * insdel.c (prepare_to_modify_buffer):
2867 * keyboard.c (make_lispy_position):
2868 * window.c (Fwindow_end, Fpos_visible_in_window_p, unshow_buffer)
2869 (window_scroll_pixel_based, displayed_window_lines)
2870 (Fset_window_configuration):
2871 * xdisp.c (message_dolog, with_echo_area_buffer_unwind_data)
2872 (mark_window_display_accurate_1, redisplay_window, decode_mode_spec):
2873 Replace direct access to marker fields with calls
2874 to marker_position and/or marker_byte_position.
2875
0eeb69fe
JB
28762012-12-11 Juanma Barranquero <lekktu@gmail.com>
2877
2878 * makefile.w32-in (SIG2STR_H): New macro.
2879 (SYSWAIT_H, $(BLD)/emacs.$(O), $(BLD)/process.$(O))
2880 ($(BLD)/w32notify.$(O)): Update dependencies.
2881
1cf1bbd5
DC
28822012-12-10 Daniel Colascione <dancol@dancol.org>
2883
8db4b52f
DC
2884 * w32term.c, keyboard.c: Fix build break in cygw32 by omitting
2885 Windows file notification functionality unless WINDOWSNT.
2886
1cf1bbd5
DC
2887 * w32gui.h (hprevinst, lpCmdLine, nCmdShow): Remove unused
2888 declarations.
2889
2890 * w32fns.c (cache_system_info): Initialize the global hinst
2891 variable here so various initialization calls DTRT.
2892
1e101a4b 2893 * unexw32.c (hprevinst, lpCmdLine, nCmdShow): Remove unused variables.
1cf1bbd5
DC
2894 (hinst): Remove unneeded extern declaration.
2895 (_start): Remove initialization of above variables; remove
2896 initialization of hinst, as cache_system_info now does that.
2897
2898 * emacs.c (main): Call cache_system_info early in startup; we
2899 previously weren't calling it in Cygwin builds.
2900
26ec1f49
SM
2901 * Makefile.in (ntsource, WINDRES, W32_RES, W#@_RES_LINK):
2902 Teach the autoconf build system how to compile a Windows resource file
1cf1bbd5
DC
2903 and link it to Emacs.
2904
98a07056
DA
29052012-12-10 Dmitry Antipov <dmantipov@yandex.ru>
2906
2907 Per-buffer window counters.
2908 * buffer.h (struct buffer): New member window_count.
2909 (buffer_window_count): New function.
2910 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
2911 Initialize window_count.
2912 (Fkill_buffer): Verify window_count for the buffer being killed.
2913 (modify_overlay): Do not force redisplay if buffer is not shown
2914 in any window.
2915 (init_buffer_once): Initialize window_count for buffer_defaults
2916 and buffer_local_symbols.
2917 * window.h (buffer_shared): Remove declaration.
2918 (wset_buffer): Convert from inline ...
2919 * window.c (wset_buffer): ... to an ordinary function.
2920 (adjust_window_count): New function.
2921 (make_parent_window): Use it.
2922 * xdisp.c (buffer_shared): Remove.
2923 (redisplay_internal, redisplay_window): Adjust users.
2924 (buffer_shared_and_changed): Use per-buffer window counter.
2925
2b8c9064
EZ
29262012-12-10 Eli Zaretskii <eliz@gnu.org>
2927
2928 Support for filesystem notifications on MS-Windows.
2929 * w32proc.c (sys_select): If drain_message_queue returns non-zero,
2930 and this is a TTY frame, signal the caller that keyboard input is
2931 available.
2932
2933 * w32xfns.c (drain_message_queue): Now returns an int: an
2934 indication whether any WM_EMACS_FILENOTIFY messages were found in
2935 the queue.
2936
2937 * w32inevt.c (handle_file_notifications): New function.
2938 (w32_console_read_socket): Call it to process file notifications.
2939
2940 * w32console.c (initialize_w32_display): Record the main thread ID
2941 in dwMainThreadId.
2942
2943 * deps.mk (inotify.o): New dependency list.
2944
2945 * Makefile.in (SOME_MACHINE_OBJECTS): Add w32notify.o.
2946
2947 * w32term.h (WM_EMACS_FILENOTIFY): New custom message.
2948 (WM_EMACS_END): Bump value by 1.
2949 (notification_buffer_in_use, file_notifications)
2950 (notifications_size, notifications_desc): Declare.
2951 (w32_get_watch_object, lispy_file_action, globals_of_w32notify):
2952 Add prototypes.
2953
2954 * w32term.c (lispy_file_action, queue_notifications): New functions.
2955 (syms_of_w32term) <Qadded, Qremoved, Qmodified, Qrenamed_from>
2956 <Qrenamed_to>: New symbols.
2957 (w32_read_socket): Handle the WM_EMACS_FILENOTIFY message.
2958
2959 * w32notify.c: New file, implements file event notifications for
2960 MS-Windows.
2961
2962 * w32fns.c (w32_wnd_proc): Handle the WM_EMACS_FILENOTIFY message
2963 by posting it to the w32_read_socket queue.
2964
1e101a4b 2965 * termhooks.h (enum event_kind) [HAVE_NTGUI]: Support FILE_NOTIFY_EVENT.
2b8c9064
EZ
2966
2967 * makefile.w32-in (OBJ2): Add $(BLD)/w32notify.$(O).
2968 (GLOBAL_SOURCES): Add w32notify.c
2969 ($(BLD)/w32notify.$(O)): New set of dependencies.
2970
2971 * lisp.h (syms_of_w32notify) [WINDOWSNT]: Add prototype.
2972
1e101a4b
SM
2973 * keyboard.c (kbd_buffer_get_event) [WINDOWSNT]:
2974 Handle FILE_NOTIFY_EVENT.
2b8c9064
EZ
2975 (syms_of_keyboard) [HAVE_NTGUI] <Qfile_notify>: New symbol.
2976 (keys_of_keyboard) [WINDOWSNT]: Bind file-notify to
2977 w32notify-handle-event by default.
2978
2979 * emacs.c (main) [WINDOWSNT]: Call globals_of_w32notify and
2980 syms_of_w32notify.
2981
81606b10
RS
29822012-12-10 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
2983
2b8c9064 2984 Support for filesystem notifications on GNU/Linux via inotify.
1e101a4b 2985 * termhooks.h (enum event_kind) [HAVE_INOTIFY]: Add FILE_NOTIFY_EVENT.
81606b10
RS
2986
2987 * lisp.h (syms_of_inotify) [HAVE_INOTIFY]: Add prototype.
2988
2989 * keyboard.c (Qfile_inotify) [HAVE_INOTIFY]: New variable.
2990 (syms_of_keyboard): DEFSYM it.
2991 (kbd_buffer_get_event) [HAVE_INOTIFY]: Generate FILE_NOTIFY_EVENT.
2992 (make_lispy_event): Support FILE_NOTIFY_EVENT by generating
2993 Qfile_inotify events.
2994 (keys_of_keyboard) [HAVE_INOTIFY]: Bind file-inotify events in
2995 special-event-map to inotify-handle-event.
2996
2997 * emacs.c (main) [HAVE_INOTIFY]: Call syms_of_inotify.
2998
2999 * Makefile.in (base_obj): Add inotify.o.
3000
3001 * inotify.c: New file.
3002
265c2fbf 30032012-12-10 Jan Djärv <jan.h.d@swipnet.se>
a06ae17d
JD
3004
3005 * nsterm.m (fd_handler:): FD_ZERO fds (Bug#13103).
3006
265c2fbf 30072012-12-10 Fabrice Popineau <fabrice.popineau@gmail.com>
cb576b5c
FP
3008
3009 * w32fns.c (cache_system_info): Cast sysinfo_cache.dwPageSize to
3010 DWORD_PTR, for compatibility with 64-bit builds.
3011
a06ae17d 3012 * w32.c (_PROCESS_MEMORY_COUNTERS_EX):
cb576b5c
FP
3013 (GetProcessWorkingSetSize_Proc, get_process_working_set_size)
3014 (system_process_attributes): Use SIZE_T rather than DWORD, for
3015 compatibility with 64-bit builds.
3016
265c2fbf 30172012-12-10 Christopher Schmidt <christopher@ch.ristopher.com>
76b92fee
CS
3018
3019 * lread.c (Vload_source_file_function): Doc fix (Bug#11647).
3020
265c2fbf 30212012-12-10 Eli Zaretskii <eliz@gnu.org>
81d8cc53
EZ
3022
3023 * indent.c (Fvertical_motion): If a display string will be
3024 displayed on the left or the right margin, don't consider it as a
3025 factor in cursor positioning. (Bug#13108)
3026
265c2fbf 30272012-12-10 Martin Rudalics <rudalics@gmx.at>
2cec368c
MR
3028
3029 * editfns.c (Fcompare_buffer_substrings): Reword doc-string.
3030
5f460827
PE
30312012-12-10 Paul Eggert <eggert@cs.ucla.edu>
3032
3033 * fileio.c (Fsubstitute_in_file_name): Use ptrdiff_t, not int,
3034 for string length.
3035
a16e75cd
EZ
30362012-12-08 Eli Zaretskii <eliz@gnu.org>
3037
3038 * w32.c (unsetenv): Return 0 if the input string is too long.
3039
5745a7df
PE
30402012-12-08 Paul Eggert <eggert@cs.ucla.edu>
3041
3042 Use putenv+unsetenv instead of modifying environ directly (Bug#13070).
3043 * alloc.c (xputenv): New function.
3044 * dbusbind.c (Fdbus_init_bus):
3045 * emacs.c (main):
3046 * xterm.c (x_term_init):
3047 Use xputenv instead of setenv or putenv, to detect memory exhaustion.
3048 * editfns.c (initial_tz): Move static var decl up.
3049 (tzvalbuf_in_environ): New static var.
3050 (init_editfns): Initialize these two static vars.
3051 (Fencode_time): Don't assume arbitrary limit on EMACS_INT width.
3052 Save old TZ value on stack, if it's small.
3053 (Fencode_time, set_time_zone_rule): Don't modify 'environ' directly;
3054 instead, use xputenv+unsetenv to set and restore TZ.
3055 (environbuf): Remove static var. All uses removed.
3056 (Fset_time_zone_rule): Do not save TZ and environ;
3057 no longer needed here.
3058 (set_time_zone_rule_tz1, set_time_zone_rule_tz2) [LOCALTIME_CACHE]:
3059 Move to inside set_time_zone_rule; they don't need file scope any more.
3060 (set_time_zone_rule): Maintain the TZ=value string separately.
3061 (syms_of_editfns): Don't initialize initial_tz;
3062 init_editfns now does it.
3063 * emacs.c (dump_tz) [HAVE_TZSET]: Now const.
3064 * lisp.h (xputenv): New decl.
3065
c56efa40
FP
30662012-12-08 Fabrice Popineau <fabrice.popineau@gmail.com>
3067
3068 * w32fns.c (emacs_abort): Don't do arithmetics on void pointers.
3069
75ceee05
EZ
30702012-12-08 Eli Zaretskii <eliz@gnu.org>
3071
3072 * w32.c (unsetenv, sys_putenv): New functions.
3073
1b6dbfeb
CY
30742012-12-08 Chong Yidong <cyd@gnu.org>
3075
3076 * editfns.c (Finsert_char): Make the error message more
3077 informative (Bug#12992).
3078
d983a10b
PE
30792012-12-08 Paul Eggert <eggert@cs.ucla.edu>
3080
7be78020
PE
3081 Simplify get_lim_data.
3082 * vm-limit.c (get_lim_data): Combine RLIMIT_AS and RLIMIT_DATA methods.
3083 Remove USG and vlimit methods; no longer used these days.
3084 Add #error catchall just in case.
3085
d983a10b
PE
3086 Assume POSIX 1003.1-1988 or later for signal.h (Bug#13026).
3087 Exceptions: do not assume SIGCONT, SIGSTOP, SIGTSTP, SIGTTIN,
3088 SIGTTOU, SIGUSR1, SIGUSR2, as Microsoft platforms lack these.
3089 * process.c [subprocesses]: Include <c-ctype.h>, <sig2str.h>.
3090 (deleted_pid_list, Fdelete_process, create_process)
3091 (record_child_status_change, handle_child_signal, deliver_child_signal)
3092 (init_process_emacs, syms_of_process):
3093 Assume SIGCHLD is defined.
3094 (parse_signal): Remove. All uses removed.
3095 (abbr_to_signal): New static function.
3096 (Fsignal_process): Use it to convert signal names to ints.
3097 * sysdep.c (sys_suspend) [!DOS_NT]: Use kill (0, ...) rather than
3098 kill (getpgrp (), ...).
3099 (emacs_sigaction_init): Assume SIGCHLD is defined.
3100 (init_signals): Assume SIGALRM, SIGCHLD, SIGHUP, SIGKILL,
3101 SIGPIPE, and SIGQUIT are defined. Do not worry about SIGCLD any more.
3102 * syssignal.h (EMACS_KILLPG): Remove.
3103 All uses replaced by 'kill' with a negative pid.
3104 (SIGCHLD): Remove definition, as we now assume SIGCHLD.
3105 * w32proc.c (sys_kill): Support negative pids compatibly with POSIX.
3106
9cdde1e2
PE
31072012-12-07 Paul Eggert <eggert@cs.ucla.edu>
3108
3109 * sysdep.c (get_child_status): Abort on internal error (Bug#13086).
3110 This will cause a production Emacs to dump core instead of
3111 infinite-looping.
3112
822995f8
DA
31132012-12-07 Dmitry Antipov <dmantipov@yandex.ru>
3114
3115 * frame.c (make_frame): Do not set window's buffer to t.
3116 * window.c (Fsplit_window_internal): Likewise. Previously it was
3117 used to indicate that the window is being set up. Now we use
3118 set_window_buffer for all new windows, so the condition in ...
3119 (Fset_window_buffer): ... is always true and can be removed.
3120
ed08365b
DA
31212012-12-07 Dmitry Antipov <dmantipov@yandex.ru>
3122
3123 Convenient macro to check whether the buffer is hidden.
3124 * buffer.h (BUFFER_HIDDEN_P): New macro.
3125 * frame.c (make_frame): Use it. Adjust comment.
3126 * buffer.c (candidate_buffer): New function.
3127 (Fother_buffer, other_buffer_safely): Use it.
3128
e86f5134
EZ
31292012-12-06 Eli Zaretskii <eliz@gnu.org>
3130
3131 * w32proc.c (waitpid): Avoid busy-waiting when called with WNOHANG
3132 if the child process is still running. Instead, exit the wait
3133 loop and return zero. (Bug#13086)
3134
1700db3c
DA
31352012-12-06 Dmitry Antipov <dmantipov@yandex.ru>
3136
3137 * frame.h (x_char_width, x_char_height): Remove prototypes.
3138 * w32term.h (x_char_width, x_char_height): Likewise.
3139 * xfns.c (x_char_width, x_char_height): Remove.
3140 * w32fns.c (x_char_width, x_char_height): Likewise.
3141 * nsfns.c (x_char_width, x_char_height): Likewise.
3142 * frame.c (Fframe_char_width): Use FRAME_COLUMN_WIDTH for
3143 all window frames.
3144 (Fframe_char_height): Likewise with FRAME_LINE_HEIGHT.
3145 * keyboard.c (command_loop_1): Remove prototype.
3146 (command_loop_2, top_level_1): Add static to match prototype.
3147
35fb8050
PE
31482012-12-06 Paul Eggert <eggert@cs.ucla.edu>
3149
3150 Fix a recently-introduced delete-process race condition.
3151 * callproc.c, process.h (record_kill_process):
3152 New function, containing part of the old call_process_kill.
3153 (call_process_kill): Use it.
3154 This does not change call_process_kill's behavior.
3155 * process.c (Fdelete_process): Use record_kill_process to fix a
3156 race condition that could cause Emacs to lose track of a child.
3157
565212e5
DA
31582012-12-06 Dmitry Antipov <dmantipov@yandex.ru>
3159
3160 Avoid code duplication between prev_frame and next_frame.
3161 * frame.c (candidate_frame): New function. Add comment.
3162 (prev_frame, next_frame): Use it. Adjust comment.
3163
d8ad4d3f 31642012-12-06 Eli Zaretskii <eliz@gnu.org>
d3cefd13
EZ
3165
3166 * callproc.c (Fcall_process_region) [!HAVE_MKSTEMP]: If mktemp
3167 fails, signal an error instead of continuing with an empty
3168 string. (Bug#13079)
7c2fcf9b
EZ
3169 Encode expanded temp file pattern before passing it to mkstemp or
3170 mktemp.
d3cefd13 3171
2e7cddd3
EZ
3172 * fileio.c (file_name_as_directory, directory_file_name) [DOS_NT]:
3173 Encode the file name before passing it to dostounix_filename, in
3174 case it will downcase it (under w32-downcase-file-names).
3175 (Bug#12933)
3176
644d3f0d
PE
31772012-12-05 Paul Eggert <eggert@cs.ucla.edu>
3178
3179 Minor call-process cleanups.
3180 * callproc.c (Fcall_process): Do record-unwind-protect on MSDOS
3181 at the same time as other platforms, to simplify analysis.
3182 No need for fd0_volatile since we have synch_process_fd.
3183 Avoid needless emacs_close; arg is always negative.
3184
396376f1
AS
31852012-12-04 Andreas Schwab <schwab@linux-m68k.org>
3186
3187 * callproc.c (Fcall_process): Fix specpdl nesting for asynchronous
3188 processes.
3189
350f51ad
DA
31902012-12-04 Dmitry Antipov <dmantipov@yandex.ru>
3191
3192 * lisp.h (Mouse_HLInfo): Remove set-but-unused mouse_face_image_state
3193 member. Adjust users. Convert mouse_face_past_end, mouse_face_defer
3194 and mouse_face_hidden members to a bitfields.
3195 * frame.h (struct frame): Remove set-but-not-used space_width member.
3196 (FRAME_SPACE_WIDTH): Remove.
3197 * nsterm.m, w32term.c, xterm.c: Adjust users.
3198 * termchar.h (struct tty_display_info): Remove set-but-unused se_is_so
3199 member. Adjust users. Convert term_initted, delete_in_insert_mode,
3200 costs_set, insert_mode, standout_mode, cursor_hidden and flow_control
3201 members to a bitfields.
3202
bc9dbce6
PE
32032012-12-03 Paul Eggert <eggert@cs.ucla.edu>
3204
bb5f74ee
PE
3205 Don't let call-process be a zombie factory (Bug#12980).
3206 Fixing this bug required some cleanup of the signal-handling code.
3207 As a side effect, this change also fixes a longstanding rare race
3208 condition whereby Emacs could mistakenly kill unrelated processes,
3209 and it fixes a bug where a second C-g does not kill a recalcitrant
3210 synchronous process in GNU/Linux and similar platforms.
3211 The patch should also fix the last vestiges of Bug#9488,
3212 a bug which has mostly been fixed on the trunk by other changes.
3213 * callproc.c, process.h (synch_process_alive, synch_process_death)
3214 (synch_process_termsig, sync_process_retcode):
3215 Remove. All uses removed, to simplify analysis and so that
3216 less consing is done inside critical sections.
3217 * callproc.c (call_process_exited): Remove. All uses replaced
3218 with !synch_process_pid.
3219 * callproc.c (synch_process_pid, synch_process_fd): New static vars.
3220 These take the role of what used to be in unwind-protect arg.
3221 All uses changed.
3222 (block_child_signal, unblock_child_signal):
3223 New functions, to avoid races that could kill innocent-victim processes.
3224 (call_process_kill, call_process_cleanup, Fcall_process): Use them.
3225 (call_process_kill): Record killed processes as deleted, so that
3226 zombies do not clutter up the system. Do this inside a critical
3227 section, to avoid a race that would allow the clutter.
3228 (call_process_cleanup): Fix code so that the second C-g works again
3229 on common platforms such as GNU/Linux.
3230 (Fcall_process): Create the child process in a critical section,
3231 to fix a race condition. If creating an asynchronous process,
3232 record it as deleted so that zombies do not clutter up the system.
3233 Do unwind-protect for WINDOWSNT too, as that's simpler in the
3234 light of these changes. Omit unnecessary call to emacs_close
3235 before failure, as the unwind-protect code does that.
3236 * callproc.c (call_process_cleanup):
3237 * w32proc.c (waitpid): Simplify now that synch_process_alive is gone.
3238 * process.c (record_deleted_pid): New function, containing
3239 code refactored out of Fdelete_process.
3240 (Fdelete_process): Use it.
3241 (process_status_retrieved): Remove. All callers changed to use
3242 child_status_change.
3243 (record_child_status_change): Remove, folding its contents into ...
3244 (handle_child_signal): ... this signal handler. Now, this
3245 function is purely a handler for SIGCHLD, and is not called after
3246 a synchronous waitpid returns; the synchronous code is moved to
3247 wait_for_termination. There is no need to worry about reaping
3248 more than one child now.
3249 * sysdep.c (get_child_status, child_status_changed): New functions.
3250 (wait_for_termination): Now takes int * status and bool
3251 interruptible arguments, too. Do not record child status change;
3252 that's now the caller's responsibility. All callers changed.
3253 Reimplement in terms of get_child_status.
3254 (wait_for_termination_1, interruptible_wait_for_termination):
3255 Remove. All callers changed to use wait_for_termination.
3256 * syswait.h: Include <stdbool.h>, for bool.
3257 (record_child_status_change, interruptible_wait_for_termination):
3258 Remove decls.
3259 (record_deleted_pid, child_status_changed): New decls.
3260 (wait_for_termination): Adjust to API changes noted above.
3261
bc9dbce6
PE
3262 * bytecode.c, lisp.h (Qbytecode): Remove.
3263 No longer needed after 2012-11-20 interactive-p changes.
3264
3cf3c607
EZ
32652012-12-03 Eli Zaretskii <eliz@gnu.org>
3266
3267 * xdisp.c (redisplay_window): If the cursor is visible, but inside
3268 the scroll margin, move point outside the margin. (Bug#13055)
3269
005c8d13
JD
32702012-12-03 Jan Djärv <jan.h.d@swipnet.se>
3271
3272 * gtkutil.c (my_log_handler): New function.
3273 (xg_set_geometry): Set log handler to my_log_handler (Bug#11177).
3274
20edc1c9
DA
32752012-12-03 Dmitry Antipov <dmantipov@yandex.ru>
3276
3277 * lisp.h (modify_region): Rename to...
3278 (modify_region_1): ...new prototype.
3279 * textprop.c (modify_region): Now static. Adjust users.
3280 * insdel.c (modify_region): Rename to...
3281 (modify_region_1): ...new function to work with current buffer.
3282 Adjust comment and users. Use true and false for booleans.
3283
62c2e5ed
DA
32842012-12-03 Dmitry Antipov <dmantipov@yandex.ru>
3285
3286 * alloc.c (free_save_value): New function.
3287 (safe_alloca_unwind): Use it.
3288 * lisp.h (free_save_value): New prototype.
3289 * editfns.c (save_excursion_save): Use Lisp_Misc_Save_Value.
3290 Add comment.
3291 (save_excursion_restore): Adjust to match saved data structure.
3292 Use free_save_value to offload some work from GC. Drop obsolete
3293 #if 0 code.
3294
c5bc2d1d 32952012-12-03 Chong Yidong <cyd@gnu.org>
a2458031
CY
3296
3297 * fileio.c (Vauto_save_list_file_name): Doc fix.
3298
c5bc2d1d 32992012-12-03 Fabrice Popineau <fabrice.popineau@gmail.com>
c7b36b95
FP
3300
3301 * w32fns.c: Remove prototype of atof.
1e101a4b 3302 (syspage_mask): Make it DWORD_PTR, for compatibility with 64-bit
c7b36b95 3303 builds.
1e101a4b 3304 (file_dialog_callback): Make it UINT_PTR.
c7b36b95
FP
3305
3306 * w32common.h (syspage_mask): Declare DWORD_PTR, for compatibility
3307 with 64-bit builds.
3308
3309 * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
3310 (FILE_ANY_ACCESS, CTL_CODE) [_MSC_VER]: Define only if not already
3311 defined.
3312
c5bc2d1d 33132012-12-03 Glenn Morris <rgm@gnu.org>
14d27346 3314
a9de9f0c 3315 * data.c (Fboundp, Fsymbol_value): Doc fix re lexical-binding.
14d27346 3316
21e54a94
PE
33172012-12-02 Paul Eggert <eggert@cs.ucla.edu>
3318
2dd2e622
PE
3319 Fix xpalloc confusion after memory is exhausted.
3320 * alloc.c (xpalloc): Comment fix.
3321 * charset.c (Fdefine_charset_internal): If xpalloc exhausts memory
3322 and signals an error, do not clear charset_table_size, as
3323 charset_table is still valid.
3324 * doprnt.c (evxprintf): Clear *BUF after freeing it.
3325
21e54a94
PE
3326 Use execve to avoid need to munge environ (Bug#13054).
3327 * callproc.c (Fcall_process):
3328 * process.c (create_process):
3329 Don't save and restore environ; no longer needed.
3330 * callproc.c (child_setup):
3331 Use execve, not execvp, to preserve environ.
3332
3e5490f7
PE
33332012-12-01 Paul Eggert <eggert@cs.ucla.edu>
3334
3335 * xterm.c (x_draw_image_relief): Remove unused locals (Bug#10500).
3336
75b4f59c
YM
33372012-12-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3338
3339 * xterm.c (x_draw_relief_rect, x_draw_image_relief): Fix relief
3340 display for sliced images (Bug#10500).
3341
3342 * w32term.c (w32_draw_relief_rect, x_draw_image_relief): Likewise.
3343
f8aff4c6
JB
33442012-11-30 Juanma Barranquero <lekktu@gmail.com>
3345
3346 * doc.c (Fdocumentation): Re-add handling of function-documentation,
3347 accidentally removed in 2012-11-09T04:10:16Z!monnier@iro.umontreal.ca (bug#13034).
3348
3940b924
DA
33492012-11-29 Dmitry Antipov <dmantipov@yandex.ru>
3350
3351 * xdisp.c (window_outdated): Remove eassert since it hits
3352 some suspicious corner cases (see Bug#13007 and Bug#13012).
3353 (mode_line_update_needed): New function.
3354 (redisplay_internal, redisplay_window): Use it.
3355 (ensure_selected_frame): New function.
3356 (redisplay_internal, unwind_redisplay): Use it.
3357 (redisplay_internal): Move comment about buffer_shared...
3358 (buffer_shared_and_changed): ...near to its real use.
3359
4a9204fe
PE
33602012-11-29 Paul Eggert <eggert@cs.ucla.edu>
3361
3362 * callproc.c (Fcall_process): Don't misreport vfork failure.
3363
60aeceb8
PE
33642012-11-28 Paul Eggert <eggert@cs.ucla.edu>
3365
3366 * callproc.c (Fcall_process): Fix vfork portability problems.
3367 Do not assume that fd[0], count, filefd, and save_environ survive
3368 vfork. Fix bug whereby wrong errno value could be reported for
3369 pipe failure. Some minor cleanups, too, as follows. Move buf and
3370 bufsize to the context where they're needed. Change new_argv to
3371 be of type char **, as this is more convenient and avoids casts.
3372 (CALLPROC_BUFFER_SIZE_MIN, CALLPROC_BUFFER_SIZE_MAX):
3373 Now local constants, not macros.
3374
00dc3ead
KH
33752012-11-18 Kenichi Handa <handa@gnu.org>
3376
3377 * font.c (font_unparse_xlfd): Fix previous change. Keep "const"
3378 for the variable "f".
3379
e1bf05c1
KH
33802012-11-13 Kenichi Handa <handa@gnu.org>
3381
3382 * font.c (font_unparse_xlfd): Exclude special characters from the
3383 generating XLFD name.
3384
22626a85
PE
33852012-11-27 Paul Eggert <eggert@cs.ucla.edu>
3386
350e0088
PE
3387 Assume POSIX 1003.1-1988 or later for grp.h, pwd.h.
3388 * dired.c (stat_uname, stat_gname):
3389 * fileio.c (Fexpand_file_name): Remove no-longer-needed casts.
3390
22626a85
PE
3391 Assume POSIX 1003.1-1988 or later for errno.h (Bug#12968).
3392 * dired.c (directory_files_internal, file_name_completion):
3393 Assume EAGAIN and EINTR are defined.
350e0088 3394
22626a85
PE
3395 * fileio.c (Fcopy_file): Assume EISDIR is defined.
3396 * gmalloc.c (ENOMEM, EINVAL): Assume they're defined.
3397 * gnutls.c (emacs_gnutls_write): Assume EAGAIN is defined.
3398 * lread.c (readbyte_from_file): Assume EINTR is defined.
3399 * process.c (wait_reading_process_output, send_process) [subprocesses]:
3400 Assume EIO and EAGAIN are defined.
3401 * unexcoff.c (write_segment): Assume EFAULT is defined.
3402
5c9cf0a3 34032012-11-27 Eli Zaretskii <eliz@gnu.org>
3fa1e84d
EZ
3404
3405 * fontset.c (Finternal_char_font): Return nil on non-GUI frames.
3406 (Bug#11964)
3407
22294a56
EZ
3408 * xdisp.c (draw_glyphs): Don't draw in mouse face if mouse
3409 highlighting on the frame was cleared. Prevents assertion
3410 violations when repeatedly clicking on the "Top" link of the
3411 "bread-crumbs" in Info buffers.
3412
5fbab051
PE
34132012-11-25 Paul Eggert <eggert@cs.ucla.edu>
3414
3415 * sysdep.c (sys_subshell): Don't assume pid_t fits in int.
3416
bcd77a2b
KB
34172012-11-24 Ken Brown <kbrown@cornell.edu>
3418
3419 * keyboard.c (HAVE_MOUSE):
3420 * frame.c (HAVE_MOUSE): Remove, and rewrite code as if HAVE_MOUSE
3421 were always defined.
3422
d125ca15 34232012-11-24 Eli Zaretskii <eliz@gnu.org>
8654a41b 3424
24becea4
EZ
3425 * xdisp.c (set_cursor_from_row): Skip step 2 only if point is not
3426 between bpos_covered and bpos_max. This fixes cursor display when
3427 several display strings follow each other.
3428
8654a41b
EZ
3429 * .gdbinit (pgx): If the glyph's object is a string, display the
3430 pointer to string data, rather than the value of the string object
3431 itself (which barfs under CHECK_LISP_OBJECT_TYPE).
3432
cb5867b1
EZ
3433 * indent.c (Fvertical_motion): If the starting position is covered
3434 by a display string, return to one position before that, to avoid
3435 overshooting it inside move_it_to. (Bug#12930)
3436
f418b22e
DA
34372012-11-23 Dmitry Antipov <dmantipov@yandex.ru>
3438
3439 * frame.h (struct frame): Remove display_preempted member
3440 since all users are dead long ago.
3441 * nsterm.h (struct x_output): Use the only dummy member.
3442 * w32menu.c (pending_menu_activation): Remove since not
3443 really used.
3444 (set_frame_menubar): Adjust user.
3445 * w32term.h (struct x_output): Drop outdated #if 0 code.
3446 (struct w32_output): Use bitfields for explicit_parent,
26ec1f49
SM
3447 asked_for_visible and menubar_active members.
3448 Drop unused pending_menu_activation member.
f418b22e
DA
3449 * xterm.h (struct x_output): Drop outdated #if 0 code.
3450 Use bitfields for explicit_parent, asked_for_visible,
3451 has_been_visible and net_wm_state_hidden_seen members.
3452
a879f0ea
EZ
34532012-11-23 Eli Zaretskii <eliz@gnu.org>
3454
3455 * makefile.w32-in (globals.h, gl-stamp): Use $(SWITCHCHAR) instead
3456 of a literal "/". (Bug#12955)
3457 (gl-stamp): Invoke fc.exe directly, not through cmd.
3458
95ef7787
PE
34592012-11-23 Paul Eggert <eggert@cs.ucla.edu>
3460
3461 Assume POSIX 1003.1-1988 or later for dirent.h (Bug#12958).
3462 * dired.c: Assume HAVE_DIRENT_H.
3463 (NAMLEN): Remove, replacing with ...
3464 (dirent_namelen): New function. All uses changed. Use the GNU macro
3465 _D_EXACT_NAMELEN if available, as it's faster than strlen.
3466 (DIRENTRY): Remove, replacing all uses with 'struct dirent'.
3467 (DIRENTRY_NONEMPTY): Remove. All callers now assume it's nonzero.
3468 * makefile.w32-in (DIR_H): Remove. All uses replaced with
3469 $(NT_INC)/dirent.h.
3470 ($(BLD)/w32.$(O)): Do not depend on $(SRC)/ndir.h.
3471 * ndir.h: Rename to ../nt/inc/dirent.h.
3472 * sysdep.h (closedir) [!HAVE_CLOSEDIR]: Remove.
3473 Do not include <dirent.h>; no longer needed.
3474 * w32.c: Include <dirent.h> rather than "ndir.h".
3475
12645ae6
CY
34762012-11-23 Chong Yidong <cyd@gnu.org>
3477
3478 * xftfont.c (xftfont_open): Remove duplicate assignment.
3479
5c747675
DA
34802012-11-22 Dmitry Antipov <dmantipov@yandex.ru>
3481
3482 * alloc.c (Fgarbage_collect): Unblock input after clearing
3483 gc_in_progress to avoid note_mouse_highlight glitch with GC.
3484 * frame.h (FRAME_MOUSE_UPDATE): New macro.
3485 * msdos.c (IT_frame_up_to_date): Use it here...
3486 * w32term.c (w32_frame_up_to_date): ...here...
3487 * xterm.c (XTframe_up_to_date): ...and here...
3488 * nsterm.m (ns_frame_up_to_date): ...but not here.
3489 * lisp.h (Mouse_HLInfo): Remove mouse_face_deferred_gc member.
3490 Adjust users.
3491 * xdisp.c (message2_nolog, message3_nolog, note_mouse_highlight):
3492 Do not check whether GC is in progress.
3493
6ceeb5f1
DA
34942012-11-22 Dmitry Antipov <dmantipov@yandex.ru>
3495
3496 * xdisp.c (window_buffer_changed): New function.
3497 (update_menu_bar, update_tool_bar): Use it to
3498 simplify large 'if' statements.
3499 (redisplay_internal): Generalize commonly used
3500 'tail' and 'frame' local variables.
3501
ec84768f
EZ
35022012-11-22 Eli Zaretskii <eliz@gnu.org>
3503
3504 * w32.c (getcwd): Fix the 2nd argument type, to prevent conflicts
3505 with Windows system header.
3506
9239d970
PE
35072012-11-21 Paul Eggert <eggert@cs.ucla.edu>
3508
3509 Assume POSIX 1003.1-1988 or later for unistd.h (Bug#12945).
3510 * alloc.c: Assume unistd.h exists.
3511 * fileio.c (Fexpand_file_name) [DOS_NT]: Use getcwd, not getwd.
3512 * sysdep.c (get_current_dir_name): Assume getcwd exists.
3513 (getwd) [USG]: Remove; no longer needed.
3514 (sys_subshell) [DOS_NT]: Use getcwd, not getwd.
3515 * w32.c (getcwd): Rename from getwd, and switch to getcwd's API.
3516 * w32.h (getcwd): Remove decl.
3517
954bba56
SM
35182012-11-21 Stefan Monnier <monnier@iro.umontreal.ca>
3519
3520 * xdisp.c (fast_set_selected_frame): Rename from update_tool_bar_unwind.
3521 Make it set selected_window as well.
3522 (update_tool_bar): Use it.
3523
6ef2e5ef 35242012-11-21 Ken Brown <kbrown@cornell.edu>
4ffea447
KB
3525
3526 * emacs.c (main): Set the G_SLICE environment variable for all
3527 Cygwin builds, not just GTK builds. See
3528 https://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00368.html.
3529
6ef2e5ef 35302012-11-21 Eli Zaretskii <eliz@gnu.org>
88c4a13c
EZ
3531
3532 * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
3533 (FILE_ANY_ACCESS, CTL_CODE, FSCTL_GET_REPARSE_POINT) [_MSC_VER]:
3534 Define for the MSVC compiler.
3535
6ef2e5ef 3536 * w32term.h (EnumSystemLocalesW) [_MSC_VER]: Add a missing semi-colon.
273ac8d1
EZ
3537
3538 * fileio.c (Fsubstitute_in_file_name, Ffile_name_directory)
3539 (Fexpand_file_name) [DOS_NT]: Pass encoded file name to
3540 dostounix_filename. Prevents crashes down the road, because
26ec1f49
SM
3541 dostounix_filename assumes it gets a unibyte string.
3542 Reported by Michel de Ruiter <michel@sentient.nl>, see
273ac8d1
EZ
3543 http://lists.gnu.org/archive/html/help-emacs-windows/2012-11/msg00017.html
3544
eadf1faa
SM
35452012-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
3546
3547 Conflate Qnil and Qunbound for `symbol-function'.
3548 * alloc.c (Fmake_symbol): Initialize `function' to Qnil.
3549 * lread.c (init_obarray): Set `function' fields to Qnil.
3550 * eval.c (Fcommandp): Ignore Qunbound.
3551 (Fautoload, eval_sub, Fapply, Ffuncall, Fmacroexpand):
3552 * data.c (Ffset, Ffboundp, indirect_function, Findirect_function):
3553 Test NILP rather than Qunbound.
3554 (Ffmakunbound): Set to Qnil.
3555 (Fsymbol_function): Never signal an error.
3556 (Finteractive_form): Ignore Qunbound.
3557
b83fdfa9
PE
35582012-11-20 Paul Eggert <eggert@cs.ucla.edu>
3559
3560 * eval.c (interactive_p): Remove no-longer-used decl.
3561
952580c5
DA
35622012-11-20 Dmitry Antipov <dmantipov@yandex.ru>
3563
3564 * xdisp.c (buffer_shared): Adjust comment.
3565 (buffer_shared_and_changed): New function.
3566 (prepare_menu_bars, redisplay_internal): Use it to
3567 decide whether all windows or frames should be updated.
ea6de9b1
DA
3568 (window_outdated): New function.
3569 (text_outside_line_unchanged_p, redisplay_window): Use it.
3570 (redisplay_internal): Likewise. Fix indentation.
952580c5 3571
23ba2705
SM
35722012-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
3573
3574 * eval.c (Finteractive_p, Fcalled_interactively_p, interactive_p): Remove.
3575 (syms_of_eval): Remove corresponding defsubr.
3576 * bytecode.c (exec_byte_code): `interactive-p' is now a Lisp function.
3577
6e9f7997
DC
35782012-11-19 Daniel Colascione <dancol@dancol.org>
3579
3580 * w32fns.c (Fx_file_dialog):
3581 (Fx_file_dialog): Accomodate rename of cygwin_convert_path* to
3582 cygwin_convert_file_name*.
3583
3584 * cygw32.c (Fcygwin_convert_path_to_windows, syms_of_cygw32):
3585 Rename cygwin_convert_path* to cygwin_convert_file_name*.
3586
552a1590
PE
35872012-11-18 Paul Eggert <eggert@cs.ucla.edu>
3588
3589 * nsterm.m (ns_select): Send SIGIO only to self, not to process group.
3590
2ac9538d 35912012-11-18 Eli Zaretskii <eliz@gnu.org>
d8715cdf
EZ
3592
3593 * w32select.c: Include w32common.h before w32term.h, so that
3594 windows.h gets included before w32term.h uses some of its
3595 features, see below.
3596
23ba2705
SM
3597 * w32term.h (LOCALE_ENUMPROCA, LOCALE_ENUMPROCW) [_MSC_VER]:
3598 New typedefs.
3599 (EnumSystemLocalesA, EnumSystemLocalesW) [_MSC_VER]:
3600 New prototypes.
d8715cdf
EZ
3601 (EnumSystemLocales) [_MSC_VER]: Define if undefined. (Bug#12878)
3602
2ac9538d 36032012-11-18 Jan Djärv <jan.h.d@swipnet.se>
7436fc63
JD
3604
3605 * nsterm.m (hold_event): Set send_appdefined to YES (Bug#12834).
3606 (ns_select): Return at once if events are held (Bug#12834).
3607
2ac9538d 36082012-11-18 enami tsugutomo <tsugutomo.enami@jp.sony.com>
86dcf21c 3609
3610 * unexelf.c (ELFSIZE) [__NetBSD__ && _LP64]: Set to 64.
3611 Needed following 2012-10-20 change. (Bug#12902)
3612
c1f7ba3a
JB
36132012-11-18 Juanma Barranquero <lekktu@gmail.com>
3614
3615 * w32proc.c (waitpid): Remove unused label get_result.
3616
a75ce9d3
JB
36172012-11-17 Juanma Barranquero <lekktu@gmail.com>
3618
3619 * makefile.w32-in (SYSWAIT_H): New macro.
3620 ($(BLD)/callproc.$(O), $(BLD)/w32proc.$(O), $(BLD)/process.$(O))
3621 ($(BLD)/sysdep.$(O)): Update dependencies.
3622
49cdacda
PE
36232012-11-17 Paul Eggert <eggert@cs.ucla.edu>
3624
3625 Assume POSIX 1003.1-1988 or later for fcntl.h (Bug#12881).
3626 * callproc.c (relocate_fd): Assume F_DUPFD.
3627 * emacs.c, term.c (O_RDWR): Remove.
3628 * keyboard.c (tty_read_avail_input): Use O_NONBLOCK rather than
3629 O_NDELAY, since O_NONBLOCK is the standard name for this flag.
3630 * nsterm.m: Assume <fcntl.h> exists.
3631 * process.c (NON_BLOCKING_CONNECT, allocate_pty, create_process)
3632 (create_pty, Fmake_network_process, server_accept_connection)
3633 (wait_reading_process_output, init_process_emacs):
3634 Assume O_NONBLOCK.
3635 (wait_reading_process_output): Put in a special case for WINDOWSNT
3636 to mimick the older behavior where it had O_NDELAY but not O_NONBLOCK.
3637 It's not clear this is needed, but it's a more-conservative change.
3638 (create_process): Assume FD_CLOEXEC.
3639 (create_process, create_pty): Assume O_NOCTTY.
3640 * sysdep.c (init_sys_modes, reset_sys_modes): Assume F_SETFL.
3641 (reset_sys_modes): Use O_NONBLOCK rather than O_NDELAY.
3642 Omit if not DOS_NT, since F_GETFL is not defined there.
3643 (serial_open): Assume O_NONBLOCK and O_NOCTTY.
3644 * term.c: Include <fcntl.h>, for flags like O_NOCTTY.
3645 (O_NOCTTY): Remove.
3646 (init_tty): Assume O_IGNORE_CTTY is defined to 0 on platforms that
3647 lack it, since gnulib guarantees this.
3648 * w32.c (fcntl): Test for O_NONBLOCK rather than O_NDELAY.
3649
22bae83f
EZ
36502012-11-17 Eli Zaretskii <eliz@gnu.org>
3651
6ad30855
EZ
3652 * w32.c (faccessat): Pretend that directories have the execute bit
3653 set. Emacs expects that, e.g., in files.el:cd-absolute.
3654
22bae83f
EZ
3655 * w32proc.c (create_child): Don't clip the PID of the child
3656 process to fit into an Emacs integer, as this is no longer a
3657 restriction.
3658 (waitpid): Rename from sys_wait. Emulate a Posix 'waitpid' by
3659 reaping only the process specified by PID argument, if that is
3660 positive. Use PID instead of dead_child to know which process to
3661 reap. Wait for the child to die only if WNOHANG is not in
3662 OPTIONS.
3663 (sys_select): Don't set dead_child.
3664
3665 * sysdep.c (wait_for_termination_1): Remove the WINDOWSNT portion,
3666 as it is no longer needed.
3667
3668 * process.c (waitpid, WUNTRACED) [!WNOHANG]: Remove definitions,
3669 no longer needed.
3670 (record_child_status_change): Remove the setting of
3671 record_at_most_one_child for the !WNOHANG case.
3672
a631d0e0
PE
36732012-11-17 Paul Eggert <eggert@cs.ucla.edu>
3674
3675 Fix problems in ns port found by static checking.
3676 * nsterm.m: Include <pthread.h>, for pthread_mutex_lock etc.
3677 (hold_event, setPosition:portion:whole:): Send SIGIO only to self,
3678 not to process group.
3679 (ns_select): Use emacs_write, not write, as that's more robust
3680 in the presence of signals.
3681 (fd_handler:): Check for read errors.
3682
d56f2e49
GM
36832012-11-16 Glenn Morris <rgm@gnu.org>
3684
3685 * editfns.c (Fmessage): Mention message-log-max. (Bug#12849)
3686
96e05507 36872012-11-16 Stefan Monnier <monnier@iro.umontreal.ca>
5c2a7148
SM
3688
3689 * eval.c (Finteractive_p): Revert lexbind-merge mishap.
3690
96e05507 36912012-11-16 Eli Zaretskii <eliz@gnu.org>
730b2d8f
EZ
3692
3693 * w32proc.c (timer_loop): Make sure SuspendThread and ResumeThread
3694 use the same value of thread handle.
3695 (start_timer_thread): If the timer thread exited (due to error),
3696 clean up by closing the two handles it used. Duplicate the caller
3697 thread's handle here, so it gets duplicated only once, when
3698 launching the timer thread. Set priority of the timer thread, not
3699 the caller thread.
3700 (getitimer): Don't duplicate the caller thread's handle here.
3701 (Bug#12832)
3702
96e05507 37032012-11-16 Jan Djärv <jan.h.d@swipnet.se>
f99c65e5
JD
3704
3705 * nsterm.m (hold_event): Send SIGIO to make sure ns_read_socket is
3706 called (Bug#12834).
3707
3d082a26
PE
37082012-11-16 Paul Eggert <eggert@cs.ucla.edu>
3709
3710 Remove no-longer-used pty_max_bytes variable.
3711 * process.c (pty_max_bytes): Remove; unused.
3712 (send_process): Do not set it.
3713
b72c161c
JB
37142012-11-15 Juanma Barranquero <lekktu@gmail.com>
3715
3716 * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/emacs.$(O)):
3717 Update dependencies.
3718
bf20ea80
PE
37192012-11-15 Paul Eggert <eggert@cs.ucla.edu>
3720
3721 * eval.c (mark_backtrace) [BYTE_MARK_STACK]: Remove stray '*'.
3722 This follows up on the 2012-09-29 patch that removed indirection
3723 for the 'function' field. Reported by Sergey Vinokurov in
3724 <http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00263.html>.
3725
14f20728
EZ
37262012-11-14 Eli Zaretskii <eliz@gnu.org>
3727
3728 * w32.c (faccessat): Rename from sys_faccessat. (No need to use a
3729 different name, as the MS runtime does not have such a function,
3730 and probably never will.) All callers changed. Ignore DIRFD
3731 value if PATH is an absolute file name, to match Posix spec
3732 better. If AT_SYMLINK_NOFOLLOW is set in FLAGS, don't resolve
3733 symlinks.
3734
77731919
DA
37352012-11-14 Dmitry Antipov <dmantipov@yandex.ru>
3736
3737 * xdisp.c (echo_area_display, redisplay_internal):
3738 Omit redundant check whether frame_garbaged is set.
3739
73dcdb9f
PE
37402012-11-14 Paul Eggert <eggert@cs.ucla.edu>
3741
3742 Use faccessat, not access, when checking file permissions (Bug#12632).
3743 This fixes a bug that has been present in Emacs since its creation.
3744 It was reported by Chris Torek in 1983 even before GNU Emacs existed,
3745 which must set some sort of record. (Torek's bug report was against
3746 a predecessor of GNU Emacs, but GNU Emacs happened to have the
3747 same common flaw.) See Torek's Usenet posting
3748 "setuid/setgid programs & Emacs" Article-I.D.: sri-arpa.858
3749 Posted: Fri Apr 8 14:18:56 1983.
3750 * Makefile.in (LIB_EACCESS): New macro.
3751 (LIBES): Use it.
3752 * callproc.c (init_callproc):
3753 * charset.c (init_charset):
3754 * fileio.c (check_existing, check_executable, check_writable)
3755 (Ffile_readable_p):
3756 * lread.c (openp, load_path_check):
3757 * process.c (allocate_pty):
3758 * xrdb.c (file_p):
3759 Use effective UID when checking permissions, not real UID.
3760 * callproc.c (init_callproc):
3761 * charset.c (init_charset):
3762 * lread.c (load_path_check, init_lread):
3763 Test whether directories are accessible, not merely whether they exist.
3764 * conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): New macro.
3765 * fileio.c (check_existing, check_executable, check_writable)
3766 (Ffile_readable_p):
3767 Use symbolic names instead of integers for the flags, as they're
3768 portable now.
3769 (check_writable): New arg AMODE. All uses changed.
3770 Set errno on failure.
3771 (Ffile_readable_p): Use faccessat, not stat + open + close.
3772 (Ffile_writable_p): No need to call check_existing + check_writable.
3773 Just call check_writable and then look at errno. This saves a syscall.
3774 dir should never be nil; replace an unnecessary runtime check
3775 with an eassert. When checking the parent directory of a nonexistent
3776 file, check that the directory is searchable as well as writable, as
3777 we can't create files in unsearchable directories.
3778 (file_directory_p): New function, which uses 'stat' on most platforms
3779 but faccessat with D_OK (for efficiency) if WINDOWSNT.
3780 (Ffile_directory_p, Fset_file_times): Use it.
3781 (file_accessible_directory_p): New function, which uses a single
3782 syscall for efficiency.
3783 (Ffile_accessible_directory_p): Use it.
3784 * xrdb.c (file_p): Use file_directory_p.
3785 * lisp.h (file_directory_p, file_accessible_directory_p): New decls.
3786 * lread.c (openp): When opening a file, use fstat rather than
3787 stat, as that avoids a permissions race. When not opening a file,
3788 use file_directory_p rather than stat.
3789 (dir_warning): First arg is now a usage string, not a format.
3790 Use errno. All uses changed.
3791 * nsterm.m (ns_term_init): Remove unnecessary call to file-readable
3792 that merely introduced a race.
3793 * process.c, sysdep.c, term.c: All uses of '#ifdef O_NONBLOCK'
3794 changed to '#if O_NONBLOCK', to accommodate gnulib O_* style,
3795 and similarly for the other O_* flags.
3796 * w32.c (sys_faccessat): Rename from sys_access and switch to
3797 faccessat's API. All uses changed.
3798 * xrdb.c: Do not include <sys/stat.h>; no longer needed.
3799 (magic_db): Rename from magic_file_p.
3800 (magic_db, search_magic_path): Return an XrmDatabase rather than a
3801 char *, so that we don't have to test for file existence
3802 separately from opening the file for reading. This removes a race
3803 fixes a permission-checking problem, and simplifies the code.
3804 All uses changed.
3805 (file_p): Remove; no longer needed.
3806
2a14f83b
DA
38072012-11-13 Dmitry Antipov <dmantipov@yandex.ru>
3808
3809 Omit glyphs initialization at startup.
3810 * dispnew.c (glyphs_initialized_initially_p): Remove.
3811 (adjust_frame_glyphs_initially): Likewise. Adjust users.
3812 (Fredraw_frame): Move actual code from here...
c7085245 3813 (redraw_frame): ...to here. Add eassert. Adjust comment.
2a14f83b
DA
3814 (Fredraw_display): Use redraw_frame.
3815 * xdisp.c (clear_garbaged_frames): Likewise.
3816
f78ee6af 38172012-11-13 Eli Zaretskii <eliz@gnu.org>
32520273
EZ
3818
3819 * xdisp.c (decode_mode_spec): Limit the value of WIDTH argument
3820 passed to pint2str and pint2hrstr to be at most the size of the
3821 frame's decode_mode_spec_buffer. This avoids crashes with very
3822 large values of FIELD_WIDTH argument to decode_mode_spec.
3823 (Bug#12867)
3824
b95a9c0c
PE
38252012-11-13 Paul Eggert <eggert@cs.ucla.edu>
3826
3827 Fix a race with verify-visited-file-modtime (Bug#12863).
3828 Since at least 1991 Emacs has ignored an mtime difference of no
3829 more than one second, but my guess is that this was to work around
3830 file system bugs that were fixed long ago. Since the race is
3831 causing problems now, let's remove that code.
3832 * fileio.c (Fverify_visited_file_modtime): Do not accept a file
3833 whose time stamp is off by no more than a second. Insist that the
3834 file time stamps match exactly.
3835
be49ba74
DA
38362012-11-12 Dmitry Antipov <dmantipov@yandex.ru>
3837
3838 * frame.h (struct frame): Convert external_tool_bar member to
3839 1-bit unsigned bitfield.
3840 * termhooks.h (struct terminal): Remove mouse_moved member since
3841 all users are long dead. Adjust comment on mouse_position_hook.
3842
5b04e9f9
DA
38432012-11-12 Dmitry Antipov <dmantipov@yandex.ru>
3844
3845 Simplify by using FOR_EACH_FRAME here and there.
3846 * frame.c (next_frame, prev_frame, other_visible_frames)
3847 (delete_frame, visible-frame-list): Use FOR_EACH_FRAME.
3848 * w32term.c (x_window_to_scroll_bar): Likewise.
3849 * window.c (window_list): Likewise.
3850 * xdisp.c (x_consider_frame_title): Likewise.
3851 * xfaces.c ( Fdisplay_supports_face_attributes_p): Likewise.
3852 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3853 (x_menubar_window_to_frame, x_top_window_to_frame): Likewise.
3854 * xmenu.c (menubar_id_to_frame): Likewise.
3855 * xselect.c (frame_for_x_selection): Likewise.
3856 * xterm.c (x_frame_of_widget, x_window_to_scroll_bar)
3857 (x_window_to_menu_bar): Likewise.
3858 * w32fns.c (x_window_to_frame): Likewise. Adjust comment.
3859
76ae24d7
PE
38602012-11-12 Paul Eggert <eggert@cs.ucla.edu>
3861
12cc4337
PE
3862 * data.c (Qdefalias_fset_function): Now static.
3863
76ae24d7
PE
3864 Another tweak to vectorlike_header change.
3865 * alloc.c (struct Lisp_Vectorlike_Free, NEXT_IN_FREE_LIST):
3866 Remove, and replace all uses with ...
3867 (next_in_free_list, set_next_in_free_list):
3868 New functions, which respect C's aliasing rules better.
3869
1479c557
PE
38702012-11-11 Paul Eggert <eggert@cs.ucla.edu>
3871
3872 * window.c (list4i): Rename from 'quad'. All uses changed.
3873 Needed because <sys/types.h> defines 'quad' on Solaris 10.
3874
11235c03
JB
38752012-11-11 Juanma Barranquero <lekktu@gmail.com>
3876
3877 * xdisp.c (start_hourglass) [HAVE_NTGUI]: Add block to silence
3878 warning about mixing declarations and code in ISO C90.
3879
6baf66d5 38802012-11-10 Martin Rudalics <rudalics@gmx.at>
fdaf534a
MR
3881
3882 * window.c (Fsplit_window_internal): Set combination limit of
3883 new parent window to t iff Vwindow_combination_limit is t;
3884 fixing a regression introduced with the change from 2012-09-22.
6baf66d5 3885 (Fset_window_combination_limit): Fix doc-string.
fdaf534a 3886
6baf66d5 38872012-11-10 Eli Zaretskii <eliz@gnu.org>
acf93bcf
EZ
3888
3889 * xdisp.c (try_scrolling): Fix correction of aggressive-scroll
3890 amount when the scroll margins are too large. When scrolling
3891 backwards in the buffer, give up if cannot reach point or the
23ba2705
SM
3892 scroll margin within a reasonable number of screen lines.
3893 Fixes point position in window under scroll-up/down-aggressively when
acf93bcf
EZ
3894 point is positioned many lines beyond the window top/bottom.
3895 (Bug#12811)
3896
508f51f5
EZ
3897 * ralloc.c (relinquish): If real_morecore fails to return memory
3898 to the system, don't crash; instead, leave the last heap
3899 unchanged and return. (Bug#12774)
3900
32e5c58c
SM
39012012-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
3902
3903 * lisp.h (AUTOLOADP): New macro.
3904 * eval.c (Fautoload): Don't attach to loadhist, call Fdefalias instead.
3905 * data.c (Ffset): Remove special ad-advice-info handling.
3906 (Fdefalias): Handle autoload definitions and new Qdefalias_fset_function.
3907 (Fsubr_arity): CSE.
3908 (Finteractive_form): Simplify.
3909 (Fquo): Don't insist on having at least 2 arguments.
3910 (Qdefalias_fset_function): New var.
3911
719b0aa5
JD
39122012-11-09 Jan Djärv <jan.h.d@swipnet.se>
3913
4ab15c3e
JD
3914 * image.c (xpm_make_color_table_h): Change to hashtest_equal.
3915
719b0aa5
JD
3916 * nsfont.m (Qcondensed, Qexpanded): New variables.
3917 (ns_descriptor_to_entity): Restore Qcondensed, Qexpanded setting.
3918 (syms_of_nsfont): Defsym Qcondensed, Qexpanded.
3919
535cc8e9
DA
39202012-11-09 Dmitry Antipov <dmantipov@yandex.ru>
3921
3922 Fix recently introduced crash on MS-Windows (Bug#12839).
3923 * w32term.h (struct scroll_bar): Use convenient header.
3924 (SCROLL_BAR_VEC_SIZE): Remove.
3925 * w32term.c (x_scroll_bar_create): Use VECSIZE.
3926
7d377c48
DA
39272012-11-09 Dmitry Antipov <dmantipov@yandex.ru>
3928
3929 Tweak last vectorlike_header change.
3930 * alloc.c (struct Lisp_Vectorlike_Free): Special type to represent
3931 vectorlike object on the free list. This is introduced to avoid
3932 some (but not all) pointer casting and aliasing problems, see
3933 http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00105.html.
3934 * .gdbinit (pvectype, pvecsize): New commands to examine vectorlike
3935 objects.
3936 (xvectype, xvecsize): Use them to examine Lisp_Object values.
3937
7ad27466
JD
39382012-11-09 Jan Djärv <jan.h.d@swipnet.se>
3939
32e5c58c 3940 * nsfont.m (ns_descriptor_to_entity): Qcondensed and Qexpanded has
7ad27466
JD
3941 been removed, so remove them here also.
3942
57618ecf
SM
39432012-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
3944
3945 * doc.c (Fdocumentation): Handle new property
3946 dynamic-docstring-function to replace the old ad-advice-info.
3947
53371430
PE
39482012-11-09 Paul Eggert <eggert@cs.ucla.edu>
3949
3950 * fns.c (Qeql, hashtest_eq): Now static.
3951
61ddb1b9
SM
39522012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
3953
3954 * lisp.h (XHASH): Redefine to be imperfect and fit in a Lisp int.
3955 * fns.c (hashfn_eq, hashfn_eql, sxhash):
3956 * profiler.c (hashfn_profiler): Don't use XUINT on non-integers.
3957 * buffer.c (compare_overlays): Use XLI rather than XHASH.
3958
04a2d0d3
PE
39592012-11-08 Paul Eggert <eggert@cs.ucla.edu>
3960
3961 Use same hash function for hashfn_profiler as for hash_string etc.
3962 * fns.c (SXHASH_COMBINE): Remove. All uses replaced by sxhash_combine.
3963 * lisp.h (sxhash_combine): New inline function, with the contents
3964 of the old SXHASH_COMBINE.
3965 * profiler.c (hashfn_profiler): Use it, instead of having a
3966 special hash function containing a comparison that always yields 1.
3967
de5ef41a
SM
39682012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
3969
3970 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic)
3971 (Qultra_condensed, Qextra_condensed, Qcondensed, Qsemi_condensed)
3972 (Qsemi_expanded, Qextra_expanded, Qexpanded, Qultra_expanded):
3973 Remove unused vars.
3974
a23c4171
JD
39752012-11-08 Jan Djärv <jan.h.d@swipnet.se>
3976
3977 * image.c (xpm_make_color_table_h): Fix compiler error because
3978 make_hash_table changed.
3979
0b59090b 39802012-11-08 Thomas Kappler <tkappler@gmail.com> (tiny change)
074d7bb0
JD
3981
3982 * nsfont.m (ns_findfonts): Handle empty matchingDescs (Bug#11541).
3983
b7432bb2
SM
39842012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
3985
3986 Use ad-hoc comparison function for the profiler's hash-tables.
3987 * profiler.c (Qprofiler_backtrace_equal, hashtest_profiler): New vars.
3988 (make_log): Use them.
3989 (handle_profiler_signal): Don't inhibit quit any longer since we don't
3990 call Fequal any more.
3991 (Ffunction_equal): New function.
3992 (cmpfn_profiler, hashfn_profiler): New functions.
3993 (syms_of_profiler): Initialize them.
3994 * lisp.h (struct hash_table_test): New struct.
3995 (struct Lisp_Hash_Table): Use it.
3996 * alloc.c (mark_object): Mark hash_table_test fields of hash tables.
3997 * fns.c (make_hash_table): Take a struct to describe the test.
3998 (cmpfn_eql, cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
3999 (hashfn_equal, hashfn_user_defined): Adjust to new calling convention.
4000 (hash_lookup, hash_remove_from_table): Move assertion checking of
4001 hashfn result here. Check hash-equality before calling cmpfn.
4002 (Fmake_hash_table): Adjust call to make_hash_table.
4003 (hashtest_eq, hashtest_eql, hashtest_equal): New structs.
4004 (syms_of_fns): Initialize them.
4005 * emacs.c (main): Move syms_of_fns earlier.
4006 * xterm.c (syms_of_xterm):
4007 * category.c (hash_get_category_set): Adjust call to make_hash_table.
4008 * print.c (print_object): Adjust to new hash-table struct.
4009 * composite.c (composition_gstring_put_cache): Adjust to new hashfn.
4010
88002743
EZ
40112012-11-08 Eli Zaretskii <eliz@gnu.org>
4012
4013 * w32fns.c (modifier_set): Fix handling of Scroll Lock when the
4014 value of w32-scroll-lock-modifier is neither nil nor one of the
4015 known key modifiers. (Bug#12806)
4016
914adc42
DA
40172012-11-08 Dmitry Antipov <dmantipov@yandex.ru>
4018
4019 Shrink struct vectorlike_header to the only size field.
4020 * lisp.h (enum pvec_type): Avoid explicit enum member values.
4021 Adjust comment.
4022 (enum More_Lisp_Bits): Change PSEUDOVECTOR_SIZE_BITS and
4023 PVEC_TYPE_MASK to arrange new bitfield in the vector header.
4024 (PSEUDOVECTOR_REST_BITS, PSEUDOVECTOR_REST_MASK): New members.
4025 (PSEUDOVECTOR_AREA_BITS): New member used to extract subtype
4026 information from the vector header. Adjust comment.
4027 (XSETPVECTYPE, XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR)
4028 (PSEUDOVECTOR_TYPEP, DEFUN): Adjust to match new vector header
4029 layout.
4030 (XSETSUBR, SUBRP): Adjust to match new Lisp_Subr layout.
4031 (struct vectorlike_header): Remove next member. Adjust comment.
4032 (struct Lisp_Subr): Add convenient header. Adjust comment.
4033 (allocate_pseudovector): Adjust prototype.
4034 * alloc.c (mark_glyph_matrix, mark_face_cache, allocate_string)
4035 (sweep_string, lisp_malloc): Remove useless prototypes.
4036 (enum mem_type): Adjust comment.
4037 (NEXT_IN_FREE_LIST): New macro.
4038 (SETUP_ON_FREE_LIST): Adjust XSETPVECTYPESIZE usage.
4039 (Fmake_bool_vector): Likewise.
4040 (struct large_vector): New type to represent allocation unit for
4041 the vectors with the memory footprint more than VBLOOCK_BYTES_MAX.
4042 (large_vectors): Change type to struct large_vector.
4043 (allocate_vector_from_block): Simplify.
4044 (PSEUDOVECTOR_NBYTES): Replace with...
4045 (vector_nbytes): ...new function. Adjust users.
4046 (sweep_vectors): Adjust processing of large vectors.
4047 (allocate_vectorlike): Likewise.
4048 (allocate_pseudovector): Change type of 3rd arg to enum pvec_type.
4049 Add easserts. Adjust XSETPVECTYPESIZE usage.
4050 (allocate_buffer): Use BUFFER_PVEC_INIT.
4051 (live_vector_p): Adjust to match large vector.
4052 * buffer.c (init_buffer_once): Use BUFFER_PVEC_INIT.
4053 * buffer.h (struct buffer): Add next member.
4054 (BUFFER_LISP_SIZE, BUFFER_REST_SIZE, BUFFER_PVEC_INIT):
4055 New macros.
4056 (FOR_EACH_BUFFER): Adjust to match struct buffer change.
4057 * fns.c (internal_equal): Adjust to match enum pvec_type change.
4058 (copy_hash_table): Adjust to match vector header change.
4059 * lread.c (defsubr): Use XSETPVECTYPE.
4060 * .gdbinit (xpr, xbacktrace): Adjust to match vector header change.
4061 (xvectype): Likewise. Print PVEC_NORMAL_VECTOR for regular vectors.
4062 (xvecsize): New command.
4063
c66f21ea
DA
40642012-11-08 Dmitry Antipov <dmantipov@yandex.ru>
4065
4066 * keyboard.c (event_to_kboard): Do not dereference
4067 frame_or_window field of SELECTION_REQUEST_EVENT
4068 and SELECTION_CLEAR_EVENT events (Bug#12814).
4069 * xterm.h (struct selection_input_event): Adjust comment.
4070
eb147960
EZ
40712012-11-07 Eli Zaretskii <eliz@gnu.org>
4072
dab72075
EZ
4073 * w32fns.c (modifier_set): Don't report modifiers from toggle key,
4074 such as Scroll Lock, if the respective keys are treated as
4075 function keys, not as modifiers. This avoids destroying non-ASCII
6b064c16 4076 keyboard input when Scroll Lock is toggled ON. (Bug#12806)
eb147960 4077
5890e400
DA
40782012-11-07 Dmitry Antipov <dmantipov@yandex.ru>
4079
4080 * xfns.c (Fx_wm_set_size_hint): Use check_x_frame. Adjust docstring.
4081
b6b3b294
PE
40822012-11-06 Paul Eggert <eggert@cs.ucla.edu>
4083
4084 Restore some duplicate definitions (Bug#12814).
4085 This undoes part of the 2012-11-03 changes. Some people build
4086 with plain -g rather than with -g3, and they need the duplicate
4087 definitions for .gdbinit to work; see <http://bugs.gnu.org/12814#26>.
4088 * lisp.h (GCTYPEBITS, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK):
4089 Define as macros, as well as as enums or as constants.
4090
e770aad5
JD
40912012-11-06 Jan Djärv <jan.h.d@swipnet.se>
4092
4093 * nsterm.m (convert_ns_to_X_keysym, keyDown:): Add NSNumericPadKeyMask
4094 to keypad keys (Bug#12816).
4095
68f8f1c0
PE
40962012-11-06 Paul Eggert <eggert@cs.ucla.edu>
4097
4098 Minor adjustments of recently-changed frame functions.
4099 * buffer.c (Fbuffer_list): Omit CHECK_FRAME, since arg is already
4100 known to be a frame (we're in the FRAMEP branch).
4101 * lisp.h (Qframep): Remove decl. frame.h declares this.
4102 * window.c (quad): Args are of type EMACS_INT, not ptrdiff_t,
4103 since they're meant for Lisp fixnum values.
4104
72f94d4b
DA
41052012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
4106
4107 * window.c (Fwindow_combination_limit): Revert to the only
4108 required argument and adjust docstring as suggested in
4109 http://lists.gnu.org/archive/html/emacs-diffs/2012-11/msg01082.html
4110 by Martin Rudalics <rudalics@gmx.at>.
4111
d9f07150
DA
41122012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
4113
4114 Widely used frame validity and checking functions.
4115 * frame.h (decode_live_frame, decode_any_frame): Add prototypes.
4116 * frame.c (decode_live_frame, decode_any_frame): New functions.
4117 (delete_frame, Fredirect_frame_focus, Fframe_parameters)
4118 (Fframe_parameter, Fframe_char_height, Fframe_char_width)
4119 (Fframe_pixel_height, Fframe_pixel_width, Ftool_bar_pixel_width)
4120 (Fframe_pointer_visible_p): Use decode_any_frame.
4121 (Fmake_frame_visible, Fmake_frame_invisible, Ficonify_frame)
4122 (Fraise_frame, Flower_frame, Fmodify_frame_parameters)
4123 (Fset_frame_height, Fset_frame_width): Use decode_live_frame.
4124 (Fframe_focus): Likewise. Allow zero number of arguments.
4125 Adjust docstring.
4126 (frame_buffer_list, frame_buffer_predicate): Remove.
4127 * lisp.h (frame_buffer_predicate): Remove prototype.
4128 * buffer.c (Fother_buffer): Use decode_any_frame.
4129 * xdisp.c (Ftool_bar_lines_needed): Likewise.
4130 * xfaces.c (Fcolor_gray_p, Fcolor_supported_p): Likewise.
4131 * font.c (Ffont_face_attributes, Ffont_family_list, Fopen_font)
4132 (Fclose_font, Ffont_info): Use decode_live_frame.
4133 * fontset.c (check_fontset_name): Likewise.
4134 * terminal.c (Fframe_terminal): Likewise.
4135 * w32fns.c (check_x_frame): Likewise.
4136 * window.c (Fminibuffer_window, Fwindow_at)
4137 (Fcurrent_window_configuration): Likewise.
4138 (Frun_window_configuration_change_hook, Fwindow_resize_apply):
4139 Likewise. Allow zero number of arguments. Adjust docstring.
4140 * dispnew.c (Fredraw_frame): Likewise.
4141 * xfaces.c (frame_or_selected_frame): Remove.
4142 (Fx_list_fonts, Finternal_get_lisp_face_attribute, Fface_font)
4143 (Finternal_lisp_face_equal_p, Finternal_lisp_face_empty_p)
4144 (Fframe_face_alist): Use decode_live_frame.
4145 * xfns.c (check_x_frame): Likewise.
4146
89bc0592
DA
41472012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
4148
4149 * window.c (quad): New function.
4150 (Fwindow_edges, Fwindow_pixel_edges, Fwindow_inside_edges)
4151 (Fwindow_absolute_pixel_edges, Fwindow_inside_absolute_pixel_edges)
4152 (Fwindow_inside_pixel_edges, Fpos_visible_in_window_p)
4153 (Fwindow_line_height): Use it.
4154 (Fwindow_fringes): Use list3.
4155 (Fwindow_scroll_bars): Use list4.
4156 (Fwindow_frame, Fwindow_top_child, Fwindow_left_child)
4157 (Fwindow_combination_limit): Allow zero number of arguments.
4158
c8e3a9c3
EZ
41592012-11-05 Eli Zaretskii <eliz@gnu.org>
4160
4161 * makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(NT_INC)/unistd.h.
4162
8e2417bf 4163 * w32fns.c: Include unistd.h, to avoid compiler warnings on Cygwin.
c8e3a9c3 4164 (emacs_abort) [CYGWIN]: Don't call _open_osfhandle; instead, use
ae600a8e 4165 file descriptor 2 for standard error. (Bug#12805)
c8e3a9c3 4166
209c6a58
CY
41672012-11-05 Chong Yidong <cyd@gnu.org>
4168
4169 * process.c (wait_reading_process_output): Revert previous change.
4170
8148369c
PE
41712012-11-05 Paul Eggert <eggert@cs.ucla.edu>
4172
dd0333b6
PE
4173 Assume at least POSIX.1-1988 for getpgrp, setpgid, setsid (Bug#12800).
4174 This removes code that has been obsolete since around 1990.
4175 * callproc.c (Fcall_process):
4176 * emacs.c (main):
4177 * process.c (create_process):
4178 * term.c (dissociate_if_controlling_tty):
4179 Assume setsid exists.
4180 * callproc.c (child_setup): Assume setpgid exists and behaves as
4181 per POSIX.1-1988 or later.
4182 * conf_post.h (setpgid) [!HAVE_SETPGID]: Remove.
4183 * emacs.c (shut_down_emacs):
4184 * sysdep.c (sys_suspend, init_foreground_group):
4185 Assume getpgrp behaves as per POSIX.1-1998 or later.
4186 * msdos.c (setpgrp): Remove.
4187 (tcgetpgrp, setpgid, setsid): New functions.
4188 * systty.h (EMACS_GETPGRP): Remove. All callers now use getpgrp.
4189 * term.c (no_controlling_tty): Remove; unused.
4190 * w32proc.c (setpgrp): Remove.
4191 (setsid, tcgetpgrp): New functions.
4192
8148369c
PE
4193 Simplify by assuming __fpending.
4194 * dispnew.c: Include <fpending.h>, not <stdio_ext.h>.
4195 (update_frame_1): Use __fpending, not PENDING_OUTPUT_COUNT.
4196 Do not assume that __fpending's result fits in int.
4197
76abf5e5
PE
41982012-11-04 Paul Eggert <eggert@cs.ucla.edu>
4199
06b63c9b
PE
4200 Remove EMACS_OUTQSIZE+sleep hack.
4201 * dispnew.c (update_frame_1): Remove hack for terminals slower
de5ef41a
SM
4202 than 2400 bps, which throttled Emacs by having it sleep.
4203 This code hasn't worked since at least 2007, when the multi-tty stuff
06b63c9b
PE
4204 was added, and anyway those old terminals are long dead.
4205 * systty.h (EMACS_OUTQSIZE): Remove; unused. The macro isn't used even
4206 without the dispnew.c change, as dispnew.c doesn't include systty.h.
4207
76abf5e5
PE
4208 Fix data-loss with --version (Bug#9574).
4209 * emacs.c (close_output_streams): Use strerror, not emacs_strerror,
4210 as we can't assume that emacs_strerror is initialized, and strerror
4211 is good enough here.
4212 (main): Invoke atexit earlier, to catch earlier instances of
4213 sending data to stdout and exiting, e.g., "emacs --version >/dev/full".
4214
8f31e74b
MM
42152012-11-04 Michael Marchionna <tralfaz@pacbell.net>
4216
4217 * nsterm.m: Add NSClearLineFunctionKey and keypad keys (Bug#8680).
4218 (keyDown): Remap keypad keys to X11 virtual key codes.
4219
0d879dca
PE
42202012-11-03 Paul Eggert <eggert@cs.ucla.edu>
4221
7ccfb720
PE
4222 Fix data-loss with --batch (Bug#9574).
4223 * emacs.c: Include <close-stream.h>.
4224 (close_output_streams): New function.
4225 (main): Pass it to atexit, so that Emacs closes stdout and stderr
4226 and handles errors appropriately.
4227 (Fkill_emacs): Don't worry about flushing, as close_output_stream
4228 does that now.
4229
0b3d4a47
PE
4230 Fix a race condition that causes Emacs to mess up glib (Bug#8855).
4231 The symptom is a diagnostic "GLib-WARNING **: In call to
4232 g_spawn_sync(), exit status of a child process was requested but
4233 SIGCHLD action was set to SIG_IGN and ECHILD was received by
4234 waitpid(), so exit status can't be returned." The diagnostic
4235 is partly wrong, as the SIGCHLD action is not set to SIG_IGN.
4236 The real bug is a race condition between Emacs and glib: Emacs
4237 does a waitpid (-1, ...) and reaps glib's subprocess by mistake,
4238 so that glib can't find it. Work around the bug by invoking
4239 waitpid only on subprocesses that Emacs itself creates.
4240 * process.c (create_process, record_child_status_change):
4241 Don't use special value -1 in pid field, as the caller now must
de5ef41a
SM
4242 know the pid rather than having the callee infer it.
4243 The inference was sometimes incorrect anyway, due to another race.
0b3d4a47
PE
4244 (create_process): Set new 'alive' member if child is created.
4245 (process_status_retrieved): New function.
4246 (record_child_status_change): Use it.
4247 Accept negative 1st argument, which means to wait for the
4248 processes that Emacs already knows about. Move special-case code
4249 for DOS_NT (which lacks WNOHANG) here, from caller. Keep track of
4250 processes that have already been waited for, by testing and
4251 clearing new 'alive' member.
4252 (CAN_HANDLE_MULTIPLE_CHILDREN): Remove, as record_child_status_change
4253 now does this internally.
4254 (handle_child_signal): Let record_child_status_change do all
4255 the work, since we do not want to reap all exited child processes,
4256 only the child processes that Emacs itself created.
4257 * process.h (Lisp_Process): New boolean member 'alive'.
4258
0d879dca
PE
4259 Omit duplicate definitions no longer needed with gcc -g3.
4260 * lisp.h (GCTYPEBITS, GCALIGNMENT, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG)
4261 (VALMASK, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM):
4262 Define only as macros. There's no longer any need to also define
4263 these symbols as enums or as constants, since we now assume
4264 gcc -g3 when debugging.
4265
3478f4b5
EZ
42662012-11-03 Eli Zaretskii <eliz@gnu.org>
4267
4268 * lisp.mk: Adjust comments to the fact that term/internal is now
4269 loaded from loadup.el.
4270
4271 * msdos.c (msdos_abort): Rename from emacs_abort, and make static.
4272 (msdos_fatal_signal): New function.
4273 (XMenuActivate): Adjust the call to kbd_buffer_events_waiting to
4274 its argument list.
4275
4276 * conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Define to "inline"
4277 for GCC versions before 4.
4278 (emacs_raise): Define to call msdos_fatal_signal.
4279
4280 * xdisp.c (init_from_display_pos): Fix initialization of the bidi
4281 iterator when starting in the middle of a display or overlay
4282 string. (Bug#12745)
4283
85fabcb7
CY
42842012-11-03 Chong Yidong <cyd@gnu.org>
4285
4286 * process.c (wait_reading_process_output): Clean up the last
4287 change.
4288
893cc455
CY
42892012-11-03 Jim Paris <jim@jtan.com> (tiny change)
4290
4291 * process.c (wait_reading_process_output): Avoid a race condition
4292 with SIGIO delivery (Bug#11536).
4293
0f7b074f
CY
42942012-11-03 Chong Yidong <cyd@gnu.org>
4295
4296 * buffer.c (cursor_type): Untabify docstring.
4297
3737fee7
DA
42982012-11-03 Dmitry Antipov <dmantipov@yandex.ru>
4299
4300 * frame.h (struct frame): Drop can_have_scroll_bars member
4301 which is meaningless for a long time. Adjust comments.
4302 (FRAME_CAN_HAVE_SCROLL_BARS): Remove.
4303 * frame.c, nsfns.m, term.c, w32fns.c, xfns.c: Adjust users.
4304
b6a9e8b1
DA
43052012-11-03 Dmitry Antipov <dmantipov@yandex.ru>
4306
4307 * window.c (decode_next_window_args): Update window arg after
4308 calling decode_live_window and so fix crash reported at
4309 http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00035.html
4310 by Juanma Barranquero <lekktu@gmail.com>.
4311 (Fwindow_body_width, Fwindow_body_height): Simplify a bit.
4312 * font.c (Ffont_at): Likewise.
4313
600d4768
JD
43142012-11-01 Jan Djärv <jan.h.d@swipnet.se>
4315
4316 * widget.c (resize_cb): New function.
4317 (EmacsFrameRealize): Add resize_cb as event handler (Bug#12733).
4318 (EmacsFrameResize): Check if all is up to date before changing frame
4319 size.
4320
1005b4b9
EZ
43212012-11-02 Eli Zaretskii <eliz@gnu.org>
4322
4323 Implement backtrace output for fatal errors on MS-Windows.
4324 * w32fns.c (CaptureStackBackTrace_proc): New typedef.
4325 (BACKTRACE_LIMIT_MAX): New macro.
4326 (w32_backtrace): New function.
4327 (emacs_abort): Use w32_backtrace when the user chooses not to
4328 attach a debugger. Update the text of the abort dialog.
4329
b9e9df47
DA
43302012-11-02 Dmitry Antipov <dmantipov@yandex.ru>
4331
4332 Window-related stuff cleanup here and there.
4333 * dispnew.c (Finternal_show_cursor, Finternal_show_cursor_p):
4334 Use decode_any_window.
4335 * fringe.c (Ffringe_bitmaps_at_pos): Likewise.
4336 * xdisp.c (Fformat_mode_line): Likewise.
4337 * font.c (Ffont_at): Use decode_live_window.
4338 * indent.c (Fcompute_motion, Fvertical_motion): Likewise.
4339 * window.c (decode_next_window_args): Likewise.
4340 (decode_any_window): Remove static.
4341 * window.h (decode_any_window): Add prototype.
4342 * lisp.h (CHECK_VALID_WINDOW, CHECK_LIVE_WINDOW): Move from here...
4343 * window.h: ...to here, redefine via WINDOW_VALID_P and WINDOW_LIVE_P,
4344 respectively.
4345
2b371ff7
DA
43462012-11-02 Dmitry Antipov <dmantipov@yandex.ru>
4347
4348 Remove pad from struct input_event.
4349 * termhooks.h (struct input_event): Remove padding field.
4350 Adjust comment.
4351 * keyboard.c (event_to_kboard): Simplify because frame_or_window
4352 member is never cons for a long time. Adjust comment.
4353 (mark_kboards): Adjust because SELECTION_REQUEST_EVENT and
4354 SELECTION_CLEAR_EVENT has no Lisp_Objects to mark. Add comment.
4355 * xterm.c (handle_one_xevent): Do not initialize frame_or_window
4356 field of SELECTION_REQUEST_EVENT and SELECTION_CLEAR_EVENT.
4357
7e8b50d9
EZ
43582012-11-01 Eli Zaretskii <eliz@gnu.org>
4359
4360 * w32proc.c (getpgrp, setpgid): New functions. (Bug#12776)
4361
322aea6d
PE
43622012-10-31 Paul Eggert <eggert@cs.ucla.edu>
4363
4364 Fix crash when using Emacs as commit editor for git (Bug#12697).
4365 * callproc.c (setpgrp): Remove macro, as we now use setpgid
4366 and it is configured in conf_post.h.
4367 (Fcall_process): Don't invoke both setsid and setpgid; the former
4368 is enough, if it exists.
4369 * callproc.c (Fcall_process, child_setup):
4370 * process.c (create_process): Use setpgid.
4371 * conf_post.h (setpgid) [!HAVE_SETPGID]: New macro, which substitutes
4372 for the real thing.
4373 * dispnew.c (init_display): Initialize the foreground group
4374 if we are running a tty display.
4375 * emacs.c (main): Do not worry about setpgrp; init_display does it now.
4376 * lisp.h (init_foreground_group): New decl.
4377 * sysdep.c (inherited_pgroup): New static var.
4378 (init_foreground_group, tcsetpgrp_without_stopping)
4379 (narrow_foreground_group, widen_foreground_group): New functions.
4380 (init_sys_modes): Narrow foreground group.
4381 (reset_sys_modes): Widen foreground group.
4382
220cb2bd
MA
43832012-10-31 Michael Albinus <michael.albinus@gmx.de>
4384
4385 * dbusbind.c: Fix cut'n'waste error. Use HAVE_DBUS_VALIDATE_INTERFACE.
4386
218e997a
MR
43872012-10-31 Martin Rudalics <rudalics@gmx.at>
4388
4389 * minibuf.c (read_minibuf): Restore current buffer since
4390 choose_minibuf_frame calling Fset_frame_selected_window may
4391 change it (Bug#12766).
4392
02615da0
JD
43932012-10-30 Jan Djärv <jan.h.d@swipnet.se>
4394
4395 * frame.c (Fframe_pixel_height): Fix documentation (Bug#12733).
4396
aee5b18e
KH
43972012-10-30 Kenichi Handa <handa@gnu.org>
4398
4399 * font.c (Ffont_at): If WINDOW is specified and it is not
4400 displaying the current buffer, signal an error.
4401
ba116008
DC
44022012-10-29 Daniel Colascione <dancol@dancol.org>
4403
de5ef41a
SM
4404 * cygw32.h, cygw32.c (Qutf_16le, from_unicode, to_unicode):
4405 In preparation for fixing bug#12739, move these functions from
ba116008
DC
4406 here...
4407
4408 * coding.h, coding.c: ... to here, and compile them only when
53372c27
DC
4409 WINDOWSNT or CYGWIN. Moving these functions out of cygw32 proper
4410 lets us write cygw32-agnostic code for the HAVE_NTGUI case.
ba116008 4411
640bf8ad
EZ
44122012-10-28 Eli Zaretskii <eliz@gnu.org>
4413
4414 * w32proc.c (TIMER_TICKS_PER_SEC): New macro.
4415 (timer_loop, getitimer, setitimer): Use it instead of
4416 CLOCKS_PER_SEC, which is no longer pertinent, since we don't use
4417 'clock'.
4418 (w32_get_timer_time): Use 10*TIMER_TICKS_PER_SEC instead of a
4419 literal 10000.
4420
64ccff5f
JD
44212012-10-28 Jan Djärv <jan.h.d@swipnet.se>
4422
4423 * nsterm.m (NO_APPDEFINED_DATA): New define.
4424 (last_appdefined_event_data): New variable
4425 (last_appdefined_event): Remove.
4426 (ns_select): Initialize t from last_appdefined_event_data instead
4427 of [last_appdefined_event data1].
4428 (sendEvent:): Save [theEvent data1] to last_appdefined_event_data,
4429 remove last_appdefined_event (Bug#12698).
4430
e483264c
SM
44312012-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
4432
4433 * frame.c (x_set_font): Catch internal error.
4434
6c16c13e
EZ
44352012-10-27 Eli Zaretskii <eliz@gnu.org>
4436
e483264c
SM
4437 Avoid overflow in w32 implementation of interval timers.
4438 When possible, for ITIMER_PROF count only times the main thread
6c16c13e
EZ
4439 actually executes.
4440 * w32proc.c <struct itimer_data>: 'expire' and 'reload' are now
2e612797
EZ
4441 'volatile ULONGLONG' types. All the other data which was
4442 previously clock_t is now ULONGLONG. 'terminate' is 'volatile int'.
6c16c13e
EZ
4443 (GetThreadTimes_Proc): New typedef.
4444 (w32_get_timer_time): New function, returns a suitable time value
4445 for the timer.
4446 (timer_loop): Enter critical section when accessing ULONGLONG
4447 values of the itimer_data struct, as these accesses are no longer
e483264c
SM
4448 atomic. Call 'w32_get_timer_time' instead of 'clock'.
4449 Remove unused variable.
6c16c13e
EZ
4450 (init_timers): Initialize s_pfn_Get_Thread_Times.
4451 (start_timer_thread): Don't assign itimer->caller_thread here.
4452 (getitimer): Assign itimer->caller_thread here.
4453 (setitimer): Always call getitimer to get the value of ticks_now.
2f246cd3 4454 (sys_spawnve): Avoid compiler warning about format mismatch.
6c16c13e 4455
ccc83f50
EZ
44562012-10-26 Eli Zaretskii <eliz@gnu.org>
4457
4458 * w32fns.c (w32_wnd_proc) <WM_MOUSEMOVE>: Don't enable tracking of
4459 mouse movement events if the menu bar is active. This avoids
4460 producing a busy "hour-glass" cursor by Windows if the mouse
4461 pointer is positioned over a tooltip shown for some menu item.
4462
69deda53
PE
44632012-10-25 Paul Eggert <eggert@cs.ucla.edu>
4464
4465 Don't assume process IDs fit in int.
4466 * emacs.c (shut_down_emacs) [!DOS_NT]:
4467 * sysdep.c (sys_suspend) [SIGTSTP && !MSDOS]:
4468 * term.c (dissociate_if_controlling_tty) [!DOS_NT]:
4469 Use pid_t, not int, to store process IDs, as 'int'
4470 is not wide enough on a few platforms (e.g., AIX and IRIX).
4471
7e70a152
KH
44722012-10-23 Kenichi Handa <handa@gnu.org>
4473
4474 The following change is to make face-font-rescale-alist work
4475 correctly for non-ASCII fonts.
4476
4477 * font.c (font_open_entity): Don't handle Vface_font_rescale_alist.
4478 (font_open_for_lface): Handle Vface_font_rescale_alist.
4479
49238e7f
CY
44802012-10-23 Chong Yidong <cyd@gnu.org>
4481
4482 * xfaces.c (Vfont_list_limit): Move unused variable to faces.el.
4483
5ec86886
JD
44842012-10-21 Jan Djärv <jan.h.d@swipnet.se>
4485
ef446959
JD
4486 * nsfont.m (nsfont_open, ns_glyph_metrics): Force integer advancement
4487 for screen font.
4488 (nsfont_draw): Turn off LCD-smoothing (Bug#11484).
4489
5ec86886
JD
4490 * xterm.c (x_focus_changed): Check if daemonp when sending focus in
4491 event (Bug#12681).
4492
ee7a418d
GM
44932012-10-21 Glenn Morris <rgm@gnu.org>
4494
4495 * lisp.mk (lisp): Add cp51932.el and eucjp-ms.el.
4496
4973679b
PE
44972012-10-20 Paul Eggert <eggert@cs.ucla.edu>
4498
4499 Port to OpenBSD 5.1.
4500 * frame.c (Fmouse_position, Fmouse_pixel_position):
4501 * xdisp.c (produce_stretch_glyph):
4502 Declare local vars only when they're needed.
4503 This is clearer and avoids a warning on OpenBSD about unused vars.
4504 * frame.h (FRAME_WINDOW_P): Always evaluate its argument.
4505 This is safer, and avoids OpenBSD warnings about unused vars.
4506 * keyboard.c (record_menu_key): Remove unnecessary decl.
4507 (poll_timer): Define only if POLL_FOR_INPUT is defined.
4508 * unexelf.c (ELFSIZE) [!ElfW]: Do not define if already defined,
4509 as our definition clashes with OpenBSD's.
4510 * xfaces.c (load_face_colors, check_lface_attrs)
4511 (get_lface_attributes_no_remap, get_lface_attributes)
4512 (lface_fully_specified_p, x_supports_face_attributes_p)
4513 (tty_supports_face_attributes_p, face_fontset, realize_face)
4514 (realize_x_face, realize_tty_face):
4515 Declare parameters to be Lisp_Object[LFACE_VECTOR_SIZE], not
4516 merely Lisp_Object *. This is more informative and avoids
4517 a warning on OpenBSD about accessing beyond an object's size.
4518
c664f463
CY
45192012-10-20 Chong Yidong <cyd@gnu.org>
4520
4521 * lread.c (Fload): Doc fix (Bug#12592).
4522
6ec83f92 45232012-10-19 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
a0d7415f
KH
4524
4525 * font.c (Ffont_at): Fix previous change.
4526
d2824928
EZ
45272012-10-19 Eli Zaretskii <eliz@gnu.org>
4528
e483264c
SM
4529 * puresize.h (BASE_PURESIZE): Bump the base value to 1700000.
4530 See http://lists.gnu.org/archive/html/emacs-devel/2012-10/msg00593.html
c052c554
EZ
4531 for the reasons.
4532
d2824928
EZ
4533 * alloc.c (NSTATICS): Decrease to 0x800.
4534
f60d391f
SM
45352012-10-19 Stefan Monnier <monnier@iro.umontreal.ca>
4536
4a0e1924 4537 * fns.c (Fnreverse): Include the problem element when signaling an
f60d391f
SM
4538 error (bug#12677).
4539
1a9327d5
JD
45402012-10-18 Jan Djärv <jan.h.d@swipnet.se>
4541
4542 * nsterm.m (ns_select): Check writefds before call to
4543 FD_ISSET (Bug#12668).
4544
14145a1e
DC
45452012-10-18 Daniel Colascione <dancol@dancol.org>
4546
4547 * alloc.c (NSTATICS): Increase from 0x650 to 0x1000
4548 (staticpro): If we run out of staticpro slots, die with an
4549 informative error instead of just calling emacs_abort.
4550
1f76f6f5
MR
45512012-10-18 Martin Rudalics <rudalics@gmx.at>
4552
4553 Fix two flaws reported by Dmitry Antipov.
4554 * window.c (Ftemp_output_buffer_show): Remove.
4555 (Fwindow_vscroll, Fset_window_vscroll): Use decode_live_window.
4556 (syms_of_window): Remove defsubr for Stemp_output_buffer_show.
4557
fcf14875
EZ
45582012-10-17 Eli Zaretskii <eliz@gnu.org>
4559
1f76f6f5
MR
4560 * makefile.w32-in ($(BLD)/w32.$(O)):
4561 ($(BLD)/vm-limit.$(O)):
4562 ($(BLD)/term.$(O)):
4563 ($(BLD)/unexw32.$(O)):
4564 ($(BLD)/fileio.$(O)):
a68089e4
EZ
4565 ($(BLD)/dispnew.$(O)): Update dependencies.
4566
4567 * w32term.h (w32_initialize_display_info, initialize_w32_display):
4568 Add prototypes.
4569
4570 * w32proc.c: Include ctype.h.
4571
4572 * w32.h (init_environment, check_windows_init_file)
4573 (syms_of_ntproc, syms_of_ntterm, dostounix_filename)
4574 (unixtodos_filename, init_winsock, srandom, random, sys_pipe)
4575 (set_process_dir, sys_spawnve, register_child, sys_sleep, getwd)
4576 (sys_link): Add prototypes.
4577
4578 * w32.c: Include w32select.h.
4579 (sys_access, e_malloc, sys_select): Add prototypes.
4580 (emacs_gnutls_pull): 'timeout' is now EMACS_TIME, not struct timeval.
4581
4582 * vm-limit.c [WINDOWSNT]: Include w32heap.h.
4583
4584 * unexw32.c: Include lisp.h and w32.h.
4585
4586 * term.c [WINDOWSNT]: Include w32term.h.
4587
4588 * process.c [WINDOWSNT]: Add prototype of sys_select.
4589
4590 * fileio.c [WINDOWSNT]: Include w32.h.
4591
4592 * dispnew.c [WINDOWSNT]: Include w32.h.
4593
fcf14875
EZ
4594 * cygw32.c (Fcygwin_convert_path_to_windows)
4595 (Fcygwin_convert_path_from_windows): Use EQ to compare 2
4596 Lisp_Object values. (Bug#12661)
4597
4598 * w32fns.c (w32_msg_pump): Use XIL instead of casting an integer
4599 to Lisp_Object. (Bug#12661)
4600
fe0b1ec4
KH
46012012-10-17 Kenichi Handa <handa@gnu.org>
4602
4603 * xdisp.c (reseat_1): Make the information stored in it->cmp_it
4604 invalidate.
4605
d556ebf9
DA
46062012-10-17 Dmitry Antipov <dmantipov@yandex.ru>
4607
4608 * buffer.c (Fkill_buffer): When unchaining the marker,
1f9f395d 4609 reset its buffer pointer to NULL (Bug#12652).
d556ebf9 4610
f0863a54
DA
46112012-10-17 Dmitry Antipov <dmantipov@yandex.ru>
4612
4613 Do not verify indirection counters of killed buffers (Bug#12579).
4614 * buffer.h (BUFFER_CHECK_INDIRECTION): New macro.
4615 * buffer.c (compact_buffer, set_buffer_internal_1): Use it.
4616
12fbe755
DA
46172012-10-16 Dmitry Antipov <dmantipov@yandex.ru>
4618
4619 * alloc.c (Fmake_byte_code): Fix typo in comment.
4620 * print.c (print_interval): Define as static to match prototype.
4621 * indent.c (disptab_matches_widthtab, recompute_width_table):
4622 Convert to eassert.
4623
61655b89
DA
46242012-10-16 Dmitry Antipov <dmantipov@yandex.ru>
4625
4626 * editfns.c (get_system_name): Remove.
4627 * lisp.h (get_system_name): Remove prototype.
4628 * xrdb.c (getenv, getpwuid, getpwnam): Remove prototypes.
4629 (get_environ_db): Use Vsystem_name. Avoid call to strlen.
4630
9520f2f2
DC
46312012-10-15 Daniel Colascione <dancol@dancol.org>
4632
4633 * dbusbind.c: Add comment explaining reason for previous change.
4634
dca778d5
MR
46352012-10-15 Martin Rudalics <rudalics@gmx.at>
4636
4637 * window.c (Fwindow_end): Rewrite check whether cached position
4638 can be used (Bug#12600).
4639 (resize_frame_windows, grow_mini_window, shrink_mini_window):
4640 Set windows_or_buffers_changed.
4641
3e0341b0
DC
46422012-10-15 Daniel Colascione <dancol@dancol.org>
4643
4644 * dbusbind.c: Fix cygw32 build break when compiling with dbus
4645 enabled by undefining the symbol "interface", which the platform
4646 headers define to something incompatible.
4647
33d4113c
DC
46482012-10-14 Daniel Colascione <dancol@dancol.org>
4649
4650 * image.c (init_tiff_functions, init_imagemagick_functions)
4651 (init_svg_functions): Fix cygw32 build break by using these
4652 functions only when WINDOWSNT _and_ HAVE_NTGUI.
4653
a36fb15e
JD
46542012-10-14 Jan Djärv <jan.h.d@swipnet.se>
4655
4656 * nsterm.m (ns_select): Count fd:s in writefs also (Bug#12422).
4657
537f336d
JD
46582012-10-13 Jan Djärv <jan.h.d@swipnet.se>
4659
4660 * gtkutil.c (xg_set_widget_bg): Divide by 65535 (Bug#12612).
4661
0ba06a77
KH
46622012-10-13 HANATAKA, Shinya <bogytech@gmail.com> (tiny change)
4663
4664 * coding.c (detect_coding): Set coding->id before calling
4665 this->detector.
4666
ce2fe65a
AS
46672012-10-13 Andreas Schwab <schwab@linux-m68k.org>
4668
4669 * fileio.c: Formatting fixes.
4670
d6453ce4
PE
46712012-10-13 Paul Eggert <eggert@cs.ucla.edu>
4672
4673 Fix some stat-related races.
4674 * fileio.c (Fwrite_region): Avoid race condition if a file is
4675 removed or renamed by some other process immediately after Emacs
4676 writes it but before Emacs stats it. Do not assume that stat (or
4677 fstat) succeeds.
4678 * image.c (slurp_file): Resolve the file name with fopen + fstat
4679 rather than stat + fopen.
4680 (pbm_read_file) [0]: Remove unused code with stat race.
4681 * process.c (allocate_pty) [HAVE_PTYS && !PTY_ITERATION && !PTY_OPEN]:
4682 Remove ineffective code with stat race.
4683
06485aa8
SM
46842012-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
4685
4686 * doc.c (get_doc_string): Don't signal an error if the file is missing.
4687
167e3640
JD
46882012-10-12 Jan Djärv <jan.h.d@swipnet.se>
4689
4690 * nsterm.m (hold_event_q): New static variable.
4691 (EV_TRAILER, sendScrollEventAtLoc:fromEvent:): Call hold_event if
4692 ! q_event_ptr.
4693 (hold_event): New function.
4694 (ns_read_socket): If hold_event_q have events, store them and
4695 return (Bug#12384).
4696 (setPosition:portion:whole:): Send SIGIO to ourselves if apploopnr
4697 is zero (Bug#12384).
4698
c40239df
JB
46992012-10-12 Juanma Barranquero <lekktu@gmail.com>
4700
4701 * makefile.w32-in ($(BLD)/w32select.$(O)): Update dependencies.
4702
bb385a92
EZ
47032012-10-12 Eli Zaretskii <eliz@gnu.org>
4704
2a9f1099
EZ
4705 * makefile.w32-in ($(BLD)/fileio.$(O)): Add sys/file.h.
4706
bb385a92
EZ
4707 * fileio.c (check_existing): New function.
4708 (make_temp_name, Ffile_exists_p, Ffile_writable_p): Call it
4709 instead of calling 'stat', when what's needed is to check whether
4710 a file exists. This avoids expensive system calls on MS-Windows.
4711 (Bug#12587)
4712
8599b23a 4713 * w32.c (init_environment): Call 'check_existing' instead of 'stat'.
bb385a92
EZ
4714
4715 * lread.c (openp) [WINDOWSNT]: Call 'access' instead of 'stat' to
4716 determine whether a file exists and is not a directory.
4717
4718 * lisp.h (check_existing): Add prototype.
4719
2b9c2e68
JD
47202012-10-12 Jan Djärv <jan.h.d@swipnet.se>
4721
4722 * nsfont.m (nsfont_open): Remove font cache, it is not GC correct.
4723
81749a23
GM
47242012-10-12 Glenn Morris <rgm@gnu.org>
4725
4726 * buffer.c (Fset_buffer): Doc fix. (Bug#12624)
4727
5253a5fd
SM
47282012-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
4729
389a94a5
SM
4730 * buffer.c (Fkill_buffer): Null out the overlay list(s) as well.
4731
5253a5fd
SM
4732 * eval.c (Fautoload): Remember previous autoload status in load-history.
4733
7cded46f
PE
47342012-10-11 Paul Eggert <eggert@cs.ucla.edu>
4735
4736 lread.c, macros.c, marker.c, menu.c, minibuf.c: Use bool for booleans.
4737 * lread.c (load_each_byte, new_backquote_flag, readchar)
4738 (read_filtered_event, lisp_file_lexically_bound_p)
4739 (safe_to_load_version, Fload, complete_filename_p, openp)
4740 (build_load_history, readevalloop, read_escape, read1)
4741 (string_to_number, read_vector, read_list):
4742 * macros.c (Fstart_kbd_macro):
4743 * marker.c (CONSIDER):
4744 * menu.c (parse_single_submenu, digest_single_submenu)
4745 (find_and_return_menu_selection, Fx_popup_menu):
4746 * minibuf.c (read_minibuf_noninteractive, read_minibuf)
4747 (Ftry_completion):
4748 * nsmenu.m (ns_update_menubar, runMenuAt:forFrame:keymaps:):
4749 (ns_menu_show):
4750 * xmenu.c (set_frame_menubar, create_and_show_popup_menu)
4751 (xmenu_show, xdialog_show):
4752 Use bool for booleans.
4753 * lread.c (safe_to_load_version): Rename from safe_to_load_p,
4754 as it's not a predicate. All uses changed. Omit unnecessary
4755 buffer termination.
4756
549c3414
DA
47572012-10-11 Dmitry Antipov <dmantipov@yandex.ru>
4758
4759 * editfns.c (save_excursion_save): Use nil if mark points to nowhere.
4760 (save_excursion_restore): Do not restore mark if it was not saved.
4761
e85aafe7
PE
47622012-10-11 Paul Eggert <eggert@cs.ucla.edu>
4763
fd2f90cf
PE
4764 * marker.c (cached_modiff): EMACS_INT, not int.
4765
c1af190b
PE
4766 * w32select.c (waiting_for_input): Declare by including "keyboard.h"
4767 instead of having a wrong decl.
e85aafe7
PE
4768 * nsmenu.m (waiting_for_input): Remove wrong decl.
4769
e738ca56
PE
47702012-10-10 Paul Eggert <eggert@cs.ucla.edu>
4771
9fa1de30
PE
4772 keyboard.c, keymap.c: Use bool for booleans.
4773 * dispnew.c (sit_for): Distinguish between 3-way display_option
4774 and boolean do_display.
4775 * keyboard.c (single_kboard, this_command_key_count_reset)
4776 (waiting_for_input, echoing, immediate_quit, input_pending)
4777 (interrupt_input, interrupts_deferred, pop_kboard)
4778 (temporarily_switch_to_single_kboard, ignore_mouse_drag_p)
4779 (command_loop_1, adjust_point_for_property)
4780 (safe_run_hooks_error, input_polling_used, read_char):
4781 (help_char_p, readable_events, kbd_buffer_events_waiting)
4782 (kbd_buffer_get_event, timer_check_2, make_lispy_event)
4783 (lucid_event_type_list_p, get_input_pending):
4784 (gobble_input, menu_separator_name_p, menu_bar_item)
4785 (parse_menu_item, parse_tool_bar_item, read_char_x_menu_prompt)
4786 (read_char_minibuf_menu_prompt, access_keymap_keyremap)
4787 (keyremap_step, test_undefined, read_key_sequence)
4788 (detect_input_pending, detect_input_pending_ignore_squeezables)
4789 (detect_input_pending_run_timers, requeued_events_pending_p)
4790 (quit_throw_to_read_char, Fset_input_interrupt_mode):
4791 * keymap.c (get_keymap, keymap_parent, keymap_memberp)
4792 (access_keymap_1, access_keymap, map_keymap, get_keyelt)
4793 (Fdefine_key, Flookup_key, struct accessible_keymaps_data)
4794 (accessible_keymaps_1, Fkey_description, push_key_description):
4795 (shadow_lookup, struct where_is_internal_data)
4796 (where_is_internal, Fwhere_is_internal, where_is_internal_1)
4797 (Fdescribe_buffer_bindings, describe_map_tree, struct describe_map_elt)
4798 (describe_map, describe_vector):
4799 * menu.c (single_menu_item):
4800 * nsmenu.m (ns_update_menubar):
4801 * process.c (wait_reading_process_output):
4802 * search.c (scan_buffer, scan_newline):
4803 Use bool for boolean.
4804 * keyboard.c (timers_run, swallow_events)
4805 (detect_input_pending_run_timers):
4806 * process.c (wait_reading_process_output):
4807 Use unsigned for counter where wraparound-on-overflow is desired,
4808 since unsigned is guaranteed to have that behavior and signed is not.
4809 (read_char): Use ptrdiff_t for string length.
4810 (get_input_pending): Remove first argument, since it was always
4811 the same pointer-to-int (now pointer-to-boolean) &input_pending,
4812 and behave as if it had that value. Return new value of
4813 input_pending. All callers changed.
4814 * keyboard.h (struct kboard): Use unsigned : 1 for boolean member
4815 immediate_echo. Use ptrdiff_t for echo_after_prompt, since it's
4816 a string length.
4817 * keymap.c (push_key_description): Omit last arg, which was always 1.
4818 All callers changed.
4819
e738ca56
PE
4820 * regex.c (immediate_quit) [emacs]: Remove duplicate decl.
4821
29f21cdf
JB
48222012-10-10 Juanma Barranquero <lekktu@gmail.com>
4823
4824 * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/indent.$(O))
4825 ($(BLD)/term.$(O)): Update dependencies.
4826
6aea7528
DA
48272012-10-10 Dmitry Antipov <dmantipov@yandex.ru>
4828
4829 * alloc.c (mark_object): Use meaningful PVEC_NORMAL_VECTOR.
4830 * lisp.h (enum pvec_type): Adjust comments and omit explicit
4831 initializer for PVEC_NORMAL_VECTOR.
4832
5f3f57be
PE
48332012-10-10 Paul Eggert <eggert@cs.ucla.edu>
4834
4835 Clean out old termopts cruft.
4836 * termopts.h (flow_control, meta_key): Remove unused decls.
4837 * dispnew.c, indent.c, nsterm.m, term.c, xsettings.c, xsmfns.c:
4838 Don't include termopts.h.
4839
3e98c68e
DA
48402012-10-10 Dmitry Antipov <dmantipov@yandex.ru>
4841
4842 * alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers.
4843
77e344e5
PE
48442012-10-10 Paul Eggert <eggert@cs.ucla.edu>
4845
4846 * commands.h (immediate_quit): Remove duplicate decl.
4847
5683d7cd
JD
48482012-10-09 Jan Djärv <jan.h.d@swipnet.se>
4849
4850 * nsfont.m (Vfonts_in_cache): Remove, not needed as font.c handles
4851 caching.
4852 (nsfont_open): Remove setting of Vfonts_in_cache.
1f9f395d 4853 (syms_of_nsfont): Remove initialization of Vfonts_in_cache.
5683d7cd 4854
cf5fc6db
EZ
48552012-10-09 Eli Zaretskii <eliz@gnu.org>
4856
b15736e6
EZ
4857 * w32fns.c (w32_last_error): Change the return value to DWORD, to
4858 match what GetLastError returns. Explain why the function is
4859 needed.
4860
cf5fc6db
EZ
4861 * frame.c (delete_frame): Rename local variable 'tooltip_frame' to
4862 'is_tooltip_frame', to avoid confusion with its global namesake.
4863
f99714ce
DC
48642012-10-08 Daniel Colascione <dancol@dancol.org>
4865
4866 * xdisp.c (start_hourglass): Call w32_note_current_window when
2b1f11ed
EZ
4867 HAVE_NTGUI, not just WINDOWSNT, resolving a problem in the cygw32
4868 build that caused Emacs to display the hourglass cursor forever.
f99714ce 4869
fd59cb29
GM
4870 * w32fns.c (Fx_display_color_cells): Instead of using NCOLORS,
4871 which is broken under remote desktop, calculate the number of
4872 colors available for a display based on the display's number of
4873 planes and number of bits per pixel per plane. (bug#10397).
4874
62c480c9 48752012-10-08 Jan Djärv <jan.h.d@swipnet.se>
fd59cb29 4876
62c480c9
JD
4877 * nsfont.m (Vfonts_in_cache): New variable.
4878 (nsfont_open): Use unsignedLongLongValue for cache in case wide ints
4879 are used. Add cached fonts to Vfonts_in_cache.
4880 (syms_of_nsfont): Initialize and staticpro Vfonts_in_cache.
4881
607446ba
JB
48822012-10-08 Juanma Barranquero <lekktu@gmail.com>
4883
fd5125ad
JB
4884 * makefile.w32-in (LOCAL_FLAGS): Don't define HAVE_NTGUI, it's now
4885 in nt/config.nt.
46979e0b
JB
4886 (FONT_H): Define after FRAME_H.
4887 ($(BLD)/emacs.$(O), $(BLD)/process.$(O), $(BLD)/w32heap.$(O)):
4888 Update dependencies.
fd5125ad 4889
607446ba
JB
4890 * w32term.c: Remove leftover declaration of keyboard_codepage.
4891
b6f4e300
EZ
48922012-10-08 Eli Zaretskii <eliz@gnu.org>
4893
c54ebba4
EZ
4894 * makefile.w32-in (FONT_H): Add $(FRAME_H).
4895 (W32TERM_H): Add $(ATIMER_H) and $(FRAME_H).
4896 ($(BLD)/emacs.$(O), $(BLD)/w32console.$(O)): Update dependencies.
4897 (GLOBAL_SOURCES): Add cygw32.c.
fd59cb29
GM
4898 ($(BLD)/unexw32.$(O)):
4899 ($(BLD)/w32.$(O)):
4900 ($(BLD)/w32console.$(O)):
4901 ($(BLD)/w32fns.$(O)):
4902 ($(BLD)/w32heap.$(O)):
4903 ($(BLD)/w32menu.$(O)):
15c720a3 4904 ($(BLD)/w32proc.$(O)): Add w32common.h.
c54ebba4 4905
b6f4e300
EZ
4906 * w32fns.c (w32_color_map_lookup, x_to_w32_color): Argument is now
4907 'const char *'.
4908 (x_to_w32_color): Don't modify the argument, modify a copy instead.
4909
501199a3
DC
49102012-10-08 Daniel Colascione <dancol@dancol.org>
4911
4912 * w32term.h (WM_EMACS_BRINGTOTOP, WM_EMACS_INPUT_READY)
4913 (WM_EMACS_END): Change WM_EMACS_BRINGTOTOP from 22 to 21 to close
4914 accidental message numbering hole. Change other messages to
4915 match.
4916
4917 * w32select.h (HAVE_W32SELECT): Remove.
4918
4919 * w32select.c, w32proc.c, w32menu.c, w32console.c, w32.c: Include
1f9f395d 4920 w32common.h instead of w32heap.h.
501199a3
DC
4921
4922 * w32heap.h (ROUND_UP, ROUND_DOWN, get_page_size)
4923 (get_allocation_unit, get_processor_type, get_w32_major_version)
4924 (get_w32_minor_version, sysinfo_cache, osinfo_cache)
4925 (w32_major_version, w32_minor_version, w32_build_number, OS_9X)
4926 (OS_NT, os_subtype, cache_system_info): Move declarations to
4927 w32common.
4928
4929 * w32heap.c: Include w32common.h.
4930 (sysinfo_cache, syspage_mask, osinfo_cache, w32_major_version)
8599b23a
SM
4931 (w32_minor_version, w32_build_number, w32_subtype):
4932 Remove duplicate definitions.
501199a3
DC
4933
4934 * w32fns.c: Include w32common.h; include w32heap.h only in
4935 WINDOWSNT.
4936
4937 (Fx_file_dialog): Clarify comment on GetOpenFileName structure.
4938 Use `report_file_error' instead of `error' in order to better
4939 inform users of what went wrong. Increase NTGUI_UNICODE file
4940 dialog box file name length to 32k, the maximum allowed by the NT
4941 kernel.
4942
4943 * w32common.h: New file.
4944 (ROUND_UP, ROUND_DOWN, get_page_size)
4945 (get_allocation_unit, get_processor_type, get_w32_major_version)
4946 (get_w32_minor_version, sysinfo_cache, osinfo_cache)
4947 (w32_major_version, w32_minor_version, w32_build_number, OS_9X)
4948 (OS_NT, os_subtype, cache_system_info): Move here.
4949
4950 * unexw32.c, unexcw.c: Include w32common.h.
4951
4952 * emacs.c (main): Use (defined (WINDOWSNT) || defined
4953 HAVE_NTGUI) instead of removed HAVE_W32SELECT to decide whether
4954 to call syms_of_w32select.
4955
4956 * cygw32.h: Remove obsolete EXFUN declarations.
4957
4958 * cygw32.c (Qutf_16_le): Rename to Qutf_16le.
4959
4960 * Makefile.in (SOME_MACHINE_OBJECTS): Reverse accidental removal
4961 of w32inevt.o from SOME_MACHINE_OBJECTS.
4962
93aa5c81
DC
49632012-10-08 Daniel Colascione <dancol@dancol.org>
4964
4965 * image.c: Permanent fix for JPEG compilation issue --- limit
4966 jpeglib `boolean' redefinition to Cygwin builds.
4967
d424f3d8
EZ
49682012-10-08 Eli Zaretskii <eliz@gnu.org>
4969
8ee4c6ce
EZ
4970 * image.c (CHECK_LIB_AVAILABLE): Remove, no longer used.
4971
d424f3d8
EZ
4972 * emacs.c (DAEMON_MUST_EXEC) [HAVE_NTGUI]: Define this only on
4973 Cygwin.
4974
e08348a0
DC
49752012-10-08 Daniel Colascione <dancol@dancol.org>
4976
4977 * xfaces.c, xdisp.c, window.c, w32xfns.c, w32term.h, w32term.c,
4978 w32select.h w32select.c, w32proc.c, w32menu.c, w32inevt.c,
4979 w32help.c, w32font.c, w32font.c, w32fns.c, w32console.c, w32.h,
4980 w32.c, unexw32.c, termhooks.h, process.c, menu.c, keyboard.h,
4981 keyboard.c, image.c, frame.h, frame.c, fontset.c, font.h, font.c,
4982 emacs.c, dispextern.h, cygw32.h, cygw32.c, conf_post.h,
4983 Makefile.in: use HAVE_NTGUI for W32 GUI and WINDOWSNT for the
4984 operating system. defined(HAVE_NTGUI) && !defined(WINDOWSNT) is
4985 now a supported configuration.
4986
4987 * Makefile.in: consolidate image variables into LIBIMAGE; add
8e2417bf 4988 W32_OBJ and W32_LIBS. Compile new files.
e08348a0
DC
4989
4990 * conf_post.h:
4991 (_DebPrint) declare tracing facility for W32 debugging. We need
4992 to unify tracing later.
4993
4994 (NTGUI_UNICODE) Define when compiling for Cygwin to allow the
4995 unconditional use of W32 Unicode functions. Cygwin runs only on
4996 100% Unicode operating systems.
4997
4998 * cygw32.c: New file. Define Cygwin-specific facilities.
4999 (Fcygwin_convert_path_to_windows)
5000 (Fcygwin_convert_path_from_windows): New user functions for
5001 accessing Cygwin path-munging routines.
5002
5003 * cygw32.h: New file.
5004 (WCSDATA, to_unicode, from_unicode): Define facilities for storing
5005 UTF-16LE strings temporarily inside non-Lisp-visible string
5006 objects.
5007
5008 (w32_strerror): Just what it says on the tin.
5009
5010 * emacs.c: Make the NS fork-then-exec code for daemon-launching
5011 also run for Cygwin; both systems have the same problem with using
5012 GUI facilities in a forked child. Also call syms_of_cygw32,
5013 syms_of_w32select in correct places.
5014
5015 (DAEMON_MUST_EXEC): new macro defined to signal that a platform
5016 needs fork-then-exec for daemon launching.
5017
5018 * font.h: Include frame.h.
5019
5020 * image.c: Use the image library cache machinery only when we're
5021 compiling for native WINDOWSNT; Cygwin can use shared libraries
5022 like any other Unixlike system.
5023
5024 * keyboard.c: Clarify a comment regarding the input loop.
5025
5026 * menu.c: When NTGUI_UNICODE is defined, use Unicode menu
5027 functions directly instead of trying to detect at runtime that our
5028 host operating system supports them. We make this change for two
5029 reasons: Cygwin lacks support for the multibyte character
5030 conversion functions used by the legacy menu code, and Cygwin
5031 never needs to rely on non-Unicode APIs.
5032
5033 * unexw32.c (hinst): Declare extern.
5034
5035 * w32.c: Change header order;
5036 (w32_strerror): Move to w32fns.c because we need it for
5037 non-WINDOWSNT builds.
5038
5039 * w32.h: Add #error macro to make sure we don't include w32.h for
5040 Cygwin builds. Remove w32select declarations.
5041
5042 * w32console.c (w32_sys_ring_bell, Fset_message_beep): Move to
1f9f395d 5043 w32fns.c. w32console.c is WINDOWSNT-only.
e08348a0
DC
5044
5045 * w32fns.c: Include cygw32.h or w32.h depending on CYGWIN; more
5046 NTGUI_UNICODE tweaks. (See above.) Change _snprintf to the more
5047 POSIXy alternative.
5048 (faked_key, sysinfo_cache, osinfo_cahce, syspage_mask)
5049 (w32_major_version, w32_minor_version, w32_build_number)
5050 (os_subtype, sound_type): Define here
5051 (w32_defined_color): Make color parameter const for consistency
5052 with other _defined_color functions.
5053 (w32_createwindow): Unconditionally call w32_init_class instead of
5054 doing so only when hprevinst is non-NULL. Plumbing hprevinst
5055 through the code is complex and unnecessary because class
5056 registration is practically free.
5057 (w32_name_of_message): New EMACSDEBUG-only function.
5058 (Fset_message_beep): Move here
5059 (Fx_open_connection): Require that the display name for Windows be
5060 "w32" for consistency, emacsclient disambiguation, and maybe, one
5061 day, multi-window-system support.
5062 (file_dialog_callback): NTGUI_UNICODE changes; encode and decode
5063 Cygwin files for W32 GUI facilities, since these clearly don't
5064 expect Cygwin names.
5065 (_DebPrint): Define.
5066 (w32_strerror, w32_console_toggle_lock_key, w32_kbd_mods_to_emacs)
5067 (w32_kbd_patch_key, w32_sys_ring_bell): Move here.
5068 (Ssystem_move_file_to_trash): Define only for native WINDOWSNT.
5069 (w32_last_error): Remove.
5070
5071 * w32font.c: Define _strlwr to strlwr for non-WINDOWSNT builds.
5072
5073 * w32heap.c (syspage_mask): Declare here.
5074 (cache_system_info): Remove.
5075
5076 * w32inevt.c (faked_key): Define globally, not statically.
5077 (w32_kbd_mods_to_emacs, w32_kbd_patch_key, faked_key)
5078 (w32_console_toggle_lock_key): Move to w32fns.c.
5079
5080 * w32menu.c: Include setjmp.h. NTGUI_UNICODE changes throughout.
5081
5082 * w32proc.c (_DebPrint): Move to w32fns.c.
5083 * w32select.c: Include string.h, stdio.h for Cygwin.
5084 * w32select.h: New File.
5085
5086 * w32term.c: Include io.h for non-CYGWIN builds; needed for
5087 get_osfhandle.
5088 (w32_message_fd): New variable. Under Cygwin, holds the file
5089 descriptor the system used to tell us about pending thread
5090 messages.
5091
5092 (w32_init_term): Remove incorrect calls to fcntl and init_sigio
5093 that prevented compilation under non-WINDOWSNT systems.
5094
5095 (w32_initialize): Open /dev/windows and assign it to
5096 w32_message_fd. Provide w32 feature.
5097
5098 * w32term.h: Include frame.h, atimer.h. Declare various frame functions.
5099 (WM_EMACS_INPUT_READY): add.
5100 (prepend_msg, w32_message_fd): Declare globally.
5101
5102 * w32xfns.c:
5103 (keyboard_handle): Use only when WINDOWSNT.
5104 (notify_msg_ready): New function. Posts a message to the main
5105 thread's message queue under CYGWIN, which wakes up the main
5106 thread from select(2) by making the /dev/windows file descriptor
5107 ready. Under WINDOWSNT, it sets an event the same way the old
5108 code did.
5109
5110 (post, prepend_msg): Actually call notify_msg_ready instead of
5111 setting the input event directly.
5112
98daa893
EZ
51132012-10-07 Eli Zaretskii <eliz@gnu.org>
5114
5115 * ralloc.c (relinquish): If a heap is ready to be relinquished,
5116 but it still has blocs in it, don't return it to the system,
5117 instead of aborting. (Bug#12402)
5118
3bc0a2f7
JD
51192012-10-07 Jan Djärv <jan.h.d@swipnet.se>
5120
8ad5b73b 5121 * nsterm.m (ns_dumpglyphs_image): Only draw slice of image (Bug#12506).
493b5b1c 5122
335f5ae4
JD
5123 * nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of
5124 MAC_OS_X_VERSION_10_6.
8ad5b73b
JD
5125 (syms_of_nsterm): Remove comment about Panther and above for
5126 ns-antialias-text.
335f5ae4
JD
5127 * nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove.
5128 (EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4.
5129 (struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3.
5130
5131 * nsselect.m (ns_string_from_pasteboard): Remove check for >=
5132 MAC_OS_X_VERSION_10_4.
5133
8ad5b73b
JD
5134 * nsmenu.m (fillWithWidgetValue:): Remove code for <
5135 MAC_OS_X_VERSION_10_2.
335f5ae4
JD
5136
5137 * nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger.
5138
5139 * nsfns.m (Fns_list_services): Remove comment and check for OSX < 10.4.
5140 (ns_do_applescript): Remove check for >= MAC_OS_X_VERSION_10_4.
5141
3bc0a2f7
JD
5142 * nsterm.m (ns_in_resize): Remove (Bug#12479).
5143 (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove.
8599b23a
SM
5144 (ns_clear_frame, sendEvent, windowDidResize, drawRect:):
5145 Remove ns_in_resize check.
3bc0a2f7
JD
5146 (ns_clear_frame_area): Remove resize handle code.
5147
5148 * nsfns.m (ns_in_resize): Remove.
e483264c
SM
5149 (x_set_icon_name, ns_set_name, ns_set_name_as_filename):
5150 Remove ns_in_resize check.
3bc0a2f7 5151
c622b48f
PE
51522012-10-07 Paul Eggert <eggert@cs.ucla.edu>
5153
5154 Improve sys_siglist detection.
5155 * sysdep.c (sys_siglist, init_signals): Use _sys_siglist if it's
5156 defined as a macro, as is done in Solaris.
5157 (sys_siglist_entries): New macro.
5158 (save_strsignal): Use it.
5159 * syssignal.h (safe_strsignal): Now ATTRIBUTE_CONST, to pacify
5160 GCC 4.7.2 on Fedora 17 with the fixed sys_siglist detection.
5161
04fafa46
JD
51622012-10-06 Jan Djärv <jan.h.d@swipnet.se>
5163
5164 * nsfns.m (Fx_create_frame): Call x_default_parameter with
5165 fullscreen/Fullscreen.
5166
5167 * nsterm.h (EmacsView): Rename tbar_height to tibar_height.
5168 tobar_height is new.
5169
5170 * nsterm.m (x_make_frame_visible): Check for fullscreen.
5171 (ns_fullscreen_hook): Activate old style fullscreen with a timer.
5172 (ns_term_init): Set activateIgnoringOtherApps if old style fullscreen.
5173 (windowDidResize:): Check for correct window if old style fullscreen.
5174 Capitalize word in comment. Remove incorrect comment.
5175 (initFrameFromEmacs:): tbar_height renamed tibar_height.
5176 (windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix
5177 error in drawing background.
1f9f395d 5178 (toggleFullScreen:): Remove comment. Rearrange calls.
04fafa46
JD
5179 Set toolbar values to zero, save old height in tobar_height.
5180 Restore tool bar height when leaving fullscreen.
5181 (canBecomeMainWindow): New function.
5182
c6e21c03
PE
51832012-10-06 Paul Eggert <eggert@cs.ucla.edu>
5184
5185 * keyboard.c (read_char): Remove unnecessary 'volatile's and label.
5186
0d9f584b
EZ
51872012-10-05 Eli Zaretskii <eliz@gnu.org>
5188
a65fbb5f
EZ
5189 * w32proc.c (stop_timer_thread): Fix declaration of 'err'.
5190
0d9f584b 5191 * w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so
8599b23a
SM
5192 that time stamps of directories could also be changed.
5193 Don't request the too broad GENERIC_WRITE, only the more restrictive
0d9f584b
EZ
5194 FILE_WRITE_ATTRIBUTES access rights.
5195
5196 * fileio.c (Fset_file_times): Special-case ignoring errors for
5197 directories only on MSDOS, not on MS-Windows.
5198
e8757f09 51992012-10-05 Ikumi Keita <ikumi@ikumi.que.jp> (tiny change)
ca347e3d
IK
5200
5201 * minibuf.c (Fcompleting_read): Doc fix. (Bug#12555)
5202
7604f298
EZ
52032012-10-04 Eli Zaretskii <eliz@gnu.org>
5204
5205 * w32.c (utime): Test for INVALID_HANDLE_VALUE, not for NULL, to
5206 see whether CreateFile failed.
5207
88d69b7d
PE
52082012-10-04 Paul Eggert <eggert@cs.ucla.edu>
5209
5210 * profiler.c (handle_profiler_signal): Inhibit pending signals too,
5211 to avoid similar races.
5212 * keyboard.c (pending_signals): Now bool, not int.
5213
7509f454
PE
5214 Port timers to OpenBSD, plus check for timer failures.
5215 OpenBSD problem reported by Han Boetes.
5216 * profiler.c (setup_cpu_timer): Check for failure of timer_settime
5217 and/or setitimer.
5218 (Fprofiler_cpu_stop): Don't assume HAVE_SETITIMER.
5219 * syssignal.h (HAVE_ITIMERSPEC): New macro. This is for platforms
5220 like OpenBSD, which has timer_settime but does not declare it.
5221 OpenBSD does not define SIGEV_SIGNAL, so use that when deciding
5222 whether to use itimerspec-related primitives. All uses of
5223 HAVE_TIMER_SETTIME replaced with HAVE_ITIMERSPEC.
5224
a3c5c0c5
PE
52252012-10-02 Paul Eggert <eggert@cs.ucla.edu>
5226
5227 * profiler.c (handle_profiler_signal): Fix a malloc race
5228 that caused Emacs to hang on Fedora 17 when profiling Lisp.
5229
914e743b
JD
52302012-10-02 Jan Djärv <jan.h.d@swipnet.se>
5231
5232 * nsterm.m (windowDidEnterFullScreen): Remove fprintf.
5233
d8ab37a8
EZ
52342012-10-02 Eli Zaretskii <eliz@gnu.org>
5235
5236 * w32proc.c (sys_wait): Declare 'signame' 'const char *', to be
5237 consistent with the change in return value of 'safe_strsignal'.
5238
b3ecad33
PE
52392012-10-02 Paul Eggert <eggert@cs.ucla.edu>
5240
0a99eee1
PE
5241 Prefer plain 'static' to 'static inline' (Bug#12541).
5242 * bidi.c (bidi_get_type, bidi_check_type, bidi_get_category)
5243 (bidi_set_sor_type, bidi_push_embedding_level)
5244 (bidi_pop_embedding_level, bidi_remember_char, bidi_copy_it)
5245 (bidi_cache_reset, bidi_cache_shrink, bidi_cache_fetch_state)
5246 (bidi_cache_search, bidi_cache_ensure_space)
5247 (bidi_cache_iterator_state, bidi_cache_find)
5248 (bidi_peek_at_next_level, bidi_set_paragraph_end)
5249 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
5250 (bidi_explicit_dir_char, bidi_resolve_neutral_1):
5251 Now 'static', not 'static inline'.
5252
b3ecad33
PE
5253 Count overruns when profiling; change units to ns.
5254 * profiler.c (handle_profiler_signal): Count sampling intervals, not ms.
5255 Give extra weight to samples after overruns, to attempt to count
5256 the time more accurately.
5257 (setup_cpu_timer): Change sampling interval units from ms to ns, since
5258 the underlying primitives nominally do ns.
5259 (Fprofiler_cpu_start): Document the change. Mention that
5260 the sampling intervals are only approximate.
5261
090cf9db
SM
52622012-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
5263
5264 * frame.c (Fmake_terminal_frame): Prefer safer CONSP over !NILP.
5265
5266 * coding.h (ENCODE_FILE, DECODE_FILE, DECODE_SYSTEM): Remove special
5267 case for the special 0 coding-system.
5268
5269 * buffer.c (Fset_buffer_multibyte): Signal an error instead of widening.
5270 (Fmake_overlay): Remove redundant tests.
64edc777 5271 (fix_start_end_in_overlays): Remove redundant recentering.
090cf9db 5272
81550bf4
JB
52732012-10-02 Juanma Barranquero <lekktu@gmail.com>
5274
5275 * makefile.w32-in ($(BLD)/alloc.$(O), $(BLD)/gmalloc.$(O)):
5276 Update dependencies.
5277
aa1ba90e
PE
52782012-10-01 Paul Eggert <eggert@cs.ucla.edu>
5279
5280 Fix a malloc race condition involving strsignal.
5281 A signal can arrive in the middle of a malloc, and Emacs's signal
5282 handler can invoke strsignal, which can invoke malloc, which is
5283 not portable. This race condition bug makes Emacs hang on GNU/Linux.
5284 Fix it by altering the signal handler so that it does not invoke
5285 strsignal.
5286 * emacs.c (shut_down_emacs): Use safe_strsignal, not strsignal.
5287 * process.c (status_message): Use const pointer, in case strsignal
5288 is #defined to safe_strsignal.
5289 * sysdep.c (sys_siglist, init_signals): Always define and
5290 initialize a substitute sys_siglist if the system does not define
5291 one, even if HAVE_STRSIGNAL.
5292 (safe_strsignal): Rename from strsignal. Always define,
5293 using sys_siglist. Return a const pointer.
5294 * syssignal.h (safe_strsignal): New decl.
5295 (strsignal) [!HAVE_STRSIGNAL]: Define in terms of safe_strsignal.
5296
ace917bd
EZ
52972012-10-01 Eli Zaretskii <eliz@gnu.org>
5298
5299 * w32proc.c (timer_loop): Fix code that waits for timer
5300 expiration, to avoid high CPU usage.
5301
9eb71b9c
SM
53022012-10-01 Stefan Monnier <monnier@iro.umontreal.ca>
5303
5304 * fns.c (check_hash_table, get_key_arg, maybe_resize_hash_table)
5305 (sweep_weak_table): Remove redundant prototypes.
5306
b3317662
FP
53072012-10-01 Fabrice Popineau <fabrice.popineau@gmail.com>
5308
5309 * emacs.c: Move the inclusion of TERM_HEADER after including
5310 windows.h on WINDOWSNT. This avoids compilation problems with
5311 MSVC.
5312
f0e5f225
EZ
53132012-10-01 Eli Zaretskii <eliz@gnu.org>
5314
2d7d1608
EZ
5315 * unexw32.c (OFFSET_TO_RVA, RVA_TO_OFFSET)
5316 (RVA_TO_SECTION_OFFSET): Encode all macro arguments in parentheses.
5317 (RVA_TO_PTR): Cast the result of RVA_TO_OFFSET to 'unsigned char *',
5318 as the previous version used 'void *'.
5319
5320 * ralloc.c (ROUNDUP): Fix last change.
5321 (MEM_ROUNDUP): Don't cast MEM_ALIGN, it is already of type
5322 'size_t'.
5323
f0e5f225
EZ
5324 * w32proc.c <disable_itimers>: New static flag.
5325 (init_timers): Initialize it to zero, after creating the critical
5326 sections used by the timer threads.
5327 (term_timers): Set to 1 before deleting the critical sections.
5328 (getitimer, setitimer): If disable_itimers is non-zero, return an
5329 error indication without doing anything. Reported by Fabrice
5330 Popineau <fabrice.popineau@supelec.fr> as part of bug#12544.
4cdfbb89
EZ
5331 (alarm) [HAVE_SETITIMER]: Be more conformant to the expected
5332 return results.
5333 [!HAVE_SETITIMER]: Behave as the previous version that didn't
5334 support timers.
f0e5f225
EZ
5335
5336 * emacs.c (shut_down_emacs) [WINDOWSNT]: Move the call to
5337 term_ntproc after all the other bookkeeping, to get timers working
5338 as long as possible.
5339
82ef37c1
PE
53402012-10-01 Paul Eggert <eggert@cs.ucla.edu>
5341
b3a4c387
PE
5342 * xdisp.c (syms_of_xdisp): Default message-log-max to 1000, not 100.
5343 Suggested by Juri Linkov in
5344 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00821.html>.
5345
b0ab8123
PE
5346 Prefer plain 'static' to 'static inline' (Bug#12541).
5347 With static functions, modern compilers inline pretty well by
5348 themselves; advice from programmers often hurts as much as it helps.
5349 On my host (x86-64, Fedora 17, GCC 4.7.2, default 'configure'),
5350 this change shrinks the text size of the Emacs executable by 1.1%
5351 without affecting CPU significantly in my benchmark.
5352 * alloc.c (mem_find, live_string_p, live_cons_p, live_symbol_p)
5353 (live_float_p, live_misc_p, live_vector_p, live_buffer_p)
5354 (mark_maybe_object, mark_maybe_pointer, bounded_number):
5355 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
5356 (bset_auto_fill_function, bset_auto_save_file_format)
5357 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
5358 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
5359 (bset_cache_long_line_scans, bset_case_fold_search)
5360 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
5361 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
5362 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
5363 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
5364 (bset_header_line_format, bset_indicate_buffer_boundaries)
5365 (bset_indicate_empty_lines, bset_invisibility_spec)
5366 (bset_left_fringe_width, bset_major_mode, bset_mark)
5367 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
5368 (bset_name, bset_overwrite_mode, bset_pt_marker)
5369 (bset_right_fringe_width, bset_save_length)
5370 (bset_scroll_bar_width, bset_scroll_down_aggressively)
5371 (bset_scroll_up_aggressively, bset_selective_display)
5372 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
5373 (bset_word_wrap, bset_zv_marker, set_buffer_overlays_before)
5374 (set_buffer_overlays_after):
5375 * category.c (bset_category_table):
5376 * charset.c (read_hex):
5377 * coding.c (produce_composition, produce_charset)
5378 (handle_composition_annotation, handle_charset_annotation)
5379 (char_encodable_p):
5380 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers)
5381 (assign_row, set_frame_matrix_frame, make_current)
5382 (add_row_entry):
5383 * eval.c (set_specpdl_symbol, set_specpdl_old_value):
5384 * fns.c (maybe_resize_hash_table):
5385 * frame.c (fset_buffer_predicate, fset_minibuffer_window):
5386 * gmalloc.c (register_heapinfo):
5387 * image.c (lookup_image_type):
5388 * intervals.c (set_interval_object, set_interval_left)
5389 (set_interval_right, copy_interval_parent, rotate_right)
5390 (rotate_left, balance_possible_root_interval):
5391 * keyboard.c (kset_echo_string, kset_kbd_queue)
5392 (kset_keyboard_translate_table, kset_last_prefix_arg)
5393 (kset_last_repeatable_command, kset_local_function_key_map)
5394 (kset_overriding_terminal_local_map, kset_real_last_command)
5395 (kset_system_key_syms, clear_event, set_prop):
5396 * lread.c (digit_to_number):
5397 * marker.c (attach_marker, live_buffer, set_marker_internal):
5398 * nsterm.m (ns_compute_glyph_string_overhangs):
5399 * process.c (pset_buffer, pset_command)
5400 (pset_decode_coding_system, pset_decoding_buf)
5401 (pset_encode_coding_system, pset_encoding_buf, pset_filter)
5402 (pset_log, pset_mark, pset_name, pset_plist, pset_sentinel)
5403 (pset_status, pset_tty_name, pset_type, pset_write_queue):
5404 * syntax.c (bset_syntax_table, dec_bytepos):
5405 * terminal.c (tset_param_alist):
5406 * textprop.c (interval_has_some_properties)
5407 (interval_has_some_properties_list):
5408 * window.c (wset_combination_limit, wset_dedicated)
5409 (wset_display_table, wset_hchild, wset_left_fringe_width)
5410 (wset_left_margin_cols, wset_new_normal, wset_new_total)
5411 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
5412 (wset_right_fringe_width, wset_right_margin_cols)
5413 (wset_scroll_bar_width, wset_start, wset_temslot, wset_vchild)
5414 (wset_vertical_scroll_bar_type, wset_window_parameters):
5415 * xdisp.c (wset_base_line_number, wset_base_line_pos)
5416 (wset_column_number_displayed, wset_region_showing)
5417 (window_box_edges, run_window_scroll_functions)
5418 (append_glyph_string_lists, prepend_glyph_string_lists)
5419 (append_glyph_string, set_glyph_string_background_width)
5420 (append_glyph, append_composite_glyph)
5421 (take_vertical_position_into_account):
5422 * xfaces.c (x_create_gc, x_free_gc, merge_face_vectors)
5423 (face_attr_equal_p, lface_equal_p, hash_string_case_insensitive)
5424 (lface_hash, lface_same_font_attributes_p, lookup_face):
5425 * xml.c (libxml2_loaded_p):
5426 * xterm.c (x_set_mode_line_face_gc, x_set_glyph_string_gc)
5427 (x_set_glyph_string_clipping, x_clear_glyph_string_rect):
5428 Now 'static', not 'static inline'.
5429
05584c31
PE
5430 * bidi.c: Tune.
5431 (bidi_copy_it): Do the whole copy with a single memcpy.
5432 (bidi_char_at_pos): Merge the two STRING_CHAR calls into one.
5433
86ec63ba
PE
5434 Revert the FOLLOW-SYMLINKS change for file-attributes.
5435 Doing it right would require several changes to Tramp, and there's
5436 not enough time to get that tested before the freeze today.
5437 * dired.c (directory_files_internal, Ffile_attributes):
5438 Undo last change.
5439
82ef37c1
PE
5440 * frame.c (x_report_frame_params): Port better to wider ints.
5441 Do not assume that EMACS_UINT is the same width as uprintmax_t,
5442 or that pointers can be printed in 15 decimal digits.
5443 Avoid GCC warnings if EMACS_UINT is wider than a pointer.
5444
62aba0d4
FP
54452012-09-30 Fabrice Popineau <fabrice.popineau@supelec.fr>
5446
5447 Support x64 build on MS-Windows.
5448 * w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64.
5449 (SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for
5450 compatibility with x64.
5e4daaf3 5451 (x_get_focus_frame): Add prototype.
62aba0d4
FP
5452
5453 * w32term.c (w32_draw_underwave): Don't use GCC extensions for
5454 defining an XRectangle structure.
5455
5456 * w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer
5457 arithmetics for compatibility with x64.
5458
5459 * w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for
5460 compatibility with x64.
5461
5462 * w32heap.h: Adjust prototypes and declarations.
5463
5464 * w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap)
5465 (round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of
5466 DWORD, long, and unsigned long, for compatibility with x64.
5467 (allocate_heap) [_WIN64]: Reserve 32GB of memory.
5468 (sbrk): Argument is now of type ptrdiff_t.
5469
5470 * w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being
5471 less than 0x0500.
5472 (w32_msg_pump): Use WPARAM type for 'result'.
5473
5474 * w32.c (init_environment, get_emacs_configuration): Support AMD64
5475 architecture.
5476 (init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for
5477 compatibility with x64.
5478
5479 * vm-limit.c (lim_data): Now size_t.
5480 (check_memory_limits): Adjust prototypes of real_morecore and
5481 __morecore to receive argument of type ptrdiff_t. Use size_t for
5482 five_percent and data_size.
5483
5484 * unexw32.c: Use DWORD_PTR instead of DWORD for file-scope
5485 variables, for compatibility with x64.
5486 (rva_to_section, offset_to_section, relocate_offset)
5487 (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET)
5488 (PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info)
5489 (copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD
5490 for compatibility with x64.
5491
5492 * sysdep.c (STDERR_FILENO): Define if not already defined.
5493
5494 * ralloc.c (real_morecore): Argument type is now ptrdiff_t.
5495 (__morecore): Argument type is now ptrdiff_t.
5496 (ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'.
5497 (relinquish): Use ptrdiff_t type for 'excess'.
5498 (r_alloc_sbrk): Argument type is now ptrdiff_t.
5499
5500 * makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE.
5501 (bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE)
5502 instead of a literal number.
5503
5504 * gmalloc.c [WINDOWSNT]: Include w32heap.h.
5505 (min): Define only if not already defined.
5506
5507 * frame.c (x_report_frame_params): Use EMACS_UINT for the return
5508 value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows
5509 hosts.
5510
5511 * image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since
5512 'bitmaps' is a pointer.
5513
5514 * dispextern.h (x_bitmap_pixmap): Adjust prototype.
5515
5516 * alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__.
5517
e7a2937b
PE
55182012-09-30 Paul Eggert <eggert@cs.ucla.edu>
5519
5520 file-attributes has a new optional arg FOLLOW-SYMLINKS.
5521 * dired.c (directory_files_internal, Ffile_attributes):
5522 New arg follow_symlinks. All uses changed.
5523
b43d62ae
SM
55242012-09-30 Stefan Monnier <monnier@iro.umontreal.ca>
5525
5526 * .gdbinit (xbacktrace): Adjust to recent "struct backtrace" change.
5527
c06c382a
EZ
55282012-09-30 Eli Zaretskii <eliz@gnu.org>
5529
5530 Support atimers and CPU profiler via profile.c on MS-Windows.
5531 * w32proc.c (sig_mask, crit_sig): New static variables.
5532 (sys_signal): Support SIGALRM and SIGPROF.
5533 (sigemptyset, sigaddset, sigfillset, sigprocmask)
b43d62ae 5534 (pthread_sigmask, setpgrp): Move here from w32.c. sigaddset,
c06c382a
EZ
5535 sigfillset, and sigprocmask are no longer no-ops.
5536 (sigismember): New function.
5537 (struct itimer_data): New definition.
5538 (ticks_now, real_itimer, prof_itimer, clocks_min, crit_real)
5539 (crit_prof): New static variables.
5540 (MAX_SINGLE_SLEEP): New definition.
5541 (timer_loop, stop_timer_thread, term_timers, init_timers)
5542 (start_timer_thread, getitimer, setitimer): New functions.
5543 (alarm): No longer a no-op, calls setitimer.
5544
5545 * w32.c (term_ntproc): Call term_timers.
5546 (init_ntproc): Make sure all signals are unblocked at startup, to
5547 erase any traces of dumping. Call init_timers.
5548
5549 * w32fns.c (hourglass_timer, HOURGLASS_ID): Remove.
5550 Windows-specific code to display the hourglass mouse pointer is no
5551 longer used.
5552 (w32_wnd_proc): Remove code that handled the WM_TIMER message due
5553 to hourglass timer expiration.
5554 (start_hourglass, cancel_hourglass, DEFAULT_HOURGLASS_DELAY):
5555 Remove, no longer used.
b43d62ae
SM
5556 (w32_note_current_window, show_hourglass, hide_hourglass):
5557 New functions, in support of hourglass cursor display similar to other
c06c382a
EZ
5558 window systems.
5559 (syms_of_w32fns): Don't initialize hourglass_timer.
5560
5561 * xdisp.c (start_hourglass, cancel_hourglass): Now used on
5562 WINDOWSNT as well.
5563 (start_hourglass) [WINDOWSNT]: Call w32_note_current_window.
5564
5565 * w32.h (init_timers, term_timers): Add prototypes.
5566
95402d5f
KH
55672012-09-30 Kenichi Handa <handa@gnu.org>
5568
5569 * coding.c (decode_coding_ccl, encode_coding_ccl): Pay attention
5570 to the buffer relocation which may be caused by ccl_driver.
5571
dd946752
JD
55722012-09-30 Jan Djärv <jan.h.d@swipnet.se>
5573
d7e642cc
JD
5574 * xfns.c (Fx_file_dialog): Update comment.
5575
5576 * w32fns.c (Fx_file_dialog): Update comment.
5577
5578 * nsfns.m (Fns_read_file_name): Add argument DIR_ONLY_P.
5579 Initialize panel name field if OSX >= 10.6.
5580
5581 * fileio.c (Fnext_read_file_uses_dialog_p): Add HAVE_NS.
5582
dd946752
JD
5583 * nsfns.m (ns_frame_parm_handlers): Add x_set_fullscreen.
5584
5585 * nsterm.m (NEW_STYLE_FS): New define.
5586 (ns_fullscreen_hook, windowWillEnterFullScreen)
5587 (windowDidEnterFullScreen, windowWillExitFullScreen)
5588 (windowDidExitFullScreen, toggleFullScreen, handleFS)
5589 (setFSValue): New functions.
5590 (EmacsFSWindow): New implementation.
5591 (canBecomeKeyWindow): New function for EmacsFSWindow.
5592 (ns_create_terminal): Set fullscreen_hook to ns_fullscreen_hook.
5593 (dealloc): Release nonfs_window if in fullscreen.
5594 (updateFrameSize:): Call windowDidMove to update top/left.
5595 (windowWillResize:toSize:): Check if frame is still maximized.
5596 (initFrameFromEmacs:): Initialize fs_state, fs_before_fs,
5597 next_maximized, maximized_width, maximized_height and nonfs_window.
5598 Call setCollectionBehavior if NEW_STYLE_FS. Initialize bwidth and
5599 tbar_height.
5600 (windowWillUseStandardFrame:defaultFrame:): Update frame parameter
1f9f395d 5601 fullscreen. Set maximized_width/height. Act on next_maximized.
dd946752
JD
5602
5603 * nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New.
5604 (EmacsView): Add variables for fullscreen.
5605 (handleFS, setFSValue, toggleFullScreen): New in EmacsView.
5606 (EmacsFSWindow): New interface for fullscreen.
5607
427730eb
JB
56082012-09-30 Juanma Barranquero <lekktu@gmail.com>
5609
5610 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
5611
48de8b12
CY
56122012-09-30 Chong Yidong <cyd@gnu.org>
5613
5614 * fns.c (Frandom): Doc fix.
5615
5938d519
MR
56162012-09-30 Martin Rudalics <rudalics@gmx.at>
5617
5618 * window.c (Vwindow_combination_limit): New default value.
5619 (Qwindow_size): New symbol replacing Qtemp_buffer_resize.
5620
cb5b0266
PE
56212012-09-30 Paul Eggert <eggert@cs.ucla.edu>
5622
5623 * syssignal.h (PROFILER_CPU_SUPPORT): Don't define if PROFILING.
5624 Suggested by Eli Zaretskii in
5625 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00811.html>.
5626
84f72efd
EZ
56272012-09-30 Eli Zaretskii <eliz@gnu.org>
5628
5629 * profiler.c (Fprofiler_cpu_stop): Use timer_settime only if
5630 HAVE_TIMER_SETTIME is defined.
5631
9d4dcdc9
PE
56322012-09-30 Paul Eggert <eggert@cs.ucla.edu>
5633
d89460ed
PE
5634 Profiler improvements: more-accurate timers, overflow checks.
5635 * profiler.c: Don't include stdio.h, limits.h, sys/time.h,
5636 signal.h, setjmp.h. Include systime.h instead.
5637 (saturated_add): New function.
5638 (record_backtrace, current_sample_interval): Use EMACS_INT, not size_t.
5639 (record_backtrace, handle_profiler_signal): Saturate on fixnum overflow.
5640 (profiler_timer, profiler_timer_ok) [HAVE_TIMER_SETTIME]:
5641 New static vars.
84f72efd 5642 (enum profiler_cpu_running): New enum.
d89460ed
PE
5643 (profiler_cpu_running): Now of that enum type, not bool.
5644 All uses changed to store the new value.
5645 (handle_profiler_signal): Rename from sigprof_handler_1,
5646 for consistency with other handlers. Do not check whether
5647 cpu_log is a hash-table if garbage collecting, since it
5648 doesn't matter in that case.
5649 (deliver_profiler_signal): Rename from sigprof_handler,
5650 for consistency with other handlers.
5651 (setup_cpu_timer): New function, with much of what used to be in
5652 Fprofiler_cpu_start. Check for out-of-range argument.
5653 Prefer timer_settime if available, and prefer
5654 thread cputime clocks, then process cputime clocks, then
5655 monotonic clocks, to the old realtime clock. Use make_timeval
5656 to round more-correctly when falling back to setitimer.
5657 (Fprofiler_cpu_start): Use it.
5658 (Fprofiler_cpu_stop): Prefer timer_settime if available.
5659 Don't assume that passing NULL as the 2nd argument of setitimer
5660 is the same as passing a pointer to all-zero storage.
5661 Ignore SIGPROF afterwards.
5662 (malloc_probe): Saturate at MOST_POSITIVE_FIXNUM.
5663 * sysdep.c (emacs_sigaction_init): Also mask out SIGPROF in
5664 non-fatal signal handlers. Ignore SIGPROF on startup.
5665 * syssignal.h (PROFILER_CPU_SUPPORT): Define this macro here, not
5666 in profiler.c, since sysdep.c now uses it.
5667
9d4dcdc9
PE
5668 * sysdep.c (handle_fatal_signal): Bump backtrace size to 40.
5669 Suggested by Eli Zaretskii in
5670 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
5671
8e5691a0
JB
56722012-09-29 Juanma Barranquero <lekktu@gmail.com>
5673
5674 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
5675
e7c1b6ef
SM
56762012-09-29 Stefan Monnier <monnier@iro.umontreal.ca>
5677
5678 * lisp.h (struct backtrace): Remove indirection for `function' field.
5679 * xdisp.c (redisplay_internal):
5680 * profiler.c (record_backtrace, sigprof_handler_1):
5681 * alloc.c (Fgarbage_collect):
5682 * eval.c (interactive_p, Fsignal, eval_sub, Ffuncall, Fbacktrace)
5683 (Fbacktrace_frame): Adjust accordingly.
5684
e61d39cd 56852012-09-28 Glenn Morris <rgm@gnu.org>
d393cefb
GM
5686
5687 * eval.c (Frun_hook_with_args, Frun_hook_with_args_until_success)
5688 (Frun_hook_with_args_until_failure): Doc fixes.
5689
404043ea
EZ
56902012-09-28 Eli Zaretskii <eliz@gnu.org>
5691
5692 * xdisp.c (syms_of_xdisp) <Qredisplay_internal>: Rename from
5693 Qautomatic_redisplay and change the symbol name. All users changed.
5694
704d3f45
TM
56952012-09-28 Tomohiro Matsuyama <tomo@cx4a.org>
5696
5697 * profiler.c (sigprof_handler): Fix race condition.
5698
757140ff
GM
56992012-09-28 Glenn Morris <rgm@gnu.org>
5700
5701 * lread.c (lisp_file_lexically_bound_p): Handle #! lines. (Bug#12528)
5702
a615a3ae
PE
57032012-09-27 Paul Eggert <eggert@cs.ucla.edu>
5704
5705 Check more robustly for timer_settime.
89d17fd0
PE
5706 * Makefile.in (LIB_TIMER_TIME): New macro.
5707 (LIBES): Add it.
a615a3ae
PE
5708 * atimer.c (alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
5709 Use HAVE_TIMER_SETTIME, not SIGEV_SIGNAL, to decide whether to
5710 call timer_settime.
5711
3670daf7
TM
57122012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
5713
5714 * profiler.c (Fprofiler_cpu_start): Remove unnecessary flag SA_SIGINFO.
5715
6a586b7f
JB
57162012-09-26 Juanma Barranquero <lekktu@gmail.com>
5717
5718 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
5719
41c8bfcf
PE
57202012-09-26 Paul Eggert <eggert@cs.ucla.edu>
5721
5722 * character.h (MAYBE_UNIFY_CHAR): Remove.
5723 * charset.c, charset.h (maybe_unify_char): Now static.
5724 * charset.c (decode_char): Use maybe_unify_char, not MAYBE_UNIFY_CHAR.
5725 Since this stuff is now private to charset.c, there's no need for
5726 a public macro and no need to inline by hand.
5727
3a880af4 57282012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
908589fd
AS
5729 Stefan Monnier <monnier@iro.umontreal.ca>
5730 Juanma Barranquero <lekktu@gmail.com>
611b7507 5731
3a880af4
SM
5732 * profiler.c: New file.
5733 * Makefile.in (base_obj): Add profiler.o.
611b7507
JB
5734 * makefile.w32-in (OBJ2, GLOBAL_SOURCES): Add profiler.c.
5735 ($(BLD)/profiler.$(O)): New target.
3a880af4
SM
5736 * emacs.c (main): Call syms_of_profiler.
5737 * alloc.c (Qautomatic_gc): New constant.
5738 (MALLOC_PROBE): New macro.
5739 (xmalloc, xzalloc, xrealloc, lisp_malloc, lisp_align_malloc): Use it.
5740 (total_bytes_of_live_objects): New function.
5741 (Fgarbage_collect): Use it. Record itself in backtrace_list.
5742 Call malloc_probe for the memory profiler.
5743 (syms_of_alloc): Define Qautomatic_gc.
5744 * eval.c (eval_sub, Ffuncall): Reorder assignments to avoid
5745 race condition.
5746 (struct backtrace): Move definition...
5747 * lisp.h (struct backtrace): ..here.
5748 (Qautomatic_gc, profiler_memory_running): Declare vars.
5749 (malloc_probe, syms_of_profiler): Declare functions.
5750 * xdisp.c (Qautomatic_redisplay): New constant.
5751 (redisplay_internal): Record itself in backtrace_list.
5752 (syms_of_xdisp): Define Qautomatic_redisplay.
611b7507 5753
5938d519 57542012-09-25 Eli Zaretskii <eliz@gnu.org>
b67238c2
JB
57552012-09-25 Juanma Barranquero <lekktu@gmail.com>
5756
5757 * makefile.w32-in ($(BLD)/callproc.$(O)): Update dependencies.
5758
e26fd2e4
PE
57592012-09-25 Paul Eggert <eggert@cs.ucla.edu>
5760
5761 Prefer POSIX timers if available.
5762 They avoid a race if the timer is too close to the current time.
5763 * atimer.c (alarm_timer, alarm_timer_ok) [SIGEV_SIGNAL]: New static vars.
5764 (set_alarm) [SIGEV_SIGNAL]: Use POSIX timers if available.
9180598c 5765 (init_atimer) [SIGEV_SIGNAL]: Initialize them.
e26fd2e4 5766
eedec3ee
EZ
57672012-09-25 Eli Zaretskii <eliz@gnu.org>
5768
5769 * coding.c (CHAR_STRING_ADVANCE_NO_UNIFY): Make it an alias of
5770 CHAR_STRING_ADVANCE.
5771 (STRING_CHAR_ADVANCE_NO_UNIFY): Make it an alias of
5772 STRING_CHAR_ADVANCE.
5773
aa15c6bb
JB
57742012-09-25 Juanma Barranquero <lekktu@gmail.com>
5775
5776 Move Vlibrary_cache to emacs.c and reset before dumping.
5777
5778 * lisp.h (reset_image_types): Declare.
5779 [WINDOWSNT] (Vlibrary_cache): Declare.
5780
5781 * image.c (reset_image_types): New function.
5782
5783 * emacs.c [WINDOWSNT] (Vlibrary_cache): Move from w32.c.
5784 (syms_of_emacs) [WINDOWSNT] <Vlibrary_cache>: Initialize and staticpro.
5785 (Fdump_emacs): Reset Vlibrary_cache and image_types.
5786
5787 * w32.c (Vlibrary_cache): Do not define; moved to emacs.c
5788 (globals_of_w32) <Vlibrary_cache>: Do not initialize.
5789
5790 * w32.h (Vlibrary_cache): Do not declare.
5791
54d629be
EZ
57922012-09-25 Eli Zaretskii <eliz@gnu.org>
5793
16b22fef
EZ
5794 * w32proc.c (sys_signal): Handle all signals defined by the
5795 MS-Windows runtime, not just SIGCHLD. Actually install the signal
5796 handlers for signals supported by Windows. Don't override
5797 term_ntproc as the handler for SIGABRT.
5798 (sigaction): Rewrite to call sys_signal instead of duplicating its
5799 code.
5800 (sys_kill): Improve commentary.
5801
5802 * w32.c (term_ntproc): Accept (and ignore) one argument, for
5803 consistency with a signature of a signal handler. All callers
5804 changed.
5805 (init_ntproc): Accept an argument DUMPING. If dumping, don't
5806 install term_ntproc as a signal handler for SIGABRT, as that
5807 should be done by the dumped Emacs.
5808
5809 * w32.h (init_ntproc, term_ntproc): Adjust prototypes.
5810
5811 * w32select.c (term_w32select): Protect against repeated
5812 invocation by setting clipboard_owner to NULL after calling
5813 DestroyWindow.
5814
5815 * emacs.c (shut_down_emacs, main): Adapt the calls to init_ntproc
5816 and term_ntproc to their modified signatures.
5817
54d629be
EZ
5818 * character.c (char_string, string_char): Remove calls to
5819 MAYBE_UNIFY_CHAR. See the discussion starting at
5820 http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00433.html
5821 for the details.
5822
59f7af81
CY
58232012-09-25 Chong Yidong <cyd@gnu.org>
5824
5825 * xdisp.c (mode_line_inverse_video): Delete obsolete variable.
5826
22e8cf4a
SM
58272012-09-24 Stefan Monnier <monnier@iro.umontreal.ca>
5828
5829 * bytecode.c (exec_byte_code): Signal an error instead of aborting,
5830 when encountering an unknown bytecode.
5831
578098f3
PE
58322012-09-24 Paul Eggert <eggert@cs.ucla.edu>
5833
5834 image.c, indent.c: Use bool for booleans.
5835 * dispextern.h (struct image_type): Members valid_p, load, init
5836 now return bool, not int. All uses changed.
5837 * image.c: Omit unnecessary static decls.
5838 (x_create_bitmap_mask, x_build_heuristic_mask):
5839 Return void, not int, since callers don't care about the return value.
5840 (x_create_bitmap_mask, define_image_type, valid_image_p)
5841 (struct image_keyword, parse_image_spec, image_spec_value)
5842 (check_image_size, image_background)
5843 (image_background_transparent, x_clear_image_1)
5844 (postprocess_image, lookup_image, x_check_image_size)
5845 (x_create_x_image_and_pixmap, xbm_image_p)
5846 (Create_Pixmap_From_Bitmap_Data, xbm_read_bitmap_data)
5847 (xbm_load_image, xbm_file_p, xbm_load, xpm_lookup_color)
5848 (init_xpm_functions, xpm_valid_color_symbols_p, xpm_image_p)
5849 (xpm_load, xpm_load_image, lookup_rgb_color, lookup_pixel_color)
5850 (x_to_xcolors, x_build_heuristic_mask, pbm_image_p, pbm_load)
5851 (png_image_p, init_png_functions, png_load_body, png_load)
5852 (jpeg_image_p, init_jpeg_functions, jpeg_load_body, jpeg_load)
5853 (tiff_image_p, init_tiff_functions, tiff_load, gif_image_p)
5854 (init_gif_functions, gif_load, imagemagick_image_p)
5855 (imagemagick_load_image, imagemagick_load, svg_image_p)
5856 (init_svg_functions, svg_load, svg_load_image, gs_image_p)
5857 (gs_load):
5858 * nsimage.m (ns_load_image):
5859 * nsterm.m (ns_defined_color):
5860 * xfaces.c (tty_lookup_color, tty_defined_color, defined_color):
5861 * xfns.c (x_defined_color):
5862 * xterm.c (x_alloc_lighter_color_for_widget)
5863 (x_alloc_nearest_color_1, x_alloc_nearest_color)
5864 (x_alloc_lighter_color):
5865 * indent.c (disptab_matches_widthtab, current_column)
5866 (scan_for_column, string_display_width, indented_beyond_p)
5867 (compute_motion, vmotion, Fvertical_motion):
5868 Use bool for booleans.
5869
a5f2b6ec
CY
58702012-09-24 Chong Yidong <cyd@gnu.org>
5871
5872 * chartab.c (Fset_char_table_default): Obsolete function removed.
5873
18e27ea8
PE
58742012-09-23 Paul Eggert <eggert@cs.ucla.edu>
5875
afea8a8a
PE
5876 Move pid_t related decls out of lisp.h.
5877 * lisp.h, syswait.h (record_child_status_change, wait_for_termination)
5878 (interruptible_wait_for_termination):
5879 Move these decls from lisp.h to syswait.h, since they use pid_t.
5880 Needed on FreeBSD; see Herbert J. Skuhra in
5881 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00571.html>.
5882 * callproc.c: Include syswait.h.
5883
18e27ea8
PE
5884 gnutls.c, gtkutil.c: Use bool for boolean.
5885 * gnutls.c (gnutls_global_initialized, init_gnutls_functions)
5886 (emacs_gnutls_handle_error):
5887 * gtkutil.c (xg_check_special_colors, xg_prepare_tooltip)
5888 (xg_hide_tooltip, xg_create_frame_widgets)
5889 (create_dialog, xg_uses_old_file_dialog)
5890 (xg_get_file_with_chooser, xg_get_file_with_selection)
5891 (xg_get_file_name, xg_have_tear_offs, create_menus, xg_create_widget)
5892 (xg_item_label_same_p, xg_update_menubar)
5893 (xg_modify_menubar_widgets, xg_event_is_for_menubar)
5894 (xg_ignore_gtk_scrollbar, xg_set_toolkit_scroll_bar_thumb)
5895 (xg_event_is_for_scrollbar, xg_pack_tool_bar, xg_make_tool_item)
5896 (is_box_type, xg_tool_item_stale_p, xg_update_tool_bar_sizes)
5897 (update_frame_tool_bar, free_frame_tool_bar):
5898 * gtkutil.c, w32term.c, xterm.c (x_wm_set_size_hint):
5899 * nsmenu.m (ns_update_menubar):
5900 * nsmenu.m, w32menu.c, xmenu.c (set_frame_menubar):
5901 * xfns.c (Fx_show_tip) [USE_GTK]:
5902 Use bool for boolean.
5903 * gtkutil.c (xg_update_frame_menubar):
5904 * xmenu.c (update_frame_menubar):
5905 Return void, not int, since caller ignores return value.
5906 * gtkutil.c (xg_change_toolbar_position):
5907 Return void, not 1.
5908
af0e9f75
JB
59092012-09-23 Juanma Barranquero <lekktu@gmail.com>
5910
5911 * makefile.w32-in (BLOCKINPUT_H): Remove.
5912 (SYSSIGNAL_H): New macro.
5913 ($(BLD)/alloc.$(O), $(BLD)/atimer.$(O), $(BLD)/buffer.$(O))
5914 ($(BLD)/callproc.$(O), $(BLD)/data.$(O), $(BLD)/dired.$(O))
5915 ($(BLD)/dispnew.$(O), $(BLD)/editfns.$(O), $(BLD)/emacs.$(O))
5916 ($(BLD)/eval.$(O), $(BLD)/fileio.$(O), $(BLD)/floatfns.$(O))
5917 ($(BLD)/fns.$(O), $(BLD)/fontset.$(O), $(BLD)/frame.$(O))
5918 ($(BLD)/fringe.$(O), $(BLD)/image.$(O), $(BLD)/insdel.$(O))
5919 ($(BLD)/keyboard.$(O), $(BLD)/keymap.$(O), $(BLD)/lread.$(O))
5920 ($(BLD)/menu.$(O), $(BLD)/w32inevt.$(O), $(BLD)/w32proc.$(O))
5921 ($(BLD)/print.$(O), $(BLD)/process.$(O), $(BLD)/ralloc.$(O))
5922 ($(BLD)/search.$(O), $(BLD)/sound.$(O), $(BLD)/sysdep.$(O))
5923 ($(BLD)/term.$(O), $(BLD)/window.$(O), $(BLD)/xdisp.$(O))
5924 ($(BLD)/xfaces.$(O), $(BLD)/w32fns.$(O), $(BLD)/w32menu.$(O))
5925 ($(BLD)/w32term.$(O), $(BLD)/w32select.$(O), $(BLD)/w32reg.$(O))
5926 ($(BLD)/w32xfns.$(O)): Update dependencies.
5927
5101529e
EZ
59282012-09-23 Eli Zaretskii <eliz@gnu.org>
5929
5930 * .gdbinit: Set breakpoint on terminate_due_to_signal, not on
5931 fatal_error_backtrace.
5932
5933 * w32proc.c (sys_kill): Undo last change: don't do anything when
5934 invoked to deliver SIGABRT to our own process. This is now
5935 handled by emacs_raise.
5936
2c3ee0ad
JB
59372012-09-23 Juanma Barranquero <lekktu@gmail.com>
5938
5939 * w32term.c (w32_read_socket): Remove leftover reference to
5940 interrupt_input_pending.
5941
62a1d661
PE
59422012-09-23 Paul Eggert <eggert@cs.ucla.edu>
5943
5944 Do not use SA_NODEFER.
5945 Problem reported by Dani Moncayo in
5946 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00557.html>.
5947 * alloc.c (die):
5948 * sysdep.c (emacs_abort): Do not reset signal handler.
5949 * emacs.c (terminate_due_to_signal): Reset signal handler here.
5950 * sysdep.c (init_signals): Do not use SA_NODEFER. It wasn't
5951 wanted even on POSIXish hosts, and it doesn't work on Windows.
5952
a0942b9a
JD
59532012-09-23 Jan Djärv <jan.h.d@swipnet.se>
5954
5955 * xterm.c (x_term_init): Call fixup_locale before and after calling
5956 gtk_init (Bug#12392).
5957
d07ff9db
CY
59582012-09-23 Chong Yidong <cyd@gnu.org>
5959
5960 * w32.c (w32_delayed_load): Remove LIBRARIES argument; always use
5961 Vdynamic_library_alist.
5962
5963 * gnutls.c (init_gnutls_functions): Caller changed; remove arg.
5964 (Fgnutls_available_p): Caller changed.
5965
5966 * xml.c (init_libxml2_functions, Flibxml_parse_html_region)
5967 (Flibxml_parse_xml_region): Likewise.
5968
5969 * dispextern.h (struct image_type): Remove arg from init function.
5970
5971 * image.c (Finit_image_library, lookup_image_type)
5972 (define_image_type): Remove now-unneeded second arg.
5973 (init_xpm_functions, init_png_functions, init_jpeg_functions)
5974 (init_tiff_functions, init_gif_functions, init_svg_functions):
5975 Arglist and w32_delayed_load calling convention changed.
5976 (gs_type): Remove init_gs_functions; there is no such function.
641cfd14 5977 (valid_image_p, make_image): Fix caller to lookup_image_type.
d07ff9db 5978
4d7e6e51
PE
59792012-09-23 Paul Eggert <eggert@cs.ucla.edu>
5980
5981 Simplify and avoid signal-handling races (Bug#12471).
5982 * alloc.c (die):
5983 * sysdep.c (emacs_abort) [HAVE_NTGUI]:
5984 Avoid recursive loop if there's a fatal error in the function itself.
5985 * atimer.c (pending_atimers):
5986 * blockinput.h: Don't include "atimer.h"; no longer needed.
5987 (interrupt_input_pending): Remove. All uses removed.
5988 pending_signals now counts both atimers and ordinary interrupts.
5989 This is less racy than having three separate pending-signal flags.
5990 (block_input, unblock_input, totally_unblock_input, unblock_input_to)
5991 (input_blocked_p):
5992 Rename from their upper-case counterparts BLOCK_INPUT,
5993 UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT_TO,
5994 INPUT_BLOCKED_P, and turn into functions. All uses changed.
5995 This makes it easier to access volatile variables more accurately.
5996 (BLOCK_INPUT_RESIGNAL): Remove. All uses replaced by unblock_input ().
5997 (input_blocked_p): Prefer this to 'interrupt_input_blocked', as
5998 that's more reliable if the code is buggy and sets
5999 interrupt_input_blocked to a negative value. All uses changed.
6000 * atimer.c (deliver_alarm_signal):
6001 Remove. No need to deliver this to the parent; any thread can
6002 handle this signal now. All uses replaced by underlying handler.
6003 * atimer.c (turn_on_atimers):
6004 * dispnew.c (handle_window_change_signal):
6005 * emacs.c (handle_danger_signal):
6006 * keyboard.c (kbd_buffer_get_event):
6007 Don't reestablish signal handler; not needed with sigaction.
6008 * blockinput.h (UNBLOCK_INPUT_TO, TOTALLY_UNBLOCK_INPUT)
6009 (UNBLOCK_INPUT_TO):
6010 Rework to avoid unnecessary accesses to volatile variables.
6011 (UNBLOCK_INPUT_TO): Now a function.
6012 (totally_unblock_input, unblock_input): New decls.
6013 * data.c (handle_arith_signal, deliver_arith_signal): Move to sysdep.c
6014 (init_data): Remove. Necessary stuff now done in init_signal.
6015 * emacs.c, xdisp.c: Include "atimer.h", since we invoke atimer functions.
6016 * emacs.c (handle_fatal_signal, deliver_fatal_signal): Move to sysdep.c.
6017 (fatal_error_code): Remove; no longer needed.
6018 (terminate_due_to_signal): Rename from fatal_error_backtrace, since
6019 it doesn't always backtrace. All uses changed. No need to reset
6020 signal to default, since sigaction and/or die does that for us now.
6021 Use emacs_raise (FOO), not kill (getpid (), FOO).
6022 (main): Check more-accurately whether we're dumping.
6023 Move fatal-error setup to sysdep.c
6024 * floatfns.c: Do not include "syssignal.h"; no longer needed.
6025 * gtkutil.c (xg_get_file_name, xg_get_font):
6026 Remove no-longer-needed signal-mask manipulation.
6027 * keyboard.c, process.c (POLL_FOR_INPUT):
6028 Don't depend on USE_ASYNC_EVENTS, a symbol that is never defined.
6029 * keyboard.c (read_avail_input): Remove.
6030 All uses replaced by gobble_input.
6031 (Ftop_level): Use TOTALLY_UNBLOCK_INPUT rather than open code.
6032 (kbd_buffer_store_event_hold, gobble_input):
6033 (record_asynch_buffer_change) [USABLE_SIGIO]:
6034 (store_user_signal_events):
6035 No need to mess with signal mask.
6036 (gobble_input): If blocking input and there are terminals, simply
6037 set pending_signals to 1 and return. All hooks changed to not
6038 worry about whether input is blocked.
6039 (process_pending_signals): Clear pending_signals before processing
6040 them, in case a signal comes in while we're processing.
6041 By convention callers now test pending_signals before calling us.
6042 (UNBLOCK_INPUT_TO, unblock_input, totally_unblock_input):
6043 New functions, to support changes to blockinput.h.
6044 (handle_input_available_signal): Now extern.
6045 (reinvoke_input_signal): Remove. All uses replaced by
6046 handle_async_input.
6047 (quit_count): Now volatile, since a signal handler uses it.
3a880af4
SM
6048 (handle_interrupt): Now takes bool IN_SIGNAL_HANDLER as arg.
6049 All callers changed. Block SIGINT only if not already blocked.
4d7e6e51
PE
6050 Clear sigmask reliably, even if Fsignal returns, which it can.
6051 Omit unnecessary accesses to volatile var.
6052 (quit_throw_to_read_char): No need to restore sigmask.
6053 * keyboard.c (gobble_input, handle_user_signal):
6054 * process.c (wait_reading_process_output):
6055 Call signal-handling code rather than killing ourselves.
6056 * lisp.h: Include <float.h>, for...
6057 (IEEE_FLOATING_POINT): New macro, moved here to avoid duplication.
6058 (pending_signals): Now volatile.
6059 (syms_of_data): Now const if IEEE floating point.
6060 (handle_input_available_signal) [USABLE_SIGIO]:
6061 (terminate_due_to_signal, record_child_status_change): New decls.
6062 * process.c (create_process): Avoid disaster if memory is exhausted
6063 while we're processing a vfork, by tightening the critical section
6064 around the vfork.
6065 (send_process_frame, process_sent_to, handle_pipe_signal)
6066 (deliver_pipe_signal): Remove. No longer needed, as Emacs now
6067 ignores SIGPIPE.
6068 (send_process): No need for setjmp/longjmp any more, since the
6069 SIGPIPE stuff is now gone. Instead, report an error if errno
6070 is EPIPE.
6071 (record_child_status_change): Now extern. PID and W are now args.
6072 Return void, not bool. All callers changed.
6073 * sysdep.c (wait_debugging) [(BSD_SYSTEM || HPUX) && !defined (__GNU__)]:
6074 Remove. All uses removed. This bug should be fixed now in a
6075 different way.
6076 (wait_for_termination_1): Use waitpid rather than sigsuspend,
6077 and record the child status change directly. This avoids the
6078 need to futz with the signal mask.
6079 (process_fatal_action): Move here from emacs.c.
6080 (emacs_sigaction_flags): New function, containing
6081 much of what used to be in emacs_sigaction_init.
6082 (emacs_sigaction_init): Use it. Block nonfatal system signals that are
6083 caught by emacs, to make races less likely.
6084 (deliver_process_signal): Rename from handle_on_main_thread.
6085 All uses changed.
6086 (BACKTRACE_LIMIT_MAX): Now at top level.
6087 (thread_backtrace_buffer, threadback_backtrace_pointers):
6088 New static vars.
6089 (deliver_thread_signal, deliver_fatal_thread_signal):
6090 New functions, for more-accurate delivery of thread-specific signals.
6091 (handle_fatal_signal, deliver_fatal_signal): Move here from emacs.c.
6092 (deliver_arith_signal): Handle in this thread, not
6093 in the main thread, since it's triggered by this thread.
6094 (maybe_fatal_sig): New function.
6095 (init_signals): New arg DUMPING so that we can be more accurate
6096 about whether we're dumping. Caller changed.
6097 Treat thread-specific signals differently from process-general signals.
6098 Block all signals while handling fatal error; that's safer.
6099 xsignal from SIGFPE only on non-IEEE hosts, treating it as fatal
6100 on IEEE hosts.
6101 When batch, ignore SIGHUP, SIGINT, SIGTERM if they were already ignored.
6102 Ignore SIGPIPE unless batch.
6103 (emacs_backtrace): Output backtrace for the appropriate thread,
6104 which is not necessarily the main thread.
6105 * syssignal.h: Include <stdbool.h>.
6106 (emacs_raise): New macro.
6107 * xterm.c (x_connection_signal): Remove; no longer needed
6108 now that we use sigaction.
6109 (x_connection_closed): No need to mess with sigmask now.
6110 (x_initialize): No need to reset SIGPIPE handler here, since
6111 init_signals does this for us now.
6112
8f4635e9
JD
61132012-09-23 Jan Djärv <jan.h.d@swipnet.se>
6114
6115 * nsterm.m (ns_dumpglyphs_image): dr is a new rect to draw image into,
fb39b937 6116 background rect may be larger (Bug#12245).
8f4635e9 6117
3296976d
CY
61182012-09-23 Chong Yidong <cyd@gnu.org>
6119
6120 * keyboard.c (timer_check): Avoid quitting during Fcopy_sequence.
6121
d41e491e
PE
61222012-09-22 Paul Eggert <eggert@cs.ucla.edu>
6123
6124 * .gdbinit: Just stop at fatal_error_backtrace.
6125 See Stefan Monnier's request in
6126 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00549.html>.
6127 Remove no-longer-used query of system type.
6128
c88b867f
CY
61292012-09-22 Chong Yidong <cyd@gnu.org>
6130
6131 * search.c (Freplace_match): Doc fix (Bug#12325).
6132
6133 * minibuf.c (Finternal_complete_buffer): Doc fix (Bug#12391).
6134
6135 * editfns.c (Fline_beginning_position): Doc fix (Bug#12416).
6136 (Fline_end_position): Doc fix.
6137
6138 * cmds.c (Fforward_char, Fbackward_char): Doc fix (Bug#12414).
6139
bb4d86b4
CY
61402012-09-22 Chong Yidong <cyd@gnu.org>
6141
6142 * dispextern.h (struct image_type): Add new slot, storing a type
6143 initialization function.
6144
6145 * image.c (define_image_type): Call the image initializer function
6146 if it is defined. Arguments and return value changed.
6147 (valid_image_p, make_image): Callers changed.
6148 (xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type)
3a880af4
SM
6149 (gif_type, imagemagick_type, svg_type, gs_type):
6150 Add initialization functions.
bb4d86b4
CY
6151 (Finit_image_library): Call lookup_image_type.
6152 (CHECK_LIB_AVAILABLE): Macro deleted.
6153 (lookup_image_type): Call define_image_type here, rather than via
6154 Finit_image_library, and without using CHECK_LIB_AVAILABLE.
6155 (syms_of_image): Move define_image_type calls for xbm_type and
6156 pbm_type to lookup_image_type.
6157
df9685f3
EZ
61582012-09-22 Eli Zaretskii <eliz@gnu.org>
6159
6160 * keyboard.c (timer_check_2): Move calculation of 'timers' and
6161 'idle_timers' from here ...
6162 (timer_check): ... to here. Use Fcopy_sequence to copy the timer
6163 lists, to avoid infloops when the timer does something stupid,
6164 like reinvoke itself with the same or smaller time-out.
6165 (Bug#12447)
6166
8e17c9ba
MR
61672012-09-22 Martin Rudalics <rudalics@gmx.at>
6168
6169 * window.c (Fsplit_window_internal): Handle only Qt value of
6170 Vwindow_combination_limit separately.
6171 (Qtemp_buffer_resize): New symbol.
3a880af4
SM
6172 (Vwindow_combination_limit): New default value.
6173 Rewrite doc-string.
8e17c9ba 6174
589bd69b
EZ
61752012-09-22 Eli Zaretskii <eliz@gnu.org>
6176
6177 * xdisp.c (next_overlay_string): Initialize it->end_charpos for
6178 the new overlay string. (Bug#10159)
6179
01108e3f
PE
61802012-09-22 Paul Eggert <eggert@cs.ucla.edu>
6181
6182 * emacs.c (shut_down_emacs): Don't assume stderr is buffered,
6183 or that fprintf is async-signal-safe. POSIX doesn't require
6184 either assumption.
6185
82f8cd94
CY
61862012-09-22 Chong Yidong <cyd@gnu.org>
6187
6188 * buffer.c (Fset_buffer_modified_p): Handle indirect buffers
6189 (Bug#8207).
6190
3cccbd87
KH
61912012-09-22 Kenichi Handa <handa@gnu.org>
6192
6193 * composite.c (composition_reseat_it): Handle the case that a
6194 grapheme cluster is not covered by a single font (Bug#12352).
6195
09c01941
CY
61962012-09-21 Chong Yidong <cyd@gnu.org>
6197
6198 * image.c (define_image_type): Avoid adding duplicate types to
6199 image_types (Bug#12463). Suggested by Jörg Walter.
6200
acfa068f 62012012-09-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
e25c1a30
YM
6202
6203 * unexmacosx.c: Define LC_DATA_IN_CODE if not defined.
6204 (print_load_command_name): Add case LC_DATA_IN_CODE.
6205 (dump_it) [LC_DATA_IN_CODE]: Call copy_linkedit_data.
6206
acfa068f 62072012-09-21 Glenn Morris <rgm@gnu.org>
1e9bbf47
GM
6208
6209 * eval.c (Frun_hook_with_args_until_success)
6210 (Frun_hook_with_args_until_failure): Doc fixes. (Bug#12393)
6211
acfa068f 62122012-09-21 Andreas Schwab <schwab@linux-m68k.org>
c6ba4138
AS
6213
6214 * fileio.c (Ffile_selinux_context): Only call freecon when
6215 lgetfilecon succeeded.
6216 (Fset_file_selinux_context): Likewise. (Bug#12444)
6217
acfa068f 62182012-09-21 Eli Zaretskii <eliz@gnu.org>
aa36e4d2
EZ
6219
6220 * xdisp.c (try_window_reusing_current_matrix): Under bidi
6221 reordering, locate the cursor by calling set_cursor_from_row; if
6222 that fails, clear the desired glyph matrix before returning a
6223 failure indication to the caller. Fixes leaving garbled display
6224 when fast scrolling with a down-key. (Bug#12403)
f2016bea
EZ
6225 (compute_stop_pos_backwards): Fix a typo that caused crashes while
6226 scrolling through multibyte text.
aa36e4d2 6227
e99f70c8
SM
62282012-09-20 Stefan Monnier <monnier@iro.umontreal.ca>
6229
6230 * alloc.c (mark_object) <PVEC_WINDOW>: Mark prev/next_buffers *after*
6231 calling mark_vectorlike since that's the one that marks the window.
6232 (mark_discard_killed_buffers): Mark the final cdr.
6233 * window.h (struct window): Move prev/next_buffers to the
6234 non-standard fields.
6235 * window.c (make_window): Initialize prev/next_buffers manually.
6236
f75beb47
PE
62372012-09-20 Paul Eggert <eggert@cs.ucla.edu>
6238
6239 Omit unused arg EXPECTED from socket hooks.
6240 * keyboard.c (gobble_input, read_avail_input, tty_read_avail_input):
6241 * nsterm.m (ns_term_init):
6242 * termhooks.h (struct terminal.read_socket_hook):
6243 * w32inevt.c (w32_console_read_socket):
6244 * w32term.c (w32_read_socket):
6245 * xterm.c (XTread_socket):
6246 Omit unused arg EXPECTED. All callers changed.
6247 (store_user_signal_events): Return void, not int, since callers no
6248 longer care about the return value. All uses changed.
6249
b019b76a
JB
62502012-09-20 Juanma Barranquero <lekktu@gmail.com>
6251
6252 * w32gui.h (XParseGeometry): Do not declare.
6253
05642592
PE
62542012-09-19 Paul Eggert <eggert@cs.ucla.edu>
6255
e4bce92a 6256 * w32inevt.c (w32_console_read_socket): Return -1 on failure, not 0.
1f9f395d 6257 Ignore 'expected'. See Eli Zaretskii in
e4bce92a
PE
6258 <http://bugs.gnu.org/12471#8> (last line).
6259
05642592
PE
6260 * frame.c (read_integer): Remove. All uses replaced by strtol/strtoul.
6261 (XParseGeometry): Now static. Substitute extremal values for
6262 values that are out of range.
6263
e543ae91
JD
62642012-09-19 Jan Djärv <jan.h.d@swipnet.se>
6265
6266 * w32xfns.c (read_integer, XParseGeometry): Move to frame.c.
6267
6268 * nsfns.m (XParseGeometry): Remove.
6269 (Fx_create_frame): Call x_set_offset to correctly interpret
6270 top_pos in geometry.
6271
3a880af4 6272 * frame.c (read_integer, XParseGeometry): Move from w32xfns.c.
e543ae91
JD
6273 (Fx_parse_geometry): If there is a space in string, call
6274 Qns_parse_geometry, otherwise do as on other terms (Bug#12368).
6275
45ba16c7
EZ
62762012-09-17 Eli Zaretskii <eliz@gnu.org>
6277
c8b9f1bc
EZ
6278 * search.c (scan_buffer): Use character positions in calls to
6279 region_cache_forward and region_cache_backward, not byte
6280 positions. (Bug#12196)
6281
b4c932a2
EZ
6282 * w32term.c (w32_read_socket): Set pending_signals to 1, like
6283 xterm.c does. Reported by Daniel Colascione <dancol@dancol.org>.
6284
45ba16c7
EZ
6285 * ralloc.c (r_alloc_init) [!SYSTEM_MALLOC]: Initialize
6286 __malloc_extra_blocks to 32 instead of 64, like alloc.c did in
6287 emacs_blocked_malloc, now deleted.
6288
eeceac93
PE
62892012-09-17 Paul Eggert <eggert@cs.ucla.edu>
6290
6291 Remove no-longer-needed Solaris 2.4 vfork bug workaround.
6292 The workaround was for improving performance on Solaris 2.4, but
6293 is getting in the way now. Emacs will still work if someone is
6294 still running Solaris 2.4 in a museum somewhere; Sun dropped
6295 support for Solaris 2.4 in 2003.
6296 * callproc.c (Fcall_process) [HAVE_WORKING_VFORK]:
6297 * process.c (create_process) [HAVE_WORKING_VFORK]:
6298 Omit now-unnecessary workaround for the Solaris 2.4 vfork bug,
6299 since Emacs no longer uses vfork on that platform.
6300
78f83752
GM
63012012-09-17 Glenn Morris <rgm@gnu.org>
6302
6303 * emacs.c: Use COPYRIGHT.
6304
634b8cac
PE
63052012-09-16 Paul Eggert <eggert@cs.ucla.edu>
6306
0caaedb1
PE
6307 Remove configure's --without-sync-input option (Bug#12450).
6308 When auditing signal-handling in preparation for cleaning it up,
6309 I found that SYNC_INPUT has race conditions and would be a real
6310 pain to fix. Since it's an undocumented and deprecated
6311 configure-time option, now seems like a good time to remove it.
6312 Also see <http://bugs.gnu.org/11080#16>.
6313 * alloc.c (_bytes_used, __malloc_extra_blocks, _malloc_internal)
6314 (_free_internal) [!DOUG_LEA_MALLOC]: Remove decls.
6315 (alloc_mutex) [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
6316 (malloc_hysteresis):
6317 (check_depth) [XMALLOC_OVERRUN_CHECK]:
6318 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT):
6319 (__malloc_hook, __realloc_hook, __free_hook, BYTES_USED)
6320 (dont_register_blocks, bytes_used_when_reconsidered)
6321 (bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc)
6322 (emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc):
6323 [!SYSTEM_MALLOC && !SYNC_INPUT]:
1f9f395d 6324 Remove. All uses removed.
0caaedb1
PE
6325 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different
6326 implementation, one that depends on whether the new macro
6327 XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT
6328 is defined.
6329 * atimer.c (run_timers, handle_alarm_signal):
6330 * keyboard.c (pending_signal, poll_for_input_1, poll_for_input)
6331 (handle_async_input, process_pending_signals)
6332 (handle_input_available_signal, init_keyboard):
6333 * nsterm.m (ns_read_socket):
6334 * process.c (wait_reading_process_output):
6335 * regex.c (immediate_quit, IMMEDIATE_QUIT_CHECK):
6336 * sysdep.c (emacs_sigaction_init) [SA_RESTART]:
6337 (emacs_write):
6338 * xterm.c (XTread_socket):
6339 Assume SYNC_INPUT.
6340 * conf_post.h (SA_RESTART) [IRIX6_5]: Do not #undef.
6341 * eval.c (handling_signal): Remove. All uses removed.
6342 * lisp.h (ELSE_PENDING_SIGNALS): Remove.
6343 All uses replaced with the SYNC_INPUT version.
6344 (reset_malloc_hooks, uninterrupt_malloc, handling_signal):
6345 Remove decls.
6346 * sysdep.c, syssignal.h (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
6347 Now static.
6348
634b8cac
PE
6349 * font.c (Ffont_shape_gstring): Remove unused local.
6350
83da1b55
GM
63512012-09-16 Glenn Morris <rgm@gnu.org>
6352
518650a5
GM
6353 * Makefile.in (clean): No longer run nextstep's clean.
6354
83da1b55
GM
6355 * Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables.
6356 (ns_frag): Remove.
6357 (ns-app): Move here from ns.mk, and simplify.
6358 (clean): Simplify nextstep entry.
6359 * ns.mk: Remove file.
6360
85a43e2e
KH
63612012-09-17 Kenichi Handa <handa@gnu.org>
6362
6363 * font.c (Ffont_shape_gstring): Fix previous change; GLYPHs may
6364 not covert the last few charactes.
6365
ba13e616 63662012-09-16 Kenichi Handa <handa@gnu.org>
ea964864
KH
6367
6368 * font.c (Ffont_shape_gstring): Don't adjust grapheme cluster
6369 here, but just check the validity of glyphs in the glyph-string.
6370
a8c729af
MR
63712012-09-16 Martin Rudalics <rudalics@gmx.at>
6372
3a880af4
SM
6373 * window.c (Fwindow_parameter, Fset_window_parameter):
6374 Accept any window as argument (Bug#12452).
a8c729af 6375
c077c059
JD
63762012-09-16 Jan Djärv <jan.h.d@swipnet.se>
6377
6378 * nsfns.m (Fx_open_connection): Move initialization of ns_*_types
6379 to ns_term_init to avoid memory leak.
6380
6381 * nsterm.m (ns_update_begin): Initialize bp after lcokFocus, use
6382 explicit retain/release.
6383 (ns_term_init): Only allow one display. Initialize outerpool and
6384 ns_*_types.
6385
39a57ad0
PE
63862012-09-15 Paul Eggert <eggert@cs.ucla.edu>
6387
6388 Port _setjmp fix to POSIXish hosts as well as Microsoft.
6389 * image.c (_setjmp) [!HAVE__SETJMP]: Restore definition, as
6390 it's needed on POSIXish hosts that lack _setjmp. Attempt to solve
6391 the Microsoft problem in a different way, by altering ../nt/config.nt.
6392
7105c8cb
EZ
63932012-09-15 Eli Zaretskii <eliz@gnu.org>
6394
6395 * w32xfns.c:
6396 * w32uniscribe.c:
6397 * w32term.c:
6398 * w32select.c:
6399 * w32reg.c:
6400 * w32proc.c:
6401 * w32menu.c:
6402 * w32inevt.c:
6403 * w32heap.c:
6404 * w32font.c:
6405 * w32fns.c:
6406 * w32console.c:
6407 * w32.c:
6408 * w16select.c: Remove inclusion of setjmp.h, as it is now included
6409 by lisp.h. This completes removal of setjmp.h inclusion
6410 erroneously announced in the previous commit. (Bug#12446)
6411
6412 * lisp.h [!HAVE__SETJMP, !HAVE_SIGSETJMP]: Make the commentary
6413 more accurate.
6414
6415 * image.c (_setjmp) [!HAVE__SETJMP]: Define only if 'setjmp' is
6416 not defined as a macro. The latter happens on MS-Windows.
6417 (Bug#12446)
6418
0328b6de
PE
64192012-09-15 Paul Eggert <eggert@cs.ucla.edu>
6420
6421 Port better to POSIX hosts lacking _setjmp (Bug#12446).
6422 * lisp.h: Include <setjmp.h> here, since we use its symbols here.
7105c8cb 6423 Some instances of '#include <setjmp.h>' removed, if the
0328b6de
PE
6424 only reason for the instance was because "lisp.h" was included.
6425 (sys_jmp_buf, sys_setjmp, sys_longjmp): New symbols.
6426 Unless otherwise specified, replace all uses of jmp_buf, _setjmp,
6427 and _longjmp with the new symbols. Emacs already uses _setjmp if
6428 available, so this change affects only POSIXish hosts that have
6429 sigsetjmp but not _setjmp, such as some versions of Solaris and
6430 Unixware. (Also, POSIX-2008 marks _setjmp as obsolescent.)
6431 * image.c (_setjmp, _longjmp) [HAVE_PNG && !HAVE__SETJMP]: New macros.
6432 (png_load_body) [HAVE_PNG]:
6433 (PNG_LONGJMP) [HAVE_PNG && PNG_LIBPNG_VER < 10500]:
6434 (PNG_JMPBUF) [HAVE_PNG && PNG_LIBPNG_VER >= 10500]:
6435 Use _setjmp and _longjmp rather than sys_setjmp and sys_longjmp,
6436 since PNG requires jmp_buf. This is the only exception to the
6437 general rule that we now use sys_setjmp and sys_longjmp.
6438 This exception is OK since this code does not change the signal
6439 mask or longjmp out of a signal handler.
6440
2af03429
PE
64412012-09-14 Paul Eggert <eggert@cs.ucla.edu>
6442
6443 * alloc.c [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
6444 Include "syssignal.h", for 'main_thread'.
6445
2f294edf
DA
64462012-09-14 Dmitry Antipov <dmantipov@yandex.ru>
6447
6448 Avoid out-of-range marker position (Bug#12426).
3a880af4
SM
6449 * insdel.c (replace_range, replace_range_2):
6450 Adjust markers before overlays, as suggested by comments.
2f294edf
DA
6451 (insert_1_both, insert_from_buffer_1, adjust_after_replace):
6452 Remove redundant check before calling offset_intervals.
6453
6b533e9c
MR
64542012-09-14 Martin Rudalics <rudalics@gmx.at>
6455
6456 * xdisp.c (Fformat_mode_line): Unconditionally save/restore
6457 current buffer (Bug#12387).
6458
2a7931e3
JB
64592012-09-14 Juanma Barranquero <lekktu@gmail.com>
6460
6461 * makefile.w32-in ($(BLD)/alloc.$(O)): Update dependencies.
6462
c18e885b
PE
64632012-09-13 Paul Eggert <eggert@cs.ucla.edu>
6464
6465 Use a more backwards-compatible timer format (Bug#12430).
6466 * keyboard.c (decode_timer): Get PSECS from the 8th (origin-0)
6467 vector element, not from the 4th, since PSECS is now at the end.
6468 (Fcurrent_idle_time): Doc fix.
6469
d59a1afb
DA
64702012-09-13 Dmitry Antipov <dmantipov@yandex.ru>
6471
6472 Function to mark objects and remove killed buffers at once.
6473 * alloc.c (discard_killed_buffers): Rename to ...
6474 (mark_discard_killed buffers) ... new name. Add marking
6475 of remaining objects. Fix comment. Adjust users.
6476 (mark_object): Do not touch frame buffer lists here.
6477 * frame.c (delete_frame): Reset frame buffer lists here.
6478
5f0cb45a
PE
64792012-09-13 Paul Eggert <eggert@cs.ucla.edu>
6480
8ea47e3a
PE
6481 Better workaround for GNOME bug when --enable-gcc-warnings.
6482 * emacsgtkfixed.c (G_STATIC_ASSERT): Remove, undoing last change.
6483 Instead, disable -Wunused-local-typedefs. See Dmitry Antipov in
6484 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00335.html>.
6485
4a4bbad2
PE
6486 Simplify SIGIO usage (Bug#12408).
6487 The code that dealt with SIGIO was crufty and confusing, e.g., it
6488 played tricks like "#undef SIGIO" but these tricks were not used
6489 consistently. Simplify mostly by not #undeffing standard symbols,
6490 e.g., use "defined USABLE_SIGIO" (our symbol, which we can define
6491 or not as we please) rather than "defined SIGIO" (standard symbol
6492 that we probably shouldn't #undef).
6493 * conf_post.h [USG5_4]: Do not include <sys/wait.h> here.
6494 Modules that need it can include it.
6495 [USG5_4 && emacs]: Likewise, do not include the streams stuff here.
6496 * dispextern.h (ignore_sigio): New decl.
6497 * emacs.c (shut_down_emacs): Invoke unrequest_sigio
6498 unconditionally, since it's now a no-op if !USABLE_SIGIO.
6499 * emacs.c (shut_down_emacs):
6500 * keyboard.c (kbd_buffer_store_event_hold):
6501 Use ignore_sigio rather than invoking 'signal' directly.
6502 * keyboard.c (USABLE_FIONREAD && USG5_4): Include <sys/filio.h>,
6503 for FIONREAD.
6504 (FIONREAD, SIGIO): Do not #undef.
6505 (tty_read_avail_input): Use #error rather than a syntax error.
6506 * process.c [USG5_4]: Include <sys/stream.h> and <sys/stropts.h>,
6507 for I_PIPE, used by SETUP_SLAVE_PTY.
6508 (DATAGRAM_SOCKETS): Simplify defn, based on USABLE_FIONREAD.
6509 * sysdep.c (croak): Remove; no longer needed. This bit of
6510 temporary code, with Fred N. Fish's comment that it's temporary,
6511 has been in Emacs since at least 1992!
6512 (init_sigio, reset_sigio, request_sigio, unrequest_sigio):
6513 Arrange for them to be no-ops in all cases when ! USABLE_SIGIO.
6514 * syssignal.h (croak): Remove decl.
6515 (SIGIO, SIGPOO, SIGAIO, SIGPTY): Do not #undef; that's too fragile.
6516 * systty.h [!NO_TERMIO]: Do not include <termio.h>; no longer needed
6517 now that we're termios-only.
6518 (FIONREAD, ASYNC) [BROKEN_FIONREAD]: Do not #undef.
6519 * term.c (dissociate_if_controlling_tty): Use #error rather than
6520 a run-time error.
6521
5f0cb45a
PE
6522 Work around GCC and GNOME bugs when --enable-gcc-warnings.
6523 * emacsgtkfixed.c (G_STATIC_ASSERT): Redefine to use 'verify',
6524 to work around GNOME bug 683906.
6525 * image.c (jpeg_load_body) [HAVE_JPEG && lint]: Pacify gcc -Wclobber.
6526 (struct my_jpeg_error_mgr) [HAVE_JPEG && lint]: New member fp.
6527 This works around GCC bug 54561.
6528
40bce90b
PE
65292012-09-12 Paul Eggert <eggert@cs.ucla.edu>
6530
6531 More fixes for 'volatile' and setjmp/longjmp.
6532 * eval.c (Fdefvar, Fcondition_case): Remove unnecessary 'volatile's.
6533 * image.c (struct png_load_context) [HAVE_PNG]: New type.
6534 (png_load_body) [HAVE_PNG]:
6535 (jpeg_load_body) [HAVE_JPEG]:
6536 New function, with most of the old parent function's body.
6537 (png_load) [HAVE_PNG]:
6538 (jpeg_load) [HAVE_JPEG]:
6539 Invoke the new function, to avoid longjmp munging our locals.
6540 (struct my_jpeg_error_mgr) [HAVE_JPEG]: New members cinfo, failure_code.
6541 (my_error_exit) [HAVE_JPEG]: Don't trust 'setjmp' to return 2 when
6542 longjmp is passed 2, as the C standard doesn't guarantee this.
6543 Instead, store the failure code into mgr->failure_code.
6544
bfeae2cf
SM
65452012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
6546
6547 * keyboard.c (read_char, requeued_events_pending_p, Finput_pending_p)
6548 (Fdiscard_input, quit_throw_to_read_char, init_keyboard)
6549 (syms_of_keyboard): Remove support for unread-command-char.
6550
8099e36b
EZ
65512012-09-12 Eli Zaretskii <eliz@gnu.org>
6552
6553 * w32proc.c (sys_kill): If PID is our process ID and the signal is
6554 SIGABRT, call emacs_abort. Avoids silently exiting upon assertion
6555 violation. (Bug#12426)
6556
92547ff9
PE
65572012-09-12 Paul Eggert <eggert@cs.ucla.edu>
6558
6559 * image.c (jpeg_memory_src): Don't assume string len fits in unsigned.
6560
45b82ad0
SM
65612012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
6562
6563 * eval.c: Add `inhibit-debugger'.
6564 (Qinhibit_debugger): New symbol.
6565 (call_debugger): Bind it instead of Qdebug_on_error.
6566 (maybe_call_debugger): Test Vinhibit_debugger.
6567 (syms_of_eval): Define inhibit-debugger.
6568 * xdisp.c (set_message): Don't bind Qinhibit_debug_on_message.
6569 (syms_of_xdisp): Remove inhibit-debug-on-message.
6570
5779a1dc
PE
65712012-09-11 Paul Eggert <eggert@cs.ucla.edu>
6572
50f2e553
PE
6573 Avoid _setjmp/_longjmp problems with local nonvolatile variables.
6574 If a nonvolatile local variable is written before a _longjmp to
6575 the frame containing the variable, and is read after the _longjmp,
6576 the value read is indeterminate. Some local variables of type
6577 'struct handler' and 'struct catchtag' are used in this way, so
6578 mark each of their slots as volatile if the slot can be set before
6579 _longjmp and read afterwards.
6580 * lisp.h (struct handler): var and chosen_clause are now volatile.
6581 (struct catchtag): val, next, and pdlcount are now volatile.
6582
ae1d87e2
PE
6583 * bidi.c (bidi_push_it, bidi_pop_it):
6584 * fns.c (copy_hash_table):
6585 * image.c (define_image_type):
6586 * keyboard.c (kbd_buffer_store_event_hold):
6587 * process.c (Fprocess_send_eof):
6588 * xfaces.c (x_create_gc) [HAVE_NS]:
6589 * xgselect.c (xg_select):
6590 Prefer assignment to memcpy when either will do.
6591
5779a1dc
PE
6592 * alloc.c (discard_killed_buffers): Tune and simplify a bit.
6593 Use pointer-to-a-pointer to simplify and avoid a NILP check each
6594 time an item is removed. No need to mark this function 'inline';
6595 the compiler knows better than we do.
6596
c4c9756b
JD
65972012-09-11 Jan Djärv <jan.h.d@swipnet.se>
6598
6599 * nsterm.m (ns_judge_scroll_bars): Pass NO to updateFrameSize.
6600 (updateFrameSize:): Add delay parameter to updateFrameSize, send it
6601 to change_frame_size (Bug#12388).
6602 (windowDidResize:): Pass YES to updateFrameSize.
6603
6604 * nsterm.h: Add delay parameter to updateFrameSize.
6605
d73e321c
DA
66062012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
6607
6608 Discard killed buffers from deleted window and frame objects.
6609 This reduces an amount of references to killed buffers and
6610 helps GC to reclaim them faster.
6611 * alloc.c (discard_killed_buffers): New function.
6612 (mark_object): Use it for deleted windows and frames.
6613 (mark_object): If symbol's value is set up for a killed buffer
1f9f395d 6614 or deleted frame, restore its global binding.
d73e321c
DA
6615 * data.c (swap_in_global_binding): Add GC notice.
6616 (swap_in_symval_forwarding): Use convenient set_blv_where.
6617 * window.c (wset_next_buffers, wset_prev_buffers): Move ...
6618 * window.h: ... to here.
6619
e578f381
DA
66202012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
6621
6622 Convenient macro to check whether the buffer is live.
6623 * buffer.h (BUFFER_LIVE_P): New macro.
6624 * alloc.c, buffer.c, editfns.c, insdel.c, lread.c, marker.c:
6625 * minibuf.c, print.c, process.c, window.c, xdisp.c: Use it.
6626
3057e615
YM
66272012-09-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
6628
6629 * xdisp.c (right_overwritten, right_overwriting): Also handle gstring
6630 composition cases (Bug#12364).
6631
6632 * xterm.c (x_draw_glyph_string): Avoid overwriting inverted left
6633 overhang of succeeding glyphs overlapping box cursor.
6634
6635 * w32term.c (x_draw_glyph_string): Likewise.
6636
6fda35f2
PE
66372012-09-11 Paul Eggert <eggert@cs.ucla.edu>
6638
c990426a
PE
6639 Simplify, document, and port floating-point (Bug#12381).
6640 The porting part of this patch fixes bugs on non-IEEE platforms
6641 with frexp, ldexp, logb.
6642 * data.c, lisp.h (Qdomain_error, Qsingularity_error, Qunderflow_error):
6643 Now static.
6644 * floatfns.c: Simplify discussion of functions that Emacs doesn't
6645 support, by removing commented-out code and briefly listing the
6646 C89 functions excluded. The commented-out stuff was confusing
6647 maintenance, e.g., we thought we needed cbrt but it was commented out.
6648 (logb): Remove decl; no longer needed.
6649 (isfinite): New macro, if not already supplied.
6650 (isnan): Don't replace any existing macro.
6651 (Ffrexp, Fldexp): Define even if !HAVE_COPYSIGN, as frexp and ldexp
6652 are present on all C89 platforms.
6653 (Ffrexp): Do not special-case zero, as frexp does the right thing
6654 for that case.
6655 (Flogb): Do not use logb, as it doesn't have the desired meaning
6656 on hosts that use non-base-2 floating point. Instead, stick with
6657 frexp, which is C89 anyway. Do not pass an infinity or a NaN to
6658 frexp, to avoid getting an unspecified result.
6659
6fda35f2
PE
6660 * xdisp.c (Qinhibit_debug_on_message): Now static.
6661
16130a58
JD
66622012-09-10 Jan Djärv <jan.h.d@swipnet.se>
6663
6664 * nsterm.m (ns_update_begin): Set clip path to whole view by using
6665 NSBezierPath (Bug#12131).
6666
d105a573
CY
66672012-09-10 Chong Yidong <cyd@gnu.org>
6668
6669 * fns.c (Fdelq, Fdelete): Doc fix.
6670
ff55dfe8
PE
66712012-09-10 Paul Eggert <eggert@cs.ucla.edu>
6672
6673 * lisp.h (XSETINT, XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL)
6674 (XSETFLOAT, XSETMISC): Parenthesize macro bodies.
6675
e7032e7c
SM
66762012-09-09 Stefan Monnier <monnier@iro.umontreal.ca>
6677
6678 * lisp.h (make_lisp_ptr): New macro to replace XSET.
6679 (XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL, XSETFLOAT, XSETMISC):
6680 Use it.
6681
e9957956
EZ
66822012-09-09 Eli Zaretskii <eliz@gnu.org>
6683
aba05ce9
EZ
6684 * fringe.c (draw_fringe_bitmap_1): Don't reduce the width of the
6685 left fringe if the window has a left margin. This avoids leaving
6686 traces of the cursor because its leftmost pixel is not drawn over.
6687
e9957956
EZ
6688 * dispnew.c (update_window_line): When the left margin area of a
6689 screen line is updated, set the redraw_fringe_bitmaps_p flag of
6690 that screen line. (Bug#12277)
6691
f6196b87
PE
66922012-09-09 Paul Eggert <eggert@cs.ucla.edu>
6693
6694 Assume C89 or later for math functions (Bug#12381).
6695 This simplifies the code, and makes it a bit smaller and faster,
6696 and (most important) makes it easier to clean up signal handling
6697 since we can stop worring about floating-point exceptions in
6698 library code. That was a problem before C89, but the problem
6699 went away many years ago on all practical Emacs targets.
6700 * data.c, image.c, lread.c, print.c:
6701 Don't include <math.h>; no longer needed.
6702 * data.c, floatfns.c (IEEE_FLOATING_POINT): Don't worry that it
6703 might be autoconfigured, as that never happens.
6704 * data.c (fmod):
6705 * doprnt.c (DBL_MAX_10_EXP):
6706 * print.c (DBL_DIG):
6707 Remove. C89 or later always defines these.
6708 * floatfns.c (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CHECK_DOMAIN)
6709 (in_float, float_error_arg, float_error_arg2, float_error_fn_name)
6710 (arith_error, domain_error, domain_error2):
6711 Remove all this pre-C89 cruft. Do not include <errno.h> as that's
6712 no longer needed -- we simply return what C returns. All uses removed.
6713 (IN_FLOAT, IN_FLOAT2): Remove. All uses replaced with
6714 the wrapped code.
6715 (FLOAT_TO_INT, FLOAT_TO_INT2, range_error, range_error2):
6716 Remove. All uses expanded, as these macros are no longer used
6717 more than once and are now more trouble than they're worth.
6718 (Ftan): Use tan, not sin / cos.
6719 (Flogb): Assume C89 frexp.
6720 (fmod_float): Assume C89 fmod.
6721 (matherr) [HAVE_MATHERR]: Remove; no longer needed.
6722 (init_floatfns): Remove. All uses removed.
6723
9d7f1863
JD
67242012-09-08 Jan Djärv <jan.h.d@swipnet.se>
6725
6726 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Take back
6727 compositeToPoint for OSX < 10.6 (Bug#12390).
6728
eabf0404
PE
67292012-09-08 Paul Eggert <eggert@cs.ucla.edu>
6730
6731 * floatfns.c (Ftan): Use tan (x), not (sin (x) / cos (x)).
6732 This produces more-accurate results.
6733
0b3b1d23
JD
67342012-09-08 Jan Djärv <jan.h.d@swipnet.se>
6735
6736 * nsterm.m (updateFrameSize): Call setFrame: on the view when size
6737 changes (Bug#12088).
6738
6dcef6ec
CY
67392012-09-08 Chong Yidong <cyd@gnu.org>
6740
6741 * syntax.c (Fstring_to_syntax): Doc fix.
6742
aa7d57c5
JD
67432012-09-08 Jan Djärv <jan.h.d@swipnet.se>
6744
6745 * nsterm.m (ns_clip_to_row): Remove code that deals with drawing fringe
6746 in the internal border.
6747 (x_set_window_size): Remove static variables and their usage.
6748 (ns_redraw_scroll_bars): Fix NSTRACE arg.
3a880af4
SM
6749 (ns_after_update_window_line, ns_draw_fringe_bitmap):
6750 Remove fringe/internal border adjustment (Bug#11052).
aa7d57c5
JD
6751 (ns_draw_fringe_bitmap): Make code more like other terms (xterm.c).
6752 (ns_draw_window_cursor): Remove fringe/internal border adjustment.
6753 (ns_fix_rect_ibw): Remove.
6754 (ns_get_glyph_string_clip_rect): Remove call to ns_fix_rect_ibw.
6755 (ns_dumpglyphs_box_or_relief): Ditto.
6756 (ns_maybe_dumpglyphs_background): Remove fringe/internal border
6757 adjustment.
6758 (ns_dumpglyphs_image): Ditto.
fc0c31f8 6759 (ns_dumpglyphs_stretch): Fix coding style. Remove fringe/internal
aa7d57c5
JD
6760 border adjustment.
6761 (ns_set_vertical_scroll_bar): Remove variables barOnVeryLeft/Right and
6762 their usage. Add fringe_extended_p and its use as in other terms.
6763 (ns_judge_scroll_bars): Code style fix. Call updateFrameSize if
6764 scroll bar was removed.
6765 (updateFrameSize): New function.
6766 (windowDidResize): Move code to updateFrameSize and call it.
6767
6768 * nsterm.h (EmacsView): Add updateFrameSize.
6769
1a5432bc
CY
67702012-09-07 Chong Yidong <cyd@gnu.org>
6771
b4f5313e
CY
6772 * textprop.c (Fget_text_property): Minor doc fix (Bug#12323).
6773
1a5432bc
CY
6774 * data.c (Flocal_variable_if_set_p): Doc fix (Bug#10713).
6775
1a4f1e9b
PE
67762012-09-07 Paul Eggert <eggert@cs.ucla.edu>
6777
6778 More signal-handler cleanup (Bug#12327).
eddb36a7
PE
6779 * emacs.c (main): Convert three 'signal' calls to 'sigaction' calls.
6780 Problem introduced when merging patches. Noted by Eli Zaretskii in
6781 <http://bugs.gnu.org/12327#67>.
1a4f1e9b
PE
6782 * floatfns.c: Comment fix.
6783 * lisp.h (force_auto_save_soon): Declare regardless of SIGDANGER.
6784 SIGDANGER might not be in scope so "#ifdef SIGDANGER" is not right,
6785 and anyway the declaration is harmless even if SIGDANGER is not defined.
6786 * syssignal.h (SIGIO): Also #undef if (! defined FIONREAD ||
6787 defined BROKEN_FIONREAD). systty.h formerly did this, but other
6788 source files not surprisingly expected syssignal.h to define, or
6789 not define, SIGIO, and it's cleaner to do it that way, for consistency.
6790 Include <sys/ioctl.h>, for FIONREAD.
6791 * systty.h (SIGIO): Do not #undef here; it's now syssignal.h's job.
6792 This eliminates a problem whereby other files mysteriously had
6793 to include "syssignal.h" before including "systty.h" if they
6794 wanted to use "#ifdef SIGIO".
6795
bc8000ff
EZ
67962012-09-07 Eli Zaretskii <eliz@gnu.org>
6797
3e6d6928
EZ
6798 * w32proc.c (sigaction): New function, emulates Posix 'sigaction'.
6799
6800 * w32.c (sigemptyset): Empty the set.
6801 (sigsetmask, sigmask, sigblock, sigunblock): Remove unused functions.
6802
bc8000ff
EZ
6803 * alloc.c [ENABLE_CHECKING]: Include signal.h, since we need SIGABRT.
6804
b4fa72f2
DA
68052012-09-07 Dmitry Antipov <dmantipov@yandex.ru>
6806
6807 * alloc.c (mark_buffer): Revert unsafe marking optimization.
6808 (mark_object): Likewise for frame objects.
6809
30730c93
PE
68102012-09-07 Paul Eggert <eggert@cs.ucla.edu>
6811
6812 * syssignal.h (handle_on_main_thread): Always declare,
6813 even if FORWARD_SIGNAL_TO_MAIN_THREAD is not defined.
6814 This ports to platforms without HAVE_PTHREAD.
6815
2fe28299
PE
68162012-09-06 Paul Eggert <eggert@cs.ucla.edu>
6817
6818 Signal-handler cleanup (Bug#12327).
6819 Emacs's signal handlers were written in the old 4.2BSD style with
6820 sigblock and sigmask and so forth, and this led to some
6821 inefficiencies and confusion. Rewrite these to use
6822 pthread_sigmask etc. without copying signal sets around. Also,
6823 get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and
6824 'signal', and instead use functions that do not attempt to take
6825 over the system name space. This patch causes Emacs's text
6826 segment to shrink by 0.7% on my platform, Fedora 17 x86-64.
6827 * alloc.c, emacsgtkfixed.c, nsfns.m, widget.c, xmenu.c:
6828 Do not include <signal.h> or "syssignal.h", as these
6829 modules do not use signals.
6830 * atimer.c, callproc.c, data.c, dispnew.c, emacs.c, floatfns.c:
6831 * gtkutil.c, keyboard.c, process.c, sound.c, sysdep.c, term.c, xterm.c:
6832 Do not include <signal.h>, as "syssignal.h" does that for us now.
6833 * atimer.c (sigmask_atimers): New function.
6834 (block_atimers, unblock_atimers): New functions,
6835 replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS.
6836 All uses replaced.
6837 * conf_post.h [SIGNAL_H_AHB]: Do not include <signal.h>;
6838 no longer needed here.
6839 * emacs.c (main): Inspect existing signal handler with sigaction,
fc0c31f8 6840 so that there's no need to block and unblock SIGHUP.
2fe28299
PE
6841 * sysdep.c (struct save_signal): New member 'action', replacing
6842 old member 'handler'.
6843 (save_signal_handlers, restore_signal_handlers):
6844 Use sigaction instead of 'signal' to save and restore.
6845 (get_set_sighandler, set_sighandler) [!WINDOWSNT]:
6846 New function. All users of 'signal' modified to use set_sighandler
6847 if they're writeonly, and to use sys_signal if they're read+write.
6848 (emacs_sigaction_init, forwarded_signal): New functions.
6849 (sys_signal): Remove. All uses replaced by calls to sigaction
6850 and emacs_sigaction_init, or by direct calls to 'signal'.
6851 (sys_sigmask) [!__GNUC__]: Remove; no longer needed.
6852 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove;
6853 all uses replaced by pthread_sigmask etc. calls.
6854 * syssignal.h: Include <signal.h>.
6855 (emacs_sigaction_init, forwarded_signal): New decls.
6856 (SIGMASKTYPE): Remove. All uses replaced by its definiens, sigset_t.
6857 (SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask.
6858 (sigmask, sys_sigmask): Remove; no longer needed.
6859 (sigpause): Remove. All uses replaced by its definiens, sigsuspend.
6860 (sigblock, sigunblock, sigfree):
6861 (sigsetmask) [!defined sigsetmask]:
6862 Remove. All uses replaced by pthread_sigmask.
6863 (signal): Remove. Its remaining uses (with SIG_DFL and SIG_IGN)
6864 no longer need to be replaced, and its typical old uses
6865 are now done via emacs_sigaction_init and sigaction.
6866 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls.
6867 (sys_sigdel): Remove; unused.
6868 (NSIG): Remove a FIXME; the code's fine. Remove an unnecessary ifdef.
6869
0216c128
EZ
68702012-09-06 Eli Zaretskii <eliz@gnu.org>
6871
6872 * process.c (CAN_HANDLE_MULTIPLE_CHILDREN): Fix a typo that broke
6873 SIGCHLD handling on systems that don't have WNOHANG. (Bug#12327)
6874
c752cfa9
DA
68752012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
6876
6877 Explicitly mark buffer_defaults and buffer_local_symbols.
6878 * alloc.c (Fgarbage_collect): Mark buffer_defaults and
6879 mark_local_symbols here.
6880 (mark_object): If GC_CHECK_MARKED_OBJECTS, simplify checking
6881 since special buffers aren't marked here any more.
6882 (allocate_buffer): Chain new buffer with all_buffers here...
6883 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): ...and
6884 not here.
6885 (Vbuffer_defaults, Vbuffer_local_symbols): Remove.
6886 (syms_of_buffer): Remove staticpro of the above.
6887 (init_buffer_once): Set names for buffer_defaults and
6888 buffer_local_symbols.
6889
a864ef14
PE
68902012-09-06 Paul Eggert <eggert@cs.ucla.edu>
6891
6892 Use bool for booleans in font-related modules.
6893 * font.c (font_intern_prop, font_style_to_value)
6894 (font_style_symbolic, font_parse_xlfd, font_parse_fcname)
6895 (generate_otf_features, font_check_otf_features, font_check_otf)
6896 (font_match_p, font_list_entities, font_at):
6897 * fontset.c (fontset_id_valid_p, reorder_font_vector
6898 (fontset_find_font, Fset_fontset_font)
6899 (face_suitable_for_char_p) [0]:
6900 * ftfont.c (fc_initialized, ftfont_get_open_type_spec)
6901 (ftfont_open, ftfont_text_extents, ftfont_check_otf):
6902 (m17n_flt_initialized, ftfont_shape_by_flt):
6903 * ftxfont.c (ftxfont_draw_bitmap, ftxfont_draw):
6904 * nsfont.m (nsfont_draw):
6905 * w32font.c (w32font_draw):
6906 * w32term.c (x_draw_glyphless_glyph_string_foreground):
6907 Use bool for booleans.
6908 * font.h: Adjust to above API changes.
6909 (struct font, struct font_driver, struct font_driver_list):
6910 Use bool for booleans.
6911 (struct font): Remove useless member encoding_type.
6912 All users removed.
6913 * fontset.c, xftfont.c: Omit unnecessary static decls.
6914
0699fc18
DA
69152012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
6916
6917 * alloc.c (mark_object): Revert window marking code
6918 since it's unsafe for the Fset_window_configuration.
6919
20ef56db
PE
69202012-09-05 Paul Eggert <eggert@cs.ucla.edu>
6921
2fe28299 6922 Fix race conditions with signal handlers and errno (Bug#12327).
20ef56db
PE
6923 Be more systematic about preserving errno whenever a signal
6924 handler returns, even if it's not in the main thread. Do this by
6925 renaming signal handlers to distinguish between signal delivery
6926 and signal handling. All uses changed.
6927 * atimer.c (deliver_alarm_signal): Rename from alarm_signal_handler.
6928 * data.c (deliver_arith_signal): Rename from arith_error.
6929 * dispnew.c (deliver_window_change_signal): Rename from
6930 window_change_signal.
6931 * emacs.c (deliver_error_signal): Rename from fatal_error_signal.
6932 (deliver_danger_signal) [SIGDANGER]: Rename from memory_warning_signal.
6933 * keyboard.c (deliver_input_available_signal): Rename from
6934 input_available_signal.
6935 (deliver_user_signal): Rename from handle_user_signal.
6936 (deliver_interrupt_signal): Rename from interrupt_signal.
6937 * process.c (deliver_pipe_signal): Rename from send_process_trap.
6938 (deliver_child_signal): Rename from sigchld_handler.
6939 * atimer.c (handle_alarm_signal):
6940 * data.c (handle_arith_signal):
6941 * dispnew.c (handle_window_change_signal):
6942 * emacs.c (handle_fatal_signal, handle_danger_signal):
6943 * keyboard.c (handle_input_available_signal):
6944 * keyboard.c (handle_user_signal, handle_interrupt_signal):
6945 * process.c (handle_pipe_signal, handle_child_signal):
6946 New functions, with the actual signal-handling code taken from the
6947 original respective signal handlers, sans the sporadic attempts to
6948 preserve errno, since that's now done by handle_on_main_thread.
6949 * atimer.c (alarm_signal_handler): Remove unnecessary decl.
6950 * emacs.c, floatfns.c, lisp.h: Remove unused FLOAT_CATCH_SIGKILL cruft.
6951 * emacs.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
6952 Move to sysdep.c.
6953 (main) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
6954 Move initialization of main_thread to sysdep.c's init_signals.
6955 * process.c (waitpid) [!WNOHANG]: #define to wait; that's good enough for
6956 our usage, and simplifies the mainline code.
6957 (record_child_status_change): New static function, as a helper
6958 for handle_child_signal, and with most of the old child handler's
6959 contents.
6960 (CAN_HANDLE_MULTIPLE_CHILDREN): New constant.
6961 (handle_child_signal): Use the above.
6962 * sysdep.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
6963 Moved here from emacs.c.
6964 (init_signals) [FORWARD_SIGNAL_TO_MAIN_THREAD]: Initialize it;
6965 code moved here from emacs.c's main function.
6966 * sysdep.c, syssignal.h (handle_on_main_thread): New function,
3a880af4
SM
6967 replacing the old SIGNAL_THREAD_CHECK. All uses changed.
6968 This lets callers save and restore errno properly.
20ef56db 6969
e3ccf108
DA
69702012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
6971
6972 Remove redundant or unused things here and there.
6973 * lisp.h (CYCLE_CHECK, CHAR_TABLE_TRANSLATE): Remove.
6974 * conf_post.h (RE_TRANSLATE): Use char_table_translate.
6975 * editfns.c (Fcompare_buffer_substrings): Likewise.
6976 * frame.h (struct terminal, struct font_driver_list):
6977 Remove redundant declarations.
6978 * window.h (Qleft, Qright): Likewise.
6979
697e1e39
DA
69802012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
6981
6982 Do not mark objects from deleted buffers, windows and frames.
6983 * alloc.c (mark_buffer): Mark just the buffer if it is dead.
6984 (mark_object): Likewise for windows and frames.
6985
c1ca42ca
DA
69862012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
6987
6988 * alloc.c (valid_lisp_object_p): Treat killed buffers,
6989 buffer_defaults and buffer_local_symbols as valid objects.
6990 Return special value to denote them.
6991
014d93be
PE
69922012-09-05 Paul Eggert <eggert@cs.ucla.edu>
6993
f75d7a91
PE
6994 * fileio.c, filelock.c, floatfns.c, fns.c: Use bool for boolean.
6995 * fileio.c (auto_saving, auto_save_error_occurred, make_temp_name)
6996 (Fexpand_file_name, barf_or_query_if_file_exists, Fcopy_file)
6997 (file_name_absolute_p, Fsubstitute_in_file_name):
6998 (check_executable, check_writable, Ffile_accessible_directory_p)
6999 (Fset_file_selinux_context, Fdefault_file_modes)
7000 (Finsert_file_contents, choose_write_coding_system)
7001 (Fwrite_region, build_annotations, a_write, e_write)
7002 (Fdo_auto_save):
7003 * filelock.c (boot_time_initialized, get_boot_time)
7004 (get_boot_time_1, lock_file_1, within_one_second):
7005 * floatfns.c (in_float):
7006 * fns.c (concat, internal_equal, Frequire, base64_encode_1)
7007 (base64_decode_1, cmpfn_eql, cmpfn_user_defined)
7008 (sweep_weak_table, sweep_weak_hash_tables, secure_hash):
7009 * lisp.h (struct Lisp_Hash_Table.cmpfn):
7010 * window.c (compare_window_configurations):
7011 Use bool for booleans.
7012 * fileio.c (auto_saving_dir_umask, auto_saving_mode_bits)
7013 (Fdefault_file_modes): Now mode_t, not int, for modes.
7014 (Fdo_auto_save): Set a boolean to 1 rather than using ++.
7015 (internal_delete_file): Now returns void, not a (boolean) int,
7016 since nobody was looking at the return value.
7017 * lisp.h, window.h: Adjust to above API changes.
7018
014d93be
PE
7019 * xdisp.c (set_message): Simplify and reindent last change.
7020
776f29e1
JB
70212012-09-05 Juanma Barranquero <lekktu@gmail.com>
7022
7023 * makefile.w32-in ($(BLD)/sysdep.$(O)): Update dependencies.
7024
7f7e0167
LI
70252012-09-04 Lars Ingebrigtsen <larsi@gnus.org>
7026
7027 * eval.c (call_debugger): Make the function non-static so that we
7028 can call it from set_message.
7029
7030 * xdisp.c (set_message): Implement the new variable `debug-on-message'.
7031 (syms_of_xdisp): Defvar it and `inhibit-debug-on-message'.
7032
cf29dd84
PE
70332012-09-04 Paul Eggert <eggert@cs.ucla.edu>
7034
7035 Give more-useful info on a fatal error (Bug#12328).
7036 * alloc.c [ENABLE_CHECKING]: Do not include <execinfo.h>.
7037 (die) [ENABLE_CHECKING]: Call fatal_error_backtrace instead
7038 of doing the work ourselves.
7039 * emacs.c (fatal_error_signal): Let fatal_error_backtrace
7040 do most of the work.
7041 (fatal_error_backtrace): New function, taken from the guts
7042 of the old fatal_error_signal, but with a new option to output
7043 a backtrace.
7044 (shut_down_emacs) [!DOS_NT]: Use strsignal to give more-useful
7045 info about the signal than just its number.
7046 * lisp.h (fatal_error_backtrace, emacs_backtrace): New decls.
7047 * sysdep.c: Include <execinfo.h>
7048 (emacs_backtrace): New function, taken partly from the previous
7049 code of the 'die' function.
7050 (emacs_abort): Call fatal_error_backtrace rather than abort.
7051
972debf2
SM
70522012-09-04 Stefan Monnier <monnier@iro.umontreal.ca>
7053
7054 * lread.c (readevalloop): Call internal-macroexpand-for-load to perform
7055 eager (load-time) macro-expansion.
7056 * lisp.mk (lisp): Add macroexp.
7057
1088b922
PE
70582012-09-04 Paul Eggert <eggert@cs.ucla.edu>
7059
7060 Simplify redefinition of 'abort' (Bug#12316).
7061 Do not try to redefine the 'abort' function. Instead, redo
7062 the code so that it calls 'emacs_abort' rather than 'abort'.
7063 This removes the need for the NO_ABORT configure-time macro
7064 and makes it easier to change the abort code to do a backtrace.
7065 * .gdbinit: Just stop at emacs_abort, not at w32_abort or abort.
7066 * emacs.c (abort) [!DOS_NT && !NO_ABORT]:
7067 Remove; sysdep.c's emacs_abort now takes its place.
7068 * lisp.h (emacs_abort): New decl. All calls from Emacs code to
7069 'abort' changed to use 'emacs_abort'.
7070 * msdos.c (dos_abort) [defined abort]: Remove; not used.
7071 (abort) [!defined abort]: Rename to ...
7072 (emacs_abort): ... new name.
7073 * sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking
7074 the place of the old 'abort' in emacs.c.
7075 * w32.c, w32fns.c (abort): Do not #undef.
7076 * w32.c (emacs_abort): Rename from w32_abort.
7077
30934d33
EZ
70782012-09-04 Eli Zaretskii <eliz@gnu.org>
7079
7080 * w32uniscribe.c (uniscribe_shape): Reverse the sign of
7081 offsets[j].dv, since the y axis of the screen coordinates points
7082 down, while the y axis of the font definition coordinates points
7083 up. This fixes display of Arabic diacritics such as KASRA and
7084 KASRATAN. (Bug#11860)
7085
af26b72c
PE
70862012-09-04 Paul Eggert <eggert@cs.ucla.edu>
7087
7088 Be more systematic about _setjmp vs setjmp.
7089 * alloc.c (test_setjmp, mark_stack):
7090 * image.c (PNG_LONGJMP) [PNG_LIBPNG_VER < 10500]:
7091 (PNG_JMPBUF) [! (PNG_LIBPNG_VER < 10500)]:
7092 (png_load, my_error_exit, jpeg_load):
7093 * process.c (send_process_trap, send_process):
7094 Uniformly prefer _setjmp and _longjmp to setjmp and longjmp.
7095 The underscored versions are up to 30x faster on some hosts.
7096 Formerly, the code used setjmp+longjmp sometimes and
7097 _setjmp+_longjmp at other times, with no particular reason to
7098 prefer setjmp+longjmp.
7099
26d4541d
PE
71002012-09-03 Paul Eggert <eggert@cs.ucla.edu>
7101
d42f4f0f 7102 Fix minor problem found by static checking.
26d4541d 7103 * buffer.c (Fdelete_all_overlays): Return nil.
26d4541d 7104
c5e28e39
MR
71052012-09-03 Martin Rudalics <rudalics@gmx.at>
7106
7107 * buffer.c (Fdelete_all_overlays): New function.
7108
3eab3ca9
CY
71092012-09-03 Chong Yidong <cyd@gnu.org>
7110
7111 * gtkutil.c: Add extern decl for Qxft.
7112
c04889f8
PE
71132012-09-02 Paul Eggert <eggert@cs.ucla.edu>
7114
1882aa38
PE
7115 * emacs.c, eval.c: Use bool for boolean.
7116 * emacs.c (initialized, inhibit_window_system, running_asynch_code):
7117 (malloc_using_checking) [DOUG_LEA_MALLOC]:
7118 (display_arg) [HAVE_X_WINDOWS || HAVE_NS]:
7119 (noninteractive, no_site_lisp, fatal_error_in_progress, argmatch)
7120 (main, decode_env_path, Fdaemon_initialized):
7121 * eval.c (call_debugger, Finteractive_p, interactive_p):
7122 (unwind_to_catch, Fsignal, wants_debugger, skip_debugger)
7123 (maybe_call_debugger, Fbacktrace):
7124 * process.c (read_process_output, exec_sentinel):
7125 Use bool for booleans.
7126 * emacs.c (shut_down_emacs): Omit unused boolean argument NO_X.
7127 All callers changed.
7128 * eval.c (interactive_p): Omit always-true boolean argument
7129 EXCLUDE_SUBRS_P. All callers changed.
7130 * dispextern.h, lisp.h: Reflect above API changes.
7131 * firstfile.c (dummy): Use the address of 'main', whose signature
7132 won't change, instead of the address of 'initialize', whose
7133 signature just changed from int to bool.
7134 * lisp.h (fatal_error_in_progress): New decl of boolean, moved here ...
7135 * msdos.c (fatal_error_in_progress): ... from here.
7136 * xdisp.c (redisplaying_p): Now a boolean. Set it to 1 instead
7137 of incrementing it.
7138 (redisplay_internal, unwind_redisplay): Simply clear
7139 REDISPLAYING_P when unwinding, instead of saving its previous,
7140 always-false value and then restoring it.
7141
a411ac43
PE
7142 Clean up some extern decls.
7143 Mostly, this hoists extern decls out of .c files and into .h files.
7144 That way, we're more likely to catch errors if the interfaces change.
7145 * alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not
7146 declare xg_mark_data.
7147 * dispextern.h (x_frame_parm_handlers):
7148 * font.h (Qxft):
7149 * lisp.h (Qlexical_binding, Qinternal_interpreter_environment)
7150 (Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold)
7151 (Qultra_bold, Qoblique, Qitalic):
7152 Move extern decl here from .c file.
7153 * alloc.c (xg_mark_data) [USE_GTK]:
7154 * doc.c (Qclosure):
7155 * eval.c (Qlexical_binding):
7156 * fns.c (time) [!HAVE_UNISTD_H]:
7157 * gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light)
7158 (Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic):
7159 * image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]:
7160 * lread.c (Qinternal_interpreter_environment):
7161 * minibuf.c (Qbuffer):
7162 * process.c (QCfamily, QCfilter):
7163 * widget.c (free_frame_faces):
7164 * xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]:
7165 * xfont.c (x_clear_errors):
7166 * xterm.c (x_frame_parm_handlers):
7167 Remove now-redundant extern decls.
7168 * keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]:
7169 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic):
7170 Now static.
7171 * xfaces.c: Remove unnecessary static decls.
7172 * xterm.c (updating_frame): Remove decl of nonexistent object.
7173
c04889f8
PE
7174 * Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS)
7175 when building globals.h, as the objects that are not built on
7176 this host are not needed to compile C files on this host.
7177
8b339673
JD
71782012-09-02 Jan Djärv <jan.h.d@swipnet.se>
7179
7180 * gtkutil.h: Remove prototype for x_wm_set_size_hint.
7181
7182 * frame.h: Add missing prototype for x_wm_set_size_hint.
7183
a08d4ba7
PE
71842012-09-02 Paul Eggert <eggert@cs.ucla.edu>
7185
7186 * doc.c, editfns.c, insdel.c, intervals.c: Use bool for boolean.
7187 * doc.c (read_bytecode_char, get_doc_string, reread_doc_file)
7188 (Fdocumentation, Fdocumentation_property, Fsnarf_documentation)
7189 (Fsubstitute_command_keys):
7190 * editfns.c (region_limit, find_field, Fconstrain_to_field)
7191 (save_excursion_save, save_excursion_restore)
7192 (disassemble_lisp_time, decode_time_components, emacs_nmemftime)
7193 (format_time_string, general_insert_function)
7194 (make_buffer_string, make_buffer_string_both)
7195 (Fsubst_char_in_region, Ftranslate_region_internal, Fformat):
7196 * insdel.c (check_markers, gap_left, adjust_markers_for_insert)
7197 (copy_text, insert_1, insert_1_both, insert_from_string)
7198 (insert_from_string_before_markers, insert_from_string_1)
7199 (insert_from_buffer, insert_from_buffer_1, replace_range)
7200 (replace_range_2, del_range_1, del_range_byte, del_range_both)
7201 (del_range_2, modify_region):
7202 * intervals.c (intervals_equal, balance_possible_root_interval)
7203 (adjust_intervals_for_insertion, merge_properties_sticky)
7204 (graft_intervals_into_buffer, lookup_char_property)
7205 (adjust_for_invis_intang, set_point_both)
7206 (get_property_and_range, compare_string_intervals)
7207 (set_intervals_multibyte_1, set_intervals_multibyte):
7208 * keyboard.c (decode_timer):
7209 Use bool for boolean.
7210 * intervals.h, lisp.h, systime.h: Reflect above API changes.
7211 * editfns.c (struct info): Use 1-bit unsigned bitfields for booleans.
7212
48c948de
CY
72132012-09-02 Chong Yidong <cyd@gnu.org>
7214
7215 * keymap.c (push_key_description): Print M-TAB as C-M-i
7216 (Bug#11758).
7217
6c49a40b
JB
72182012-09-02 Juanma Barranquero <lekktu@gmail.com>
7219
7220 * makefile.w32-in (CCL_H, W32FONT_H): New macros.
7221 (ATIMER_H, FONT_H, $(BLD)/alloc.$(O), $(BLD)/callproc.$(O))
7222 ($(BLD)/editfns.$(O), $(BLD)/ccl.$(O), $(BLD)/chartab.$(O))
7223 ($(BLD)/coding.$(O), $(BLD)/sysdep.$(O), $(BLD)/fontset.$(O))
7224 ($(BLD)/sysdep.$(O), $(BLD)/w32fns.$(O), $(BLD)/keyboard.$(O))
7225 ($(BLD)/w32term.$(O), $(BLD)/w32menu.$(O), $(BLD)/process.$(O))
7226 ($(BLD)/w32font.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
7227
4dfbd238
EZ
72282012-09-01 Eli Zaretskii <eliz@gnu.org>
7229
7e510e28
EZ
7230 * w32uniscribe.c (uniscribe_shape): Handle correctly the case of
7231 more than one grapheme cluster passed to the shaper: compute the
7232 offset adjustment values separately for each cluster. (Bug#11860)
7233
4dfbd238
EZ
7234 * image.c: Restore mistakenly removed inclusion of w32.h. Without
7235 it, GCC doesn't see prototypes of w32_delayed_load, and complains
7236 about implicit conversions from integer to pointer.
7237
86571ae0
DC
72382012-09-01 Daniel Colascione <dancol@dancol.org>
7239
7240 * w32fns.c (x_display_info_for_name): Prevent crash if w32 window
7241 system used too early.
7242
0e23ef9d
PE
72432012-09-01 Paul Eggert <eggert@cs.ucla.edu>
7244
7245 Better seed support for (random).
7246 * emacs.c (main): Call init_random.
7247 * fns.c (Frandom): Set the seed from a string argument, if given.
7248 Remove long-obsolete Gentzel cruft.
7249 * lisp.h, sysdep.c (seed_random): Now takes address and size, not long.
7250 (init_random): New function.
7251
17a2cbbd
DC
72522012-09-01 Daniel Colascione <dancol@dancol.org>
7253
7254 * xterm.h: Add header guards. Declare x_menubar_window_to_frame.
7255 Remove x_set_frame_alpha, x_bitmap_icon, x_make_frame_visible,
7256 x_make_frame_invisible, x_iconify_frame, x_free_frame_resources,
7257 x_wm_set_size_hint, x_query_colors, x_real_positions,
7258 x_set_menu_bar_lines, x_char_width, x_char_height, x_sync,
7259 x_set_tool_bar_lines, x_activate_menubar, and free_frame_menubar,
7260 all of which have been moved to common code.
7261
7262 * xfaces.c: Include TERM_HEADER instead of listing all possible
7263 window-system headers.
7264
7265 * w32xfns.c (x_sync): Correct definition of x_sync (a no-op here)
7266 to match header.
7267
7268 * w32term.h (FRAME_X_WINDOW): Use FRAME_W32_WINDOW instead of
7269 directly accessing frame internals.
7270
f18cbb28 7271 * w32font.h: Include font.h. Define syms_of_w32font and
17a2cbbd
DC
7272 globals_of_w32font.
7273
7274 * process.c: Include TERM_HEADER instead of listing all possible
7275 window-system headers.
7276
3a880af4
SM
7277 * nsterm.h: Remove declarations now in frame.h.
7278 Define FRAME_X_SCREEN, FRAME_X_VISUAL.
17a2cbbd
DC
7279
7280 * menu.c: Include TERM_HEADER instead of listing all possible
7281 window-system headers.
7282
7283 * keyboard.h: Declare ignore_mouse_drag_p whenever we have a
7284 window system.
7285
7286 * keyboard.c: Include TERM_HEADER instead of listing all possible
7287 window-system headers.
7288
7289 * image.c: Include TERM_HEADER instead of listing all possible
7290 window-system headers. Declare Vlibrary_cache when compiling for
7291 Windows.
7292
7293 * gtkutil.h (xg_list_node_): Include xterm.h to pick up needed
7294 window system declarations.
7295
7296 * frame.h: Move common functions here: set_frame_menubar,
7297 x_set_window_size, x_sync, x_get_focus_frame,
7298 x_set_mouse_position, x_set_mouse_pixel_position,
7299 x_make_frame_visible, x_make_frame_invisible, x_iconify_frame,
7300 x_char_width, x_char_height, x_pixel_width, x_pixel_height,
7301 x_set_frame_alpha, x_set_menu_bar_lines, x_set_tool_bar_lines,
7302 x_activate_menubar, x_real_positions, x_bitmap_icon,
7303 x_set_menu_bar_lines, free_frame_menubar, x_free_frame_resources,
7304 and x_query_colors.
7305
7306 * frame.c: Include TERM_HEADER instead of listing all possible
7307 window-system headers.
7308
7309 * font.c: Include TERM_HEADER instead of listing all possible
7310 window-system headers.
7311
7312 * emacs.c: Include TERM_HEADER.
7313
f18cbb28
EZ
7314 * dispnew.c: Include TERM_HEADER instead of listing all possible
7315 window-system headers.
17a2cbbd 7316
f18cbb28 7317 * ccl.h: Include character.h.
17a2cbbd
DC
7318
7319 * Makefile.in: Define WINDOW_SYSTEM_OBJ to hold objects needed for
7320 the current window system; include in list of objects to link into
7321 Emacs.
7322
c650a5de
DA
73232012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
7324
7325 Remove mark_ttys function and fix tty_display_info initialization.
7326 * lisp.h (mark_ttys): Remove prototype.
7327 * alloc.c (Fgarbage_collect): Remove redundant (and the only) call
7328 to mark_ttys because all possible values of 'top_frame' slot are
7329 the frames which are reachable from Vframe_list.
7330 * term.c (mark_ttys): Remove.
7331 (init_tty): Safely initialize 'top_frame' slot with Qnil.
7332
4e0f6479
DA
73332012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
7334
7335 Change struct frame bitfields from unsigned char to unsigned.
7336 * frame.h (struct frame): Change type of 'display_preempted',
7337 'visible', 'iconified', 'has_minibuffer', 'wants_modeline',
7338 'auto_raise', 'auto_lower', 'no_split', 'explicit_name',
7339 'window_sizes_changed', 'mouse_moved' and 'pointer_invisible'
7340 bitfields from unsigned char to unsigned.
7341
8b96a52c
DA
73422012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
7343
7344 Remove unused member of struct x_output and struct w32_output.
7345 * xterm.h (struct x_output): Remove unused field 'needs_exposure'.
7346 * w32term.h (struct w32_output): Likewise.
7347
b4444c8a
JD
73482012-08-30 Jan Djärv <jan.h.d@swipnet.se>
7349
7350 * gtkutil.c (x_wm_set_size_hint): Use 1 col for base_width so it
7351 does not become zero (Bug#12234).
7352
b98521db
PE
73532012-08-30 Paul Eggert <eggert@cs.ucla.edu>
7354
7355 * dispnew.c (update_frame_1): Pacify gcc -Wstrict-overflow
7356 for GCC 4.7.1 x86-64.
7357
31d02438
GM
73582012-08-30 Glenn Morris <rgm@gnu.org>
7359
7360 * lread.c (init_lread): For out-of-tree builds, only add the
7361 source directory's site-lisp dir to the load-path if it exists,
7362 consistent with in-tree builds. (Bug#12302)
7363
7f8941d8
JD
73642012-08-28 Jan Djärv <jan.h.d@swipnet.se>
7365
7366 * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize
fc0c31f8 7367 button_values to NULL. Call setStykeMask so dialogs get a close button.
7f8941d8
JD
7368 (windowShouldClose:): Set window_closed.
7369 (dealloc): New member, free button_values.
fc0c31f8
JB
7370 (process_dialog:): Make member function. Remove window argument,
7371 replace window with self. Count buttons and allocate and store values
7f8941d8
JD
7372 in button_values.
7373 (addButton:value:row:): value is int with the name tag. Call setTag
fc0c31f8 7374 with tag. Remove return self, declare return value as void.
7f8941d8
JD
7375 (addString:row:): Remove return self, declare return value as void.
7376 (addSplit): Remove return self, declare return value as void.
7377 (clicked:): Remove return self, declare return value as void.
fc0c31f8 7378 Set dialog_return to button_values[seltag]. Code formatting change.
7f8941d8
JD
7379 (initFromContents:isQuestion:): Adjust call to process_dialog.
7380 Code formatting change.
7381 (timeout_handler:): Set timer_fired to YES.
7382 (runDialogAt:): Set timer_fired to NO.
7383 Handle click on close button as quit.
7384
7385 * nsterm.h (EmacsDialogPanel): Make timer_fired BOOL.
7386 Add window_closed and button_values. Add void as return value for
7387 add(Button|String|Split). addButton takes int instead of Lisp_Object.
7388 Add process_dialog as new member.
7389
eada0861 73902012-08-28 Eli Zaretskii <eliz@gnu.org>
19c17fc1 7391
eada0861
GM
7392 * ralloc.c (free_bloc): Don't dereference a 'heap' structure if it
7393 is not one of the heaps we manage. (Bug#12242)
7394
73952012-08-28 Glenn Morris <rgm@gnu.org>
7396
7397 * eval.c (Fcalled_interactively_p): Doc fix. (Bug#11747)
7398
457294dd
MR
73992012-08-28 Martin Rudalics <rudalics@gmx.at>
7400
7401 * window.c (Fset_window_configuration): Remove handling of
37b9743e
MR
7402 auto-buffer-name window parameter. Install revision of reverted
7403 fix.
457294dd 7404
4f2daf31
DA
74052012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
7406
7407 Do not allow to set major mode for a dead buffer.
7408 * buffer.c (Fset_buffer_major_mode): Signal an error
7409 if the buffer is dead.
7410 (Fother_buffer, other_buffer_safely): Remove redundant
7411 nested declaration.
7412
66322887
DA
74132012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
7414
7415 Always use set_buffer_if_live to restore original buffer at unwind.
7416 * buffer.h (record_unwind_current_buffer): New function.
7417 * bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c:
7418 * keyboard.c, keymap.c, minibuf.c, print.c, process.c, textprop.c:
7419 * undo.c, window.c: Adjust users.
7420 * buffer.c (set_buffer_if_live): Fix comment.
7421
a3d794a1
DA
74222012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
7423
7424 Fix usage of set_buffer_internal.
7425 * buffer.h (set_buffer_internal): Make it BUFFER_INLINE.
7426 * buffer.c (set_buffer_if_live): Use set_buffer_internal.
7427 * coding.c (decode_coding): Omit redundant test.
7428 * fileio.c (decide_coding_unwind): Likewise.
7429 * fns.c (secure_hash): Likewise.
7430 * insdel.c (modify_region): Likewise.
7431 * keyboard.c (command_loop_1): Likewise.
7432 * print.c (PRINTFINISH): Likewise.
7433 * xdisp.c (run_window_scroll_functions): Use set_buffer_internal.
7434
59ea14cd
PE
74352012-08-27 Paul Eggert <eggert@cs.ucla.edu>
7436
7437 * dispnew.c: Use bool for boolean.
7438 (frame_garbaged, display_completed, delayed_size_change)
7439 (fonts_changed_p, add_window_display_history)
7440 (add_frame_display_history, verify_row_hash)
7441 (adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p)
7442 (row_equal_p, realloc_glyph_pool)
7443 (allocate_matrices_for_frame_redisplay)
7444 (showing_window_margins_p)
7445 (adjust_frame_glyphs_for_frame_redisplay)
7446 (build_frame_matrix_from_leaf_window, make_current)
7447 (mirrored_line_dance, mirror_line_dance, update_frame)
7448 (update_window_tree, update_single_window)
7449 (check_current_matrix_flags, update_window, update_text_area)
7450 (update_window_line, set_window_update_flags, scrolling_window)
7451 (update_frame_1, scrolling, buffer_posn_from_coords)
7452 (do_pending_window_change, change_frame_size)
7453 (change_frame_size_1, sit_for):
7454 Use bool for boolean.
7455 (clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows,
7456 and remove last int (actually boolean) argument, which was always 0.
7457 All callers changed.
7458 * dispextern.h, frame.h, lisp.h: Reflect above API changes.
7459 * dispextern.h (struct composition_it): Use bool for boolean.
7460 (struct glyph_matrix): Don't assume buffer sizes can fit in 'int'.
7461 (struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf.
7462 * dired.c (file_name_completion):
7463 Use bool for boolean. (This was missed in an earlier change.)
7464
95072a94
MR
74652012-08-27 Martin Rudalics <rudalics@gmx.at>
7466
7467 * window.c (Fset_window_configuration): Revert first part of
7468 last change.
7469
0f19feff
JD
74702012-08-27 Jan Djärv <jan.h.d@swipnet.se>
7471
7472 * nsterm.h (NSPanel): New class variable dialog_return.
7473
3a880af4
SM
7474 * nsmenu.m (initWithContentRect:styleMask:backing:defer:):
7475 Initialize dialog_return.
0f19feff
JD
7476 (windowShouldClose:): Use stop instead of stopModalWithCode.
7477 (clicked:): Ditto, and also set dialog_return (Bug#12258).
7478 (timeout_handler:): Use stop instead of abortModal. Send a dummy
7479 event.
7480 (runDialogAt:): Make ret Lisp_Object. Set it from dialog_return when
7481 modal loop returns.
7482
f10fe38f
PE
74832012-08-27 Paul Eggert <eggert@cs.ucla.edu>
7484
de1339b0
PE
7485 * composite.c, data.c, dbusbind.c, dired.c: Use bool for booleans.
7486 * composite.c (find_composition, composition_gstring_p)
7487 (composition_reseat_it, find_automatic_composition):
7488 * data.c (let_shadows_buffer_binding_p)
7489 (let_shadows_global_binding_p, set_internal, make_blv)
7490 (Fmake_variable_buffer_local, Fmake_local_variable)
7491 (Fmake_variable_frame_local, arithcompare, cons_to_unsigned)
7492 (cons_to_signed, arith_driver):
7493 * dbusbind.c (xd_in_read_queued_messages):
7494 * dired.c (directory_files_internal, file_name_completion):
7495 Use bool for booleans.
7496 * dired.c (file_name_completion):
7497 * process.h (fd_callback):
7498 Omit int (actually boolean) argument. It wasn't being used.
7499 All uses changed.
7500 * composite.h, lisp.h: Reflect above API changes.
7501
f10fe38f
PE
7502 * cmds.c, coding.c: Use bool for booleans.
7503 * cmds.c (move_point, Fself_insert_command):
7504 * coding.h (struct composition status, struct coding_system):
7505 * coding.c (detect_coding_utf_8, encode_coding_utf_8)
7506 (detect_coding_utf_16, encode_coding_utf_16, detect_coding_emacs_mule)
7507 (emacs_mule_char, decode_coding_emacs_mule)
7508 (encode_coding_emacs_mule, detect_coding_iso_2022)
7509 (decode_coding_iso_2022, encode_invocation_designation)
7510 (encode_designation_at_bol, encode_coding_iso_2022)
7511 (detect_coding_sjis, detect_coding_big5, decode_coding_sjis)
7512 (decode_coding_big5, encode_coding_sjis, encode_coding_big5)
7513 (detect_coding_ccl, encode_coding_ccl, decode_coding_raw_text)
7514 (encode_coding_raw_text, detect_coding_charset)
7515 (decode_coding_charset, encode_coding_charset, detect_eol)
7516 (detect_coding, get_translation_table, produce_chars)
7517 (consume_chars, reused_workbuf_in_use)
7518 (make_conversion_work_buffer, code_conversion_save)
7519 (decode_coding_object, encode_coding_object)
7520 (detect_coding_system, char_encodable_p)
7521 (Funencodable_char_position, code_convert_region)
7522 (code_convert_string, code_convert_string_norecord)
7523 (Fset_coding_system_priority):
7524 * fileio.c (Finsert_file_contents):
7525 Use bool for booleans.
7526 * coding.h, lisp.h: Reflect above API changes.
7527 * coding.c: Remove unnecessary static function decls.
7528 (detect_coding): Use unsigned, not signed, to copy an unsigned field.
7529 (decode_coding, encode_coding, decode_coding_gap): Return 'void',
7530 not a boolean 'int', since callers never look at the return value.
7531 (ALLOC_CONVERSION_WORK_AREA): Assume caller returns 'void', not 'int'.
7532 * coding.h (decoding_buffer_size, encoding_buffer_size)
7533 (emacs_mule_string_char): Remove unused extern decls.
7534 (struct iso_2022_spec, struct coding_system):
7535 Use 'unsigned int : 1' for boolean fields, since there's more than one.
7536 (struct emacs_mule_spec): Remove unused field 'full_support'.
7537 All initializations removed.
7538 * cmds.c (internal_self_insert): Don't assume EMACS_INT fits in 'int'.
7539
5474c384
DA
75402012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
7541
f10fe38f 7542 Fix spare memory change (Bug#12286).
5474c384
DA
7543 * alloc.c (mark_maybe_pointer): Handle MEM_TYPE_SPARE.
7544 (valid_lisp_object_p): Likewise.
7545
c4b6914d
MR
75462012-08-27 Martin Rudalics <rudalics@gmx.at>
7547
7548 * window.c (Fset_window_configuration): Record any window's old
7549 buffer if it's replaced (see Bug#8789). If the new current
7550 buffer doesn't appear in the selected window, go to its old
7551 point (Bug#12208).
7552
35aaa1ea
DA
75532012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
7554
7555 Special MEM_TYPE_SPARE to denote reserved memory.
7556 * alloc.c (enum mem_type): New memory type.
7557 (refill_memory_reserve): Use new type for spare memory.
7558 This prevents live_cons_p and live_string_p from incorrect
7559 detection of uninitialized objects from spare memory as live.
7560
6af64513
PE
75612012-08-26 Paul Eggert <eggert@cs.ucla.edu>
7562
8b2e00a3
PE
7563 Spelling fixes.
7564 * Makefile.in (.PHONY): versioclean -> versionclean.
7565
b52d6985
PE
7566 Remove unused external symbols.
7567 * data.c (Qcons, Qfloat, Qmisc, Qstring, Qvector):
7568 * window.c (Qwindow_valid_p, decode_valid_window):
7569 Now static, not extern.
7570 * data.c (Qinterval): Remove; unused.
7571 (syms_of_data): Do not define 'interval'.
7572 * lisp.h (Qinteger, Qstring, Qmisc, Qvector, Qfloat, Qcons):
7573 * window.h (decode_valid_window):
7574 Remove decls.
7575
d5172d4f
PE
7576 * character.c, charset.c, chartab.c: Use bool for booleans.
7577 * character.c (lisp_string_width, string_count_byte8)
7578 (string_escape_byte8):
7579 * charset.c (charset_map_loaded, load_charset_map, read_hex):
7580 (load_charset_map_from_file, map_charset_chars)
7581 (Fdefine_charset_internal, define_charset_internal)
7582 (Fdeclare_equiv_charset, find_charsets_in_text)
7583 (Ffind_charset_region, char_charset, Fiso_charset):
7584 * chartab.c (sub_char_table_ref, sub_char_table_ref_and_range)
7585 (sub_char_table_set, sub_char_table_set_range)
7586 (char_table_set_range, optimize_sub_char_table)
7587 (map_sub_char_table):
7588 Use bool for boolean.
7589 * character.c (str_to_unibyte): Omit last boolean argument; it was
7590 always 0. All callers changed.
7591 * character.h, charset.h: Adjust to match previous changes.
7592 * character.h (char_printable_p): Remove decl of nonexistent function.
7593 * charset.h (struct charset): Members code_linear_p, iso_chars_96,
7594 ascii_compatible_p, supplementary_p, compact_codes_p, unified_p
7595 are all boolean, so make them single-bit bitfields.
7596
6af64513
PE
7597 * lisp.h (ASET): Remove attempt to detect side effects.
7598 It was meant to be temporary and it often doesn't work,
7599 because when IDX has side effects the behavior of IDX==IDX
7600 is undefined. See Stefan Monnier in
7601 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00762.html>.
7602
e1f29348
BR
76032012-08-26 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
7604
7605 * lisp.h (functionp): New function (extracted from Ffunctionp).
7606 (FUNCTIONP): Use it.
7607 * eval.c (Ffunctionp): Use it.
7608
17c05d74
PE
76092012-08-25 Paul Eggert <eggert@cs.ucla.edu>
7610
0f46bc75
PE
7611 * xgselect.c (xg_select): Use auto storage for the GPollFD buffer
7612 as that's faster and simpler than static storage. Don't bother
7613 with the g_main_context_query overhead if g_main_context_pending
7614 says no events are pending.
7615 (gfds, gfds_size): Remove these static vars.
7616 (xgselect_initialize): Remove; no longer needed.
7617 All uses and decls removed.
7618
ee4c0f69
PE
7619 * emacs.c (fatal_error_signal_hook): Remove.
7620 All uses removed. This leftover from old code was always 0.
7621
17c05d74
PE
7622 * casefiddle.c, casetab.c, category.c: Use bool for boolean.
7623 * casefiddle.c (casify_object, casify_region):
7624 * casetab.c (set_case_table):
7625 * category.c, category.h (word_boundary_p):
7626 * category.h (CHAR_HAS_CATEGORY):
7627 Use bool for booleans, instead of int.
7628
391ceac5
EZ
76292012-08-25 Eli Zaretskii <eliz@gnu.org>
7630
7631 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on $(GNU_LIB)/execinfo.h.
7632
2f221583
PE
76332012-08-25 Paul Eggert <eggert@cs.ucla.edu>
7634
f4a681b0
PE
7635 On assertion failure, print backtrace if available.
7636 * alloc.c [ENABLE_CHECKING]: Include <execinfo.h>.
7637 (die) [ENABLE_CHECKING]: Print a backtrace if available.
7638 * Makefile.in (LIB_EXECINFO): New macro.
7639 (LIBES): Use it.
7640
2f221583
PE
7641 * bytecode.c, callint.c, callproc.c: Use bool for boolean.
7642 * bytecode.c (exec_byte_code):
7643 * callint.c (check_mark, Fcall_interactively):
7644 * callproc.c (Fcall_process, add_env, child_setup, getenv_internal_1)
7645 (getenv_internal, sync_process_alive, call_process_exited):
7646 * lisp.h (USE_SAFE_ALLOCA):
7647 Use bool for booleans, instead of int.
7648 * lisp.h, process.h: Adjust prototypes to match above changes.
7649 * callint.c (Fcall_interactively): Don't assume the mark's
7650 offset fits in 'int'.
7651
37ef52bb
PE
76522012-08-24 Paul Eggert <eggert@cs.ucla.edu>
7653
7654 * buffer.c, buffer.h: Use bool for boolean.
7655 * buffer.c (reset_buffer_local_variables)
7656 (buffer_lisp_local_variables, Fset_buffer_modified_p)
7657 (Frestore_buffer_modified_p, Fset_buffer_multibyte):
7658 (overlays_at, overlays_in, mouse_face_overlay_overlaps)
7659 (overlay_touches_p, overlay_strings, Foverlay_put)
7660 (report_overlay_modification, call_overlay_mod_hooks):
7661 (mmap_enlarge, mmap_set_vars):
7662 * buffer.h (buffer_has_overlays, uppercasep, lowercasep):
7663 Use bool for booleans, instead of int.
7664 * buffer.c (compact_buffer, mmap_free_1): Return void, not int,
7665 since the 1-or-0 return value is always ignored anyway.
7666 (mmap_initialized_p):
7667 * buffer.h (struct buffer_text.inhibit_shrinking): Now bool, not int.
7668 * buffer.h, lisp.h: Adjust prototypes to match above changes.
7669
2cc21167
PE
76702012-08-23 Paul Eggert <eggert@cs.ucla.edu>
7671
7672 * bidi.c: Use bool for boolean.
7673 This is a bit more readable, and makes the text segment of bidi.o
7674 0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15).
7675 Presumably it's faster too.
7676 (bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level):
7677 Now bool.
7678 (bidi_cache_find_level_change, bidi_cache_iterator_state)
7679 (bidi_unshelve_cache, bidi_init_it, bidi_count_bytes)
7680 (bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init)
7681 (bidi_explicit_dir_char, bidi_level_of_next_char)
7682 (bidi_find_other_level_edge, bidi_move_to_visually_next):
7683 Use bool for booleans, instead of int.
7684 * dispextern.h (bidi_init_it, bidi_paragraph_init)
7685 (bidi_unshelve_cache): Adjust decls to match code.
7686
7db4ddf4
MR
76872012-08-23 Martin Rudalics <rudalics@gmx.at>
7688
7689 * keyboard.c (Fposn_at_x_y): Do not allow internal window as
7690 argument.
7691
b1bb8011
PE
76922012-08-23 Paul Eggert <eggert@cs.ucla.edu>
7693
7694 * atimer.c, atimer.h (turn_on_atimers): Use bool for boolean.
7695 * atimer.h: Include <stdbool.h>.
7696
ff687885
DN
76972012-08-22 Dan Nicolaescu <dann@gnu.org>
7698
7699 * frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_NS_P): Change to
7700 compile time tests instead of run time tests on systems that do
7701 not use them.
7702 (FRAME_MAC_P): Remove leftover from deleted code.
7703 * frame.c (syms_of_frame): Remove leftover from deleted code.
7704
4ce7a138
JD
77052012-08-22 Jan Djärv <jan.h.d@swipnet.se>
7706
7707 * nsterm.m (insertText:): Don't clear modifiers if code is space.
7708
d733ec6d
PE
77092012-08-22 Paul Eggert <eggert@cs.ucla.edu>
7710
7711 * fontset.c (FONTSET_ADD): Return void, not Lisp_Object.
7712 Otherwise, the compiler complains about (A?B:C) where B is void
fc0c31f8 7713 and C is Lisp_Object. This fixes an incompatibility with Sun C 5.12.
d733ec6d
PE
7714 (fontset_add): Return void, for FONTSET_ADD.
7715
d0d2d26f
PE
77162012-08-21 Paul Eggert <eggert@cs.ucla.edu>
7717
fce31d69
PE
7718 * alloc.c: Use bool for booleans.
7719 (gc_in_progress, abort_on_gc)
7720 (setjmp_tested_p) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
7721 (dont_register_blocks) [GC_MALLOC_CHECK]:
7722 (suppress_checking) [ENABLE_CHECKING]: Now bool, not int.
7723 (check_string_bytes, make_specified_string, memory_full)
7724 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
7725 (live_misc_p, live_vector_p, live_buffer_p, mark_maybe_object)
7726 (mark_stack, valid_pointer_p, make_pure_string)
7727 (Fgarbage_collect, survives_gc_p, gc_sweep):
7728 Use bool for booleans, instead of int.
7729 (test_setjmp) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
7730 Remove unused local.
7731 * alloc.c (PURE_POINTER_P):
7732 * lisp.h (STRING_MULTIBYTE): Document that it returns a boolean.
7733 * editfns.c (Fformat):
7734 * fileio.c (Fexpand_file_name, Fsubstitute_in_file_name)
7735 (Fdo_auto_save):
7736 * fns.c (sweep_weak_table):
7737 * lisp.h (suppress_checking, push_message, survives_gc_p)
7738 (make_pure_string, gc_in_progress, abort_on_gc):
7739 * lread.c (readchar, read1):
7740 * print.c (Fprin1_to_string):
7741 * xdisp.c (push_message):
7742 Use bool for booleans affected directly or indirectly by
7743 alloc.c's changes.
7744
d0d2d26f
PE
7745 Make recently-introduced setters macros.
7746 * fontset.c (set_fontset_id, set_fontset_name, set_fontset_ascii)
7747 (set_fontset_base, set_fontset_frame, set_fontset_nofont_face)
7748 (set_fontset_default, set_fontset_fallback): Rename from their
7749 upper-case counterparts, and make them functions rather than macros.
7750 This is more consistent with the other recently-introduced setters.
7751 These don't need to be inline, since they're local.
7752
d18e2bb6
JD
77532012-08-21 Jan Djärv <jan.h.d@swipnet.se>
7754
7755 * nsterm.m (fd_handler:): Alloc and release a NSAutoreleasePool in
7756 the loop (Bug#12247).
7757
1b9d9d16
PE
77582012-08-21 Paul Eggert <eggert@cs.ucla.edu>
7759
7760 * lisp.h (vcopy): Use memcpy rather than our own loop.
7761 This fixes a performance regression introduced by the recent
7762 addition of vcopy. This means 'vcopy' will need to be modified
7763 for a copying collector, but that's OK. Also, tighten the
7764 checking in the assertion.
7765
b2f09701
EZ
77662012-08-21 Eli Zaretskii <eliz@gnu.org>
7767
7768 * w32uniscribe.c (uniscribe_shape): Fix producing gstring
7769 components for RTL text (Bug#11860). Adjust X-OFFSET of each
7770 non-base glyph for the width of the base character, according to
e1f29348
BR
7771 what x_draw_composite_glyph_string_foreground expects.
7772 Generate WADJUST value according to composition_gstring_width's
b2f09701
EZ
7773 expectations, to produce correct width of the composed character.
7774 Reverse the sign of the DU offset produced by ScriptPlace.
7775
9b994fed
PE
77762012-08-21 Paul Eggert <eggert@cs.ucla.edu>
7777
7778 * dbusbind.c (xd_remove_watch): Do not assume C99 comments.
7779
086ca913
DA
77802012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
7781
7782 Avoid direct writes to contents member of struct Lisp_Vector.
7783 * lisp.h (vcopy): New function to copy data into vector.
7784 * dispnew.c (Fframe_or_buffer_changed_p): Use AREF and ASET.
7785 * fns.c (Ffillarray): Use ASET.
7786 * keyboard.c (timer_check_2): Use AREF and ASET.
7787 (append_tool_bar_item, Frecent_keys): Use vcopy.
7788 * lread.c (read_vector): Use ASET.
7789 * msdos.c (Frecent_doskeys): Use vcopy.
7790 * xface.c (Finternal_copy_lisp_face): Use vcopy.
7791 (Finternal_merge_in_global_face): Use ASET and vcopy.
7792 * xfont.c (xfont_list_pattern): Likewise.
7793
5481664a
MR
77942012-08-21 Martin Rudalics <rudalics@gmx.at>
7795
7796 * window.c (Fwindow_point): For the selected window always return
7797 the position of its buffer's point.
7798 (Fset_window_point): For the selected window always go in its
7799 buffer to the specified position.
7800
6d470bdd
DA
78012012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
7802
7803 Setter macros for fontsets.
7804 * fontset.c (SET_FONTSET_ID, SET_FONTSET_NAME, SET_FONTSET_ASCII)
7805 (SET_FONTSET_BASE, SET_FONTSET_FRAME, SET_FONTSET_NOFONT_FACE)
7806 (SET_FONTSET_DEFAULT, SET_FONTSET_FALLBACK): New macros.
7807 Adjust users.
7808
24564fe1
GM
78092012-08-20 Glenn Morris <rgm@gnu.org>
7810
7811 * Makefile.in (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
7812 Don't assume that `ln -f' works.
7813
0a05a035
EZ
78142012-08-20 Eli Zaretskii <eliz@gnu.org>
7815
7816 * .gdbinit: Use "set $dummy = ..." to avoid warnings from GDB 7.5
7817 and later about non-assignments with no effect. See discussion at
7818 http://sourceware.org/ml/gdb-patches/2012-08/msg00518.html for
7819 details.
7820
e46f2325
DA
78212012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
7822
7823 Inline setter functions for Lisp_Objects slots of struct specbinding.
7824 * eval.c (set_specpdl_symbol, set_specpdl_old_value): New functions.
7825 Adjust users.
7826
734fbd86
MR
78272012-08-20 Martin Rudalics <rudalics@gmx.at>
7828
7829 * window.c (select_window): Always make selected window's buffer
7830 current.
7831
f1a95992
DA
78322012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
7833
7834 Use AREF and ASET for docstrings of category tables.
7835 * category.h (CATEGORY_DOCSTRING): Use AREF.
7836 (SET_CATEGORY_DOCSTRING): Use ASET.
7837 * category.c (Fdefine_category): Use SET_CATEGORY_DOCSTRING.
7838
e83064be
DA
78392012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
7840
7841 Inline setter functions for hash table members.
7842 * lisp.h (set_hash_key, set_hash_value, set_hash_next)
7843 (set_hash_hash, set_hash_index): Rename with _slot suffix.
7844 (set_hash_key_and_value, set_hash_index, set_hash_next)
7845 (set_hash_hash): New functions.
7846 * charset.c, fns.c: Adjust users.
7847
4ce60d2e
DA
78482012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
7849
7850 Inline getter and setter functions for per-buffer values.
7851 * buffer.h (per_buffer_default, set_per_buffer_default)
7852 (per_buffer_value, set_per_buffer_value): New functions.
7853 (PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove.
7854 * buffer.c, data.c: Adjust users.
7855
c06c9690
JB
78562012-08-20 Juanma Barranquero <lekktu@gmail.com>
7857
7858 * makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies.
7859
32bd4250
PE
78602012-08-19 Paul Eggert <eggert@cs.ucla.edu>
7861
bad03192 7862 Rely on <config.h> + <unistd.h> to declare 'environ',
b69a6d22
PE
7863 as gnulib does this if the system doesn't.
7864 * callproc.c, editfns.c, process.c (environ) [!USE_CRT_DLL]:
72279493
EZ
7865 Remove declaration. MS-Windows declares it on stdlib.h which is
7866 included by conf_post.h.
b69a6d22
PE
7867 * emacs.c (environ) [DOUG_LEA_MALLOC]:
7868 * vm-limit.c (environ) [ORDINARY_LINK]: Remove decl.
7869 * vm-limit.c: Include <unistd.h>, for 'environ'.
7870
22d7feb2
PE
7871 * unexaix.c, unexcoff.c: Include "mem-limits.h".
7872 (start_of_data): Remove decl; mem-limits.h provides it.
7873
32bd4250
PE
7874 * xdisp.c (handle_invisible_prop): Make it a bit faster
7875 and avoid a gcc -Wmaybe-uninitialized diagnostic.
7876
450809af
CY
78772012-08-19 Chong Yidong <cyd@gnu.org>
7878
7879 * xdisp.c (handle_invisible_prop): Fix ellipses at overlay string
7880 ends (Bug#3874).
7881
9e677988
AS
78822012-08-19 Andreas Schwab <schwab@linux-m68k.org>
7883
6b1319ce
AS
7884 * .gdbinit: Use call instead of set when calling a function in the
7885 inferior.
7886
9e677988
AS
7887 * data.c (set_internal): Don't use set_blv_found.
7888 (Fkill_local_variable): Likewise.
7889
d7191076
AA
78902012-08-18 Alp Aker <alp.tekin.aker@gmail.com>
7891
7892 * nsfont.m (ns_ascii_average_width): Ensure the string
7893 ascii_printable is initialized with a null-terminated character
7894 array. Otherwise, it can contain undesired extra characters.
7895
e757f1c6
PE
78962012-08-18 Paul Eggert <eggert@cs.ucla.edu>
7897
7898 port new setting code to Sun C 5.8 2005/10/13
7899 * chartab.c, lisp.h (char_table_set, char_table_set_range):
7900 Return void, not Lisp_Object. Otherwise, the compiler
7901 complains about (A?B:C) where B is void and C is Lisp_Object
7902 when compiling CHAR_TABLE_SET, due to the recent change to
7903 the API of sub_char_table_set_contents.
7904
a999ce26
CY
79052012-08-18 Chong Yidong <cyd@gnu.org>
7906
7907 * xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE
7908 for the string case (Bug#3874).
7909
3f22b86f
PE
79102012-08-18 Paul Eggert <eggert@cs.ucla.edu>
7911
39eb03f1
PE
7912 * buffer.h (BSET): Remove (Bug#12215).
7913 Replace all uses with calls to new setter functions.
7914 (bset_bidi_paragraph_direction, bset_case_canon_table)
7915 (bset_case_eqv_table, bset_directory, bset_display_count)
7916 (bset_display_time, bset_downcase_table)
7917 (bset_enable_multibyte_characters, bset_filename, bset_keymap)
7918 (bset_last_selected_window, bset_local_var_alist)
7919 (bset_mark_active, bset_point_before_scroll, bset_read_only)
7920 (bset_truncate_lines, bset_undo_list, bset_upcase_table)
7921 (bset_width_table):
7922 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
7923 (bset_auto_fill_function, bset_auto_save_file_format)
7924 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
7925 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
7926 (bset_cache_long_line_scans, bset_case_fold_search)
7927 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
7928 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
7929 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
7930 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
7931 (bset_header_line_format, bset_indicate_buffer_boundaries)
7932 (bset_indicate_empty_lines, bset_invisibility_spec)
7933 (bset_left_fringe_width, bset_major_mode, bset_mark)
7934 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
7935 (bset_name, bset_overwrite_mode, bset_pt_marker)
7936 (bset_right_fringe_width, bset_save_length)
7937 (bset_scroll_bar_width, bset_scroll_down_aggressively)
7938 (bset_scroll_up_aggressively, bset_selective_display)
7939 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
7940 (bset_word_wrap, bset_zv_marker):
7941 * category.c (bset_category_table):
7942 * syntax.c (bset_syntax_table):
7943 New setter functions.
7944
6a09a33b
PE
7945 * process.h (PSET): Remove (Bug#12215).
7946 Replace all uses with calls to new setter functions.
7947 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
7948 (PROCESS_INLINE): New macro.
7949 (pset_childp): New setter function.
7950 (pset_gnutls_cred_type) [HAVE_GNUTLS]: New setter function.
7951 * process.c (PROCESS_INLINE):
7952 Define to EXTERN_INLINE, so that the corresponding functions
7953 are compiled into code.
7954 (pset_buffer, pset_command, pset_decode_coding_system)
7955 (pset_decoding_buf, pset_encode_coding_system)
7956 (pset_encoding_buf, pset_filter, pset_log, pset_mark, pset_name)
7957 (pset_plist, pset_sentinel, pset_status, pset_tty_name)
7958 (pset_type, pset_write_queue): New setter functions.
7959
e8c17b81
PE
7960 * window.h (WSET): Remove (Bug#12215).
7961 Replace all uses with calls to new setter functions.
7962 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
7963 (WINDOW_INLINE): New macro.
7964 (wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev)
7965 (wset_redisplay_end_trigger, wset_top_line, wset_total_cols)
7966 (wset_total_lines, wset_vertical_scroll_bar)
7967 (wset_window_end_pos, wset_window_end_valid)
7968 (wset_window_end_vpos): New setter functions.
7969 * window.c (WINDOW_INLINE):
7970 Define to EXTERN_INLINE, so that the corresponding functions
7971 are compiled into code.
7972 (wset_combination_limit, wset_dedicated, wset_display_table)
7973 (wset_hchild, wset_left_fringe_width, wset_left_margin_cols)
7974 (wset_new_normal, wset_new_total, wset_next_buffers)
7975 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
7976 (wset_prev_buffers, wset_right_fringe_width)
7977 (wset_right_margin_cols, wset_scroll_bar_width, wset_start)
7978 (wset_temslot, wset_vchild, wset_vertical_scroll_bar_type)
7979 (wset_window_parameters):
7980 * xdisp.c (wset_base_line_number, wset_base_line_pos)
7981 (wset_column_number_displayed, wset_region_showing):
7982 New setter functions.
7983
3f22b86f
PE
7984 * termhooks.h (TSET): Remove (Bug#12215).
7985 Replace all uses with calls to new setter functions.
7986 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
7987 (TERMHOOKS_INLINE): New macro.
7988 (tset_charset_list, tset_selection_alist): New setter functions.
7989 * terminal.c (TERMHOOKS_INLINE):
7990 Define to EXTERN_INLINE, so that the corresponding functions
7991 are compiled into code.
7992 (tset_param_alist): New setter function.
7993
742af32f
PE
79942012-08-17 Paul Eggert <eggert@cs.ucla.edu>
7995
15dbb4d6
PE
7996 * keyboard.h (KSET): Remove (Bug#12215).
7997 Replace all uses with calls to new setter functions.
7998 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
7999 (KEYBOARD_INLINE): New macro.
8000 (kset_default_minibuffer_frame, kset_defining_kbd_macro)
8001 (kset_input_decode_map, kset_last_command, kset_last_kbd_macro)
8002 (kset_prefix_arg, kset_system_key_alist, kset_window_system):
8003 New setter functions.
8004 * keyboard.c (KEYBOARD_INLINE):
8005 Define to EXTERN_INLINE, so that the corresponding functions
8006 are compiled into code.
8007 (kset_echo_string, kset_kbd_queue)
8008 (kset_keyboard_translate_table, kset_last_prefix_arg)
8009 (kset_last_repeatable_command, kset_local_function_key_map)
8010 (kset_overriding_terminal_local_map, kset_real_last_command)
8011 (kset_system_key_syms): New setter functions.
8012
f00af5b1
PE
8013 * frame.h (FSET): Remove (Bug#12215).
8014 Replace all uses with calls to new setter functions.
8015 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
8016 (FRAME_INLINE): New macro.
8017 (fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars)
8018 (fset_current_tool_bar_string, fset_desired_tool_bar_string)
8019 (fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items)
8020 (fset_menu_bar_vector, fset_menu_bar_window, fset_name)
8021 (fset_param_alist, fset_root_window, fset_scroll_bars)
8022 (fset_selected_window, fset_title, fset_tool_bar_items)
8023 (fset_tool_bar_position, fset_tool_bar_window): New functions.
8024 * frame.c (FRAME_INLINE):
8025 Define to EXTERN_INLINE, so that the corresponding functions
8026 are compiled into code.
8027 (fset_buffer_predicate, fset_minibuffer_window): New setter functions.
8028
0c94c8d6
PE
8029 A few more naming-convention fixes for getters and setters.
8030 * buffer.c (set_buffer_overlays_before): Move here from buffer.h,
8031 and rename from buffer_overlays_set_before.
8032 (set_buffer_overlays_after): Move here from buffer.h, and rename
8033 from buffer_overlays_set_after.
8034 * buffer.h (buffer_intervals): Rename from buffer_get_intervals.
8035 All uses changed.
8036 (set_buffer_intervals): Rename from buffer_set_intervals.
8037 * intervals.c (set_interval_object): Move here from intervals.h,
8038 and rename from interval_set_object.
8039 (set_interval_left): Move here from intervals.h, and rename from
8040 interval_set_left.
8041 (set_interval_right): Move here from intervals.h, and rename from
8042 interval_set_right.
8043 (copy_interval_parent): Move here from intervals.h, and rename from
8044 interval_copy_parent.
8045 * intervals.h (set_interval_parent): Rename from interval_set_parent.
8046 (set_interval_plist): Rename from interval_set_plist.
8047 Return void, not Lisp_Object, since no caller uses the result.
8048 * lisp.h (string_intervals): Rename from string_get_intervals.
8049 (set_string_intervals): Rename from string_set_intervals.
8050
34dabdb7
PE
8051 * lisp.h (set_char_table_extras): Rename from char_table_set_extras.
8052 (set_char_table_contents): Rename from char_table_set_contents.
0b390a9d 8053 (set_sub_char_table_contents): Rename from sub_char_table_set_contents.
34dabdb7
PE
8054 All uses changed. See the end of
8055 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00549.html>.
8056
742af32f
PE
8057 * lisp.h (CSET): Remove (Bug#12215).
8058 (set_char_table_ascii, set_char_table_defalt, set_char_table_parent)
8059 (set_char_table_purpose): New functions,
8060 replacing CSET. All uses changed. For example, replace
8061 "CSET (XCHAR_TABLE (char_table), parent, parent);" with
c24eb18a 8062 "set_char_table_parent (char_table, parent);".
742af32f
PE
8063 The old version was confusing because it used the same name
8064 'parent' for two different things.
8065
a04e2c62
DA
80662012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
8067
8068 Functions to get and set Lisp_Object fields of buffer-local variables.
8069 * lisp.h (blv_found, set_blv_found, blv_value, set_blv_value)
8070 (set_blv_where, set_blv_defcell, set_blv_valcell): New functions.
8071 (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove.
8072 * data.c, eval.c, frame.c: Adjust users.
8073
383dcbf9
CY
80742012-08-17 Chong Yidong <cyd@gnu.org>
8075
8076 * xfaces.c (merge_face_vectors): If the target font specfies a
8077 font spec, make the font's attributes take precedence over
8078 directly-specified attributes.
8079 (merge_face_ref): Recognize :font.
8080
44386687
DA
80812012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
8082
8083 Do not use memcpy for copying intervals.
8084 * intervals.c (reproduce_interval): New function.
8085 (reproduce_tree, reproduce_tree_obj): Use it.
8086 (reproduce_tree_obj): Remove prototype.
8087
927c7216
PE
80882012-08-17 Paul Eggert <eggert@cs.ucla.edu>
8089
8090 * lisp.h (duration_to_sec_usec): Remove unused decl.
8091
93044f7b
AA
80922012-08-17 Alp Aker <alp.tekin.aker@gmail.com>
8093
8094 * nsfont.m (ns_ascii_average_width): Send initWithFormat selector
8095 to an allocated instance of NSString, not to the class itself.
8096
9851e4a5
JB
80972012-08-17 Juanma Barranquero <lekktu@gmail.com>
8098
8099 * makefile.w32-in (C_CTYPE_H): New macro.
8100 (LISP_H, $(BLD)/ccl.$(O), $(BLD)/doc.$(O), $(BLD)/w32console.$(O)):
8101 ($(BLD)/fontset.$(O), $(BLD)/frame.$(O), $(BLD)/composite.$(O)):
8102 ($(BLD)/sysdep.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
8103
620f13b0
PE
81042012-08-16 Paul Eggert <eggert@cs.ucla.edu>
8105
8106 Use ASCII tests for character types.
8107 * category.c, dispnew.c, doprnt.c, editfns.c, syntax.c, term.c:
8108 * xfns.c, xterm.c:
8109 Don't include <ctype.h>; was not needed.
8110 * charset.c, doc.c, fileio.c, font.c, frame.c, gtkutil.c, image.c:
8111 * sysdep.c, xfaces.c:
8112 Include <c-ctype.h> instead of <ctype.h>.
8113 * nsterm.m: Include <c-ctype.h>.
8114 * charset.c (read_hex):
8115 * doc.c (Fsnarf_documentation):
8116 * fileio.c (IS_DRIVE) [WINDOWSNT]:
8117 (DRIVE_LETTER) [DOS_NT]:
8118 (Ffile_name_directory, Fexpand_file_name)
8119 (Fsubstitute_in_file_name):
8120 * font.c (font_parse_xlfd, font_parse_fcname):
8121 * frame.c (x_set_font_backend):
8122 * gtkutil.c (xg_get_font):
8123 * image.c (xbm_scan, xpm_scan, pbm_scan_number):
8124 * nsimage.m (hexchar):
8125 * nsterm.m (ns_xlfd_to_fontname):
8126 * sysdep.c (system_process_attributes):
8127 * xfaces.c (hash_string_case_insensitive):
8128 Use C-locale tests instead of locale-specific tests for character
8129 types, since we want the ASCII interpretation here, not the
8130 interpretation suitable for whatever happens to be the current locale.
8131
52162052
MR
81322012-08-16 Martin Rudalics <rudalics@gmx.at>
8133
8134 Consistently check windows for validity/liveness
8135 (Bug#11984, Bug#12025, Bug#12026).
8136 * lisp.h (CHECK_VALID_WINDOW): New macro.
8137 * window.c (decode_window): Rename to decode_live_window.
8138 (decode_valid_window, Fwindow_valid_p): New functions.
8139 (Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p)
8140 (Fframe_first_window, Fframe_selected_window, Fwindow_parent)
8141 (Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling)
8142 (Fwindow_prev_sibling, Fwindow_combination_limit)
8143 (Fset_window_combination_limit, Fwindow_use_time)
8144 (Fwindow_total_height, Fwindow_total_width, Fwindow_new_total)
8145 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column)
8146 (Fwindow_top_line, Fwindow_body_height, Fwindow_body_width)
8147 (Fwindow_hscroll, Fset_window_hscroll)
8148 (Fwindow_redisplay_end_trigger)
8149 (Fset_window_redisplay_end_trigger, Fwindow_edges)
8150 (Fwindow_pixel_edges, Fwindow_absolute_pixel_edges)
8151 (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
8152 (Fcoordinates_in_window_p, Fwindow_point, Fwindow_start)
8153 (Fwindow_end, Fset_window_point, Fset_window_start)
8154 (Fpos_visible_in_window_p, Fwindow_line_height)
8155 (Fwindow_dedicated_p, Fset_window_dedicated_p)
8156 (Fwindow_prev_buffers, Fset_window_prev_buffers)
8157 (Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter)
8158 (Fset_window_parameter, Fwindow_display_table)
8159 (Fset_window_display_table, Fdelete_other_windows_internal)
8160 (Fset_window_buffer, Fset_window_new_total)
8161 (Fset_window_new_normal, Fdelete_window_internal)
8162 (Fwindow_text_height, Fset_window_margins, Fwindow_margins)
8163 (Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars)
8164 (Fwindow_scroll_bars): Check whether argument window is a valid or
8165 live window. Update doc-strings.
8166 (syms_of_window): New symbol Qwindow_valid_p.
8167 * keyboard.c (Fposn_at_x_y): Check whether argument
8168 frame_or_window denotes a valid window.
8169
2751c80f
DA
81702012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
8171
8172 Fix previous char table change.
8173 * lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
8174 * chartab.c (optimize_sub_char_table): Likewise.
8175
032a42c8
CY
81762012-08-16 Chong Yidong <cyd@gnu.org>
8177
a2d19368
CY
8178 * gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228).
8179
032a42c8
CY
8180 * xfont.c (xfont_open):
8181 * xftfont.c (xftfont_open): Set the font's max_width field.
8182
8183 * nsfont.m (nsfont_open): Similar to the Xft backend, set
8184 min_width to space_width and average_width to the average over
8185 printable ASCII characters.
8186 (ns_char_width): Code cleanup.
8187 (ns_ascii_average_width): New utility function.
8188
8189 * font.h (struct font): Update comments.
8190
a098c930
DA
81912012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
8192
032a42c8 8193 Simple interface to set Lisp_Object fields of character tables.
a098c930
DA
8194 * lisp.h (CSET): New macro.
8195 (char_table_set_extras, char_table_set_contents)
8196 (sub_char_table_set_contents): New function.
8197 * casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c:
8198 * syntax.c: Adjust users.
8199
8be3a09c
SM
82002012-08-16 Stefan Monnier <monnier@iro.umontreal.ca>
8201
8202 * eval.c (eval_sub): Bind lexical-binding.
8203 * lread.c (Qlexical_binding): Make non-static.
8204
ac4845a6
JD
82052012-08-15 Jan Djärv <jan.h.d@swipnet.se>
8206
ddee6515
JD
8207 * nsmenu.m (popupSession): Remove.
8208 (pop_down_menu): Remove endModalSession.
8209 (timeout_handler:): New method.
8210 (runDialogAt:): Get next timeout. Start a NSTimer with that timeout.
8211 Call runModalForWindow. Check timer_fired when it returns.
8212 If not set, cancel timer and break out of loop.
8213 Otherwise loop again, with a new timeout.
8214
8215 * nsterm.m: Include fcntl.h if present.
8216 (fd_entry, t_readfds, inNsSelect): Remove.
8217 (select_writefds, select_valid, select_timeout, selfds)
8218 (select_mutex, apploopnr): Add.
8219 (EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr.
8220 Otherwise call kbd_buffer_store_event.
8221 (ns_send_appdefined): Remove release of fd_entry.
8222 (ns_read_socket): Always send appdefined. Remove inNsSelect check.
8223 Increment and decrement apploopnr.
8224 (ns_select): If no file descriptors, just do a NSTimer.
8225 Otherwise copy read/write masks and start select thread (fd_handler).
8226 Start main loop and wait for application defined event.
8227 Inform select thread to stop selecting after main loop is exited.
8228 (ns_term_init): Create selfds pipe and set non-blocking.
fc0c31f8 8229 Initialize select_mutex. Start the select thread (fd_handler).
ddee6515
JD
8230 (fd_handler:): Loop forever, wait for info from the main thread
8231 to either start or stop selecting. When select returns, send
8232 and appdefined event.
8233 (sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set.
8234 If not call kbd_buffer_store_event.
8235
8236 * nsterm.h (EmacsApp): fd_handler takes id argument.
8237 (EmacsDialogPanel): Add timer_fired and timeout_handler.
8238
ac4845a6
JD
8239 * gtkutil.c (xg_mark_data): Use FRAME_X_P.
8240
eb424fe3
EZ
82412012-08-15 Eli Zaretskii <eliz@gnu.org>
8242
8243 * region-cache.c (move_cache_gap): Update gap_len using the actual
8244 growth of the boundaries array. Do not change cache_len.
8245 (Bug#12196)
8246
4e6a86c6
DA
82472012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
8248
8249 Generalize and cleanup font subsystem checks.
8250 * font.h (FONT_DEBUG, font_assert): Remove.
8be3a09c
SM
8251 * font.c, fontset.c, w32font.c, xfont.c, xftfont.c:
8252 Change font_assert to eassert. Use eassert where appropriate.
4e6a86c6 8253
5bf192ca
DA
82542012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
8255
8256 * gtkutil.c (xg_get_font): Use pango_units_to_double.
8257
f2045622
CY
82582012-08-15 Chong Yidong <cyd@gnu.org>
8259
8be3a09c
SM
8260 * gtkutil.c (xg_get_font): Rename from xg_get_font_name.
8261 When using the new font chooser, use gtk_font_chooser_get_font_desc to
8262 extract the font descriptor instead of just the font name.
8263 In that case, return a font spec instead of a string.
f2045622
CY
8264 (x_last_font_name): Move to this file from xfns.c.
8265
8266 * xfns.c (Fx_select_font): The return value can also be a font
8267 spec. Move x_last_font_name management to gtkutil.c.
8268
8269 * xfaces.c: Make font weight and style symbols non-static.
8270
7f6feb56
SM
82712012-08-15 Stefan Monnier <monnier@iro.umontreal.ca>
8272
8273 * minibuf.c (read_minibuf): Ignore caller's inhibit-read-only
8274 (bug#12117).
8275
fecbd8ff
SM
82762012-08-14 Stefan Monnier <monnier@iro.umontreal.ca>
8277
8278 * alloc.c (Fgarbage_collect): Use plural form consistently.
8279
9b8d5165
EZ
82802012-08-14 Eli Zaretskii <eliz@gnu.org>
8281
8282 * keyboard.c (command_loop_1): Reset ignore_mouse_drag_p flag each
8283 iteration through the command loop. Fixes a problem whereby mouse
8284 movements are ignored until the first mouse click.
8285
f5d9e83a
PE
82862012-08-14 Paul Eggert <eggert@cs.ucla.edu>
8287
8288 Use bool, not int, for Lisp booleans.
8289 This is more natural, and on my platform (GCC 4.7.1 x86-64) it
8290 makes Emacs a bit smaller and presumably a bit faster.
8291 * lisp.h: Include <stdbool.h>.
8292 (struct Lisp_Boolfwd, defvar_bool):
8293 * lread.c (defvar_bool): Use bool, not int, for Lisp booleans.
8294 * regex.c [!emacs]: Include <stdbool.h>.
8295 (false, true): Remove; <stdbool.h> does this for us now.
8296
55802e4a
CY
82972012-08-14 Chong Yidong <cyd@gnu.org>
8298
4abcdac8
CY
8299 * character.c (Fcharacterp): Doc fix (Bug#12076).
8300
8301 * data.c (Findirect_variable): Doc fix (Bug#11040).
8302
55802e4a
CY
8303 * chartab.c (Fmap_char_table): Doc fix (Bug#12061).
8304
8305 * editfns.c (Fformat): Doc fix (Bug#12059).
4abcdac8 8306 (Fsave_current_buffer): Doc fix (Bug#11542).
55802e4a 8307
8e99d072
BR
83082012-08-14 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
8309
8310 * keyboard.c (access_keymap_keyremap): Accept anonymous functions
8311 (bug#12022).
8312
08908aca
MR
83132012-08-14 Martin Rudalics <rudalics@gmx.at>
8314
8315 * frame.c (make_frame_without_minibuffer, make_minibuffer_frame)
8316 (delete_frame, Fmake_frame_invisible, Ficonify_frame):
8317 * minibuf.c (choose_minibuf_frame, read_minibuf):
8318 * w32fns.c (x_create_tip_frame):
8319 * xfns.c (x_create_tip_frame): Call set_window_buffer instead of
8320 Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).
8321
56120d6f
PE
83222012-08-14 Paul Eggert <eggert@cs.ucla.edu>
8323
8324 * intervals.c (offset_intervals): Remove obsolete comment.
8325
67b77c0b
AS
83262012-08-14 Andreas Schwab <schwab@linux-m68k.org>
8327
8328 * gtkutil.c (find_rtl_image, update_frame_tool_bar): Use NILP.
8329
f48b82fd
GR
83302012-08-14 Gergely Risko <gergely@risko.hu>
8331
8332 * coding.c (decode_coding): Record buffer modification before
8333 disabling undo_list (Bug#11773).
8334
fd318b54
DA
83352012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
8336
8337 Revert and cleanup some recent overlay changes.
8338 * buffer.h (enum overlay_type): Remove.
8339 (buffer_get_overlays, buffer_set_overlays): Likewise.
8340 (buffer_set_overlays_before, buffer_set_overlays_after):
8341 New function. Adjust users.
8342 (unchain_both): Add eassert.
8343
41a62dd9
DA
83442012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
8345
8346 * gtkutil.c (update_frame_tool_bar): Use EQ where appropriate.
8347
5884c324
PE
83482012-08-14 Paul Eggert <eggert@cs.ucla.edu>
8349
8350 * gtkutil.c (xg_mark_data): Don't assume C99.
8351
ca06f160
JD
83522012-08-13 Jan Djärv <jan.h.d@swipnet.se>
8353
8354 * gtkutil.c (xg_frame_tb_info): New struct.
8355 (TB_INFO_KEY): New define.
8356 (xg_free_frame_widgets): Free xg_frame_tb_info for frame if present.
8357 (xg_mark_data): Mark Lisp_Objects in xg_frame_tb_info.
8358 (xg_create_tool_bar): Allocate and initialize a xg_frame_tb_info
8359 if not present.
8360 (update_frame_tool_bar): Return early if data in xg_frame_tb_info
fc0c31f8 8361 is up to date. Otherwise store new data.
ca06f160
JD
8362 (free_frame_tool_bar): Free xg_frame_tb_info if present.
8363
7864a3f7
DA
83642012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
8365
8366 Use KSET for write access to Lisp_Object members of struct kboard.
8367 * keyboard.h (KSET): New macro.
8368 * callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c:
8369 * msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c:
8370 * xterm.c: Adjust users.
8371
4c31be61
DA
83722012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
8373
8374 Use BSET for write access to Lisp_Object members of struct buffer.
8375 * buffer.h (BSET): New macro.
8376 * buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c:
8377 * fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c:
8378 * minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c:
8379 * window.c, xdisp.c, xfns.c: Adjust users.
8380
14ae4239
BT
83812012-08-11 BT Templeton <bpt@hcoop.net> (tiny change)
8382
8383 * lread.c (syms_of_lread): Initialize Vlexical_binding.
8384
32bcadb4
JD
83852012-08-11 Jan Djärv <jan.h.d@swipnet.se>
8386
3d29b2ce 8387 * nsterm.m (not_in_argv): New function.
fc0c31f8 8388 (application:openFile, application:openTempFile:):
3d29b2ce
JD
8389 (application:openFileWithoutUI:, application:openFiles:): Open file
8390 if not_in_argv returns non-zero (bug#12171).
8391
32bcadb4 8392 * gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER)
14ae4239
BT
8393 (gtk_font_chooser_set_font, gtk_font_chooser_get_font):
8394 Define for Gtk+ versions less than 3.2.
32bcadb4
JD
8395 (xg_get_font_name): Use those functions/macros here.
8396 Reported by Frans Oilinki <moilinki@gmail.com>.
8397
9ff9402d 83982012-08-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
8ccd072a
YM
8399
8400 * unexmacosx.c (copy_data_segment): Copy initialized data in
8401 statically linked libraries from input file rather than memory.
8402
db74a5fc
YM
8403 * unexmacosx.c (print_load_command_name): Add cases LC_MAIN,
8404 LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS.
8405 (dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data.
8406
25e65510
GM
84072012-08-10 Glenn Morris <rgm@gnu.org>
8408
8409 * conf_post.h (IF_LINT, lint_assume): Move here from lisp.h.
8410 * lisp.h (IF_LINT, lint_assume): Move to conf_post.h.
8411
7961135c
DA
84122012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
8413
8414 Fix last change to allow compilation with low optimization levels.
8415 * intervals.c (INTERVALS_INLINE): Define to EXTERN_INLINE.
8416 Reported by Jan Djärv <jan.h.d@swipnet.se>.
8417
42b3a444
DA
84182012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
8419
8420 Use common inline syntax in intervals.h.
8421 * intervals.h (INTERVALS_INLINE): New macro.
8422 Change all users from LISP_INLINE.
8423
9fb0c957
DA
84242012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
8425
8426 Define Qnone once for all platforms.
8427 * frame.c (Qnone): Define here.
8428 (syms_of_frame): DEFSYM it.
8429 * lisp.h (Qnone): New declaration.
8430 * nsfns.m, nsterm.h, nsterm.m, w32fns.c, w32font.c:
8431 * xfns.c: Remove duplication. Adjust users.
8432
65e8ee52
DA
84332012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
8434
8435 Remove unused macros from intervals.h.
8436 * intervals.h (MERGE_INSERTIONS, DISPLAY_INVISIBLE_GLYPH): Remove.
8437 * intervals.c: Adjust comment.
8438
9b855fd6
EZ
84392012-08-10 Eli Zaretskii <eliz@gnu.org>
8440
8441 * w32fns.c <w32_unicode_gui>: New static variable.
8442 (globals_of_w32fns): Initialize it according to os_subtype.
8443 (w32_init_class, w32_msg_pump, w32_wnd_proc): Use it instead of
8444 testing os_subtype.
8445
39cb9e56 84462012-08-10 Joakim Hårsman <joakim.harsman@gmail.com> (tiny change)
d30be705
EZ
8447 Eli Zaretskii <eliz@gnu.org>
8448
8449 Fix bug #10299 with Unicode characters sent by customized
8450 keyboards created by MSKLC.
8451 * w32fns.c (INIT_WINDOW_CLASS): New macro.
8452 (w32_init_class): Use it to initialize the Emacs class with either
8453 ANSI or Unicode API calls.
8454 (w32_msg_pump): Call GetMessageW and DispatchMessageW on NT and
8455 later.
8456 (w32_wnd_proc): If the character code sent by WM_CHAR or
8457 WM_SYSCHAR is above 255, post a WM_UNICHAR message, not the
8458 original message. Call DefWindowProcW on NT and later.
8459
9374581a
GM
84602012-08-10 Glenn Morris <rgm@gnu.org>
8461
4b94e8cf
GM
8462 * Makefile.in (config_h): Fix conf_post.h out-of-tree build location.
8463
9374581a
GM
8464 * lisp.h (DIRECTORY_SEP): Let configure set it.
8465
a2752828
DA
84662012-08-09 Dmitry Antipov <dmantipov@yandex.ru>
8467
8468 Use TSET for write access to Lisp_Object slots of struct terminal.
8469 * termhooks.h (TSET): New macro.
8470 * coding.c, terminal.c, xselect.c: Adjust users.
8471
cc92c454
SM
84722012-08-08 Stefan Monnier <monnier@iro.umontreal.ca>
8473
8474 * xdisp.c (safe_eval_handler): Remove prototype. Receive args describing
8475 the failing expression, include them in the error message.
8476 * eval.c (internal_condition_case_n): Pass nargs and args to hfun.
8477 * lisp.h (internal_condition_case_n): Update declaration.
8478
4cb3e6b3
DA
84792012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8480
8481 Inline functions to examine and change buffer overlays.
8482 * buffer.c (unchain_both): New function.
8483 * buffer.h (buffer_get_overlays, buffer_set_overlays):
8484 (buffer_has_overlays): New function.
8485 (enum overlay_type): New enum.
8486 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c:
8487 * insdel.c, intervals.c, print.c, xdisp.c: Adjust users.
8488
8707c1e5
DA
84892012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8490
8491 Inline functions to examine and change buffer intervals.
8492 * alloc.c (mark_interval_tree): Remove.
8493 (MARK_INTERVAL_TREE): Simplify.
8494 (UNMARK_BALANCE_INTERVALS): Remove. Adjust users.
8495 * intervals.c (buffer_balance_intervals): New function.
8496 (graft_intervals_into_buffer): Adjust indentation.
8497 (set_intervals_multibyte): Simplify.
8498 * buffer.h (BUF_INTERVALS): Remove.
8499 (buffer_get_intervals, buffer_set_intervals): New function.
8500 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c, insdel.c:
8501 * intervals.c, textprop.c: Adjust users.
8502
ad8c997f
DA
85032012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8504
8505 Inline functions to examine and change string intervals.
8506 * lisp.h (STRING_INTERVALS, STRING_SET_INTERVALS): Remove.
8507 (string_get_intervals, string_set_intervals): New function.
8508 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
8509 * lread.c, print.c, textprop.c: Adjust users.
8510
32ac3a6b
GM
85112012-08-08 Glenn Morris <rgm@gnu.org>
8512
8513 * lisp.mk (lisp): Remove language/persian.elc.
8514
77c7bcb1
DA
85152012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8516
8517 Cleanup intervals.
8518 * intervals.h (NULL_INTERVAL, DEFAULT_INTERVAL): Remove.
8519 (NULL_INTERVAL_P): Likewise. Adjust users.
14ae4239
BT
8520 (FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P):
8521 Adjust comment. Move under #if 0.
77c7bcb1
DA
8522 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
8523 * print.c, syntax.c, textprop.c, xdisp.c: Adjust users.
8524
9c08a8d4
DA
85252012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8526
8527 Check total length of intervals with eassert.
8528 * intervals.h (CHECK_TOTAL_LENGTH): Remove.
8529 * intervals.c: Change all users to eassert.
8530
26d16b35
EZ
85312012-08-07 Eli Zaretskii <eliz@gnu.org>
8532
14ae4239
BT
8533 * .gdbinit (xframe, xwindow, nextcons, xcar, xcdr, xlist):
8534 Rename fields to match removal of FGET and WGET and disuse of
26d16b35
EZ
8535 INTERNAL_FIELD in Lisp_Cons.
8536
c644523b
DA
85372012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8538
8539 Revert and cleanup Lisp_Cons, Lisp_Misc and Lisp_Symbol things.
8540 * lisp.h (struct Lisp_Symbol): Change xname to meaningful
8541 name since all xname users are fixed long time ago. Do not
8542 use INTERNAL_FIELD.
8543 (set_symbol_name, set_symbol_function, set_symbol_plist):
8544 (set_symbol_next, set_overlay_plist): New function.
8545 (struct Lisp_Cons): Do not use INTERNAL_FIELD.
8546 (struct Lisp_Overlay): Likewise.
8547 (CVAR, MVAR, SVAR): Remove.
8548 * alloc.c, buffer.c, buffer.h, bytecode.c, cmds.c, data.c:
8549 * doc.c, eval.c, fns.c, keyboard.c, lread.c, nsselect.m:
8550 * xterm.c: Adjust users.
8551 * .gdbinit: Change to use name field of struct Lisp_Symbol
8552 where appropriate.
8553
6a3d20cc
DA
85542012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8555
8556 Basic functions to set Lisp_Object and pointer slots of intervals.
8557 * intervals.h (interval_set_parent, interval_set_object):
8558 (interval_set_left, interval_set_right, interval_set_plist):
8559 (interval_copy_parent): New function.
8560 (SET_INTERVAL_OBJECT, SET_INTERVAL_PARENT, INTERVAL_PTR_SIZE): Remove.
14ae4239
BT
8561 (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE):
8562 Adjust indentation.
6a3d20cc
DA
8563 (INTERVAL_SIZE): Remove. Adjust users.
8564 * alloc.c, intervals.c, lread.c, textprop.c: Use new functions.
8565
4d2b044c
DA
85662012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8567
8568 Drop PGET and revert read access to Lisp_Objects slots of Lisp_Process.
8569 * process.h (PGET): Remove.
8570 (struct Lisp_Process): Do not use INTERNAL_FIELD.
8571 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
8572
d3d50620
DA
85732012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8574
8575 Drop WGET and revert read access to Lisp_Objects slots of struct window.
8576 * window.h (WGET): Remove.
8577 (struct window): Do not use INTERNAL_FIELD.
8578 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
8579 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
8580 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
8581 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
8582 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
8583 Adjust users.
8584
d10a51dc
CY
85852012-08-07 Chong Yidong <cyd@gnu.org>
8586
8587 * window.c (Fwindow_edges, Fwindow_pixel_edges)
8588 (Fwindow_absolute_pixel_edges, Fdelete_other_windows_internal)
8589 (Fdelete_window_internal): Signal an error if the window is not on
8590 a live frame (Bug#12025).
8591
e69b0960
DA
85922012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8593
8594 Drop FGET and revert read access to Lisp_Objects slots of struct frame.
8595 * frame.h (FGET): Remove.
8596 (struct frame): Do not use INTERNAL_FIELD.
8597 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
8598 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
8599 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
8600 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
8601
25a20a3a
JB
86022012-08-06 Juanma Barranquero <lekktu@gmail.com>
8603
8604 * w32.c: Silence compiler warnings.
8605 (map_w32_filename): Remove unused variable `is_fat'.
8606 (chase_symlinks): Add parentheses around expression.
8607
1c6f11f4
GM
86082012-08-06 Glenn Morris <rgm@gnu.org>
8609
1db4583a
GM
8610 * sysdep.c: Respect BROKEN_GETWD.
8611
1c6f11f4
GM
8612 * dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT):
8613 Let configure handle it.
8614 (stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it.
8615
2b90362b
DA
86162012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8617
8618 Use GCALIGNMENT where appropriate.
8619 * alloc.c (XMALLOC_HEADER_ALIGNMENT, roundup_size):
8620 (union aligned_Lisp_Symbol, union aligned_Lisp_Misc):
8621 (mark_maybe_pointer, pure_alloc): Change to use GCALIGNMENT.
8622
5f50daf2
EZ
86232012-08-06 Eli Zaretskii <eliz@gnu.org>
8624
14ae4239
BT
8625 * w32menu.c (set_frame_menubar, initialize_frame_menubar):
8626 Don't use FRAME_MENU_BAR_ITEMS as an lvalue.
5f50daf2 8627
cbcc7007
SM
86282012-08-06 Stefan Monnier <monnier@iro.umontreal.ca>
8629
8630 * buffer.h (struct buffer): Revert `indirections' to a simple int;
8631 that should be sufficient for everyone.
8632
4d365fa4
JD
86332012-08-06 Jan Djärv <jan.h.d@swipnet.se>
8634
8635 * keyboard.c (timer_check_2): Add break so timer_check returns next
8636 timeout.
8637
dd86bd82
DA
86382012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8639
8640 Fix Windows build errors introduced after converting to WGET and WSET.
8641 * w32term.c (w32_set_vertical_scroll_bar): Change to use WSET.
8642 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
8643
054e1668
JD
86442012-08-06 Jan Djärv <jan.h.d@swipnet.se>
8645
8646 * nsterm.m (ns_frame_rehighlight): Use FSET.
8647
8648 * nsmenu.m (ns_update_menubar): Use FSET.
8649
21238f11
DA
86502012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8651
8652 Separate read and write access to Lisp_Object slots of Lisp_Process.
8653 * process.h (PGET, PSET): New macros similar to AREF and ASET.
8654 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
8655
077288cf
DA
86562012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8657
8658 Separate read and write access to Lisp_Object slots of struct window.
8659 * window.h (WGET, WSET): New macros similar to AREF and ASET.
8660 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
8661 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
8662 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
8663 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
8664 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
8665 Adjust users.
8666
71688bd7
DA
86672012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8668
8669 Fix Windows build errors introduced after converting to FGET and FSET.
8670 * w32term.c (x_frame_rehighlight, x_scroll_bar_create):
8671 (w32_condemn_scroll_bars, w32_redeem_scroll_bar):
8672 (w32_judge_scroll_bars): Change to use FSET.
8673 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
8674
f99bac93
DA
86752012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8676
8677 Fix replacement typo.
8678 * window.c (replace_window): Set root_window instead of
8679 selected_window. This fixes a total window subsystem
8680 malfunction reported by Bastien Guerry <bzg@gnu.org>.
8681
8c2a0f2d
GM
86822012-08-06 Glenn Morris <rgm@gnu.org>
8683
8684 * lisp.mk (lisp): Add language/persian.elc.
8685
edd74c35
DA
86862012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8687
8688 Separate read and write access to Lisp_Object slots of struct frame.
8689 * frame.h (FGET, FSET): New macros similar to AREF and ASET.
8690 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
8691 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
8692 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
8693 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
8694
8671676c
AS
86952012-08-05 Andreas Schwab <schwab@linux-m68k.org>
8696
8697 * emacs.c (decode_env_path): Only use defaulted if WINDOWSNT.
8698
663e2b3f
DA
86992012-08-05 Dmitry Antipov <dmantipov@yandex.ru>
8700
8701 Generalize common compile-time constants.
8702 * lisp.h (header_size, bool_header_size, word_size): Now here.
8703 (struct Lisp_Vector): Add comment.
8704 (struct Lisp_Bool_Vector): Move up to define handy constants.
8705 (VECSIZE, PSEUDOVECSIZE): Simplify.
8706 (SAFE_ALLOCA_LISP): Use new constant. Adjust indentation.
8707 * buffer.c, buffer.h, bytecode.c, callint.c, eval.c, fns.c:
8708 * font.c, fontset.c, keyboard.c, keymap.c, macros.c, menu.c:
8709 * msdos.c, w32menu.c, w32term.h, window.c, xdisp.c, xfaces.c:
8710 * xfont.c, xmenu.c: Use word_size where appropriate.
8711
d32e47af
LM
87122012-08-05 Lawrence Mitchell <wence@gmx.li>
8713
8714 * search.c (Freplace_match): Treat \? in the replacement text
8715 literally (Bug#8161).
8716
e5d9c0d1
CY
87172012-08-05 Chong Yidong <cyd@gnu.org>
8718
8719 * term.c (Vsuspend_tty_functions, Vresume_tty_functions):
8720 * frame.c (Vdelete_frame_functions):
8721 * emacs.c (Vkill_emacs_hook): Doc fix.
8722
8da0576b
EZ
87232012-08-04 Eli Zaretskii <eliz@gnu.org>
8724
8725 * xfns.c (x_set_menu_bar_lines): Fix compilation error in
8726 --with-x-toolkit=no builds.
8727 Reported by Carsten Mattner <carstenmattner@gmail.com>.
8728
02676e5d
CY
87292012-08-04 Chong Yidong <cyd@gnu.org>
8730
8731 * syntax.c (Fmodify_syntax_entry): Doc fix.
8732
97147da9
EZ
87332012-08-04 Eli Zaretskii <eliz@gnu.org>
8734
76151e2c
EZ
8735 Fix startup warnings about ../site-lisp on MS-Windows. (Bug#11959)
8736 * w32.c (init_environment): Change the default values of many
8737 environment variables in dflt_envvars[] to NULL, to avoid pushing
14ae4239
BT
8738 them into environment when they were not already defined.
8739 Remove the code that deletes site-lisp subdirectories from the default
76151e2c 8740 value of EMACSLOADPATH, as it is no longer needed.
14ae4239
BT
8741 (check_windows_init_file): Now external, not static.
8742 Use Vload_path as is, without adding anything, as this function is now
76151e2c
EZ
8743 called when Vload_path is already set up.
8744
8745 * w32.h (check_windows_init_file): Add prototype.
8746
8747 * emacs.c (init_cmdargs) [WINDOWSNT]: When running from the build
8748 directory, ignore the /*/i386/ tail in Vinvocation_directory, for
8749 compatibility with Posix platforms.
8750 (main): Move the call to check_windows_init_file to here from
8751 w32.c.
8752 (decode_env_path) [WINDOWSNT]: Expand the %emacs_dir%/ prefix, if
8753 any, in the DEFALT argument into the root of the Emacs build or
8754 installation tree, as appropriate.
8755
8756 * callproc.c (init_callproc_1): Call decode_env_path instead of
8757 doing its equivalent by hand.
8758 (init_callproc): Replace DOS_NT condition with MSDOS, thus letting
8759 the code that sets Vexec_path run on MS-Windows.
8760
8761 * lread.c (init_lread): Add comments to #ifdef's.
8762
97147da9
EZ
8763 * msdos.c (dos_set_window_size, IT_update_begin)
8764 (IT_frame_up_to_date, IT_set_frame_parameters): Use FVAR and WVAR
8765 instead of direct references.
8766
185ee146
PE
87672012-08-04 Paul Eggert <eggert@cs.ucla.edu>
8768
8769 Export DEFAULT_REHASH_* to GDB.
8770 * lisp.h (DEFAULT_REHASH_THRESHOLD, DEFAULT_REHASH_SIZE):
8771 Now constants, not macros.
8772
8834c57a
PE
87732012-08-03 Paul Eggert <eggert@cs.ucla.edu>
8774
98c6f1e3
PE
8775 Remove unnecessary casts involving pointers.
8776 These casts are no longer needed now that we assume C89 or later,
8777 since they involve casting to or from void *.
8778 * alloc.c (make_pure_string, make_pure_c_string, pure_cons)
8779 (make_pure_float, make_pure_vector):
8780 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP):
8781 * macros.c (Fstart_kbd_macro):
8782 * menu.c (find_and_return_menu_selection):
8783 * minibuf.c (read_minibuf_noninteractive):
8784 * sysdep.c (closedir):
8785 * xdisp.c (x_produce_glyphs):
8786 * xfaces.c (compare_fonts_by_sort_order):
8787 * xfns.c (x_real_positions, select_visual):
8788 * xselect.c (x_stop_queuing_selection_requests)
8789 (x_get_window_property, x_get_window_property_as_lisp_data):
8790 * xterm.c (x_set_frame_alpha, x_find_modifier_meanings):
8791 Remove unnecessary pointer casts.
8792 * alloc.c (record_xmalloc): New function.
8793 * lisp.h (record_xmalloc): New decl.
8794 (SAFE_ALLOCA): Now takes just one arg -- the size -- and acts
8795 more like a function. This is because the pointer cast is not
8796 needed. All uses changed.
8797 * print.c (print_string, print_error_message): Avoid length recalc.
8798
8834c57a
PE
8799 Improve fix for macroexp crash with debugging (Bug#12118).
8800 * lisp.h (ASET) [ENABLE_CHECKING]: Pay attention to
8801 ARRAY_MARK_FLAG when checking subscripts, because ASET is
8802 not supposed to be invoked from the garbage collector.
8803 See Andreas Schwab in <http://bugs.gnu.org/12118#25>.
8804 (gc_aset): New function, which is like ASET but can be
8805 used in the garbage collector.
8806 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
8807 (set_hash_index): Use it instead of ASET.
8808
6dad7178
EZ
88092012-08-03 Eli Zaretskii <eliz@gnu.org>
8810
8811 Support symlinks on latest versions of MS-Windows.
8812 * w32.c: Include winioctl.h and aclapi.h.
8813 (is_symlink, chase_symlinks, enable_privilege, restore_privilege)
8814 (revert_to_self): Forward declarations of static functions.
8815 <static BOOL g_b_init_get_security_info>:
8816 <g_b_init_create_symbolic_link>: New static flags.
8817 (globals_of_w32): Initialize them to zero.
8818 (GetSecurityInfo_Proc, CreateSymbolicLink_Proc): New typedefs.
8819 (map_w32_filename): Improve commentary. Simplify switch.
8820 (SYMBOLIC_LINK_FLAG_DIRECTORY): Define if not defined in system
8821 headers (most versions of MinGW w32api don't).
8822 (get_security_info, create_symbolic_link)
8823 (get_file_security_desc_by_handle, is_symlink, chase_symlinks):
8824 New functions.
8825 (sys_access, sys_chmod): Call 'chase_symlinks' to resolve symlinks
8826 in the argument file name.
8827 (sys_access): Call unc_volume_file_attributes only if
8828 GetFileAttributes fails with network-related error codes.
8829 (sys_rename): Diagnose renaming of a symlink when the user doesn't
8830 have the required privileges.
14ae4239 8831 (get_file_security_desc_by_name): Rename from
6dad7178
EZ
8832 get_file_security_desc.
8833 (stat_worker): New function, with most of the guts of 'stat', and
14ae4239
BT
8834 with addition of handling of symlinks and support for 'lstat'.
8835 If possible, get file's attributes and security information by
6dad7178
EZ
8836 handle, not by name. Produce S_IFLNK bit for symlinks, when
8837 called from 'lstat'.
8838 (stat, lstat): New functions, call 'stat_worker'.
8839 (symlink, readlink, careadlinkat): Rewritten to create and resolve
8840 symlinks when the underlying filesystem supports them.
8841
f162bcc3
PE
88422012-08-02 Paul Eggert <eggert@cs.ucla.edu>
8843
79ea6c20
PE
8844 Fix macroexp crash on Windows with debugging (Bug#12118).
8845 * lisp.h (ASET) [ENABLE_CHECKING]: Ignore ARRAY_MARK_FLAG when
8846 checking subscripts; problem introduced with the recent
8847 "ASET (a, i, v)" rather than "AREF (a, i) = v" patch.
8848 (ARRAY_MARK_FLAG): Now a macro as well as a constant,
8849 since it's used in non-static inline functions now.
8850
c0ce93fd
PE
8851 * xfaces.c (face_at_buffer_position, face_for_overlay_string):
8852 Don't assume buffer size fits in 'int'. Remove unused local.
c71f5156 8853
f162bcc3
PE
8854 Use C99-style 'extern inline' if available.
8855 * buffer.h (BUFFER_INLINE):
8856 * category.h (CATEGORY_INLINE):
8857 * character.h (CHARACTER_INLINE):
8858 * charset.h (CHARSET_INLINE):
8859 * composite.h (COMPOSITE_INLINE):
8860 * dispextern.h (DISPEXTERN_INLINE):
8861 * lisp.h (LISP_INLINE):
8862 * systime.h (SYSTIME_INLINE):
8863 New macro, replacing 'static inline' in this header.
8864 * buffer.h, category.h, character.h, charset.h, composite.h:
8865 * dispextern.h, lisp.h, systime.h:
8866 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
8867 * alloc.c (LISP_INLINE):
8868 * buffer.c (BUFFER_INLINE):
8869 * category.c (CATEGORY_INLINE):
8870 * character.c (CHARACTER_INLINE):
8871 * charset.c (CHARSET_INLINE):
8872 * composite.c (COMPOSITE_INLINE):
8873 * dispnew.c (DISPEXTERN_INLINE):
8874 * sysdep.c (SYSTIME_INLINE):
8875 Define to EXTERN_INLINE, so that the corresponding functions
8876 are compiled into code.
8877 * conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN)
8878 (INLINE_HEADER_END): New macros.
8879 * lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant,
8880 since it's used in non-static inline functions now.
a8333d03 8881 (VALMASK) [!USE_LSB_TAG]: Likewise.
f162bcc3 8882
837b365b
GM
88832012-08-02 Glenn Morris <rgm@gnu.org>
8884
d66b744d
GM
8885 * s/: Remove empty directory.
8886
837b365b
GM
8887 * s/ms-w32.h: Move to ../nt/inc.
8888 * makefile.w32-in (TAGS, TAGS-gmake, MS_W32_H):
8889 Update for new ms-w32.h location.
8890
13294f95
PE
88912012-08-02 Paul Eggert <eggert@cs.ucla.edu>
8892
8893 Port to Solaris 8.
8894 * syswait.h (WRETCODE): Remove, consistently with ../configure.ac.
8895
90df0db3
GM
88962012-08-02 Glenn Morris <rgm@gnu.org>
8897
8898 * nsterm.m (ns_exec_path, ns_load_path): Use SEPCHAR rather than
8899 hard-coding the path separator.
8900
4939150c
PE
89012012-08-01 Paul Eggert <eggert@cs.ucla.edu>
8902
8903 Use "ASET (a, i, v)" rather than "AREF (a, i) = v".
8904 This how ASET and AREF are supposed to work, and makes
8905 it easier to think about future improvements. See
8906 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00026.html>.
8907 * charset.h (set_charset_attr): New function.
8908 All lvalue-style uses of CHARSET_DECODER etc. changed to use it.
8909 * lisp.h (ASET): Rewrite so as not to use AREF in an lvalue style.
8910 (aref_addr): New function. All uses of &AREF(...) changed.
8911 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
8912 (set_hash_index): New functions. All lvalue-style uses of
8913 HASH_KEY etc. changed.
8914 * keyboard.c (set_prop): New function. All lvalue-style uses
8915 of PROP changed.
8916
947b2afd
AA
89172012-08-01 Alp Aker <alp.tekin.aker@gmail.com>
8918
8919 * nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar)
8920 (EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:)
1f9f395d 8921 (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114)
947b2afd
AA
8922 * nsfns.m (ns_set_name_as_filename): Likewise.
8923 * nsmenu.m (ns_update_menubar): Likewise.
8924 * nsselect.m (symbol_to_nsstring): Adjust to use SVAR.
8925
4f5d0325
EZ
89262012-08-01 Eli Zaretskii <eliz@gnu.org>
8927
2008beae
EZ
8928 * .gdbinit (xcar, xcdr, xlist, xwindow, nextcons, xprintsym):
8929 Adapt to latest changes in field names of the corresponding Lisp
288479f6 8930 objects.
2008beae 8931
4f5d0325
EZ
8932 * xdisp.c (try_window_id): Use WVAR in IF_DEBUG code.
8933
fe3cc771
GM
89342012-08-01 Glenn Morris <rgm@gnu.org>
8935
8936 * s/msdos.h: Remove file.
8937 * conf_post.h [MSDOS]: New section, moved from s/msdos.h.
8938 * Makefile.in (S_FILE): Remove.
8939 (config_h): Remove S_FILE.
8940
c90acc54
JB
89412012-08-01 Juanma Barranquero <lekktu@gmail.com>
8942
8943 * s/ms-w32.h (DEVICE_SEP, IS_DIRECTORY_SEP, IS_ANY_SEP):
8944 Remove; moved to nt/config.nt.
8945
d8a05828
DA
89462012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
8947
8948 Use INTERNAL_FIELD for conses and overlays.
8949 * lisp.h (struct Lisp_Cons): Use INTERNAL_FIELD.
8950 Remove obsolete comment.
8951 (MVAR): New macro.
8952 (struct Lisp_Overlay): Use INTERNAL_FIELD.
8953 * alloc.c, buffer.c, buffer.h, fns.c: Adjust users.
8954
8271d590
DA
89552012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
8956
8957 Use INTERNAL_FIELD for symbols.
8958 * lisp.h (SVAR): New macro. Adjust users.
8959 * alloc.c, bytecode.c, cmds.c, data.c, doc.c, eval.c:
8960 * fns.c, keyboard.c, lread.c, xterm.c: Users changed.
8961
3193acd2
DA
89622012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
8963
8964 Use INTERNAL_FIELD for processes.
8965 * process.h (PVAR): New macro. Adjust style.
8966 (struct Lisp_Process): Change Lisp_Object members to INTERNAL_FIELD.
8967 * print.c, process.c, sysdep.c, w32.c, xdisp.c: Users changed.
8968
3a45383a
DA
89692012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
8970
8971 Use INTERNAL_FIELD for windows.
8972 * window.h (WVAR): New macro.
8973 (struct window): Change Lisp_Object members to INTERNAL_FIELD.
8974 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
8975 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
8976 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, nsterm.m, print.c:
8977 * textprop.c, w32fns.c, w32menu.c, w32term.c, window.c, xdisp.c:
8978 * xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
8979
c1dbc63c
PE
89802012-08-01 Paul Eggert <eggert@cs.ucla.edu>
8981
8982 * coding.h (CODING_ATTR_FLUSHING): Remove; unused and wouldn't work.
8983
5c0c0e8a
GM
89842012-08-01 Glenn Morris <rgm@gnu.org>
8985
8986 * lisp.h (IS_DIRECTORY_SEP, IS_DEVICE_SEP, IS_ANY_SEP):
8987 Move to configure.ac.
8988
552a99b4
JB
89892012-08-01 Juanma Barranquero <lekktu@gmail.com>
8990
8991 * makefile.w32-in (CONFIG_H): Update dependencies.
8992 (CONF_POST_H): New macro.
8993
8994 * s/ms-w32.h (SEPCHAR, NULL_DEVICE): Remove; moved to nt/config.nt.
8995
8d8e2dfe
GM
89962012-07-31 Glenn Morris <rgm@gnu.org>
8997
bc96620a
GM
8998 * Makefile.in (S_FILE): No longer set by configure.
8999
476b1b2d
GM
9000 * conf_post.h (config_opsysfile): Move earlier, so that WINDOWSNT
9001 is available.
9002 (alloca.h) [WINDOWSNT]: Don't include it on MS Windows.
9003
b2c7a106
GM
9004 * process.h (NULL_DEVICE):
9005 * emacs.c (SEPCHAR):
9006 * editfns.c (USER_FULL_NAME): Let configure set them.
9007
d53d062a
GM
9008 * s/README, s/template.h: Remove files.
9009
4515017f
GM
9010 * conf_post.h [HPUX]: Undefine HAVE_RANDOM and HAVE_RINT.
9011
8d8e2dfe
GM
9012 * conf_post.h (AMPERSAND_FULL_NAME, subprocesses):
9013 Move to configure.ac.
9014
5b20b3cc
EZ
90152012-07-31 Eli Zaretskii <eliz@gnu.org>
9016
1e0afd9a
EZ
9017 * .gdbinit (xframe): Adapt to introduction of FVAR and the
9018 resulting renaming of 'struct frame' members.
9019
5b20b3cc
EZ
9020 * w32menu.c (w32_menu_show): Revert bogus introduction of FVAR.
9021
9022 * fontset.c (dump_fontset): Fix compilation with ENABLE_CHECKING
9023 after introduction of FVAR.
9024
f1310128
JD
90252012-07-31 Jan Djärv <jan.h.d@swipnet.se>
9026
79e721e0
JD
9027 * nsmenu.m (update_frame_tool_bar): Change key from NSObject* to id.
9028
9029 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Use drawInRect
9030 instead of compositeToPoint.
9031 (applicationShouldTerminate): Pass NS String literal to NSRunAlertPanel.
9032
8d7c7eed 9033 * nsfns.m, nsmenu.m, nsterm.m: Adopt to struct frame/FVAR changes.
f1310128 9034
e34f7f79
DA
90352012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
9036
9037 Generalize INTERNAL_FIELD between buffers, keyboards and frames.
9038 * lisp.h (INTERNAL_FIELD): New macro.
14ae4239 9039 * buffer.h (BUFFER_INTERNAL_FIELD): Remove.
e34f7f79
DA
9040 (BVAR): Change to use INTERNAL_FIELD.
9041 * keyboard.h (KBOARD_INTERNAL_FIELD): Likewise.
9042 (KVAR): Change to use INTERNAL_FIELD.
9043 * frame.h (FVAR): New macro.
9044 (struct frame): Use INTERNAL_FIELD for all Lisp_Object fields.
3a45383a
DA
9045 * alloc.c, buffer.c, data.c, dispnew.c, dosfns.c, eval.c, frame.c:
9046 * fringe.c, gtkutil.c, minibuf.c, nsfns.m, nsterm.m, print.c:
9047 * term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
e34f7f79
DA
9048 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
9049
c09bfb2f
DA
90502012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
9051
9052 Miscellaneous fixes for non-default X toolkits.
9053 * xfns.c (Fx_file_dialog): Change to SSDATA to avoid warnings.
9054 * xterm.c (x_frame_of_widget): Remove redundant prototype.
9055 Move under #ifdef USE_LUCID.
9056 (x_create_toolkit_scroll_bar): Adjust scroll_bar_name
9057 definition and usage to avoid warnings.
9058
14c114ae
JD
90592012-07-31 Jan Djärv <jan.h.d@swipnet.se>
9060
9061 * nsterm.m (openFiles): Fix previous checkin.
9062
3bd21e82
PE
90632012-07-31 Paul Eggert <eggert@cs.ucla.edu>
9064
9065 * indent.c (compute_motion): Remove unused local.
9066
c1529ded
GM
90672012-07-31 Glenn Morris <rgm@gnu.org>
9068
400d5621
GM
9069 * s/usg5-4-common.h (wait3, WRETCODE): Let configure set them.
9070
268e2432
GM
9071 * conf_post.h [USG5_4]:
9072 Move remaining contents of s/usg5-4-common.h here.
9073 * s/usg5-4-common.h: Remove file.
9074
7552f3ee
GM
9075 * conf_post.h [IRIX6_5]: Move remaining contents of s/irix6-5.h here.
9076 * s/irix6-5.h: Remove file.
9077
6a381852
GM
9078 * conf_post.h [DARWIN_OS]: Move remaining contents of s/darwin.h here.
9079 * s/darwin.h: Remove file.
9080
c1529ded
GM
9081 * conf_post.h [HPUX]: Move random, srandom here from s/hpux10-20.h.
9082 * s/hpux10-20.h: Remove file, which is now empty.
9083
b429a4ee
GM
90842012-07-30 Glenn Morris <rgm@gnu.org>
9085
9086 * conf_post.h: New, split from configure.ac's AH_BOTTOM.
9087 * Makefile.in (config_h): Add conf_post.h.
9088 * makefile.w32-in (CONFIG_H): Add conf_post.h.
9089
adff3182
JD
90902012-07-30 Jan Djärv <jan.h.d@swipnet.se>
9091
9092 * nsterm.m (ns_do_open_file): New variable.
b9031d69 9093 (ns_term_init): Set ns_do_open_file to YES after run returns.
14ae4239
BT
9094 (openFile, openTempFile, openFileWithoutUI, openFiles):
9095 Open files only if ns_do_open_file.
adff3182 9096
c32af1e4
PE
90972012-07-30 Paul Eggert <eggert@cs.ucla.edu>
9098
7393bcbb
PE
9099 * lisp.h (SWITCH_ENUM_CAST): Remove. All uses removed.
9100 This no-op macro hasn't been needed for many years.
9101 * src/regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise.
9102
c32af1e4
PE
9103 Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB.
9104 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits.
9105 * lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for
9106 gdb_make_enums_visible.
9107 (TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros.
9108 (DIRECTORY_SEP): Now a constant, not a macro.
9109
302fc036
EZ
91102012-07-30 Eli Zaretskii <eliz@gnu.org>
9111
9112 * w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to
9113 w32_kbd_patch_key as the 2nd arg. (Bug#12082)
9114
9115 * w32term.c <w32_keyboard_codepage>: Renamed from
9116 keyboard_codepage and now external. All users changed.
9117
9118 * w32term.h: Add declaration of w32_keyboard_codepage.
9119
9120 * w32inevt.c (w32_kbd_patch_key): Accept an additional argument --
9121 the codepage to translate keys to Unicode. If this argument is
9122 -1, use the value returned by GetConsoleCP. All callers changed.
9123
88fb40b4
PE
91242012-07-30 Paul Eggert <eggert@cs.ucla.edu>
9125
0aee6912
PE
9126 Update .PHONY listings in makefiles.
9127 * Makefile.in (.PHONY): Add all, mostlyclean, clean,
9128 bootstrap-clean, distclean, maintainer-clean, versioclean,
9129 extraclean, frc.
9130
88fb40b4
PE
9131 * lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t.
9132 This is a bit clearer. Fix some commentary typos.
9133
0a763bd1
GM
91342012-07-30 Glenn Morris <rgm@gnu.org>
9135
32bac6d6
GM
9136 * s/netbsd.h: Let configure include signal.h if needed.
9137 Remove file, which is now empty.
9138
b65e7c46
GM
9139 * s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND):
9140 Let configure set them.
9141 * s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND):
9142 No more need to undefine.
0a763bd1 9143
169304bd
AS
91442012-07-30 Andreas Schwab <schwab@linux-m68k.org>
9145
9146 * keymap.c (Fkey_description): Don't remove 0x80 bit from
9147 non-single-byte char when adding meta modifier. (Bug#12090)
9148
6cd7a139
DA
91492012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
9150
9151 Convert safe_call to use variable number of arguments.
9152 * xdisp.c (safe_call): Convert to use varargs. Adjust users.
9153 (safe_call2): Fix comment.
9154 * lisp.h (safe_call): Adjust prototype.
9155 * coding.c (encode_coding_object): Change to use safe_call2.
9156 * xfaces.c (merge_face_heights): Change to use safe_call1.
9157
d34d6ffc
GM
91582012-07-30 Glenn Morris <rgm@gnu.org>
9159
7b8a48e4 9160 * s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h
227f5bd0 9161 does that unconditionally. Remove file, which is now empty.
7b8a48e4 9162
d34d6ffc
GM
9163 * s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h:
9164 Remove empty files.
9165
03a660a6
PE
91662012-07-30 Paul Eggert <eggert@cs.ucla.edu>
9167
9168 Export to GDB most of lisp.h's remaining object-like macros.
9169 * lisp.h (min, max): Move earlier, because they're used earlier now.
9170 (INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK)
9171 (CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0)
9172 (CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3)
9173 (DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE)
9174 (COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING)
9175 (COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT)
9176 (CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS)
9177 (MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA):
9178 Now constants, for GDB. They need not be macros.
9179 (MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND):
9180 Now constants, for GDB, as well as macros, for static initializers.
9181 (CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS):
9182 Move to after the definition of struct Lisp_Char_Table,
9183 since the former now needs that type defined.
9184 (enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS)
9185 (enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits)
9186 (enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA):
9187 New enums, for gdb_make_enums_visible.
9188 (GLYPH_MODE_LINE_FACE): Remove; unused.
88fb40b4 9189 * alloc.c (STRING_BYTES_MAX): Now a constant, not a macro.
03a660a6
PE
9190 (gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum
9191 CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE,
9192 enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled,
9193 enum maxargs, enum MAX_ALLOCA.
9194 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove.
9195 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove;
9196 no longer needed, now that they are done in lisp.h.
9197
e499d0ee
DA
91982012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
9199
9200 Cleanup string bytes checking.
9201 * alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove. Convert
9202 all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES.
9203 (check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES.
9204 (check_sblock, compact_small_strings): Simplify.
9205
d5040d2d
PE
92062012-07-29 Paul Eggert <eggert@cs.ucla.edu>
9207
9208 * lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove.
9209 These macros are confusing and no longer need to be defined, as
9210 the enum values now suffice. All uses replaced with definiens.
9211 (Lisp_Int1, Lisp_String): Define directly; this is clearer.
9212
7f259ae6
JB
92132012-07-29 Juanma Barranquero <lekktu@gmail.com>
9214
9215 * makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O))
9216 ($(BLD)/w32console.$(O)): Update dependencies.
9217
7e63e0c3
DA
92182012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
9219
9220 Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check.
9221 * lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long
9222 time. Adjust users.
9223 (CHECK_CONS_LIST): Remove. Convert all users to check_cons_list.
9224
ffd817eb
JD
92252012-07-29 Jan Djärv <jan.h.d@swipnet.se>
9226
9227 * lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before
9228 setting sitelisp (Bug#12010).
9229
417a7a0e
EZ
92302012-07-29 Eli Zaretskii <eliz@gnu.org>
9231
14ae4239 9232 * w32heap.h (OS_9X): Rename from OS_WINDOWS_95.
417a7a0e
EZ
9233
9234 * w32heap.c (cache_system_info):
9235 * w32.c (sys_rename):
9236 * w32proc.c (find_child_console, sys_kill): All users changed.
9237
387d4d92
PE
92382012-07-29 Paul Eggert <eggert@cs.ucla.edu>
9239
9240 * alloc.c (Fgarbage_collect): Indent as per usual Emacs style.
9241
55a6cca6
EZ
92422012-07-29 Eli Zaretskii <eliz@gnu.org>
9243
9244 * makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h.
9245
dbcf001c
DA
92462012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
9247
9248 Cleanup statistics calculation in Fgarbage_collect.
14ae4239
BT
9249 * alloc.c (Fgarbage_collect): Rename t1 to meaningful start.
9250 Fix zombies percentage calculation. Simplify elapsed time calculation.
dbcf001c 9251
e2688e4a
DA
92522012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
9253
9254 Generalize marker debugging code under MARKER_DEBUG and use eassert.
9255 * insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove.
9256 (gap_left, gap_right, adjust_markers_for_delete, insert_1_both)
9257 (insert_from_string_1, insert_from_gap, insert_from_buffer_1)
9258 (replace_range, replace_range_2, del_range_2): Change to eassert.
9259 * marker.c (byte_char_debug_check): Adjust style.
9260
b46a6a83
PE
92612012-07-29 Paul Eggert <eggert@cs.ucla.edu>
9262
9263 Don't use the abbreviation "win" to refer to Windows (Bug#10421).
9264 * regex.c (MAX_BUF_SIZE): Remove some incorrect and
9265 long-ago-commented-out code that talks about "WIN32".
9266 * w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
9267 All uses changed.
9268
e32a5799
PE
92692012-07-28 Paul Eggert <eggert@cs.ucla.edu>
9270
9271 Use Gnulib stdalign module (Bug#9772, Bug#9960).
9272 * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
9273 Simplify by using alignof.
9274 (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
9275 * lisp.h: Include <stdalign.h>.
9276 (GCALIGNMENT): New macro and constant.
9277 (DECL_ALIGN): Remove. All uses replaced by alignas (GCALIGNMENT).
9278 (USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
9279 (stdalign): New macro, if not already defined.
9280
df81cd29
EZ
92812012-07-28 Eli Zaretskii <eliz@gnu.org>
9282
01bd1b0d
EZ
9283 Fix non-ASCII input in non-GUI frames on MS-Windows. (Bug#12055)
9284 * w32inevt.c: Include w32inevt.h.
9285 (w32_read_console_input): New inline function, calls either
9286 ReadConsoleInputA or ReadConsoleInputW, depending on the value of
9287 w32_console_unicode_input.
9288 (fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
9289 (w32_kbd_patch_key, key_event): Use the codepage returned by
9290 GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
9291 (key_event): use uChar.UnicodeChar only if
9292 w32_console_unicode_input is non-zero.
9293
9294 * w32console.c: Include w32heap.h.
9295 <w32_console_unicode_input>: New global variable.
9296 (initialize_w32_display): Set w32_console_unicode_input to 1 on NT
9297 family of Windows, zero otherwise.
9298
9299 * w32inevt.h: Declare w32_console_unicode_input.
9300
df81cd29
EZ
9301 * xdisp.c (init_iterator): Don't reference tip_frame in a build
9302 --without-x. (Bug#11742)
9303
c20fdd9e
PE
93042012-07-27 Paul Eggert <eggert@cs.ucla.edu>
9305
9306 Adjust GDB to reflect pvec_type changes (Bug#12036).
9307 * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the
14ae4239
BT
9308 2012-07-04 changes to pseudovector representation.
9309 Problem reported by Eli Zaretskii in <http://bugs.gnu.org/12036#30>.
c20fdd9e 9310
32770973 93112012-07-27 Michael Albinus <michael.albinus@gmx.de>
e518bc71
MA
9312
9313 * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session
9314 bus address.
9315 (xd_close_bus, Fdbus_init_bus): Handle reference counter properly.
9316
3438fe21
EZ
93172012-07-27 Eli Zaretskii <eliz@gnu.org>
9318
bcfbc9de
EZ
9319 * alloc.c (listn): Fix the order the arguments are consed onto the
9320 list.
9321
3438fe21
EZ
9322 * lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
9323 enumeration constants, as PURE and HEAP are too general, and clash
9324 with other headers and sources, such as gmalloc.c and the
9325 MS-Windows system headers. All users changed.
9326
eeaea515
DA
93272012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
9328
9329 Revert last save_excursion_save and save_excursion_restore changes.
9330 * alloc.c, editfns.c, marker.c, lisp.h: Revert.
9331 Lots of crashes reported by Chong Yidong <cyd@gnu.org>.
9332
073c88c2
DA
93332012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
9334
9335 Fix recently-introduced typos in Windows port.
9336 Reported by Martin Rudalics <rudalics@gmx.at>.
9337 * w32.c (init_environment): Replace comma with semicolon.
eeaea515 9338 * w32fns.c (syms_of_w32fns): Add missing parenthesis.
073c88c2 9339
4706125e
PE
93402012-07-27 Paul Eggert <eggert@cs.ucla.edu>
9341
9342 Improve GDB symbol export (Bug#12036).
9343 * .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different
9344 arms of an 'if', not using conditional expressions; otherwise GDB
9345 complains about the types in the unevaluated arm when the argument
9346 is an integer literal.
9347 (xgetint): Simplify expression.
9348 * alloc.c (gdb_make_enums_visible): New constant. This ports to
9349 GCC 3.4.2 the export of symbols to GDB. Problem reported by Eli
9350 Zaretskii in <http://bugs.gnu.org/12036#13>.
9351 * lisp.h (PUBLISH_TO_GDB): Remove. All uses removed. No longer
9352 needed now that we have gdb_make_enums_visible.
9353 (enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits)
9354 (enum enum_USE_LSB_TAG):
9355 New enum types, packaging up enums that need to be exported to GDB.
9356
694b6c97
DA
93572012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
9358
9359 Utility function to make a list from specified amount of objects.
9360 * lisp.h (enum constype): New datatype.
9361 (listn): New prototype.
9362 * alloc.c (listn): New function.
9363 (Fmemory_use_count, syms_of_alloc): Use it.
9364 * buffer.c (syms_of_buffer): Likewise.
9365 * callint.c (syms_of_callint): Likewise.
9366 * charset.c (define_charset_internal): Likewise.
9367 * coding.c (syms_of_coding): Likewise.
9368 * keymap.c (syms_of_keymap): Likewise.
9369 * search.c (syms_of_search): Likewise.
9370 * syntax.c (syms_of_syntax): Likewise.
9371 * w32.c (init_environment): Likewise.
9372 * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
9373 * xdisp.c (syms_of_xdisp): Likewise.
9374 * xfns.c (syms_of_xfns): Likewise.
9375
6195f384
DA
93762012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
9377
9378 Fast save_excursion_save and save_excursion_restore.
9379 * lisp.h (struct Lisp_Excursion): New data type.
9380 (PVEC_EXCURSION): New pseudovector type.
9381 (XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
9382 to deal with it. Adjust comments.
9383 (init_marker, attach_marker): New prototype.
9384 (unchain_marker): Adjust prototype.
9385 * marker.c (attach_marker): Change to global.
9386 (init_marker): New function.
9387 * alloc.c (Fmake_marker, build_marker): Use it.
9388 (build_marker): More easserts.
9389 (mark_object): Handle struct Lisp_Excursion.
9390 * editfns.c (save_excursion_save, save_excursion_restore):
9391 Reimplement to use struct Lisp_Excursion. Add comments.
9392
5eceb8fb
PE
93932012-07-26 Paul Eggert <eggert@cs.ucla.edu>
9394
9395 Fix export of symbols to GDB (Bug#12036).
9396 * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL)
9397 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from
9398 emacs.c, as this is a more-suitable home. Had this been done earlier
9399 the fix for 12036 would have avoided some of the problems noted in
9400 <http://bugs.gnu.org/12036#13> by Eli Zaretskii, as the scope problems
9401 would have been more obvious.
562157c8
PE
9402 * emacs.c: Do not include <verify.h>; no longer needed.
9403 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS)
5eceb8fb
PE
9404 (gdb_GCTYPEBITS, gdb_USE_LSB_TAG)
9405 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
9406 Remove; now done in lisp.h.
9407 * lisp.h (PUBLISH_TO_GDB): New macro.
9408 (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type)
9409 (DATA_SEG_BITS): Use it.
9410 (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB.
9411 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB.
9412 * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need
9413 not be usable in #if. This simplifies things.
9414
d6749401
JB
94152012-07-26 Juanma Barranquero <lekktu@gmail.com>
9416
9417 * makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies.
9418
1781b9e9
PE
94192012-07-26 Paul Eggert <eggert@cs.ucla.edu>
9420
d89518db 9421 Simplify export of symbols to GDB (Bug#12036).
1781b9e9
PE
9422 * .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix =
9423 $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway).
9424 (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr):
9425 Adjust to changes in lisp.h and emacs.c, by using
9426 CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead
9427 of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits,
9428 INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of
9429 gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS
9430 instead of gdb_valbits.
9431 (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use
9432 PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG
9433 instead of gdb_array_mark_flag.
9434 (xboolvector): Get size from $->size, not $->header.size.
9435 Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants.
9436 (xreload, hook-run, hookpost-run): Remove.
9437 * emacs.c: Include <verify.h>.
9438 (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits)
9439 (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type):
9440 Remove.
9441 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS)
9442 (gdb_USE_LSB_TAG): New enum constants.
9443 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
9444 Also define these as enum constants, so they're visible to GDB.
9445 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros.
9446 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these
9447 as constants, so they're visible to GDB.
9448 * lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS)
9449 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR):
9450 Now enum constants, not macros, so they're visible to GDB.
9451 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is
9452 more convenient now. All uses changed.
9453 (VALMASK) [USE_LSB_TAG]: Also define in this case.
9454 * mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change.
9455
3628596a
DA
94562012-07-26 Dmitry Antipov <dmantipov@yandex.ru>
9457
9458 Explicitly free restriction data that are not needed anymore.
9459 * editfns.c (save_restriction_restore): Free restriction data.
9460
7abaf5cc
SM
94612012-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
9462
9463 * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
9464 add argument, tune behavior, and adjust all callers.
9465
71f88e00
PE
94662012-07-25 Paul Eggert <eggert@cs.ucla.edu>
9467
9468 Use typedef for EMACS_INT, EMACS_UINT.
9469 * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
9470 than macros. This simplifies debugging in the usual case, since
9471 it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
9472 and it allows expressions involving EMACS_INT casts.
9473 * .gdbinit (xreload): Simplify by using EMACS_INT cast.
9474
57ec3034
JD
94752012-07-25 Jan Djärv <jan.h.d@swipnet.se>
9476
9477 * nsterm.m (ns_read_socket): Return early if there is a modal
9478 window (Bug#12043).
9479
8137e7b3
MR
94802012-07-25 Martin Rudalics <rudalics@gmx.at>
9481
9482 * frame.c (Fredirect_frame_focus): In doc-string don't mention
9483 that FOCUS-FRAME can be omitted.
9484
04e9897c
DA
94852012-07-25 Dmitry Antipov <dmantipov@yandex.ru>
9486
9487 Adjust buffer text indirection counters at the end of Fkill_buffer.
9488 * buffer.c (Fkill_buffer): Adjust indirection counters when the
9489 buffer is definitely dead. This should really fix an issue reported
9490 by Christoph Scholtes again. (Bug#12007).
9491 (init_buffer_once): Initialize indirection counters of
9492 buffer_defaults and buffer_local_symbols (for sanity and safety).
9493
8a0484e1
EZ
94942012-07-24 Eli Zaretskii <eliz@gnu.org>
9495
9496 * xdisp.c (init_iterator): Don't compute dimensions of truncation
9497 and continuation glyphs on tooltip frames, leave them at zero.
9498 Avoids continued lines in tooltips. (Bug#11832)
9499
fa691a83
DA
95002012-07-24 Dmitry Antipov <dmantipov@yandex.ru>
9501
9502 Simplify copy_overlay.
04e9897c 9503 * buffer.c (copy_overlay): Simplify. Use build_marker.
fa691a83
DA
9504 * lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks.
9505
436bc8e0
EZ
95062012-07-23 Eli Zaretskii <eliz@gnu.org>
9507
9508 * print.c (print_object): Don't crash when a frame's name is nil
9509 or invalid. (Bug#12025)
9510
9511 * window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as
9512 it signals an error when a tooltip frame is being created.
9513
d7a7fda3
DA
95142012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
9515
9516 Cleanup miscellaneous objects allocation and initialization.
9517 * alloc.c (allocate_misc): Change to static. Add argument to
9518 specify the subtype. Adjust comment and users.
9519 (build_overlay): New function.
9520 * buffer.c (copy_overlays, Fmake_overlay): Use it.
9521 * lisp.h (struct Lisp_Overlay): Remove obsolete comment.
9522 (allocate_misc): Remove prototype.
9523 (build_overlay): Add prototype.
9524
95252012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
372f8ffc
DA
9526
9527 Swap buffer text indirection counters in Fbuffer_swap_text.
9528 * buffer.c (Fbuffer_swap_text): Swap indirections too.
9529 This avoids crash reported by Christoph Scholtes at
9530 http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html.
9531
9d7fa573
JD
95322012-07-22 Jan Djärv <jan.h.d@swipnet.se>
9533
9534 * nsmenu.m (Popdown_data): New struct.
9535 (pop_down_menu): p->pointer is Popdown_data. Release the pool and
9536 free Popdown_data.
9537 (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu.
9538 (initWithContentRect): Make imgView and contentView non-static
9539 and autorelease them. Also autorelease img and matrix (Bug#12005).
9540 (dealloc): Remove (Bug#12005).
9541
0dd6d66d
DA
95422012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
9543
9544 Adjust consing_since_gc when objects are explicitly freed.
9545 * alloc.c (GC_DEFAULT_THRESHOLD): New macro.
9546 (Fgarbage_collect): Use it. Change minimum to 1/10 of default.
9547 (free_cons, free_misc): Subtract object size from consing_since_gc.
9548
d36d71df
DA
95492012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
9550
9551 Simplify and cleanup markers positioning code.
9552 * marker.c (attach_marker): More useful eassert.
9553 (live_buffer, set_marker_internal): New function.
9554 (Fset_marker, set_marker_restricted): Use set_marker_internal.
9555 (set_marker_both, set_marker_restricted_both): Use live_buffer.
9556
fb9ea40f
PE
95572012-07-22 Paul Eggert <eggert@cs.ucla.edu>
9558
9559 * buffer.h (struct buffer.indirections): Now ptrdiff_t, not int,
9560 as it's limited by the amount of memory, not by INT_MAX.
9561
2d5c5f7d
EZ
95622012-07-21 Eli Zaretskii <eliz@gnu.org>
9563
07fb592e
EZ
9564 * keyboard.c (keys_of_keyboard): Bind language-change to 'ignore'
9565 in special-event-map. See the discussion at
9566 http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00417.html
9567 for the reasons.
9568
37a9eac8 9569 * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning
14ae4239
BT
9570 info.dwItemData. Fixes crashes on 64-bit Windows.
9571 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
2d5c5f7d 9572
c4328746
JD
95732012-07-21 Jan Djärv <jan.h.d@swipnet.se>
9574
fc0c31f8 9575 * nsterm.m (accessibilityAttributeValue): New function. (Bug#11134).
4b17afa7 9576 (conversationIdentifier): Return value is NSInteger.
784051c4 9577 * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA.
c4328746 9578
6e5d1c12
CY
95792012-07-21 Chong Yidong <cyd@gnu.org>
9580
9581 * window.c (decode_any_window): Signal an error if the window is
9582 on a dead frame (Bug#11984).
9583
9928463d
DA
95842012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
9585
9586 Add indirection counting to speed up Fkill_buffer.
9587 * buffer.h (struct buffer): New member.
9588 * buffer.c (Fget_buffer_create): Set indirection counter to 0.
9589 (Fmake_indirect_buffer): Set indirection counter to -1, increment
9590 base buffer indirection counter.
9591 (compact_buffer): If ENABLE_CHECKING, verify indirection counters.
9592 (Fkill_buffer): Adjust indirection counters as needed, don't walk
9593 through buffer list if indirection counter is 0.
9594
f8643a6b
DA
95952012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
9596
9597 Extend the value returned by Fgarbage_collect with heap statistics.
9598 * alloc.c (Qheap): New symbol.
9599 (syms_of_alloc): DEFSYM it.
9600 (Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data.
9601 (Fmemory_free): Remove.
9602 (syms_of_alloc): Don't defsubr it.
9603 * buffer.c (Fcompact_buffer): Remove.
9604 (syms_of_buffer): Don't defsubr it.
9605
dac616ff
DA
96062012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
9607
9608 Make maybe_gc inline.
9609 Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline).
9610 * lisp.h (consing_since_gc, gc_relative_threshold)
9611 (memory_full_cons_threshold): Revert declaration.
9612 (maybe_gc): Remove prototype, define as inline.
9613 * alloc.c: Remove old commented-out code.
9614 (consing_since_gc, gc_relative_threshold)
9615 (memory_full_cons_threshold): Revert to global.
9616 (maybe_gc): Remove.
9617
d7ea76b4
DA
96182012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
9619
9620 Simple wrapper for make_unibyte_string, adjust font_open_by_name.
9621 * lisp.h (build_unibyte_string): New function.
9622 * dosfns.c, fileio.c, fns.c, ftfont.c, process.c:
9623 * sysdep.c, w32fns.c, xfns.c: Use it.
9624 * font.c (font_open_by_name): Change 2nd and 3rd args to the only arg
9625 of type Lisp_Object to avoid redundant calls to make_unibyte_string.
9626 Adjust users accordingly.
9627 * font.h (font_open_by_name): Adjust prototype.
9628
765e61e3
DA
96292012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
9630
9631 Cleanup calls to Fgarbage_collect.
9632 * lisp.h (maybe_gc): New prototype.
9633 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
9634 Remove declarations.
9635 * alloc.c (maybe_gc): New function.
9636 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
9637 Make them static.
9638 * bytecode.c (MAYBE_GC): Use maybe_gc.
9639 * eval.c (eval_sub, Ffuncall): Likewise.
9640 * keyboard.c (read_char): Likewise. Adjust call to maybe_gc
9641 to avoid dependency from auto-save feature.
9642
52b852c7
PE
96432012-07-19 Paul Eggert <eggert@cs.ucla.edu>
9644
9645 * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'.
9646 (FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from
9647 'for_each_per_buffer_object_at'.
9648 All uses changed. It's better to use upper-case for macros that
9649 cannot be implemented as functions, to give the reader a clue
9650 that they're special.
9651
5db81e33
SM
96522012-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
9653
9654 * alloc.c (Fgarbage_collect): Tweak docstring.
9655
5b835e1d
DA
96562012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
9657
9658 Tweak the value returned from Fgarbage_collect again.
9659 * alloc.c (Fgarbage_collect): New return value, as confirmed in
9660 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00418.html.
9661 Adjust documentation.
9662 (total_vector_bytes): Rename to total_vector_slots, adjust
9663 accounting.
9664 (total_free_vector_bytes): Rename to total_free_vector_slots,
9665 adjust accounting.
9666 (Qstring_bytes, Qvector_slots): New symbols.
9667 (syms_of_alloc): DEFSYM them.
9668
9cd47b72
DA
96692012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
9670
9671 Buffer compaction primitive which may be used from Lisp.
9672 * buffer.c (compact_buffer, Fcompact_buffer): New function.
9673 (syms_of_buffer): Register Fcompact_buffer.
9674 * alloc.c (Fgarbage_collect): Use compact_buffer.
9675 * buffer.h (compact_buffer): New prototype.
9676 (struct buffer_text): New member.
9677
d17337e5
DA
96782012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
9679
9680 New macro to iterate over all buffers, miscellaneous cleanups.
9681 * lisp.h (all_buffers): Remove declaration.
9682 * buffer.h (all_buffers): Add declaration, with comment.
9683 (for_each_buffer): New macro.
9684 * alloc.c (Fgarbage_collect, mark_object): Use it.
9685 * buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte)
9686 (init_buffer): Likewise.
9687 * data.c (Fset_default): Likewise.
9688 * coding.c (code_conversion_restore): Remove redundant check
9689 for dead buffer.
9690 * buffer.c (Fkill_buffer): Likewise. Remove obsolete comment.
9691
60cfd278
AS
96922012-07-18 Andreas Schwab <schwab@linux-m68k.org>
9693
9694 Fix bug that created negative-length intervals.
9695 * intervals.c (merge_interval_right, merge_interval_left):
9696 Do not zero out this interval if it is absorbed by its children,
9697 as this interval's total length doesn't change in that case. See
9698 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00403.html>.
9699
d06714cb
PE
97002012-07-18 Paul Eggert <eggert@cs.ucla.edu>
9701
83713154
PE
9702 * alloc.c (Fmake_bool_vector): Fix off-by-8 bug
9703 when invoking (make-bool-vector N t) and N is a positive
9704 multiple of 8 -- the last 8 bits were mistakenly cleared.
9705
d06714cb
PE
9706 Remove some struct layout assumptions in bool vectors.
9707 * alloc.c (bool_header_size): New constant.
9708 (header_size, word_size): Move earlier, as they're now used earlier.
9709 Use 'word_size' in a few more places, where it's appropriate.
9710 (Fmake_bool_vector, sweep_vectors): Don't assume that there is no
9711 padding before the data member of a bool vector.
9712 (sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather
9713 than doing the check by hand with an abort ().
9714
464d5a5e
SM
97152012-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
9716
5fbc0409
SM
9717 * eval.c (Fdefvar): Don't check constants since we only set the var if
9718 it's not yet defined anyway (bug#11904).
9719
464d5a5e
SM
9720 * lisp.h (last_undo_boundary): Declare new var.
9721 * keyboard.c (command_loop_1): Set it.
9722 * cmds.c (Fself_insert_command): Use it to only remove boundaries that
9723 were auto-added by the command loop (bug#11774).
9724
8dc2e44a
AS
97252012-07-18 Andreas Schwab <schwab@linux-m68k.org>
9726
9727 * w32font.c (Qsymbol): Remove local definition.
9728 (syms_of_w32font): Don't DEFSYM it.
9729
169925ec
DA
97302012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
9731
9732 Fix sweep_vectors to handle large bool vectors correctly.
9733 * alloc.c (sweep_vectors): Account total_vector_bytes for
9734 bool vectors larger than VBLOCK_BYTES_MAX.
9735
5fbfb018
CY
97362012-07-18 Chong Yidong <cyd@gnu.org>
9737
9738 * frame.c (x_set_frame_parameters): Revert bogus change introduced
9739 in 2012-05-25 commit by Paul Eggert (Bug#11738).
9740
3ab6e069
DA
97412012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
9742
9743 Return more descriptive data from Fgarbage_collect.
9744 Suggested by Stefan Monnier in
9745 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00369.html.
9746 * alloc.c (bounded_number): New function.
9747 (total_buffers, total_vectors): New variable.
9748 (total_string_size): Rename to total_string_bytes, adjust users.
9749 (total_vector_size): Rename to total_vector_bytes, adjust users.
9750 (sweep_vectors): Account total_vectors and total_vector_bytes.
9751 (Fgarbage_collect): New return value. Adjust documentation.
9752 (gc_sweep): Account total_buffers.
9753 (Fmemory_free, Fmemory_use_counts): Use bounded_number.
9754 (VECTOR_SIZE): Remove.
9755 * data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global.
9756 (Qinterval, Qmisc): New symbols.
9757 (syms_of_data): Initialize them.
9758 * lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat)
9759 (Qcons, Qbuffer): New declarations.
9760
6d02fe5b
PE
97612012-07-17 Paul Eggert <eggert@cs.ucla.edu>
9762
9763 * alloc.c (Fmemory_free): Account for memory-free's own storage.
9764 Round up, not down. Improve doc.
9765
b7ffe040
DA
97662012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
9767
9768 Restore old code in allocate_string_data to avoid Faset breakage.
9769 Reported by Julien Danjou <julien@danjou.info> in
9770 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00371.html.
9771 * alloc.c (allocate_string_data): Restore old code with minor
9772 adjustments, fix comment to explain this subtle issue.
9773
4dc7c8d5
SM
97742012-07-17 Eli Zaretskii <eliz@gnu.org>
9775
9776 Remove FILE_SYSTEM_CASE.
9777 * s/msdos.h (FILE_SYSTEM_CASE): Don't define.
9778
9779 * fileio.c (FILE_SYSTEM_CASE): Don't define.
9780 (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE.
9781 Fixes problems on MS-DOS with Vtemp_file_name_pattern when
9782 call-process-region passes it through expand-file-name.
9783
9784 * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE.
9785
97862012-07-17 Andreas Schwab <schwab@linux-m68k.org>
9787
9788 Fix crash when creating indirect buffer (Bug#11917)
9789 * buffer.c (buffer_lisp_local_variables): Add argument CLONE.
9790 Don't handle unbound variables specially if non-zero.
9791 (Fbuffer_local_variables): Pass zero.
9792 (clone_per_buffer_values): Pass non-zero.
9793
97942012-07-17 Andreas Schwab <schwab@linux-m68k.org>
9795
9796 * gnutls.c (emacs_gnutls_handshake): Revert last change. Add QUIT
9797 to make the loop interruptible.
9798
97992012-07-17 Andreas Schwab <schwab@linux-m68k.org>
9800
9801 * gnutls.c (emacs_gnutls_handshake): Only retry if
9802 GNUTLS_E_INTERRUPTED.
9803
cce7fefc
DA
98042012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
9805
9806 Cleanup and convert miscellaneous checks to eassert.
9807 * alloc.c (mark_interval): Fix comment, partially rephrase
9808 old comment from intervals.h (see below).
9809 * intervals.c (find_interval, adjust_intervals_for_insertion)
9810 (delete_interval, adjust_intervals_for_deletion)
9811 (graft_intervals_into_buffer, temp_set_point_both, copy_intervals):
9812 Convert to eassert.
9813 (adjust_intervals_for_insertion, make_new_interval):
9814 Remove obsolete and unused code.
9815 * intervals.h (struct interval): Remove obsolete comment.
9816 * textprotp.c (erase_properties): Remove unused code.
9817 (Fadd_text_properties, set_text_properties_1, Fremove_text_properties)
9818 (Fremove_list_of_text_properties): Convert to eassert.
9819
9ea10cc3
CY
98202012-07-17 Chong Yidong <cyd@gnu.org>
9821
9822 * editfns.c (Finsert_char): Doc fix.
9823
3900d5de
DA
98242012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
9825
9826 Fix previous change to make Fmemory_free always accurate.
9827 * alloc.c (make_interval): Update total_free_intervals.
9828 (make_float): Likewise for total_free_floats.
9829 (free_cons, Fcons): Likewise for total_free_conses.
9830 (SETUP_ON_FREE_LIST, allocate_vector_from_block):
9831 Likewise for total_free_vector_bytes.
9832 (Fmake_symbol): Likewise for total_free_symbols.
9833 (bytes_free): Remove.
9834
7098646f
DA
98352012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
9836
9837 Simple free memory accounting feature.
9838 * alloc.c (bytes_free, total_free_vector_bytes): New variable.
9839 (sweep_vectors): Accumulate size of free vectors.
9840 (Fgarbage_collect): Setup bytes_free.
9841 (Fmemory_free): New function.
9842 (syms_of_alloc): Register it.
9843
22657b40
DA
98442012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
9845
9846 Cleanup overlays checking.
9847 * buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP.
9848 * buffer.c (overlay_touches_p, recenter_overlay_lists): Change to
9849 eassert and OVERLAYP.
9850 (sort_overlays): Change to use OVERLAYP.
9851
ddfc8813
RK
98522012-07-16 René Kyllingstad <Rene@Kyllingstad.com> (tiny change)
9853
9854 * editfns.c (Finsert_char): Make it interactive, and make the
9855 second arg optional. Copy interactive spec and docstring from
9856 ucs-insert.
9857
7c26cf3c
PE
98582012-07-17 Paul Eggert <eggert@cs.ucla.edu>
9859
9860 * floatfns.c (Fabs): Do not wrap fabs inside IN_FLOAT (Bug#11913).
9861 Unlike the other wrapped functions, fabs has an unspecified
9862 effect on errno.
9863
5d127af9
JD
98642012-07-16 Jan Djärv <jan.h.d@swipnet.se>
9865
9866 * nsterm.m (keyDown): Interpret flags without left/right bits
9867 as the left key (Bug#11670).
9868
6a0dd1d7
DA
98692012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
9870
9871 Remove empty and useless init functions.
9872 * lisp.h (init_character_once, init_fns, init_image)
9873 (init_filelock, init_sound): Remove prototype.
9874 * character.c (init_character_once): Remove.
9875 * filelock.c (init_filelock): Likewise.
9876 * fns.c (init_fns): Likewise.
9877 * image.c (init_image): Likewise.
9878 * sound.c (init_sound): Likewise.
9879 * emacs.c (main): Adjust accordingly.
9880
7a6136fd
DA
98812012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
9882
9883 * gtkutil.h: Tiny cleanups.
9884 (use_old_gtk_file_dialog): Remove useless declaration.
9885 (xg_uses_old_file_dialog): Add suggested const attribute.
9886
ce811ad9
EZ
98872012-07-15 Eli Zaretskii <eliz@gnu.org>
9888
9889 * bidi.c (MAX_STRONG_CHAR_SEARCH): New macro.
9890 (bidi_paragraph_init): Use it to limit search forward for a strong
9891 directional character in abnormally large paragraphs full of
9892 neutral or weak characters. (Bug#11943)
9893
c9adfeaa
SF
98942012-07-15 Stefano Facchini <stefano.facchini@gmail.com> (tiny change)
9895
9896 * gtkutil.c (xg_create_tool_bar): Apply "primary-toolbar" style to
9897 the toolbar (Bug#9451).
9898 (xg_make_tool_item): Give the widget event box a transparent
9899 background.
9900
fff62aa9
DA
99012012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
9902
9903 Cleanup basic allocation variables and functions.
9904 * alloc.c (ignore_warnings, init_intervals, init_float)
9905 (init_cons, init_symbol, init_marker): Remove.
9906 (interval_block_index): Initialize to INTERVAL_BLOCK_SIZE.
9907 (float_block_index): Initialize to FLOAT_BLOCK_SIZE.
9908 (cons_block_index): Initialize to CONS_BLOCK_SIZE.
9909 (symbol_block_size): Initialize to SYMBOL_BLOCK_SIZE.
9910 (marker_block_index): Initialize to MARKER_BLOCK_SIZE.
9911 (staticidx, init_alloc_once, init_strings, free_ablock):
9912 Remove redundant initialization.
9913 * fns.c (init_weak_hash_tables): Remove.
9914 * lisp.h (init_weak_hash_tables): Remove prototype.
9915
9730daca
DA
99162012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
9917
9918 Use zero_vector where appropriate.
9919 * alloc.c (zero_vector): Define as Lisp_Object. Adjust users
9920 accordingly.
9921 * lisp.h (zero_vector): New declaration.
9922 * font.c (null_vector): Remove.
9923 (syms_of_font): Remove initialization and staticpro.
9924 (font_list_entities, font_find_for_lface): Change to use zero_vector.
9925 * keymap.c (Faccessible_keymaps): Likewise.
9926
2e2d2a13
LL
99272012-07-15 Leo Liu <sdl.web@gmail.com>
9928
9929 * fringe.c: Fix typo in comments.
9930
cd276f6e
LL
99312012-07-14 Leo Liu <sdl.web@gmail.com>
9932
9933 * fringe.c: Add a new bitmap exclamation-mark.
9934
5a1131d9
EZ
99352012-07-14 Eli Zaretskii <eliz@gnu.org>
9936
9937 * gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference.
9938
9939 * s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE)
9940 (HAVE_MENUS): Don't define, defined by editing config.in with
9941 msdos/sed2v2.inp.
9942 (GMALLOC_INHIBIT_VALLOC): Don't define.
9943 (MODE_LINE_BINARY_TEXT): Remove, not used anymore.
9944
22e983b7
JB
99452012-07-14 Juanma Barranquero <lekktu@gmail.com>
9946
9947 * s/ms-w32.h (GC_SETJMP_WORKS, GC_MARK_STACK): Set in nt/config.nt.
9948
5b3f250f
GM
99492012-07-14 Glenn Morris <rgm@gnu.org>
9950
9951 * s/aix4-2.h, s/freebsd.h, s/gnu-linux.h, s/hpux10-20.h:
9952 * s/irix6-5.h, s/netbsd.h, s/sol2-6.h, s/unixware.h:
9953 Let configure set GC_SETJMP_WORKS, GC_MARK_STACK.
9954
33d63ff4
GM
99552012-07-13 Glenn Morris <rgm@gnu.org>
9956
5b633342
GM
9957 * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Let configure set it.
9958
33d63ff4
GM
9959 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Let configure set it.
9960 * s/irix6-5.h (SETUP_SLAVE_PTY): No more need to unset it.
9961
b55b9f85
JD
99622012-07-13 Jan Djärv <jan.h.d@swipnet.se>
9963
0dc8cf50
JD
9964 * nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP.
9965 (x_free_frame_resources): Pass x_free_frame_resources to NSTRACE.
9966 (ns_lisp_to_color, ns_string_to_lispmod, ns_term_init)
9967 (ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA
9968 where appropriate.
9969 (ns_exec_path, ns_load_path, changeFont): Put () around assignment used
9970 as boolean expression.
9971 (x_set_window_size): Remove unused variable toolbar.
9972 (ns_get_color_default, ns_mod_to_lisp): Remove.
9973 (ns_mouse_position): Remove unused variables xchar and ychar.
9974 (ns_compute_glyph_string_overhangs): Remove unused variable face.
9975 (ns_set_vertical_scroll_bar): Remove unused variable count.
9976 (ns_delete_terminal): Remove unused variable i.
9977 (ns_term_init): Remove unused variables r, g and b.
9978 (mouseDown): Remove unused variable window.
9979 (windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP.
9980 (initFrameFromEmacs): Remove unused variable vbextra.
9981 (mouseEntered): Remove unused variables p and dpyinfo.
9982 (mouseExited): Remove unused variables p and r.
9983 (ns_define_frame_cursor, ns_clear_frame_area)
9984 (ns_draw_window_cursor, ns_initialize_display_info): Make static.
9985 (menuDown): Assign [sender tag] to variable and cast the variable.
9986
9987 * nsterm.h (menuDown): Add id as type to argument sender.
9988 (ns_display_info_for_name): Add Lisp_Object argument.
9989 (ns_term_init): Add Lisp_Object argument.
9990 (ns_map_event_to_object): Add void argument.
9991 (ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct
9992 prototype with arguments and only declare if __OBJC__.
9993 (nxatoms_of_nsselect): Add void argument.
9994 (ns_lisp_to_cursor_type): Add Lisp_Object argument.
9995 (ns_alloc_autorelease_pool): Add void argument.
9996 (ns_release_autorelease_pool): Add void* argument.
9997 (ns_get_defaults_value): Add const char* argument.
9998
9999 * nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog)
10000 (initFromContents): Use SSDATA where appropriate.
10001 (ns_update_menubar): Add braces to ambigous if-else.
10002 (initWithTitle): Put () around assignment in if statement.
10003 (ns_menu_show): Remove unused variables window and keymap.
10004 (update_frame_tool_bar): Remove unused variable selected_p.
10005 (initWithContentRect): Remove unused variable this_cmd_name.
10006
10007 * nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where
10008 appropriate.
10009 (setXBMColor): Remove unused variable len.
10010 (setPixmapData): Put () around assignment in loop statement.
10011
10012 * nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script)
10013 (ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA
10014 where appropriate.
10015 (ns_get_covering_families, ns_findfonts, nsfont_list_family): Put ()
10016 around assignment in loop statement.
10017 (nsfont_open): Remove unused variable i.
10018 (nsfont_open): Remove unused variable len.
10019 (nsfont_draw): Remove unused variable cs.
10020
10021 * nsfns.m (x_set_icon_name, ns_set_name_internal)
10022 (ns_set_name_as_filename, ns_implicitly_set_icon_type)
10023 (x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name)
10024 (Fns_get_resource, Fns_set_resource, Fx_open_connection)
10025 (Fns_font_name, Fns_perform_service)
10026 (Fns_convert_utf8_nfd_to_nfc, ns_do_applescript)
10027 (Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate.
10028 (ns_set_name): Remove unused variable view.
10029 (x_set_menu_bar_lines): Remove unused variable olines.
10030 (x_set_tool_bar_lines): Remove unused variable root_window.
10031 (Fns_list_colors): Put () around assignment in while statement.
10032 (Fns_perform_service): Remove unused variable len.
10033 (Fns_display_usable_bounds): Remove unused variable top.
10034 (syms_of_nsfns): Remove unused variable i.
10035
b55b9f85
JD
10036 * nsmenu.m (ns_update_menubar): Exchange place of argument 2 and 3 to
10037 memcpy (Bug#11907).
10038
ed9265fc 100392012-07-13 Kalle Kankare <kalle.kankare@iki.fi> (tiny change)
2277de02
JD
10040
10041 * image.c (Fimagemagick_types): Initialize ex with GetExceptionInfo
10042 and free it with DestroyExceptionInfo (Bug#11558).
10043
ef099b57
JB
100442012-07-13 Juanma Barranquero <lekktu@gmail.com>
10045
10046 * s/ms-w32.h (FIRST_PTY_LETTER, HAVE_SOCKETS): Move to nt/config.nt.
10047 (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE___BUILTIN_UNWIND_INIT):
10048 Set here, not in nt/config.nt.
10049
ea814a5d
EZ
100502012-07-13 Eli Zaretskii <eliz@gnu.org>
10051
10052 * xdisp.c (move_it_in_display_line_to): On GUI terminals, allow
10053 cursor overflow into the last glyph on display line when the right
10054 fringe is off. (Bug#11832)
10055
1a952767
PE
100562012-07-13 Paul Eggert <eggert@cs.ucla.edu>
10057
10058 * xdisp.c (produce_special_glyphs): Now static.
10059 * dispextern.h (produce_special_glyphs): Remove decl.
10060
983188fd
GM
100612012-07-13 Glenn Morris <rgm@gnu.org>
10062
8d7c7eed 10063 * s/bsd-common.h, s/cygwin.h: Remove empty files.
32fb4bb6
GM
10064 * s/freebsd.h, s/netbsd.h: Do not include bsd-common.h.
10065
983188fd
GM
10066 * s/usg5-4-common.h (USG, USG5):
10067 * s/template.h (USG5, USG, HPUX, BSD4_2, BSD_SYSTEM):
10068 * s/sol2-6.h (SOLARIS2):
10069 * s/irix6-5.h (IRIX6_5):
10070 * s/hpux10-20.h (USG, USG5, HPUX):
10071 * s/gnu-linux.h (USG, GNU_LINUX):
10072 * s/freebsd.h (BSD_SYSTEM):
10073 * s/darwin.h (BSD4_2, BSD_SYSTEM, DARWIN_OS):
10074 * s/cygwin.h (CYGWIN):
10075 * s/bsd-common.h (BSD_SYSTEM, BSD4_2):
10076 * s/aix4-2.h (USG, USG5, _AIX): Move "system type" macros to configure.
10077
d1e68667 100782012-07-13 BT Templeton <bpt@hcoop.net> (tiny change)
24ef80ae
PE
10079
10080 * nsfont.m (ns_charset_covers): Don't abort if no bitmap (Bug#11853).
24ef80ae 10081
6de0e799
GM
100822012-07-13 Glenn Morris <rgm@gnu.org>
10083
739ae010
GM
10084 * s/usg5-4-common.h (NSIG_MINIMUM): Let configure set it.
10085
dbee5793
GM
10086 * s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE.
10087
6de0e799
GM
10088 * process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION.
10089 * s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro.
10090
b82da769
GM
100912012-07-12 Glenn Morris <rgm@gnu.org>
10092
4fae5a7a 10093 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure.
b82da769
GM
10094
10095 * process.c (init_process_emacs): Rename from init_process.
10096 The old name is also the name of a Mach system call.
10097 * lisp.h, emacs.c: Update for this name change.
10098 * nsgui.h, sysselect.h, s/darwin.h: Remove workaround that is no
10099 longer needed.
10100
5a979817
EZ
101012012-07-12 Eli Zaretskii <eliz@gnu.org>
10102
10103 * xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in
10104 memmove call that removes glyphs covered by the left truncation
10105 glyph. Improve commentary.
10106 (display_line): Fix display of continuation glyphs on GUI frames
10107 when the right fringe is turned off and variable-size fonts are
10108 used in the window. Move the code that appends a stretch glyph to
10109 produce_special_glyphs, so that it could be used for truncation
10110 and continuation glyphs alike.
10111 (produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch
10112 glyph of a suitably computed width, to align the special glyphs at
10113 the window margin. Code moved from display_line. (Bug#11832)
10114
3e91a053
GM
101152012-07-12 Glenn Morris <rgm@gnu.org>
10116
ba9e4b84
GM
10117 * s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES.
10118
10119 * s/gnu-linux.h, s/hpux10-20.h:
10120 Do not unconditionally define HAVE_XRMSETDATABASE.
10121
3e91a053
GM
10122 * s/gnu-linux.h (UNIX98_PTYS): Let configure set it.
10123
b300b1f4
PE
101242012-07-12 Paul Eggert <eggert@cs.ucla.edu>
10125
10126 Fix typos that broke OS X build.
10127 Reported by Randal L. Schwartz in
10128 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00225.html>.
10129 * nsterm.m (ns_timeout): Add missing local decl.
10130 (ns_get_color): snprintf -> sprintf, to fix typo.
10131
6e777848
GM
101322012-07-12 Glenn Morris <rgm@gnu.org>
10133
3f922c37
GM
10134 * src/s/aix4-2.h, src/s/cygwin.h, src/s/darwin.h:
10135 * src/s/gnu-linux.h, src/s/hpux10-20.h, src/s/irix6-5.h:
10136 * src/s/sol2-6.h, src/s/unixware.h, src/s/usg5-4-common.h:
10137 Move PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF to configure.
10138
0ab7b23a
GM
10139 * s/cygwin.h, s/darwin.h, s/gnu-linux.h, s/irix6-5.h:
10140 Move PTY_OPEN to configure.
10141
6e777848
GM
10142 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
10143 * s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h, s/template.h:
10144 * s/usg5-4-common.h: Move FIRST_PTY_LETTER, PTY_ITERATION to configure.
10145
4a7edc24
DA
101462012-07-12 Dmitry Antipov <dmantipov@yandex.ru>
10147
10148 Use empty_unibyte_string where applicable.
10149 * keyboard.c (parse_tool_bar_item): Use empty_unibyte_string.
10150 * lread.c (read1): Likewise.
10151 * xsettings.c (syms_of_xsettings): Likewise.
10152
308aab79
GM
101532012-07-12 Glenn Morris <rgm@gnu.org>
10154
42bd1719
GM
10155 * s/cygwin.h (G_SLICE_ALWAYS_MALLOC):
10156 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN):
7ccad002
GM
10157 * s/irix6-5.h (SETPGRP_RELEASES_CTTY, PREFER_VSUSP):
10158 * s/hpux10-20.h (RUN_TIME_REMAP):
10159 * s/bsd-common.h (TABDLY): Move to configure.
10160
10161 * s/hpux10-20.h, s/sol2-6.h: Move XOS_NEEDS_TIME_H to configure.
10162
10163 * s/bsd-common.h, s/darwin.h: Move TAB3 to configure.
10164
ea0bbd17 10165 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
42bd1719 10166 (BROKEN_SIGPOLL, BROKEN_GET_CURRENT_DIR_NAME): Let configure set them.
ea0bbd17
GM
10167
10168 * s/darwin.h (NO_ABORT, NO_MATHERR): Let configure set them.
51c3b9b4 10169
308aab79
GM
10170 * s/bsd-common.h, s/cygwin.h, s/gnu-linux.h, s/irix6-5.h:
10171 * s/template.h: Move NARROWPROTO to configure.
10172
ee1cf5cf
GM
101732012-07-11 Glenn Morris <rgm@gnu.org>
10174
30fe9bf4
GM
10175 * s/gnu-linux.h, s/sol2-6.h: No longer define POSIX,
10176 unused since 2011-01-17 change to systty.h.
10177
ee1cf5cf
GM
10178 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h, s/gnu-linux.h:
10179 * s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
10180 Move HAVE_PTYS and HAVE_SOCKETS to configure.
10181
63e47e07
PE
101822012-07-11 Paul Eggert <eggert@cs.ucla.edu>
10183
10184 * s/sol2-6.h (HAVE_LIBKSTAT): Remove. (Bug#11914)
10185
c43fb4c3
GM
101862012-07-11 Glenn Morris <rgm@gnu.org>
10187
10188 * s/darwin.h, s/gnu-linux.h, s/template.h:
10189 Move INTERRUPT_INPUT to configure.
10190
e8df9267
DA
101912012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
10192
10193 Minor adjustments to interning code.
10194 * lisp.h (intern, intern_c_string): Redefine as static inline
10195 wrappers for intern_1 and intern_c_string_1, respectively.
10196 (intern_1, intern_c_string_1): Rename prototypes.
14ae4239
BT
10197 * lread.c (intern_1, intern_c_string_1, oblookup):
10198 Simplify Vobarray checking.
e8df9267
DA
10199 * font.c (font_intern_prop): Likewise. Adjust comment.
10200 * w32font.c (intern_font_name): Likewise.
10201
34348bd4
AS
102022012-07-11 Andreas Schwab <schwab@linux-m68k.org>
10203
d96a1e0c
AS
10204 * gnutls.c (Fgnutls_boot): Properly parse :keylist argument.
10205
34348bd4
AS
10206 * coding.c (Fdefine_coding_system_internal): Use XCAR/XCDR instead
10207 of Fcar/Fcdr if possible.
10208 * font.c (check_otf_features): Likewise.
10209 * fontset.c (Fnew_fontset): Likewise.
10210 * gnutls.c (Fgnutls_boot): Likewise.
10211 * minibuf.c (read_minibuf): Likewise.
10212 * msdos.c (IT_set_frame_parameters): Likewise.
10213 * xmenu.c (Fx_popup_dialog): Likewise.
10214 * w32menu.c (Fx_popup_dialog): Likewise.
10215
c8add24e
GM
102162012-07-11 Glenn Morris <rgm@gnu.org>
10217
4b575b3c
GM
10218 * s/bsd-common.h, s/cygwin.h: No need to undefine INTERRUPT_INPUT,
10219 since nothing has defined it on these platforms.
10220
09f4e3b0
GM
10221 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h:
10222 * s/irix6-5.h: Move SIGNALS_VIA_CHARACTERS to configure.
10223
172bedef
GM
10224 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
10225 * s/gnu-linux.h, s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
10226 Move CLASH_DETECTION to configure.
10227
249685df
GM
10228 * s/gnu.h: Remove file, which is now empty.
10229
c8add24e
GM
10230 * s/gnu.h, s/gnu-linux.h:
10231 Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure.
10232
b41253a3
JW
102332012-07-11 John Wiegley <johnw@newartisans.com>
10234
10235 * alloc.c (mark_memory): Guard the "no_address_safety_analysis"
10236 function attribute, so we only use it if it exists in the
10237 compiler.
10238
d923b542
DA
102392012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
10240
10241 Avoid call to strlen in fast_c_string_match_ignore_case.
10242 * search.c (fast_c_string_match_ignore_case): Change to use
10243 length argument. Adjust users accordingly.
10244 * lisp.h (fast_c_string_match_ignore_case): Adjust prototype.
10245
5ebbef1d
PE
102462012-07-11 Paul Eggert <eggert@cs.ucla.edu>
10247
bb352260
PE
10248 Assume mkdir, rmdir.
10249 * sysdep.c (mkdir) [!HAVE_MKDIR]: Remove.
10250 * sysdep.c (rmdir) [!HAVE_RMDIR]: Remove.
10251
57054ddd
PE
10252 Assume rename.
10253 * sysdep.c (rename) [!HAVE_RENAME]: Remove.
10254
b747d3f7
PE
10255 Assume perror.
10256 * s/hpux10-20.h (HAVE_PERROR): Remove.
10257 * sysdep.c (perror) [HPUX && !HAVE_PERROR]:
10258 Remove dummy definition, as this problem was obsolete long ago.
10259
5ebbef1d
PE
10260 Assume strerror.
10261 * sysdep.c (strerror) [!HAVE_STRERROR && !WINDOWSNT]: Remove.
10262
984e7f30
DA
102632012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
10264
10265 Avoid calls to strlen in font processing functions.
10266 * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname)
14ae4239
BT
10267 (font_open_by_name): Change to use length argument.
10268 Adjust users accordingly.
d923b542
DA
10269 * font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd):
10270 Adjust prototypes.
10271 * xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd):
10272 Change to return ptrdiff_t.
984e7f30
DA
10273 (xfont_list_pattern, xfont_match): Use length returned by
10274 xfont_decode_coding_xlfd.
10275 * xfns.c (x_default_font_parameter): Omit useless xstrdup.
10276
20e94fdd
GM
102772012-07-11 Glenn Morris <rgm@gnu.org>
10278
9d596af3
GM
10279 * s/darwin.h, s/freebsd.h, s/netbsd.h:
10280 Move DONT_REOPEN_PTY to configure.
10281
20e94fdd
GM
10282 * sound.c (DEFAULT_SOUND_DEVICE) [!WINDOWSNT]:
10283 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Let configure set it.
10284
e99a530f
PE
102852012-07-10 Paul Eggert <eggert@cs.ucla.edu>
10286
22ffb973
PE
10287 Remove "#define unix" that is no longer needed (Bug#11905).
10288 * s/aix4-2.h (unix): Remove; no longer needed.
10289
e9a9ae03
PE
10290 EMACS_TIME simplification (Bug#11875).
10291 This replaces macros (which typically do not work in GDB)
10292 with functions, typedefs and enums, making the code easier to debug.
10293 The functional style also makes code easier to read and maintain.
10294 * systime.h: Include <sys/time.h> on all hosts, not just if
10295 WINDOWSNT, since 'struct timeval' is needed in general.
10296 (EMACS_TIME): Now a typedef, not a macro.
10297 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
10298 not macros.
10299 (EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
10300 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
10301 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
10302 (EMACS_TIME_LE): Now functions, not macros.
10303 (EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
10304 (EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
10305 which are not functions. All uses rewritten to use:
10306 (make_emacs_time): New function.
10307 (EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
10308 (EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
10309 not functions. All uses rewritten to use the following, respectively:
10310 (emacs_secs_addr, invalid_emacs_time, get_emacs_time)
10311 (add_emacs_time, sub_emacs_time): New functions.
ed9265fc 10312 * atimer.c: Don't include <sys/time.h>, as "systime.h" does this.
e9a9ae03
PE
10313 * fileio.c (Fcopy_file):
10314 * xterm.c (XTflash): Get the current time closer to when it's used.
10315 * makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
10316
ffacb126
PE
10317 * bytecode.c (targets): Suppress -Woverride-init warnings.
10318
e99a530f
PE
10319 Simplify by avoiding confusing use of strncpy etc.
10320 * doc.c (Fsnarf_documentation):
10321 * fileio.c (Ffile_name_directory, Fsubstitute_in_file_name):
10322 * frame.c (Fmake_terminal_frame):
10323 * gtkutil.c (get_utf8_string):
10324 * lread.c (openp):
10325 * nsmenu.m (ns_update_menubar):
10326 * regex.c (regerror):
10327 Prefer memcpy to strncpy and strncat when either will do.
10328 * fileio.c (Fsubstitute_in_file_name):
10329 * keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached)
10330 (menu_separator_name_p):
10331 * nsmenu.m (ns_update_menubar):
10332 Prefer memcmp to strncmp when either will do.
10333 * nsterm.m: Include <ftoastr.h>.
10334 (ns_get_color):
10335 * s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF):
10336 Prefer snprintf to strncpy.
10337 * nsterm.m (ns_term_init):
10338 * widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy.
10339 * nsterm.m (ns_term_init):
10340 Avoid the need for strncpy, by using build_string or
10341 make_unibyte_string directly. Use dtoastr, not snprintf.
10342 * process.c (Fmake_network_process): Diagnose service names that
10343 are too long, rather than silently truncating them or creating
10344 non-null-terminated names.
10345 (Fnetwork_interface_info): Likewise, for interface names.
10346 * sysdep.c (system_process_attributes) [GNU_LINUX]:
10347 Prefer sprintf to strncat.
10348 * xdisp.c (debug_method_add) [GLYPH_DEBUG]:
10349 Prefer vsnprintf to vsprintf + strncpy.
10350
c59592b3
GM
103512012-07-10 Glenn Morris <rgm@gnu.org>
10352
10353 * dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]:
10354 Clarify fallback case.
10355
7d7bbefd
DA
103562012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
10357
10358 Use XCAR and XCDR instead of Fcar and Fcdr where possible.
10359 * callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c,
10360 * frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c,
d923b542 10361 * w32menu.c, window.c, xmenu.c: Change to use XCAR and XCDR
7d7bbefd
DA
10362 where argument type is known to be a Lisp_Cons.
10363
3a4c8000
TT
103642012-07-10 Tom Tromey <tromey@redhat.com>
10365
10366 * bytecode.c (BYTE_CODE_THREADED): New macro.
10367 (BYTE_CODES): New macro. Replaces all old byte-code defines.
10368 (enum byte_code_op): New type.
10369 (CASE, NEXT, FIRST, CASE_DEFAULT, CASE_ABORT): New macros.
10370 (exec_byte_code): Use them. Use token threading when applicable.
10371
2a0213a6
DA
103722012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
10373
10374 Optimize pure C strings initialization.
10375 * lisp.h (make_pure_string): Fix prototype.
10376 (build_pure_c_string): New function, defined as static inline. This
10377 provides a better opportunity to optimize away calls to strlen when
10378 the function is called with compile-time constant argument.
10379 * alloc.c (make_pure_c_string): Fix comment. Change to add nchars
10380 argument, adjust users accordingly. Use build_pure_c_string where
10381 appropriate.
10382 * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
10383 * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
10384 * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
10385
cb1caeaf
DA
103862012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
10387
10388 Avoid calls to strlen in miscellaneous functions.
10389 * buffer.c (init_buffer): Use precalculated len, adjust if needed.
10390 * font.c (Ffont_xlfd_name): Likewise. Change to call make_string.
10391 * lread.c (openp): Likewise.
10392
c293e30c
DA
103932012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
10394
10395 Avoid calls to strlen in path processing functions.
10396 * fileio.c (file_name_as_directory): Add comment. Change to add
10397 srclen argument and return the length of result. Adjust users
10398 accordingly.
10399 (directory_file_name): Fix comment. Change to add srclen argument,
14ae4239
BT
10400 swap 1st and 2nd arguments to obey the common convention.
10401 Adjust users accordingly.
c293e30c
DA
10402 * filelock.c (fill_in_lock_file_name): Avoid calls to strlen.
10403
9e059e3f
GM
104042012-07-10 Glenn Morris <rgm@gnu.org>
10405
d02eb359
GM
10406 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h:
10407 Move PENDING_OUTPUT_COUNT definition to configure.
10408
882cf227
GM
10409 * s/irix6-5.h (DATA_START, DATA_SEG_BITS):
10410 * s/hpux10-20.h (DATA_SEG_BITS, DATA_START):
10411 * s/gnu.h (DATA_START): Move definitions to configure.
10412
af6e839f
GM
10413 * s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards.
10414 We include usg5-4-common.h, which defines them both.
10415
40289a12
GM
10416 * s/gnu.h: Don't include fcntl.h (every file in Emacs that uses
10417 O_RDONLY already includes it).
10418
9e059e3f
GM
10419 Stop ns builds setting the EMACSLOADPATH environment variable.
10420 * nsterm.m (ns_load_path): Rename from ns_init_paths.
10421 Now it does not set EMACSLOADPATH, just returns the load-path string.
10422 * nsterm.h: Update accordingly.
10423 * lread.c [HAVE_NS]: Include nsterm.h.
10424 (init_lread) [HAVE_NS]: Use ns_load_path.
10425 * emacs.c (main) [HAVE_NS]: No longer call ns_init_paths.
10426
7c4e8ec0
GM
104272012-07-09 Glenn Morris <rgm@gnu.org>
10428
d4f600ff
GM
10429 * s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here,
10430 since the included bsd-common.h does so.
10431
cbb31951
GM
10432 Stop ns builds setting the EMACSPATH environment variable.
10433 * nsterm.m (ns_exec_path): New function, split from ns_init_paths.
10434 (ns_init_paths): Do not set EMACSPATH.
10435 * nsterm.h (ns_exec_path): Add it.
10436 * callproc.c (init_callproc_1, init_callproc) [HAVE_NS]:
10437 Use ns_exec_path.
10438
7c4e8ec0
GM
10439 * nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return.
10440
26bccfae
PE
104412012-07-09 Paul Eggert <eggert@cs.ucla.edu>
10442
a0bee46f
PE
10443 * process.c (wait_reading_process_output): 'waitchannels' was unset
10444 when read_kbd || !NILP (wait_for_cell); fix this.
10445
5994c183
PE
10446 Add GCC-style 'const' attribute to functions that can use it.
10447 * character.h (char_resolve_modifier_mask):
10448 * keyboard.h (make_ctrl_char):
10449 * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe)
10450 (init_character_once, next_almost_prime, init_fns, init_image)
10451 (flush_pending_output, init_sound):
10452 * mem-limits.h (start_of_data):
10453 * menu.h (finish_menu_items):
10454 Add ATTRIBUTE_CONST.
10455 * emacs.c (DEFINE_DUMMY_FUNCTION):
10456 Declare the dummy function with ATTRIBUTE_CONST.
10457 * lisp.h (Fbyteorder, Fmax_char, Fidentity):
10458 Add decls with ATTRIBUTE_CONST.
10459
26bccfae
PE
10460 Minor improvements to make_formatted_string.
10461 * alloc.c (make_formatted_string): Prefer int to ptrdiff_t
10462 where int is good enough, as vsprintf returns an int.
10463 * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF.
10464
a8290ec3
DA
104652012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
10466
10467 Use make_formatted_string to avoid double length calculation.
10468 * lisp.h (make_formatted_string): New prototype.
10469 * alloc.c (make_formatted_string): New function.
10470 * buffer.c (Fgenerate_new_buffer_name): Use it.
220cb2bd 10471 * dbusbind.c (syms_of_dbusbind): Likewise.
a8290ec3
DA
10472 * editfns.c (Fcurrent_time_zone): Likewise.
10473 * filelock.c (get_boot_time): Likewise.
10474 * frame.c (make_terminal_frame, set_term_frame_name)
10475 (x_report_frame_params): Likewise.
10476 * image.c (gs_load): Likewise.
10477 * minibuf.c (get_minibuffer): Likewise.
10478 * msdos.c (dos_set_window_size): Likewise.
10479 * process.c (make_process): Likewise.
10480 * xdisp.c (ensure_echo_area_buffers): Likewise.
10481 * xsettings.c (apply_xft_settings): Likewise.
10482
d01ba2f1
GM
104832012-07-09 Glenn Morris <rgm@gnu.org>
10484
10485 Stop ns builds polluting the environment with EMACSDATA, EMACSDOC.
10486 * nsterm.m (ns_etc_directory): New function, split from ns_init_paths.
10487 (ns_init_paths): Do not set EMACSDATA, EMACSDOC.
10488 * nsterm.h (ns_etc_directory): Add it.
10489 * callproc.c [HAVE_NS]: Include nsterm.h.
10490 (init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory.
10491
f1f924b6
DA
104922012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
10493
10494 Move marker debugging code under MARKER_DEBUG.
10495 * marker.c (MARKER_DEBUG): Move marker debugging code under
10496 #ifdef MARKER_DEBUG because byte_char_debug_check is too slow
10497 for bootstrap with --enable-checking (~3x slowdown reported
10498 by Juanma Barranquero <lekktu@gmail.com>).
10499 (verify_bytepos): Move under #ifdef MARKER_DEBUG.
10500
ab531b66
PE
105012012-07-08 Paul Eggert <eggert@cs.ucla.edu>
10502
10503 * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t.
10504 See <http://bugs.gnu.org/11825#29>.
10505
c4b3bc8a
EZ
105062012-07-08 Eli Zaretskii <eliz@gnu.org>
10507
10508 * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph
10509 has no font, use the frame's font. (Bug#11813)
3434fe8a
EZ
10510 (display_line): Add commentary about displaying truncation glyphs
10511 on GUI frames.
10512 (produce_special_glyphs): Move here from term.c.
10513
10514 * term.c (produce_special_glyphs): Move to xdisp.c.
10515
10516 * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c
10517 section.
c4b3bc8a 10518
b676b881
AS
105192012-07-07 Andreas Schwab <schwab@linux-m68k.org>
10520
f17c5273
AS
10521 * xdisp.c (display_line): Avoid warning about implicit declaration
10522 of FRAME_FONT.
10523
298819b9
AS
10524 * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM.
10525
b676b881
AS
10526 * lisp.h: Remove empty conditional.
10527
6045c4fd
PE
105282012-07-07 Paul Eggert <eggert@cs.ucla.edu>
10529
b3350bf9
PE
10530 * lread.c (load_path_check): Now static.
10531
6045c4fd
PE
10532 Fix some minor --with-ns problems found by static checking.
10533 * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
10534 (x_set_font) [!HAVE_X_WINDOWS]:
10535 * image.c (xpm_load_image) [HAVE_NS]:
10536 (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
10537 (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
10538 Remove unused local.
10539 (Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
10540 (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
10541 * image.c (x_create_bitmap_from_file) [HAVE_NS]:
10542 (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
10543 * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
10544 * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
10545 Fix pointer signedness problem.
10546 * xfaces.c (FRAME_X_FONT_TABLE):
10547 * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
10548
929e7845
GM
105492012-07-07 Glenn Morris <rgm@gnu.org>
10550
10551 * lread.c (load_path_check): New function, split from init_lread.
10552 (init_lread): Reorganize. Motivation:
10553 If EMACSLOADPATH is set, check/warn about that rather than the
10554 defaults, which we are not going to use. Hence we can remove
10555 the turn_off_warning and WINDOWSNT || HAVE_NS tests.
10556 Don't warn if site-lisp directories are missing.
10557 If not installed, start from a blank load-path, since
10558 PATH_LOADSEARCH refers to the eventual installation directories.
10559
58dd0aa4
EZ
105602012-07-07 Eli Zaretskii <eliz@gnu.org>
10561
10562 Support truncation and continuation glyphs on GUI frames, when
10563 fringes are disabled. (Bug#11832)
10564 * xdisp.c (init_iterator): Get dimensions of truncation and
14ae4239
BT
10565 continuation glyphs even if on GUI frames.
10566 Adjust it->last_visible_x on GUI frames when the left or right fringes,
58dd0aa4
EZ
10567 or both, are absent.
10568 (start_display, move_it_in_display_line_to): Handle the case of a
10569 GUI frame without a fringe to display continuation or truncation
10570 glyphs.
10571 (insert_left_trunc_glyphs): Support GUI frames: make sure
10572 truncation glyphs overwrite enough glyphs from the current line to
10573 have sufficient space in pixels.
10574 (display_line): Support truncation and continuation glyphs on GUI
10575 frames. If some spare pixels are left on the line after inserting
10576 the truncation glyphs, fill that space with a stretch glyph of a
10577 suitably computed width.
10578
10579 * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not
10580 produce_glyphs, to support GUI sessions.
10581
31571fd7
PE
105822012-07-07 Paul Eggert <eggert@cs.ucla.edu>
10583
5a16b9bc
PE
10584 * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781).
10585
f3047c75
PE
10586 * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797).
10587
31571fd7
PE
10588 Do not require float-time's arg to fit in time_t (Bug#11825).
10589 This works better on hosts where time_t is unsigned, and where
10590 float-time is applied to the (negative) difference between two times.
10591 * editfns.c (decode_time_components): Last arg is now double *,
10592 not int *, and means to store all the result as a double, without
10593 worrying about whether the seconds part fits in time_t.
10594 All callers changed.
10595 (lisp_time_argument): Remove last int * arg, as it's no longer needed.
10596 All callers changed.
10597 (Ffloat_time): Do not fail merely because the specified time falls
10598 outside of time_t range.
10599
4516fbef
GM
106002012-07-07 Glenn Morris <rgm@gnu.org>
10601
10602 * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV):
10603 * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM):
10604 * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively).
10605
07adc2c6
JB
106062012-07-07 Juanma Barranquero <lekktu@gmail.com>
10607
10608 * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)):
10609 Update dependencies.
10610
10611 * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp.
10612
fd573f31
PE
106132012-07-06 Paul Eggert <eggert@cs.ucla.edu>
10614
fee5959d
PE
10615 Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
10616 * dispextern.h, nsfns.m, nsterm.m: Include <c-strcase.h>.
10617 * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp.
10618 * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp.
10619 * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp.
10620 * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove.
10621
fd573f31
PE
10622 * xfont.c (compare_font_names): Redo to omit the need for casts.
10623
ddadbc0e
AS
106242012-07-06 Andreas Schwab <schwab@linux-m68k.org>
10625
fca8d6b6
AS
10626 * xfns.c (Fx_change_window_property): Doc fix.
10627 * w32fns.c (Fx_change_window_property): Doc fix.
10628
ddadbc0e
AS
10629 * w32fns.c (Fx_window_property): Accept the same arguments as the
10630 X Windows version. Doc fix.
10631 * xfns.c (Fx_window_property): Doc fix. (Bug#11870)
10632
ed9265fc 106332012-07-06 Juanma Barranquero <lekktu@gmail.com>
f247498e
JB
10634 Eli Zaretskii <eliz@gnu.org>
10635
10636 * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt.
10637 Windows-specific code from nt/config.nt moved here.
10638 Obsolete settings removed.
10639
216ee680
PE
106402012-07-06 Paul Eggert <eggert@cs.ucla.edu>
10641
10642 * process.c: Avoid unnecessary calls to gettime.
10643 (wait_reading_process_output): Don't get the time of day
10644 when gobbling data immediately and not waiting, as there's no need
10645 for it in that case. This removes a FIXME.
10646
bdd091e4
JD
106472012-07-06 Jan Djärv <jan.h.d@swipnet.se>
10648
10649 * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3
10650 is defined (Bug#11768).
10651
9d44f8ce
DA
106522012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
10653
10654 Fix marker debugging code.
10655 * marker.c (byte_char_debug_check): Do not perform the check
10656 if buffer is not multibyte.
090bd7cb
JB
10657 (buf_charpos_to_bytepos, buf_bytepos_to_charpos):
10658 Call byte_char_debug_check with correct arguments.
9d44f8ce 10659
90fc4786
DA
106602012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
10661
10662 Compile marker debugging code only if ENABLE_CHECKING is defined.
090bd7cb
JB
10663 * marker.c (byte_char_debug_check, count_markers):
10664 Use only if ENABLE_CHECKING is defined.
90fc4786
DA
10665 (byte_debug_flag): Remove.
10666 (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos):
10667 Always call byte_char_debug_check if ENABLE_CHECKING is defined.
10668
7b7ae965
DA
106692012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
10670
4e57b342
DA
10671 Avoid code repetition in marker-related functions.
10672 * marker.c (attach_marker): New function.
10673 (Fset_marker, set_marker_restricted, set_marker_both)
10674 (set_marker_restricted_both): Use it.
10675 (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at):
10676 Consistently rename charno to charpos.
10677 (marker_position): Add eassert.
10678 (marker_byte_position): Convert to eassert.
10679
106802012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
10681
10682 Simplify list operations in unchain_overlay and unchain_marker.
7b7ae965 10683 * buffer.c (unchain_overlay): Simplify. Add comment.
4e57b342 10684 * marker.c (unchain_marker): Simplify. Fix comments.
7b7ae965 10685
657924ff
DA
106862012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
10687
10688 Introduce fast path for the widely used marker operation.
10689 * alloc.c (build_marker): New function.
10690 * lisp.h (build_marker): New prototype.
10691 * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
10692 * composite.c (autocmp_chars): Likewise.
10693 * editfns.c (buildmark): Remove.
10694 (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
10695 (save_restriction_save): Use build_marker.
10696 * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
10697 * window.c (save_window_save): Likewise.
10698
041a49a6
DA
106992012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
10700
10701 Do not use Fdelete_overlay in delete_all_overlays
10702 to avoid redundant calls to unchain_overlay.
10703 * buffer.c (drop_overlay): New function.
10704 (delete_all_overlays, Fdelete_overlay): Use it.
10705 * minibuf.c (get_minibuffer): Fix comment.
10706
7dca65a4
PE
107072012-07-06 Paul Eggert <eggert@cs.ucla.edu>
10708
10709 Port to OpenBSD 5.1 amd64.
10710 * sysdep.c [BSD_SYSTEM]: Include <sys/param.h> before <sys/sysctl.h>.
10711 This is needed for OpenBSD, and should be harmless on all BSD systems.
10712 Also, include <sys/sysctl.h>, as it should be available on all
10713 BSD_SYSTEM hosts given that we're already calling sysctl in that case.
10714 (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but
10715 use p_pid member, not kp_proc.pid.
10716
8eb876e2
GM
107172012-07-06 Glenn Morris <rgm@gnu.org>
10718
10719 * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows.
10720
38182d90
PE
107212012-07-05 Paul Eggert <eggert@cs.ucla.edu>
10722
10723 More xmalloc and related cleanup.
10724 * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
10725 * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
10726 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
10727 * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
10728 * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
10729 * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
10730 * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
10731 * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
10732 * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
10733 * xterm.c:
10734 Omit needless casts involving void * pointers and allocation.
10735 Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
10736 as the former is more robust if P's type is changed.
10737 Prefer xzalloc to xmalloc + memset 0.
10738 Simplify malloc-or-realloc to realloc.
10739 Don't worry about xmalloc returning a null pointer.
10740 Prefer xstrdup to xmalloc + strcpy.
10741 * editfns.c (Fmessage_box): Grow message_text by at least 80 when
10742 growing it.
10743 * keyboard.c (apply_modifiers_uncached): Prefer local array to
10744 alloca of a constant.
10745
6dd5a677
EZ
107462012-07-05 Eli Zaretskii <eliz@gnu.org>
10747
10748 * xdisp.c (display_line): Fix horizontal pixel coordinates when
10749 hscroll is larger than the line width. Fixes long and futile
10750 looping inside extend_face_to_end_of_line (on a TTY) producing
10751 glyphs that are not needed and thrown away.
10752
6b312f0f
DA
107532012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
10754
10755 * marker.c (set_marker_restricted_both): Simplify by using
10756 clip_to_bounds.
10757
f520ef9b
PE
107582012-07-05 Paul Eggert <eggert@cs.ucla.edu>
10759
10760 * editfns.c (region_limit): Simplify by using clip_to_bounds.
10761
383b7c95
JD
107622012-07-05 Jan Djärv <jan.h.d@swipnet.se>
10763
10764 * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is
10765 not defined (Bug#11768).
10766 (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768).
10767 (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser)
10768 (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new
10769 followed by gtk_box_set_homogeneous (Bug#11768).
10770 (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768).
090bd7cb
JB
10771 (update_theme_scrollbar_width, xg_create_scroll_bar):
10772 Use gtk_scrollbar_new (Bug#11768).
383b7c95
JD
10773 (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3.
10774 (is_box_type): New function (Bug#11768).
10775 (xg_tool_item_stale_p): Call is_box_type.
5293d758 10776 (xg_initialize): Get settings by calling gtk_settings_get_for_screen
383b7c95
JD
10777 with default display (Bug#11768).
10778
d6e7bf45
EZ
107792012-07-05 Eli Zaretskii <eliz@gnu.org>
10780
10781 * xdisp.c (window_hscroll_limited): New function.
10782 (pos_visible_p, init_iterator): Use it to avoid overflow of pixel
10783 coordinates when window's hscroll is set to insanely large
10784 values. (Bug#11857)
10785
431391ec
JB
107862012-07-05 Juanma Barranquero <lekktu@gmail.com>
10787
10788 * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo.
10789 ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies.
10790
23f86fce
DA
107912012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
10792
10793 Cleanup xmalloc.
10794 * lisp.h (xzalloc): New prototype. Omit needless casts.
10795 * alloc.c (xzalloc): New function. Omit needless casts.
10796 * charset.c: Omit needless casts. Convert all calls to
10797 xmalloc with following memset to xzalloc.
10798 * dispnew.c: Likewise.
10799 * fringe.c: Likewise.
10800 * image.c: Likewise.
10801 * sound.c: Likewise.
10802 * term.c: Likewise.
10803 * w32fns.c: Likewise.
10804 * w32font.c: Likewise.
10805 * w32term.c: Likewise.
10806 * xfaces.c: Likewise.
10807 * xfns.c: Likewise.
10808 * xterm.c: Likewise.
10809 * atimer.c: Omit needless casts.
10810 * buffer.c: Likewise.
10811 * callproc.c: Likewise.
10812 * ccl.c: Likewise.
10813 * coding.c: Likewise.
10814 * composite.c: Likewise.
10815 * doc.c: Likewise.
10816 * doprnt.c: Likewise.
10817 * editfns.c: Likewise.
10818 * emacs.c: Likewise.
10819 * eval.c: Likewise.
10820 * filelock.c: Likewise.
10821 * fns.c: Likewise.
10822 * gtkutil.c: Likewise.
10823 * keyboard.c: Likewise.
10824 * lisp.h: Likewise.
10825 * lread.c: Likewise.
10826 * minibuf.c: Likewise.
10827 * msdos.c: Likewise.
10828 * print.c: Likewise.
10829 * process.c: Likewise.
10830 * region-cache.c: Likewise.
10831 * search.c: Likewise.
10832 * sysdep.c: Likewise.
10833 * termcap.c: Likewise.
10834 * terminal.c: Likewise.
10835 * tparam.c: Likewise.
10836 * w16select.c: Likewise.
10837 * w32.c: Likewise.
10838 * w32reg.c: Likewise.
10839 * w32select.c: Likewise.
10840 * w32uniscribe.c: Likewise.
10841 * widget.c: Likewise.
10842 * xdisp.c: Likewise.
10843 * xmenu.c: Likewise.
10844 * xrdb.c: Likewise.
10845 * xselect.c: Likewise.
10846
0497dc44
PE
108472012-07-05 Paul Eggert <eggert@cs.ucla.edu>
10848
10849 * fileio.c (time_error_value): Check the right error number.
10850 Problem reported by Troels Nielsen in
10851 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00095.html>.
10852
356e7178
PE
108532012-07-04 Paul Eggert <eggert@cs.ucla.edu>
10854
4e71fd89
PE
10855 * window.c (set_window_hscroll): Revert the 100000 hscroll limit.
10856 This should be fixed in a better way; see Eli Zaretskii in
10857 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
10858 (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
10859
f0941253
PE
10860 * fileio.c (time_error_value): Rename from special_mtime.
10861 The old name's problems were noted by Eli Zaretskii in
10862 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00087.html>.
10863
065c9eb4
PE
10864 * emacs.c (gdb_pvec_type): Change it back to enum pvec_type.
10865 This variable's comment says Emacs needs at least one GDB-visible
10866 symbol of type enum pvec_type, to work around GDB problems.
10867 The symbol's value doesn't matter.
10868
356e7178
PE
10869 * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';'
10870 that causes compilation to fail on pre-C99 compilers.
10871
ed9265fc 108722012-07-04 Juanma Barranquero <lekktu@gmail.com>
95f61aa2
JB
10873
10874 * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY)
10875 (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete.
10876
3884d954
DA
108772012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
10878
d209e2fb 10879 * buffer.c (init_buffer_once): Fix initialization of
3884d954
DA
10880 headers for buffer_defaults and buffer_local_symbols.
10881 Reported by Juanma Barranquero <lekktu@gmail.com>.
10882
ee28be33
SM
108832012-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
10884
10885 Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
10886 * lisp.h (enum pvec_type): Use fewer bits.
10887 (PSEUDOVECTOR_SIZE_BITS): New constant.
10888 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
10889 (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
10890 change in pvec_type.
10891 (PSEUDOVECTOR_TYPEP): New macro.
10892 (TYPED_PSEUDOVECTORP): Use it.
10893 * fns.c (internal_equal): Adapt code to extract pvectype.
10894 * emacs.c (gdb_pvec_type): Update type.
10895 * alloc.c (PSEUDOVECTOR_NBYTES): New macro.
10896 (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
10897 (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
10898 (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
10899 (sweep_vectors): Use it. Use local var `total_bytes' instead of
10900 abusing vector->header.next.nbytes.
10901 (live_vector_p): Use PVEC_TYPE.
10902 (mark_object): Adapt code to extract pvectype. Use switch.
10903
c7f2cd7f
PE
109042012-07-04 Paul Eggert <eggert@cs.ucla.edu>
10905
10906 * doprnt.c (doprnt): Don't assume string length fits in 'int'.
10907 Tighten new eassert a bit.
10908
8ce70ed2
DA
109092012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
10910
10911 Fix compilation with --enable-gcc-warnings and -O1
10912 optimization level.
10913 * doprnt.c (doprnt): Change type of tem to int, initialize
10914 to avoid compiler warning. Add eassert.
10915 * search.c (simple_search): Initialize match_byte to avoid
10916 compiler warning. Add eassert.
10917
dea7f1e5
PE
109182012-07-04 Paul Eggert <eggert@cs.ucla.edu>
10919
24a212eb
PE
10920 Avoid weird behavior with large horizontal scrolls.
10921 Without this change, for example, large hscroll values would
10922 mess up Emacs's display on Fedora 15 x86, presumably due to
10923 overflows in int calculations in the display code.
10924 Also, if buffers had long lines, Emacs would freeze.
10925 * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
10926 (set_window_hscroll): New function, containing the old guts of
10927 Fset_window_hscroll. Return the clipped value.
10928 (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
10929 This avoids the need to check against PTRDIFF_MAX.
10930
dea7f1e5
PE
10931 * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
10932
76046526
DA
109332012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
10934
10935 * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
10936
39adff0d
PE
109372012-07-04 Paul Eggert <eggert@cs.ucla.edu>
10938
63807d47
PE
10939 * regex.c: Suppress GCC warning on RHEL 6. (Bug#11207)
10940 Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
10941 since GCC 4.4.6 issues a bogus warning for them.
10942
39adff0d
PE
10943 Fix bugs in file timestamp newness comparisons.
10944 * fileio.c (Ffile_newer_than_file_p):
10945 * lread.c (Fload): Use full timestamp resolution of files,
10946 not just the 1-second resolution, so that files that are only
10947 slightly newer still count as newer.
10948 * fileio.c (Ffile_newer_than_file_p): Don't assume file
10949 timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
10950
dbeed9a6
PE
109512012-07-03 Paul Eggert <eggert@cs.ucla.edu>
10952
10953 * fileio.c: Improve handling of file time marker. (Bug#11852)
10954 (special_mtime): New function.
10955 (Finsert_file_contents, Fverify_visited_file_modtime):
10956 Use it to set special mtime values consistently.
10957
636334d6
AS
109582012-07-03 Andreas Schwab <schwab@linux-m68k.org>
10959
10960 * fileio.c (Finsert_file_contents): Properly handle st_mtime
10961 marker for non-existing file. (Bug#11852)
10962
e2017fe2
GM
109632012-07-03 Glenn Morris <rgm@gnu.org>
10964
10965 * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
10966 and did not make it into globals.h).
10967
404dbd37
TT
109682012-07-03 Tom Tromey <tromey@redhat.com>
10969
10970 * window.c (Fset_window_margins, Fset_window_fringes)
10971 (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
10972 * textprop.c (Fprevious_property_change): No longer static.
10973 * syntax.c (Fsyntax_table_p): No longer static.
10974 * process.c (Fget_process, Fprocess_datagram_address): No longer
10975 static.
10976 * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
10977 * keyboard.c (Fcommand_execute): No longer static.
10978 Remove EXFUN.
10979 * insdel.c (Fcombine_after_change_execute): No longer static.
10980 * image.c (Finit_image_library): No longer static.
10981 * fileio.c (Fmake_symbolic_link): No longer static.
10982 * eval.c (Ffetch_bytecode): No longer static.
10983 * editfns.c (Fuser_full_name): No longer static.
d209e2fb
JB
10984 * doc.c (Fdocumentation_property, Fsnarf_documentation):
10985 No longer static.
404dbd37
TT
10986 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
10987 static.
10988 * dired.c (Ffile_attributes): No longer static.
10989 * composite.c (Fcomposition_get_gstring): No longer static.
10990 * callproc.c (Fgetenv_internal): No longer static.
10991
10992 * ccl.h: Remove EXFUNs.
10993 * buffer.h: Remove EXFUNs.
10994 * dispextern.h: Remove EXFUNs.
10995 * intervals.h: Remove EXFUNs.
10996 * fontset.h: Remove EXFUN.
10997 * font.h: Remove EXFUNs.
10998 * dosfns.c (system_process_attributes): Remove EXFUN.
10999 * keymap.h: Remove EXFUNs.
11000 * lisp.h: Remove EXFUNs.
11001 * w32term.h: Remove EXFUNs.
11002 * window.h: Remove EXFUNs.
11003 * xsettings.h: Remove EXFUN.
11004 * xterm.h: Remove EXFUN.
11005
8e4fd1e1
GM
110062012-07-03 Glenn Morris <rgm@gnu.org>
11007
11008 * lisp.h (Frandom): Make it visible to C.
11009 * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
11010 buffer for invisible buffers. (Bug#1229)
11011
ca95b3eb
DA
110122012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
11013
11014 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
11015 values which aren't power of 2.
14ae4239 11016 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro.
1f9f395d 11017 Verify its value and the value of VECTOR_BLOCK_SIZE. Adjust users
ca95b3eb
DA
11018 accordingly.
11019
7555c33f
SM
110202012-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
11021
11022 * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
11023
11024 * alloc.c (mark_object): Revert part of last patch to use `switch'.
11025
d12e8f5a
DA
110262012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
11027
11028 * alloc.c (allocate_vector_block): Remove redundant
11029 calls to mallopt if DOUG_LEA_MALLOC is defined.
11030 (allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
11031 avoid calls to mallopt if zero_vector is returned.
11032
296094c3
DA
110332012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
11034
11035 * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
11036 is enabled, avoid dereferencing NULL current_sblock if
11037 running undumped.
11038
36429c89
DA
110392012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
11040
11041 Cleanup basic buffer management.
11042 * buffer.h (struct buffer): Change layout to use generic vector
11043 marking code. Fix some comments. Change type of 'clip_changed'
11044 to bitfield. Remove unused #ifndef old.
11045 (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
11046 (GET_OVERLAYS_AT): Fix indentation.
11047 (for_each_per_buffer_object_at): New macro.
11048 * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
11049 (Fbuffer_local_variables): Use it.
11050 (init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
11051 * alloc.c (allocate_buffer): Adjust to match new layout of
11052 struct buffer. Fix comment.
11053 (mark_overlay): New function.
11054 (mark_buffer): Use it. Use mark_vectorlike to mark normal
11055 Lisp area of struct buffer.
11056 (mark_object): Use it. Adjust marking of misc objects
11057 and related comments.
11058
3b3e4cac
PE
110592012-07-02 Paul Eggert <eggert@cs.ucla.edu>
11060
11061 * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
11062 wrapper that is not needed because the wrapped code is a no-op (zero
11063 machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
11064 This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
11065
cf5c0175
DA
110662012-07-02 Dmitry Antipov <dmantipov@yandex.ru>
11067
11068 * alloc.c (mark_buffer): Simplify. Remove prototype.
11069 (mark_object): Add comment. Reorganize marking of vector-like
faf611c7 11070 objects. Use CHECK_LIVE for all vector-like objects except buffers
14ae4239
BT
11071 and subroutines when GC_CHECK_MARKED_OBJECTS is defined.
11072 Avoid redundant calls to mark_vectorlike for bool vectors.
cf5c0175 11073
ca26824c
GM
110742012-06-30 Glenn Morris <rgm@gnu.org>
11075
2e4c5312
GM
11076 * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
11077
ca26824c
GM
11078 * epaths.in (PATH_SITELOADSEARCH): New.
11079 * lread.c (init_lread): Use PATH_SITELOADSEARCH.
11080 This is rather than relying on --enable-locallisppath elements
11081 having "site-lisp" in their names. (Bug#10208#25, 11658)
11082
0d23c240
EZ
110832012-06-30 Eli Zaretskii <eliz@gnu.org>
11084
c9240d7a
EZ
11085 * w32proc.c (sys_select): Accept and ignore one more argument.
11086
11087 * w32.c (emacs_gnutls_pull): Call select with one more argument.
11088
0d23c240 11089 * sysselect.h [DOS_NT]: Don't include sys/select.h.
9ff8f76b 11090 (pselect) [!MS_DOS]: Redirect to sys_select.
0d23c240
EZ
11091
11092 * sysdep.c: Don't include dos.h and dosfns.h.
11093
11094 * process.c (sys_select):
11095 * msdos.c (sys_select): Accept one more argument and ignore it.
11096
11097 * msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
11098 adapt data types and code to that.
11099
11100 * dosfns.c:
11101 * msdos.c (gettime, settime): Define away the prototypes in dos.h,
11102 which clashes with the gnulib function of the same name.
11103
af5a5a98
AS
111042012-06-30 Andreas Schwab <schwab@linux-m68k.org>
11105
c5e4379c
AS
11106 * font.c (font_style_to_value, font_style_symbolic)
11107 (font_prop_validate_style): Add type checks for values in
11108 font_style_table.
11109
af5a5a98
AS
11110 * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
11111 argument.
11112 * character.c, charset.c, menu.c, process.c, window.c: Adjust all
11113 uses.
11114
8d38f461
EZ
111152012-06-29 Eli Zaretskii <eliz@gnu.org>
11116
2e5a6631
EZ
11117 * xdisp.c (try_window_id): Undo last change.
11118
8d38f461
EZ
11119 * w32.c (getwd): Adjust commentary about startup_dir.
11120 (init_environment): Always call sys_access, even in non-MSVC
11121 builds. Don't chdir to the directory of the Emacs executable.
11122 This undoes code from 1997 which was justified by the need to
11123 "avoid conflicts when removing and renaming directories". But its
11124 downside was that every relative file name was being interpreted
11125 relative to the directory of the Emacs executable, which can never
11126 be TRT. In particular, it broke sys_access when called with
11127 relative file names.
11128 (sys_access): Map GetLastError to errno.
11129
2af3565e
DA
111302012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
11131
11132 * window.h (struct window): Change type of 'fringes_outside_margins'
11133 to bitfield. Fix comment. Adjust users accordingly.
cf5c0175 11134 (struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
2af3565e
DA
11135 Adjust comment.
11136 * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
11137 to ptrdiff_t.
11138
c8d3a25c 111392012-06-29 Andreas Schwab <schwab@linux-m68k.org>
57570cd3 11140
c8d3a25c
GM
11141 * gnutls.c (emacs_gnutls_handshake):
11142 Add QUIT to make the loop interruptible.
57570cd3 11143
c8d3a25c 111442012-06-29 Glenn Morris <rgm@gnu.org>
d01fd55f 11145
c8d3a25c
GM
11146 * charset.c (init_charset): Make lack of etc/charsets fatal.
11147
3e984ee8
DA
111482012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
11149
11150 * editfns.c (region_limit): Fix type mismatch.
11151
ef884f23
DA
111522012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
11153
11154 * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
11155 undefined. Convert from xassert to eassert.
11156 * nsmenu.m: Convert from xassert to eassert.
11157 * nsterm.m: Likewise.
11158
7d7e0027
SM
111592012-06-28 Stefan Monnier <monnier@iro.umontreal.ca>
11160
11161 * editfns.c (region_limit): Clip to narrowing (bug#11770).
11162
aa754e6a
PE
111632012-06-28 Paul Eggert <eggert@cs.ucla.edu>
11164
11165 Avoid integer overflow on scroll-left and scroll-right.
11166 * window.c (HSCROLL_MAX): New macro.
11167 (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
11168 overflow when requested scroll falls outside ptrdiff_t range.
11169
80b00b08
DA
111702012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
11171
11172 * window.h (struct window): Change type of 'hscroll',
11173 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
11174 'last_modified' and 'last_overlay_modified' to EMACS_INT.
11175 Adjust users accordingly.
11176 * xdisp.c (try_cursor_movement): Replace type check with eassert.
11177 * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
11178 from EMACS_INT to ptrdiff_t.
11179 (make_window): Omit redundant initialization.
11180
62b2bcf6
JB
111812012-06-28 Juanma Barranquero <lekktu@gmail.com>
11182
11183 * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
11184
45942c7d
DA
111852012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
11186
11187 * window.h (struct window): Change type of 'use_time' and
11188 'sequence_number' from Lisp_Object to int.
11189 * frame.c (make_frame): Adjust users accordingly.
11190 * print.c (print_object): Likewise.
11191 * window.c (select_window, Fwindow_use_time, make_parent_window)
11192 (make_window): Likewise.
11193
e509cfa6
DA
111942012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
11195
11196 * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
11197 enabled with --enable-checking=[all,glyphs] configure option.
11198 Fix GLYPH_DEBUG usage assuming that it may be undefined,
11199 adjust comments accordingly.
11200 * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
11201 undefined, adjust comments accordingly.
11202 * image.c: Likewise.
11203 * scroll.c: Likewise.
11204 * w32fns.c: Likewise.
11205 * w32term.c: Likewise.
11206 * xdisp.c: Likewise.
11207 * xfaces.c: Likewise.
11208 * xfns.c: Likewise.
11209 * xterm.c: Likewise.
11210
a54e2c05
DA
112112012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
11212
11213 Generalize run-time debugging checks.
11214 * dispextern.h (XASSERTS): Remove.
11215 * fontset.c (xassert): Remove.
11216 Convert from xassert to eassert.
11217 * alloc.c: Convert from xassert to eassert.
11218 * bidi.c: Likewise.
11219 * dispnew.c: Likewise.
11220 * fns.c: Likewise.
11221 * fringe.c: Likewise.
11222 * ftfont.c: Likewise.
11223 * gtkutil.c: Likewise.
11224 * image.c: Likewise.
11225 * keyboard.c: Likewise.
11226 * menu.c: Likewise.
11227 * process.c: Likewise.
11228 * scroll.c: Likewise.
11229 * sound.c: Likewise.
11230 * term.c: Likewise.
11231 * w32console.c: Likewise.
11232 * w32fns.c: Likewise.
11233 * w32term.c: Likewise.
11234 * window.c: Likewise.
11235 * xdisp.c: Likewise.
11236 * xfaces.c: Likewise.
11237 * xfns.c: Likewise.
11238 * xselect.c: Likewise.
11239 * xterm.c: Likewise.
11240
1ec4b7b2
SM
112412012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
11242
11243 * fns.c (maybe_resize_hash_table): Output message when growing the
11244 purify-hashtable.
11245
2014308a
DA
112462012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
11247
11248 * alloc.c (allocate_string_data): Remove dead code.
11249 * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
11250 avoid GCC warning about unused macro.
11251
246155eb
DA
112522012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
11253
11254 * alloc.c (allocate_string): Omit intervals initialization.
11255 * alloc.c (make_uninit_multibyte_string): Initialize intervals
11256 as in make_pure_string and make_pure_c_string.
11257
43184b7b
DA
112582012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
11259
d209e2fb 11260 * alloc.c (allocate_string): Fix last change.
43184b7b 11261
3fe6dd74
DA
112622012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
11263
d209e2fb 11264 * alloc.c (allocate_string): Remove two redundant calls
3fe6dd74
DA
11265 to memset, add explicit initialization where appropriate.
11266
1ba6038a
GM
112672012-06-27 Glenn Morris <rgm@gnu.org>
11268
11269 * lisp.mk (lisp): Remove paths.elc.
11270
c89926a5
CY
112712012-06-27 Chong Yidong <cyd@gnu.org>
11272
11273 * doc.c (Fsubstitute_command_keys): Fix punctuation.
11274
ed6b3510
JW
112752012-06-26 John Wiegley <johnw@newartisans.com>
11276
1ec4b7b2 11277 * unexmacosx.c (copy_data_segment): Add two section names used
157e99e4
JW
11278 on Mac OS X Lion: __mod_init_func and __mod_term_func.
11279
ed6b3510
JW
11280 * alloc.c (mark_memory): Do not check with -faddress-sanitizer
11281 when building with Clang.
11282
8edd4a2b
SM
112832012-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
11284
11285 * eval.c (Fapply): Allow calling it with a single argument.
11286
f6f62d1b
EZ
112872012-06-26 Eli Zaretskii <eliz@gnu.org>
11288
11289 * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
11290 _stricmp and _strnicmp.
11291 (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
11292
62efea5e
DA
112932012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
11294
11295 * alloc.c (allocate_window): Zero out non-Lisp part of newly
11296 allocated window.
11297 (allocate_process): Likewise for new process.
8edd4a2b 11298 (allocate_terminal): Change to use offsetof.
62efea5e
DA
11299 (allocate_frame): Likewise.
11300 * frame.c (make_frame): Omit redundant initialization.
11301 * window.c (make_parent_window): Use memset.
11302 (make_window): Omit redundant initialization.
11303 * process.c (make_process): Omit redundant initialization.
11304 * terminal.c (create_terminal): Likewise.
11305
42997f4d
DA
113062012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
11307
11308 * term.c (delete_tty): Remove redundant call to memset.
11309
1130ecfc
DA
113102012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
11311
11312 * alloc.c: Remove build_string.
11313 * lisp.h: Define build_string as static inline. This provides
11314 a better opportunity to optimize away calls to strlen when the
11315 function is called with compile-time constant argument.
11316 * image.c (imagemagick_error): Convert to build_string.
11317 * w32proc.c (sys_spawnve): Likewise.
11318 * xterm.c (x_term_init): Likewise.
11319
cf38a720
PE
113202012-06-26 Paul Eggert <eggert@cs.ucla.edu>
11321
99027bdd
PE
11322 Use sprintf return value instead of invoking strlen on result.
11323 In the old days this wasn't portable, since some sprintf
11324 implementations returned char *. But they died out years ago and
11325 Emacs already assumes sprintf returns int.
11326 Similarly for float_to_string.
11327 This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
11328 * ccl.c (ccl_driver):
11329 * character.c (string_escape_byte8):
11330 * data.c (Fnumber_to_string):
11331 * doprnt.c (doprnt):
11332 * print.c (print_object):
11333 * xdisp.c (message_dolog):
11334 * xfns.c (syms_of_xfns):
11335 Use sprintf or float_to_string result to avoid need to call strlen.
11336 * data.c (Fnumber_to_string):
11337 Use make_unibyte_string, since the string must be ASCII.
11338 * lisp.h, print.c (float_to_string): Now returns int length.
11339 * term.c (produce_glyphless_glyph):
11340 Use sprintf result rather than recomputing it.
11341
cf38a720
PE
11342 Clean out last vestiges of the old HAVE_CONFIG_H stuff.
11343 * Makefile.in (ALL_CFLAGS):
11344 * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
11345 * gmalloc.c, regex.c: Include <config.h> unconditionally.
11346
3511c784
DA
113472012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
11348
0a08eb21 11349 * dispextern.h (xstrcasecmp): Define to library function
3511c784
DA
11350 strcasecmp if available.
11351 * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
11352
fb7da12e
AS
113532012-06-25 Andreas Schwab <schwab@linux-m68k.org>
11354
11355 * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
11356 Avoid comma operator.
11357 * menu.c (push_submenu_start, push_submenu_end)
11358 (push_left_right_boundary, push_menu_pane): Likewise.
11359 * msdos.c (dos_rawgetc): Likewise.
11360
afa2ffd8
DA
113612012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
11362
11363 * xfns.c (xic_create_fontsetname): Remove redundant calls
11364 to memset.
11365
b3b4476b
PE
113662012-06-25 Paul Eggert <eggert@cs.ucla.edu>
11367
4495ff38
PE
11368 * gtkutil.c (get_utf8_string): Remove redundant assignment.
11369 sprintf already null-terminates its output.
11370
b3b4476b
PE
11371 * xfns.c (x_window): Remove redundant cast.
11372
b00876c9
DA
113732012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
11374
11375 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
11376 `const char *' to `char *' to avoid compiler warning.
11377
d188e26b
PE
113782012-06-24 Paul Eggert <eggert@cs.ucla.edu>
11379
885d1d74
PE
11380 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
11381 instead of truncating it to 63 (admittedly a generous limit).
11382
d188e26b
PE
11383 * process.c: Fix spelling and caps in comments.
11384
e2f560b1
DN
113852012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
11386
e86db54b 11387 * emacs.c (setpgrp): Remove definition, unused.
e2f560b1
DN
11388 * sysdep.c (setpgrp): Remove definition, not used in this file.
11389
7583a3a1
JB
113902012-06-24 Juanma Barranquero <lekktu@gmail.com>
11391
11392 * makefile.w32-in: Update dependencies.
11393
696056c2
EZ
113942012-06-24 Eli Zaretskii <eliz@gnu.org>
11395
11396 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
11397 (SYSTIME_H): Add nt/inc/sys/time.h.
11398
11399 * systime.h [WINDOWSNT]: Include sys/time.h.
11400
11401 * s/ms-w32.h (struct timespec): Definition moved from
11402 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
11403
845ca893
PE
114042012-06-24 Paul Eggert <eggert@cs.ucla.edu>
11405
11406 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
11407 * buffer.h (buffer_slot_type_mismatch):
11408 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
11409 * eval.c (unwind_to_catch):
11410 * image.c (my_png_error, my_error_exit):
11411 * keyboard.c (quit_throw_to_read_char, user_error)
11412 (Fexit_recursive_edit, Fabort_recursive_edit):
11413 * lisp.h (die, args_out_of_range, args_out_of_range_3)
11414 (wrong_type_argument, buffer_overflow, __executable_start)
11415 (memory_full, buffer_memory_full, string_overflow, Fthrow)
11416 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
11417 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
11418 (fatal):
11419 (child_setup) [!DOS_NT]:
11420 * lread.c (end_of_file_error, invalid_syntax):
11421 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
11422 * puresize.h (pure_write_error):
11423 * search.c (matcher_overflow):
11424 * sound.c (sound_perror, alsa_sound_perror):
11425 * sysdep.c, syssignal.h (croak):
11426 * term.c (maybe_fatal, vfatal):
11427 * textprop.c (text_read_only):
11428 * undo.c (user_error):
11429 * unexmacosx.c (unexec_error):
11430 * xterm.c (x_ins_del_lines, x_delete_glyphs):
11431 Use _Noreturn rather than NO_RETURN.
11432 No need for separate decl merely because of _Noreturn.
11433 * sound.c (sound_warning, parse_sound):
11434 Remove unnecessary forward decls.
11435
f1dd8073
PE
114362012-06-24 Paul Eggert <eggert@cs.ucla.edu>
11437
11438 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
11439 * lisp.h (WAIT_READING_MAX): New macro.
11440 * dispnew.c (Fsleep_for, sit_for):
11441 * keyboard.c (kbd_buffer_get_event):
11442 * process.c (Faccept_process_output):
11443 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
11444 This improves on the previous patch, which introduced a bug
11445 when time_t is unsigned and as wide as intmax_t.
11446 See <http://bugs.gnu.org/9000#51>.
11447
b82c1755
EZ
114482012-06-23 Eli Zaretskii <eliz@gnu.org>
11449
11450 * dispnew.c (sit_for, Fsleep_for):
11451 * keyboard.c (kbd_buffer_get_event):
11452 * process.c (Faccept_process_output): Avoid compiler warnings when
11453 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
11454
ca300656
JB
114552012-06-23 Juanma Barranquero <lekktu@gmail.com>
11456
049ec95b
JB
11457 * makefile.w32-in: Update dependencies.
11458
ca300656
JB
11459 * w32.c (ltime): Add return type and declare static.
11460 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
11461
db7b8d06
PE
114622012-06-23 Paul Eggert <eggert@cs.ucla.edu>
11463
11464 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
11465 Privately reported by Herbert J. Skuhra.
11466 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
11467 All uses changed.
11468 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
11469 not make_lisp_timeval, when the argument is of type EMACS_TIME.
11470
0bd8297f
EZ
114712012-06-23 Eli Zaretskii <eliz@gnu.org>
11472
96512555
EZ
11473 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
11474 last argument of make_unibyte_string.
11475
0bd8297f
EZ
11476 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
11477 language ID in the event parameters.
11478
11479 * w32term.c (w32_read_socket): Put the new keyboard codepage into
11480 event.code, not the obscure "character set ID".
11481
63def6b6
CY
114822012-06-23 Chong Yidong <cyd@gnu.org>
11483
11484 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
11485
e8a02204
EZ
114862012-06-23 Eli Zaretskii <eliz@gnu.org>
11487
388cdec0
EZ
11488 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
11489 * w32.c (fdutimens): New function.
11490
11491 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
11492
11493 * s/ms-w32.h (pselect): Redirect to sys_select.
11494
11495 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
11496
e8a02204
EZ
11497 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
11498 in the logic of incrementing and decrementing the value of
11499 use_relocatable_buffers.
11500
d054f3fb
PE
115012012-06-23 Paul Eggert <eggert@cs.ucla.edu>
11502
11503 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
11504 Privately reported by Herbert J. Skuhra.
11505 [__FreeBSD__]: Remove "*/" typo after "#include".
11506 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
11507 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
11508 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
11509 Don't assume EMACS_TIME and struct timeval are the same type.
11510
d35af63c
PE
115112012-06-22 Paul Eggert <eggert@cs.ucla.edu>
11512
11513 Support higher-resolution time stamps (Bug#9000).
11514 The time stamps are only nanosecond-resolution at the C level,
11515 since that's the best that any real-world system supports now.
11516 But they are picosecond-resolution at the Lisp level, as that's
11517 easy, and leaves room for future OS improvements.
11518
11519 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
11520 (LIBES): Use it.
11521
11522 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
11523 Don't get current time unless it's needed.
11524
11525 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
11526 now provides it if it's absent.
11527 (start_atimer): Port to higher-res time stamps.
11528 Check for time stamp overflow. Don't get current time more
11529 often than is needed.
11530
11531 * buffer.h (struct buffer): Buffer modtime now has high resolution.
11532 Include systime.h, not time.h.
11533 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
11534
11535 * dired.c: Include stat-time.h.
11536 (Ffile-attributes): File times now have higher resolution.
11537
11538 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
11539 (struct image): Timestamp now has higher resolution.
11540
11541 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
11542 has at least microseconds now. All uses removed.
11543 (update_frame, update_single_window, update_window, update_frame_1)
11544 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
927c7216 11545 (duration_to_sec_usec): Remove; no longer needed.
d35af63c
PE
11546
11547 * editfns.c (time_overflow): Now extern.
11548 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
11549 (float-time, Fformat_time_string, Fcurrent_time_string)
11550 (Fcurrent_time_zone): Accept and generate higher-resolution
11551 time stamps.
11552 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
11553 (decode_time_components, lisp_seconds_argument): New functions.
11554 (make_time): Now static.
11555 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
11556 Report an error if the time is invalid, rather than having the caller
11557 do that.
11558
11559 * fileio.c: Include <stat-time.h>
11560 (Fcopy_file): Copy higher-resolution time stamps.
11561 Prefer to set the time stamp via a file descriptor if that works.
11562 (Fset_file_times, Finsert_file_contents, Fwrite_region)
11563 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
11564 (Fvisited_file_modtime, Fset_visited_file_modtime):
11565 Support higher-resolution time stamps.
11566
11567 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
11568
11569 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
11570
11571 * image.c (prepare_image_for_display, clear_image_cache)
11572 (lookup_image): Port to higer-resolution time stamps.
11573
11574 * keyboard.c (start_polling, bind_polling_period):
11575 Check for time stamp overflow.
11576 (read_char, kbd_buffer_get_event, timer_start_idle)
11577 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
11578 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
11579 Port to higher-resolution time stamps. Do not assume time_t is signed.
11580 (decode_timer): New function. Timers are now vectors of length 9,
11581 not 8, to accommodate the picosecond component.
11582 (timer_check_2): Use it.
11583
11584 * nsterm.m (select_timeout, timeval_subtract): Remove.
11585 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
11586 as they're a bit more accurate and handle overflow better.
11587 (ns_select): Change prototype to be compatible with pselect.
11588 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
11589 * nsterm.h (ns_select): Adjust prototype.
11590
11591 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
11592 us-resolution time stamps.
11593 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
11594
11595 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
11596
11597 * lisp.h (time_overflow): New decl.
11598 (wait_reading_process_output): First arg is now intmax_t, not int,
11599 to accommodate larger waits.
11600
11601 * process.h (struct Lisp_Process.read_output_delay):
11602 Now counts nanoseconds, not microseconds.
11603 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
11604 EMACS_HAS_USECS.
11605 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
11606 (wait_reading_process_output):
11607 Port to ns-resolution time stamps.
11608 (Faccept_process_output, wait_reading_process_output):
11609 Check for time stamp overflow. Do not assume time_t is signed.
11610 (select_wrapper): Remove; we now use pselect.
11611 (Fprocess_attributes): Now generates ns-resolution time stamps.
11612
11613 * sysdep.c: Include utimens.h. Don't include utime.h
11614 or worry about struct utimbuf; gnulib does that for us now.
11615 (gettimeofday): Remove; gnulib provides a substitute.
11616 (make_timeval): New function.
11617 (set_file_times): Now sets ns-resolution time stamps.
11618 New arg FD; all uses changed.
11619 (time_from_jiffies, ltime_from_jiffies, get_up_time)
11620 (system_process_attributes):
11621 Now returns ns-resolution time stamp. All uses changed.
11622 Check for time stamp overflow.
11623
11624 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
11625 provides a substitute now.
11626
11627 * systime.h: Include timespec.h rather than sys/time.h and time.h,
11628 since it guarantees struct timespec.
11629 (EMACS_TIME): Now struct timespec, so that we can support
11630 ns-resolution time stamps.
11631 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
11632 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
11633 (EMACS_USECS): Remove.
11634 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
11635 so multiply the arg by 1000 before storing it.
11636 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
11637 New macros.
11638 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
11639 Port to ns-resolution time stamps.
11640 (EMACS_TIME_NEG_P): Remove; replaced by....
11641 (EMACS_TIME_SIGN): New macro.
11642 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
11643 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
11644 (set_file_times, make_time, lisp_time_argument): Adjust signature.
11645 (make_timeval, make_lisp_time, decode_time_components): New decls.
11646 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
11647 that it mishandled time_t overflow. You can't compare by subtracting!
11648 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
11649 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
11650
11651 * term.c: Include <sys/time.h>.
11652 (timeval_to_Time): New function, for proper overflow wraparound.
11653 (term_mouse_position, term_mouse_click): Use it.
11654
11655 * undo.c (record_first_change): Support higher-resolution time stamps
11656 in the undo buffer.
11657 (Fprimitive_undo): Use them when restoring time stamps.
11658
11659 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
11660 (w32_get_internal_run_time):
11661 Port to higher-resolution Emacs time stamps.
11662 (ltime): Now accepts single 64-bit integer, as that's more convenient
11663 for callers.
11664
11665 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
11666
11667 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
11668 for compatibility with pselect. Support ns-resolution time stamps.
11669
11670 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
11671
11672 * xselect.c (wait_for_property_change, x_get_foreign_selection):
11673 Check for time stamp overflow, and support ns-resolution time stamps.
11674
11675 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
11676 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
11677 (timeval_subtract): Remove; no longer needed.
11678 (XTflash, XTring_bell, x_wait_for_event):
11679 Port to ns-resolution time stamps. Don't assume time_t is signed.
11680
b6a92dfe
CY
116812012-06-22 Chong Yidong <cyd@gnu.org>
11682
11683 * xdisp.c (x_consider_frame_title): Revert last change.
11684
d251c37c
EZ
116852012-06-22 Eli Zaretskii <eliz@gnu.org>
11686
11687 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
11688 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
11689 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
11690 staticidx goes up to 1597 out of 1600 = 0x640.)
11691
f10deafb
PE
116922012-06-20 Paul Eggert <eggert@cs.ucla.edu>
11693
11694 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
11695 Otherwise, the umask might be mistakenly 0 while handling input signals.
11696
ec6de1e2
SM
116972012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
11698
11699 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
11700
28be1ada
DA
117012012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
11702
11703 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
11704 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
11705 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
11706 access to `contents' member of Lisp_Vector objects with AREF and ASET
11707 where appropriate.
11708
c6bf3022
CY
117092012-06-19 Chong Yidong <cyd@gnu.org>
11710
11711 * frame.c (delete_frame): When selecting a frame on a different
11712 text terminal, do not alter the terminal's top-frame.
11713
11714 * xdisp.c (format_mode_line_unwind_data): Record the target
11715 frame's selected window and its terminal's top-frame.
11716 (unwind_format_mode_line): Restore them.
11717 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
11718 Callers changed.
11719 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
11720 since tty frames can be explicitly named.
11721 (prepare_menu_bars): Likewise.
11722
11723 * term.c (Ftty_top_frame): New function.
11724
defd4196
PE
117252012-06-18 Paul Eggert <eggert@cs.ucla.edu>
11726
11727 Port byte-code-meter to modern targets.
11728 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
11729 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
8b5257e1 11730 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
defd4196
PE
11731 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
11732 (METER_1, METER_2): Simplify.
11733
1053a871
SM
117342012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
11735
11736 * data.c (Fdefalias): Return `symbol' (bug#11686).
11737
b7e8d081
MR
117382012-06-18 Martin Rudalics <rudalics@gmx.at>
11739
11740 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
1053a871
SM
11741 gets killed during executing of this function (Bug#11665).
11742 Try to always return Qt when the buffer has been actually killed.
b7e8d081
MR
11743 (Vkill_buffer_query_functions): In doc-string say that functions
11744 run by this hook should not change the current buffer.
11745
7ea2b339
PE
117462012-06-18 Paul Eggert <eggert@cs.ucla.edu>
11747
11748 Fix recently-introduced process.c problems found by static checking.
11749 * process.c (write_queue_push, write_queue_pop, send_process):
11750 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
11751 (write_queue_pop): Fix pointer signedness problem.
11752 (send_process): Remove unused local.
11753
96a313a1
CY
117542012-06-17 Chong Yidong <cyd@gnu.org>
11755
11756 * xdisp.c (redisplay_internal): No need to redisplay terminal
11757 frames that are not on top.
11758
20ca2e94
TN
117592012-06-17 Troels Nielsen <bn.troels@gmail.com>
11760
11761 * process.c (make_process): Initialize write_queue.
11762 (write_queue_push, write_queue_pop): New functions.
11763 (send_process): Use them to maintain correct ordering of process
11764 writes (Bug#10815).
11765
9a900ca9
PE
117662012-06-17 Paul Eggert <eggert@cs.ucla.edu>
11767
310fbfa8
PE
11768 * lisp.h (eassert): Assume C89 or later.
11769 This removes the need for CHECK.
11770 (CHECK): Remove. Its comments about always evaluating its
11771 argument were confusing, as 'eassert' typically does not evaluate
11772 its argument.
11773
27bb1ca4
PE
11774 * coding.c (produce_chars): Use ptrdiff_t, not int.
11775
9a900ca9
PE
11776 * xterm.c (x_draw_underwave): Check for integer overflow.
11777 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
11778
41b7f8bc 117792012-06-17 Jan Djärv <jan.h.d@swipnet.se>
50a93863
JD
11780
11781 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
11782 referenced (Bug#11583).
11783
9b0e3eba
AA
117842012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
11785
11786 Implement wave-style variant of underlining.
11787 * dispextern.h (face_underline_type): New enum.
11788 (face): Add field for underline type.
11789 * nsterm.m (ns_draw_underwave): New function.
11790 (ns_draw_text_decoration): Use it.
11791 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
11792 New functions.
11793 (x_draw_glyph_string): Use them.
11794 * xfaces.c (Qline, Qwave): New Lisp objects.
11795 (check_lface_attrs, merge_face_ref)
1053a871
SM
11796 (Finternal_set_lisp_face_attribute, realize_x_face):
11797 Handle wave-style underline face attributes.
9b0e3eba
AA
11798 * xterm.c (x_draw_underwave): New function.
11799 (x_draw_glyph_string): Use it.
11800
0fb52f11
JB
118012012-06-16 Juanma Barranquero <lekktu@gmail.com>
11802
11803 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
11804 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
11805 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
11806 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
11807 ($(BLD)/w32select.$(O)): Update dependencies.
11808
e5560ff7
AS
118092012-06-16 Andreas Schwab <schwab@linux-m68k.org>
11810
11811 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
11812 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
11813 * character.c (_fetch_multibyte_char_p): Remove.
11814 * alloc.c: Include "character.h" before "buffer.h".
11815 * bidi.c: Likewise.
11816 * buffer.c: Likewise.
11817 * bytecode.c: Likewise.
11818 * callint.c: Likewise.
11819 * callproc.c: Likewise.
11820 * casefiddle.c: Likewise.
11821 * casetab.c: Likewise.
11822 * category.c: Likewise.
11823 * cmds.c: Likewise.
11824 * coding.c: Likewise.
11825 * composite.c: Likewise.
11826 * dired.c: Likewise.
11827 * dispnew.c: Likewise.
11828 * doc.c: Likewise.
11829 * dosfns.c: Likewise.
11830 * editfns.c: Likewise.
11831 * emacs.c: Likewise.
11832 * fileio.c: Likewise.
11833 * filelock.c: Likewise.
11834 * font.c: Likewise.
11835 * fontset.c: Likewise.
11836 * fringe.c: Likewise.
11837 * indent.c: Likewise.
11838 * insdel.c: Likewise.
11839 * intervals.c: Likewise.
11840 * keyboard.c: Likewise.
11841 * keymap.c: Likewise.
11842 * lread.c: Likewise.
11843 * macros.c: Likewise.
11844 * marker.c: Likewise.
11845 * minibuf.c: Likewise.
11846 * nsfns.m: Likewise.
11847 * nsmenu.m: Likewise.
11848 * print.c: Likewise.
11849 * process.c: Likewise.
11850 * regex.c: Likewise.
11851 * region-cache.c: Likewise.
11852 * search.c: Likewise.
11853 * syntax.c: Likewise.
11854 * term.c: Likewise.
11855 * textprop.c: Likewise.
11856 * undo.c: Likewise.
11857 * unexsol.c: Likewise.
11858 * w16select.c: Likewise.
11859 * w32fns.c: Likewise.
11860 * w32menu.c: Likewise.
11861 * window.c: Likewise.
11862 * xdisp.c: Likewise.
11863 * xfns.c: Likewise.
11864 * xmenu.c: Likewise.
11865 * xml.c: Likewise.
11866 * xselect.c: Likewise.
11867
2f07e6af
EZ
118682012-06-16 Eli Zaretskii <eliz@gnu.org>
11869
1053a871
SM
11870 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
11871 If all the glyphs of the glyph row came from strings, and we have no
2f07e6af 11872 cursor positioning clues, put the cursor on the first glyph of the
1097afe4
EZ
11873 row.
11874 (handle_face_prop): Use chunk-relative overlay string index when
11875 indexing into it->string_overlays array. (Bug#11653)
946fdb73
EZ
11876 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
11877 the rightmost. (Bug#11720)
2f07e6af 11878
29b83cec
AS
118792012-06-16 Andreas Schwab <schwab@linux-m68k.org>
11880
11881 * category.h (CHAR_HAS_CATEGORY): Define as inline.
11882 (CATEGORY_MEMBER): Enforce 1/0 value.
11883 * category.c (_temp_category_set): Remove.
11884
4c5501e9
EZ
118852012-06-16 Eli Zaretskii <eliz@gnu.org>
11886
11887 * window.c (Fdelete_other_windows_internal)
11888 (Fdelete_window_internal): Don't access frame's mouse highlight
11889 info of the initial frame. (Bug#11677)
11890
2b570124
PE
118912012-06-14 Paul Eggert <eggert@cs.ucla.edu>
11892
e93864f9
PE
11893 * .gdbinit (xgetint): Fix recently-introduced paren typo.
11894 Assume USE_2_TAGS_FOR_INTS.
11895 (xreload): Adjust $tagmask width to match recent lisp.h change.
11896
2b570124
PE
11897 Simplify lisp.h in minor ways that should not affect code.
11898 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
11899 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
11900 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
11901 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
11902 (INTTYPEBITS): New macro, for clarity.
11903 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
1053a871
SM
11904 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
11905 Simplify now that USE_LSB_TAG is always defined.
2b570124
PE
11906 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
11907 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
11908
81755f69
JB
119092012-06-13 Juanma Barranquero <lekktu@gmail.com>
11910
11911 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
11912
16192a57
GM
119132012-06-13 Glenn Morris <rgm@gnu.org>
11914
11915 * s/bsd-common.h (BSD4_3):
11916 * s/usg5-4-common.h (USG5_4): No longer define; unused.
11917
646b5f55
AS
119182012-06-13 Andreas Schwab <schwab@linux-m68k.org>
11919
11920 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
11921 instead of union.
11922 (XLI, XIL): Define.
1053a871
SM
11923 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
11924 Use them.
11925 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
646b5f55 11926 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
1053a871 11927 * alloc.c (widen_to_Lisp_Object): Remove.
646b5f55
AS
11928 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
11929 * frame.c (delete_frame): Remove outdated comment.
11930 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
11931 USE_LISP_UNION_TYPE.
11932 (Fw32_unregister_hot_key): Likewise.
11933 (Fw32_toggle_lock_key): Likewise.
11934 * w32menu.c (add_menu_item): Likewise.
11935 (w32_menu_display_help): Use XIL instead of checking
11936 USE_LISP_UNION_TYPE.
11937 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
11938 (init_heap): Likewise.
11939 * w32term.c (w32_read_socket): Update comment.
11940
1d3823c9
GM
119412012-06-13 Glenn Morris <rgm@gnu.org>
11942
c62ff706
GM
11943 * s/usg5-4-common.h, src/s/unixware.h:
11944 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
11945
1d3823c9
GM
11946 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
11947
bfe3e0a2
PE
119482012-06-13 Paul Eggert <eggert@cs.ucla.edu>
11949
11950 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
11951 * alloc.c (make_number) [!defined make_number]:
11952 Remove, as lisp.h always defines this now.
11953 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
11954 (roundup_size): Verify that it is a power of 2.
11955 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
11956 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
11957 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
11958 -DUSE_LSB_TAG=0, to override the automatically-selected default.
11959 USE_LSB_TAG now is always defined to be either 0 or 1.
11960 All uses changed.
11961 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
11962 code works fine either way, and efficiency is not a concern here,
11963 as the union type is for debugging, not for production.
11964 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
11965 Use an inline function on all platforms when using the union type,
11966 since this is simpler and 'static inline' can be used portably
11967 within Emacs now.
11968 (LISP_INITIALLY_ZERO): New macro.
11969 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
11970 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
11971
45fa9c0f
GM
119722012-06-12 Glenn Morris <rgm@gnu.org>
11973
b4492cba
GM
11974 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
11975
11976 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
0d369729 11977
45fa9c0f
GM
11978 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
11979 Move BROKEN_SIGIO to configure.
11980
11981 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
11982 Move NO_TERMIO to configure.
11983
0e25d334
CY
119842012-06-12 Chong Yidong <cyd@gnu.org>
11985
11986 * image.c (imagemagick_load_image): Use MagickFlattenImage if
11987 MagickMergeImageLayers is undefined. Use pixel pusher loop if
11988 MagickExportImagePixels is undefined.
11989
43682bb6
PE
119902012-06-12 Paul Eggert <eggert@cs.ucla.edu>
11991
11992 * image.c (imagemagick_load_image): Remove unused label.
11993
a9be7d2b
GM
119942012-06-11 Glenn Morris <rgm@gnu.org>
11995
11996 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
11997 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
11998 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
11999 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
12000
3017f87f
SM
120012012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
12002
12003 * alloc.c (make_byte_code): New function.
12004 (Fmake_byte_code): Use it. Don't purify here.
12005 * lread.c (read1): Use it as well to avoid extra allocation.
12006
1b9b4cf4
CY
120072012-06-11 Chong Yidong <cyd@gnu.org>
12008
12009 * image.c (imagemagick_load_image): Implement transparency.
12010
95988fcf
AS
120112012-06-10 Andreas Schwab <schwab@linux-m68k.org>
12012
12013 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
12014 account for preceding backslashes. (Bug#11663)
12015
cd4eb164
CY
120162012-06-09 Chong Yidong <cyd@gnu.org>
12017
12018 * term.c: Support italics in capable terminals (Bug#9652).
12019 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
12020 (turn_on_face): Output using TS_enter_italic_mode if available.
12021 Don't handle unused blinking and alt-charset cases.
12022 (turn_off_face): Handle italic case; discard unused tty_blinking_p
12023 and tty_alt_charset_p cases.
12024 (tty_capable_p, init_tty): Support italics.
12025
12026 * termchar.h (struct tty_display_info): Add field for italics.
12027 Remove unused blink field.
12028
12029 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
12030 Handle slant.
12031
12032 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
12033 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
12034 tty_alt_charset_p. Add tty_italic_p.
12035
ff88beb8
MA
120362012-06-09 Michael Albinus <michael.albinus@gmx.de>
12037
12038 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
12039 dbus_type_is_basic if available.
12040 (xd_extract_signed, xd_extract_unsigned): Rename from
12041 extract_signed and extract_unsigned, respectively. Adapt callers.
12042
44286096
CY
120432012-06-09 Chong Yidong <cyd@gnu.org>
12044
1682701f
CY
12045 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
12046
44286096
CY
12047 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
12048 case (Bug#9752).
12049
d86feb17
PE
120502012-06-08 Paul Eggert <eggert@cs.ucla.edu>
12051
12052 * xdisp.c (vmessage): Treat frame message as multibyte.
12053 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
12054 would generate the diagnostic "Making \302\247 buffer-local while
12055 let-bound!".
12056
d5c20fe8
EZ
120572012-06-08 Eli Zaretskii <eliz@gnu.org>
12058
12059 * dispnew.c (showing_window_margins_p): Undo last change, which
12060 was done due to an inadvertent commit.
12061 (adjust_frame_glyphs_for_frame_redisplay): Do call
12062 showing_window_margins_p.
12063
513749ee
SM
120642012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
12065
12066 * eval.c (Fmake_var_non_special): New primitive.
12067 (syms_of_eval): Defsubr it.
12068 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
12069
d4a8f5c1
JB
120702012-06-08 Juanma Barranquero <lekktu@gmail.com>
12071
12072 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
12073 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
12074
8bbbc977
EZ
120752012-06-08 Eli Zaretskii <eliz@gnu.org>
12076
12077 * alloc.c (allocate_vectorlike): Fix last change.
12078
f3372c87
DA
120792012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
12080
12081 Block-based vector allocation of small vectors.
12082 * lisp.h (struct vectorlike_header): New field `nbytes',
12083 adjust comment accordingly.
12084 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
fc0c31f8 12085 to denote vector blocks. Adjust users (live_vector_p,
f3372c87
DA
12086 mark_maybe_pointer, valid_lisp_object_p) accordingly.
12087 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
f4ad7ea1
JB
12088 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES)
12089 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX)
12090 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST)
f3372c87
DA
12091 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
12092 (roundup_size): New constant.
12093 (struct vector_block): New data type.
12094 (vector_blocks, vector_free_lists, zero_vector): New variables.
513749ee 12095 (all_vectors): Rename to `large_vectors'.
f3372c87
DA
12096 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
12097 (sweep_vectors): New functions.
12098 (allocate_vectorlike): Return `zero_vector' as the only vector of
fc0c31f8 12099 0 items. Allocate new vector from block if vector size is less than
f3372c87
DA
12100 or equal to VBLOCK_BYTES_MAX.
12101 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
12102 (init_alloc_once): Add call to init_vectors.
12103
4f18a4ed
SM
121042012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
12105
12106 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
12107
86f158bc
PE
121082012-06-07 Paul Eggert <eggert@cs.ucla.edu>
12109
12110 * doprnt.c (doprnt): Truncate multibyte char correctly.
12111 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
12112 would mishandle a string argument "Xc" if X was a multibyte
12113 character of length 2: it would truncate after X's first byte
12114 rather than including all of X.
12115
c5cfcbe0
CY
121162012-06-06 Chong Yidong <cyd@gnu.org>
12117
12118 * buffer.c (word_wrap): Doc fix.
12119
c05cf390
PE
121202012-06-04 Paul Eggert <eggert@cs.ucla.edu>
12121
12122 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
12123
0c3461de
GM
121242012-06-03 Glenn Morris <rgm@gnu.org>
12125
12126 * xdisp.c (tool-bar-style): Doc fix.
12127
c71232db
UM
121282012-06-03 Ulrich Müller <ulm@gentoo.org>
12129
12130 * Makefile.in (PAXCTL): Define.
12131 (temacs$(EXEEXT)): Disable memory randomization for the temacs
12132 binary via PaX flags if the paxctl utility is available.
12133 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
12134 Restore PaX flags to their default. (Bug#11398)
12135
383f7350
CY
121362012-06-03 Chong Yidong <cyd@gnu.org>
12137
12138 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
12139 buffer (Bug#11226).
12140
5f2c76c6
CY
121412012-06-03 Chong Yidong <cyd@gnu.org>
12142
12143 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
12144 (note_mode_line_or_margin_highlight): If there is no help echo,
12145 use mode-line-default-help-echo. Handle the case where the mouse
12146 position is past the end of the mode line string.
12147
12148 * buffer.c (buffer_local_value_1): New function, split from
12149 Fbuffer_local_value; can return Qunbound.
12150 (Fbuffer_local_value): Use it.
12151 (Vmode_line_format): Docstring tweaks.
12152
773d47f6
PE
121532012-06-02 Paul Eggert <eggert@cs.ucla.edu>
12154
12155 * sysdep.c (system_process_attributes): Improve comment.
12156
f2d6a3df
SM
121572012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
12158
12159 * keyboard.c: Export real-this-command to Elisp.
12160 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
12161 and DEFVAR it. Update all users.
12162
63810350
PE
121632012-06-02 Paul Eggert <eggert@cs.ucla.edu>
12164
7bd5c1f4
PE
12165 * minibuf.c (Fassoc_string): Remove duplicate declaration.
12166
63810350
PE
12167 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
12168 Convert pctcpu and pctmem to Lisp float properly.
12169 Let the compiler fold better, as 100.0/0x8000 is exact.
12170
a2821611
AS
121712012-06-02 Andreas Schwab <schwab@linux-m68k.org>
12172
12173 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
12174 cons_block.
12175
5fceba1d
PE
121762012-06-01 Paul Eggert <eggert@cs.ucla.edu>
12177
12178 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
12179
c98ff5dd
DA
121802012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
12181
12182 For a 'struct window', replace some Lisp_Object fields to
12183 bitfields where appropriate, remove unused fields.
12184 * window.h (struct window): Remove unused 'last_mark_x' and
12185 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
1f9f395d 12186 change its type from Lisp_Object to bitfield.
c98ff5dd
DA
12187 Change type of 'force_start', 'optional_new_start',
12188 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
fc0c31f8 12189 fields from Lisp_Object to bitfield. Adjust users accordingly.
c98ff5dd 12190
ca34e0be
PE
121912012-05-31 Paul Eggert <eggert@cs.ucla.edu>
12192
12193 Pacify gcc -Wdouble-precision when using Xaw.
12194 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
12195 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
12196 Use 'float' consistently, rather than 'float' in most places
12197 and 'double' in a couple of places.
12198
efc00ab1 121992012-05-31 Eli Zaretskii <eliz@gnu.org>
d5fd2c54
EZ
12200
12201 * xdisp.c (handle_stop): Detect whether we have overlay strings
12202 loaded by testing it->current.overlay_string_index to be
12203 non-negative, instead of checking whether n_overlay_strings is
12204 positive. (Bug#11587)
12205
efc00ab1 122062012-05-31 Chong Yidong <cyd@gnu.org>
353c87f6
CY
12207
12208 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
12209
12210 * doc.c (Fsubstitute_command_keys): Doc fix.
12211
efc00ab1 122122012-05-31 Eli Zaretskii <eliz@gnu.org>
a02ae4e5
EZ
12213
12214 * search.c (search_buffer): Remove calls to
12215 r_alloc_inhibit_buffer_relocation, as it is now called by
12216 maybe_unify_char, which was the cause of relocation of buffer text
12217 in bug#11519.
12218
efc00ab1 122192012-05-31 Eli Zaretskii <eliz@gnu.org>
291d430f
EZ
12220
12221 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
12222 for the duration of call to load_charset, to avoid problems with
12223 callers of maybe_unify_char that access buffer text through C
12224 pointers.
12225
12226 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
12227 decrement the inhibition flag, instead of just setting or
12228 resetting it.
12229
ba93a187
PE
122302012-05-31 Paul Eggert <eggert@cs.ucla.edu>
12231
12232 Remove obsolete '#define static' cruft.
12233 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
12234 This #undef was "temporary" in 2000; it is no longer needed
12235 now that '#define static' has gone away.
12236 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
12237 (gray_bitmap_bits): Remove; no longer needed.
12238 All uses replaced with definiens.
12239 * xterm.c: Include "bitmaps/gray.xbm".
12240
9e4bf381
PE
122412012-05-30 Paul Eggert <eggert@cs.ucla.edu>
12242
12243 Clean up __executable_start, monstartup when --enable-profiling.
12244 The following changes affect the code only when profiling.
12245 * dispnew.c (__executable_start): Rename from safe_bcopy.
12246 Define only on platforms that need it.
12247 * emacs.c: Include <sys/gmon.h> when profiling.
12248 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
12249 (__executable_start): Remove decl, since lisp.h does it now.
12250 (safe_bcopy): Remove decl; no longer has that name.
12251 (main): Coalesce #if into single bit of code, for simplicity.
12252 Cast pointers to uintptr_t, since standard libraries want integers
12253 and not pointers.
12254 * lisp.h (__executable_start): New decl.
12255
32d72c2f
GM
122562012-05-31 Glenn Morris <rgm@gnu.org>
12257
12258 * image.c (Fimagemagick_types): Doc fix.
12259
baac5bc7
JM
122602012-05-30 Jim Meyering <meyering@redhat.com>
12261
12262 * callproc.c (Fcall_process_region): Include directory component
12263 in mkstemp error message (Bug#11586).
12264
72cb32cf
PE
122652012-05-30 Paul Eggert <eggert@cs.ucla.edu>
12266
12267 * alloc.c, lisp.h (make_pure_vector): Now static.
12268
61b108cc
SM
122692012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
12270
12271 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
12272 Move to byte-run.el.
12273 (Fautoload): Do the hash-doc more carefully.
12274 * data.c (Fdefalias): Purify definition, except for keymaps.
12275 (Qdefun): Move from eval.c.
12276 * lisp.h (Qdefun): Remove.
12277 * lread.c (read1): Tiny simplification.
12278
471fe23d
TN
122792012-05-29 Troels Nielsen <bn.troels@gmail.com>
12280
934f3f58 12281 Do not create empty overlays with the evaporate property (Bug#9642).
471fe23d
TN
12282 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
12283 Bug#9642, but explicitly check that the buffer the overlay would
12284 be moved to is live and rearrange lines to make sure that errors
12285 will not put the overlay in an inconsistent state.
12286 (Fdelete_overlay): Cosmetics.
12287
85d0efd1
EZ
122882012-05-28 Eli Zaretskii <eliz@gnu.org>
12289
12290 * w32term.c (my_bring_window_to_top): New function.
12291 (x_raise_frame): Use handle returned by DeferWindowPos, which
61b108cc
SM
12292 could be different from the original one.
12293 Call my_bring_window_to_top instead of my_set_foreground_window.
85d0efd1
EZ
12294 (Bug#11513)
12295
12296 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
12297 by calling BringWindowToTop.
12298
12299 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
12300 (WM_EMACS_END): Increase by one.
12301
da92a98c
PE
123022012-05-28 Paul Eggert <eggert@cs.ucla.edu>
12303
12304 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
12305 This avoids undefined behavior that might cause the eassert
12306 to not catch an out-of-range value.
12307
74d1f848
JB
123082012-05-28 Juanma Barranquero <lekktu@gmail.com>
12309
12310 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
12311 Update dependencies.
12312
9e1a06fc
EZ
123132012-05-27 Eli Zaretskii <eliz@gnu.org>
12314
12315 * bidi.c (bidi_mirror_char): Fix last change.
12316
f3dd7312
AS
123172012-05-27 Andreas Schwab <schwab@linux-m68k.org>
12318
12319 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
12320 when referring to sectname field in printf format.
12321
81899c91
PE
123222012-05-27 Paul Eggert <eggert@cs.ucla.edu>
12323
57b81a9f
PE
12324 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
12325 Only r_alloc_inhibit_buffer_relocation needed to be added;
12326 the others were already declared.
12327
81899c91
PE
12328 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
12329 before checking whether it's out of range. Put the check inside
12330 eassert. See
12331 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
12332
33017faf 123332012-05-27 Ken Brown <kbrown@cornell.edu>
2f9b9adb
KB
12334
12335 * callproc.c (Fcall_process): Restore a line that was accidentally
12336 commented out in the 2011-02-13 change (bug#11547).
12337
33017faf 123382012-05-27 Eli Zaretskii <eliz@gnu.org>
52c55cc7
EZ
12339
12340 * lisp.h [REL_ALLOC]: Add prototypes for external functions
12341 defined on ralloc.c.
12342
12343 * buffer.c [REL_ALLOC]: Remove prototypes of
12344 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
12345 they are now on lisp.h.
12346
12347 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
12348
12349 * search.c (search_buffer): Use it to inhibit relocation of buffer
12350 text while re_search_2 is doing its job, because re_search_2 is
12351 passed C pointers to buffer text. (Bug#11519)
12352
23415acf
EZ
12353 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
12354 Update value to 24.
12355
44e27368
EZ
12356 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
12357 state after an additional call to move_it_in_display_line_to, keep
12358 the values of it->max_ascent and it->max_descent found for the
12359 entire line.
12360 (pos_visible_p): Revert the comparison against bottom_y to what it
12361 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
12362 (Bug#11464)
12363
c1892f11
PE
123642012-05-26 Paul Eggert <eggert@cs.ucla.edu>
12365
12366 Fix coding-related core dumps with gcc -ftrapv.
12367 The code was computing A - B, where A and B are pointers, and B is
12368 random garbage. This can lead to core dumps on platforms that
12369 have special pointer registers, and it also leads to core dumps on
12370 x86-64 when compiled with gcc -ftrapv. The fix is to compute
12371 A - B only when B is initialized properly.
12372 * coding.c (coding_set_source, coding_set_destination): Return void.
12373 (coding_change_source, coding_change_destinations): New functions,
12374 with the old behaviors of coding_set_source and coding_set_destination.
12375 All callers that need an offset changed to use these new functions.
12376
eb7afdad
GM
123772012-05-26 Glenn Morris <rgm@gnu.org>
12378
12379 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
12380
f12fdf02
EZ
123812012-05-26 Eli Zaretskii <eliz@gnu.org>
12382
53a63be6 12383 Extend mouse support on W32 text-mode console.
61b108cc
SM
12384 * xdisp.c (draw_row_with_mouse_face):
12385 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
eb3f6f01 12386
eb3f6f01 12387 * w32console.c: Include window.h.
61b108cc
SM
12388 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
12389 New functions.
eb3f6f01
EZ
12390 (initialize_w32_display): Initialize mouse-highlight data.
12391
53a63be6
EZ
12392 * w32inevt.c: Include termchar.h and window.h.
12393 (do_mouse_event): Support mouse-autoselect-window. When the mouse
12394 moves, call note_mouse_highlight. If help_echo changed, call
12395 gen_help_event to produce help-echo message in the echo area.
12396 Call clear_mouse_face if mouse_face_hidden is set in the mouse
12397 highlight info.
12398
4cfd81f6
PE
123992012-05-26 Paul Eggert <eggert@cs.ucla.edu>
12400
12401 * lread.c (read1): Simplify slightly to avoid an overflow warning
12402 with GCC 4.7.0 on x86-64.
12403
4446092a
EZ
124042012-05-26 Eli Zaretskii <eliz@gnu.org>
12405
12406 * bidi.c (bidi_mirror_char): Revert last change: an int is
12407 definitely wide enough here.
12408
42b2a986 124092012-05-25 Paul Eggert <eggert@cs.ucla.edu>
3164aeac 12410
42b2a986 12411 Fix integer width and related bugs (Bug#9874).
eb106a49 12412 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
d311d28c
PE
12413 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
12414 (string_bytes, check_sblock, allocate_string_data):
12415 (compact_small_strings, Fmake_bool_vector, make_string)
12416 (make_unibyte_string, make_multibyte_string)
12417 (make_string_from_bytes, make_specified_string)
12418 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
12419 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
12420 (mark_vectorlike):
12421 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12422 (allocate_pseudovector):
12423 Use int, not EMACS_INT, where int is wide enough.
12424 (inhibit_garbage_collection, Fgarbage_collect):
12425 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12426 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
12427 int might not be wide enough.
12428 (bidi_cache_search, bidi_cache_find, bidi_init_it)
12429 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
12430 (bidi_at_paragraph_end, bidi_find_paragraph_start)
12431 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
12432 (bidi_level_of_next_char, bidi_move_to_visually_next):
12433 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12434 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
12435 (Fkill_buffer, Fset_buffer_major_mode)
12436 (advance_to_char_boundary, Fbuffer_swap_text)
12437 (Fset_buffer_multibyte, overlays_at, overlays_in)
12438 (overlay_touches_p, struct sortvec, record_overlay_string)
12439 (overlay_strings, recenter_overlay_lists)
12440 (adjust_overlays_for_insert, adjust_overlays_for_delete)
12441 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
12442 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
12443 (Foverlay_recenter, last_overlay_modification_hooks_used)
12444 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
12445 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
977b0e45
PE
12446 (validate_region): Omit unnecessary test for b <= e,
12447 since that's guaranteed by the previous test.
d311d28c
PE
12448 (adjust_overlays_for_delete): Avoid pos + length overflow.
12449 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
12450 (report_overlay_modification):
12451 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12452 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
12453 Omit pointer cast, which isn't needed anyway, and doesn't work
12454 after the EMACS_INT -> ptrdiff_t change.
02481186 12455 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
d311d28c
PE
12456 * buffer.h: Adjust decls to match defn changes elsewhere.
12457 (struct buffer_text, struct buffer):
12458 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12459 Use EMACS_INT, not int, where int might not be wide enough.
39b5db3b
PE
12460 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
12461 not int, to avoid needless 32-bit limit on 64-bit hosts.
12462 (exec_byte_code): Use tighter memory-full test, one that checks
12463 for alloca overflow. Don't compute the address of the object just
12464 before an array, as that's not portable. Use EMACS_INT, not
12465 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
d311d28c
PE
12466 * callint.c (Fcall_interactively):
12467 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12468 * callproc.c (call_process_kill, Fcall_process):
12469 Don't assume pid_t fits into an Emacs fixnum.
12470 (call_process_cleanup, Fcall_process, child_setup):
12471 Don't assume pid_t fits into int.
12472 (call_process_cleanup, Fcall_process, delete_temp_file)
12473 (Fcall_process_region):
12474 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12475 (Fcall_process): Simplify handling of volatile integers.
12476 Use int, not EMACS_INT, where int will do.
12477 * casefiddle.c (casify_object, casify_region, operate_on_word)
12478 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
12479 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12480 (casify_object): Avoid integer overflow when overallocating buffer.
12481 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
45c2afd6 12482 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
d311d28c
PE
12483 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
12484 * category.h (CATEGORYP): Don't assume arg is nonnegative.
12485 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
12486 integers are now checked earlier. All uses replaced with XINT.
12487 (ccl_driver):
12488 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12489 For CCL_MapSingle, check that content and value are in int range.
c801946a
PE
12490 (ccl_driver, Fregister_code_conversion_map):
12491 Check that Vcode_version_map_vector is a vector.
d311d28c
PE
12492 (resolve_symbol_ccl_program): Check that vector header is in range.
12493 Always copy the vector, so that we can check its contents reliably
12494 now rather than having to recheck each instruction as it's being
12495 executed. Check that vector words fit in 'int'.
12496 (ccl_get_compiled_code, Fregister_ccl_program)
12497 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
12498 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
12499 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
12500 contents are in range.
12501 (Fccl_execute_on_string): Check that status is in range.
12502 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
12503 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
12504 Accept and return EMACS_INT, not int, because callers can pass values
12505 out of 'int' range.
12506 (c_string_width, strwidth, lisp_string_width, chars_in_text)
12507 (multibyte_chars_in_text, parse_str_as_multibyte)
12508 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
12509 (str_as_unibyte, str_to_unibyte, string_count_byte8)
12510 (string_escape_byte8, Fget_byte):
12511 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
a14e1568 12512 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
d311d28c
PE
12513 avoid mishandling large integers.
12514 * character.h: Adjust decls to match defn changes elsewhere.
12515 * charset.c (load_charset_map_from_file, find_charsets_in_text)
12516 (Ffind_charset_region):
12517 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12518 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
12519 (load_charset_map_from_vector, Fdefine_charset_internal):
3c7649c1 12520 Don't assume fixnum fits in int.
d311d28c
PE
12521 (load_charset_map_from_vector, Fmap_charset_chars):
12522 Remove now-unnecessary CHECK_NATNUMs.
12523 (Fdefine_charset_internal): Check ranges here, more carefully.
3c7649c1
PE
12524 Don't rely on undefined behavior with signed left shift overflow.
12525 Don't assume unsigned int fits into fixnum, or that fixnum fits
12526 into unsigned int. Don't require max_code to be a valid fixnum;
12527 that's not true for gb10830 4-byte on a 32-bit host. Allow
12528 invalid_code to be a cons, for the same reason. Require code_offset
12529 to be a character. Avoid int overflow if max_char is close
12530 to INT_MAX.
12531 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
12532 this is intended anyway and avoids some undefined behavior.
12533 (load_charset_map): Pass unsigned, not int, as 2nd arg of
12534 INDEX_TO_CODE_POINT, as that's what it expects.
12535 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
60ad3eab
PE
12536 * charset.h (DECODE_CHAR): Return int, not unsigned;
12537 this is what was intended anyway, and it avoids undefined behavior.
12538 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
12539 integer-overflow issues.
12540 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
12541 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
12542 where the argument is EMACS_INT, and this behavior is not intended.
d311d28c
PE
12543 * chartab.c (Fmake_char_table, Fset_char_table_range)
12544 (uniprop_get_decoder, uniprop_get_encoder):
12545 Don't assume fixnum fits in int.
12546 * cmds.c (move_point): New function, that does the gist of
12547 Fforward_char and Fbackward_char, but does so while checking
12548 for integer overflow more accurately.
c96e5d6a 12549 (Fforward_char, Fbackward_char): Use it.
d311d28c
PE
12550 (Fforward_line, Fend_of_line, internal_self_insert)
12551 (internal_self_insert):
12552 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12553 Fix a FIXME, by checking for integer overflow when calculating
12554 target_clm and actual_clm.
12555 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
8f50130c 12556 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
d311d28c
PE
12557 (ASSURE_DESTINATION, coding_alloc_by_realloc)
12558 (coding_alloc_by_making_gap, alloc_destination)
12559 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
12560 (encode_coding_utf_16, detect_coding_emacs_mule)
12561 (decode_coding_emacs_mule, encode_coding_emacs_mule)
12562 (detect_coding_iso_2022, decode_coding_iso_2022)
12563 (encode_invocation_designation, encode_designation_at_bol)
12564 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
12565 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
12566 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
12567 (encode_coding_ccl, encode_coding_raw_text)
12568 (detect_coding_charset, decode_coding_charset)
12569 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
12570 (produce_composition, produce_charset, produce_annotation)
12571 (decode_coding, handle_composition_annotation)
12572 (handle_charset_annotation, consume_chars, decode_coding_gap)
12573 (decode_coding_object, encode_coding_object, detect_coding_system)
12574 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
12575 (code_convert_region, code_convert_string)
8f50130c
PE
12576 (Fdefine_coding_system_internal)
12577 (coding_set_source, coding_set_destination):
d311d28c
PE
12578 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12579 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
12580 (Fdefine_coding_system_internal):
12581 Don't assume fixnums fit in int.
12582 (decode_coding_gap, decode_coding_object, encode_coding_object)
5895d7b9 12583 (Fread_coding_system, Fdetect_coding_region)
2c6a9faa
PE
12584 (Funencodable_char_position, Fcheck_coding_systems_region)
12585 (get_translation, handle_composition_annotation, consume_chars):
d311d28c 12586 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
977b0e45 12587 (consume_chars): Rewrite to not calculate an address outside buffer.
d311d28c 12588 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
7b09a37a 12589 Don't access memory outside of the args array.
d311d28c 12590 (Fdefine_coding_system_internal): Check for charset-id overflow.
47664caa
PE
12591 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
12592 result of ENCODE_CHAR.
d311d28c
PE
12593 * coding.h: Adjust decls to match defn changes elsewhere.
12594 (struct coding_system):
12595 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12596 * composite.c (get_composition_id, find_composition)
12597 (run_composition_function, update_compositions)
12598 (compose_text, composition_gstring_put_cache)
12599 (composition_gstring_p, composition_gstring_width)
12600 (fill_gstring_header, fill_gstring_body, autocmp_chars)
12601 (composition_compute_stop_pos, composition_reseat_it)
12602 (composition_update_it, struct position_record)
12603 (find_automatic_composition, composition_adjust_point)
12604 (Fcomposition_get_gstring, Ffind_composition_internal):
12605 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12606 (update_compositions):
12607 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12608 * composite.h: Adjust decls to match defn changes elsewhere.
12609 (struct composition):
12610 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12611 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
12612 Do not attempt to compute the address of the object just before a
12613 buffer; this is not portable.
12614 (Faref, Faset):
12615 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12616 (Faset): Use int, not EMACS_INT, where int is wide enough.
12617 (Fstring_to_number): Don't assume fixnums fit in int.
12618 (Frem): Don't assume arg is nonnegative.
12619 * dbusbind.c (xd_append_arg): Check for integers out of range.
12620 (Fdbus_call_method): Don't overflow the timeout int.
42b2a986 12621 (extract_signed, extract_unsigned): New functions.
243e0530
PE
12622 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
12623 (xd_get_connection_references): Return ptrdiff_t, not int.
12624 All uses changed.
12625 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
12626 (xd_read_message_1):
12627 Use int, not unsigned, where the dbus API uses int.
12628 (Fdbus_message_internal): Don't overflow mtype.
12629 (syms_of_dbusbind): Allocate right-sized buffer for integers.
d311d28c
PE
12630 * dired.c (directory_files_internal, file_name_completion, scmp)
12631 (file_name_completion_stat):
12632 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12633 (file_name_completion): Don't overflow matchcount.
12634 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
12635 * dispextern.h: Adjust decls to match defn changes elsewhere.
12636 (struct text_pos, struct glyph, struct bidi_saved_info)
12637 (struct bidi_string_data, struct bidi_it, struct composition_it)
12638 (struct it):
12639 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12640 (struct display_pos, struct composition_it, struct it):
12641 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12642 * dispnew.c (increment_matrix_positions)
12643 (increment_row_positions, mode_line_string)
12644 (marginal_area_string):
12645 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
54e1617f 12646 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
d311d28c
PE
12647 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12648 (duration_to_sec_usec): New function, to check for overflow better.
12649 (Fsleep_for, sit_for): Use it.
12650 * doc.c (get_doc_string, store_function_docstring):
12651 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12652 (get_doc_string, Fsnarf_documentation):
12653 Use int, not EMACS_INT, where int is wide enough.
12654 (get_doc_string):
12655 Use SAFE_ALLOCA, not alloca.
12656 Check for overflow when converting EMACS_INT to off_t.
12657 * doprnt.c (doprnt):
12658 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12659 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
12660 Don't assume uid_t fits into fixnum.
12661 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
12662 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
12663 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
12664 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
12665 (general_insert_function)
12666 (Finsert_char, make_buffer_string, make_buffer_string_both)
12667 (update_buffer_properties, Fbuffer_substring)
12668 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
12669 (Fsubst_char_in_region, check_translation)
12670 (Ftranslate_region_internal, save_restriction_restore, Fformat)
12671 (transpose_markers, Ftranspose_regions):
12672 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12673 (clip_to_bounds): Move to lisp.h as an inline function).
12674 (Fconstrain_to_field): Don't assume integers are nonnegative.
12675 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
12676 (Fsubst_char_in_region, Fsave_restriction):
12677 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12678 (Femacs_pid): Don't assume pid_t fits into fixnum.
12679 (lo_time): Use int, not EMACS_INT, when int suffices.
12680 (lisp_time_argument): Check for usec out of range.
12681 (Fencode_time): Don't assume fixnum fits in int.
3f4eabd1
PE
12682 (Fuser_login_name, Fuser_full_name): Signal an error
12683 if a uid argument is out of range, rather than relying on
12684 undefined behavior.
c8d5c857
PE
12685 (Fformat_time_string): Remove now-unnecessary check.
12686 lisp_time_argument checks for out-of-range usec now.
243e0530 12687 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
d311d28c
PE
12688 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
12689 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
12690 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
12691 (init_cmdargs, Fdump_emacs):
12692 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12693 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
12694 the bottom (typically) 32 bits of the fixnum.
12695 * eval.c (specpdl_size, call_debugger):
12696 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12697 (when_entered_debugger, Fbacktrace_debug):
12698 Don't assume fixnum can fit in int.
12699 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
12700 the object just before a buffer; this is not portable.
12701 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
12702 (grow_specpdl, unbind_to):
12703 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12704 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
12705 (grow_specpdl): Simplify allocation by using xpalloc.
856bbc81 12706 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
d311d28c
PE
12707 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
12708 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
12709 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12710 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
12711 (a_write, e_write):
12712 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12713 (Fcopy_file, non_regular_nbytes, read_non_regular)
12714 (Finsert_file_contents):
12715 Use int, not EMACS_INT, where int is wide enough.
12716 (READ_BUF_SIZE): Verify that it fits in int.
12717 (Finsert_file_contents): Check that counts are in proper range,
12718 rather than assuming fixnums fit into ptrdiff_t etc.
12719 Don't assume fixnums fit into int.
125b3835 12720 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
5895d7b9
PE
12721 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
12722 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
d311d28c
PE
12723 (string_char_to_byte, string_byte_to_char)
12724 (string_make_multibyte, string_to_multibyte)
12725 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
12726 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
12727 (substring_both, Fdelete, internal_equal, Ffillarray)
12728 (Fclear_string, mapcar1)
12729 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
12730 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
12731 (larger_vector, make_hash_table, maybe_resize_hash_table)
12732 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
12733 (Fmaphash, secure_hash):
12734 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12735 (concat): Check for string index and length overflow.
12736 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
12737 (Frequire):
12738 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12739 (larger_vector): New API (vec, incr_min, size_max) replaces old
12740 one (vec, new_size, init). This catches size overflow.
12741 INIT was removed because it was always Qnil.
12742 All callers changed.
12743 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
12744 the upper bound on a hash table index size.
12745 (make_hash_table, maybe_resize_hash_table): Use it.
12746 (secure_hash): Computer start_byte and end_byte only after
12747 they're known to be in ptrdiff_t range.
12748 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
12749 (Ffont_get_glyphs, Ffont_at):
12750 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12751 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
12752 (Flist_fonts, Fopen_font):
12753 Don't assume fixnum can fit in int.
12754 (check_gstring): Don't assume index can fit in int.
12755 (font_match_p): Check that fixnum is a character, not a nonnegative
12756 fixnum, since the later code needs to stuff it into an int.
12757 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
12758 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
12759 conversion overflow issues.
12760 (Fopen_font): Check for integer out of range.
12761 (Ffont_get_glyphs): Don't assume index can fit in int.
12762 * font.h: Adjust decls to match defn changes elsewhere.
12763 * fontset.c (reorder_font_vector): Redo score calculation to avoid
12764 integer overflow.
12765 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
12766 printmax_t, where ptrdiff_t is wide enough.
12767 (Finternal_char_font):
12768 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12769 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
12770 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
12771 (Fset_frame_position, x_set_frame_parameters)
12772 (x_set_line_spacing, x_set_border_width)
12773 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
12774 Check that fixnums are in proper range for system types.
12775 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
12776 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12777 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
12778 Use SAFE_ALLOCA_LISP, not alloca.
12779 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
12780 intptr_t is wide enough.
12781 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
12782 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
12783 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
12784 Check for fixnum out of range.
12785 * ftfont.c (ftfont_list): Don't assume index fits in int.
12786 Check that fixnums are in proper range for system types.
12787 (ftfont_shape_by_flt):
12788 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
d311d28c
PE
12789 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
12790 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12791 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
12792 Check that fixnums are in proper range for system types.
12793 * gnutls.h: Adjust decls to match defn changes elsewhere.
12794 * gtkutil.c (xg_dialog_run):
12795 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12796 (update_frame_tool_bar):
12797 Check that fixnums are in proper range for system types.
12798 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
5895d7b9 12799 (lookup_image): Check that fixnums are in range for system types.
d311d28c
PE
12800 * indent.c (last_known_column, last_known_column_point):
12801 (current_column_bol_cache):
12802 (skip_invisible, current_column, check_display_width):
12803 (check_display_width, scan_for_column, current_column_1)
12804 (Findent_to, Fcurrent_indentation, position_indentation)
12805 (indented_beyond_p, Fmove_to_column, compute_motion):
12806 (Fcompute_motion, Fvertical_motion):
12807 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12808 (last_known_column_modified): Use EMACS_INT, not int.
12809 (check_display_width):
12810 (Fcompute_motion):
12811 Check that fixnums and floats are in proper range for system types.
12812 (compute_motion): Don't assume index or fixnum fits in int.
12813 (compute_motion, Fcompute_motion):
12814 Use int, not EMACS_INT, when it is wide enough.
12815 (vmotion): Omit local var start_hpos that is always 0; that way
12816 we don't need to worry about overflow in expressions involving it.
12817 * indent.h: Adjust decls to match defn changes elsewhere.
12818 (struct position):
12819 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12820 Use int, not EMACS_INT, where int is wide enough.
12821 Remove unused members ovstring_chars_done and tab_offset;
12822 all uses removed.
12823 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
12824 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
12825 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
12826 (make_gap, copy_text, insert, insert_and_inherit)
12827 (insert_before_markers, insert_before_markers_and_inherit)
12828 (insert_1, count_combining_before, count_combining_after)
12829 (insert_1_both, insert_from_string)
12830 (insert_from_string_before_markers, insert_from_string_1)
12831 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
12832 (adjust_after_replace, adjust_after_insert, replace_range)
12833 (replace_range_2, del_range, del_range_1, del_range_byte)
12834 (del_range_both, del_range_2, modify_region)
12835 (prepare_to_modify_buffer, signal_before_change)
12836 (signal_after_change, Fcombine_after_change_execute):
12837 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12838 * intervals.c (traverse_intervals, rotate_right, rotate_left)
12839 (balance_an_interval, split_interval_right, split_interval_left)
12840 (find_interval, next_interval, update_interval)
12841 (adjust_intervals_for_insertion, delete_node, delete_interval)
12842 (interval_deletion_adjustment, adjust_intervals_for_deletion)
12843 (static_offset_intervals, offset_intervals)
12844 (merge_interval_right, merge_interval_left, make_new_interval)
12845 (graft_intervals_into_buffer, temp_set_point_both)
12846 (temp_set_point, set_point, adjust_for_invis_intang)
12847 (set_point_both, move_if_not_intangible, get_property_and_range)
12848 (get_local_map, copy_intervals, copy_intervals_to_string)
12849 (compare_string_intervals, set_intervals_multibyte_1):
12850 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12851 * intervals.h: Adjust decls to match defn changes elsewhere.
12852 (struct interval):
12853 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12854 * keyboard.c (this_command_key_count, this_single_command_key_start)
12855 (before_command_key_count, before_command_echo_length, echo_now)
12856 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
12857 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
12858 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
12859 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
12860 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12861 (last_non_minibuf_size, last_point_position, echo_truncate)
12862 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
12863 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
12864 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
12865 (stuff_buffered_input):
12866 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12867 (last_auto_save, command_loop_1, read_char):
12868 Use EMACS_INT, not int, to avoid integer overflow.
12869 (record_char): Avoid overflow in total_keys computation.
12870 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
12871 * keyboard.h: Adjust decls to match defn changes elsewhere.
12872 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
12873 (Fkey_description, Fdescribe_vector, Flookup_key):
12874 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12875 (click_position): New function, to check that positions are in range.
12876 (Fcurrent_active_maps):
12877 (describe_command):
12878 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12879 (Faccessible_keymaps, Fkey_description):
12880 (preferred_sequence_p):
12881 Don't assume fixnum can fit into int.
12882 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
12883 Check for integer overflow in size calculations.
12884 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
12885 avoid mishandling large integers.
12886 * lisp.h: Adjust decls to match defn changes elsewhere.
12887 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
12888 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
12889 (struct Lisp_Marker):
12890 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12891 (clip_to_bounds): Now an inline function, moved here from editfns.c.
d311d28c
PE
12892 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
12893 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
12894 All callers changed.
12895 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
12896 Assume the arg has valid form, since it always does.
12897 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
12898 unsigned integer system type.
12899 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
12900 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
12901 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12902 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
12903 (duration_to_sec_usec): New decl.
12904 * lread.c (read_from_string_index, read_from_string_index_byte)
12905 (read_from_string_limit, readchar, unreadchar, openp)
12906 (read_internal_start, read1, oblookup):
12907 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12908 (Fload, readevalloop, Feval_buffer, Feval_region):
12909 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12910 (openp): Check for out-of-range argument to 'access'.
12911 (read1): Use int, not EMACS_INT, where int is wide enough.
12912 Don't assume fixnum fits into int.
6efdadfd 12913 Fix off-by-one error that can read outside a buffer.
1ab7b8ac
PE
12914 (read_filtered_event): Use duration_to_sec_usec
12915 to do proper overflow checking on durations.
d311d28c
PE
12916 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
12917 in size calculation.
12918 (Fexecute_kbd_macro):
12919 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12920 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
12921 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
12922 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
12923 (set_marker_both, set_marker_restricted_both, marker_position)
12924 (marker_byte_position, Fbuffer_has_markers_at):
12925 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12926 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
61b108cc 12927 * menu.c (ensure_menu_items): Rename from grow_menu_items.
d311d28c
PE
12928 It now merely ensures that the menu is large enough, without
12929 necessarily growing it, as this avoids some integer overflow issues.
12930 All callers changed.
12931 (keymap_panes, parse_single_submenu, Fx_popup_menu):
12932 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12933 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
12934 Use SAFE_ALLOCA_LISP, not alloca.
12935 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
12936 to EMACS_INT. Check that fixnums are in proper range for system types.
12937 * minibuf.c (minibuf_prompt_width, string_to_object)
12938 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
12939 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
12940 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12941 (get_minibuffer, read_minibuf_unwind):
12942 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12943 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
12944 this simplifies overflow checking. All callers changed.
12945 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
12946 (Ftest_completion):
12947 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12948 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
12949 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
12950 Check that fixnums are in proper range for system types.
12951 (Fx_create_frame, Fx_show_tip):
12952 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12953 * nsfont.m (ns_findfonts, nsfont_list_family):
12954 Don't assume fixnum fits in long.
12955 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
12956 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12957 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
12958 wide enough.
17fdb222 12959 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
d311d28c
PE
12960 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12961 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
12962 (PRINTDECLARE, PRINTPREPARE):
12963 (strout, print_string):
12964 (print, print_preprocess, print_check_string_charset_prop)
12965 (print_object):
12966 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12967 (PRINTDECLARE):
12968 (temp_output_buffer_setup, Fprin1_to_string, print_object):
12969 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12970 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
d311d28c 12971 (printchar, strout): Use xpalloc to catch size calculation overflow.
0fd11aa5 12972 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
d311d28c
PE
12973 (print_error_message): Use SAFE_ALLOCA, not alloca.
12974 (print_object): Use int, not EMACS_INT, where int is wide enough.
a8b7caa3
PE
12975 (print_depth, new_backquote_output, print_number_index):
12976 Use ptrdiff_t, not int, where int might not be wide enough.
d311d28c
PE
12977 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
12978 (Fset_process_window_size, Fformat_network_address)
12979 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
d44287d4 12980 (sigchld_handler):
d311d28c 12981 Check that fixnums are in proper range for system types.
d44287d4 12982 (Fsignal_process): Simplify by avoiding a goto.
d83cf4cc
PE
12983 Check for process-ids out of pid_t range rather than relying on
12984 undefined behavior.
e4d81efc 12985 (process_tick, update_tick): Use EMACS_INT, not int.
d311d28c
PE
12986 (Fformat_network_address, read_process_output, send_process)
12987 (Fprocess_send_region, status_notify):
12988 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12989 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
12990 (wait_reading_process_output, read_process_output, exec_sentinel):
12991 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12992 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
12993 (Faccept_process_output): Use duration_to_sec_usec to do proper
12994 overflow checking on durations.
dde14581
PE
12995 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
12996 Don't assume pid_t fits in int.
02481186
PE
12997 * process.h (struct Lisp_Process): Members tick and update_tick
12998 are now of type EMACS_INT, not int.
b62b53e8
PE
12999 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
13000 configured --with-wide-int.
d311d28c
PE
13001 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
13002 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
13003 * search.c (looking_at_1, string_match_1):
13004 (fast_string_match, fast_c_string_match_ignore_case)
13005 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
13006 (scan_newline, find_before_next_newline, search_command)
13007 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
13008 (set_search_regs, wordify):
13009 (Freplace_match):
13010 (Fmatch_data):
13011 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13012 (string_match_1, search_buffer, set_search_regs):
13013 (Fmatch_data):
13014 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13015 (wordify): Check for overflow in size calculation.
13016 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
13017 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
13018 Check that fixnums are in proper range for system types.
13019 * sound.c (struct sound_device)
13020 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
13021 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13022 (Fplay_sound_internal):
13023 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
eacd378d 13024 * syntax.c (struct lisp_parse_state, find_start_modiff)
d311d28c
PE
13025 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
13026 (Fparse_partial_sexp):
13027 Don't assume fixnums can fit in int.
13028 (struct lisp_parse_state, find_start_pos, find_start_value)
13029 (find_start_value_byte, find_start_begv)
13030 (update_syntax_table, char_quoted, dec_bytepos)
13031 (find_defun_start, prev_char_comend_first, back_comment):
13032 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
13033 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
13034 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13035 (Finternal_describe_syntax_value): Check that match_lisp is a
13036 character, not an integer, since the code stuffs it into int.
13037 (scan_words, scan_sexps_forward):
13038 Check that fixnums are in proper range for system types.
13039 (Fforward_word):
13040 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13041 (scan_sexps_forward):
13042 Use CHARACTERP, not INTEGERP, since the value must fit into int.
13043 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
13044 * syntax.h: Adjust decls to match defn changes elsewhere.
13045 (struct gl_state_s):
13046 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
e4ecdc9c
PE
13047 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
13048 MOST_POSITIVE_FIXNUM.
d311d28c
PE
13049 * sysdep.c (wait_for_termination_1, wait_for_termination)
13050 (interruptible_wait_for_termination, mkdir):
13051 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
13052 (emacs_read, emacs_write):
13053 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
225a2cff
PE
13054 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
13055 and double all fit in int.
d311d28c
PE
13056 * term.c (set_tty_color_mode):
13057 Check that fixnums are in proper range for system types.
13058 * termhooks.h (struct input_event):
13059 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13060 * textprop.c (validate_interval_range, interval_of)
13061 (Fadd_text_properties, set_text_properties_1)
13062 (Fremove_text_properties, Fremove_list_of_text_properties)
13063 (Ftext_property_any, Ftext_property_not_all)
13064 (copy_text_properties, text_property_list, extend_property_ranges)
13065 (verify_interval_modification):
13066 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13067 (Fnext_single_char_property_change)
13068 (Fprevious_single_char_property_change):
13069 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5895d7b9
PE
13070 (copy_text_properties):
13071 Check for integer overflow in index calculation.
d311d28c
PE
13072 * undo.c (last_boundary_position, record_point, record_insert)
13073 (record_delete, record_marker_adjustment, record_change)
13074 (record_property_change):
13075 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13076 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
13077 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13078 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
13079 (Fx_hide_tip, Fx_file_dialog):
13080 * w32menu.c (set_frame_menubar):
13081 Use ptrdiff_t, not int, for consistency with rest of code.
13082 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
13083 (select_window, Fdelete_other_windows_internal)
13084 (window_scroll_pixel_based, window_scroll_line_based)
13085 (Frecenter, Fset_window_configuration):
13086 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13087 (Fset_window_hscroll, run_window_configuration_change_hook)
13088 (set_window_buffer, temp_output_buffer_show, scroll_command)
5895d7b9 13089 (Fscroll_other_window, Frecenter):
d311d28c
PE
13090 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13091 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
13092 Don't assume fixnum fits in int.
13093 (Fset_window_scroll_bars):
13094 Check that fixnums are in proper range for system types.
13095 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
13096 (string_pos, c_string_pos, number_of_chars, init_iterator)
13097 (in_ellipses_for_invisible_text_p, init_from_display_pos)
13098 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
13099 (compute_display_string_end, handle_face_prop)
5895d7b9
PE
13100 (face_before_or_after_it_pos, handle_invisible_prop)
13101 (handle_display_prop, handle_display_spec, handle_single_display_spec)
d311d28c
PE
13102 (display_prop_intangible_p, string_buffer_position_lim)
13103 (string_buffer_position, handle_composition_prop, load_overlay_strings)
13104 (get_overlay_strings_1, get_overlay_strings)
13105 (iterate_out_of_display_property, forward_to_next_line_start)
13106 (back_to_previous_visible_line_start, reseat, reseat_to_string)
13107 (get_next_display_element, set_iterator_to_next)
13108 (get_visually_first_element, compute_stop_pos_backwards)
13109 (handle_stop_backwards, next_element_from_buffer)
13110 (move_it_in_display_line_to, move_it_in_display_line)
13111 (move_it_to, move_it_vertically_backward, move_it_by_lines)
13112 (add_to_log, message_dolog, message_log_check_duplicate)
13113 (message2, message2_nolog, message3, message3_nolog
13114 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
13115 (current_message_1, truncate_echo_area, truncate_message_1)
13116 (set_message, set_message_1, store_mode_line_noprop)
13117 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
13118 (text_outside_line_unchanged_p, check_point_in_composition)
13119 (reconsider_clip_changes)
13120 (redisplay_internal, set_cursor_from_row, try_scrolling)
13121 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
13122 (redisplay_window, find_last_unchanged_at_beg_row)
13123 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
13124 (trailing_whitespace_p, find_row_edges, display_line)
13125 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
13126 (display_mode_element, store_mode_line_string)
13127 (pint2str, pint2hrstr, decode_mode_spec)
13128 (display_count_lines, display_string, draw_glyphs)
13129 (x_produce_glyphs, x_insert_glyphs)
13130 (rows_from_pos_range, mouse_face_from_buffer_pos)
13131 (fast_find_string_pos, mouse_face_from_string_pos)
13132 (note_mode_line_or_margin_highlight, note_mouse_highlight):
13133 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13134 (safe_call, init_from_display_pos, handle_fontified_prop)
13135 (handle_single_display_spec, load_overlay_strings)
13136 (with_echo_area_buffer, setup_echo_area_for_printing)
13137 (display_echo_area, echo_area_display)
13138 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
13139 (update_tool_bar, hscroll_window_tree, redisplay_internal)
5895d7b9
PE
13140 (redisplay_window, dump_glyph_row, display_mode_line)
13141 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
43ad2e9a 13142 (handle_display_spec, display_prop_string_p):
d311d28c
PE
13143 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13144 (handle_single_display_spec, build_desired_tool_bar_string)
13145 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
13146 (get_specified_cursor_type):
13147 Check that fixnums are in proper range for system types.
13148 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
13149 (Flookup_image_map):
13150 Don't assume fixnums fit in int.
13151 (compare_overlay_entries):
13152 Avoid mishandling comparisons due to subtraction overflow.
13153 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
13154 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
13155 (handle_tool_bar_click):
13156 Use int, not unsigned, since we prefer signed and the signedness
13157 doesn't matter here.
13158 (get_next_display_element, next_element_from_display_vector):
13159 Use int, not EMACS_INT, when int is wide enough.
13160 (start_hourglass): Use duration_to_sec_usec to do proper
13161 overflow checking on durations.
13162 * xfaces.c (Fbitmap_spec_p):
13163 Check that fixnums are in proper range for system types.
13164 (compare_fonts_by_sort_order):
13165 Avoid mishandling comparisons due to subtraction overflow.
13166 (Fx_family_fonts, realize_basic_faces):
13167 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13168 (Fx_family_fonts):
13169 Don't assume fixnum fits in int.
13170 Use SAFE_ALLOCA_LISP, not alloca.
13171 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
13172 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
13173 (face_at_buffer_position, face_for_overlay_string)
13174 (face_at_string_position):
13175 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13176 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
13177 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
13178 (Fx_show_tip):
13179 Check that fixnums are in proper range for system types.
13180 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
13181 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
13182 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13183 (Fx_change_window_property): Don't assume fixnums fit in int.
13184 * xfont.c (xfont_chars_supported):
13185 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13186 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
13187 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
13188 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13189 * xml.c (parse_region):
13190 * xrdb.c (magic_file_p):
13191 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13192 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
13193 (x_get_local_selection, x_reply_selection_request)
13194 (x_handle_selection_request, wait_for_property_change):
13195 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13196 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
13197 short is wide enough.
13198 (x_send_client_event): Don't assume fixnum fits in int.
13199 * xterm.c (x_x_to_emacs_modifiers):
13200 Don't assume EMACS_INT overflows nicely into int.
13201 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
13202 may come from Lisp.
13203 (handle_one_xevent): NATNUMP can eval its arg twice.
13204 (x_connection_closed):
13205 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13206 * xterm.h: Adjust decls to match defn changes elsewhere.
13207 (struct scroll_bar): Use struct vectorlike_header
13208 rather than rolling our own approximation.
13209 (SCROLL_BAR_VEC_SIZE): Remove; not used.
13210
c6574eb5
GM
132112012-05-25 Glenn Morris <rgm@gnu.org>
13212
13213 * lisp.mk (lisp): Update for more files being compiled now.
13214
e8d32c7e
SM
132152012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
13216
48def666
SM
13217 * lread.c: Remove `read_pure' which makes no difference.
13218 (read_pure): Remove var.
13219 (unreadpure): Remove function.
13220 (readevalloop): Don't call read_list with -1 flag.
13221 (read1, read_vector): Don't test read_pure any more.
13222 (read_list): Simplify.
13223
e8d32c7e
SM
13224 * fileio.c, character.h: Minor style tweaks.
13225
4b2addb7
DA
132262012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
13227
13228 * window.h (clip_changed): Remove useless declaration.
13229
584461b2
JB
132302012-05-22 Juanma Barranquero <lekktu@gmail.com>
13231
13232 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
13233 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
13234
34374650
PE
132352012-05-22 Paul Eggert <eggert@cs.ucla.edu>
13236
13237 Remove src/m/*.
13238 This directory predates autoconf and is no longer needed nowadays.
13239 Move its few remaining bits of functionality to where they're needed.
13240 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
13241 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
13242 * m/template.h: Remove.
13243 * Makefile.in (M_FILE): Remove. All uses removed.
13244 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
13245 * lisp.h (USE_LSB_TAG):
13246 * mem-limits.h (EXCEEDS_LISP_PTR):
13247 Use VAL_MAX, not VALBITS, in #if.
13248 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
13249 (EMACS_UINT): Define unconditionally now.
13250 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
13251 (BITS_PER_EMACS_INT): New constants, replacing
13252 what used to be in config.h, but not useful in #if.
13253 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
13254 define them any more.
13255 (VAL_MAX): New macro.
13256 (VALMASK): Use it.
13257 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
13258 BITS_PER_EMACS_INT, in #if.
13259 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
13260 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
13261 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
13262 * s/ms-w32.h (DATA_START):
13263 Move here from removed file m/intel386.h.
13264 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
13265 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
13266
261cb4bb
PE
132672012-05-21 Paul Eggert <eggert@cs.ucla.edu>
13268
13269 Assume C89 or later.
13270 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
13271 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
13272 (xrealloc):
13273 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
13274 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
13275 * textprop.c, tparam.c (NULL): Remove.
13276 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
13277 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
13278 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
13279 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
13280 * xterm.c (input_signal_count): Assume volatile works.
13281
ff23cd9f
KB
132822012-05-21 Ken Brown <kbrown@cornell.edu>
13283
13284 * xgselect.c (xg_select): Fix first argument in call to 'select'
13285 (bug#11508).
13286
1b170bc6
KB
132872012-05-20 Ken Brown <kbrown@cornell.edu>
13288
13289 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
bd7239f5 13290 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
1b170bc6 13291
b2f4d39f
KB
132922012-05-19 Ken Brown <kbrown@cornell.edu>
13293
13294 * xfns.c (x_in_use): Remove `static' qualifier.
13295 * xterm.h (x_in_use): Declare.
13296 * xgselect.c: Include xterm.h.
13297 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
13298 and `display_arg' (bug#9754).
13299
003fdae2
PE
133002012-05-19 Paul Eggert <eggert@cs.ucla.edu>
13301
9232a6d9
PE
13302 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
13303
003fdae2
PE
13304 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
13305 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
13306
784b56e2
EZ
133072012-05-18 Eli Zaretskii <eliz@gnu.org>
13308
13309 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
13310
13311 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
090bd7cb 13312 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c.
784b56e2
EZ
13313
13314 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
13315 reference to image_cache->refcount.
13316 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
13317
a0a79cde
JL
133182012-05-17 Juri Linkov <juri@jurta.org>
13319
13320 * search.c (Fword_search_regexp, Fword_search_backward)
13321 (Fword_search_forward, Fword_search_backward_lax)
13322 (Fword_search_forward_lax): Move functions to isearch.el
13323 (bug#10145, bug#11381).
13324
b0572523
PE
133252012-05-16 Paul Eggert <eggert@cs.ucla.edu>
13326
13327 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
13328
9660f5fc
SM
133292012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
13330
13331 * lread.c (init_obarray): Declare Qt and Qnil as special.
13332
4374de83
GM
133332012-05-14 Glenn Morris <rgm@gnu.org>
13334
13335 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
985584ae 13336 Put "libexec" before "bin", for the sake of init_callproc_1.
4374de83 13337
dc44c39a
PE
133382012-05-14 Paul Eggert <eggert@cs.ucla.edu>
13339
078c97cb
PE
13340 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
13341
dc44c39a
PE
13342 * unexaix.c: Port to more-recent AIX compilers.
13343 (report_error, report_error_1, make_hdr, copy_sym)
13344 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
13345 Make arguments const char *, not char *, to avoid violations of C
13346 standard and to fix some AIX warnings reported by Gilles Pion.
13347
e18afed7 133482012-05-14 Eli Zaretskii <eliz@gnu.org>
ac268e67
EZ
13349
13350 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
13351 already have overlays loaded.
13352 (handle_single_display_spec): Before returning without displaying
13353 fringe bitmap, synchronize the bidi iterator with the main display
13354 iterator, by calling iterate_out_of_display_property.
13355 (iterate_out_of_display_property): Detect buffer iteration by
13356 testing that it->string is a Lisp string.
13357 (get_next_display_element): When the current object is exhausted,
13358 and there's something on it->stack, call set_iterator_to_next to
13359 proceed with what's on the stack, instead of returning zero.
13360 (set_iterator_to_next): If called at the end of a Lisp string,
13361 proceed to consider_string_end without incrementing string
13362 position. Don't increment display vector index past the end of
13363 the display vector. (Bug#11417)
c8fb9dc6
EZ
13364 (pos_visible_p): Don't report a position visible when move_it_to
13365 stopped at the last line of window, which happens to be scanned
13366 backwards by the bidi iteration. (Bug#11464)
ac268e67 13367
e18afed7 133682012-05-14 Eli Zaretskii <eliz@gnu.org>
82f9b393
EZ
13369
13370 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
13371 and right-margin display specs even if the spec is invalid or we
61b108cc
SM
13372 are on a TTY, and thus unable to display on the fringes.
13373 That's because the text with the property will not be displayed anyway,
82f9b393
EZ
13374 so we need to signal to the caller that this is a "replacing"
13375 display spec. This fixes display when the spec is invalid or we
13376 are on a TTY.
13377
e18afed7 133782012-05-14 Paul Eggert <eggert@cs.ucla.edu>
297834cd
PE
13379
13380 * unexaix.c (make_hdr): Fix typo in prototype.
13381 This bug broke the build on AIX. Problem reported by Gilles Pion.
13382
9d0a235a
MA
133832012-05-14 Michael Albinus <michael.albinus@gmx.de>
13384
13385 * keyboard.c (kbd_buffer_get_event): Read special events also in
13386 batch mode. (Bug#11415)
13387
9e6b06ed
GM
133882012-05-12 Glenn Morris <rgm@gnu.org>
13389
13390 * ns.mk: Update for ns_appbindir no longer having trailing "/".
13391
c1a1d7a3
EZ
133922012-05-12 Eli Zaretskii <eliz@gnu.org>
13393
13394 * lisp.mk (lisp): Add newcomment.elc.
13395
3fe7cdc8
GM
133962012-05-12 Glenn Morris <rgm@gnu.org>
13397
13398 * Makefile.in (MKDIR_P): New, set by configure.
13399 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
13400
53f7d2c0
PE
134012012-05-11 Paul Eggert <eggert@cs.ucla.edu>
13402
13403 Remove unused function hourglass_started.
13404 * dispextern.h (hourglass_started):
13405 * w32fns.c (hourglass_started):
13406 * xdisp.c (hourglass_started): Remove.
13407
75aafb17
JB
134082012-05-10 Juanma Barranquero <lekktu@gmail.com>
13409
13410 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
13411 Update dependencies.
13412
12959e8e
PE
134132012-05-10 Paul Eggert <eggert@cs.ucla.edu>
13414
97107e2e
PE
13415 * xgselect.c (xg_select): Put maxfds+1 into a var.
13416 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
13417
12959e8e
PE
13418 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
13419
836d29b3
DA
134202012-05-10 Dave Abrahams <dave@boostpro.com>
13421
13422 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
13423 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
13424
5cb67954
MA
134252012-05-09 Michael Albinus <michael.albinus@gmx.de>
13426
13427 * dbusbind.c (xd_registered_buses): New internal Lisp object.
cccaebd2 13428 Rename all occurrences of Vdbus_registered_buses to xd_registered_buses.
5cb67954
MA
13429 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
13430 Initialize xd_registered_buses.
13431
3478ec45
PE
134322012-05-09 Paul Eggert <eggert@cs.ucla.edu>
13433
b263a6b0
PE
13434 Untag more efficiently if USE_LSB_TAG.
13435 This is based on a proposal by YAMAMOTO Mitsuharu in
13436 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
13437 For an admittedly artificial (nth 8000 longlist) benchmark on
13438 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
13439 Emacs's overall text size by 1%.
13440 * lisp.h (XUNTAG): New macro.
13441 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
13442 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
13443 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
13444 * eval.c (Fautoload):
13445 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
13446 * frame.h (XFRAME): Use XUNTAG.
13447
3478ec45
PE
13448 Port recent dbusbind.c changes to 32-bit --with-wide-int.
13449 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
13450 Remove unportable assumptions about print widths of types like
13451 dbus_uint32_t.
13452 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
13453 intptr_t when converting between pointer and integer, to avoid GCC
13454 warnings about wrong width.
13455
666b903b 134562012-05-09 Eli Zaretskii <eliz@gnu.org>
0d887c7d
EZ
13457
13458 * w32proc.c (new_child): Force Windows to reserve only 64KB of
13459 stack for each reader_thread, instead of defaulting to 8MB
13460 determined by the linker. This avoids failures in creating
13461 subprocesses on Windows 7, see the discussion in this thread:
13462 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
13463
b120cc17
JC
134642012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
13465
13466 Fix up display of the *Minibuf-0* buffer in the mini window.
13467 * keyboard.c (read_char): Don't clear the echo area if there's no
13468 message to clear.
13469 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
2fed2689 13470 contents of *Minibuf-0*) if there's no message displayed in its stead.
b120cc17 13471
9a4b36f8
MA
134722012-05-07 Michael Albinus <michael.albinus@gmx.de>
13473
13474 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
13475 batch mode.
13476
e5f9458f
CY
134772012-05-06 Chong Yidong <cyd@gnu.org>
13478
13479 * lisp.mk (lisp): Update.
13480
eceeb5fc 134812012-05-05 Jim Meyering <meyering@redhat.com>
bf98199c
JM
13482
13483 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
13484
71873e2b
SM
134852012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
13486
13487 * data.c (PUT_ERROR): New macro.
13488 (syms_of_data): Use it. Add new error type `user-error'.
13489 * undo.c (user_error): New function.
13490 (Fprimitive_undo): Use it.
13491 * print.c (print_error_message): Adjust print style for `user-error'.
13492 * keyboard.c (user_error): New function.
13493 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
13494
ab0fa4e4
PE
134952012-05-03 Paul Eggert <eggert@cs.ucla.edu>
13496
13497 Do not limit current-time-string to years 1000..9999.
13498 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
13499 (Fcurrent_time_string): Support any year that is supported by the
13500 underlying localtime representation. Don't use asctime, as it
13501 has undefined behavior for years outside the range -999..9999.
13502
7ed806a7
PE
135032012-05-02 Paul Eggert <eggert@cs.ucla.edu>
13504
13505 Fix race conditions involving setenv, gmtime, localtime, asctime.
13506 Without this fix, interrupts could mess up code that uses these
13507 nonreentrant functions, since setting TZ invalidates existing
13508 tm_zone or tzname values, and since most of these functions return
13509 pointers to static storage.
13510 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
13511 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
13512 Grow the critical sections to include not just invoking
13513 localtime/gmtime, but also accessing these functions' results
13514 including their tm_zone values if any, and any related TZ setting.
13515 (format_time_string): Last arg is now struct tm *, not struct tm **,
71873e2b
SM
13516 so that the struct tm is saved in the critical section.
13517 All callers changed. Simplify allocation of initial buffer, partly
7ed806a7
PE
13518 motivated by the fact that memory allocation needs to be outside
13519 the critical section.
13520
0c16dfed
DA
135212012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
13522
13523 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
13524 with RESET_INTERVAL.
13525
13526 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
13527 Remove duplicated buffer name initialization.
13528
3f83ace8
JM
135292012-05-02 Jim Meyering <jim@meyering.net>
13530
13531 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
13532
c7b8541e
JM
13533 * xfns.c (x_window): Use xstrdup (Bug#11375).
13534
90207a15 135352012-05-02 Eli Zaretskii <eliz@gnu.org>
2fa85638
EZ
13536
13537 * xdisp.c (pos_visible_p): If already at a newline from the
13538 display string before the 'while' loop, don't walk back the glyphs
13539 from it3.glyph_row. Solves assertion violation when the display
13540 string begins with a newline (egg.el). (Bug#11367)
13541
b593d6a9
AH
135422012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
13543
13544 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
13545 Move to simple.el.
13546
4737362e
GM
135472012-05-01 Glenn Morris <rgm@gnu.org>
13548
99cf43f9
GM
13549 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
13550 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
13551 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
13552 All were removed before 23.1.
13553
9311dcff
GM
13554 * dispnew.c: Remove HAVE_LIBNCURSES test;
13555 it is always true on relevant platforms.
13556
4d5c6349
GM
13557 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
13558 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
13559
4737362e
GM
13560 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
13561
74dd3a6b
AS
135622012-04-30 Andreas Schwab <schwab@linux-m68k.org>
13563
13564 * .gdbinit (xpr): Remove checks for no longer existing misc types.
13565 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
13566 Remove.
13567
13c379ee
PE
135682012-04-28 Paul Eggert <eggert@cs.ucla.edu>
13569
13570 Do not avoid creating empty evaporating overlays (Bug#9642).
13571 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
13572 That is, do not delete an evaporating overlay if it becomes
13573 empty after its bounds are adjusted to fit within its buffer.
13574 This fix caused other problems, and I'm reverting it until we get
13575 to the bottom of them.
13576
a8e7d6d7 135772012-04-27 Chong Yidong <cyd@gnu.org>
9be2fd9b
CY
13578
13579 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
13580
a8e7d6d7 135812012-04-27 Eli Zaretskii <eliz@gnu.org>
f0ee99a0
EZ
13582
13583 * xdisp.c (pos_visible_p): If the window start position is beyond
13584 ZV, start the display from buffer beginning. Prevents assertion
13585 violation in init_iterator when the minibuffer window is scrolled
13586 via the scroll bar.
13587
13588 * window.c (window_scroll_pixel_based): Likewise.
13589
a8e7d6d7 135902012-04-27 Chong Yidong <cyd@gnu.org>
9ec7751f
CY
13591
13592 * keymap.c (where_is_internal): Doc fix (Bug#10872).
13593
a8e7d6d7 135942012-04-27 Glenn Morris <rgm@gnu.org>
24c51a09
GM
13595
13596 * fileio.c (Fcopy_file, Fset_file_selinux_context):
13597 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
13598
a8e7d6d7 135992012-04-27 Eli Zaretskii <eliz@gnu.org>
73055685 13600
b593d6a9
AH
13601 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
13602 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
73055685 13603
1c6900d9
EZ
136042012-04-26 Eli Zaretskii <eliz@gnu.org>
13605
4c3fa1d9
EZ
13606 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
13607 display element, check also the underlying string or buffer
13608 character. (Bug#11341)
13609
1c6900d9
EZ
13610 * w32menu.c: Include w32heap.h.
13611 (add_menu_item): If the call to AppendMenuW (via
13612 unicode_append_menu) fails, disable Unicode menus only if we are
13613 running on Windows 9X/Me.
13614
42bf8205
AS
136152012-04-24 Andreas Schwab <schwab@linux-m68k.org>
13616
13617 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
13618 (xgetint): Add missing shift for LSB tags.
13619
b1bac16e
MR
136202012-04-24 Martin Rudalics <rudalics@gmx.at>
13621
13622 * keyboard.c (read_char): Don't wipe echo area for select window
13623 events: These might get delayed via `mouse-autoselect-window'
13624 (Bug#11304).
13625
d69621cc
JB
136262012-04-24 Juanma Barranquero <lekktu@gmail.com>
13627
13628 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
13629 manipulation of :loaded-from data.
13630
02fd101b
JB
136312012-04-23 Juanma Barranquero <lekktu@gmail.com>
13632
13633 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
13634 now a cons (bug#11311).
13635
888bec30
PE
136362012-04-23 Paul Eggert <eggert@cs.ucla.edu>
13637
89a438bd
PE
13638 Do not create empty overlays with the evaporate property (Bug#9642).
13639 * buffer.c (Fmove_overlay): Delete an evaporating overlay
13640 if it becomes empty after its bounds are adjusted to fit within
13641 its buffer. Without this fix, in a nonempty buffer (let ((o
13642 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
13643 yields an empty overlay that has the evaporate property, which is
13644 not supposed to happen.
13645
1068fe4d
PE
13646 Fix minor GTK3 problems found by static checking.
13647 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
13648 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
13649 (struct _EmacsFixedClass, emacs_fixed_get_type):
13650 Move decls here from emacsgtkfixed.h, since they needn't be public.
13651 (emacs_fixed_get_type): Now static.
13652 (emacs_fixed_class_init): Omit unused local.
13653 (emacs_fixed_child_type): Remove; unused.
13654 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
13655 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
13656 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
13657 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
13658 (EMACS_FIXED_GET_CLASS): Remove; unused.
13659 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
13660
888bec30
PE
13661 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
13662 Problem reported by Juanma Barranquero for Windows -Wunused-function.
13663
de85e130
PE
136642012-04-22 Paul Eggert <eggert@cs.ucla.edu>
13665
d0baac98 13666 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
bd7239f5 13667 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
d0baac98
PE
13668 (__malloc_size_t, __malloc_ptrdiff_t):
13669 Remove. All uses removed, replaced by the definiens if needed,
13670 since we can assume C89 or better now.
13671 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
13672 (protect_malloc_state, align, get_contiguous_space)
13673 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
13674 (malloc_atfork_handler_child, malloc_enable_thread)
13675 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
13676 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
13677 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
13678 (special_realloc, _realloc_internal_nolock, _realloc_internal)
13679 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
13680 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
13681 Define using prototypes, not old style.
13682 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
13683 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
13684 (align): Don't assume that signed integer overflow wraps around.
13685 Omit unused local var.
13686 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
13687 (_free_internal_nolock, memalign, mallochook, reallochook):
13688 Omit no-longer-needed casts.
13689 (valloc): Use getpagesize, not __getpagesize.
13690 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
13691 (struct hdr): The 'magic' member is now size_t, not unsigned long.
13692
de85e130
PE
13693 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
13694
dcbf5805
MA
136952012-04-22 Michael Albinus <michael.albinus@gmx.de>
13696
13697 Move functions from C to Lisp. Make non-blocking method calls
13698 the default. Implement further D-Bus standard interfaces.
13699
13700 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
13701 (QCdbus_request_name_allow_replacement)
13702 (QCdbus_request_name_replace_existing)
13703 (QCdbus_request_name_do_not_queue)
13704 (QCdbus_request_name_reply_primary_owner)
13705 (QCdbus_request_name_reply_in_queue)
13706 (QCdbus_request_name_reply_exists)
13707 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
13708 (QCdbus_registered_serial, QCdbus_registered_method)
13709 (QCdbus_registered_signal): New Lisp objects.
13710 (XD_DEBUG_MESSAGE): Use sizeof.
13711 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
13712 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
13713 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
13714 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
13715 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
13716 (xd_signature, xd_append_arg): Allow float for integer types.
13717 (xd_get_connection_references): New function.
b593d6a9
AH
13718 (xd_get_connection_address): Rename from xd_initialize.
13719 Return cached address.
dcbf5805
MA
13720 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
13721 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
13722 level.
13723 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
9a4b36f8 13724 Return number of refcounts.
dcbf5805
MA
13725 (Fdbus_get_unique_name): Make stronger parameter check.
13726 (Fdbus_message_internal): New defun.
13727 (Fdbus_call_method, Fdbus_call_method_asynchronously)
13728 (Fdbus_method_return_internal, Fdbus_method_error_internal)
13729 (Fdbus_send_signal, Fdbus_register_service)
13730 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
13731 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
13732 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
13733 (Vdbus_compiled_version, Vdbus_runtime_version)
13734 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
13735 (Vdbus_message_type_method_return, Vdbus_message_type_error)
13736 (Vdbus_message_type_signal): New defvars.
b593d6a9
AH
13737 (Vdbus_registered_buses, Vdbus_registered_objects_table):
13738 Adapt docstring.
dcbf5805 13739
52828e02
PE
137402012-04-22 Paul Eggert <eggert@cs.ucla.edu>
13741
da05bc4c
PE
13742 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
13743 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
13744 Do not assume ptrdiff_t is the same width as 'int'.
13745
52828e02
PE
13746 * alloc.c: Handle unusual debugging option combinations.
13747 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
13748 since the two debugging options are incompatible.
13749 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
13750 is defined.
13751 (mem_init, mem_insert, mem_insert_fixup):
13752 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
13753 (NEED_MEM_INSERT): Remove; no longer needed.
13754
f01769f9
LL
137552012-04-22 Leo Liu <sdl.web@gmail.com>
13756
13757 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
13758
5790543d
PE
137592012-04-22 Paul Eggert <eggert@cs.ucla.edu>
13760
13761 * sysdep.c [__FreeBSD__]: Minor cleanups.
13762 (list_system_processes, system_process_attributes) [__FreeBSD__]:
13763 Use Emacs indenting style more consistently. Avoid some casts.
13764 Use 'double' consistently rather than mixing 'float' and 'double'.
13765
b91b7e4d
EW
137662012-04-21 Eduard Wiebe <usenet@pusto.de>
13767
b593d6a9
AH
13768 * sysdep.c (list_system_processes, system_process_attributes):
13769 Add implementation for FreeBSD (Bug#5243).
b91b7e4d 13770
6114eb15
AS
137712012-04-21 Andreas Schwab <schwab@linux-m68k.org>
13772
13773 * lisp.mk (lisp): Update.
13774
2f38dff7
PE
137752012-04-20 Paul Eggert <eggert@cs.ucla.edu>
13776
13777 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
13778 It is never used otherwise.
13779
4ae29f89
SM
137802012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
13781
13782 * print.c (print_preprocess): Only check print_depth if print-circle
13783 is nil.
13784 (print_object): Check for cycles even when print-circle is nil and
13785 print-gensym is t, but only check print_depth if print-circle is nil.
13786
f30d612a
CY
137872012-04-20 Chong Yidong <cyd@gnu.org>
13788
13789 * process.c (wait_reading_process_output): If EIO occurs on a pty,
13790 set the status to "failed" and ensure that sentinel is run.
13791
c07a4c0b 137922012-04-20 Glenn Morris <rgm@gnu.org>
016a35df
GM
13793
13794 * process.c (Fset_process_inherit_coding_system_flag)
13795 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
4373fd43 13796 (Fmake_network_process, Fmake_serial_process): Doc fix.
016a35df 13797
c07a4c0b 137982012-04-20 Eli Zaretskii <eliz@gnu.org>
20a68157
EZ
13799
13800 * xdisp.c (string_buffer_position_lim): Limit starting position to
13801 BEGV.
13802 (set_cursor_from_row): If called for a mode-line or header-line
13803 row, return zero immediately.
13804 (try_cursor_movement): If inside continuation line, don't back up
4ae29f89
SM
13805 farther than the first row after the header line, if any.
13806 Don't consider the header-line row as "partially visible", even if
20a68157
EZ
13807 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
13808
c07a4c0b 138092012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 13810
4ae29f89
SM
13811 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
13812 (bug#11238).
ad3a2b41 13813
c07a4c0b 138142012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
6c94c34f 138152012-04-18 Paul Eggert <eggert@cs.ucla.edu>
ae6e112d
PE
13816
13817 configure: new option --enable-gcc-warnings (Bug#11207)
13818 * Makefile.in (C_WARNINGS_SWITCH): Remove.
13819 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
13820 (ALL_CFLAGS): Use new macros rather than old.
13821 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
13822 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
13823 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
13824 -Wunused-result, -Wunused-variable. This should go away once
13825 the Emacs and Gnulib regex code is merged.
13826 (xmalloc, xrealloc): Now static.
13827
aba027e8
PE
138282012-04-17 Paul Eggert <eggert@cs.ucla.edu>
13829
13830 * dired.c (Fsystem_groups): Remove unused local.
13831
e5a36063
GM
138322012-04-17 Glenn Morris <rgm@gnu.org>
13833
13834 * dired.c (Fsystem_users): Doc fix.
13835
316411f0
DA
138362012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
13837
13838 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
13839 (syms_of_dired): Add them.
13840
9426aba4
PE
138412012-04-16 Paul Eggert <eggert@cs.ucla.edu>
13842
b62a57be
PE
13843 Fix minor alloc.c problems found by static checking.
13844 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
13845 New extern decls, to avoid calling undeclared functions.
13846 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
13847 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
13848 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
13849 (NEED_MEM_INSERT): New macro.
13850 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
4b5afbb0 13851 Remove one incorrect comment and fix another.
b62a57be 13852
3539f31f
PE
13853 Fix minor ralloc.c problems found by static checking.
13854 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
13855 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
13856 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
13857 (r_alloc_sbrk): Now static.
13858
a041960a
PE
13859 Improve ralloc.c interface checking.
13860 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
13861 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
13862 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
13863 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
13864 [REL_ALLOC]: ... to here, to check interface.
13865 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
13866 Remove decls. This fixes an "It stinks!".
13867
9426aba4
PE
13868 * alloc.c (which_symbols): Fix alignment issue / type clash.
13869
d55c12ed
AS
138702012-04-15 Andreas Schwab <schwab@linux-m68k.org>
13871
13872 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
13873 (struct Lisp_Misc_Any): Likewise.
13874 (struct Lisp_Free): Likewise.
13875 * alloc.c (union aligned_Lisp_Symbol): Define.
13876 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
13877 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
13878 (union aligned_Lisp_Misc): Define.
13879 (MARKER_BLOCK_SIZE, struct marker_block): Use union
13880 aligned_Lisp_Misc instead of union Lisp_Misc.
4ae29f89 13881 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
d55c12ed 13882
b948ce8b
PE
138832012-04-14 Paul Eggert <eggert@cs.ucla.edu>
13884
13885 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
13886 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
13887 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
13888 * s/netbsd.h, s/sol2-6.h:
13889 Remove definition of GC_MARK_STACK, since the default now works.
13890 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
13891 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
13892 no longer the default.
13893 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
13894
35dc09a1 138952012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 13896
35dc09a1
GM
13897 * lread.c (lisp_file_lexically_bound_p):
13898 Fix hang at ";-*-\n" (bug#11238).
ad3a2b41 13899
35dc09a1
GM
139002012-04-14 Eli Zaretskii <eliz@gnu.org>
13901
13902 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
13903 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
13904
139052012-04-14 Jan Djärv <jan.h.d@swipnet.se>
13906
13907 * nsterm.m (constrainFrameRect): Always constrain when there is only
13908 one screen (Bug#10962).
13909
bcd86815
KB
139102012-04-13 Ken Brown <kbrown@cornell.edu>
13911
13912 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
13913
c25df26e
RT
139142012-04-13 Reuben Thomas <rrt@sc3d.org>
13915
13916 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
13917
0fc59f1e
DC
139182012-04-11 Daniel Colascione <dancol@dancol.org>
13919
13920 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
13921 against is gone. It's better to use vfork now so that when Cygwin
13922 gains a new, working vfork, we use it automatically (bug#10398).
13923
de8c03dc
SM
139242012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
13925
13926 * window.c (save_window_save): Obey window-point-insertion-type.
13927
2f097256
GM
139282012-04-11 Glenn Morris <rgm@gnu.org>
13929
13930 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
13931
453b951e
SM
139322012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
13933
13934 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
13935
75f1671a 139362012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
6bbef4e5
JC
13937
13938 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
13939 (force_quit_count): New var.
13940 (handle_interrupt): Use it.
13941
2a8ce227
JB
139422012-04-10 Juanma Barranquero <lekktu@gmail.com>
13943
13944 * w32.c (w32_delayed_load): Record the full path of the library
13945 being loaded (bug#10424).
13946
935396c0
GM
139472012-04-09 Glenn Morris <rgm@gnu.org>
13948
05920a43
GM
13949 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
13950 not just in the obarray, before snarfing them. (Bug#11036)
13951
935396c0
GM
13952 * Makefile.in ($(leimdir)/leim-list.el):
13953 Pass EMACS rather than BUILT_EMACS.
13954
a18ecafa
TZ
139552012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
13956
13957 * process.c (make_process):
13958 * process.h: Add integer `gnutls_handshakes_tried' member to
13959 process struct.
13960
6bbef4e5
JC
13961 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
13962 Add convenience `GNUTLS_LOG2i' macro.
a18ecafa
TZ
13963
13964 * gnutls.c (gnutls_log_function2i): Convenience log function.
13965 (emacs_gnutls_read): Use new log functions,
13966 `gnutls_handshakes_tried' process member, and
13967 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
13968 attempts per process (connection).
13969
b4d3bc10
CY
139702012-04-09 Chong Yidong <cyd@gnu.org>
13971
13972 * eval.c (Fuser_variable_p, user_variable_p_eh)
13973 (lisp_indirect_variable): Functions deleted.
13974 (Fdefvar): Caller changed.
13975
13976 * callint.c (Finteractive, Fcall_interactively):
13977 * minibuf.c (Fread_variable): Callers changed.
13978
70f4d973
EZ
139792012-04-09 Eli Zaretskii <eliz@gnu.org>
13980
13981 * xdisp.c (set_cursor_from_row): If the display string appears in
13982 the buffer at position that is closer to point than the position
13983 after the display string, display the cursor on the first glyph of
13984 the display string. Fixes cursor display when a 'display' text
13985 property immediately follows invisible text. (Bug#11094)
13986
cb3c2e3e
PE
139872012-04-09 Paul Eggert <eggert@cs.ucla.edu>
13988
13989 composite.c: use 'double' consistently
13990 * composite.c (get_composition_id): Use 'double' consistently
13991 instead of converting 'float' to 'double' and vice versa; this is
13992 easier to understand and avoids a GCC warning.
13993
fd06db5d
GM
139942012-04-09 Glenn Morris <rgm@gnu.org>
13995
50fe702a
GM
13996 * Makefile.in: Generate leim-list with bootstrap-emacs, in
13997 preparation for dumping it with emacs. (Bug#4789)
13998 (leimdir): New variable.
13999 ($(leimdir)/leim-list.el): New rule.
14000 (emacs$(EXEEXT)): Depend on leim-list.el.
14001
fd06db5d
GM
14002 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
14003 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
14004 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
14005
55c131ee
AS
140062012-04-08 Andreas Schwab <schwab@linux-m68k.org>
14007
14008 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
14009 proper alignment.
14010
9209588f
JB
140112012-04-07 Juanma Barranquero <lekktu@gmail.com>
14012
14013 * xml.c (init_libxml2_functions) [WINDOWSNT]:
14014 Remove unused local variable.
14015
e3fb2efb
PE
140162012-04-07 Paul Eggert <eggert@cs.ucla.edu>
14017
14018 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
14019 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
14020 (mark_memory): Mark Lisp_Objects only if pointers might hide in
14021 objects, as mark_maybe_pointer will catch them otherwise.
14022 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
14023 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
14024
b5385551
PE
140252012-04-07 Paul Eggert <eggert@cs.ucla.edu>
14026
14027 Fix typo that broke non-Windows builds.
14028 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
14029
9078ead6
EZ
140302012-04-07 Eli Zaretskii <eliz@gnu.org>
14031
14032 Support building on MS-Windows with libxml2.
14033
14034 * makefile.w32-in (OBJ2): Add xml.$(O).
14035 (GLOBAL_SOURCES): Add xml.c.
14036 ($(BLD)/xml.$(O)): New dependency list.
14037
14038 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
14039 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
14040 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
14041 [!WINDOWSNT]: New macros.
14042 (init_libxml2_functions, libxml2_loaded_p): New functions.
14043 (parse_region): Call fn_xmlCheckVersion instead of using the macro
14044 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
14045 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
14046 Calls xmlCleanupParser only if libxml2 was loaded (or statically
14047 linked in).
6bbef4e5
JC
14048 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
14049 Call init_libxml2_functions before calling libxml2 functions.
9078ead6
EZ
14050 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
14051
14052 * emacs.c: Don't include libxml/parser.h.
14053 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
14054 xmlCleanupParser directly.
14055
14056 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
14057
3811fdf3
EZ
140582012-04-07 Eli Zaretskii <eliz@gnu.org>
14059
14060 * indent.c (Fvertical_motion): If there is a display string at
14061 point, use it.vpos to compute how many lines to backtrack after
14062 move_it_to point. (Bug#11133)
14063
2f8e16b2
EZ
140642012-04-06 Eli Zaretskii <eliz@gnu.org>
14065
14066 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
14067 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
14068 about subtle differences between FETCH_CHAR* and STRING_CHAR*
14069 macros related to unification of CJK characters. For the details,
14070 see the discussion following the message here:
14071 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
14072
3d439cd1
CY
140732012-04-04 Chong Yidong <cyd@gnu.org>
14074
14075 * keyboard.c (Vdelayed_warnings_list): Doc fix.
14076
8bc53d00
EZ
140772012-04-01 Eli Zaretskii <eliz@gnu.org>
14078
14079 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
14080 instead of alloca. (Bug#11138)
14081
3b0512a3
AS
140822012-04-01 Andreas Schwab <schwab@linux-m68k.org>
14083
14084 * w32menu.c (is_simple_dialog): Properly check lisp types.
14085 (Bug#11141)
14086
8427ddd2
EZ
140872012-03-31 Eli Zaretskii <eliz@gnu.org>
14088
979022ef
EZ
14089 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
14090 position we get to after a call to move_it_to fails the
14091 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
14092 only if we wind up in a string from display property. (Bug#11063)
14093
a6b1c7cc
EZ
14094 * window.c (Fdelete_other_windows_internal): Invalidate the row
14095 and column information about mouse highlight, so that redisplay
14096 restores it after reallocating the glyph matrices. (Bug#7464)
14097
8427ddd2
EZ
14098 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
14099 string comes from a `display' text property, use the buffer
14100 position of that property as if we actually saw that position in
14101 the row's glyphs.
697ba24b
EZ
14102 (move_it_by_lines): Remove the assertion that
14103 "it->current_x == 0 && it->hpos == 0" which can be legitimately
14104 violated when there's a before-string at the beginning of a line.
14105 (Bug#11063)
8427ddd2 14106
65a0a738
EZ
141072012-03-30 Eli Zaretskii <eliz@gnu.org>
14108
14109 * xdisp.c (append_space_for_newline): If the default face was
14110 remapped, use the remapped face for the appended newline.
14111 (extend_face_to_end_of_line): Use the remapped default face for
14112 extending the face to the end of the line.
14113 (display_line): Call extend_face_to_end_of_line when the default
14114 face was remapped. (Bug#11068)
14115
581355cc
EZ
141162012-03-29 Eli Zaretskii <eliz@gnu.org>
14117
14118 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
14119
e8fc049f
SM
141202012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
14121
14122 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
14123
4fb9a543
GM
141242012-03-27 Glenn Morris <rgm@gnu.org>
14125
14126 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
14127 Doc fixes.
14128
679910f1
KH
141292012-03-26 Kenichi Handa <handa@m17n.org>
14130
14131 * dispextern.h (struct glyph): Fix previous change. Change the
14132 bit length of glyphless.ch to 25 (Bug#11082).
14133
90d49b7f
CY
141342012-03-26 Chong Yidong <cyd@gnu.org>
14135
14136 * keyboard.c (Vselection_inhibit_update_commands): New variable.
14137 (command_loop_1): Use it; inhibit selection update for
14138 handle-select-window too (Bug#8996).
14139
f514f6f0
FP
141402012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
14141
e8fc049f 14142 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
f514f6f0 14143
bf43fa51
KH
141442012-03-25 Kenichi Handa <handa@m17n.org>
14145
14146 * dispextern.h (struct glyph): Change the bit length of
14147 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
14148
8a0c01dd
EZ
141492012-03-24 Eli Zaretskii <eliz@gnu.org>
14150
14151 * s/ms-w32.h (tzname): Include time.h before redirecting to
14152 _tzname. Fixes the MSVC build. (Bug#9960)
14153
7d1c3a76
AS
141542012-03-24 Andreas Schwab <schwab@linux-m68k.org>
14155
8ed79523
AS
14156 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
14157 characters.
14158
7d1c3a76
AS
14159 * xterm.c (XTread_socket): Only modify handling_signal if
14160 !SYNC_INPUT. (Bug#11080)
14161
e99a9b8b
EZ
141622012-03-23 Eli Zaretskii <eliz@gnu.org>
14163
14164 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
14165 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
14166 when fetching a multibyte character consumes more bytes than
14167 CHAR_BYTES returns, due to unification of CJK characters in
14168 string_char. (Bug#11073)
14169
5063c0e1
TN
141702012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
14171
14172 * process.c (wait_reading_process_output): Handle pty disconnect
14173 by refraining from sending oneself a SIGCHLD (bug#10933).
14174
9f851fbd
CY
141752012-03-22 Chong Yidong <cyd@gnu.org>
14176
14177 * dispextern.h (struct it): New member string_from_prefix_prop_p.
14178
5063c0e1 14179 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
9f851fbd
CY
14180 Mark string as coming from a prefix property.
14181 (handle_face_prop): Use default face for prefix strings (Bug#4281).
14182 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
14183
fb5b8aca
CY
141842012-03-21 Chong Yidong <cyd@gnu.org>
14185
14186 * xfaces.c (Vface_remapping_alist): Doc fix.
14187
62356a1b
EZ
141882012-03-20 Eli Zaretskii <eliz@gnu.org>
14189
14190 * w32proc.c (Fw32_set_console_codepage)
5063c0e1
TN
14191 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
14192 Doc fixes.
62356a1b 14193
025de85b
CY
141942012-03-20 Chong Yidong <cyd@gnu.org>
14195
14196 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
14197 to reflect default non-nil value of redisplay-dont-pause.
14198
4827f94e
KH
141992012-03-19 Kenichi Handa <handa@m17n.org>
14200
14201 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
14202 it fit in a valid range (Bug#11003).
14203
e50a24a2
EZ
142042012-03-18 Eli Zaretskii <eliz@gnu.org>
14205
14206 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
14207 that is not from display property, accept the row as a "cursor
14208 row" if one of the string's character has a non-nil `cursor'
14209 property. Fixes cursor positioning when there are newlines in
14210 overlay strings, e.g. in icomplete.el. (Bug#11035)
14211
9af5ed87
PE
142122012-03-12 Paul Eggert <eggert@cs.ucla.edu>
14213
14214 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
14215
d1f55f16
CY
142162012-03-12 Chong Yidong <cyd@gnu.org>
14217
14218 * eval.c (inhibit_lisp_code): Rename from
14219 inhibit_window_configuration_change_hook; move from window.c.
14220
14221 * xfns.c (unwind_create_frame_1, Fx_create_frame):
14222 * window.c (run_window_configuration_change_hook)
14223 (syms_of_window): Callers changed.
14224
66c5eebd
CY
142252012-03-11 Chong Yidong <cyd@gnu.org>
14226
413df973
CY
14227 * keymap.c (Fkey_description): Doc fix (Bug#9700).
14228
66c5eebd
CY
14229 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
14230
1de11f56
CY
142312012-03-10 Chong Yidong <cyd@gnu.org>
14232
14233 * frame.c (other_visible_frames): Don't assume the selected frame
14234 is visible (Bug#10955).
14235
cae07000
SM
142362012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
14237
14238 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
14239
89c94350
JD
142402012-03-08 Jan Djärv <jan.h.d@swipnet.se>
14241
14242 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
14243 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
14244 zero (Bug#10954).
14245
999dd333
GM
142462012-03-03 Glenn Morris <rgm@gnu.org>
14247
01a6dcc8 14248 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
999dd333 14249
de0100f2
EZ
142502012-03-02 Eli Zaretskii <eliz@gnu.org>
14251
14252 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
14253 position past the first glyph_row that ends at ZV. (Bug#10902)
b8456c5c
EZ
14254 (redisplay_window, next_element_from_string): Fix typos in
14255 comments.
3e441275
EZ
14256 (redisplay_window): Pass to move_it_vertically the margin in
14257 pixels, not in screen lines.
de0100f2 14258
96a72ee9
GM
142592012-03-02 Glenn Morris <rgm@gnu.org>
14260
14261 * buffer.c (buffer-list-update-hook): Doc fix.
14262
312508d7
EZ
142632012-02-29 Eli Zaretskii <eliz@gnu.org>
14264
14265 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
14266 push_it before setting up the iterator for the first overlay
14267 string, even if we have an empty string loaded.
14268 (next_overlay_string): If there's an empty string on the iterator
14269 stack, pop the stack. (Bug#10903)
14270
27f3c637
PE
142712012-02-25 Paul Eggert <eggert@cs.ucla.edu>
14272
14273 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
14274 Suggested by Stefan Monnier in
14275 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
14276 * alloc.c (widen_to_Lisp_Object): New static function.
14277 (mark_memory): Also mark Lisp_Objects by fetching pointer words
14278 and widening them to Lisp_Objects. This would work even if
14279 USE_LSB_TAG is defined and wide integers are used, which might
14280 happen in a future version of Emacs.
14281
3c9dfce6
CY
142822012-02-25 Chong Yidong <cyd@gnu.org>
14283
fa74b241
CY
14284 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
14285 Doc fix.
14286
3c9dfce6
CY
14287 * xselect.c (Fx_selection_exists_p): Doc fix.
14288 (x_clipboard_manager_save_all): Print an informative message
14289 before saving to clipboard manager.
14290
9486df08
CY
142912012-02-24 Chong Yidong <cyd@gnu.org>
14292
14293 * keyboard.c (process_special_events): Handle all X selection
14294 requests in kbd_buffer, not just the next one (Bug#8869).
14295
f01d3321
CY
142962012-02-23 Chong Yidong <cyd@gnu.org>
14297
14298 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
14299 call when setting menu-bar-lines and tool-bar-lines parameters.
14300 (unwind_create_frame_1): New helper function.
14301
14302 * window.c (inhibit_window_configuration_change_hook): New var.
14303 (run_window_configuration_change_hook): Obey it.
b2e4ca7d 14304 (syms_of_window): Initialize it.
f01d3321 14305
86b847b6
CY
143062012-02-22 Chong Yidong <cyd@gnu.org>
14307
14308 * xterm.c (x_draw_image_relief): Add missing type check for
14309 Vtool_bar_button_margin (Bug#10743).
14310
a59225b1
CY
143112012-02-21 Chong Yidong <cyd@gnu.org>
14312
14313 * fileio.c (Vfile_name_handler_alist): Doc fix.
14314
14315 * buffer.c (Fget_file_buffer): Protect against invalid file
14316 handler return value.
14317
310f5bd4
PE
143182012-02-20 Paul Eggert <eggert@cs.ucla.edu>
14319
cb3a28cc
PE
14320 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
14321 when computing $valmask.
14322
310f5bd4
PE
14323 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
14324 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
14325 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
14326 It's useless in that case, and it can cause problems on hosts
14327 that allocate halves of EMACS_INT values separately.
14328 Reported by Dan Horák. Diagnosed by Andreas Schwab in
14329 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
14330 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
14331 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
14332 it avoids undefined behavior on hosts where shifting right by more
14333 than the word width has undefined behavior.
14334
2375c96a
CY
143352012-02-19 Chong Yidong <cyd@gnu.org>
14336
14337 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
14338 (Funhandled_file_name_directory, Ffile_name_as_directory)
14339 (Fdirectory_file_name, Fexpand_file_name)
14340 (Fsubstitute_in_file_name): Protect against invalid file handler
14341 return values (Bug#10845).
14342
3eb49e71
EZ
143432012-02-18 Eli Zaretskii <eliz@gnu.org>
14344
14345 * .gdbinit (pitx): Fix incorrect references to fields of the
14346 iterator stack.
14347
7b926f3f
CY
143482012-02-17 Chong Yidong <cyd@gnu.org>
14349
14350 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
14351
11273115
PE
143522012-02-15 Paul Eggert <eggert@cs.ucla.edu>
14353
14354 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
14355 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
14356
c3a70e2b
CY
143572012-02-15 Chong Yidong <cyd@gnu.org>
14358
14359 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
14360 marked as special. Also, starting docstrings with * is obsolete.
14361
0ca43699
AS
143622012-02-13 Andreas Schwab <schwab@linux-m68k.org>
14363
14364 * gnutls.c (emacs_gnutls_write): Fix last change.
14365
2e8f3c56
LI
143662012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
14367
14368 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
14369 send_process.
14370
af70074f
SM
143712012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
14372
14373 * keymap.c (Fsingle_key_description): Handle char ranges.
14374
95986d52
CY
143752012-02-12 Chong Yidong <cyd@gnu.org>
14376
afd83bd1
CY
14377 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
14378 as that creates a dangerous corner case.
14379
95986d52
CY
14380 * window.c (Fdelete_window_internal): Invalidate the mouse
14381 highlight (Bug#9904).
14382
bd7da63e
GM
143832012-02-12 Glenn Morris <rgm@gnu.org>
14384
14385 * xselect.c (Fx_own_selection_internal)
14386 (Fx_get_selection_internal, Fx_disown_selection_internal)
14387 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
14388 * nsselect.m (Fx_own_selection_internal)
14389 (Fx_disown_selection_internal, Fx_selection_exists_p)
14390 (Fx_selection_owner_p, Fx_get_selection_internal):
14391 Sync docs and argument specs with the xselect.c versions.
14392
77abcbc2
LI
143932012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
14394
14395 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
14396
90b671e2
EZ
143972012-02-11 Eli Zaretskii <eliz@gnu.org>
14398
1c0ca0b7
EZ
14399 * w32select.c (Fx_selection_exists_p): Sync doc string and
14400 argument list with xselect.c. (Bug#10783)
14401
14402 * w16select.c (Fx_selection_exists_p): Sync doc string and
14403 argument list with xselect.c. (Bug#10783)
90b671e2 14404
49241268
GM
144052012-02-10 Glenn Morris <rgm@gnu.org>
14406
14407 * fns.c (Fsecure_hash): Doc fix.
14408
f998bbe7 144092012-02-09 Kenichi Handa <handa@m17n.org>
5c1ca13d
KH
14410
14411 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
14412
0992bd9c
CY
144132012-02-07 Chong Yidong <cyd@gnu.org>
14414
14415 * buffer.c (Fbuffer_local_variables)
14416 (buffer_lisp_local_variables): Handle unbound vars correctly;
14417 don't let Qunbound leak into Lisp.
14418
af008560
GM
144192012-02-07 Glenn Morris <rgm@gnu.org>
14420
dd605cc4
GM
14421 * image.c (Fimagemagick_types): Doc fix.
14422
af008560
GM
14423 * image.c (imagemagick-render-type): Change it from a lisp object
14424 to an integer. Move the doc here from the lisp manual.
14425 Treat all values not equal to 0 the same.
14426
1449fa1d
CY
144272012-02-06 Chong Yidong <cyd@gnu.org>
14428
14429 * doc.c (store_function_docstring): Avoid applying docstring of
14430 alias to base function (Bug#2603).
14431
3723ec07
AS
144322012-02-04 Andreas Schwab <schwab@linux-m68k.org>
14433
14434 * .gdbinit (pp1, pv1): Remove redundant defines.
14435 (pr): Use pp.
14436
79c1cc1e
CY
144372012-02-04 Chong Yidong <cyd@gnu.org>
14438
14439 * nsterm.m: Declare a global (Bug#10694).
14440
d7f29f8e
EZ
144412012-02-04 Eli Zaretskii <eliz@gnu.org>
14442
cae07000
SM
14443 * w32.c (get_emacs_configuration_options):
14444 Include --enable-checking, if specified, in the return value.
d7f29f8e 14445
3b95a6f9
MR
144462012-02-04 Martin Rudalics <rudalics@gmx.at>
14447
14448 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
14449 after rounding frame sizes. (Bug#9723)
14450
d6fa96a6
EZ
144512012-02-04 Eli Zaretskii <eliz@gnu.org>
14452
14453 * keyboard.c (adjust_point_for_property): Don't position point
14454 before BEGV. (Bug#10696)
14455
df0b2940
PE
144562012-02-03 Paul Eggert <eggert@cs.ucla.edu>
14457
14458 Handle overflow when computing char display width (Bug#9496).
14459 * character.c (char_width): Return EMACS_INT, not int.
14460 (char_width, c_string_width): Check for overflow when
14461 computing the width; this is possible now that individual
14462 characters can have unbounded width. Problem introduced
14463 by merge from Emacs 23 on 2012-01-19.
14464
6bee44d6
MA
144652012-02-02 Michael Albinus <michael.albinus@gmx.de>
14466
14467 * dbusbind.c (Fdbus_register_method): Mention the return value
14468 :ignore in the docstring.
14469
44f92739
GM
144702012-02-02 Glenn Morris <rgm@gnu.org>
14471
1b9f60cc
GM
14472 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
14473
44f92739
GM
14474 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
14475 Unconditionally set to t. (Bug#10673)
14476 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
14477 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
14478 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
14479
c5d3843c
KH
144802012-02-02 Kenichi Handa <handa@m17n.org>
14481
14482 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
14483 0, do not call append_composite_glyph.
14484
159462d4 144852012-02-02 Kenichi Handa <handa@m17n.org>
d2a51fd7
KH
14486
14487 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
14488 NULL (Bug#6988).
14489 (x_produce_glyphs): If the component of a composition is a null
14490 string, set it->pixel_width to 1 to avoid zero-width glyph.
14491
78cef877
EZ
144922012-02-01 Eli Zaretskii <eliz@gnu.org>
14493
14494 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
14495 first 2 arguments are identical. This makes inserting large
14496 output from a subprocess an order of magnitude faster on
14497 MS-Windows, where all sbrk'ed memory is always contiguous.
14498
97897668
GM
144992012-01-31 Glenn Morris <rgm@gnu.org>
14500
14501 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
c78c6e0b 14502 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
97897668
GM
14503 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
14504
31fd3586
GM
145052012-01-29 Glenn Morris <rgm@gnu.org>
14506
14507 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
14508
0e24a8b2
CY
145092012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
14510
14511 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
14512
cc0adcb0
CY
145132012-01-28 Chong Yidong <cyd@gnu.org>
14514
14515 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
14516
acc28cb9
CY
145172012-01-26 Chong Yidong <cyd@gnu.org>
14518
9c69cfb7
CY
14519 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
14520
acc28cb9
CY
14521 * search.c (Fsearch_forward, Fsearch_backward): Document negative
14522 repeat counts (Bug#10507).
14523
48da7392
GM
145242012-01-26 Glenn Morris <rgm@gnu.org>
14525
14526 * lread.c (syms_of_lread): Doc fix.
14527
14af5f7f
CY
145282012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
14529
14530 * coding.c (encode_designation_at_bol): Change return value to
14531 EMACS_INT.
14532
0b21c100
CY
145332012-01-25 Chong Yidong <cyd@gnu.org>
14534
14535 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
14536
3c2907f7
CY
145372012-01-21 Chong Yidong <cyd@gnu.org>
14538
14539 * floatfns.c (Fcopysign): Make the second argument non-optional,
14540 since nil is not allowed anyway.
14541
959ad23f
AS
145422012-01-21 Andreas Schwab <schwab@linux-m68k.org>
14543
14544 * process.c (read_process_output): Use p instead of XPROCESS (proc).
14545 (send_process): Likewise.
14546
34a02f46
MR
145472012-01-19 Martin Rudalics <rudalics@gmx.at>
14548
14549 * window.c (save_window_save, Fcurrent_window_configuration)
cae07000
SM
14550 (Vwindow_persistent_parameters): Do not use Qstate.
14551 Rewrite doc-strings.
34a02f46 14552
1259009a 145532012-01-19 Kenichi Handa <handa@m17n.org>
25ed9e61
KH
14554
14555 * character.c (char_width): New function.
70d4fdf6
GM
14556 (Fchar_width, c_string_width, lisp_string_width):
14557 Use char_width (Bug#9496).
25ed9e61 14558
6a6ee00d
MR
145592012-01-16 Martin Rudalics <rudalics@gmx.at>
14560
14561 * window.c (Vwindow_persistent_parameters): New variable.
14562 (Fset_window_configuration, save_window_save): Handle persistent
14563 window parameters.
14564
c85efaf7
EZ
145652012-01-14 Eli Zaretskii <eliz@gnu.org>
14566
14567 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
14568 thrashing the stack of the thread. (Bug#9087)
14569
5944709e
PE
145702012-01-12 Paul Eggert <eggert@cs.ucla.edu>
14571
14572 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
14573
e71f5d99
EZ
145742012-01-11 Eli Zaretskii <eliz@gnu.org>
14575
14576 * xdisp.c (rows_from_pos_range): Handle the case where the
14577 highlight ends on a newline. (Bug#10464)
14578 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
14579 he end column for display of highlight that ends on a newline
14580 before a R2L line.
14581
ce316182
GM
145822012-01-11 Glenn Morris <rgm@gnu.org>
14583
14584 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
14585 from load-path also when installation-directory is nil. (Bug#10208)
14586
5b43da69
GM
145872012-01-10 Glenn Morris <rgm@gnu.org>
14588
74cc8ff9
GM
14589 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
14590
7d8d6e4e
GM
14591 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
14592 Update template values to be closer to their typical values these days.
5b43da69 14593
a0db8d43
EZ
145942012-01-09 Eli Zaretskii <eliz@gnu.org>
14595
14596 * xdisp.c (rows_from_pos_range): Accept additional argument
14597 DISP_STRING, and accept any glyph in a row whose object is that
14598 string as eligible for mouse highlight. Fixes mouse highlight of
14599 display strings from overlays. (Bug#10464)
14600
9a0115ab 146012012-01-07 Paul Eggert <eggert@cs.ucla.edu>
09450bae 14602
b9110d6a 14603 emacs: fix an auto-save permissions race condition (Bug#10400)
09450bae
PE
14604 * fileio.c (auto_saving_dir_umask): New static var.
14605 (Fmake_directory_internal): Use it.
14606 (do_auto_save_make_dir): Set it, instead of invoking chmod after
14607 creating the directory. The old code temporarily assigns
14608 too-generous permissions to the directory.
14609 (do_auto_save_eh): Clear it.
b9110d6a 14610 (Fdo_auto_save): Catch all errors, not just file errors, so
09450bae
PE
14611 that the var is always cleared.
14612
6c1bd3f3
EZ
146132012-01-07 Eli Zaretskii <eliz@gnu.org>
14614
14615 * search.c (scan_buffer): Pass character positions to
14616 know_region_cache, not byte positions. (Bug#6540)
14617
069d2b50
L
146182012-01-07 LynX <_LynX@bk.ru> (tiny change)
14619
14620 * w32.c (sys_rename): Report EXDEV when rename of a directory
14621 fails because the target is on another logical disk. (Bug#10284)
14622
75bf0d33
DB
146232012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
14624
14625 * xterm.c (x_embed_request_focus): New function.
14626
14627 * xterm.h: Add prototype.
14628
14629 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
14630
1c6e5a32
GM
146312012-01-05 Glenn Morris <rgm@gnu.org>
14632
14633 * emacs.c (emacs_copyright): Update short copyright year to 2012.
14634
651e947e
EZ
146352012-01-01 Eli Zaretskii <eliz@gnu.org>
14636
14637 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
14638 Load gnutls_transport_set_lowat only if GnuTLS version is below
14639 2.11.1.
14640 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
14641 GnuTLS versions below 2.11.1.
14642
3778cdd8
AL
146432011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
14644
14645 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
14646 to the doc string advising against its use for altering the way
14647 windows are scrolled.
14648
0e5317f7
KH
146492011-12-28 Kenichi Handa <handa@m17n.org>
14650
14651 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
14652 coding-system ASCII compatible only when it does not produce BOM
14653 on encoding (Bug#10383).
14654
93d5ca1f
JD
146552011-12-26 Jan Djärv <jan.h.d@swipnet.se>
14656
14657 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
14658 can scroll.
14659 (create_and_show_popup_menu): Always use menu_position_func for
14660 Gtk3 (Bug#10361).
14661
ca22b785
AS
146622011-12-24 Andreas Schwab <schwab@linux-m68k.org>
14663
14664 * callint.c (Fcall_interactively): Don't truncate prompt string.
14665
d048e1e6
EZ
146662011-12-23 Eli Zaretskii <eliz@gnu.org>
14667
14668 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
14669 property that ends at ZV, so that the bidi iteration could be
3ba1a2ad 14670 resumed from there (after widening). (Bug#10360)
d048e1e6 14671
5ccaba1f
JD
146722011-12-22 Jan Djärv <jan.h.d@swipnet.se>
14673
14674 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
14675
204ee57f
JD
146762011-12-21 Jan Djärv <jan.h.d@swipnet.se>
14677
b81d40f0
JB
14678 * nsterm.m (x_free_frame_resources):
14679 Release f->output_data.ns->miniimage.
204ee57f
JD
14680 (ns_index_color): Fix indentation. Do not retain
14681 color_table->colors[i].
14682
14683 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
14684 before returning.
14685
14686 * nsfns.m (x_set_background_color): Assign return value from
14687 ns_index_color to face-background instead of NSColor*.
14688 (ns_implicitly_set_icon_type): Fix indentation.
14689 Change assignment in for loop to comparison.
14690
14691 * emacs.c (ns_pool): New variable.
14692 (main): Assign ns_pool.
14693 (Fkill_emacs): Call ns_release_autorelease_pool.
14694
14695 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
14696 autorelease fdesc, release fdAttrs and tdict.
14697 (ns_get_covering_families): Release charset.
14698 (ns_findfonts): Release NSFontDescriptor created with new.
14699 (ns_uni_to_glyphs): Fix indentation.
14700 (setString): Release attrStr before assigning new value.
14701
c803b2b7
JD
147022011-12-18 Jan Djärv <jan.h.d@swipnet.se>
14703
678f4426
JD
14704 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
14705 and NS_IMPL_COCOA.
14706 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
14707 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
14708
cd394be1 147092011-12-18 David Reitter <reitter@cmu.edu>
678f4426 14710
5fecd5fc
JD
14711 * nsterm.m (ns_term_init): Subscribe for notifications
14712 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
14713 to method trackingNotification in EmacsMenu.
14714
14715 * nsmenu.m (trackingMenu): New variable.
3771cb17 14716 (trackingNotification): New method (from Aquamacs).
5fecd5fc 14717 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
3771cb17 14718 from Aquamacs (Bug#7030).
678f4426
JD
14719
147202011-12-18 Jan Djärv <jan.h.d@swipnet.se>
5fecd5fc 14721
c803b2b7
JD
14722 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
14723 (symbol_to_nsstring): Fix indentation.
14724 (ns_symbol_to_pb): New function.
cae07000
SM
14725 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
14726 (Fns_rotate_cut_buffers_internal): Remove.
14727 (Fns_store_selection_internal): Rename from
c803b2b7
JD
14728 Fns_store_cut_buffer_internal.
14729 (ns_get_foreign_selection, Fx_own_selection_internal)
14730 (Fx_disown_selection_internal, Fx_selection_exists_p)
b81d40f0
JB
14731 (Fns_get_selection_internal, Fns_store_selection_internal):
14732 Use ns_symbol_to_pb and check if return value is nil.
14733 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
14734 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
c803b2b7
JD
14735 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
14736 renamed to Sns_store_selection_internal.
14737 (ns_handle_selection_request): Move code to Fx_own_selection_internal
14738 and remove this function.
14739 (ns_handle_selection_clear): Remove, never used.
14740 (Fx_own_selection_internal): Move code from ns_handle_selection_request
14741 here.
14742
e1b01a3a
KB
147432011-12-17 Ken Brown <kbrown@cornell.edu>
14744
14745 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
14746 GID is unknown (Bug#10257).
14747
2adb6e85
PE
147482011-12-17 Paul Eggert <eggert@cs.ucla.edu>
14749
14750 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
14751 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
14752 which caused a build failure on GNU/Linux IA-64. This problem was
14753 introduced by my 2011-10-07 patch.
14754
d1d7b339
JL
147552011-12-15 Juri Linkov <juri@jurta.org>
14756
14757 * image.c (imagemagick_error): New function. (Bug#10112)
14758 (imagemagick_load_image): Comment out `MagickSetResolution' call.
14759 Use `imagemagick_error' where ImageMagick functions return
14760 `MagickFalse'.
14761 (Fimagemagick_types): Add `Fnreverse' to return the list in the
14762 proper order.
14763
100d5755
KH
147642011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14765
14766 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
14767 fill background (Bug#8992).
14768
454592a6
MR
147692011-12-13 Martin Rudalics <rudalics@gmx.at>
14770
14771 * window.c (Vwindow_combination_resize)
14772 (Vwindow_combination_limit): Use t instead of non-nil in
14773 doc-strings.
61d4b438
MR
14774 (Vrecenter_redisplay): Add first sentence of doc-string on
14775 separate line.
53524d93 14776 (Frecenter): Fix doc-string typo.
454592a6 14777
3633e3aa
KH
147782011-12-11 Kenichi Handa <handa@m17n.org>
14779
14780 * coding.c (Funencodable_char_position): Pay attention to the
14781 buffer text relocation (Bug#9389).
14782
7b9d523a 147832011-12-10 Jan Djärv <jan.h.d@swipnet.se>
61ccba97 14784
7b9d523a
JD
14785 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
14786 gtk_init (Bug#10100).
14787
b73189c6
EZ
147882011-12-10 Eli Zaretskii <eliz@gnu.org>
14789
14790 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
14791 IT->string is nil. (Bug#10263)
14792
f7dfe5d6
JD
147932011-12-10 Jan Djärv <jan.h.d@swipnet.se>
14794
83faebb4
JD
14795 * nsterm.h (x_free_frame_resources): Declare.
14796
f7dfe5d6
JD
14797 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
14798 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
14799
14800 * nsterm.h (ns_get_defaults_value): Declare.
14801
14802 * nsterm.m (ns_default): Call ns_get_defaults_value.
14803
7cd4e72c
EZ
148042011-12-09 Eli Zaretskii <eliz@gnu.org>
14805
14806 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
14807 (Bug#10170)
14808
b34d7317
YM
148092011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14810
14811 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
14812 that where the value of an _OBJC_* symbol points to is in the .bss
14813 section (Bug#10240).
14814
76470ad1
KH
148152011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
14816
14817 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
2fac8180 14818 after the loop to call ccl_driver at least once (Bug#8619).
76470ad1 14819
745fff94
KH
148202011-12-08 Kenichi Handa <handa@m17n.org>
14821
14822 * ftfont.c (get_adstyle_property): Fix previous change
14823 (Bug#10233).
14824
6e44397c
JB
148252011-12-07 Juanma Barranquero <lekktu@gmail.com>
14826
14827 * w32.c (init_environment): If no_site_lisp, remove site-lisp
14828 dirs from the default value of EMACSLOADPATH (bug#10208).
14829
7efa6272
GM
148302011-12-07 Glenn Morris <rgm@gnu.org>
14831
14832 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
14833 installation and source directories as well. (Bug#10208)
14834
f6fc4d87
CY
148352011-12-06 Chong Yidong <cyd@gnu.org>
14836
14837 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
14838
2bf26180
GM
148392011-12-06 Glenn Morris <rgm@gnu.org>
14840
14841 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
14842 as an error, not just -1. (Bug#10217)
14843
3a6ad4f0
CY
148442011-12-05 Chong Yidong <cyd@gnu.org>
14845
14846 * keyboard.c (process_special_events): New function.
14847 (swallow_events, Finput_pending_p): Use it (Bug#10195).
14848
75a3b399
PE
148492011-12-05 Paul Eggert <eggert@cs.ucla.edu>
14850
14851 * coding.c (encode_designation_at_bol): Don't use uninitialized
14852 local variable (Bug#9318).
14853
c3c9e25e
KH
148542011-12-05 Kenichi Handa <handa@m17n.org>
14855
14856 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
14857 return Qnil (Bug#8046, Bug#10193).
14858
5eb05ea3
KH
148592011-12-05 Kenichi Handa <handa@m17n.org>
14860
14861 * coding.c (encode_designation_at_bol): New args charbuf_end and
14862 dst. Return the number of produced bytes. Callers changed.
a79703f5
KH
14863 (coding_set_source): Return how many bytes coding->source was
14864 relocated.
14865 (coding_set_destination): Return how many bytes
14866 coding->destination was relocated.
14867 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
cae07000 14868 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
5eb05ea3
KH
14869
148702011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
14871
14872 * coding.c (CODING_CHAR_CHARSET_P): New macro.
14873 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
14874 macro (Bug#9318).
14875
148762011-12-05 Andreas Schwab <schwab@linux-m68k.org>
14877
14878 The following changes are to fix Bug#9318.
14879
a79703f5 14880 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
5eb05ea3
KH
14881 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
14882 (encode_coding_iso_2022, encode_coding_sjis)
a79703f5 14883 (encode_coding_big5, encode_coding_charset): Use the above macros.
5eb05ea3 14884
7dbda6df
JB
148852011-12-05 Juanma Barranquero <lekktu@gmail.com>
14886
14887 * lisp.h (process_quit_flag): Fix external declaration.
14888
6d5eb5b0
SM
148892011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
14890
14891 Don't macro-inline non-performance-critical code.
14892 * eval.c (process_quit_flag): New function.
14893 * lisp.h (QUIT): Use it.
14894
a0c3fad0
JD
148952011-12-04 Jan Djärv <jan.h.d@swipnet.se>
14896
14897 * nsfns.m (get_geometry_from_preferences): New function.
14898 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
14899
6c07aac2
AS
149002011-12-04 Andreas Schwab <schwab@linux-m68k.org>
14901
14902 * emacs.c (Qkill_emacs): Define.
14903 (syms_of_emacs): Initialize it.
14904 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
14905 Qquit_flag to `kill-emacs' instead.
6d5eb5b0
SM
14906 (quit_throw_to_read_char): Add parameter `from_signal'.
14907 All callers changed. Call Fkill_emacs if requested and safe.
6c07aac2
AS
14908 * lisp.h (QUIT): Call Fkill_emacs if requested.
14909
c052ead4
JD
149102011-12-03 Jan Djärv <jan.h.d@swipnet.se>
14911
14912 * widget.c (update_wm_hints): Return if wmshell is null.
14913 (widget_update_wm_size_hints): New function.
14914
14915 * widget.h (widget_update_wm_size_hints): Declare.
14916
14917 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
14918 widget_update_wm_size_hints (Bug#10104).
14919
9e49252b
EZ
149202011-12-03 Eli Zaretskii <eliz@gnu.org>
14921
14922 * xdisp.c (handle_invisible_prop): If the invisible text ends just
14923 before a newline, prepare the bidi iterator for consuming the
14924 newline, and keep the current paragraph direction. (Bug#10183)
e9a49426 14925 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
9e49252b 14926
02b16839
JL
149272011-12-02 Juri Linkov <juri@jurta.org>
14928
14929 * search.c (Fword_search_regexp): New Lisp function created from
14930 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
14931 (Fword_search_backward, Fword_search_forward)
14932 (Fword_search_backward_lax, Fword_search_forward_lax):
14933 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
14934 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
14935
0068070e
SM
149362011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
14937
14938 * fileio.c (Finsert_file_contents): Move after-change-function call
14939 to before the "handled:" label, since all "goto handled" appear in
14940 cases where the *-change-functions have already been properly called
14941 (bug#10117).
14942
3360a3fc
AS
149432011-12-01 Andreas Schwab <schwab@linux-m68k.org>
14944
14945 * keyboard.c (interrupt_signal): Don't call kill-emacs when
14946 waiting for input. (Bug#10169)
14947
73d6c093
EZ
149482011-11-30 Eli Zaretskii <eliz@gnu.org>
14949
14950 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
14951 verifies glyph row's hash code--we have just reallocated the
14952 glyphs, so their contents can be complete garbage. (Bug#10164)
14953
febe6bea
JB
149542011-11-30 Juanma Barranquero <lekktu@gmail.com>
14955
14956 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
14957
801a4313
EZ
149582011-11-30 Eli Zaretskii <eliz@gnu.org>
14959
14960 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
14961 attributes are tested _before_ calling verify_row_hash, to protect
14962 against GCC re-ordering of the tests. (Bug#10164)
14963
2b56b87e
JD
149642011-11-29 Jan Djärv <jan.h.d@swipnet.se>
14965
14966 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
14967
14968 * xterm.c (handle_one_xevent): Only set async_visible and friends
14969 if net_wm_state_hidden_seen is non-zero (Bug#10002)
7dbda6df 14970 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
2b56b87e
JD
14971 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
14972
dbf31225
PE
149732011-11-28 Paul Eggert <eggert@cs.ucla.edu>
14974
14975 Remove GCPRO-related macros that exist only to avoid shadowing locals.
14976 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
14977 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
14978 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
14979 All uses changed to use GCPRO1 etc.
14980 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
14981 Revert to old implementation (i.e., before 2011-03-11).
14982
1305621b
YM
149832011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14984
14985 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
14986 of scroll runs so as to avoid assigning disabled bogus rows and
14987 unnecessary graphics copy operations.
14988
8c9afb46
EZ
149892011-11-27 Eli Zaretskii <eliz@gnu.org>
14990
14991 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
14992 (snprintf) [_MSC_VER]: Redirect to _snprintf.
14993 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
14994 (malloc, free, realloc, calloc): Redirect to e_* only when
14995 compiling Emacs.
14996
14997 * lisp.h (GCTYPEBITS): Move before first use.
14998 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
14999 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
15000 this macro definition.
15001
15002 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
15003 _MSC_VER.
15004
54e9e3bf
JD
150052011-11-27 Jan Djärv <jan.h.d@swipnet.se>
15006
6d5eb5b0
SM
15007 * gtkutil.c (xg_create_frame_widgets):
15008 Call gtk_window_set_has_resize_grip (FALSE) if that function is
54e9e3bf
JD
15009 present with Gtk+ 2.0.
15010
83aca1cb
PE
150112011-11-26 Paul Eggert <eggert@cs.ucla.edu>
15012
15013 * fileio.c (Finsert_file_contents): Undo previous change; see
15014 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
15015
5b76caa4
PE
150162011-11-26 Paul Eggert <eggert@cs.ucla.edu>
15017
15018 Rename locals to avoid shadowing.
15019 * fileio.c (Finsert_file_contents):
15020 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
15021 * process.c (wait_reading_process_output):
15022 Rename inner 'proc' to 'p' to avoid shadowing.
15023 Indent for consistency with usual Emacs style.
15024
8c535114
EZ
150252011-11-25 Eli Zaretskii <eliz@gnu.org>
15026
15027 * xdisp.c (redisplay_window): If cursor row is not fully visible
15028 after recentering, and scroll-conservatively is set to a large
15029 number, scroll window by a few more lines to make the cursor fully
15030 visible and out of scroll-margin. (Bug#10105)
91b4a718
EZ
15031 (start_display): Don't move to the next line if the display should
15032 start at a newline that is part of a display vector or an overlay
15033 string. (Bug#10119)
8c535114 15034
fa4fdb5c
JL
150352011-11-24 Juri Linkov <juri@jurta.org>
15036
15037 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
15038 after the `MagickPingImage' call. (Bug#10112)
15039
90ec88df
CY
150402011-11-23 Chong Yidong <cyd@gnu.org>
15041
15042 * window.c (Fcoordinates_in_window_p): Accept only live windows.
15043
56e2e794
MR
150442011-11-23 Martin Rudalics <rudalics@gmx.at>
15045
15046 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
15047 making another buffer current. (Bug#10114)
15048
b6e64c41
GM
150492011-11-23 Glenn Morris <rgm@gnu.org>
15050
15051 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
15052
6b21de18
CY
150532011-11-23 Chong Yidong <cyd@gnu.org>
15054
15055 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
15056 using it (Bug#5984).
15057
b12cd789
EZ
150582011-11-22 Eli Zaretskii <eliz@gnu.org>
15059
15060 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
15061 and header-lines, as they don't have one computed for them.
15062 (Bug#10098)
15063
15064 * .gdbinit (prow): Make displayed values more self-explaining.
15065 Add row's hash code.
15066
261b6fd4
LMI
150672011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
15068
15069 * process.c (wait_reading_process_output): Fix asynchrounous
15070 GnuTLS socket handling on some versions of the GnuTLS library.
16c1ad08 15071 (wait_reading_process_output): Add comment and URL.
261b6fd4 15072
e7cfd277
JD
150732011-11-21 Jan Djärv <jan.h.d@swipnet.se>
15074
15075 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
15076
a9b9b7f5
CY
150772011-11-21 Chong Yidong <cyd@gnu.org>
15078
15079 * window.c (Fnext_window, Fprevious_window): Doc fix.
15080
b0d15b4f
SM
150812011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
15082
15083 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
15084
fe7a3057
JB
150852011-11-20 Juanma Barranquero <lekktu@gmail.com>
15086
15087 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
15088
d2999b1a
MR
150892011-11-20 Martin Rudalics <rudalics@gmx.at>
15090
15091 * window.c (Fset_window_combination_limit): Rename argument
15092 STATUS to LIMIT.
15093 (Vwindow_combination_limit): Remove "status" from doc-string.
15094
d5ff9cd0
AS
150952011-11-20 Andreas Schwab <schwab@linux-m68k.org>
15096
15097 * m/ibms390.h: Remove.
15098 * m/ibms390x.h: Don't include "ibms390.h".
15099
a5bb9bd3
SM
151002011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
15101
15102 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
15103 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
15104
cd1181db
JB
151052011-11-20 Juanma Barranquero <lekktu@gmail.com>
15106
15107 * casetab.c (Fset_case_table):
15108 * charset.c (Fcharset_after): Fix typos.
15109
615a3b8d 151102011-11-20 Paul Eggert <eggert@cs.ucla.edu>
6a0bf43d 15111
17e845af
PE
15112 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
15113 Otherwise, valgrind does not work on some platforms.
15114 Problem reported by Andreas Schwab in
6a0bf43d
PE
15115 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
15116 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
15117 is set, removing the need for VIRT_ADDRESS_VARIES.
15118 (PURE_P): Use a more-efficient implementation that needs just one
15119 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
15120 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
15121 to 4 (xorl, subq, cmpq, setbe).
15122 * alloc.c (pure): Always extern now, since that's the
15123 VIRT_ADDR_VARIES behavior.
15124 (PURE_POINTER_P): Use a single comparison, not two, for
15125 consistency with the new puresize.h.
15126 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
15127 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
15128 Remove VIRT_ADDR_VARIES no longer needed.
15129
f8fe6f96
EZ
151302011-11-19 Eli Zaretskii <eliz@gnu.org>
15131
15132 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
15133 (erase_phys_cursor, update_window_cursor, show_mouse_face)
15134 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
15135 behave as if the cursor position were at the window margin.
15136
15137 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
15138 and the cursor position is out of bounds, behave as if the cursor
15139 position were at the window margin. (Bug#10075)
15140
df05a53c
CY
151412011-11-18 Chong Yidong <cyd@gnu.org>
15142
15143 * window.c (Fwindow_combination_limit): Make first argument
15144 non-optional, since it is meaningless for live windows like the
15145 selected window.
61ccba97 15146
2071918e
DA
151472011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
15148
15149 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
15150
b50a28de
SM
151512011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
15152
15153 * intervals.c: Fix grafting over the whole buffer (bug#10071).
15154 (graft_intervals_into_buffer): Simplify.
15155
015137db
EZ
151562011-11-18 Eli Zaretskii <eliz@gnu.org>
15157
15158 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
15159 hash values of the two rows.
15160 (copy_row_except_pointers): Preserve the used[] arrays and the
15161 hash values of the two rows. (Bug#10035)
68c95424 15162 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
015137db
EZ
15163
15164 * xdisp.c (row_hash): New function, body extracted from
15165 compute_line_metrics.
15166 (compute_line_metrics): Call row_hash, instead of computing the
15167 hash code inline.
15168
15169 * dispnew.c (verify_row_hash): Call row_hash for computing the
15170 hash code of a row, instead of duplicating code from xdisp.c.
15171
15172 * dispextern.h (row_hash): Add prototype.
15173
a2addb04
TH
151742011-11-18 Tassilo Horn <tassilo@member.fsf.org>
15175
15176 * frame.c (delete_frame): Don't delete the terminal when the last
15177 X frame is closed if emacs is built with GTK toolkit.
15178
df85d315
JB
151792011-11-17 Juanma Barranquero <lekktu@gmail.com>
15180
15181 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
15182
a0c2d0ae
MR
151832011-11-17 Martin Rudalics <rudalics@gmx.at>
15184
15185 * window.c (Vwindow_splits): Rename to
15186 Vwindow_combination_resize. Suggested by Juri Linkov.
15187 (Fsplit_window_internal): Use Vwindow_combination_resize instead
15188 of Vwindow_splits.
15189
58179cce
JB
151902011-11-16 Juanma Barranquero <lekktu@gmail.com>
15191
7877f373
JB
15192 * nsfns.m (Fns_font_name):
15193 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
58179cce 15194
b6f67890
MR
151952011-11-16 Martin Rudalics <rudalics@gmx.at>
15196
15197 * window.h (window): Rename slot "nest" to "combination_limit".
15198 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
15199 (Fset_window_nest): Rename to Fset_window_combination_limit.
15200 (Vwindow_nest): Rename to Vwindow_combination_limit.
15201 (recombine_windows, make_parent_window, make_window)
15202 (Fsplit_window_internal, saved_window)
15203 (Fset_window_configuration, save_window_save): Rename all
15204 occurrences of window_nest to window_combination_limit.
15205
c7015153
JB
152062011-11-15 Juanma Barranquero <lekktu@gmail.com>
15207
15208 * image.c (imagemagick_load_image): Fix typo.
15209
322ad6ec
EZ
152102011-11-14 Eli Zaretskii <eliz@gnu.org>
15211
15212 * xdisp.c (display_line): Move the call to
15213 highlight_trailing_whitespace before the call to
15214 compute_line_metrics, since the latter needs to see the final
6d5eb5b0
SM
15215 faces of all the glyphs to compute ROW's hash value.
15216 Fixes assertion violations in row_equal_p. (Bug#10035)
322ad6ec 15217
f067b8ec
JB
152182011-11-14 Juanma Barranquero <lekktu@gmail.com>
15219
15220 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
15221 just return (bug#10044).
15222
1e5b2111
EZ
152232011-11-12 Eli Zaretskii <eliz@gnu.org>
15224
7ef3cbd5
EZ
15225 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
15226 with user-defined heap size. Bump the default size of the temacs
15227 heap to 27MB, to avoid memory warning when running temacs.
15228 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
15229
1e5b2111
EZ
15230 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
15231 current_matrix and desired_matrix. (Bug#9990)
7a7270dd
EZ
15232 (verify_row_hash) [XASSERTS]: New function.
15233 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
15234 that the hash value of glyph rows is correct.
1e5b2111 15235
89d61221
MR
152362011-11-12 Martin Rudalics <rudalics@gmx.at>
15237
15238 * window.h (window): Remove splits slot.
15239 * window.c (Fwindow_splits, Fset_window_splits): Remove.
15240 (Fdelete_other_windows_internal, make_parent_window)
15241 (make_window, Fsplit_window_internal, Fdelete_window_internal)
15242 (Fset_window_configuration, save_window_save): Don't deal with
15243 split status of windows.
15244 (saved_window): Remove splits slot.
15245 (Vwindow_splits): Rewrite doc-string.
15246
97f18cc8
JD
152472011-11-11 Jan Djärv <jan.h.d@swipnet.se>
15248
15249 * xfns.c (unwind_create_frame):
15250 * nsfns.m (unwind_create_frame):
15251 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
15252 Vframe_list (Bug#9999).
15253
22a648b4
DA
152542011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
15255
0b381c7e 15256 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
22a648b4 15257
659afede
KH
152582011-11-11 Kenichi Handa <handa@m17n.org>
15259
15260 * callproc.c (Fcall_process): Set the member dst_multibyte of
15261 process_coding.
15262
9ac0394b
KH
152632011-11-11 Johan Bockgård <bojohan@gnu.org>
15264
15265 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
15266 avoid a crash (bug#9496).
15267
2fbdc249
CY
152682011-11-09 Chong Yidong <cyd@gnu.org>
15269
15270 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
15271 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
15272
ac6b1f81
PE
152732011-11-08 Paul Eggert <eggert@cs.ucla.edu>
15274
15275 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
15276
09db192c
PE
152772011-11-08 Paul Eggert <eggert@cs.ucla.edu>
15278
15279 Avoid some portability problems by eschewing 'extern inline' functions.
15280 The trivial performance wins aren't worth the portability hassles; see
15281 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
15282 et seq.
15283 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
15284 (window_box_width, window_box_left, window_box_left_offset)
15285 (window_box_right, window_box_right_offset): Undo previous change,
15286 by removing the "extern"s.
15287 * intervals.c (adjust_intervals_for_insertion)
15288 (adjust_intervals_for_deletion): Undo previous change,
15289 making these static again.
15290 (offset_intervals, temp_set_point_both, temp_set_point)
15291 (copy_intervals_to_string): No longer inline.
15292 * xdisp.c (window_text_bottom_y, window_box_width)
15293 (window_box_height, window_box_left_offset)
15294 (window_box_right_offset, window_box_left, window_box_right)
15295 (window_box): No longer inline.
15296
105216ed
CY
152972011-11-08 Chong Yidong <cyd@gnu.org>
15298
15299 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
6d5eb5b0
SM
15300 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
15301 Signal an error if not a live window.
105216ed
CY
15302 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
15303 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
15304
ae9e237f
JB
153052011-11-07 Juanma Barranquero <lekktu@gmail.com>
15306
15307 * lisp.h (syms_of_abbrev): Remove declaration.
15308 Reported by CHENG Gao <chenggao@royau.me>.
15309
c7aa8333
EZ
153102011-11-07 Eli Zaretskii <eliz@gnu.org>
15311
15312 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
15313 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
15314 of temacs in GUI mode.
15315
be7f5545
MR
153162011-11-07 Martin Rudalics <rudalics@gmx.at>
15317
15318 * window.h: Declare delete_all_child_windows instead of
15319 delete_all_subwindows.
15320 * window.c (Fwindow_nest, Fset_window_nest)
15321 (Fset_window_new_total, Fset_window_new_normal)
15322 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
15323 (delete_all_subwindows): Rename to delete_all_child_windows.
15324 (Fdelete_other_windows_internal, Fset_window_configuration):
15325 Call delete_all_child_windows instead of delete_all_subwindows.
15326 * frame.c (delete_frame): Call delete_all_child_windows instead
15327 of delete_all_subwindows.
15328
ca78dc43
PE
153292011-11-07 Paul Eggert <eggert@cs.ucla.edu>
15330
15331 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
15332 This is also needed for porting to any host where GC_MARK_STACK is
15333 not GC_MAKE_GCPROS_NOOPS.
15334 (which_symbols): Use it.
15335
a0241d01
KH
153362011-11-07 Kenichi Handa <handa@m17n.org>
15337
15338 * coding.c (coding_set_destination): Check coding->src_pos only
15339 when coding->src_object is a buffer (bug#9910).
15340
15341 * process.c (send_process): Set the member src_multibyte of coding
15342 to 0 (bug#9911) when sending a unibyte text.
15343
15344 * callproc.c (Fcall_process): Set the member src_multibyte of
15345 process_coding to 0 (bug#9912).
15346
a64bfdfa 153472011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
ba24cea2
YM
15348
15349 * xmenu.c (cleanup_widget_value_tree): New function.
15350 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
15351 calling free_menubar_widget_value_tree directly (Bug#9830).
15352
cb41b32a
PE
153532011-11-06 Paul Eggert <eggert@cs.ucla.edu>
15354
15355 Fix some portability problems with 'inline'.
15356 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
15357 (window_box_width, window_box_left, window_box_left_offset)
15358 (window_box_right, window_box_right_offset): Declare extern.
15359 Otherwise, these inline functions do not conform to C99 and
15360 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
15361 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
15362 * intervals.c (adjust_intervals_for_insertion)
15363 (adjust_intervals_for_deletion): Now extern, because otherwise the
15364 extern inline functions 'offset_intervals' couldn't refer to it.
15365 (static_offset_intervals): Remove.
15366 (offset_intervals): Rewrite using the old contents of
15367 static_offset_intervals. The old version didn't conform to C99
15368 because an extern inline function contained a reference to an
15369 identifier with static linkage.
15370
b7041366
AS
153712011-11-06 Andreas Schwab <schwab@linux-m68k.org>
15372
15373 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
15374 GC.
15375
88a37c4d
EZ
153762011-11-06 Eli Zaretskii <eliz@gnu.org>
15377
15378 * xdisp.c (init_iterator, reseat_to_string): Don't set the
15379 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
15380 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
15381 return Qleft_to_right.
15382
49745b39
CY
153832011-11-06 Chong Yidong <cyd@gnu.org>
15384
15385 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
15386 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
15387 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
15388 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
15389 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
15390 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
15391 (Fwindow_vscroll): Doc fix.
15392 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
15393 argument, since it makes no sense to pass a live window and for
15394 consistency with window-child.
15395
1f05cd82
CS
153962011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
15397
15398 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
15399 support MSVC.
15400
22610910
JR
154012011-11-05 Jason Rumney <jasonr@gnu.org>
15402
15403 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
15404 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
15405 fonts (Bug#6029).
15406 (add_font_entity_to_list): Fix logic errors in mixed boolean and
15407 bitwise arithmetic preventing use of unicode-sip and non-truetype
15408 opentype fonts.
15409
a06776b2
EZ
154102011-11-05 Eli Zaretskii <eliz@gnu.org>
15411
3ad924ba
EZ
15412 * s/ms-w32.h (fstat, stat, utime): Move redirections to
15413 "emacs"-only part.
15414
a06776b2
EZ
15415 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
15416 initialization code to keep similarity to xfns.c after changes
15417 from 2011-11-05.
15418
c9e7db78
JD
154192011-11-05 Jan Djärv <jan.h.d@swipnet.se>
15420
a97f8f3f
JD
15421 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
15422 (unwind_create_frame): New function (Bug#9943).
15423 (Fx_create_frame): Restructure code to be more similar to the one in
15424 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
15425 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
15426 Move terminal->reference_count++ just before making the frame official
15427 (Bug#9943).
15428
15429 * nsterm.m (x_free_frame_resources): New function.
15430 (x_destroy_window): Move code to x_free_frame_resources.
15431
c9e7db78 15432 * xfns.c (unwind_create_frame): Fix comment.
6d5eb5b0
SM
15433 (Fx_create_frame, x_create_tip_frame):
15434 Move terminal->reference_count++ just before making the frame
75f1671a 15435 official. Move initialization of image_cache_refcount and
c9e7db78
JD
15436 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
15437
a6fc3b5c
EZ
154382011-11-05 Eli Zaretskii <eliz@gnu.org>
15439
15440 Support MSVC build with newer versions of Visual Studio.
15441 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
15442 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
15443 nt/gmake.defs.
15444
15445 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
15446 which are not supported by MSVC.
15447 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
15448 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
15449 bitfields.
15450 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
15451 types in bitfields.
15452 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
15453
15454 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
15455
58179cce 154562011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
a6fc3b5c
EZ
15457
15458 Support MSVC build with newer versions of Visual Studio.
15459 * w32.c: Don't include w32api.h for MSVC.
15460 (init_environment) [_MSC_VER]: Call sys_access, not _access.
15461
15462 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
15463 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
15464 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
15465 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
15466 e_* cousins.
15467 (alloca) [_MSC_VER]: Define to _alloca.
15468
15469 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
15470
15471 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
15472
a58c13ed
EZ
154732011-11-04 Eli Zaretskii <eliz@gnu.org>
15474
15475 * xdisp.c (note_mouse_highlight): If either of
15476 previous/next-single-property-change returns nil, treat that as
15477 the beginning or the end of the buffer. (Bug#9955)
15478
fe0b6370
JD
154792011-11-04 Jan Djärv <jan.h.d@swipnet.se>
15480
a58c13ed 15481 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
fe0b6370
JD
15482 label is not null (Bug#9951).
15483 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
15484 may be NULL.
15485
89bd5ee1
EZ
154862011-11-04 Eli Zaretskii <eliz@gnu.org>
15487
15488 * window.c (Fwindow_body_size): Mention in the doc string that the
15489 return value is in frame's canonical units. (Bug#9949)
15490
84c3edb9
EZ
154912011-11-03 Eli Zaretskii <eliz@gnu.org>
15492
4e2fb5c7
EZ
15493 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
15494
84c3edb9 15495 * w32fns.c (unwind_create_frame): If needed, free the glyph
3ab15fd6 15496 matrices of the partially constructed frame. (Bug#9943)
2a58bbc1 15497 * xfns.c (unwind_create_frame): Likewise.
84c3edb9 15498
bc17a887
EZ
154992011-11-01 Eli Zaretskii <eliz@gnu.org>
15500
15501 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
15502 Don't stop backward scan on the continuation glyph, even though
15503 its CHARPOS is positive.
6d5eb5b0
SM
15504 (mouse_face_from_buffer_pos, note_mouse_highlight):
15505 Rename cover_string to disp_string.
bc17a887 15506
4ee88440
MR
155072011-11-01 Martin Rudalics <rudalics@gmx.at>
15508
15509 * window.c (temp_output_buffer_show): Don't use
15510 Vtemp_buffer_show_specifiers.
15511 (Vtemp_buffer_show_specifiers): Remove unused variable.
15512
c2ff3c02
EZ
155132011-10-30 Eli Zaretskii <eliz@gnu.org>
15514
15515 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
15516 past the beginning of the current glyph matrix.
15517
58179cce 155182011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
6e56383b
JD
15519
15520 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
15521 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
15522 HAVE_GTK3 (Bug#9869).
b77a6a7f 15523
3b574623
JD
15524 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
15525 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
15526
b77a6a7f
JD
15527 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
15528
15529 * xterm.c: Declare x_handle_net_wm_state to return int.
15530 (handle_one_xevent): Check if we are iconified but don't have
15531 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
15532 (get_current_wm_state): Return non-zero if not hidden,
15533 check for _NET_WM_STATE_HIDDEN (Bug#9893).
15534 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
15535 (x_handle_net_wm_state): Return what get_current_wm_state returns.
15536 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
15537
196e41e4
PE
155382011-10-29 Paul Eggert <eggert@cs.ucla.edu>
15539
15540 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
15541 so that this new function doesn't get optimized away by a
15542 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
15543
021f2e1a
AS
155442011-10-29 Andreas Schwab <schwab@linux-m68k.org>
15545
15546 * frame.h (MOUSE_HL_INFO): Remove excess parens.
15547
8b058d44
EZ
155482011-10-29 Eli Zaretskii <eliz@gnu.org>
15549
15550 Fix the `xbytecode' command.
15551 * .gdbinit (xprintbytestr): New command.
b50a28de 15552 (xwhichsymbols): Rename from `which'; all callers changed.
8b058d44
EZ
15553 (xbytecode): Print the byte-code string as well.
15554
4452fb80
EZ
155552011-10-29 Kim Storm <storm@cua.dk>
15556
8b058d44
EZ
15557 * alloc.c (which_symbols): New function.
15558
21b72067
AS
155592011-10-29 Andreas Schwab <schwab@linux-m68k.org>
15560
15561 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
15562 line. (Bug#9903)
15563
83ed7b5c
GM
155642011-10-29 Glenn Morris <rgm@gnu.org>
15565
15566 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
15567 Not clear what it was for, and it causes various bugs. (Bug#9839)
15568
5a7a728b
EZ
155692011-10-28 Eli Zaretskii <eliz@gnu.org>
15570
15571 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
15572 possible random value that matches one of those tested as
15573 condition to clear the mouse face.
15574
d3d0842f
CY
155752011-10-28 Chong Yidong <cyd@gnu.org>
15576
15577 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
15578
31b39d13
DN
155792011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
15580
15581 * window.c (make_window): Initialize phys_cursor_on_p.
15582
9aba6043
SM
155832011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
15584
15585 * lisp.h (struct Lisp_Symbol): Update comments.
15586
c20992f4
JB
155872011-10-28 Juanma Barranquero <lekktu@gmail.com>
15588
15589 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
15590
db4f02f2
EZ
155912011-10-28 Eli Zaretskii <eliz@gnu.org>
15592
15593 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
15594 <oslsachem@gmail.com> for helping to debug this.
15595
15596 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
15597 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
15598 (g_b_init_get_glyph_outline_w): New static variables.
15599 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
15600 (GetGlyphOutlineW_Proc): New typedefs.
15601 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
9aba6043
SM
15602 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
15603 New functions.
15604 (w32font_open_internal, compute_metrics):
15605 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
db4f02f2
EZ
15606 instead of calling the "wide" APIs directly.
15607
15608 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
15609
15610 * w32.h (syms_of_w32font): Add prototype.
15611
87e68db4
JB
156122011-10-27 Juanma Barranquero <lekktu@gmail.com>
15613
15614 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
15615 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
15616 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
15617 (Fmove_to_window_line): Doc fix.
15618
435c1d67
CY
156192011-10-27 Chong Yidong <cyd@gnu.org>
15620
15621 * process.c (make_process): Set gnutls_state to NULL.
15622
15623 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
15624 non-NULL, regardless of GNUTLS_INITSTAGE.
15625 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
15626 an error. Set process slots as soon as we allocate them.
15627
15628 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
15629
9c6c6f49
CY
156302011-10-27 Chong Yidong <cyd@gnu.org>
15631
9aba6043
SM
15632 * gnutls.c (emacs_gnutls_deinit): New function.
15633 Deallocate credentials structures as well as calling gnutls_deinit.
9c6c6f49
CY
15634 (Fgnutls_deinit, Fgnutls_boot): Use it.
15635
15636 * process.c (make_process): Initialize GnuTLS credentials to NULL.
15637 (deactivate_process): Call emacs_gnutls_deinit.
15638
657d08d3
JB
156392011-10-27 Juanma Barranquero <lekktu@gmail.com>
15640
15641 * image.c (x_create_x_image_and_pixmap):
15642 * w32.c (sys_rename, w32_delayed_load):
15643 * w32font.c (fill_in_logfont):
15644 * w32reg.c (x_get_string_resource): Silence compiler warnings.
15645
5430d399
JB
156462011-10-26 Juanma Barranquero <lekktu@gmail.com>
15647
15648 * w32fns.c (w32_default_color_map): New function,
15649 extracted from Fw32_default_color_map.
a7ef684b 15650 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
5430d399 15651
fe0055fa
PE
156522011-10-25 Paul Eggert <eggert@cs.ucla.edu>
15653
15654 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
15655
e6346438
SM
156562011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
15657
15658 * keyboard.c (test_undefined): New function (bug#9751).
15659 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
15660
e112cc37
ET
156612011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
15662
15663 * sysdep.c (init_sys_modes): Fix the check for the controlling
15664 terminal (Bug#6649).
15665
7b5d6677
EZ
156662011-10-20 Eli Zaretskii <eliz@gnu.org>
15667
15668 * dispextern.h (struct bidi_it): New member next_en_type.
15669
15670 * bidi.c (bidi_line_init): Initialize the next_en_type member.
15671 (bidi_resolve_explicit_1): When next_en_pos is valid for the
15672 current character, check also for next_en_type being WEAK_EN.
15673 (bidi_resolve_weak): Don't enter the expensive loop if the current
15674 position is before next_en_pos. Record the bidi type of the first
15675 non-ET, non-BN character we find, in addition to its position.
15676 (bidi_level_of_next_char): Invalidate next_en_type when
15677 next_en_pos is over-stepped.
15678
7da0b018
PE
156792011-10-20 Paul Eggert <eggert@cs.ucla.edu>
15680
15681 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
15682 * editfns.c: Rewrite current-time-zone so that it invokes
15683 the equivalent of (format-time-string "%Z") to get the time zone name.
15684 This fixes a bug when the time zone name contains characters that
15685 need converting from the system time locale to Emacs internal format.
15686 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
15687 that patch fixed format-time-string to do the conversion, but
15688 I forgot to fix current-time-zone.
15689 (format_time_string): New function, containing most of
15690 what Fformat_time_string used to contain.
15691 (Fformat_time_string): Rewrite in terms of format_time_string.
15692 This doesn't change this function's behavior.
15693 (current-time-zone): Rewrite to use format_time_string.
15694 This fixes the bug reported by Michael Schierl in
15695 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
15696 Jason Rumney's 2007-06-07 change worked around this bug, but
15697 didn't fix it.
15698 * systime.h (tzname, timezone): Remove no-longer-used declarations.
15699
8547b010
EZ
157002011-10-19 Eli Zaretskii <eliz@gnu.org>
15701
15702 * xdisp.c (start_display): If the character at POS is displayed
15703 via a display vector, reset IT->current.dpvec_index to zero.
12b32963
EZ
15704 (try_window_reusing_current_matrix): If a line ends in a display
15705 vector or the next line starts in a display vector, continue
15706 redrawing the window even though the character position of
15707 start_row was reached.
8547b010
EZ
15708 (Bug#9771, part 2)
15709
4e948d15
CY
157102011-10-18 Chong Yidong <cyd@gnu.org>
15711
15712 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
15713 with nobreak-char-display too.
15714
4787455f
EZ
157152011-10-18 Eli Zaretskii <eliz@gnu.org>
15716
15717 Fix part 3 of bug#9771.
15718 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
15719 (bidi_resolve_neutral): Don't enter the expensive loop looking for
15720 non-neutral characters if the current character is a paragraph
15721 separator (a.k.a. Newline). This avoids running the same
15722 expensive loop twice, once when we consume the preceding newline
15723 and the other time when the line actually needs to be displayed.
15724 Avoid the loop when we see neutrals on the base embedding level
15725 following a character whose directionality is the same as the
15726 paragraph's. This avoids running the expensive loop when a line
15727 ends in a long sequence of neutrals, like control characters.
15728 Add assertion against STRONG_AL type. Slightly rearrange code
15729 that determines the type of a neutral given the first non-neutral
15730 that follows it.
15731 (bidi_level_of_next_char): Set next_en_pos to zero when
15732 invalidating its info.
15733
2c91f553
EZ
157342011-10-17 Eli Zaretskii <eliz@gnu.org>
15735
15736 * xdisp.c (push_display_prop): Determine whether to record string
15737 or buffer position by IT->string, not by IT->method. Allow
15738 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
f2ff9e88
EZ
15739 (move_it_vertically_backward): Don't look for character position
15740 immediately after the newline when in a continuation line.
15741 (Bug#9771, part 1)
2c91f553 15742
c7b08b0d
MR
157432011-10-15 Martin Rudalics <rudalics@gmx.at>
15744
15745 * window.c (coordinates_in_window): Rewrite and delabelize
15746 vertical border check. (Bug#5357) (Bug#9618)
15747
6b02f655
SM
157482011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
15749
15750 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
15751 errors in XSetWindowBorder (bug#9310).
15752
81d40c92
DA
157532011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
15754
15755 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
15756 avoid crash when xmalloc overrun checking is enabled.
15757
d4172c3b
EZ
157582011-10-13 Eli Zaretskii <eliz@gnu.org>
15759
15760 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
15761 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
15762 cursor motion with <left> and <right> arrow keys.
15763
15764 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
15765 some callers set that themselves.
15766
b00eea75
EZ
157672011-10-12 Eli Zaretskii <eliz@gnu.org>
15768
15769 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
15770 display string and the previous row comes from the same string and
15771 is empty. (Bug#9739) (Bug#9738)
15772
8fe012c4
SM
157732011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
15774
15775 * doc.c (get_doc_string): Encode file name (bug#9735).
15776
0074aef2
EZ
157772011-10-12 Eli Zaretskii <eliz@gnu.org>
15778
79beb178
EZ
15779 * bidi.c (bidi_level_of_next_char):
15780 * xdisp.c (get_visually_first_element): Remove old incorrect
15781 comments regarding the Unicode Line Separator character.
15782
0074aef2
EZ
15783 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
15784
6e4b3fbe
DA
157852011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
15786
15787 * alloc.c (Fgc_status): Do not access beyond zombies array
15788 boundary if nzombies > MAX_ZOMBIES.
15789 * alloc.c (dump_zombies): Add missing format specifier.
15790
0324f3af
PE
157912011-10-12 Paul Eggert <eggert@cs.ucla.edu>
15792
b5525cac
PE
15793 * xdisp.c (set_cursor_from_row): Simplify conditionals,
15794 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
15795
0324f3af
PE
15796 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
15797 Some packages use them to denote characters with modifiers.
15798
e9b5f888
AS
157992011-10-11 Andreas Schwab <schwab@linux-m68k.org>
15800
15801 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
15802 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
15803 matching a pp-number. Rename parameter var to var1.
15804
127827c0
SM
158052011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
15806
15807 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
15808
c8fd3bd0
GM
158092011-10-08 Glenn Morris <rgm@gnu.org>
15810
15811 * callint.c (Fcall_interactively): Give a more explicit error for the
15812 'c' case with a non-character input. (Bug#8479)
15813
352ec8ff
EZ
158142011-10-08 Eli Zaretskii <eliz@gnu.org>
15815
03669ccb
EZ
15816 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
15817 lines.
7061c986
EZ
15818 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
15819 lines that are hscrolled on the left.
03669ccb 15820
352ec8ff
EZ
15821 * dispnew.c (buffer_posn_from_coords): Account for a possible
15822 presence of header-line. (Bug#4426)
15823
a66cfb1c
SM
158242011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
15825
6b02f655
SM
15826 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
15827 Don't advertise functionality which we discourage or doesn't work.
a66cfb1c 15828
7c5ee88e
PE
158292011-10-07 Paul Eggert <eggert@cs.ucla.edu>
15830
15831 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
15832 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
15833 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
15834 this makes Emacs dump core during garbage collection on rare
15835 occasions. sizeof is obviously inferior to offsetof here, so
15836 stick with offsetof.
15837 (GC_POINTER_ALIGNMENT): New macro.
15838 (mark_memory): Omit 3rd (offset) arg; caller changed.
15839 Don't assume EMACS_INT alignment is the same as pointer alignment.
15840
df1bbe5b
SM
158412011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
15842
15843 * keyboard.c (read_key_sequence_remapped): New var.
15844 (read_key_sequence): Compute remapping in the right buffer.
15845 (command_loop_1): Use read_key_sequence's remapping directly.
15846
51553db6
SM
158472011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
15848
32c1fffd
SM
15849 * dired.c (file_name_completion): Don't expand file name.
15850 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
15851 before checking file name handler.
15852
51553db6
SM
15853 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
15854 they've been requested explicitly (bug#9591).
15855
b6bd1599 158562011-10-01 Andreas Schwab <schwab@linux-m68k.org>
fa2ec41f
AS
15857
15858 * keymap.c (Fsingle_key_description): Use make_specified_string
15859 instead of build_string to build string from push_key_description.
15860 (Bug#5193)
15861
f701dc2a
PE
158622011-09-30 Paul Eggert <eggert@cs.ucla.edu>
15863
4222c55d
PE
15864 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
15865 This fixes a Y2038 bug on 64-bit hosts.
15866 * buffer.c (reset_buffer):
15867 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
15868 (Fclear_buffer_auto_save_failure):
15869 Use 0, not -1, to represent an unset failure time, since time_t
15870 might not be signed.
15871
f701dc2a
PE
15872 Remove dependency on glibc malloc internals.
15873 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
15874 Move back here from lisp.h, but with their new implementations.
15875 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
15876 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
15877 * charset.c (charset_table_init): New static var.
15878 (syms_of_charset): Use it instead of xmalloc. This removes a
15879 dependency on glibc malloc internals. See Eli Zaretskii's comment in
15880 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
15881 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
15882 Move back to alloc.c.
15883 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
15884 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
15885
9ceebf39
JD
158862011-09-30 Jan Djärv <jan.h.d@swipnet.se>
15887
15888 * nsterm.m (windowDidResize): Call x_set_window_size only when
15889 ns_in_resize is true. Otherwise set pixelwidth/height and
15890 call change_frame_size (Bug#9628).
15891
cb993c58
PE
158922011-09-30 Paul Eggert <eggert@cs.ucla.edu>
15893
3930c88b
PE
15894 Port --enable-checking=all to Fedora 14 x86-64.
15895 * charset.c (syms_of_charset): Also account for glibc malloc's
15896 internal overhead when calculating the initial malloc maximum.
15897
cb993c58
PE
15898 Port --enable-checking=all to Fedora 14 x86.
15899 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
15900 Move to lisp.h.
15901 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
15902 (overrun_check_realloc, overrun_check_free):
15903 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
15904 That way, xmalloc returns a properly-aligned pointer even if
15905 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
15906 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
15907 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
15908 into account when calculating the initial malloc maximum.
15909 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
15910 Move here from alloc.c, so that charset.c can use it too.
15911 Properly align; the old code wasn't right for common 32-bit hosts
15912 when configured with --enable-checking=all.
15913 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
15914 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
15915
31bed486
EZ
159162011-09-29 Eli Zaretskii <eliz@gnu.org>
15917
04c70788 15918 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
31bed486
EZ
15919 use EDOM.
15920
fbcaa2f3
EZ
159212011-09-28 Eli Zaretskii <eliz@gnu.org>
15922
15923 * xdisp.c (compute_display_string_end): If there's no display
15924 string at CHARPOS, return -1.
15925
15926 * bidi.c (bidi_fetch_char): When compute_display_string_end
15927 returns a negative value, treat the character as a normal
15928 character not covered by a display string. (Bug#9624)
15929
a239d4e9
JB
159302011-09-28 Juanma Barranquero <lekktu@gmail.com>
15931
15932 * lread.c (Fread_from_string): Fix typo in docstring.
15933
88652fd5
EZ
159342011-09-27 Eli Zaretskii <eliz@gnu.org>
15935
15936 * xdisp.c (handle_invisible_prop): If invisible text ends on a
15937 newline, reseat the iterator instead of bidi-iterating there one
15938 character at a time. (Bug#9610)
32c1fffd
SM
15939 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
15940 TO_CHARPOS if the bidi iterator is at base embedding level.
88652fd5 15941
ed497dd4
AS
159422011-09-27 Andreas Schwab <schwab@linux-m68k.org>
15943
15944 * lread.c (readevalloop): Use correct code for NBSP.
15945 (read1): Likewise. (Bug#9608)
15946
b2bf61aa
MA
159472011-09-25 Michael Albinus <michael.albinus@gmx.de>
15948
15949 * dbusbind.c (Fdbus_register_signal): When service is not
15950 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
15951
32bbb17c
GM
159522011-09-25 Glenn Morris <rgm@gnu.org>
15953
15954 * buffer.c (truncate-lines): Doc fix.
15955
94e0933e
CY
159562011-09-24 Chong Yidong <cyd@stupidchicken.com>
15957
15958 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
15959 (Fset_window_next_buffers): Doc fix.
15960
cddde921
GM
159612011-09-24 Glenn Morris <rgm@gnu.org>
15962
15963 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
15964
1260aef1
PE
159652011-09-24 Paul Eggert <eggert@cs.ucla.edu>
15966
25b4bfa0
PE
15967 Fix minor problems found by static checking.
15968 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
1260aef1
PE
15969 * indent.c (Fvertical_motion): Fix == vs = typo.
15970
e3cbd34b
EZ
159712011-09-24 Eli Zaretskii <eliz@gnu.org>
15972
a66cfb1c
SM
15973 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
15974 Default value is now t. Doc fix.
6bf7006f 15975
e3cbd34b 15976 * indent.c (Fvertical_motion): Compute and apply the overshoot
32c1fffd 15977 logic when moving up, not only when moving down. Fix the
e3cbd34b 15978 confusing name and values of the it_overshoot_expected variable;
32c1fffd 15979 logic changes accordingly. (Bug#9254) (Bug#9549)
e3cbd34b
EZ
15980
15981 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
15982 CHARPOS is covered by a display string which includes newlines.
15983 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
15984 is covered by a display string with embedded newlines.
15985
a3de0cbd
MA
159862011-09-24 Michael Albinus <michael.albinus@gmx.de>
15987
15988 * dbusbind.c (Fdbus_register_signal): Add match rule to
15989 Vdbus_registered_objects_table. (Bug#9581)
a66cfb1c
SM
15990 (Fdbus_register_method, Vdbus_registered_objects_table):
15991 Fix docstring.
a3de0cbd 15992
b260039d
JM
159932011-09-24 Jim Meyering <meyering@redhat.com>
15994
32c1fffd 15995 do not ignore write error for any output size
b260039d
JM
15996 The previous change was incomplete.
15997 While it makes emacs --batch detect the vast majority of stdout
15998 write failures, errors were still ignored whenever the output size is
15999 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
16000 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
16001 && echo FAIL: ignored write error
16002 FAIL: ignored write error
16003 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
16004 && echo FAIL: ignored write error
16005 FAIL: ignored write error
16006 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
16007
8eca8a7c
AS
160082011-09-23 Andreas Schwab <schwab@linux-m68k.org>
16009
16010 * emacs.c (Fkill_emacs): In noninteractive mode exit
16011 non-successfully if a write error occurred on stdout. (Bug#9574)
16012
3341db62
EZ
160132011-09-21 Eli Zaretskii <eliz@gnu.org>
16014
16015 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
16016 the xassert test.
16017
16018 * dispextern.h (struct it): Update the comment documenting what
16019 can it->OBJECT be.
16020
8c203dbf
EZ
160212011-09-20 Eli Zaretskii <eliz@gnu.org>
16022
16023 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
16024 a display string, extend search for cursor position to end of row.
16025 (find_row_edges): If the row ends in a newline from a display
16026 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
16027 Handle the case of a display string with multiple newlines.
fd317ddf
EZ
16028 (Fcurrent_bidi_paragraph_direction): Fix search for previous
16029 non-empty line. Fixes confusing cursor motion with arrow keys at
16030 the beginning of a line that starts with whitespace.
8c203dbf 16031
a4824228
LMI
160322011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
16033
16034 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
16035 (bug#9493).
16036
33ed493b
CY
160372011-09-18 Chong Yidong <cyd@stupidchicken.com>
16038
16039 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
16040 boolean (Bug#9154).
16041
56cd55c8
EZ
160422011-09-18 Eli Zaretskii <eliz@gnu.org>
16043
16044 * xdisp.c (display_line): Record maximum and minimum buffer
16045 positions even if no glyphs were produced (e.g., by a zero-width
16046 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
16047 buffer positions that will be removed from the glyph row because
16048 they don't fit.
c02dcedf
EZ
16049 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
16050 column is beyond frame width: don't subtract 1 "pixel" when
16051 computing width of the stretch.
3e62b7e0
EZ
16052 (reseat_at_next_visible_line_start): Undo the change made on
16053 2011-09-17 that saved paragraph information and restored it after
16054 the call to `reseat'. (Bug#9545)
56cd55c8 16055
5ed99d36 160562011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3390454c
YM
16057
16058 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
16059 and turn window cursor on if cleared (Bug#9415).
16060
5ed99d36 160612011-09-18 Andreas Schwab <schwab@linux-m68k.org>
edb7b4dc
AS
16062
16063 * search.c (boyer_moore): Take unibyte characters from pattern
16064 literally. (Bug#9458)
16065
9bade7b2
EZ
160662011-09-18 Eli Zaretskii <eliz@gnu.org>
16067
16068 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
16069
e5e9d610
PE
160702011-09-18 Paul Eggert <eggert@cs.ucla.edu>
16071
87e4427a
PE
16072 Fix minor problem found by static checking.
16073 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
16074 initialized, to pacify gcc -Wuninitialized.
16075
e5e9d610
PE
16076 * fileio.c: Report proper errno when syscall falls.
16077 (Finsert_file_contents): Save and restore errno,
16078 so that report_file_error outputs the correct diagnostic.
16079 (Fwrite_region) [CLASH_DETECTION]: Likewise.
16080
a1674f0b
EZ
160812011-09-18 Eli Zaretskii <eliz@gnu.org>
16082
16083 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
16084
fbfb6dd4
EZ
160852011-09-17 Eli Zaretskii <eliz@gnu.org>
16086
16087 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
16088 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
16089
bb187662
EZ
160902011-09-17 Eli Zaretskii <eliz@gnu.org>
16091
1137e8b8 16092 * xdisp.c (reseat_at_next_visible_line_start): Keep information
6b02f655 16093 about the current paragraph and restore it after the call to reseat.
1137e8b8
EZ
16094
16095 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
16096 (bidi_find_paragraph_start): Search back for paragraph beginning
16097 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
16098 (bidi_move_to_visually_next): Only trigger paragraph-related
16099 computations when the last character is a newline or at EOB, not
16100 just any NEUTRAL_B. (Bug#9470)
16101
bb187662
EZ
16102 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
16103 truncated lines if point is covered by a display string. (Bug#9524)
16104
2e621251
PE
161052011-09-16 Paul Eggert <eggert@cs.ucla.edu>
16106
16107 * xselect.c: Relax test for outgoing X longs (Bug#9498).
16108 (cons_to_x_long): New function.
16109 (lisp_data_to_selection_data): Use it. Correct the test for
16110 short-versus-long data; it was negated. Break out of vector
16111 loop, for efficiency, when a long datum is discovered.
16112
91a15bc6
SM
161132011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
16114
16115 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
16116
b41c3a35
EZ
161172011-09-16 Eli Zaretskii <eliz@gnu.org>
16118
16119 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
16120 GCC PR/17406) by declaring this function with external scope.
16121
7812ba2d
PE
161222011-09-15 Paul Eggert <eggert@cs.ucla.edu>
16123
16124 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
16125 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
16126
cf7edc2a
AS
161272011-09-15 Andreas Schwab <schwab@linux-m68k.org>
16128
16129 * editfns.c (Fformat): Correctly handle text properties on "%%".
16130
bd01620e
EZ
161312011-09-15 Eli Zaretskii <eliz@gnu.org>
16132
16133 * xterm.c (x_draw_composite_glyph_string_foreground):
16134 * w32term.c (x_draw_composite_glyph_string_foreground):
16135 * term.c (encode_terminal_code):
16136 * composite.c (composition_update_it, get_composition_id):
16137 * xdisp.c (get_next_display_element)
16138 (fill_composite_glyph_string): Add comments about special meaning
16139 of TAB characters in a composition.
16140
a02719a3
PE
161412011-09-15 Paul Eggert <eggert@cs.ucla.edu>
16142
16143 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
4c122725
PE
16144 This occurs when processing a multibyte format.
16145 Problem reported by Wolfgang Jenker.
a02719a3 16146
72589a3c
JB
161472011-09-15 Johan Bockgård <bojohan@gnu.org>
16148
16149 * xdisp.c (try_cursor_movement): Only check for exact match if
16150 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
16151
1c14176c
PE
161522011-09-14 Paul Eggert <eggert@cs.ucla.edu>
16153
16154 Remove unused external symbols.
16155 * dispextern.h (calc_pixel_width_or_height): Remove decl.
16156 * xdisp.c (calc_pixel_width_or_height): Now static.
16157 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
16158 * indent.c (check_display_width):
16159 * w32term.c: Fix comment to match code.
16160 * xterm.c, xterm.h (x_catching_errors): Remove.
16161
d2eea5b5
PE
161622011-09-14 Paul Eggert <eggert@cs.ucla.edu>
16163
16164 * xselect.c: Use signed conversions more consistently (Bug#9498).
16165 (selection_data_to_lisp_data): Assume incoming selection data are
16166 signed integers, not unsigned. This is to be consistent with
16167 outgoing selection data, which was modified to use signed integers
16168 in as part of the fix to Bug#9196 in response to Jan D.'s comment
16169 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
16170 expects long, not unsigned long.
16171
46888499
EZ
161722011-09-14 Eli Zaretskii <eliz@gnu.org>
16173
16174 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
16175 computation of loop end. Reported by Johan Bockgård
16176 <bojohan@gnu.org>.
16177
ef8ef9fb
CY
161782011-09-13 Chong Yidong <cyd@stupidchicken.com>
16179
16180 * frame.c (Fother_visible_frames_p): Function deleted.
16181
fa819fed
EZ
161822011-09-12 Eli Zaretskii <eliz@gnu.org>
16183
16184 * indent.c (compute_motion): Process display vector front to back
16185 rather than the other way around. (Bug#2496)
16186
2ba8e008
SM
161872011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
16188
16189 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
16190
20f53c69
CY
161912011-09-11 Chong Yidong <cyd@stupidchicken.com>
16192
16193 * minibuf.c (Fread_from_minibuffer): Doc fix.
16194
d562d7a4
EZ
161952011-09-11 Eli Zaretskii <eliz@gnu.org>
16196
16197 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
16198 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
16199
1c4d7f3d
LMI
162002011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
16201
16202 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
16203 value for non-existent files.
16204
b885bf36
EZ
162052011-09-11 Eli Zaretskii <eliz@gnu.org>
16206
16207 * fileio.c (Finsert_file_contents): If the file cannot be opened,
16208 set its "size" to -1. This will set the modtime_size field of
16209 the corresponding buffer to -1, which is what
16210 verify-visited-file-modtime expects for files that do not exist.
16211 (Bug#9139)
16212
6612f0bf
PE
162132011-09-11 Paul Eggert <eggert@cs.ucla.edu>
16214
16215 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
16216 here ...
16217 * lisp.h: ... from here. push_key_description is no longer
16218 defined in keyboard.c, so its declaration should not be in
16219 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
16220 logically belongs with push_key_description.
16221
dfb3f755
PE
162222011-09-10 Paul Eggert <eggert@cs.ucla.edu>
16223
16224 * buffer.h: Include <sys/types.h> instead of <time.h>.
16225 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
16226 Problem reported by Herbert J. Skuhra.
16227
3134906c
LMI
162282011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
16229
16230 * xml.c (parse_region): Make the parsing work for
16231 non-comment-starting XML files again (bug#9144).
16232
8d903f4e
AS
162332011-09-10 Andreas Schwab <schwab@linux-m68k.org>
16234
16235 * image.c (gif_load): Fix calculation of bottom and right corner.
16236 (Bug#9468)
16237
80ad64f4
EZ
162382011-09-10 Eli Zaretskii <eliz@gnu.org>
16239
16240 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
16241 redisplay in small windows.
16242
208a048d
EZ
162432011-09-09 Eli Zaretskii <eliz@gnu.org>
16244
16245 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
16246
9b1c252e
MR
162472011-09-08 Martin Rudalics <rudalics@gmx.at>
16248
16249 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
16250 Operate on live windows only.
16251
2949f33b
JB
162522011-09-08 Juanma Barranquero <lekktu@gmail.com>
16253
16254 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
16255
e08dcafd
EZ
162562011-09-07 Eli Zaretskii <eliz@gnu.org>
16257
16258 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
16259 only under bidi iteration.
16260
115b96bd
JD
162612011-09-07 Jan Djärv <jan.h.d@swipnet.se>
16262
16263 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
16264
c8199d0f
PE
162652011-09-06 Paul Eggert <eggert@cs.ucla.edu>
16266
16267 isnan: Fix porting problem to Solaris 10 with bundled gcc.
16268 Without this fix, the command to link temacs failed due to an
16269 undefined symbol __builtin_isnan. This is because
16270 /usr/include/iso/math_c99.h #defines isnan(x) to
16271 __builtin_isnan(x), but the bundled gcc, which identifies itself
16272 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
16273 a __builtin_isnan.
16274 * floatfns.c (isnan): #undef, and then #define to a clone of
16275 what's in data.c.
16276 (Fisnan): Always define, since it's always available now.
16277 (syms_of_floatfns): Always define isnan at the Lisp level.
16278
e39b275c 162792011-09-06 Paul Eggert <eggert@cs.ucla.edu>
1c262cae
PE
16280
16281 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
16282
b2db44d9 162832011-09-06 Paul Eggert <eggert@cs.ucla.edu>
728f8f0a 16284
f4af5137 16285 * fileio.c: Fix bugs with large file offsets (Bug#9428).
728f8f0a
PE
16286 The previous code assumed that file offsets (off_t values) fit in
16287 EMACS_INT variables, which is not true on typical 32-bit hosts.
16288 The code messed up by falsely reporting buffer overflow in cases
16289 such as (insert-file-contents "big" nil 1 2) into an empty buffer
16290 when "big" contains more than 2**29 bytes, even though this
16291 inserts just one byte and does not overflow the buffer.
16292 (Finsert_file_contents): Store file offsets as off_t
16293 values, not as EMACS_INT values. Check for overflow when
16294 converting between EMACS_INT and off_t. When checking for
16295 buffer overflow or for overlap, take the offsets into account.
16296 Don't use EMACS_INT for small values where int suffices.
16297 When checking for overlap, fix a typo: ZV was used where
16298 ZV_BYTE was intended.
16299 (Fwrite_region): Don't assume off_t fits into 'long'.
16300 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
16301
ecfc0a49
MA
163022011-09-05 Michael Albinus <michael.albinus@gmx.de>
16303
16304 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
16305
6511acf2 163062011-09-04 Paul Eggert <eggert@cs.ucla.edu>
61bfeeb7 16307
0999621a 16308 sprintf-related integer and memory overflow issues (Bug#9412).
62f19c19
PE
16309
16310 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
8666506e 16311 (esprintf, exprintf, evxprintf): New functions.
62f19c19 16312 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
6b02f655 16313 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
62f19c19
PE
16314 (modify_event_symbol): Do not assume that the length of
16315 name_alist_or_stem is safe to alloca and fits in int.
16316 (Fexecute_extended_command): Likewise for function name and binding.
16317 (Frecursion_depth): Wrap around reliably on integer overflow.
16318 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
16319 since some callers pass EMACS_INT values.
16320 (Fsingle_key_description): Don't crash if symbol name contains more
16321 than MAX_ALLOCA bytes.
16322 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
16323 (get_minibuffer): Arg is now EMACS_INT, not int.
16324 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
8666506e 16325 (esprintf, exprintf, evxprintf): New decls.
62f19c19
PE
16326 * window.h (command_loop_level, minibuf_level): Reflect API changes.
16327
2be7d702
PE
16328 * dbusbind.c (signature_cat): New function.
16329 (xd_signature, Fdbus_register_signal):
2ea16b89
PE
16330 Do not overrun buffer; instead, report string overflow.
16331
9d1df220
PE
16332 * dispnew.c (add_window_display_history): Don't overrun buffer.
16333 Truncate instead; this is OK since it's just a log.
16334
33ef5c64
PE
16335 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
16336 even if the time zone offset is outlandishly large.
16337 Don't mishandle offset == INT_MIN.
16338
66c6fdd5
PE
16339 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
16340 when creating daemon; the previous buffer-overflow check was incorrect.
16341
d749b01b
PE
16342 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
16343 which has the guts of the old verror function.
16344
b5cd1905
PE
16345 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
16346 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
16347
6e1a67fb
PE
16348 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
16349 (font_unparse_xlfd): Don't blindly alloca long strings.
c21721cc 16350 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
8666506e 16351 fits in int, when using sprintf. Use single snprintf to count
c21721cc
PE
16352 length of string rather than counting it via multiple sprintfs;
16353 that's simpler and more reliable.
c21721cc
PE
16354 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
16355 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
16356 sprintf, in case result does not fit in int.
16357
c57b67fc
PE
16358 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
16359 (fontset_from_font): Print it.
16360
8a401434
PE
16361 * frame.c (tty_frame_count): Now printmax_t, not int.
16362 (make_terminal_frame, set_term_frame_name): Print it.
16363 (x_report_frame_params): In X, window IDs are unsigned long,
16364 not signed long, so print them as unsigned.
16365 (validate_x_resource_name): Check for implausibly long names,
16366 and don't assume name length fits in 'int'.
16367 (x_get_resource_string): Don't blindly alloca invocation name;
16368 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
16369 not fit in int.
16370
6e1a67fb
PE
16371 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
16372 (xg_check_special_colors, xg_set_geometry):
84722b3d
PE
16373 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
16374
0df02bf3
PE
16375 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
16376 Use esprintf, not sprintf, in case result does not fit in int.
16377
48e30793
PE
16378 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
16379 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
16380 it as a large positive number.
16381 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
16382 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
16383
a66ff6d8
PE
16384 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
16385 in case result does not fit in int.
16386
aca216ff
PE
16387 * print.c (float_to_string): Detect width overflow more reliably.
16388 (print_object): Make sprintf buffer a bit bigger, to avoid potential
16389 buffer overrun. Don't assume list length fits in 'int'. Treat
16390 print length of 0 as 0, not as infinity; to be consistent with other
16391 uses of print length in this function. Don't overflow print length
16392 index. Don't assume hash table size fits in 'long', or that
16393 vectorlike size fits in 'unsigned long'.
16394
31c286f7
PE
16395 * process.c (make_process): Use printmax_t, not int, to format
16396 process-name gensyms.
16397
55e5faa1
PE
16398 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
16399
80f2e268
PE
16400 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
16401 to avoid potential buffer overrun.
16402
670741ab
PE
16403 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
16404 if X resource line is longer than 512 bytes.
16405
b7163a50
PE
16406 * xfns.c (x_window): Make sprintf buffer a bit bigger
16407 to avoid potential buffer overrun.
16408
ae58ff1f
PE
16409 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
16410
c43c8a6a
PE
16411 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
16412
3f8236f4
PE
164132011-09-04 Paul Eggert <eggert@cs.ucla.edu>
16414
53e9fe90 16415 Integer overflow fixes for scrolling, etc.
6511acf2
PE
16416 Without these, Emacs silently mishandles large integers sometimes.
16417 For example, "C-u 4294967297 M-x recenter" was treated as if
53e9fe90
PE
16418 it were "C-u 1 M-x recenter" on a typical 64-bit host.
16419
6511acf2
PE
16420 * xdisp.c (try_window_id): Check Emacs fixnum range before
16421 converting to 'int'.
806add1d 16422
6511acf2 16423 * window.c (window_scroll_line_based, Frecenter):
71f02bc5
PE
16424 Check that an Emacs fixnum is in range before assigning it to 'int'.
16425 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
16426 values converted from Emacs fixnums.
16427 (Frecenter): Don't wrap around a line count if it is out of 'int'
16428 range; instead, treat it as an extreme value.
16429 (Fset_window_configuration, compare_window_configurations):
16430 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
16431
6511acf2
PE
16432 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
16433 that can exceed INT_MAX. Check that EMACS_INT value is in range
16434 before assigning it to the (possibly-narrower) index.
a0efffc8
PE
16435 (match_limit): Don't assume that a fixnum can fit in 'int'.
16436
6511acf2 16437 * print.c (print_object): Use ptrdiff_t, not int, for index that can
29ebea3b
PE
16438 exceed INT_MAX.
16439
6511acf2 16440 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
3f8236f4
PE
16441 (Fvertical_motion): Don't wrap around LINES values that don't fit
16442 in 'int'. Instead, treat them as extreme values. This is good
16443 enough for windows, which can't have more than INT_MAX lines anyway.
16444
fcb901a7
LMI
164452011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
16446
0f2f6b6d
LMI
16447 * Require libxml/parser.h to avoid compilation warning.
16448
fcb901a7
LMI
16449 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
16450
16451 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
16452 since this reportedly can destroy thread storage.
16453
6e20a0d4
CY
164542011-08-30 Chong Yidong <cyd@stupidchicken.com>
16455
16456 * syntax.c (find_defun_start): Update all cache variables if
16457 exiting early (Bug#9401).
16458
148ae00e
EZ
164592011-08-30 Eli Zaretskii <eliz@gnu.org>
16460
f6cfbd8f
EZ
16461 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
16462
148ae00e
EZ
16463 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
16464 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
16465 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
16466
16467 * term.c (tty_append_glyph): New function.
16468 (produce_stretch_glyph): Static function and its prototype deleted.
16469
a66cfb1c
SM
16470 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
16471 Add prototypes.
148ae00e 16472
c4a07a4c
PE
164732011-08-29 Paul Eggert <eggert@cs.ucla.edu>
16474
16475 * image.c (parse_image_spec): Check for nonnegative, not for positive,
16476 when checking :margin (Bug#9390).
16477 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
a66cfb1c 16478 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
c4a07a4c
PE
16479 so that the name doesn't mislead. All uses changed.
16480
6bc8cd65
JB
164812011-08-28 Johan Bockgård <bojohan@gnu.org>
16482
16483 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
16484 set_tty_hooks.
16485
dca4927e
EZ
164862011-08-27 Eli Zaretskii <eliz@gnu.org>
16487
16488 * xdisp.c (move_it_to): Don't bail out early when reaching
16489 position beyond to_charpos, if we are scanning backwards.
16490 (move_it_vertically_backward): When DY == 0, make sure we get to
16491 the first character in the line after the newline.
16492
f2cad773
PE
164932011-08-27 Paul Eggert <eggert@cs.ucla.edu>
16494
16495 * ccl.c: Improve and simplify overflow checking (Bug#9196).
16496 (ccl_driver): Do not generate an out-of-range pointer.
16497 (Fccl_execute_on_string): Remove unnecessary check for
16498 integer overflow, noted by Stefan Monnier in
16499 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
16500 Remove a FIXME that didn't need fixing.
16501 Simplify the newly-introduced buffer reallocation code.
16502
0cae2cdb
JB
165032011-08-27 Juanma Barranquero <lekktu@gmail.com>
16504
16505 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
16506
5fc295a4 165072011-08-26 Paul Eggert <eggert@cs.ucla.edu>
ddff3151 16508
70c60eb2 16509 Integer and memory overflow issues (Bug#9196).
726e0ab1 16510
d31850da
PE
16511 * doc.c (get_doc_string): Rework so that
16512 get_doc_string_buffer_size is the actual buffer size, rather than
16513 being 1 less than the actual buffer size; this makes xpalloc more
16514 convenient.
16515
a69fbedb
PE
16516 * image.c (x_allocate_bitmap_record, cache_image):
16517 * xselect.c (Fx_register_dnd_atom):
16518 Simplify previous changes by using xpalloc.
16519
fe5c5d37
PE
16520 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
16521 since either will do and ptrdiff_t is convenient with xpalloc.
16522
0065d054
PE
16523 * charset.c (charset_table_size)
16524 (struct charset_sort_data.priority): Now ptrdiff_t.
16525 (charset_compare): Don't overflow if priorities differ greatly.
16526 (Fsort_charsets): Don't assume list length fits in int.
16527 Check for size-calculation overflow when allocating sort data.
16528 (syms_of_charset): Allocate an initial charset table that is
16529 just under 64 KiB, to avoid problems with glibc malloc and mmap.
16530
16531 * cmds.c (internal_self_insert): Check for size-calculation overflow.
16532
16533 * composite.h (struct composition.glyph_len): Now int, not unsigned.
16534 The actual value is always <= INT_MAX, and leaving it unsigned made
16535 overflow checking harder.
16536
16537 * dispextern.h (struct glyph_matrix.rows_allocated)
16538 (struct face_cache.size): Now ptrdiff_t, for convenience in use
16539 with xpalloc. The values are still always <= INT_MAX.
16540
16541 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
16542
16543 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
16544 (SAFE_NALLOCA): New macro.
16545
16546 * region-cache.c (struct boundary.pos, find_cache_boundary)
16547 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
16548 (set_cache_region, invalidate_region_cache)
16549 (revalidate_region_cache, know_region_cache, region_cache_forward)
16550 (region_cache_backward, pp_cache):
16551 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
16552 so that ptrdiff_t * can be passed to xpalloc.
16553 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
16554 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
16555 (pp_cache): Don't assume cache_len fits in int.
16556 * region-cache.h: Adjust extern decls to match.
16557
16558 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
16559 EMACS_INT, since either will do, for xpalloc.
16560
16561 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
16562 (xnmalloc, xnrealloc, xpalloc): New functions.
16563
726e0ab1
PE
16564 * bidi.c (bidi_shelve_header_size): New constant.
16565 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
16566 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
16567
51f30bc5 16568 * bidi.c (bidi_cache_shrink):
726e0ab1
PE
16569 * buffer.c (overlays_at, overlays_in, record_overlay_string)
16570 (overlay_strings):
16571 Don't update size of array until after memory allocation succeeds,
16572 because xmalloc/xrealloc may not return.
0065d054
PE
16573 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
16574 now that we have proper integer overflow checking.
16575 (record_overlay_string, overlay_strings): Catch overflows when
16576 calculating size of overlay_str_buf.
726e0ab1 16577
0065d054
PE
16578 * callproc.c (Fcall_process): Check for size overflow when
16579 calculating size of args2.
16580 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
16581 Normally we prefer signed values, but sticking with ptrdiff_t would
16582 require adding more-complicated checks.
726e0ab1
PE
16583
16584 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
16585 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
16586 Redo buffer-overflow calculations to avoid integer overflow.
0065d054 16587 Add a FIXME comment where memory seems to be over-allocated.
726e0ab1
PE
16588
16589 * character.c (Fstring): Check for size-calculation overflow.
16590
16591 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
16592 unnecessary integer overflow. Check for size overflow.
16593 (encode_coding_object): Don't update size until xmalloc succeeds.
16594
16595 * composite.c (get_composition_id): Check for overflow in glyph
16596 length calculations.
16597
16598 Integer and memory overflow fixes for display code.
16599 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
16600 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
16601 (scrolling_window): Check for overflow in size calculations.
16602 (line_draw_cost, realloc_glyph_pool, add_row_entry):
16603 Don't assume glyph table len fits in int.
16604 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
16605 (row_table_size): Now ptrdiff_t, not int.
16606 (scrolling_window): Avoid overflow in size calculations.
16607 Don't update size until allocation succeeds.
16608 * fns.c (concat): Check for overflow in size calculations.
16609 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
16610 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
16611 (NEXT_ALMOST_PRIME_LIMIT): New constant.
16612
16613 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
16614 (get_doc_string): Check for size calculation overflow.
16615 Don't update size until allocation succeeds.
16616 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
16617 EMACS_INT, where ptrdiff_t will do.
16618 (Fsubstitute_command_keys): Check for string overflow.
16619
16620 * editfns.c (set_time_zone_rule): Don't assume environment length
16621 fits in int.
16622 (message_length): Now ptrdiff_t, not int.
16623 (Fmessage_box): Don't update size until allocation succeeds.
16624 Don't assume message length fits in int.
16625 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
16626
0065d054
PE
16627 * emacs.c (main): Do not reallocate argv, since there is a null at
16628 the end that can be overwritten, and this way there's no need to
16629 worry about size-calculation overflow.
16630 (sort_args): Check for size-calculation overflow.
726e0ab1
PE
16631
16632 * eval.c (init_eval_once, grow_specpdl): Don't update size until
16633 alloc succeeds.
16634 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
16635
16636 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
16637 (x_set_scroll_bar_width, x_figure_window_size):
16638 Check for integer overflow.
16639 (x_set_alpha): Do not assume XINT fits in int.
16640
16641 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
16642 This is for the members text_lines, text_cols, total_lines, total_cols,
16643 where the system imposes an 'int' limit.
16644
16645 * fringe.c (Fdefine_fringe_bitmap):
16646 Don't update size until alloc works.
16647
16648 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
16649 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
16650
16651 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
16652 Check for size-calculation overflow.
16653 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
16654 do, as we prefer signed integers.
16655 (id_to_widget.max_size, id_to_widget.used)
16656 (xg_store_widget_in_map, xg_remove_widget_from_map)
16657 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
16658 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
16659 Use and return ptrdiff_t, not int.
16660 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
16661 * gtkutil.h: Change prototypes to match the above.
16662
16663 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
16664 are duplicate now that they've been promoted to lisp.h.
16665 (x_allocate_bitmap_record, x_alloc_image_color)
16666 (make_image_cache, cache_image, xpm_load):
16667 Don't update size until alloc is done.
16668 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
16669 (x_detect_edges):
3256efce 16670 Check for size calculation overflow.
726e0ab1
PE
16671 (ct_colors_allocated_max): New constant.
16672 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
16673 overflow.
3256efce 16674
726e0ab1
PE
16675 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
16676 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
16677 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
16678 Use ptrdiff_t, not int, to count maps.
16679 (read_char_minibuf_menu_prompt): Check for overflow in size
a66cfb1c
SM
16680 calculations. Don't update size until allocation succeeds.
16681 Redo calculations to avoid overflow.
726e0ab1
PE
16682 * keyboard.h: Change prototypes to match the above.
16683
16684 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
16685 to count maps.
16686 (current_minor_maps): Check for size calculation overflow.
16687 * keymap.h: Change prototypes to match the above.
16688
16689 * lread.c (read1, init_obarray): Don't update size until alloc done.
16690
16691 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
16692 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
16693
726e0ab1
PE
16694 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
16695 Now ptrdiff_t, not int.
16696 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
16697 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
16698
16699 * process.c (Fnetwork_interface_list): Check for overflow
16700 in size calculation.
16701
16702 * region-cache.c (move_cache_gap): Check for size calculation overflow.
16703
16704 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
16705 overflow. Don't bother calling xmalloc when xrealloc will do.
16706
16707 * search.c (Freplace_match): Check for size calculation overflow.
16708 (Fset_match_data): Don't assume list lengths fit in 'int'.
16709
16710 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
16711 for command line length. Do not attempt to address one before the
16712 beginning of an array, as that's not portable.
16713
16714 * term.c (max_frame_lines): Remove; unused.
16715 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
16716 not int.
16717 (encode_terminal_code, calculate_costs): Check for size
16718 calculation overflow.
16719 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
16720 table lengths and related sizes. Don't update size until alloc
16721 done. Redo calculations to avoid overflow.
16722 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
16723
16724 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
16725 subtracting pointers.
16726 (gobble_line): Check for overflow more carefully. Don't update size
16727 until alloc done.
16728
16729 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
16730 Don't update size until alloc done.
16731 Redo size calculations to avoid overflow.
16732 Check for size calculation overflow.
0065d054 16733 (main) [DEBUG]: Fix typo in invoking tparam1.
726e0ab1
PE
16734
16735 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
16736 Use ptrdiff_t, not int, for sizes.
16737 (store_mode_line_noprop_char): Don't update size until alloc done.
16738
0065d054
PE
16739 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
16740 Use ptrdiff_t, not int, for sizes.
16741 (Finternal_make_lisp_face, cache_face):
16742 Check for size calculation overflow.
16743 (cache_face): Treat size calculation overflows as if they were
16744 memory exhaustion (the usual treatment), rather than aborting.
726e0ab1
PE
16745
16746 * xfns.c (x_encode_text, x_set_name_internal)
16747 (Fx_change_window_property): Use ptrdiff_t, not int, to count
16748 sizes, since they can exceed INT_MAX in size. Check for size
16749 calculation overflow.
16750
0065d054
PE
16751 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
16752 (xg_select): Check for size calculation overflow.
726e0ab1
PE
16753 Don't update size until alloc done.
16754
0065d054 16755 * xrdb.c (get_environ_db): Don't assume path length fits in int,
726e0ab1 16756 as sprintf is limited to int lengths.
1d526e2f 16757
252c5ee1
PE
16758 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
16759 (X_LONG_MIN): New macros.
864d7ce7
PE
16760 Use them to make the following changes clearer.
16761 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
16762 This change doesn't affect the value now, but it may help remind
16763 future maintainers not to raise the value too much later.
16764 (SELECTION_QUANTUM): Remove, replacing with ...
16765 (selection_quantum): ... new function, which avoids overflow.
16766 All uses changed.
16767 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
16768 assumption that selection length fits in 'int'.
16769 (x_reply_selection_request, x_handle_selection_request)
16770 (x_get_window_property, receive_incremental_selection)
16771 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
16772 (lisp_data_to_selection_data, clean_local_selection_data):
16773 Use ptrdiff_t, not int, to record length of selection.
16774 (x_reply_selection_request, x_get_window_property)
16775 (receive_incremental_selection, x_property_data_to_lisp):
16776 Redo calculations to avoid overflow.
16777 (x_reply_selection_request): When sending hint, ceiling it at
252c5ee1 16778 X_LONG_MAX rather than relying on wraparound overflow to send
864d7ce7
PE
16779 something.
16780 (x_get_window_property, receive_incremental_selection)
16781 (lisp_data_to_selection_data, x_property_data_to_lisp):
16782 Check for size-calculation overflow.
16783 (x_get_window_property, receive_incremental_selection)
16784 (lisp_data_to_selection_data, Fx_register_dnd_atom):
16785 Don't store size until memory allocation succeeds.
16786 (x_get_window_property): Plug memory leak on memory exhaustion.
16787 Don't double-block input; malloc is safe here. Don't assume 2**34
16788 - 4 fits in unsigned long. Add an xassert to check
16789 XGetWindowProperty overflow. Be more careful about overflow
16790 calculations, and distinguish size from memory overflow better.
16791 (receive_incremental_selection): When tracing, don't assume
16792 unsigned int is less than INT_MAX.
16793 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
16794 harmful) conversions of unsigned short to int.
16795 (lisp_data_to_selection_data): Don't assume that integers
16796 in the range -65535 through -1 fit in an X unsigned short.
16797 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
16798 result parameters unless successful. Rely on cons_to_unsigned
16799 to report problems with elements; the old code wasn't right anyway.
16800 (x_check_property_data): Check for int overflow; we cannot use
16801 a wider type due to X limits.
16802 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
16803
726e0ab1 16804 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
34db673b 16805
0065d054
PE
16806 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
16807 (x_term_init): Check for size calculation overflow.
726e0ab1
PE
16808 (x_color_cells): Don't store size until memory allocation succeeds.
16809 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
0065d054 16810 Don't assume alloca size is less than MAX_ALLOCA.
726e0ab1
PE
16811 (x_term_init): Don't assume length fits in int (sprintf is limited
16812 to int size).
bc18e09d 16813
ebfa62c0
PE
16814 Use ptrdiff_t for composition IDs.
16815 * character.c (lisp_string_width):
16816 * composite.c (composition_table_size, n_compositions)
16817 (get_composition_id, composition_gstring_from_id):
16818 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
16819 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
16820 * window.c (Frecenter):
16821 Use ptrdiff_t, not int, for composition IDs.
16822 * composite.c (get_composition_id): Check for integer overflow.
16823 * composite.h: Adjust prototypes to match the above changes.
16824
d3411f89
PE
16825 Use ptrdiff_t for hash table indexes.
16826 * category.c (hash_get_category_set):
16827 * ccl.c (ccl_driver):
16828 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
16829 * coding.c (coding_system_charset_list, detect_coding_system):
16830 * coding.h (struct coding_system.id):
16831 * composite.c (get_composition_id, gstring_lookup_cache):
16832 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
16833 * image.c (xpm_get_color_table_h):
16834 * lisp.h (hash_lookup, hash_put):
16835 * minibuf.c (Ftest_completion):
16836 Use ptrdiff_t for hash table indexes, not int (which is too
16837 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
16838 32-bit --with-wide-int hosts).
16839
e097a6fa
PE
16840 * charset.c (Fdefine_charset_internal): Check for integer overflow.
16841 Add a FIXME comment about memory leaks.
16842 (syms_of_charset): Don't assume xmalloc returns.
16843
5637687f
PE
16844 Don't assume that stated character widths fit in int.
16845 * character.c (Fchar_width, c_string_width, lisp_string_width):
16846 * character.h (CHAR_WIDTH):
16847 * indent.c (MULTIBYTE_BYTES_WIDTH):
16848 Use sanitize_char_width to avoid undefined and/or bad behavior
16849 with outlandish widths.
a66cfb1c 16850 * character.h (sanitize_tab_width): Rename from sanitize_width,
5637687f
PE
16851 now that we have two such functions. All uses changed.
16852 (sanitize_char_width): New inline function.
16853
a2271ba2
PE
16854 Don't assume that tab-width fits in int.
16855 * character.h (sanitize_width): New inline function.
16856 (SANE_TAB_WIDTH): New macro.
16857 (ASCII_CHAR_WIDTH): Use it.
16858 * indent.c (sane_tab_width): Remove. All uses replaced by
16859 SANE_TAB_WIDTH (current_buffer).
16860 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
16861
18c52557
PE
16862 * fileio.c: Integer overflow issues with file modes.
16863 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
16864
caeeedc1
PE
16865 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
16866 Remove unreachable code.
16867 (read_hex, load_charset_map_from_file): Check for integer overflow.
16868
6df6ae42 16869 * xterm.c: Don't go over XClientMessageEvent limit.
50849c52
PE
16870 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
16871 (x_send_scroll_bar_event): Likewise. Check that the size does not
16872 exceed limits imposed by XClientMessageEvent, as well as the usual
16873 ptrdiff_t and size_t limits.
16874
b13995db
PE
16875 * keyboard.c: Overflow, signedness and related fixes.
16876 (make_lispy_movement): Use same integer type in forward decl
16877 that is used in the definition.
16878 (read_key_sequence, keyremap_step):
16879 Change bufsize argument back to int, undoing my 2011-03-30 change.
16880 We prefer signed types, and int is wide enough here.
16881 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
16882 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
16883 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
16884 length, not size_t. Use ptrdiff_t for index, not int.
16885 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
16886 possibility of integer overflow.
16887
13464394
PE
16888 Overflow, signedness and related fixes for images.
16889
16890 * dispextern.h (struct it.stack[0].u.image.image_id)
16891 (struct_it.image_id, struct image.id, struct image_cache.size)
16892 (struct image_cache.used, struct image_cache.ref_count):
16893 * gtkutil.c (update_frame_tool_bar):
16894 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
16895 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
16896 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
16897 * nsmenu.m (update_frame_tool_bar):
16898 * xdisp.c (calc_pixel_width_or_height):
16899 * xfns.c (image_cache_refcount):
16900 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
16901 on typical 64-bit hosts.
16902
16903 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
16904 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
16905 Omit unnecessary casts to int.
16906 (parse_image_spec): Check that integers fall into 'int' range
16907 when the callers expect that.
16908 (image_ascent): Redo ascent calculation to avoid int overflow.
16909 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
16910 (lookup_image): Remove unnecessary tests.
16911 (xbm_image_p): Locals are now of int, not EMACS_INT,
16912 since parse_image_check makes sure they fit into int.
16913 (png_load, gif_load, svg_load_image):
16914 Prefer int to unsigned where either will do.
16915 (tiff_handler): New function, combining the cores of the
a66cfb1c
SM
16916 old tiff_error_handler and tiff_warning_handler.
16917 This function is rewritten to use vsnprintf and thereby avoid
13464394
PE
16918 stack buffer overflows. It uses only the features of vsnprintf
16919 that are common to both POSIX and native Microsoft.
16920 (tiff_error_handler, tiff_warning_handler): Use it.
16921 (tiff_load, gif_load, imagemagick_load_image):
16922 Don't assume :index value fits in 'int'.
16923 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
16924 (imagemagick_load_image): Check that crop parameters fit into
16925 the integer types that MagickCropImage accepts. Don't assume
16926 Vimagemagick_render_type has a nonnegative value. Don't assume
16927 size_t fits in 'long'.
16928 (gs_load): Use printmax_t to print the widest integers possible.
16929 Check for integer overflow when computing image height and width.
16930
c11821d4
EZ
169312011-08-26 Eli Zaretskii <eliz@gnu.org>
16932
16933 * xdisp.c (redisplay_window): Don't force window start if point
16934 will be invisible in the resulting window. (Bug#9324)
16935
0c95fcf7
EZ
169362011-08-25 Eli Zaretskii <eliz@gnu.org>
16937
16938 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
16939 the display spec is of the form `(space ...)'.
16940 (handle_display_spec): Return the value returned by
16941 handle_single_display_spec, not just 1 or zero.
16942 (handle_single_display_spec): If the display spec is of the form
16943 `(space ...)', and specifies display in the text area, return 2
16944 rather than 1.
fee65a97 16945 (try_cursor_movement): Check for the need to scroll more
a66cfb1c
SM
16946 accurately, and prefer exact match for point under bidi.
16947 Don't advance `row' beyond the last row of the window.
0c95fcf7
EZ
16948
16949 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
16950 into disp_prop; all users changed.
16951
16952 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
16953 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
16954 for the text covered by the display property.
16955
e4ed06f1
CY
169562011-08-25 Chong Yidong <cyd@stupidchicken.com>
16957
16958 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
16959 Change return value to nil.
16960 (Frecord_buffer): Delete unused function.
16961
f67cdd7f
EZ
169622011-08-24 Eli Zaretskii <eliz@gnu.org>
16963
5980d4c6
EZ
16964 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
16965 buffers, return left-to-right.
8610fe8b
EZ
16966 (set_cursor_from_row): Consider candidate row a win if its glyph
16967 represents a newline and point is on that newline. Fixes cursor
16968 positioning on the newline at EOL of R2L text within L2R
16969 paragraph, and vice versa.
16970 (try_cursor_movement): Check continued rows, in addition to
16971 continuation rows. Fixes unwarranted scroll when point enters a
16972 continued line of R2L text within an L2R paragraph, or vice versa.
16973 (cursor_row_p): Consider the case of point being equal to
16974 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
16975 from the end of a short line to the beginning of a continued line
16976 of R2L text within L2R paragraph.
16977 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
16978 composed characters.
5980d4c6 16979
f67cdd7f
EZ
16980 * bidi.c (bidi_check_type): Use xassert.
16981 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
16982 members.
16983
bca633fb
EZ
169842011-08-23 Eli Zaretskii <eliz@gnu.org>
16985
16986 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
16987 a character.
16988
4a5885a7
CY
169892011-08-23 Chong Yidong <cyd@stupidchicken.com>
16990
16991 * nsfont.m (ns_otf_to_script): Fix typo.
16992
0902a04e
KH
169932011-08-22 Kenichi Handa <handa@m17n.org>
16994
16995 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
16996 extra slot even if the purpose is char-code-property-table.
16997
1a2e6670
EZ
169982011-08-23 Eli Zaretskii <eliz@gnu.org>
16999
8ddde651
EZ
17000 * xdisp.c (redisplay_window): When computing centering_position,
17001 account for the height of the header line. (Bug#8874)
17002
425cc014
EZ
17003 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
17004 instead of CHAR_TO_BYTE. Fixes a crash when a completion
17005 candidate is selected by the mouse, and that candidate has a
17006 composed character under the mouse.
17007
1a2e6670
EZ
17008 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
17009 coordinates reported by pos-visible-in-window-p for a composed
17010 character in column zero.
17011
8b76d6f8
SM
170122011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
17013
17014 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
17015
dac347dd
EZ
170162011-08-22 Eli Zaretskii <eliz@gnu.org>
17017
17018 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
17019 consider it a hit if to_charpos is anywhere in the range of the
17020 composed buffer positions.
17021
e013fb34
CY
170222011-08-22 Chong Yidong <cyd@stupidchicken.com>
17023
17024 * image.c (gif_load): Don't assume that each subimage has the same
17025 dimensions as the base image. Handle disposal method that is
17026 "undefined" by the gif spec (Bug#9335).
17027
bd1ba3e8
CY
170282011-08-20 Chong Yidong <cyd@stupidchicken.com>
17029
17030 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
024a2d76 17031 (Fcondition_case): Document `debug' symbol in error handler.
bd1ba3e8 17032
54a1215b
EZ
170332011-08-19 Eli Zaretskii <eliz@gnu.org>
17034
823564e5
EZ
17035 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
17036 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
17037 from an Org mode buffer to a Speedbar frame.
17038
54a1215b
EZ
17039 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
17040 a composition, take its buffer position from IT->cmp_it.charpos.
17041 Fixes cursor positioning at the beginning of a line that begins
17042 with a composed character.
17043
9778ebcc
EZ
170442011-08-18 Eli Zaretskii <eliz@gnu.org>
17045
0be6ee06
EZ
17046 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
17047 character bidirectional type, use STRONG_L instead. Fixes crashes
17048 in a buffer produced by `describe-categories'.
17049
9778ebcc
EZ
17050 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
17051 members before the level stack, so they would be saved and
17052 restored when copying iterator state. Fixes incorrect reordering
17053 around TABs covered by display properties.
17054
156bffbe
AS
170552011-08-18 Andreas Schwab <schwab@linux-m68k.org>
17056
6b02f655 17057 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
156bffbe 17058
72ad093b
CY
170592011-08-17 Chong Yidong <cyd@stupidchicken.com>
17060
17061 * eval.c (internal_condition_case, internal_condition_case_1)
8b76d6f8
SM
17062 (internal_condition_case_2, internal_condition_case_n):
17063 Remove unnecessary aborts (Bug#9081).
72ad093b 17064
35774242
EZ
170652011-08-17 Eli Zaretskii <eliz@gnu.org>
17066
17067 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
17068 has no `load' handler, try opening the file locally. (Bug#9311)
17069
db76dd85
KB
170702011-08-16 Ken Brown <kbrown@cornell.edu>
17071
17072 * gmalloc.c: Expand comment.
17073
b215eee5
EZ
170742011-08-16 Eli Zaretskii <eliz@gnu.org>
17075
17076 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
17077 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
17078
a4579d33
KB
170792011-08-16 Ken Brown <kbrown@cornell.edu>
17080
17081 Fix memory allocation problems in Cygwin build (Bug#9273).
17082
17083 * unexcw.c ( __malloc_initialized): Declare external variable.
17084 (fixup_executable): Force the dumped emacs to reinitialize malloc.
17085
8b76d6f8
SM
17086 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
17087 New variables.
a4579d33
KB
17088 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
17089 dumped emacs.
17090 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
17091 in the static heap.
17092 [CYGWIN] (special_realloc): New function.
17093 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
17094 requests to realloc storage in the static heap.
17095
3ebec551
PE
170962011-08-15 Paul Eggert <eggert@cs.ucla.edu>
17097
17098 * bidi.c (bidi_initialize): Remove unused local.
17099
9fd8be00
EZ
171002011-08-15 Eli Zaretskii <eliz@gnu.org>
17101
6b02f655
SM
17102 * bidimirror.h:
17103 * biditype.h: Remove file.
17104 * makefile.w32-in ($(BLD)/bidi.$(O)):
17105 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
474a8465
EZ
17106
17107 * dispextern.h: Fix a typo in the comment to bidi_type_t.
17108
17109 * chartab.c: Improve commentary for the uniprop_table API.
17110
32413314
EZ
17111 * bidi.c (bidi_paragraph_init): Support zero value of
17112 bidi_ignore_explicit_marks_for_paragraph_level.
474a8465
EZ
17113 (bidi_initialize): Use uniprop_table instead of including
17114 biditype.h and bidimirror.h.
32413314 17115
9fd8be00
EZ
17116 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
17117 coordinates of the iterator when restoring from ppos_it.
17118 (Bug#9296)
17119
5cf2b69b
KH
171202011-08-14 Kenichi Handa <handa@m17n.org>
17121
17122 * process.c (create_process): Call setup_process_coding_systems
72ad093b 17123 after the pid of the process is set to -1 (Bug#8162).
5cf2b69b 17124
daf17d00
EZ
171252011-08-14 Eli Zaretskii <eliz@gnu.org>
17126
17127 * xdisp.c (move_it_in_display_line_to): Don't invoke
17128 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
17129 ppos_it. Fixes vertical cursor motion when line beginning is
17130 covered by an image. (Bug#9296)
17131
08e3161a
JD
171322011-08-14 Jan Djärv <jan.h.d@swipnet.se>
17133
17134 * nsterm.h (ns_run_ascript): Declare.
17135 (NSAPP_DATA2_RUNASSCRIPT): Define.
17136
17137 * nsfns.m (as_script, as_result, as_status): New static variables.
17138 (ns_run_ascript): New function.
5e617bc2 17139 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
08e3161a
JD
17140 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
17141 the event loop. Get status from as_status (Bug#7276).
17142
17143 * nsterm.m (sendEvent): If event is NSApplicationDefined and
17144 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
17145 the event loop (Bug#7276).
17146
a3720aa2
AS
171472011-08-14 Andreas Schwab <schwab@linux-m68k.org>
17148
17149 * gnutls.c (QCgnutls_bootprop_priority)
17150 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
17151 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
17152 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
17153 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
17154 (QCgnutls_bootprop_verify_hostname_error)
17155 (QCgnutls_bootprop_callbacks_verify): Rename from
17156 Qgnutls_bootprop_..., all uses changed.
17157
17158 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
17159 uses changed.
17160
0a0d27fb
PE
171612011-08-14 Paul Eggert <eggert@cs.ucla.edu>
17162
19d5c50c
PE
17163 * xfaces.c (Qframe_set_background_mode): Now static.
17164 * dispextern.h (Qframe_set_background_mode): Remove decl.
17165
0a0d27fb
PE
17166 * process.c (Fnetwork_interface_info): Declare local only if needed.
17167
377538cb
JD
171682011-08-13 Jan Djärv <jan.h.d@swipnet.se>
17169
17170 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
17171 (Fnetwork_interface_list): Allocate in increments of bytes instead
17172 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
17173 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
17174 sockaddr.
17175 (struct ifflag_def): notrailers is smart on OSX.
17176 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
17177 Get hardware address with getifaddrs if available.
17178
08fff70c
EZ
171792011-08-12 Eli Zaretskii <eliz@gnu.org>
17180
17181 * xdisp.c (iterate_out_of_display_property): xassert that
17182 IT->position is set to within IT->object's boundaries. Break from
17183 the loop as soon as EOB is reached; avoids infloops in redisplay
8b76d6f8
SM
17184 when IT->position is set up wrongly due to some bug.
17185 Set IT->current to match the bidi iterator unconditionally.
08fff70c
EZ
17186 (push_display_prop): Allow GET_FROM_STRING as IT->method on
17187 entry. Force push_it to save on the stack the current
17188 buffer/string position, to be restored by pop_it. Fix flags in
17189 the iterator structure wrt the object coming from a display
17190 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
17191 properties. (Bug#9284)
17192
7be1c708 171932011-08-09 Andreas Schwab <schwab@linux-m68k.org>
aac0c6e3 17194
7be1c708
CY
17195 * fontset.c (fontset_get_font_group): Add proper type checks.
17196 (Bug#9172)
aac0c6e3 17197
7be1c708 171982011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
aac0c6e3 17199
7be1c708
CY
17200 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
17201 and LC_VERSION_MIN_MACOSX.
17202 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
17203 (dump_it) [LC_FUNCTION_STARTS]: Use it.
aac0c6e3 17204
97bb72a6
EZ
172052011-08-08 Eli Zaretskii <eliz@gnu.org>
17206
17207 * xdisp.c (forward_to_next_line_start): Allow to use the
8b76d6f8
SM
17208 no-display-properties-and-no-overlays under bidi display.
17209 Set disp_pos in the bidi iterator to avoid searches for display
757664a4 17210 properties and overlays.
97bb72a6 17211
d5617611
CY
172122011-08-08 Chong Yidong <cyd@stupidchicken.com>
17213
37e11a63
CY
17214 * editfns.c (Fset_time_zone_rule): Document relationship with the
17215 setenv function.
17216
d5617611
CY
17217 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
17218 the font entity extracted from the cache (Bug#8109).
17219
58872834
CY
172202011-08-07 Chong Yidong <cyd@stupidchicken.com>
17221
17222 * composite.c (autocmp_chars): Don't reset point. That is done by
17223 restore_point_unwind (Bug#5984).
17224
75bfc667
JL
172252011-08-07 Juri Linkov <juri@jurta.org>
17226
17227 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
17228 to show the arg `TIME' instead of `TIMEVAL'.
17229
d1410150
EZ
172302011-08-06 Eli Zaretskii <eliz@gnu.org>
17231
17232 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
17233 display property strides EOL and includes a newline, as in
17234 longlines-mode. (Bug#9254)
75b771e4
EZ
17235 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
17236 word-wrap under bidirectional display. (Bug#9224)
d1410150
EZ
17237
17238 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
17239 is non-zero, even if the data buffer is NULL. Fixes a crash in
17240 vertical-motion with longlines-mode. (Bug#9254)
17241
35928349
EZ
172422011-08-05 Eli Zaretskii <eliz@gnu.org>
17243
ec7cc85b
EZ
17244 * bidi.c <bidi_cache_total_alloc>: Now static.
17245 (bidi_initialize): Initialize bidi_cache_total_alloc.
17246
8b76d6f8 17247 * xdisp.c (display_line): Release buffer allocated for shelved bidi
35928349
EZ
17248 cache. (Bug#9221)
17249
17250 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
17251 amount allocated this far in `bidi_cache_total_alloc'.
17252 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
17253 non-zero, only free the data buffer without restoring the cache
17254 contents. All callers changed.
17255
17256 * dispextern.h (bidi_unshelve_cache): Update prototype.
17257
17258 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
17259 (move_it_in_display_line, move_it_to)
17260 (move_it_vertically_backward, move_it_by_lines): Replace the call
17261 to xfree to an equivalent call to bidi_unshelve_cache.
17262 (move_it_in_display_line_to): Fix logic of returning
412b6358 17263 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
35928349 17264
e2e2423b
EZ
172652011-08-05 Eli Zaretskii <eliz@gnu.org>
17266
17267 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
17268 came from a string character with a `cursor' property. (Bug#9229)
17269
ae9e757a
JD
172702011-08-04 Jan Djärv <jan.h.d@swipnet.se>
17271
17272 * Makefile.in (LIB_PTHREAD): New variable.
17273 (LIBES): Add LIB_PTHREAD (Bug#9216).
17274
17275 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
17276 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
17277
213bd7f2
AS
172782011-08-04 Andreas Schwab <schwab@linux-m68k.org>
17279
6b02f655 17280 * regex.c (re_iswctype): Remove some redundant boolean conversions.
213bd7f2 17281
99aaf75f
JD
172822011-08-04 Jan Djärv <jan.h.d@swipnet.se>
17283
17284 * xterm.c (x_find_topmost_parent): New function.
17285 (x_set_frame_alpha): Find topmost parent window with
17286 x_find_topmost_parent and set the property there also (bug#9181).
17287 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
17288
c74e9d86
PE
172892011-08-04 Paul Eggert <eggert@cs.ucla.edu>
17290
17291 * callproc.c (Fcall_process): Avoid vfork clobbering
17292 the local vars buffer, coding_systems, current_dir.
17293
640c8776
SM
172942011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
17295
17296 * keymap.c (Fmake_composed_keymap): Move to subr.el.
17297
f26d0e4c
PE
172982011-08-03 Paul Eggert <eggert@cs.ucla.edu>
17299
8a10d76c
PE
17300 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
17301 so that it is not optimized away.
17302
f26d0e4c
PE
17303 * xdisp.c (compute_display_string_pos): Remove unused local.
17304
55439c61
EZ
173052011-08-02 Eli Zaretskii <eliz@gnu.org>
17306
17307 Fix slow cursor motion and scrolling in large buffers with
17308 selective display, like Org Mode buffers. (Bug#9218)
17309
17310 * dispextern.h (struct bidi_it): New member disp_prop_p.
17311
17312 * xdisp.c: Remove one-slot cache of display string positions.
17313 (compute_display_string_pos): Accept an additional argument
5e617bc2 17314 DISP_PROP_P; callers changed. Scan at most 5K characters forward
55439c61
EZ
17315 for a display string or property. If found, set DISP_PROP_P
17316 non-zero.
17317
17318 * bidi.c (bidi_fetch_char): Accept an additional argument
640c8776
SM
17319 DISP_PROP_P, and pass it to compute_display_string_pos.
17320 Only handle text covered by a display string if DISP_PROP_P is returned
55439c61
EZ
17321 non-zero. All callers of bidi_fetch_char changed.
17322
fb33fa43
SM
173232011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
17324
17325 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
17326
b099e063
DM
173272010-12-03 Don March <don@ohspite.net>
17328
17329 * keymap.c (Fdefine_key): Fix non-prefix key error message when
17330 last character M-[char] is translated to ESC [char] (bug#7541).
17331
5cc7f7af
KH
173322011-08-02 Kenichi Handa <handa@m17n.org>
17333
d0fffa3f 17334 * lisp.h (uniprop_table): Extern it.
5cc7f7af
KH
17335
17336 * chartab.c (uniprop_table): Make it non-static.
17337
525d5e6e
EZ
173382011-08-01 Eli Zaretskii <eliz@gnu.org>
17339
17340 * xdisp.c (forward_to_next_line_start): Accept additional argument
17341 BIDI_IT_PREV, and store into it the state of the bidi iterator had
17342 on the newline.
17343 (reseat_at_next_visible_line_start): Use the bidi iterator state
17344 returned by forward_to_next_line_start to restore the state of
17345 it->bidi_it after backing up to previous newline. (Bug#9212)
17346
31011111
AS
173472011-07-30 Andreas Schwab <schwab@linux-m68k.org>
17348
17349 * regex.c (re_comp): Protoize.
17350 (re_exec): Fix return type.
17351 (regexec): Fix type of `ret'. (Bug#9203)
17352
476371c4
PE
173532011-07-28 Paul Eggert <eggert@cs.ucla.edu>
17354
e5d76069
PE
17355 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
17356 This is needed if max-image-size is a floating-point number.
17357
9a79b20c
AS
173582011-07-28 Andreas Schwab <schwab@linux-m68k.org>
17359
17360 * print.c (print_object): Print empty symbol as ##.
17361
17362 * lread.c (read1): Read ## as empty symbol.
17363
d8c2fa78
AA
173642011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
17365
17366 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
17367 setting frame foreground color (Bug#9175).
17368 (x_set_background_color): Likewise.
17369
ffe57a7a
AA
17370 * nsmenu.m (-setText): Size tooltip dimensions precisely to
17371 contents (Bug#9176).
17372 (EmacsTooltip -init): Remove bezels and add shadows to
17373 tooltip windows.
17374
bf3492a5
AA
17375 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
17376 or scroll bar (Bug#8470).
17377
d55e9c53
AA
17378 * nsfont.m (nsfont_open): Remove assignment to voffset and
17379 unnecessary vars hshink, expand, hd, full_height, min_height.
17380 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
17381
17382 * nsterm.h (nsfont_info): Remove voffset field.
17383
d8c2fa78 173842011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
4843aac3
AA
17385
17386 Implement strike-through and overline on NextStep (Bug#8863).
17387
17388 * nsfont.m (nsfont_open): Use underline position provided by font,
17389 instead of hard-coded value of 2.
17390 (nsfont_draw): Call ns_draw_text_decoration instead.
17391
17392 * nsterm.h: Add declaration for ns_draw_text_decoration.
17393
17394 * nsterm.m (ns_draw_text_decoration): New function for drawing
17395 underline, overline, and strike-through.
17396 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
17397 ns_draw_text_decoration. Change treatment of cursor drawing to
8d5ed899 17398 accommodate underlining, etc.
4843aac3 17399
4cc60b9b
EZ
174002011-07-28 Eli Zaretskii <eliz@gnu.org>
17401
bc7ece87
EZ
17402 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
17403 default.
4cc60b9b 17404
476371c4
PE
174052011-07-28 Paul Eggert <eggert@cs.ucla.edu>
17406
66606eea
PE
17407 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
17408 Without this fix, if a signal arrives just after memory fills up,
17409 'malloc' might be invoked reentrantly.
17410
476371c4
PE
17411 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
17412 In other words, assume that every image size is allowed, on non-X
17413 hosts. This assumption is probably wrong, but it lets Emacs compile.
17414
f3fcc40d
AS
174152011-07-28 Andreas Schwab <schwab@linux-m68k.org>
17416
17417 * regex.c (re_iswctype): Convert return values to boolean.
17418
350c992f
EZ
174192011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
17420
17421 * xdisp.c (compute_display_string_pos): Don't use cached display
17422 string position if the buffer had its restriction changed.
17423 (Bug#9184)
17424
5266b4bb
PE
174252011-07-28 Paul Eggert <eggert@cs.ucla.edu>
17426
17427 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
17428
2573a837 174292011-07-28 Paul Eggert <eggert@cs.ucla.edu>
ca4aa935 17430
41f55ccd 17431 Integer signedness and overflow and related fixes. (Bug#9079)
cf950e6b 17432
39e378da
PE
17433 * bidi.c: Integer size and overflow fixes.
17434 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
17435 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
17436 (bidi_cache_find_level_change, bidi_cache_ensure_space)
17437 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
17438 (bidi_find_other_level_edge):
17439 Use ptrdiff_t instead of EMACS_INT where either will do.
17440 This works better on 32-bit hosts configured --with-wide-int.
17441 (bidi_cache_ensure_space): Check for size-calculation overflow.
17442 Use % rather than repeated addition, for better worst-case speed.
17443 Don't set bidi_cache_size until after xrealloc returns, because it
17444 might not return.
17445 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
f0eb61e9
PE
17446 (bidi_cache_ensure_space): Also check that the bidi cache size
17447 does not exceed that of the largest Lisp string or buffer. See Eli
17448 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
39e378da 17449
5e927815
PE
17450 * alloc.c (__malloc_size_t): Remove.
17451 All uses replaced by size_t. See Andreas Schwab's note
17452 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
17453
ca4aa935
PE
17454 * image.c: Improve checking for integer overflow.
17455 (check_image_size): Assume that f is nonnull, since
17456 it is always nonnull in practice. This is one less thing to
17457 worry about when checking for integer overflow later.
17458 (x_check_image_size): New function, which checks for integer
17459 overflow issues inside X.
17460 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
17461 This removes the need for a memory_full check.
17462 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
17463 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
17464 (xbm_read_bitmap_data): Change locals back to 'int', since
17465 their values must fit in 'int'.
17466 (xpm_load_image, png_load, tiff_load):
17467 Invoke x_create_x_image_and_pixmap earlier,
17468 to avoid much needless work if the image is too large.
17469 (tiff_load): Treat overly large images as if
17470 x_create_x_image_and_pixmap failed, not as malloc failures.
17471 (gs_load): Use x_check_image_size.
17472
5f8f9cc2
PE
17473 * gtkutil.c: Omit integer casts.
17474 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
17475 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
17476
5adf60bc
PE
17477 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
17478
c8907a93
PE
17479 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
17480 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
17481 would wrongly return t on a 64-bit host.
17482
e3c25c68
PE
17483 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
17484 The plain *_OVERFLOW macros run afoul of GCC bug 49705
17485 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
17486 and therefore cause GCC to emit a bogus diagnostic in some cases.
17487
3f791afe
PE
17488 * image.c: Integer signedness and overflow and related fixes.
17489 This is not an exhaustive set of fixes, but it's time to
17490 record what I've got.
17491 (lookup_pixel_color, check_image_size): Remove redundant decls.
17492 (check_image_size): Don't assume that arbitrary EMACS_INT values
17493 fit in 'int', or that arbitrary 'double' values fit in 'int'.
17494 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
17495 (tiff_load, imagemagick_load_image):
17496 Check for overflow in size calculations.
17497 (x_create_x_image_and_pixmap): Remove unnecessary test for
17498 xmalloc returning NULL; that can't happen.
17499 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
17500 (xpm_color_bucket): Use better integer hashing function.
17501 (xpm_cache_color): Don't possibly over-allocate memory.
17502 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
17503 (gif_memory_source):
17504 Use ptrdiff_t, not int or size_t, to record sizes.
17505 (png_load): Don't assume values greater than 2**31 fit in 'int'.
17506 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
17507 either works, as we prefer signed integers.
17508 (tiff_read_from_memory, tiff_write_from_memory):
17509 Return tsize_t, not size_t, since that's what the TIFF API wants.
17510 (tiff_read_from_memory): Don't fail simply because the read would
17511 go past EOF; instead, return a short read.
17512 (tiff_load): Omit no-longer-needed casts.
17513 (Fimagemagick_types): Don't assume size fits into 'int'.
17514
3cc5a532
PE
17515 Improve hashing quality when configured --with-wide-int.
17516 * fns.c (hash_string): New function, taken from sxhash_string.
17517 Do not discard information about ASCII character case; this
17518 discarding is no longer needed.
17519 (sxhash-string): Use it. Change sig to match it. Caller changed.
17520 * lisp.h: Declare it.
17521 * lread.c (hash_string): Remove, since we now use fns.c's version.
17522 The fns.c version returns a wider integer if --with-wide-int is
17523 specified, so this should help the quality of the hashing a bit.
17524
b312a492
PE
17525 * emacs.c: Integer overflow minor fix.
17526 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
17527 Define only if GNU_LINUX.
17528 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
17529
dfd153ae
PE
17530 * dispnew.c: Integer signedness and overflow fixes.
17531 Remove unnecessary forward decls, that were a maintenance hassle.
17532 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
17533 All uses changed.
17534 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
17535 (scrolling_window): Use ptrdiff_t, not int, for byte count.
17536 (prepare_desired_row, line_draw_cost):
17537 Use int, not unsigned, where either works.
17538 (save_current_matrix, restore_current_matrix):
17539 Use ptrdiff_t, not size_t, where either works.
17540 (init_display): Check for overflow more accurately, and without
17541 relying on undefined behavior.
17542
a81d11a3
PE
17543 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
17544 Remove, replacing with the new symbols in lisp.h. All uses changed.
17545 * fileio.c (make_temp_name):
17546 * filelock.c (lock_file_1, lock_file):
17547 * xdisp.c (message_dolog):
17548 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
17549 Use pMd etc. instead.
17550 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
17551 replacing the pWIDE etc. symbols removed from editfns.c.
17552
3300e6fd
PE
17553 * keyboard.h (num_input_events): Now uintmax_t.
17554 This is (very slightly) less likely to mess up due to wraparound.
17555 All uses changed.
17556
fd05c7e9
PE
17557 * buffer.c: Integer signedness fixes.
17558 (alloc_buffer_text, enlarge_buffer_text):
17559 Use ptrdiff_t rather than size_t when either will do, as we prefer
17560 signed integers.
17561
903fe15d
PE
17562 * alloc.c: Integer signedness and overflow fixes.
17563 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
17564 (__malloc_size_t): Default to size_t, not to int.
17565 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
17566 (Fgarbage_collect, mark_object_loop_halt, mark_object):
17567 Prefer ptrdiff_t to size_t when either would do, as we prefer
17568 signed integers.
17569 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
17570 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
17571 Now const. Initialize with values that are in range even if char
17572 is signed.
17573 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
17574 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
17575 These functions do the right thing with sizes > 2**32.
17576 (check_depth): Now ptrdiff_t, not int.
17577 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
17578 Adjust to new way of storing sizes. Check for size overflow bugs
17579 in rest of code.
17580 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
17581 slightly wrong anyway, as it missed one instance of
17582 XMALLOC_OVERRUN_CHECK_OVERHEAD.
17583 (refill_memory_reserve): Omit needless cast to size_t.
17584 (mark_object_loop_halt): Mark as externally visible.
17585
ac82cc6a
PE
17586 * xselect.c: Integer signedness and overflow fixes.
17587 (Fx_register_dnd_atom, x_handle_dnd_message):
17588 Use ptrdiff_t, not size_t, since we prefer signed.
17589 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
17590 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
17591 x_dnd_atoms_size and x_dnd_atoms_length.
17592
c2d1e36d
PE
17593 * doprnt.c: Prefer signed to unsigned when either works.
17594 * eval.c (verror):
17595 * doprnt.c (doprnt):
17596 * lisp.h (doprnt):
17597 * xdisp.c (vmessage):
17598 Use ptrdiff_t, not size_t, when using or implementing doprnt,
17599 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
17600 prefer signed arithmetic to avoid comparison confusion.
17601 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
17602 but is a bit tricky.
17603
0e926e56
PE
17604 Assume freestanding C89 headers, string.h, stdlib.h.
17605 * data.c, doprnt.c, floatfns.c, print.c:
17606 Include float.h unconditionally.
17607 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
17608 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
17609 * regex.c: Likewise for stddef.h, string.h.
17610 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
17611 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
17612 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
17613 (STDC_HEADERS): Remove obsolete defines.
17614 * sysdep.c: Include limits.h unconditionally.
17615
9cfdb3ec
PE
17616 Assume support for memcmp, memcpy, memmove, memset.
17617 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
17618 * regex.c (memcmp, memcpy):
17619 Remove; we assume C89 now.
17620
17621 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
17622 (__malloc_safe_bcopy): Remove; no longer needed.
17623
cf950e6b 17624 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
6089c567
PE
17625 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
17626 well either way, and we prefer signed to unsigned.
17627
dbf38e02
LMI
176282011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
17629
17630 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
17631 closes the connection while we're reading (bug#9182).
17632
d6f0886c 176332011-07-25 Jan Djärv <jan.h.d@swipnet.se>
24e0f6b1 17634
d6f0886c
JD
17635 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
17636 are specified (Bug#9168).
24e0f6b1 17637
2eb1f9e6
PE
176382011-07-25 Paul Eggert <eggert@cs.ucla.edu>
17639
17640 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
17641 Found by GCC static checking and --with-wide-int on a 32-bit host.
17642
22381272 176432011-07-25 Eli Zaretskii <eliz@gnu.org>
7daee910
EZ
17644
17645 * xdisp.c (compute_display_string_pos): Fix logic of caching
17646 previous display string position. Initialize cached_prev_pos to
17647 -1. Fixes slow-down at the beginning of a buffer.
17648
f25e39b4
EZ
176492011-07-24 Eli Zaretskii <eliz@gnu.org>
17650
17651 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
17652 for attrs[LFACE_FONTSET_INDEX].
17653
04c4b52e
PE
176542011-07-23 Paul Eggert <eggert@cs.ucla.edu>
17655
17656 * xml.c (parse_region): Remove unused local
17657 that was recently introduced.
17658
c1734fbd
EZ
176592011-07-23 Eli Zaretskii <eliz@gnu.org>
17660
be18c5a5
EZ
17661 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
17662 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
17663
c1734fbd
EZ
17664 * xdisp.c (move_it_in_display_line_to): Record the best matching
17665 position for TO_CHARPOS while scanning the line, and restore it on
640c8776
SM
17666 exit if none of the characters scanned was an exact match.
17667 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
a9269c18
EZ
17668 when exact match is impossible due to invisible text, and the
17669 lines are truncated.
17670
a258d627
JD
176712011-07-23 Jan Djärv <jan.h.d@swipnet.se>
17672
17673 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
17674 for OSX >= 10.7.
17675
b6d5a689
EZ
176762011-07-22 Eli Zaretskii <eliz@gnu.org>
17677
0f74f785
EZ
17678 Fix a significant slow-down of cursor motion with C-n, C-p,
17679 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
17680 auto-repeat under bidi redisplay in fontified buffers.
b6d5a689 17681 * xdisp.c (compute_stop_pos_backwards): New function.
b6d5a689
EZ
17682 (next_element_from_buffer): Call compute_stop_pos_backwards to
17683 find a suitable prev_stop when we find ourselves before
0f74f785
EZ
17684 base_level_stop.
17685 (reseat): Don't look for prev_stop, as that could mean a very long
17686 run.
17687 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
17688 <cached_disp_overlay_modiff>: Cache for last found display string
17689 position.
551918c1 17690 (compute_display_string_pos): Return the cached position if asked
0f74f785
EZ
17691 about the same buffer in the same area of character positions, and
17692 the buffer wasn't changed since the time the display string
17693 position was cached.
551918c1 17694
b2d0c91a
EZ
176952011-07-22 Eli Zaretskii <eliz@gnu.org>
17696
17697 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
17698 is an integer, which is important for empty lines. (Bug#9149)
17699
043604ee
CY
177002011-07-22 Chong Yidong <cyd@stupidchicken.com>
17701
17702 * frame.c (Fmodify_frame_parameters): In tty case, update the
17703 default face if necessary (Bug#4238).
17704
da4adb04
CY
177052011-07-21 Chong Yidong <cyd@stupidchicken.com>
17706
17707 * editfns.c (Fstring_to_char): No need to explain what a character
17708 is in the docstring (Bug#6576).
17709
9abd0532
LMI
177102011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
17711
17712 * xml.c (parse_region): Make sure we always return a tree.
17713
36881d16
HK
177142011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
17715
17716 * xml.c (parse_region): If a document contains only comments,
17717 return that, too.
17718
1e98674d
LMI
177192011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
17720
17721 * xml.c (make_dom): Return comments, too.
17722
590bd467
PE
177232011-07-19 Paul Eggert <eggert@cs.ucla.edu>
17724
17725 Port to OpenBSD.
17726 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
17727 and the surrounding thread.
17728 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
17729 rather than fgets, and retry after EINTR. Otherwise, 'emacs
17730 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
17731 timer goes off.
17732 * s/openbsd.h (BROKEN_SIGIO): Define.
17733 * unexelf.c (unexec) [__OpenBSD__]:
17734 Don't update the .mdebug section of the Alpha COFF symbol table.
17735
f41628b2
LMI
177362011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
17737
17738 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
17739 (bug#8460).
17740
b59b67c5
PE
177412011-07-18 Paul Eggert <eggert@cs.ucla.edu>
17742
15e3a074
PE
17743 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
17744 This fixes some race conditions on the permissions of any newly
17745 created file.
17746
41bed37d
PE
17747 * alloc.c (valid_pointer_p): Use pipe, not open.
17748 This fixes some permissions issues when debugging.
17749
b59b67c5
PE
17750 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
17751 If fchown fails to set both uid and gid, try to set just gid,
17752 as that is sometimes allowed. Adjust the file's mode to eliminate
17753 setuid or setgid bits that are inappropriate if fchown fails.
17754
925a6be7
SM
177552011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
17756
17757 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
17758 to compare Lisp_Objects.
17759 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
17760 global_gnutls_log_level, don't mistake it for a Lisp_Object.
17761 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
17762
52968808
AS
177632011-07-17 Andreas Schwab <schwab@linux-m68k.org>
17764
0a6a104b
AS
17765 * lread.c (read_integer): Unread even EOF character.
17766 (read1): Likewise. Properly record start position of symbol.
17767
52968808
AS
17768 * lread.c (read1): Read `#:' as empty uninterned symbol if no
17769 symbol character follows.
17770
9e381cdd
PE
177712011-07-17 Paul Eggert <eggert@cs.ucla.edu>
17772
17773 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
17774 This works around a problem with the previous change to Fcopy_file.
17775 Recent glibc declares fchown with __attribute__((warn_unused_result)),
17776 and without this change, GCC might complain about discarding
17777 fchown's return value.
17778
b5641435
JB
177792011-07-16 Juanma Barranquero <lekktu@gmail.com>
17780
17781 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
17782
a8031457
PE
177832011-07-16 Paul Eggert <eggert@cs.ucla.edu>
17784
17785 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
17786
dd889327
LMI
177872011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
17788
750c33f7
LMI
17789 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
17790 it's used from the C level.
17791
dd889327
LMI
17792 * process.c: Use the same condition for POLL_FOR_INPUT in both
17793 keyboard.c and process.c (bug#1858).
17794
87e86684
LM
177952011-07-09 Lawrence Mitchell <wence@gmx.li>
17796
17797 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
17798 (Fgnutls_boot): Use it.
17799
64348f40
AS
178002011-07-15 Andreas Schwab <schwab@linux-m68k.org>
17801
17802 * doc.c (Fsubstitute_command_keys): Revert last change.
17803
1d698799
LMI
178042011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
17805
f863868c
LMI
17806 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
17807 quotes the next character, and doesn't affect other longer
17808 sequences (bug#8935).
17809
1d698799
LMI
17810 * lread.c (syms_of_lread): Clarify that is isn't only
17811 `eval-buffer' and `eval-defun' that's affected by
17812 `lexical-binding' (bug#8460).
17813
aa4b6df6
EZ
178142011-07-15 Eli Zaretskii <eliz@gnu.org>
17815
17816 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
6b02f655 17817 bidi redisplay when a line includes both an image and is truncated.
aa4b6df6 17818
5d856da6
PE
178192011-07-14 Paul Eggert <eggert@cs.ucla.edu>
17820
ad6042bb
PE
17821 Fix minor problems found by static checking.
17822 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
17823 (elsz): Now a signed constant, not a size_t var. We prefer signed
17824 types to unsigned, to avoid integer comparison confusion. Without
17825 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
17826 "cannot optimize loop, the loop counter may overflow", a symptom
17827 of the confusion.
f00bbb22 17828 * indent.c (Fvertical_motion): Mark locals as initialized.
5d856da6
PE
17829 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
17830
6468f31c
LMI
178312011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
17832
49080b10
LMI
17833 * search.c (Fre_search_backward): Mention `case-fold-search' in
17834 all the re_search_* functions (bug#8138).
17835
6468f31c
LMI
17836 * keyboard.c (Fopen_dribble_file): Document when the file is
17837 closed (bug#8056).
17838
c965adc5
EZ
178392011-07-14 Eli Zaretskii <eliz@gnu.org>
17840
df9733bf
EZ
17841 * bidi.c (bidi_dump_cached_states): Fix format of displaying
17842 bidi_cache_idx.
17843
0bb23927
EZ
17844 Support bidi reordering of display and overlay strings.
17845 * xdisp.c (compute_display_string_pos)
17846 (compute_display_string_end): Accept additional argument STRING.
17847 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
17848 (reseat_to_string): Initialize bidi_it->string.s and
17849 bidi_it->string.schars.
17850 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
640c8776
SM
17851 NULL (avoids a crash in bidi_paragraph_init).
17852 Initialize itb.string.lstring.
0bb23927
EZ
17853 (init_iterator): Call bidi_init_it only of a valid
17854 buffer position was specified. Initialize paragraph_embedding to
17855 L2R.
17856 (reseat_to_string): Initialize the bidi iterator.
17857 (display_string): If we need to ignore text properties of
17858 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
17859 original value of -1 will not work with bidi.)
17860 (compute_display_string_pos): First arg is now struct
17861 `text_pos *'; all callers changed. Support display properties on
17862 Lisp strings.
17863 (compute_display_string_end): Support display properties on Lisp
17864 strings.
17865 (init_iterator, reseat_1, reseat_to_string): Initialize the
17866 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
17867 when iterating on a string not from display properties).
640c8776
SM
17868 (compute_display_string_pos, compute_display_string_end):
17869 Fix calculation of the object to scan. Fixes an error when using
0bb23927
EZ
17870 arrow keys.
17871 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
640c8776
SM
17872 base_level_stop; instead, set base_level_stop to BEGV.
17873 Fixes crashes in vertical-motion.
0bb23927
EZ
17874 (next_element_from_buffer): Improve commentary for when
17875 the iterator is before prev_stop.
17876 (init_iterator): Initialize bidi_p from the default value of
17877 bidi-display-reordering, not from buffer-local value. Use the
17878 buffer-local value only if initializing for buffer iteration.
17879 (handle_invisible_prop): Support invisible properties on strings
17880 that are being bidi-reordered.
17881 (set_iterator_to_next): Support bidi reordering of C strings and
17882 Lisp strings.
17883 (next_element_from_string): Support bidi reordering of Lisp
17884 strings.
17885 (handle_stop_backwards): Support Lisp strings as well.
640c8776
SM
17886 (display_string): Support display of R2L glyph rows.
17887 Use IT_STRING_CHARPOS when displaying from a Lisp string.
0bb23927
EZ
17888 (init_iterator): Don't initialize it->bidi_p for strings
17889 here.
17890 (reseat_to_string): Initialize it->bidi_p for strings here.
17891 (next_element_from_string, next_element_from_c_string)
17892 (next_element_from_buffer): Add xassert's for correspondence
17893 between IT's object being iterated and it->bidi_it.string
17894 structure.
17895 (face_before_or_after_it_pos): Support bidi iteration.
17896 (next_element_from_c_string): Handle the case of the first string
17897 character that is not the first one in the visual order.
17898 (get_visually_first_element): New function, refactored from common
17899 parts of next_element_from_buffer, next_element_from_string, and
17900 next_element_from_c_string.
17901 (tool_bar_lines_needed, redisplay_tool_bar)
17902 (display_menu_bar): Force left-to-right direction. Add a FIXME
17903 comment for making that be controlled by a user option.
17904 (push_it, pop_it): Save and restore the state of the
17905 bidi iterator. Save and restore the bidi_p flag.
17906 (pop_it): Iterate out of display property for string iteration as
17907 well.
17908 (iterate_out_of_display_property): Support iteration over strings.
17909 (handle_single_display_spec): Set up it->bidi_it for iteration
17910 over a display string, and call bidi_init_it.
17911 (handle_single_display_spec, next_overlay_string)
17912 (get_overlay_strings_1, push_display_prop): Set up the bidi
17913 iterator for displaying display or overlay strings.
17914 (forward_to_next_line_start): Don't use the shortcut if
17915 bidi-iterating.
17916 (back_to_previous_visible_line_start): If handle_display_prop
17917 pushed the iterator stack, restore the internal state of the bidi
17918 iterator by calling bidi_pop_it same number of times.
17919 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
17920 and we are bidi-iterating, don't decrement the iterator position;
17921 instead, set the first_elt flag in the bidi iterator, to produce
17922 the same effect.
17923 (reseat_1): Remove redundant setting of string_from_display_prop_p.
17924 (push_display_prop): xassert that we are iterating a buffer.
17925 (push_it, pop_it): Save and restore paragraph_embedding member.
17926 (handle_single_display_spec, next_overlay_string)
17927 (get_overlay_strings_1, reseat_1, reseat_to_string)
17928 (push_display_prop): Set up the `unibyte' member of bidi_it.string
17929 correctly. Don't assume unibyte strings are not bidi-reordered.
17930 (compute_display_string_pos)
17931 (compute_display_string_end): Fix handling the case of C string.
17932 (push_it, pop_it): Save and restore from_disp_prop_p.
17933 (handle_single_display_spec, push_display_prop): Set the
17934 from_disp_prop_p flag.
17935 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
17936 (pop_it): Call iterate_out_of_display_property only if we are
17937 popping after iteration over a string that came from a display
17938 property. Fix a typo in popping stretch info. Add an assertion
17939 for verifying that the iterator position is in sync with the bidi
17940 iterator.
17941 (handle_single_display_spec, get_overlay_strings_1)
17942 (push_display_prop): Fix initialization of paragraph direction for
17943 string when that of the parent object is not yet determined.
17944 (reseat_1): Call bidi_init_it to resync the bidi
17945 iterator with IT's position. (Bug#7616)
17946 (find_row_edges): If ROW->start.pos gives position
17947 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
17948 (handle_stop, back_to_previous_visible_line_start, reseat_1):
17949 Reset the from_disp_prop_p flag.
17950 (SAVE_IT, RESTORE_IT): New macros.
17951 (pos_visible_p, face_before_or_after_it_pos)
17952 (back_to_previous_visible_line_start)
17953 (move_it_in_display_line_to, move_it_in_display_line)
17954 (move_it_to, move_it_vertically_backward, move_it_by_lines)
17955 (try_scrolling, redisplay_window, display_line): Use them when
17956 saving a temporary copy of the iterator and restoring it back.
17957 (back_to_previous_visible_line_start, reseat_1)
17958 (init_iterator): Empty the bidi cache "stack".
17959 (move_it_in_display_line_to): If iterator ended up at
17960 EOL, but we never saw any buffer positions smaller than
17961 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
17962 motion in bidi-reordered lines.
17963 (move_it_in_display_line_to): Record prev_method and prev_pos
17964 immediately before the call to set_iterator_to_next. Fixes cursor
17965 motion in bidi-reordered lines with stretch glyphs and strings
17966 displayed in margins. (Bug#8133) (Bug#8867)
17967 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
17968 TO_CHARPOS.
640c8776
SM
17969 (pos_visible_p): Support positions in bidi-reordered lines.
17970 Save and restore bidi cache.
0bb23927
EZ
17971
17972 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
17973 (bidi_paragraph_info): Delete unused struct.
17974 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
17975 (bidi_cache_start): New variable.
17976 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
17977 to zero.
17978 (bidi_cache_fetch_state, bidi_cache_search)
17979 (bidi_cache_find_level_change, bidi_cache_iterator_state)
17980 (bidi_cache_find, bidi_peek_at_next_level)
17981 (bidi_level_of_next_char, bidi_find_other_level_edge)
17982 (bidi_move_to_visually_next): Compare cache index with
17983 bidi_cache_start rather than with zero.
17984 (bidi_fetch_char): Accept new argument STRING; all callers
17985 changed. Support iteration over a string. Support strings with
17986 display properties. Support unibyte strings. Fix the type of
17987 `len' according to what STRING_CHAR_AND_LENGTH expects.
17988 (bidi_paragraph_init, bidi_resolve_explicit_1)
17989 (bidi_resolve_explicit, bidi_resolve_weak)
640c8776
SM
17990 (bidi_level_of_next_char, bidi_move_to_visually_next):
17991 Support iteration over a string.
0bb23927
EZ
17992 (bidi_set_sor_type, bidi_resolve_explicit_1)
17993 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
17994 can now be zero (for strings); special values 0 and -1 were
17995 changed to -1 and -2, respectively.
17996 (bidi_char_at_pos): New function.
17997 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
17998 Call it instead of FETCH_MULTIBYTE_CHAR.
17999 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
18000 initialized to valid values.
18001 (bidi_init_it): Don't initialize charpos and bytepos with invalid
18002 values.
18003 (bidi_level_of_next_char): Allow the sentinel "position" to pass
18004 the test for valid cached positions. Fix the logic for looking up
18005 the sentinel state in the cache. GCPRO the Lisp string we are
18006 iterating.
18007 (bidi_push_it, bidi_pop_it): New functions.
18008 (bidi_initialize): Initialize the bidi cache start stack pointer.
18009 (bidi_cache_ensure_space): New function, refactored from part of
18010 bidi_cache_iterator_state. Don't assume the required size is just
18011 one BIDI_CACHE_CHUNK away.
18012 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
18013 (bidi_count_bytes, bidi_char_at_pos): New functions.
18014 (bidi_cache_search): Don't assume bidi_cache_last_idx is
18015 always valid if bidi_cache_idx is valid.
18016 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
18017 is valid if it's going to be used.
18018 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
18019 (bidi_cache_fetch_state, bidi_cache_search)
c965adc5
EZ
18020 (bidi_cache_find_level_change, bidi_cache_ensure_space)
18021 (bidi_cache_iterator_state, bidi_cache_find)
640c8776
SM
18022 (bidi_find_other_level_edge, bidi_cache_start_stack):
18023 All variables related to cache indices are now EMACS_INT.
c965adc5 18024
0bb23927
EZ
18025 * dispextern.h (struct bidi_string_data): New structure.
18026 (struct bidi_it): New member `string'. Make flag members be 1-bit
18027 fields, and put them last in the struct.
640c8776
SM
18028 (compute_display_string_pos, compute_display_string_end):
18029 Update prototypes.
0bb23927
EZ
18030 (bidi_push_it, bidi_pop_it): Add prototypes.
18031 (struct iterator_stack_entry): New members bidi_p,
18032 paragraph_embedding, and from_disp_prop_p.
18033 (struct it): Member bidi_p is now a bit field 1 bit wide.
640c8776
SM
18034 (bidi_shelve_cache, bidi_unshelve_cache):
18035 Declare prototypes.
0bb23927
EZ
18036
18037 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
18038 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
18039 and vector-like objects.
18040
18041 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
18042 cache around display iteration.
18043
18044 * window.c (Fwindow_end, window_scroll_pixel_based)
18045 (displayed_window_lines, Frecenter): Save and restore the bidi
18046 cache around display iteration.
18047
3bbd2265
LMI
180482011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
18049
18050 * editfns.c (Fdelete_region): Clarify the use of the named
18051 parameters (bug#6788).
18052
adc47434
MR
180532011-07-14 Martin Rudalics <rudalics@gmx.at>
18054
18055 * indent.c (Fvertical_motion): Set and restore w->pointm when
18056 saving and restoring the window's buffer (Bug#9006).
18057
837c31f8
LMI
180582011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
18059
18060 * editfns.c (Fstring_to_char): Clarify just what is returned
18061 (bug#6576). Text by Eli Zaretskii.
18062
ac389d0c
JB
180632011-07-13 Juanma Barranquero <lekktu@gmail.com>
18064
18065 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
18066
0be0ce47
EZ
180672011-07-13 Eli Zaretskii <eliz@gnu.org>
18068
18069 * buffer.c (mmap_find): Fix a typo.
18070
cd18e7e3
JB
180712011-07-13 Johan Bockgård <bojohan@gnu.org>
18072
18073 Fix execution of x selection hooks.
18074 * xselect.c (Qx_lost_selection_functions)
18075 (Qx_sent_selection_functions): New vars.
18076 (syms_of_xselect): DEFSYM them.
18077 (x_handle_selection_request): Pass Qx_sent_selection_functions
18078 rather than Vx_sent_selection_functions to Frun_hook_with_args.
18079 (x_handle_selection_clear,x_clear_frame_selections):
18080 Pass Qx_lost_selection_functions rather than
18081 Vx_lost_selection_functions to Frun_hook_with_args.
18082
47ea7f44
PE
180832011-07-13 Paul Eggert <eggert@cs.ucla.edu>
18084
ac389d0c 18085 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
2941c447
PE
18086 The old code sometimes used this field without initializing it.
18087
47ea7f44
PE
18088 * alloc.c (gc_sweep): Don't read past end of array.
18089 In theory, the old code could also have corrupted Emacs internals,
18090 though it'd be very unlikely.
18091
bc985c87
AS
180922011-07-12 Andreas Schwab <schwab@linux-m68k.org>
18093
18094 * character.c (Fcharacterp): Don't advertise optional ignored
ac389d0c 18095 argument. (Bug#4026)
bc985c87 18096
0cf34688
LMI
180972011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
18098
b3dadd76
LMI
18099 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
18100 key" (bug#4257).
18101
0cf34688
LMI
18102 * window.c (Fset_window_start): Doc fix (bug#4199).
18103 (Fset_window_hscroll): Ditto.
18104
270768cd
PE
181052011-07-12 Paul Eggert <eggert@cs.ucla.edu>
18106
077e3dda 18107 Fix minor new problems caught by GCC 4.6.1.
270768cd 18108 * term.c (init_tty): Remove unused local.
490011a6 18109 * xsettings.c (store_monospaced_changed): Define this function only
077e3dda 18110 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
490011a6 18111 not used otherwise.
270768cd 18112
b1f58454
CY
181132011-07-12 Chong Yidong <cyd@stupidchicken.com>
18114
18115 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
18116
22b9578d
LMI
181172011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
18118
6e70ab07
LMI
18119 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
18120 are the mini-buffer and the echo area (bug#3320).
18121
22b9578d
LMI
18122 * term.c (init_tty): Remove support for supdup, c10 and perq
18123 terminals, which are no longer supported (bug#1482).
18124
8974cc9f
JB
181252011-07-10 Johan Bockgård <bojohan@gnu.org>
18126
18127 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
18128
a560d974
JD
181292011-07-10 Jan Djärv <jan.h.d@swipnet.se>
18130
18131 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
18132 for non-popups (Bug#3642).
18133
1dae0f0a
AS
181342011-07-10 Andreas Schwab <schwab@linux-m68k.org>
18135
268c2c36 18136 * alloc.c (reset_malloc_hooks): Protoize.
1dae0f0a 18137 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
268c2c36
AS
18138 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
18139 * cm.c (losecursor): Likewise.
1dae0f0a
AS
18140 * data.c (fmod): Likewise.
18141 * dispnew.c (swap_glyphs_in_rows): Likewise.
18142 * emacs.c (memory_warning_signal): Likewise.
18143 * floatfns.c (float_error): Likewise.
18144 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
18145 (otf_open, font_otf_capability, generate_otf_features)
18146 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
18147 Likewise.
18148 * image.c (pbm_read_file): Likewise.
18149 * indent.c (string_display_width): Likewise.
18150 * intervals.c (check_for_interval, search_for_interval)
18151 (inc_interval_count, count_intervals, root_interval)
18152 (adjust_intervals_for_insertion, make_new_interval): Likewise.
18153 * lread.c (defalias): Likewise.
268c2c36 18154 * ralloc.c (r_alloc_check): Likewise.
1dae0f0a
AS
18155 * regex.c (set_image_of_range_1, set_image_of_range)
18156 (regex_grow_registers): Likewise.
18157 * sysdep.c (strerror): Likewise.
18158 * termcap.c (valid_filename_p, tprint, main): Likewise.
18159 * tparam.c (main): Likewise.
18160 * unexhp9k800.c (run_time_remap, save_data_space)
18161 (update_file_ptrs, read_header, write_header, calculate_checksum)
18162 (copy_file, copy_rest, display_header): Likewise.
18163 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
18164 Likewise.
18165 * xdisp.c (check_it): Likewise.
18166 * xfaces.c (register_color, unregister_color, unregister_colors):
18167 Likewise.
18168 * xfns.c (print_fontset_result): Likewise.
18169 * xrdb.c (member, fatal, main): Likewise.
18170
99033785
PE
181712011-07-10 Paul Eggert <eggert@cs.ucla.edu>
18172
18173 Fix minor problems found by static checking (Bug#9031).
18174 * chartab.c (char_table_set_range, map_sub_char_table):
18175 Remove unused locals.
18176 (uniprop_table): Now static.
18177 * composite.c (_work_char): Remove unused static var.
18178
9cb2ac56
JB
181792011-07-09 Juanma Barranquero <lekktu@gmail.com>
18180
18181 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
18182
f25661f0
JD
181832011-07-09 Jan Djärv <jan.h.d@swipnet.se>
18184
18185 * gtkutil.c (qttip_cb): Remove code without function.
18186
8278c4fe
EZ
181872011-07-09 Eli Zaretskii <eliz@gnu.org>
18188
18189 * w32.c (pthread_sigmask): New stub.
18190
1692ae2d 181912011-07-08 Paul Eggert <eggert@cs.ucla.edu>
123403e4 18192
8a6ebd58 18193 Use pthread_sigmask, not sigprocmask (Bug#9010).
123403e4
PE
18194 sigprocmask is portable only for single-threaded applications, and
18195 Emacs can be multi-threaded when it uses GTK.
1301ac26
PE
18196 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
18197 (LIBES): Use it.
18198 * callproc.c (Fcall_process):
18199 * process.c (create_process):
18200 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
18201 Use pthread_sigmask, not sigprocmask.
123403e4 18202
1b854618
JD
182032011-07-08 Jan Djärv <jan.h.d@swipnet.se>
18204
18205 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
18206 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
18207 wrong (Bug#8591).
18208
3fe4b549
JD
182092011-07-08 Jan Djärv <jan.h.d@swipnet.se>
18210
0ce7e563
JD
18211 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
18212 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
18213 (xg_hide_tooltip): Fix comment.
18214
3fe4b549
JD
18215 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
18216 in registerServicesMenuSendTypes.
18217 (validRequestorForSendType): Don't check ns_return_types.
18218
18219 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
18220 ns_return_type.
18221
5df75e47
JR
182222011-07-08 Jason Rumney <jasonr@gnu.org>
18223
22610910
JR
18224 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
18225 SH_SHOW for hidden windows (Bug#5482).
18226
5df75e47
JR
18227 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
18228 frame struct members of non-existent frames (Bug#6284).
18229
699c10bd
JD
182302011-07-08 Jan Djärv <jan.h.d@swipnet.se>
18231
4393663b
JD
18232 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
18233 variable firstTime not needed on OSX >= 10.6.
18234 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
18235 >= 10.5. Use setKnobProportion, setDoubleValue.
18236
18237 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
18238 (MAC_OS_X_VERSION_10_5): Define if not defined.
18239 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
18240 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
18241 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
18242
18243 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
090bd7cb 18244 cString and lossyCString on OSX >= 10.4.
4393663b 18245
58179cce 18246 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
4393663b
JD
18247 sizeToFit on OSX >= 10.2.
18248
18249 * nsimage.m (allocInitFromFile): Don't use deprecated method
18250 bestRepresentationForDevice on OSX >= 10.6.
18251
18252 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
18253 to avoid warning.
18254
18255 * emacs.c: Declare unexec_init_emacs_zone.
18256
a63e0781
JD
18257 * nsgui.h: Fix compiler warning about gnulib redefining verify.
18258
699c10bd
JD
18259 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
18260
18261 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
18262 on svcsMenu (Bug#8842).
18263
18264 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
18265 ns_return_types.
18266 (Fns_list_services): Just return Qnil on 10.6, code not working there.
18267
18268 * nsterm.m (QUTF8_STRING): Declare.
18269 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
18270 (validRequestorForSendType): Return type is (id).
18271 Change indexOfObjectIdenticalTo to indexOfObject.
18272 Check if we have local selection before returning self (Bug#8842).
18273 (writeSelectionToPasteboard): Put local selection into paste board
18274 if we have a local selection (Bug#8842).
18275 (syms_of_nsterm): DEFSYM QUTF8_STRING.
18276
18277 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
18278 (ns_get_local_selection): Declare.
18279
54e10184
LMI
182802011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18281
9888ff71
LMI
18282 * keymap.c (describe_map_tree): Don't insert a double newline at
18283 the end of the buffer (bug#1169) and return whether we inserted
18284 something.
18285
54e10184
LMI
18286 * callint.c (Fcall_interactively): Change "reading args" to
18287 "providing args" to try to clarify what it does (bug#1010).
18288
15fa4783
KH
182892011-07-07 Kenichi Handa <handa@m17n.org>
18290
18291 * composite.c (composition_compute_stop_pos): Ignore a static
18292 composition starting before CHARPOS (Bug#8915).
18293
18294 * xdisp.c (handle_composition_prop): Likewise.
18295
a8815b00
EZ
182962011-07-07 Eli Zaretskii <eliz@gnu.org>
18297
18298 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
18299 (Bug#9015)
18300
ef7b981d 183012011-07-07 Kenichi Handa <handa@m17n.org>
c805dec0
KH
18302
18303 * character.h (unicode_category_t): New enum type.
18304
18305 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
18306 (Qchar_code_property_table): New variable.
18307 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
18308 (UNIPROP_COMPRESSED_FORM_P): New macros.
18309 (char_table_ascii): Uncompress the compressed values.
18310 (sub_char_table_ref): New arg is_uniprop. Callers changed.
18311 Uncompress the compressed values.
ac389d0c 18312 (sub_char_table_ref_and_range): Likewise.
c805dec0
KH
18313 (char_table_ref_and_range): Uncompress the compressed values.
18314 (sub_char_table_set): New arg is_uniprop. Callers changed.
18315 Uncompress the compressed values.
18316 (sub_char_table_set_range): Args changed. Callers changed.
18317 (char_table_set_range): Adjuted for the above change.
18318 (map_sub_char_table): Delete args default_val and parent. Add arg
18319 top. Give decoded values to a Lisp function.
640c8776 18320 (map_char_table): Adjust for the above change. Give decoded
c805dec0
KH
18321 values to a Lisp function. Gcpro more variables.
18322 (uniprop_table_uncompress)
18323 (uniprop_decode_value_run_length): New functions.
18324 (uniprop_decoder, uniprop_decoder_count): New variables.
18325 (uniprop_get_decoder, uniprop_encode_value_character)
18326 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
18327 New functions.
18328 (uniprop_encoder, uniprop_encoder_count): New variables.
18329 (uniprop_get_encoder, uniprop_table)
18330 (Funicode_property_table_internal, Fget_unicode_property_internal)
18331 (Fput_unicode_property_internal): New functions.
18332 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
18333 Sunicode_property_table_internal, Sget_unicode_property_internal,
5e617bc2 18334 and Sput_unicode_property_internal. Defvar_lisp
c805dec0
KH
18335 char-code-property-alist.
18336
640c8776 18337 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
c805dec0
KH
18338 Vunicode_category_table.
18339
640c8776 18340 * font.c (font_range): Adjust for the change of
c805dec0
KH
18341 Vunicode_category_table.
18342
76b397fb
DN
183432011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
18344
18345 * m/iris4d.h: Remove file, move contents ...
18346 * s/irix6-5.h: ... here.
18347
22b4128e
PE
183482011-07-06 Paul Eggert <eggert@cs.ucla.edu>
18349
18350 Remove unportable assumption about struct layout (Bug#8884).
8a5c77bb
PE
18351 * alloc.c (mark_buffer):
18352 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
18353 (clone_per_buffer_values): Don't assume that
22b4128e
PE
18354 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
18355 This isn't true in general, and it's particularly not true
18356 if Emacs is configured with --with-wide-int.
18357 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
18358 New macros, used in the buffer.c change.
18359
869795d6
JD
183602011-07-05 Jan Djärv <jan.h.d@swipnet.se>
18361
18362 * xsettings.c: Use both GConf and GSettings if both are available.
18363 (store_config_changed_event): Add comment.
18364 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
18365 (store_tool_bar_style_changed): New functions.
5e617bc2 18366 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
869795d6
JD
18367 (struct xsettings): Move font inside HAVE_XFT.
18368 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
640c8776 18369 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
869795d6 18370 Move inside HAVE_XFT.
640c8776 18371 (something_changed_gsettingsCB): Rename from something_changedCB.
869795d6
JD
18372 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
18373 also.
18374 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
5e617bc2 18375 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
640c8776 18376 (something_changed_gconfCB): Rename from something_changedCB.
869795d6
JD
18377 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
18378 (parse_settings): Move check for font inside HAVE_XFT.
18379 (read_settings, apply_xft_settings): Add comment.
18380 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
18381 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
18382 call store_font_name_changed.
18383 (xft_settings_event): Add comment.
18384 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
18385 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
18386 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
18387 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
18388 (xsettings_initialize): Call init_gsettings last.
640c8776
SM
18389 (xsettings_get_system_font, xsettings_get_system_normal_font):
18390 Add comment.
869795d6 18391
d8ed26bd
PE
183922011-07-05 Paul Eggert <eggert@cs.ucla.edu>
18393
18394 Random fixes. E.g., (random) never returned negative values.
18395 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
18396 subseconds part to the entropy, as that's a bit more random.
18397 Prefer signed to unsigned, since the signedness doesn't matter and
18398 in general we prefer signed. When given a limit, use a
18399 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
18400 latter isn't right if USE_2_TAGS_FOR_INTS.
18401 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
18402 not 0..VALMASK. Don't discard "excess" bits that random () returns.
18403
cabf1cac
SM
184042011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
18405
18406 * textprop.c (text_property_stickiness):
18407 Obey Vtext_property_default_nonsticky.
18408 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
18409 * w32fns.c (syms_of_w32fns):
18410 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
18411
6e9b2be9
PE
184122011-07-04 Paul Eggert <eggert@cs.ucla.edu>
18413
18414 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
18415 This is more efficient than Ffile_directory_p and avoids a minor race.
18416
90186c68
LMI
184172011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
18418
7c301272
LMI
18419 * buffer.c (Foverlay_put): Say what the return value is
18420 (bug#7835).
18421
c4f2d8d4
LMI
18422 * fileio.c (barf_or_query_if_file_exists): Check first if the file
18423 is a directory before asking whether to use the file name
18424 (bug#7564).
ad637907
LMI
18425 (barf_or_query_if_file_exists): Make the "File is a directory"
18426 error be more correct.
c4f2d8d4 18427
90186c68
LMI
18428 * fns.c (Frequire): Remove the mention of the .gz files, since
18429 that's installation-specific, but keep the mention of
18430 `get-load-suffixes'.
18431
da64016e
PE
184322011-07-04 Paul Eggert <eggert@cs.ucla.edu>
18433
18434 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
18435 Report string overflow if the output is too long.
18436
7d47b580
JB
184372011-07-04 Juanma Barranquero <lekktu@gmail.com>
18438
a555cb87
JB
18439 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
18440 (syms_of_gnutls): Remove duplicate DEFSYM for
18441 Qgnutls_bootprop_verify_hostname_error, an error for
18442 Qgnutls_bootprop_verify_error (which is no longer used).
18443
7d47b580
JB
18444 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
18445 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
18446 Also (re)move comments that are misplaced or no longer relevant.
18447
1e49bfab
LMI
184482011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
18449
18450 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
18451
1485f4c0
CY
184522011-07-03 Chong Yidong <cyd@stupidchicken.com>
18453
18454 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
18455 and background color parameters if they have been changed.
18456
a9ab721e
LMI
184572011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
18458
18459 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
18460
cf7cff57
PE
184612011-07-03 Paul Eggert <eggert@cs.ucla.edu>
18462
2e13213d
PE
18463 * xsettings.c (SYSTEM_FONT): Define only when used.
18464 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
18465
cf7cff57
PE
18466 * keymap.c (access_keymap_1): Now static.
18467
7a8e04f7
CY
184682011-07-02 Chong Yidong <cyd@stupidchicken.com>
18469
18470 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
18471 leave any prefix arg for the up event (Bug#1586).
18472
61352f62
LMI
184732011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
18474
69bb1ef7
LMI
18475 * lread.c (syms_of_lread): Mention single symbols defined by
18476 `defvar' or `defconst' (bug#7154).
18477
61352f62 18478 * fns.c (Frequire): Mention .el.gz files (bug#7314).
7b3747f9 18479 (Frequire): Mention get-load-suffixes.
61352f62 18480
28545e04
MR
184812011-07-02 Martin Rudalics <rudalics@gmx.at>
18482
18483 * window.h (window): Remove clone_number slot.
18484 * window.c (Fwindow_clone_number, Fset_window_clone_number):
18485 Remove.
18486 (make_parent_window, make_window, saved_window)
18487 (Fset_window_configuration, save_window_save): Don't deal with
18488 clone numbers.
18489 * buffer.c (Qclone_number): Remove declaration.
18490 (sort_overlays, overlay_strings): Don't deal with clone numbers.
18491
3349e122
SM
184922011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
18493
18494 Add multiple inheritance to keymaps.
18495 * keymap.c (Fmake_composed_keymap): New function.
18496 (Fset_keymap_parent): Simplify.
18497 (fix_submap_inheritance): Remove.
18498 (access_keymap_1): New function extracted from access_keymap to handle
18499 embedded parents and handle lists of maps.
18500 (access_keymap): Use it.
18501 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
18502 (Fcopy_keymap): Handle embedded parents.
18503 (Fcommand_remapping, define_as_prefix): Simplify.
18504 (Fkey_binding): Simplify.
18505 (syms_of_keymap): Move minibuffer-local-completion-map,
18506 minibuffer-local-filename-completion-map,
18507 minibuffer-local-must-match-map, and
18508 minibuffer-local-filename-must-match-map to Elisp.
18509 (syms_of_keymap): Defsubr make-composed-keymap.
18510 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
18511 (parse_menu_item): Trivial simplification.
18512
3279eb87
GM
185132011-07-01 Glenn Morris <rgm@gnu.org>
18514
18515 * Makefile.in (SETTINGS_LIBS): Fix typo.
18516
39cb9e56 185172011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
4550efdf
KI
18518
18519 * coding.c (Fencode_coding_string): Record the last coding system
18520 used, as the function doc string says (bug#8738).
18521
0949d2b6
JD
185222011-07-01 Jan Djärv <jan.h.d@swipnet.se>
18523
18524 * xsettings.c (store_monospaced_changed): Take new font as arg and
18525 check for change against current_mono_font.
18526 (EMACS_TYPE_SETTINGS): Remove this and related defines.
18527 (emacs_settings_constructor, emacs_settings_get_property)
18528 (emacs_settings_set_property, emacs_settings_class_init)
18529 (emacs_settings_init, gsettings_obj): Remove.
18530 (something_changedCB): New function for HAVE_GSETTINGS.
18531 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
18532 with value as argument.
18533 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
18534 g_settings_new (Bug#8967). Do not create gsettings_obj.
9173deec 18535 Remove calls to g_settings_bind. Connect something_changedCB to
0949d2b6
JD
18536 "changed".
18537
18538 * xgselect.c: Add defined (HAVE_GSETTINGS).
18539 (xgselect_initialize): Ditto.
18540
18541 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
18542 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
18543 xg_select.
18544
bbc6b304
PE
185452011-07-01 Paul Eggert <eggert@cs.ucla.edu>
18546
18547 * eval.c (struct backtrace): Simplify and port the data structure.
18548 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
18549 signed bit field, as this assumption is not portable and it makes
18550 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
18551 "char debug_on_exit : 1" as this is not portable either; instead,
18552 use the portable "unsigned int debug_on_exit : 1". Remove unused
18553 member evalargs. Remove obsolete comments about cc bombing out.
18554
9851bfc5
JD
185552011-06-30 Jan Djärv <jan.h.d@swipnet.se>
18556
51bb811f 18557 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
9851bfc5
JD
18558 Let HAVE_GSETTINGS override HAVE_GCONF.
18559 (store_monospaced_changed): New function.
18560 (EMACS_SETTINGS): A new type derived from GObject to handle
18561 GSettings notifications.
18562 (emacs_settings_constructor, emacs_settings_get_property)
18563 (emacs_settings_set_property, emacs_settings_class_init):
18564 New functions.
18565 (gsettings_client, gsettings_obj): New variables.
18566 (GSETTINGS_SCHEMA): New define.
18567 (something_changedCB): Call store_monospaced_changed.
18568 (init_gsettings): New function.
18569 (xsettings_initialize): Call init_gsettings.
18570 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
18571 to NULL.
18572
640c8776 18573 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
9851bfc5
JD
18574 GCONF_CFLAGS/LIBS.
18575
5386012d
MR
185762011-06-29 Martin Rudalics <rudalics@gmx.at>
18577
18578 * window.c (resize_root_window, grow_mini_window)
18579 (shrink_mini_window): Rename Qresize_root_window to
18580 Qwindow_resize_root_window and Qresize_root_window_vertically to
18581 Qwindow_resize_root_window_vertically.
18582
f13e0b08
PE
185832011-06-28 Paul Eggert <eggert@cs.ucla.edu>
18584
18585 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
18586
94515237
JB
185872011-06-27 Juanma Barranquero <lekktu@gmail.com>
18588
18589 * makefile.w32-in: Redesign dependencies so they reflect more
18590 clearly which files are directly included by each source file,
18591 and not through other includes.
18592
e43b6e43
MR
185932011-06-27 Martin Rudalics <rudalics@gmx.at>
18594
18595 * buffer.c (Qclone_number): Declare static and DEFSYM it.
18596 (sort_overlays, overlay_strings): When an overlay's clone number
18597 matches the window's clone number process the overlay even if
18598 the overlay's window property doesn't match the current window.
18599
d68443dc
MR
18600 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
18601 (Fwindow_hchild): Rename to Fwindow_left_child.
18602 (Fwindow_next): Rename to Fwindow_next_sibling.
18603 (Fwindow_prev): Rename to Fwindow_prev_sibling.
d615d6d2
MR
18604 (resize_window_check): Rename to window_resize_check.
18605 (resize_window_apply): Rename to window_resize_apply.
18606 (Fresize_window_apply): Rename to Fwindow_resize_apply.
18607 (Fdelete_other_windows_internal, resize_frame_windows)
18608 (Fsplit_window_internal, Fdelete_window_internal)
18609 (grow_mini_window, shrink_mini_window)
18610 (Fresize_mini_window_internal): Fix callers accordingly.
d68443dc 18611
c7e73be5
JD
186122011-06-26 Jan Djärv <jan.h.d@swipnet.se>
18613
18614 * emacsgtkfixed.h: State that this is only used with Gtk+3.
18615 (emacs_fixed_set_min_size): Remove.
18616 (emacs_fixed_new): Take frame as argument.
18617
18618 * emacsgtkfixed.c: State that this is only used with Gtk+3.
18619 (_EmacsFixedPrivate): Remove minwidth/height.
18620 Add struct frame *f.
18621 (emacs_fixed_init): Initialize priv->f.
18622 (get_parent_class, emacs_fixed_set_min_size): Remove.
18623 (emacs_fixed_new): Set priv->f to argument.
18624 (emacs_fixed_get_preferred_width)
18625 (emacs_fixed_get_preferred_height): Use min_width/height from
18626 frames size_hint to set minimum and natural (Bug#8919).
18627 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
18628 and use min_width/height from frames size_hint to set
18629 min_width/height (Bug#8919).
18630
18631 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
9173deec
JB
18632 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
18633 Fix indentation.
c7e73be5 18634
cf99dcf8
EZ
186352011-06-26 Eli Zaretskii <eliz@gnu.org>
18636
18637 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
18638 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
18639 called at ZV.
18640
029529ac
CY
186412011-06-26 Chong Yidong <cyd@stupidchicken.com>
18642
18643 * process.c (wait_reading_process_output): Bypass select if
18644 waiting for a cell while ignoring keyboard input, and input is
18645 pending. Suggested by Jan Djärv (Bug#8869).
18646
7a7ef429
PE
186472011-06-25 Paul Eggert <eggert@cs.ucla.edu>
18648
18649 Use gnulib's dup2 module instead of rolling our own.
18650 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
18651
11fdef7d 186522011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
989b42d2
YM
18653
18654 * dispnew.c (scrolling_window): Before scrolling, turn off a
18655 mouse-highlight in the window being scrolled.
18656
cd3520a4
JB
186572011-06-24 Juanma Barranquero <lekktu@gmail.com>
18658
18659 Move DEFSYM to lisp.h and use everywhere.
18660
18661 * character.h (DEFSYM): Move declaration...
18662 * lisp.h (DEFSYM): ...here.
18663
18664 * gnutls.c:
18665 * minibuf.c:
18666 * w32menu.c:
18667 * w32proc.c:
18668 * w32select.c: Don't include character.h.
18669
18670 * alloc.c (syms_of_alloc):
18671 * buffer.c (syms_of_buffer):
18672 * bytecode.c (syms_of_bytecode):
18673 * callint.c (syms_of_callint):
18674 * casefiddle.c (syms_of_casefiddle):
18675 * casetab.c (init_casetab_once):
18676 * category.c (init_category_once, syms_of_category):
18677 * ccl.c (syms_of_ccl):
18678 * cmds.c (syms_of_cmds):
18679 * composite.c (syms_of_composite):
18680 * dbusbind.c (syms_of_dbusbind):
18681 * dired.c (syms_of_dired):
18682 * dispnew.c (syms_of_display):
18683 * doc.c (syms_of_doc):
18684 * editfns.c (syms_of_editfns):
18685 * emacs.c (syms_of_emacs):
18686 * eval.c (syms_of_eval):
18687 * fileio.c (syms_of_fileio):
18688 * fns.c (syms_of_fns):
18689 * frame.c (syms_of_frame):
18690 * fringe.c (syms_of_fringe):
18691 * insdel.c (syms_of_insdel):
18692 * keymap.c (syms_of_keymap):
18693 * lread.c (init_obarray, syms_of_lread):
18694 * macros.c (syms_of_macros):
18695 * msdos.c (syms_of_msdos):
18696 * print.c (syms_of_print):
18697 * process.c (syms_of_process):
18698 * search.c (syms_of_search):
18699 * sound.c (syms_of_sound):
18700 * syntax.c (init_syntax_once, syms_of_syntax):
18701 * terminal.c (syms_of_terminal):
18702 * textprop.c (syms_of_textprop):
18703 * undo.c (syms_of_undo):
18704 * w32.c (globals_of_w32):
18705 * window.c (syms_of_window):
18706 * xdisp.c (syms_of_xdisp):
18707 * xfaces.c (syms_of_xfaces):
18708 * xfns.c (syms_of_xfns):
18709 * xmenu.c (syms_of_xmenu):
18710 * xsettings.c (syms_of_xsettings):
18711 * xterm.c (syms_of_xterm): Use DEFSYM.
18712
4228cf16
TZ
187132011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
18714
cd3520a4 18715 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
4228cf16 18716
7fcccf1e
PE
187172011-06-23 Paul Eggert <eggert@cs.ucla.edu>
18718
7efb4e0e
PE
18719 Integer and buffer overflow fixes (Bug#8873).
18720
ff5844ad
PE
18721 * print.c (printchar, strout): Check for string overflow.
18722 (PRINTPREPARE, printchar, strout):
18723 Don't set size unless allocation succeeds.
18724
90532f02
PE
18725 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
18726 for sizes. Check for string overflow more accurately.
18727 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
18728
6d84508d
PE
18729 * macros.c: Integer and buffer overflow fixes.
18730 * keyboard.h (struct keyboard.kbd_macro_bufsize):
18731 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
18732 Use ptrdiff_t, not int, for sizes.
18733 Don't increment bufsize until after realloc succeeds.
18734 Check for size-calculation overflow.
18735 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
18736
437b2cb4
PE
18737 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
18738
8b9ac8b4
PE
18739 * lread.c: Integer overflow fixes.
18740 (read_integer): Radix is now EMACS_INT, not int,
18741 to improve quality of diagnostics for out-of-range radices.
18742 Calculate buffer size correctly for out-of-range radices.
18743 (read1): Check for integer overflow in radices, and in
18744 read-circle numbers.
82cb60d3
PE
18745 (read_escape): Avoid int overflow.
18746 (Fload, openp, read_buffer_size, read1)
18747 (substitute_object_recurse, read_vector, read_list, map_obarray):
18748 Use ptrdiff_t, not int, for sizes.
18749 (read1): Use EMACS_INT, not int, for sizes.
20270765 18750 Check for size overflow.
8b9ac8b4 18751
7fcccf1e
PE
18752 * image.c (cache_image): Check for size arithmetic overflow.
18753
bfbbd7e7
PE
18754 * lread.c: Integer overflow issues.
18755 (saved_doc_string_size, saved_doc_string_length)
18756 (prev_saved_doc_string_size, prev_saved_doc_string_length):
18757 Now ptrdiff_t, not int.
18758 (read1): Don't assume doc string length fits in int. Check for
18759 out-of-range doc string lengths.
18760 (read_list): Don't assume file position fits in int.
39019e54 18761 (read_escape): Check for hex character overflow.
bfbbd7e7 18762
4e323265
LL
187632011-06-22 Leo Liu <sdl.web@gmail.com>
18764
18765 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
18766 Move to minibuffer.el.
18767
85fece3e
PE
187682011-06-22 Paul Eggert <eggert@cs.ucla.edu>
18769
20b84ce9 18770 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
85fece3e
PE
18771 The following patches are for when GLYPH_DEBUG && !XASSERT.
18772 * dispextern.h (trace_redisplay_p, dump_glyph_string):
18773 * dispnew.c (flush_stdout):
18774 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
18775 Mark as externally visible.
18776 * dispnew.c (check_window_matrix_pointers): Now static.
18777 * dispnew.c (window_to_frame_vpos):
18778 * xfns.c (unwind_create_frame):
18779 * xterm.c (x_check_font): Remove unused local.
18780 * scroll.c (CHECK_BOUNDS):
18781 * xfaces.c (cache_fache): Rename local to avoid shadowing.
18782 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
18783 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
18784 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
18785 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
18786 Now static.
18787 (debug_method_add): Use va_list and vsprintf rather than relying
18788 on undefined behavior with wrong number of arguments.
18789 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
18790 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
18791 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
18792 since we're not interested in debugging glyphs with old libraries.
18793 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
18794 GCC 4.6.0's static checking.
18795
0766b489
PE
187962011-06-22 Paul Eggert <eggert@cs.ucla.edu>
18797
31fd4b32
PE
18798 Integer overflow and signedness fixes (Bug#8873).
18799 A few related buffer overrun fixes, too.
18800
b79e8648
PE
18801 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
18802
0766b489
PE
18803 * dispextern.h (struct face.stipple):
18804 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
18805 (x_bitmap_mask, x_allocate_bitmap_record)
18806 (x_create_bitmap_from_data, x_create_bitmap_from_file)
18807 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
18808 (x_create_bitmap_from_xpm_data):
18809 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
18810 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
18811 (.bitmaps_last):
18812 * xfaces.c (load_pixmap):
18813 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
18814 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
18815 (.bitmaps_last, struct x_output.icon_bitmap):
18816 Use ptrdiff_t, not int, for bitmap indexes.
18817 (x_allocate_bitmap_record): Check for size overflow.
18818 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
18819
b081724f
PE
18820 Use ptrdiff_t, not int, for overlay counts.
18821 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
18822 * editfns.c (overlays_around, get_pos_property):
18823 * textprop.c (get_char_property_and_overlay):
18824 * xdisp.c (next_overlay_change, note_mouse_highlight):
18825 * xfaces.c (face_at_buffer_position):
21514da7
PE
18826 * buffer.c (OVERLAY_COUNT_MAX): New macro.
18827 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
18828 (Fnext_overlay_change, Fprevious_overlay_change)
18829 (mouse_face_overlay_overlaps, Foverlays_in):
b081724f 18830 Use ptrdiff_t, not int, for sizes.
21514da7 18831 (overlays_at, overlays_in): Check for size-calculation overflow.
b081724f 18832
3de73e5e
PE
18833 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
18834
2606c57b
PE
18835 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
18836 (x_session_initialize): Do not assume string length fits in int.
18837
aaafe47a
PE
18838 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
18839 This is unlikely, but can occur if DPI is outlandish.
18840
2674ddc8 18841 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
3a5077c5
PE
18842 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
18843
28154962
PE
18844 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
18845 * xrdb.c (magic_file_p, search_magic_path):
18846 Omit last arg SUFFIX; it was always 0. All callers changed.
18847 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
18848
7de51af5
PE
18849 * xfont.c (xfont_match): Avoid need for strlen.
18850
25ed6cc3
PE
18851 * xfns.c: Don't assume strlen fits in int.
18852 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
18853
4eab31dd
PE
18854 * xdisp.c (message_log_check_duplicate): Return intmax_t,
18855 not unsigned long, as we prefer signed integers. All callers changed.
18856 Detect integer overflow in repeat count.
18857 (message_dolog): Don't assume print length fits in 39 bytes.
df1f27af 18858 (display_mode_element): Don't assume strlen fits in int.
4eab31dd 18859
171e2a58
PE
18860 * termcap.c: Don't assume sizes fit in int and never overflow.
18861 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
18862 (gobble_line): Check for size-calculation overflow.
18863
ad39faca 18864 * minibuf.c (Fread_buffer):
6e5bb2dc 18865 * lread.c (intern, intern_c_string):
74ca2eb3
PE
18866 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
18867 Don't assume string length fits in int.
18868
52c61c22 18869 * keyboard.c (parse_tool_bar_item):
9bda3520
PE
18870 * gtkutil.c (style_changed_cb): Avoid need for strlen.
18871
b5b8c9e5
PE
18872 * font.c: Don't assume string length fits in int.
18873 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
18874 Use ptrdiff_t, not int.
ccd6111c
PE
18875 (font_intern_prop): Don't assume string length fits in int.
18876 Don't assume integer property fits in fixnum.
18877 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
b5b8c9e5 18878
882f0d81 18879 * filelock.c: Fix some buffer overrun and integer overflow issues.
51cab52b 18880 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
882f0d81
PE
18881 Reformulate so as not to need the command string.
18882 Invoke gzip -cd rather than gunzip, as it's more portable.
18883 (lock_info_type, lock_file_1, lock_file):
18884 Don't assume pid_t and time_t fit in unsigned long.
18885 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
18886 (current_lock_owner): Prefer signed type for sizes.
18887 Use memcpy, not strncpy, where memcpy is what is really wanted.
18888 Don't assume (via atoi) that time_t and pid_t fit in int.
18889 Check for time_t and/or pid_t out of range, e.g., via a network share.
18890 Don't alloca where an auto var works fine.
18891
93f4cf88
PE
18892 * fileio.c: Fix some integer overflow issues.
18893 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
18894 Don't assume string length fits in int.
18895 (directory_file_name): Don't assume string length fits in long.
18896 (make_temp_name): Don't assume pid fits in int, or that its print
18897 length is less than 20.
18898
f3e92b69
PE
18899 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
18900
1bfdaf10
PE
18901 * coding.c (make_subsidiaries): Don't assume string length fits in int.
18902
35016e9a
PE
18903 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
18904
3d1e65a1
PE
18905 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
18906 We prefer signed integers, even for size calculations.
18907
0b963a93
PE
18908 * emacs.c: Don't assume string length fits in 'int'.
18909 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
18910 (main): Don't invoke strlen when not needed.
18911
573f4b54
PE
18912 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
18913 (XD_DEBUG_MESSAGE): Don't waste a byte.
18914
989f33ba
PE
18915 * callproc.c (getenv_internal_1, getenv_internal)
18916 (Fgetenv_internal):
965d34eb
PE
18917 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
18918
e4d29b33
PE
18919 * lread.c (invalid_syntax): Omit length argument.
18920 All uses changed. This doesn't fix a bug, but it simplifies the
18921 code away from its former Hollerith-constant appearance, and it's
18922 one less 'int' to worry about when looking at integer-overflow issues.
51cab52b 18923 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
e4d29b33 18924
eb49b136
PE
18925 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
18926 This didn't break anything, but it didn't help either.
18927 It's confusing to put a bogus integer in a place where the actual
18928 value does not matter.
9f62aeb1 18929 (LIST_END_P): Remove unused macro and its bogus comment.
cbeff735 18930 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
eb49b136 18931
15375a22
PE
18932 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
18933 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
18934 implementation.
b61cc01c
PE
18935 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
18936 We prefer signed types, and the value cannot exceed the EMACS_INT
18937 range anyway (because otherwise the length would not be representable).
9a8e8d9b
PE
18938 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
18939 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
18940 This avoids a GCC warning when WIDE_EMACS_INT.
15375a22 18941
53b2623d
PE
18942 * indent.c (sane_tab_width): New function.
18943 (current_column, scan_for_column, Findent_to, position_indentation)
18944 (compute_motion): Use it. This is just for clarity.
8fcaf9cc 18945 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
53b2623d 18946
51cab52b 18947 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
45aebb64 18948
f2ed8a70
PE
18949 * lisp.h (lint_assume): New macro.
18950 * composite.c (composition_gstring_put_cache):
18951 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
18952
abe80cc6
PE
18953 * editfns.c, insdel.c:
18954 Omit unnecessary forward decls, to simplify future changes.
a9e860e1 18955
b02c740e
PE
18956 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
18957
ebc96716
PE
18958 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
18959
b4e50fa0 18960 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
f03dc6ef 18961 Use much-faster test for byte-length change.
311d5d7c 18962 Don't assume string byte-length fits in 'int'.
a4cf38e4 18963 Check that character arg fits in 'int'.
85461888 18964 (mapcar1): Declare byte as byte, for clarity.
b4e50fa0 18965
c0c1ee9f
PE
18966 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
18967
a498d7f4
PE
18968 * fns.c (concat): Catch string overflow earlier.
18969 Do not rely on integer wraparound.
18970
51cab52b
PE
18971 * dispextern.h (struct it.overlay_strings_charpos)
18972 (struct it.selective): Now EMACS_INT, not int.
87830974
PE
18973 * xdisp.c (forward_to_next_line_start)
18974 (back_to_previous_visible_line_start)
18975 (reseat_at_next_visible_line_start, next_element_from_buffer):
18976 Don't arbitrarily truncate the value of 'selective' to int.
18977
76031fad
PE
18978 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
18979
5eb55db9
PE
18980 * composite.c: Don't truncate sizes to 'int'.
18981 (composition_gstring_p, composition_reseat_it)
18982 (composition_adjust_point): Use EMACS_INT, not int.
7d100a81
PE
18983 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
18984 not EMACS_UINT, for indexes.
5eb55db9 18985
0703a717
PE
18986 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
18987
d6202519
PE
18988 * buffer.c: Include <verify.h>.
18989 (struct sortvec.priority, struct sortstr.priority):
8961a454 18990 Now EMACS_INT, not int.
c20998a7 18991 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
67c36fce
PE
18992 (struct sortstr.size, record_overlay_string)
18993 (struct sortstrlist.size, struct sortlist.used):
18994 Don't truncate size to int.
18995 (record_overlay_string): Check for size-calculation overflow.
d6202519 18996 (init_buffer_once): Check at compile-time, not run-time.
fadf4e30 18997
d5a19415
JM
189982011-06-22 Jim Meyering <meyering@redhat.com>
18999
029529ac 19000 Don't leak an XBM-image-sized buffer
d5a19415
JM
19001 * image.c (xbm_load): Free the image buffer after using it.
19002
a9041e6c
PE
190032011-06-21 Paul Eggert <eggert@cs.ucla.edu>
19004
19005 Port to Sun C.
19006 * composite.c (find_automatic_composition): Omit needless 'return 0;'
19007 that Sun C diagnosed.
19008 * fns.c (secure_hash): Fix pointer signedness issue.
19009 * intervals.c (static_offset_intervals): New function.
19010 (offset_intervals): Use it.
19011
7f3f739f
LL
190122011-06-21 Leo Liu <sdl.web@gmail.com>
19013
19014 * deps.mk (fns.o):
19015 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
19016 sha512.h.
19017
19018 * fns.c (secure_hash): Rename from crypto_hash_function and change
19019 the first arg to accept symbols.
5b66d427 19020 (Fsecure_hash): New primitive.
7f3f739f
LL
19021 (syms_of_fns): New symbols.
19022
76147d94
DD
190232011-06-20 Deniz Dogan <deniz@dogan.se>
19024
19025 * process.c (Fset_process_buffer): Clarify return value in
19026 docstring.
19027
7d7d0045
CY
190282011-06-18 Chong Yidong <cyd@stupidchicken.com>
19029
19030 * dispnew.c (add_window_display_history): Use BVAR.
19031
19032 * xdisp.c (debug_method_add): Use BVAR.
19033 (check_window_end, dump_glyph_matrix, dump_glyph)
19034 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
19035
19036 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
19037 Likewise.
19038
19039 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
19040 check till after the cache is created in init_frame_faces.
19041
ff2bc410
SM
190422011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
19043
19044 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
19045
28177add
PE
190462011-06-16 Paul Eggert <eggert@cs.ucla.edu>
19047
dd3482fe
PE
19048 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
19049 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
19050 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
19051
393d71f3 19052 Improve buffer-overflow checking (Bug#8873).
1c8e352f
PE
19053 * fileio.c (Finsert_file_contents):
19054 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
19055 Remove the old (too-loose) buffer overflow checks.
19056 They weren't needed, since make_gap checks for buffer overflow.
19057 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
19058 The old code merely checked for Emacs fixnum overflow, and relied
19059 on undefined (wraparound) behavior. The new code avoids undefined
19060 behavior, and also checks for ptrdiff_t and/or size_t overflow.
19061
2e6813b0 19062 * editfns.c (Finsert_char): Don't dump core with very negative counts.
21d890a4
PE
19063 Tune. Don't use wider integers than needed. Don't use alloca.
19064 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
2e6813b0 19065
599a9e4f
PE
19066 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
19067
99561444
PE
19068 * insdel.c, lisp.h (buffer_overflow): New function.
19069 (insert_from_buffer_1, replace_range, replace_range_2):
19070 * insdel.c (make_gap_larger):
19071 * editfns.c (Finsert_char):
19072 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
19073
28177add
PE
19074 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
19075
e69dafad
PE
190762011-06-15 Paul Eggert <eggert@cs.ucla.edu>
19077
4baa020d 19078 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
ff672d2c 19079
b1c46f02
PE
19080 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
19081 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
19082
e69dafad
PE
19083 * fileio.c: Don't assume EMACS_INT fits in off_t.
19084 (emacs_lseek): New static function.
19085 (Finsert_file_contents, Fwrite_region): Use it.
19086 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
19087
566684ea
PE
19088 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
19089
e6966cd6
PE
19090 * fns.c: Don't overflow int when computing a list length.
19091 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
19092 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
19093 truncation on 64-bit hosts. Check for QUIT every
19094 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
19095 faster and is responsive enough.
19096 (Flength): Report an error instead of overflowing an integer.
19097 (Fsafe_length): Return a float if the value is not representable
19098 as a fixnum. This shouldn't happen except in contrived situations.
6346d301 19099 (Fnthcdr, Fsort): Don't assume list length fits in int.
de41a810 19100 (Fcopy_sequence): Don't assume vector length fits in int.
00c604f2 19101
dd0b0efb
PE
19102 * alloc.c: Check that resized vectors' lengths fit in fixnums.
19103 (header_size, word_size): New constants.
19104 (allocate_vectorlike): Don't check size overflow here.
19105 (allocate_vector): Check it here instead, since this is the only
19106 caller of allocate_vectorlike that could cause overflow.
19107 Check that the new vector's length is representable as a fixnum.
19108
86fe5cfe
PE
19109 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
19110 The previous code was bogus. For example, next_almost_prime (32)
19111 returned 39, which is undesirable as it is a multiple of 3; and
19112 next_almost_prime (24) returned 25, which is a multiple of 5 so
19113 why was the code bothering to check for multiples of 7?
19114
80e88859
PE
19115 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
19116
4a2f0ad6
PE
19117 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
19118
f66c7cf8
PE
19119 Variadic C functions now count arguments with ptrdiff_t.
19120 This partly undoes my 2011-03-30 change, which replaced int with size_t.
19121 Back then I didn't know that the Emacs coding style prefers signed int.
19122 Also, in the meantime I found a few more instances where arguments
4a2f0ad6
PE
19123 were being counted with int, which may truncate counts on 64-bit
19124 machines, or EMACS_INT, which may be unnecessarily wide.
f66c7cf8
PE
19125 * lisp.h (struct Lisp_Subr.function.aMANY)
19126 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
19127 Arg counts are now ptrdiff_t, not size_t.
19128 All variadic functions and their callers changed accordingly.
19129 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
19130 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
19131 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
19132 * callint.c (Fcall_interactively): Check arg count for overflow,
19133 to avoid potential buffer overrun. Use signed char, not 'int',
19134 for 'varies' array, so that we needn't bother to check its size
19135 calculation for overflow.
19136 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
19137 * eval.c (apply_lambda):
19138 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
19139 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
19140 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
19141
a1759b76
PE
19142 * callint.c (Fcall_interactively): Don't use index var as event count.
19143
d96be9fc
PE
19144 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
19145 * mem-limits.h (SIZE): Remove; no longer used.
19146
a690a978 19147 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
5efd304b 19148
578c21e6
PE
19149 Remove unnecessary casts.
19150 * xterm.c (x_term_init):
19151 * xfns.c (x_set_border_pixel):
19152 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
19153 These aren't needed now that we assume ANSI C.
19154
96f53c6c
PE
19155 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
19156 It's more likely to cause problems (due to unsigned overflow)
19157 than to cure them.
19158
83c77d31
PE
19159 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
19160
ee2079f1
PE
19161 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
19162
6da65536
PE
19163 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
19164
7147c4a4
PE
19165 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
19166
193e32d9
PE
19167 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
19168
e5533da6
PE
19169 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
19170
9910e595
PE
19171 GLYPH_CODE_FACE returns EMACS_INT, not int.
19172 * dispextern.h (merge_faces):
19173 * xfaces.c (merge_faces):
01103c44
PE
19174 * xdisp.c (get_next_display_element, next_element_from_display_vector):
19175 Don't assume EMACS_INT fits in int.
9910e595 19176
2638320e
PE
19177 * character.h (CHAR_VALID_P): Remove unused parameter.
19178 * fontset.c, lisp.h, xdisp.c: All uses changed.
19179
045eb8d9
PE
19180 * editfns.c (Ftranslate_region_internal): Omit redundant test.
19181
c1f134b5
PE
19182 * fns.c (concat): Minor tuning based on overflow analysis.
19183 This doesn't fix any bugs. Use int to hold character, instead
19184 of constantly refetching from Emacs object. Use XFASTINT, not
19185 XINT, for value known to be a character. Don't bother comparing
19186 a single byte to 0400, as it's always less.
19187
395fcb93 19188 * floatfns.c (Fexpt):
327eeec8
PE
19189 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
19190
abbd3d23
PE
19191 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
19192 for characters.
19193
684a03ef
PE
19194 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
19195
0fed43f3
PE
19196 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
19197 Without this fix, on a 64-bit host (aset S 0 4294967386) would
19198 incorrectly succeed when S was a string, because 4294967386 was
19199 truncated before it was used.
19200
8fd02eb7
PE
19201 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
19202 Otherwise, an out-of-range integer could cause undefined behavior
19203 on a 64-bit host.
19204
f8c86b69
PE
19205 * composite.c: Use int, not EMACS_INT, for characters.
19206 (fill_gstring_body, composition_compute_stop_pos): Use int, not
19207 EMACS_INT, for values that are known to be in character range.
19208 This doesn't fix any bugs but is the usual style inside Emacs and
19209 may generate better code on 32-bit machines.
19210
34206dd2
PE
19211 Make sure a 64-bit char is never passed to ENCODE_CHAR.
19212 This is for reasons similar to the recent CHAR_STRING fix.
19213 * charset.c (Fencode_char): Check that character arg is actually
19214 a character. Pass an int to ENCODE_CHAR.
19215 * charset.h (ENCODE_CHAR): Verify that the character argument is no
19216 wider than 'int', as a compile-time check to prevent future regressions
19217 in this area.
19218
c5958d4c 19219 * character.c (char_string): Remove unnecessary casts.
13bdea59
PE
19220
19221 Make sure a 64-bit char is never passed to CHAR_STRING.
19222 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
19223 by silently ignoring the top 32 bits, allowing some values
19224 that were far too large to be valid characters.
19225 * character.h: Include <verify.h>.
19226 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
19227 arguments are no wider than unsigned, as a compile-time check
19228 to prevent future regressions in this area.
19229 * data.c (Faset):
01103c44 19230 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
13bdea59
PE
19231 (Fsubst_char_in_region):
19232 * fns.c (concat):
19233 * xdisp.c (decode_mode_spec_coding):
19234 Adjust to CHAR_STRING's new requirement.
19235 * editfns.c (Finsert_char, Fsubst_char_in_region):
19236 * fns.c (concat): Check that character args are actually
19237 characters. Without this test, these functions did the wrong
19238 thing with wildly out-of-range values on 64-bit hosts.
19239
d37ca623
PE
19240 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
19241 These casts should not be needed on 32-bit hosts, either.
19242 * keyboard.c (read_char):
19243 * lread.c (Fload): Remove casts to unsigned.
19244
ea204efb
PE
19245 * lisp.h (UNSIGNED_CMP): New macro.
19246 This fixes comparison bugs on 64-bit hosts.
19247 (ASCII_CHAR_P): Use it.
19248 * casefiddle.c (casify_object):
01103c44 19249 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
ea204efb
PE
19250 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
19251 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
19252 * dispextern.h (FACE_FROM_ID):
19253 * keyboard.c (read_char): Use UNSIGNED_CMP.
19254
41cb286c
PE
19255 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
19256 not to EMACS_INT, to avoid GCC warning.
19257
4a1b9832
PE
19258 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
19259
55daad71
PE
19260 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
19261 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
19262 isn't needed on 32-bit machines.
8f95c75c 19263
01103c44
PE
19264 * buffer.c (Fgenerate_new_buffer_name):
19265 Use EMACS_INT for count, not int.
0ceccced 19266 (advance_to_char_boundary): Return EMACS_INT, not int.
e762cafe
PE
19267
19268 * data.c (Qcompiled_function): Now static.
19269
c6f072e7
PE
19270 * window.c (window_body_lines): Now static.
19271
20ce5912
PE
19272 * image.c (gif_load): Rename local to avoid shadowing.
19273
9c4c5f81
PE
19274 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
19275 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
19276 * alloc.c (make_save_value): Integer argument is now of type
19277 ptrdiff_t, not int.
19278 (mark_object): Use ptrdiff_t, not int.
19279 * lisp.h (pD): New macro.
19280 * print.c (print_object): Use it.
19281
c0c5c8ae
PE
19282 * alloc.c: Use EMACS_INT, not int, to count objects.
19283 (total_conses, total_markers, total_symbols, total_vector_size)
19284 (total_free_conses, total_free_markers, total_free_symbols)
01103c44
PE
19285 (total_free_floats, total_floats, total_free_intervals)
19286 (total_intervals, total_strings, total_free_strings):
c0c5c8ae
PE
19287 Now EMACS_INT, not int. All uses changed.
19288 (Fgarbage_collect): Compute overall total using a double, so that
19289 integer overflow is less likely to be a problem. Check for overflow
19290 when converting back to an integer.
5a25e253
PE
19291 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
19292 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
19293 These were 'int' variables that could overflow on 64-bit hosts;
19294 they were never used, so remove them instead of repairing them.
211a0b2a 19295 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
6349ae4d
PE
19296 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
19297 Previously, this ceilinged at INT_MAX, but that doesn't work on
19298 64-bit machines.
e46bb31a 19299 (allocate_pseudovector): Don't use EMACS_INT when int would do.
c0c5c8ae 19300
c78baabf 19301 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
86f61a15 19302 (allocate_vectorlike): Check for ptrdiff_t overflow.
b6439961
PE
19303 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
19304 when a (possibly-narrower) signed value would do just as well.
19305 We prefer using signed arithmetic, to avoid comparison confusion.
c78baabf 19306
c9d624c6
PE
19307 * alloc.c: Catch some string size overflows that we were missing.
19308 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
19309 for convenience in STRING_BYTES_MAX.
19310 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
19311 The definition here is exact; the one in lisp.h was approximate.
19312 (allocate_string_data): Check for string overflow. This catches
19313 some instances we weren't catching before. Also, it catches
19314 size_t overflow on (unusual) hosts where SIZE_MAX <= min
19315 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
19316 and ptrdiff_t and EMACS_INT are both 64 bits.
c78baabf 19317
c9d624c6
PE
19318 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
19319 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
640c8776 19320 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
c9d624c6 19321
353032ce
PE
19322 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
19323
2bccce07
PE
19324 * alloc.c (Fmake_string): Check for out-of-range init.
19325
0ac30604
SM
193262011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
19327
19328 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
19329
c195f2de
JD
193302011-06-14 Jan Djärv <jan.h.d@swipnet.se>
19331
19332 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
19333 xg_get_default_scrollbar_width.
19334
19335 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
19336 (int_gtk_range_get_value): Move to the scroll bar part of the file.
19337 (style_changed_cb): Call update_theme_scrollbar_width and call
19338 x_set_scroll_bar_default_width and xg_frame_set_char_size for
19339 all frames (Bug#8505).
19340 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
19341 Call gtk_window_set_resizable if HAVE_GTK3.
19342 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
19343 and height if HAVE_GTK3 (Bug#8505).
19344 (scroll_bar_width_for_theme): New variable.
19345 (update_theme_scrollbar_width): New function.
19346 (xg_get_default_scrollbar_width): Move code to
19347 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
19348 (xg_initialize): Call update_theme_scrollbar_width.
19349
19350 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
19351
19352 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
19353
e10ac9f1
MR
193542011-06-12 Martin Rudalics <rudalics@gmx.at>
19355
19356 * frame.c (make_frame): Call other_buffer_safely instead of
19357 other_buffer.
19358
19359 * window.c (temp_output_buffer_show): Call display_buffer with
19360 second argument Vtemp_buffer_show_specifiers and reset latter
19361 immediately after the call.
19362 (Vtemp_buffer_show_specifiers): New variable.
19363 (auto_window_vscroll_p, next_screen_context_lines)
19364 (Vscroll_preserve_screen_position): Remove leading asterisks from
19365 doc-strings.
19366
2d3c217e 193672011-06-12 Paul Eggert <eggert@cs.ucla.edu>
4475bec4 19368
7b7f97e8 19369 Fix minor problems found by GCC 4.6.0 static checking.
4475bec4
PE
19370 * buffer.c (Qclone_number): Remove for now, as it's unused.
19371 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
19372 (record_buffer): Remove unused local.
19373 * frame.c (other_visible_frames, frame_buffer_list): Now static.
19374 (set_frame_buffer_list): Remove; unused.
19375 * frame.h (other_visible_frames): Remove decl.
19376 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
19377 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
19378 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
19379 if HAVE_GPM.
19380 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
19381 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
19382 Define only if HAVE_GPM.
19383 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
19384 (update_hints_inhibit): Remove; never set. All uses removed.
19385 * widgetprv.h (emacsFrameClassRec): Remove decl.
19386 * window.c (delete_deletable_window): Now returns void, since it
19387 wasn't returning anything.
19388 (compare_window_configurations): Remove unused locals.
19389 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
19390 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
4475bec4
PE
19391 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
19392 the same widths as pointers. This follows up on the 2011-05-06 patch.
19393 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
19394 * xterm.h: Likewise.
19395 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
19396
1384b89e
JB
193972011-06-12 Juanma Barranquero <lekktu@gmail.com>
19398
19399 * makefile.w32-in: Update dependencies.
19400 (LISP_H): Add lib/intprops.h.
19401
1100a63c
CY
194022011-06-11 Chong Yidong <cyd@stupidchicken.com>
19403
19404 * image.c (gif_load): Add animation frame delay to the metadata.
19405 (syms_of_image): Use DEFSYM. New symbol `delay'.
19406
6198ccd0
MR
194072011-06-11 Martin Rudalics <rudalics@gmx.at>
19408
19409 * window.c (delete_deletable_window): Re-add.
19410 (Fset_window_configuration): Rewrite to handle dead buffers and
19411 consequently deletable windows.
19412 (window_tree, Fwindow_tree): Remove. Supply functionality in
19413 window.el.
19414 (compare_window_configurations): Simplify code.
19415
b6e3633c
AS
194162011-06-11 Andreas Schwab <schwab@linux-m68k.org>
19417
1ab0dee5
AS
19418 * image.c (imagemagick_load_image): Fix type mismatch.
19419 (Fimagemagick_types): Likewise.
19420
b6e3633c
AS
19421 * window.h (replace_buffer_in_windows): Declare.
19422
9397e56f
MR
194232011-06-11 Martin Rudalics <rudalics@gmx.at>
19424
19425 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
19426 Qclone_number. Remove external declaration of Qdelete_window.
19427 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
19428 code.
640c8776
SM
19429 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
19430 Run Qbuffer_list_update_hook if allowed.
9397e56f
MR
19431 (Fother_buffer): Rewrite doc-string. Major rewrite for new
19432 buffer list implementation.
19433 (other_buffer_safely): New function.
19434 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
19435 calls to replace_buffer_in_windows and
19436 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
19437 if allowed.
19438 (record_buffer): Inhibit quitting and rewrite using quittable
19439 functions. Run Qbuffer_list_update_hook if allowed.
19440 (Frecord_buffer, Funrecord_buffer): New functions.
640c8776
SM
19441 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
19442 Move switch-to-buffer to window.el.
9397e56f
MR
19443 (bury-buffer): Move to window.el.
19444 (Vbuffer_list_update_hook): New variable.
19445
19446 * lisp.h (other_buffer_safely): Add prototype in buffer.c
19447 section.
19448
19449 * window.h (resize_frame_windows): Move up in code.
19450 (Fwindow_frame): Remove EXFUN.
19451 (replace_buffer_in_all_windows): Remove prototype.
19452 (replace_buffer_in_windows_safely): Add prototype.
19453
19454 * window.c: Declare Qdelete_window static again. Move down
19455 declaration of select_count.
19456 (Fnext_window, Fprevious_window): Rewrite doc-strings.
19457 (Fother_window): Move to window.el.
19458 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
19459 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
19460 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
19461 window.el.
19462 (replace_buffer_in_windows): Implement by calling
19463 Qreplace_buffer_in_windows.
19464 (replace_buffer_in_all_windows): Remove with some functionality
19465 moved into replace_buffer_in_windows_safely.
19466 (replace_buffer_in_windows_safely): New function.
19467 (select_window_norecord, select_frame_norecord): Move in front
19468 of run_window_configuration_change_hook. Remove now obsolete
19469 declarations.
640c8776
SM
19470 (Fset_window_buffer): Rewrite doc-string.
19471 Call Qrecord_window_buffer.
9397e56f
MR
19472 (keys_of_window): Move binding for other-window to window.el.
19473
b50691aa
CY
194742011-06-11 Chong Yidong <cyd@stupidchicken.com>
19475
19476 * dispextern.h (struct image): Replace data member, whose int_val
19477 and ptr_val fields were not used by anything, with a single
19478 lisp_val object.
19479
19480 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
19481 (gif_clear_image, gif_load, imagemagick_load_image)
19482 (gs_clear_image, gs_load): Callers changed.
19483
3f754b86
PE
194842011-06-10 Paul Eggert <eggert@cs.ucla.edu>
19485
cca69397
PE
19486 * buffer.h: Include <time.h>, for time_t.
19487 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
19488
109e28d0
PE
19489 Fix minor problems found by static checking.
19490
60737f02
PE
19491 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
19492
4b66faf3
PE
19493 Make identifiers static if they are not used in other modules.
19494 * data.c (Qcompiled_function, Qframe, Qvector):
19495 * image.c (QimageMagick, Qsvg):
19496 * minibuf.c (Qmetadata):
19497 * window.c (resize_window_check, resize_root_window): Now static.
19498 * window.h (resize_window_check, resize_root_window): Remove decls.
19499
109e28d0
PE
19500 * window.c (window_deletion_count, delete_deletable_window):
19501 Remove; unused.
46a4ce9e
PE
19502 (window_body_lines): Now static.
19503 (Fdelete_other_windows_internal): Mark vars as initialized.
19504 Make sure 'resize_failed' is initialized.
19505 (run_window_configuration_change_hook): Rename local to avoid shadowing.
19506 (resize_window_apply): Remove unused local.
19507 * window.h (delete_deletable_window): Remove decl.
19508
109e28d0 19509 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
33290528
PE
19510 (imagemagick_load_image): Fix pointer signedness problem by changing
19511 last arg from unsigned char * to char *. All uses changed.
19512 Also, fix a local for similar reasons.
19513 Remove unused locals. Remove locals to avoid shadowing.
19514 (fn_rsvg_handle_free): Remove; unused.
19515 (svg_load, svg_load_image): Fix pointer signedness problem.
f7e13da3 19516 (imagemagick_load_image): Don't use garbage pointer image_wand.
33290528 19517
3f754b86
PE
19518 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
19519
2547adb1
CY
195202011-06-10 Chong Yidong <cyd@stupidchicken.com>
19521
19522 * image.c (gif_load): Fix omitted cast error introduced by
19523 2011-06-06 change.
19524
2c8e37d4
MR
195252011-06-10 Martin Rudalics <rudalics@gmx.at>
19526
19527 * window.h (resize_proportionally, orig_total_lines)
19528 (orig_top_line): Remove from window structure.
19529 (set_window_height, set_window_width, change_window_heights)
19530 (Fdelete_window): Remove prototypes.
19531 (resize_frame_windows): Remove duplicate declaration.
19532
440a42e3
EZ
195332011-06-10 Eli Zaretskii <eliz@gnu.org>
19534
19535 * window.h (resize_frame_windows, resize_window_check)
19536 (delete_deletable_window, resize_root_window)
19537 (resize_frame_windows): Declare prototypes.
19538
19539 * window.c (resize_window_apply): Make definition be "static" to
19540 match the prototype.
19541
562dd5e9
MR
195422011-06-10 Martin Rudalics <rudalics@gmx.at>
19543
19544 * window.c: Remove declarations of Qwindow_size_fixed,
19545 window_min_size_1, window_min_size_2, window_min_size,
19546 size_window, window_fixed_size_p, enlarge_window, delete_window.
19547 Remove static from declaration of Qdelete_window, it's
19548 temporarily needed by Fbury_buffer.
19549 (replace_window): Don't assign orig_top_line and
19550 orig_total_lines.
19551 (Fdelete_window, delete_window): Remove. Window deletion is
19552 handled by window.el.
640c8776
SM
19553 (window_loop): Remove DELETE_OTHER_WINDOWS case.
19554 Replace Fdelete_window calls with calls to Qdelete_window.
562dd5e9
MR
19555 (Fdelete_other_windows): Remove. Deleting other windows is
19556 handled by window.el.
19557 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
19558 handled in window.el.
19559 (window_min_size_2, window_min_size_1, window_min_size): Remove.
19560 Window minimum sizes are handled in window.el.
19561 (shrink_windows, size_window, set_window_height)
19562 (set_window_width, change_window_heights, window_height)
19563 (window_width, CURBEG, CURSIZE, enlarge_window)
19564 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
19565 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
19566 handled in window.el.
19567 (make_dummy_parent): Rename to make_parent_window and give it a
19568 second argument horflag.
19569 (make_window): Don't set resize_proportionally any more.
19570 (Fsplit_window): Remove. Windows are split in window.el.
19571 (save_restore_action, save_restore_orig_size)
19572 (shrink_window_lowest_first, save_restore_orig_size): Remove.
19573 Resize mini windows in window.el.
19574 (grow_mini_window, shrink_mini_window): Implement by calling
19575 Qresize_root_window_vertically, resize_window_check and
19576 resize_window_apply.
640c8776
SM
19577 (saved_window, Fset_window_configuration, save_window_save):
19578 Do not handle orig_top_line, orig_total_lines, and
562dd5e9
MR
19579 resize_proportionally.
19580 (window_min_height, window_min_width): Move to window.el.
19581 (keys_of_window): Move bindings for delete-other-windows,
19582 split-window, delete-window and enlarge-window to window.el.
19583
19584 * buffer.c: Temporarily extern Qdelete_window.
19585 (Fbury_buffer): Temporarily call Qdelete_window instead of
19586 Fdelete_window (Fbury_buffer will move to window.el soon).
19587
19588 * frame.c (set_menu_bar_lines_1): Remove code handling
19589 orig_top_line and orig_total_lines.
19590
19591 * dispnew.c (adjust_frame_glyphs_initially): Don't use
19592 set_window_height but set heights directly.
19593 (change_frame_size_1): Use resize_frame_windows.
19594
19595 * xdisp.c (init_xdisp): Don't use set_window_height but set
19596 heights directly.
19597
640c8776
SM
19598 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
19599 Use resize_frame_windows instead of change_window_heights and run
562dd5e9
MR
19600 run_window_configuration_change_hook.
19601
19602 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
19603 instead of change_window_heights and run
19604 run_window_configuration_change_hook.
19605
1a13852e
MR
196062011-06-09 Martin Rudalics <rudalics@gmx.at>
19607
19608 * window.c (replace_window): Rename second argument REPLACEMENT to
19609 NEW. New third argument SETFLAG. Rewrite.
19610 (delete_window, make_dummy_parent): Call replace_window with
19611 third argument 1.
19612 (window_list_1): Move down in code.
19613 (run_window_configuration_change_hook): Move set_buffer part
19614 before select_frame_norecord part in order to unwind correctly.
19615 Rename count1 to count.
19616 (recombine_windows, delete_deletable_window, resize_root_window)
19617 (Fdelete_other_windows_internal)
19618 (Frun_window_configuration_change_hook, make_parent_window)
19619 (resize_window_check, resize_window_apply, Fresize_window_apply)
19620 (resize_frame_windows, Fsplit_window_internal)
640c8776
SM
19621 (Fdelete_window_internal, Fresize_mini_window_internal):
19622 New functions.
1a13852e
MR
19623 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
19624
f3d1777e
MR
196252011-06-08 Martin Rudalics <rudalics@gmx.at>
19626
496e208e
MR
19627 * window.h (window): Add some new members to window structure -
19628 normal_lines, normal_cols, new_total, new_normal, clone_number,
19629 splits, nest, prev_buffers, next_buffers.
19630 (WINDOW_TOTAL_SIZE): Move here from window.c.
b9e809c2 19631 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
496e208e 19632
f3d1777e
MR
19633 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
19634 Remove.
496e208e
MR
19635 (make_dummy_parent): Set new members of windows structure.
19636 (make_window): Move down in code. Handle new members of window
19637 structure.
19638 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
19639 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
19640 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
19641 (Fset_window_prev_buffers, Fwindow_next_buffers)
640c8776
SM
19642 (Fset_window_next_buffers, Fset_window_clone_number):
19643 New functions.
496e208e
MR
19644 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
19645 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
19646 Doc-string fixes.
19647 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
19648 Argument WINDOW can be now internal window too.
19649 (Fwindow_use_time): Move up in code.
19650 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
19651 Rewrite doc-string.
19652 (Fset_window_configuration, saved_window)
19653 (Fcurrent_window_configuration, save_window_save): Handle new
19654 members of window structure.
b9e809c2
MR
19655 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
19656 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
19657 (syms_of_window): New Lisp objects Qrecord_window_buffer,
19658 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
19659 Qget_mru_window, Qresize_root_window,
19660 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
19661 Qauto_buffer_name; staticpro them.
f3d1777e 19662
abde8f8c
MR
196632011-06-07 Martin Rudalics <rudalics@gmx.at>
19664
19665 * window.c (Fwindow_total_size, Fwindow_left_column)
19666 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
19667 (Fwindow_list_1): New functions.
19668 (window_box_text_cols): Replace with window_body_cols.
640c8776
SM
19669 (Fwindow_width, Fscroll_left, Fscroll_right):
19670 Use window_body_cols instead of window_box_text_cols.
19671 (delete_window, Fset_window_configuration):
19672 Call delete_all_subwindows with window as argument.
fa8a67e6
MR
19673 (delete_all_subwindows): Take a window as argument and not a
19674 structure. Rewrite.
190b47e6
MR
19675 (window_loop): Remove handling of GET_LRU_WINDOW and
19676 GET_LARGEST_WINDOW.
19677 (Fget_lru_window, Fget_largest_window): Move to window.el.
abde8f8c
MR
19678
19679 * window.h: Extern window_body_cols instead of
fa8a67e6
MR
19680 window_box_text_cols. delete_all_subwindows now takes a
19681 Lisp_Object as argument.
abde8f8c 19682
640c8776
SM
19683 * indent.c (compute_motion, Fcompute_motion):
19684 Use window_body_cols instead of window_box_text_cols.
abde8f8c 19685
fa8a67e6
MR
19686 * frame.c (delete_frame): Call delete_all_subwindows with root
19687 window as argument.
19688
a54e3482
DC
196892011-06-07 Daniel Colascione <dan.colascione@gmail.com>
19690
19691 * fns.c (Fputhash): Document return value.
19692
60002bf5
CY
196932011-06-06 Chong Yidong <cyd@stupidchicken.com>
19694
19695 * image.c (gif_load): Implement gif89a spec "no disposal" method.
19696
0c671da6 196972011-06-06 Paul Eggert <eggert@cs.ucla.edu>
ccd9a01a 19698
b862a52a 19699 Cons<->int and similar integer overflow fixes (Bug#8794).
77984278 19700
be44ca6c
PE
19701 Check for overflow when converting integer to cons and back.
19702 * charset.c (Fdefine_charset_internal, Fdecode_char):
19703 Use cons_to_unsigned to catch overflow.
19704 (Fencode_char): Use INTEGER_TO_CONS.
19705 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
19706 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
19707 * data.c (long_to_cons, cons_to_long): Remove.
19708 (cons_to_unsigned, cons_to_signed): New functions.
19709 These signal an error for invalid or out-of-range values.
19710 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
19711 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
19712 * font.c (Ffont_variation_glyphs):
19713 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
19714 * lisp.h: Include <intprops.h>.
19715 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
19716 (cons_to_signed, cons_to_unsigned): New decls.
19717 (long_to_cons, cons_to_long): Remove decls.
19718 * undo.c (record_first_change): Use INTEGER_TO_CONS.
19719 (Fprimitive_undo): Use CONS_TO_INTEGER.
19720 * xfns.c (Fx_window_property): Likewise.
19721 * xselect.c: Include <limits.h>.
19722 (x_own_selection, selection_data_to_lisp_data):
19723 Use INTEGER_TO_CONS.
19724 (x_handle_selection_request, x_handle_selection_clear)
19725 (x_get_foreign_selection, Fx_disown_selection_internal)
19726 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
19727 (lisp_data_to_selection_data): Use cons_to_unsigned.
19728 (x_fill_property_data): Use cons_to_signed.
19729 Report values out of range.
19730
d1f3d2af
PE
19731 Check for buffer and string overflow more precisely.
19732 * buffer.h (BUF_BYTES_MAX): New macro.
19733 * lisp.h (STRING_BYTES_MAX): New macro.
19734 * alloc.c (Fmake_string):
19735 * character.c (string_escape_byte8):
19736 * coding.c (coding_alloc_by_realloc):
19737 * doprnt.c (doprnt):
19738 * editfns.c (Fformat):
19739 * eval.c (verror):
19740 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
19741 since they may not be the same number.
19742 * editfns.c (Finsert_char):
19743 * fileio.c (Finsert_file_contents):
19744 Likewise for BUF_BYTES_MAX.
19745
dd52fcea
PE
19746 * image.c: Use ptrdiff_t, not int, for sizes.
19747 (slurp_file): Switch from int to ptrdiff_t.
19748 All uses changed.
19749 (slurp_file): Check that file size fits in both size_t (for
19750 malloc) and ptrdiff_t (for sanity and safety).
19751
7f9bbdbb
PE
19752 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
19753 if b->modtime has its maximal value.
19754
dfe18f82
PE
19755 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
19756
84acfcf0
PE
19757 Don't assume time_t can fit into int.
19758 * buffer.h (struct buffer.modtime): Now time_t, not int.
19759 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
19760 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
19761
ccd9a01a
PE
19762 Minor fixes for signed vs unsigned integers.
19763 * character.h (MAYBE_UNIFY_CHAR):
19764 * charset.c (maybe_unify_char):
19765 * keyboard.c (read_char, reorder_modifiers):
19766 XINT -> XFASTINT, since the integer must be nonnegative.
19767 * ftfont.c (ftfont_spec_pattern):
19768 * keymap.c (access_keymap, silly_event_symbol_error):
19769 XUINT -> XFASTINT, since the integer must be nonnegative.
19770 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
19771 since it makes no difference and we prefer signed.
19772 * keyboard.c (record_char): Use XUINT when all the neighbors do.
19773 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
19774 nonnegative.
19775
d6d100dd
SM
197762011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
19777
19778 * window.h (Fwindow_frame): Declare.
19779
2b6148e4
PE
197802011-06-06 Paul Eggert <eggert@cs.ucla.edu>
19781
19782 * alloc.c: Simplify handling of large-request failures (Bug#8800).
19783 (SPARE_MEMORY): Always define.
19784 (LARGE_REQUEST): Remove.
19785 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
19786
f230ecc9
MR
197872011-06-06 Martin Rudalics <rudalics@gmx.at>
19788
727e958e
MR
19789 * lisp.h: Move EXFUNS for Fframe_root_window,
19790 Fframe_first_window and Fset_frame_selected_window to window.h.
19791
19792 * window.h: Move EXFUNS for Fframe_root_window,
19793 Fframe_first_window and Fset_frame_selected_window here from
19794 lisp.h.
19795
19796 * frame.c (Fwindow_frame, Fframe_first_window)
19797 (Fframe_root_window, Fframe_selected_window)
19798 (Fset_frame_selected_window): Move to window.c.
19799 (Factive_minibuffer_window): Move to minibuf.c.
19800 (Fother_visible_frames_p): New function.
19801
19802 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
19803
f230ecc9
MR
19804 * window.c (decode_window, decode_any_window): Move up in code.
19805 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
19806 (inhibit_frame_unsplittable): Remove unused variable.
bf60a96b
MR
19807 (Fwindow_buffer): Move up and rewrite doc-string.
19808 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
19809 (Fwindow_prev): New functions.
727e958e
MR
19810 (Fwindow_frame): Move here from frame.c. Accept any window as
19811 argument.
19812 (Fframe_root_window, Fframe_first_window)
19813 (Fframe_selected_window): Move here from frame.c. Accept frame
19814 or arbitrary window as argument. Update doc-strings.
19815 (Fminibuffer_window): Move up in code.
19816 (Fwindow_minibuffer_p): Move up in code and simplify.
d6d100dd
SM
19817 (Fset_frame_selected_window): Move here from frame.c.
19818 Marginal rewrite.
727e958e
MR
19819 (Fselected_window, select_window, Fselect_window): Move up in
19820 code. Minor doc-string fixes.
f230ecc9 19821
4d09bcf6
PE
198222011-06-06 Paul Eggert <eggert@cs.ucla.edu>
19823
19824 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
19825 Do not assume that spare memory exists; that assumption is valid
19826 only if SYSTEM_MALLOC.
19827 (LARGE_REQUEST): New macro, so that the issue of large requests
19828 is separated from the issue of spare memory.
19829
810928a2
AS
198302011-06-05 Andreas Schwab <schwab@linux-m68k.org>
19831
172418ad
AS
19832 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
19833 format. (Bug#8806)
19834
43f862f7
AS
19835 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
19836
810928a2
AS
19837 * xfns.c (x_set_scroll_bar_default_width): Move declarations
19838 before statements.
19839
a059fe24
JD
198402011-06-05 Jan Djärv <jan.h.d@swipnet.se>
19841
19842 * gtkutil.c (xg_get_default_scrollbar_width): New function.
19843
19844 * gtkutil.h: Declare xg_get_default_scrollbar_width.
19845
19846 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
19847 min width by calling x_set_scroll_bar_default_width (Bug#8505).
19848
989bf368
JB
198492011-06-05 Juanma Barranquero <lekktu@gmail.com>
19850
19851 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
19852
4b80f674
CY
198532011-06-04 Chong Yidong <cyd@stupidchicken.com>
19854
19855 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
19856 (x_clipboard_manager_save): Add return value.
d6d100dd
SM
19857 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
19858 New error handlers.
4b80f674
CY
19859 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
19860 Obey Vx_select_enable_clipboard_manager. Catch errors in
19861 x_clipboard_manager_save (Bug#8779).
19862 (Vx_select_enable_clipboard_manager): New variable.
de65b42c 19863 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
4b80f674 19864
99a33b77 198652011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
8b3115e7
DN
19866
19867 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
19868
99a33b77 198692011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14eca62f
YM
19870
19871 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
19872 in the current matrix if keep_current_p is non-zero.
19873
8264569d
EZ
198742011-06-04 Eli Zaretskii <eliz@gnu.org>
19875
19876 * bidi.c (bidi_level_of_next_char): Fix last change.
19877
57f97249
EZ
198782011-06-03 Eli Zaretskii <eliz@gnu.org>
19879
fec2107c 19880 Support bidi reordering of text covered by display properties.
57f97249 19881
fec2107c
EZ
19882 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
19883 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
19884 (bidi_cache_search, bidi_cache_iterator_state)
19885 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
d6d100dd
SM
19886 (bidi_level_of_next_char, bidi_move_to_visually_next):
19887 Support character positions inside a run of characters covered by a
fec2107c
EZ
19888 display string.
19889 (bidi_paragraph_init, bidi_resolve_explicit_1)
19890 (bidi_level_of_next_char): Call bidi_fetch_char and
19891 bidi_fetch_char_advance instead of FETCH_CHAR and
19892 FETCH_CHAR_ADVANCE.
19893 (bidi_init_it): Initialize new members.
19894 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
19895 definitions.
19896 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
19897 instead of using explicit *_CHAR codes.
d6d100dd
SM
19898 (bidi_resolve_explicit, bidi_resolve_weak):
19899 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
fec2107c
EZ
19900 bidirectional text is supported only in multibyte buffers.
19901 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
19902 it to initialize the frame_window_p member of struct bidi_it.
19903 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
19904 (bidi_resolve_explicit, bidi_resolve_weak)
19905 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
19906 bidi_it->nchars is non-positive.
19907 (bidi_level_of_next_char): Don't try to lookup the cache for the
19908 next/previous character if nothing is cached there yet, or if we
19909 were just reseat()'ed to a new position.
c40e2fb2 19910
0e14fe90
EZ
19911 * xdisp.c (set_cursor_from_row): Set start and stop points
19912 according to the row's direction when priming the loop that looks
19913 for the glyph on which to display cursor.
19914 (single_display_spec_intangible_p): Function deleted.
19915 (display_prop_intangible_p): Reimplement to call
19916 handle_display_spec instead of single_display_spec_intangible_p.
d6d100dd
SM
19917 Accept 3 additional arguments needed by handle_display_spec.
19918 This fixes incorrect cursor motion across display property with complex
0e14fe90
EZ
19919 values: lists, `(when COND...)' forms, etc.
19920 (single_display_spec_string_p): Support property values that are
19921 lists with the argument STRING its top-level element.
19922 (display_prop_string_p): Fix the condition for processing a
19923 property that is a list to be consistent with handle_display_spec.
fec2107c 19924 (handle_display_spec): New function, refactored from the
fc6f18ce
EZ
19925 last portion of handle_display_prop.
19926 (compute_display_string_pos): Accept additional argument
19927 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
19928 value of a `display' property is a "replacing spec".
19929 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
19930 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
19931 the display property, but just return a value indicating whether
19932 the display property will replace the characters it covers.
19933 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
19934 frame_window_p members of struct bidi_it.
d6d100dd
SM
19935 (compute_display_string_pos, compute_display_string_end):
19936 New functions.
fec2107c
EZ
19937 (push_it): Accept second argument POSITION, where pop_it should
19938 jump to continue iteration.
19939 (reseat_1): Initialize bidi_it.disp_pos.
fc6f18ce 19940
fec2107c
EZ
19941 * keyboard.c (adjust_point_for_property): Adjust the call to
19942 display_prop_intangible_p to its new signature.
fc6f18ce
EZ
19943
19944 * dispextern.h (struct bidi_it): New member frame_window_p.
fec2107c
EZ
19945 (bidi_init_it): Update prototypes.
19946 (display_prop_intangible_p): Update prototype.
d6d100dd
SM
19947 (compute_display_string_pos, compute_display_string_end):
19948 Declare prototypes.
fec2107c
EZ
19949 (struct bidi_it): New members nchars and disp_pos. ch_len is now
19950 EMACS_INT.
fc6f18ce 19951
40087514 199522011-06-02 Paul Eggert <eggert@cs.ucla.edu>
0de4bb68 19953
57f53182
PE
19954 Malloc failure behavior now depends on size of allocation.
19955 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
19956 * lisp.h: Change signatures accordingly.
19957 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
19958 All callers changed. (Bug#8762)
19959
19960 * gnutls.c: Use Emacs's memory allocators.
19961 Without this change, the gnutls library would invoke malloc etc.
19962 directly, which causes problems on non-SYNC_INPUT hosts, and which
19963 runs afoul of improving memory_full behavior. (Bug#8761)
19964 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
19965 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
19966 xfree instead of the default malloc, realloc, free.
19967 (Fgnutls_boot): No need to check for memory allocation failure,
19968 since xmalloc does that for us.
19969
ac32cd99 19970 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
3870d916
PE
19971 * category.c (hash_get_category_set):
19972 * ccl.c (ccl_driver):
19973 * charset.c (Fdefine_charset_internal):
19974 * charset.h (struct charset.hash_index):
19975 * composite.c (get_composition_id, gstring_lookup_cache)
19976 (composition_gstring_put_cache):
19977 * composite.h (struct composition.hash_index):
19978 * dispextern.h (struct image.hash):
19979 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
19980 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
19981 (hashfn_equal, hashfn_user_defined, make_hash_table)
19982 (maybe_resize_hash_table, hash_lookup, hash_put)
19983 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
19984 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
19985 (Fsxhash, Fgethash, Fputhash, Fmaphash):
19986 * image.c (make_image, search_image_cache, lookup_image)
19987 (xpm_put_color_table_h):
19988 * lisp.h (struct Lisp_Hash_Table):
0de4bb68 19989 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
ac389d0c 19990 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
3870d916 19991 for hashes and hash indexes, instead of 'unsigned' and 'int'.
40087514
PE
19992 * alloc.c (allocate_vectorlike):
19993 Check for overflow in vector size calculations.
19994 * ccl.c (ccl_driver):
19995 Check for overflow when converting EMACS_INT to int.
0de4bb68
PE
19996 * fns.c, image.c: Remove unnecessary static decls that would otherwise
19997 need to be updated by these changes.
40087514
PE
19998 * fns.c (make_hash_table, maybe_resize_hash_table):
19999 Check for integer overflow with large hash tables.
0de4bb68
PE
20000 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
20001 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
20002 (SXHASH_REDUCE): New macro.
20003 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
20004 Use it instead of discarding useful hash info with large hash values.
20005 (sxhash_float): New function.
20006 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
20007 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
40087514
PE
20008 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
20009 Rewrite to use FIXNUM_BITS, as this simplifies things.
0de4bb68
PE
20010 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
20011 Adjust signatures to match updated version of code.
20012 (consing_since_gc): Now EMACS_INT, since a single hash table can
20013 use more than INT_MAX bytes.
20014
698d32e2
DN
200152011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
20016
20017 Make it possible to build with GCC-4.6+ -O2 -flto.
20018
20019 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
20020
fd6fa53f
SM
200212011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
20022
20023 * minibuf.c (get_minibuffer, read_minibuf_unwind):
20024 Call minibuffer-inactive-mode.
20025
864db017
JB
200262011-05-31 Juanma Barranquero <lekktu@gmail.com>
20027
20028 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
20029 Update dependencies.
20030
2ad0baf4
DN
200312011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
20032
20033 * data.c (init_data): Remove code for UTS, this system is not
20034 supported anymore.
20035
4fcc2638
DN
200362011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
20037
20038 Don't force ./temacs to start in terminal mode.
20039
20040 * frame.c (make_initial_frame): Initialize faces in all cases, not
20041 only when CANNOT_DUMP is defined.
20042 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
20043
c56e0fd5
DN
200442011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
20045
20046 * dispnew.c (add_window_display_history): Use const for the string
20047 pointer. Remove declaration, not needed.
20048
333d54da 200492011-05-31 Paul Eggert <eggert@cs.ucla.edu>
9cf9f756 20050
55d4c1b2 20051 Use 'inline', not 'INLINE'.
333d54da 20052 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
55d4c1b2
PE
20053 * alloc.c, fontset.c (INLINE): Remove.
20054 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
20055 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
20056 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
20057 * gmalloc.c (register_heapinfo): Use inline unconditionally.
20058 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
20059
738db178
DN
200602011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
20061
20062 Make it possible to run ./temacs.
20063
20064 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
20065 syms_of_callproc does the same thing. Remove test for
20066 "initialized", do it in the caller.
20067 * emacs.c (main): Avoid calling set_initial_environment when dumping.
20068
620c53a6
SM
200692011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
20070
20071 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
20072 (read_minibuf): Use get_minibuffer.
20073 (syms_of_minibuf): Use DEFSYM.
20074 (Qmetadata): New var.
20075 * data.c (Qbuffer): Don't make it static.
20076 (syms_of_data): Use DEFSYM.
20077
e003a292
PE
200782011-05-31 Paul Eggert <eggert@cs.ucla.edu>
20079
20080 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
20081 (CCL_CODE_MIN): New macro.
20082
ed008a6d
PE
200832011-05-30 Paul Eggert <eggert@cs.ucla.edu>
20084
3687c2ef
PE
20085 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
20086
ed008a6d
PE
20087 * eval.c (Qdebug): Now static.
20088 * lisp.h (Qdebug): Remove decl. This reverts a part of the
20089 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
20090 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
20091
d66c4c7c
CY
200922011-05-29 Chong Yidong <cyd@stupidchicken.com>
20093
20094 * image.c: Various fixes to ImageMagick code comments.
20095 (Fimagemagick_types): Doc fix.
20096
5fbc2025
PE
200972011-05-29 Paul Eggert <eggert@cs.ucla.edu>
20098
0196f88a
PE
20099 Minor fixes prompted by GCC 4.6.0 warnings.
20100
20101 * xselect.c (converted_selections, conversion_fail_tag): Now static.
20102
5fbc2025
PE
20103 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
20104 (x_clipboard_manager_save_all): Move extern decl to ...
20105 * xterm.h: ... here, so that it can be checked for consistency.
20106
1dd3c2d9
CY
201072011-05-29 Chong Yidong <cyd@stupidchicken.com>
20108
20109 * xselect.c (x_clipboard_manager_save_frame)
20110 (x_clipboard_manager_save_all): New functions.
20111 (Fx_clipboard_manager_save): Lisp function deleted.
20112
20113 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
20114 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
20115
20116 * xterm.h: Update prototype.
20117
5ba6571d
WX
201182011-05-28 William Xu <william.xwl@gmail.com>
20119
20120 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
20121 exiting (Bug#8239).
20122
3eaff834
JM
201232011-05-28 Jim Meyering <meyering@redhat.com>
20124
e1900994 20125 Avoid a sign-extension bug in crypto_hash_function.
3eaff834
JM
20126 * fns.c (to_uchar): Define.
20127 (crypto_hash_function): Use it to convert some newly-signed
20128 variables to unsigned, to avoid sign-extension bugs. For example,
20129 without this change, (md5 "truc") would evaluate to
20130 45723a2aff78ff4fff7fff1114760e62 rather than the expected
20131 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
e1900994 20132 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
3eaff834 20133
0f6990a7
PE
201342011-05-27 Paul Eggert <eggert@cs.ucla.edu>
20135
20136 Integer overflow fixes.
c8a9ca5a 20137
08686060
PE
20138 * dbusbind.c: Serial number integer overflow fixes.
20139 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
08686060
PE
20140 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
20141 to hold a serial number that is too large for a fixnum.
20142 (Fdbus_method_return_internal, Fdbus_method_error_internal):
20143 Check for serial numbers out of range. Decode any serial number
59568bf0 20144 that was so large that it became a float. (Bug#8722)
08686060 20145
2d1fc3c7
PE
20146 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
20147 (Fdbus_call_method, Fdbus_call_method_asynchronously):
20148 Use XFASTINT rather than XUINT when numbers are nonnegative.
20149 (xd_append_arg, Fdbus_method_return_internal):
20150 (Fdbus_method_error_internal): Likewise. Also, for unsigned
20151 arguments, check that Lisp number is nonnegative, rather than
59568bf0 20152 silently wrapping negative numbers around. (Bug#8722)
30217ff0 20153 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
59568bf0 20154 (Bug#8722)
2d1fc3c7 20155
c8a9ca5a
PE
20156 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
20157
519e1d69
PE
20158 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
20159
6df6ae42 20160 ccl: Add integer overflow checks.
30569699
PE
20161 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
20162 (IN_INT_RANGE): New macros.
20163 (ccl_driver): Use them to check for integer overflow when
20164 decoding a CCL program. Many of the new checks are whether XINT (x)
20165 fits in int; it doesn't always, on 64-bit hosts. The new version
20166 doesn't catch all possible integer overflows, but it's an
847044ea 20167 improvement. (Bug#8719)
30569699 20168
c11285dc
PE
20169 * alloc.c (make_event_array): Use XINT, not XUINT.
20170 There's no need for unsigned here.
20171
fdccd48e
PE
20172 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
20173 This follows up to the 2011-05-06 change that substituted uintptr_t
20174 for EMACS_INT. This case wasn't caught back then.
20175
37910ab2
PE
20176 Rework Fformat to avoid integer overflow issues.
20177 * editfns.c: Include <float.h> unconditionally, as it's everywhere
20178 now (part of C89). Include <verify.h>.
20179 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
20180 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
20181 (Fformat): Avoid the prepass trying to compute sizes; it was only
20182 approximate and thus did not catch overflow reliably. Instead, walk
20183 through the format just once, formatting and computing sizes as we go,
20184 checking for integer overflow at every step, and allocating a larger
20185 buffer as needed. Keep track separately whether the format is
20186 multibyte. Keep only the most-recently calculated precision, rather
20187 than them all. Record whether each argument has been converted to
20188 string. Use EMACS_INT, not int, for byte and char and arg counts.
20189 Support field widths and precisions larger than INT_MAX. Avoid
20190 sprintf's undefined behavior with conversion specifications such as %#d
20191 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
20192 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
20193 formatting out-of-range floating point numbers with int
9173deec 20194 formats. (Bug#8668)
37910ab2 20195
2e6578fb
PE
20196 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
20197
0ae6bdee
PE
20198 * data.c: Avoid integer truncation in expressions involving floats.
20199 * data.c: Include <intprops.h>.
20200 (arith_driver): When there's an integer overflow in an expression
20201 involving floating point, convert the integers to floating point
20202 so that the resulting value does not suffer from catastrophic
20203 integer truncation. For example, on a 64-bit host (* 4
20204 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
20205 Do not rely on undefined behavior after integer overflow.
20206
de883a70
PE
20207 merge count_size_as_multibyte, parse_str_to_multibyte
20208 * character.c, character.h (count_size_as_multibyte):
fd6fa53f 20209 Rename from parse_str_to_multibyte; all uses changed.
de883a70
PE
20210 Check for integer overflow.
20211 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
20212 since it's now a duplicate of the other. This is more of
20213 a character than a buffer op, so better that it's in character.c.
20214 * fns.c, print.c: Adjust to above changes.
20215
2ff916cb
PE
202162011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
20217
20218 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
20219
f1b54466
PE
202202011-05-27 Paul Eggert <eggert@cs.ucla.edu>
20221
fb1ac845
PE
20222 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
20223 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
20224 (x_clipboard_manager_save): Now static.
20225 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
20226
f1b54466
PE
20227 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
20228 (crypto_hash_function): Now static.
20229 Fix pointer signedness problems. Avoid unnecessary initializations.
20230
a9f737ee
CY
202312011-05-27 Chong Yidong <cyd@stupidchicken.com>
20232
20233 * termhooks.h (Vselection_alist): Make it terminal-local.
20234
20235 * terminal.c (create_terminal): Initialize it.
20236
20237 * xselect.c: Support for clipboard managers.
20238 (Vselection_alist): Move to termhooks.h as terminal-local var.
20239 (LOCAL_SELECTION): New macro.
20240 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
20241 (symbol_to_x_atom): Remove gratuitous arg.
20242 (x_handle_selection_request, lisp_data_to_selection_data)
20243 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
620c53a6
SM
20244 (x_own_selection, x_get_local_selection, x_convert_selection):
20245 New arg, specifying work frame. Use terminal-local Vselection_alist.
a9f737ee
CY
20246 (some_frame_on_display): Delete unused function.
20247 (Fx_own_selection_internal, Fx_get_selection_internal)
20248 (Fx_disown_selection_internal, Fx_selection_owner_p)
20249 (Fx_selection_exists_p): New optional frame arg.
20250 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
20251 (x_handle_selection_clear): Don't treat other terminals with the
20252 same keyboard specially. Use the terminal-local Vselection_alist.
20253 (x_clear_frame_selections): Use Frun_hook_with_args.
20254
20255 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
20256
20257 * xterm.h: Add support for those atoms.
20258
e067f0c1
CY
202592011-05-26 Chong Yidong <cyd@stupidchicken.com>
20260
20261 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
20262 (converted_selections, conversion_fail_tag): New global variables.
20263 (x_selection_request_lisp_error): Free the above.
20264 (x_get_local_selection): Remove unnecessary code.
20265 (x_reply_selection_request): Args changed; handle arbitrary array
620c53a6
SM
20266 of converted selections stored in converted_selections.
20267 Separate the XChangeProperty and SelectionNotify steps.
e067f0c1
CY
20268 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
20269 (x_convert_selection): New function.
20270 (x_handle_selection_event): Simplify.
20271 (x_get_foreign_selection): Don't ignore incoming requests while
20272 waiting for an answer; this will fail when we implement
20273 SAVE_TARGETS, and seems unnecessary anyway.
20274 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
20275 (Vx_sent_selection_functions): Doc fix.
20276
0f4aebc0
LL
202772011-05-26 Leo Liu <sdl.web@gmail.com>
20278
20279 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
20280
e61124cd
YM
202812011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
20282
20283 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
20284
20285 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
20286 for fringe update if it has periodic bitmap.
ac389d0c 20287 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
e61124cd
YM
20288 and fringe_bitmap_periodic_p.
20289
20290 * fringe.c (get_fringe_bitmap_data): New function.
20291 (draw_fringe_bitmap_1, update_window_fringes): Use it.
20292 (update_window_fringes): Record periodicity of fringe bitmap in glyph
20293 row. Mark glyph row for fringe update if periodicity changed.
20294
20295 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
20296 for fringe update unless it has periodic bitmap.
20297
f16d9837
KH
202982011-05-25 Kenichi Handa <handa@m17n.org>
20299
20300 * xdisp.c (get_next_display_element): Set correct it->face_id for
20301 a static composition.
20302
e1b90ef6
LL
203032011-05-24 Leo Liu <sdl.web@gmail.com>
20304
20305 * deps.mk (fns.o):
20306 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
20307
20308 * fns.c (crypto_hash_function, Fsha1): New function.
20309 (Fmd5): Use crypto_hash_function.
20310 (syms_of_fns): Add Ssha1.
20311
7400048f
PE
203122011-05-22 Paul Eggert <eggert@cs.ucla.edu>
20313
20314 * gnutls.c: Remove unused macros.
20315 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
20316 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
20317 Remove macros that are defined and never used.
20318 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
20319
abb71cf4
CY
203202011-05-22 Chong Yidong <cyd@stupidchicken.com>
20321
20322 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
20323 (Fx_get_selection_internal): Minor cleanup.
20324 (Fx_own_selection_internal): Rename arguments for consistency with
20325 select.el.
20326
6307db39
PE
203272011-05-22 Paul Eggert <eggert@cs.ucla.edu>
20328
20329 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
20330
f3d4e0a4
CY
203312011-05-22 Chong Yidong <cyd@stupidchicken.com>
20332
20333 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
20334
4d8ade89
YM
203352011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
20336
20337 * dispnew.c (scrolling_window): Don't exclude the case that the
20338 last enabled row in the desired matrix touches the bottom boundary.
20339
32078c8d
GM
203402011-05-21 Glenn Morris <rgm@gnu.org>
20341
20342 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
33cf345f
GM
20343 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
20344 and add some more files.
32078c8d 20345
7285dc67
EZ
203462011-05-20 Eli Zaretskii <eliz@gnu.org>
20347
20348 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
20349 report_file_error introduced by the change from 2011-05-07.
20350
89d1bd22
PE
203512011-05-20 Paul Eggert <eggert@cs.ucla.edu>
20352
20353 * systime.h (Time): Define only if emacs is defined.
20354 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
20355 where the include path doesn't have X11/X.h by default. See
20356 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
20357
cd394be1 203582011-05-20 Kenichi Handa <handa@m17n.org>
31bfc35c
KH
20359
20360 * composite.c (find_automatic_composition): Fix previous change.
20361
b9704ad9
GM
203622011-05-20 Glenn Morris <rgm@gnu.org>
20363
20364 * lisp.mk: New file, split from Makefile.in.
20365 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
20366 (shortlisp): Remove.
20367 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
20368
4a720484
GM
203692011-05-19 Glenn Morris <rgm@gnu.org>
20370
20371 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
20372 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
20373 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
20374 (lisp): Set the order to that of loadup.el.
20375 (shortlisp): Make it a copy of $lisp.
20376 (SOME_MACHINE_LISP): Remove.
20377 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
20378 Use just $shortlisp, not $SOME_MACHINE_LISP too.
20379
a28d4396
KH
203802011-05-18 Kenichi Handa <handa@m17n.org>
20381
20382 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
20383 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
20384 (find_automatic_composition): Mostly rewrite for efficiency.
20385
a2b1fa8e
JB
203862011-05-18 Juanma Barranquero <lekktu@gmail.com>
20387
20388 * makefile.w32-in: Update dependencies.
20389
8e1f5610
CS
203902011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
20391
20392 * menu.c: Include limits.h (fixes the MS-Windows build broken by
7d7d0045 20393 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
8e1f5610 20394
7025ee00 203952011-05-18 Paul Eggert <eggert@cs.ucla.edu>
cb93f9be 20396
cdfa6eab
PE
20397 Fix some integer overflow issues, such as string length overflow.
20398
06d6db33
PE
20399 * insdel.c (count_size_as_multibyte): Check for string overflow.
20400
2b4560a8
PE
20401 * character.c (lisp_string_width): Check for string overflow.
20402 Use EMACS_INT, not int, for string indexes and lengths; in
20403 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
20404 the resulting string length overflows an EMACS_INT; instead,
20405 report a string overflow if no precision given. When checking for
20406 precision exhaustion, use a check that cannot possibly have
20407 integer overflow. (Bug#8675)
20408 * character.h (lisp_string_width): Adjust to new signature.
20409
cb93f9be
PE
20410 * alloc.c (string_overflow): New function.
20411 (Fmake_string): Use it. This doesn't change behavior, but saves
20412 a few bytes and will simplify future changes.
20413 * character.c (string_escape_byte8): Likewise.
20414 * lisp.h (string_overflow): New decl.
20415
1a1f3366
PE
20416 Fixups, following up to the user-interface timestamp change.
20417 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
20418 for UI timestamps, instead of unsigned long.
9fbd6841
PE
20419 * msdos.c (mouse_get_pos): Likewise.
20420 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
1a1f3366
PE
20421 * w32gui.h (Time): Define by including "systime.h" rather than by
20422 declaring it ourselves. (Bug#8664)
20423
d4e3e4d3
PE
20424 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
20425 * image.c (clear_image_cache): Likewise.
20426
f6a24d19
PE
20427 * term.c (term_mouse_position): Don't assume time_t wraparound.
20428
08dc5ae6
PE
20429 Be more systematic about user-interface timestamps.
20430 Before, the code sometimes used 'Time', sometimes 'unsigned long',
620c53a6
SM
20431 and sometimes 'EMACS_UINT', to represent these timestamps.
20432 This change causes it to use 'Time' uniformly, as that's what X uses.
08dc5ae6
PE
20433 This makes the code easier to follow, and makes it easier to catch
20434 integer overflow bugs such as Bug#8664.
20435 * frame.c (Fmouse_position, Fmouse_pixel_position):
20436 Use Time, not unsigned long, for user-interface timestamps.
20437 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
20438 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
20439 * keyboard.h (last_event_timestamp): Likewise.
20440 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
20441 * menu.h (xmenu_show): Likewise.
20442 * term.c (term_mouse_position): Likewise.
20443 * termhooks.h (struct input_event.timestamp): Likewise.
20444 (struct terminal.mouse_position_hook): Likewise.
20445 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
20446 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
20447 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
20448 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
20449 what it was before.
20450 * menu.h, termhooks.h: Include "systime.h", for Time.
20451
8e55734a
PE
20452 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
20453 Don't assume that the difference between two unsigned long values
20454 can fit into an integer. At this point, we know button_down_time
20455 <= event->timestamp, so the difference must be nonnegative, so
20456 there's no need to cast the result if double-click-time is
20457 nonnegative, as it should be; check that it's nonnegative, just in
20458 case. This bug is triggered when events are more than 2**31 ms
86db42d2 20459 apart (about 25 days). (Bug#8664)
8e55734a 20460
841f1b75 20461 * xselect.c (last_event_timestamp): Remove duplicate decl.
6434756c 20462 (x_own_selection): Remove needless cast to unsigned long.
841f1b75 20463
3e26f69c
PE
20464 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
20465 that always fit in int. Use a sentinel instead of a counter, to
20466 avoid a temp and to allay GCC's concerns about possible int overflow.
d230cb74
PE
20467 * frame.h (struct frame): Use int for menu_bar_items_used
20468 instead of EMACS_INT, since it always fits in int.
3e26f69c 20469
5cc152c0
PE
20470 * menu.c (grow_menu_items): Check for int overflow.
20471
d89eb65e
PE
20472 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
20473
5235bd3e
PE
20474 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
20475 Before, the code was not consistent. These values cannot exceed
20476 2**31 - 1 so there's no need to make them unsigned.
20477 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
20478 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
20479 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
20480 as modifiers.
20481 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
20482
bc827e23
PE
20483 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
20484 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
20485 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
20486 presumably because the widths might not match.
20487
78eb494e
PE
20488 * window.c (size_window): Avoid needless test at loop start.
20489
04f2d78b
CB
204902011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
20491
20492 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
20493
d2fc7e3d 204942011-05-12 Drew Adams <drew.adams@oracle.com>
e531bdff
DA
20495
20496 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
20497
d2fc7e3d 204982011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7db47798
YM
20499
20500 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
20501 `width' to `bar_area_x' and `bar_area_width', respectively.
20502 (x_scroll_run): Take account of fringe background extension.
20503
04f2d78b
CB
20504 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
20505 Rename local vars `left' and `width' to `bar_area_x' and
7db47798
YM
20506 `bar_area_width', respectively.
20507 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
20508 background extension.
20509
79b70037
GM
205102011-05-10 Jim Meyering <meyering@redhat.com>
20511
20512 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
20513
2f142cc5
JB
205142011-05-10 Juanma Barranquero <lekktu@gmail.com>
20515
20516 * image.c (Finit_image_library): Return t for built-in image types,
20517 like pbm and xbm. (Bug#8640)
20518
57679c86
AS
205192011-05-09 Andreas Schwab <schwab@linux-m68k.org>
20520
20521 * w32menu.c (set_frame_menubar): Fix submenu allocation.
20522
888c9e86
EZ
205232011-05-07 Eli Zaretskii <eliz@gnu.org>
20524
b0512a1d
EZ
20525 * w32console.c (Fset_screen_color): Doc fix.
20526 (Fget_screen_color): New function.
20527 (syms_of_ntterm): Defsubr it.
20528
7285dc67
EZ
20529 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
20530 unlink the temporary file if Fcall_process didn't create it in the
20531 first place.
20532 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
20533 child process will be redirected to a file specified with `:file'.
888c9e86
EZ
20534 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
20535 cue to call_process_cleanup not to close that handle.
20536
4d3fcc8e
BK
205372011-05-07 Ben Key <bkey76@gmail.com>
20538
20539 * makefile.w32-in: The bootstrap-temacs rule now makes use of
20540 one of two shell specific rules, either bootstrap-temacs-CMD or
20541 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
20542 to the previous implementation of the bootstrap-temacs rule.
20543 The bootstrap-temacs-CMD rule is similar to the previous
20544 implementation of the bootstrap-temacs rule except that it
20545 makes use of the ESC_CFLAGS variable instead of the CFLAGS
20546 variable.
20547
20548 These changes, along with some changes to nt/configure.bat,
20549 nt/gmake.defs, and nt/nmake.defs, are required to extend my
20550 earlier fix to add support for --cflags and --ldflags options
20551 that include quotes so that it works whether make uses cmd or
20552 sh as the shell.
20553
b4289b64
MA
205542011-05-06 Michael Albinus <michael.albinus@gmx.de>
20555
20556 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
20557 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
20558 is a constant.
20559 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
20560 a string. Handle both cases.
20561 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
20562 (Fdbus_register_method): Use Qinvalid_function.
20563
af4c0e28
JB
205642011-05-06 Juanma Barranquero <lekktu@gmail.com>
20565
20566 * makefile.w32-in: Update dependencies.
20567 (LISP_H): Add inttypes.h and stdin.h.
20568 (PROCESS_H): Add unistd.h.
20569
c51453d9
EZ
205702011-05-06 Eli Zaretskii <eliz@gnu.org>
20571
20572 * lread.c: Include limits.h (fixes the MS-Windows build broken by
20573 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
20574
8ff0ac3c 205752011-05-06 Paul Eggert <eggert@cs.ucla.edu>
c032b5f8 20576
4c4b566b
PE
20577 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
20578
aab2b9b5
PE
20579 * term.c (vfatal): Remove stray call to va_end.
20580 It's not needed and the C Standard doesn't allow it here anyway.
20581
c378da0b
PE
20582 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
20583 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
20584
288b08c7
PE
20585 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
20586 bytes.
20587
e3601888
PE
20588 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
20589
db6c0e74
PE
20590 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
20591
dd5963ea
PE
20592 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
20593
88c9450f
PE
20594 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
20595
2f9442b8
PE
20596 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
20597
c032b5f8
PE
20598 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
20599 * charset.c (Fdefine_charset_internal): Don't initialize
20600 charset.code_space[15]. The value was garbage, on hosts with
2d38271b 20601 32-bit int (Bug#8600).
a108c10b
PE
20602
20603 * lread.c (read_integer): Be more consistent with string-to-number.
20604 Use string_to_number to do the actual conversion; this avoids
20605 rounding errors and fixes some other screwups. Without this fix,
20606 for example, #x1fffffffffffffff was misread as -2305843009213693952.
20607 (digit_to_number): Move earlier, for benefit of read_integer.
20608 Return -1 if the digit is out of range for the base, -2 if it is
48e400f0 20609 not a digit in any supported base. (Bug#8602)
a108c10b 20610
ad5f9eea
PE
20611 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
20612
aec1708a
PE
20613 * dispnew.c (scrolling_window): Return 1 if we scrolled,
20614 to match comment at start of function. This also removes a
20615 GCC warning about overflow in a 32+64-bit port.
20616
47be4ab5
PE
20617 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
20618
371cac43
PE
20619 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
20620 Reported by Stefan Monnier in
20621 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
04f2d78b
CB
20622 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
20623 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
371cac43 20624
d01a7826
PE
20625 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
20626 (EMACS_UINTPTR): Likewise, with uintptr_t.
20627
7fd47d5c
PE
20628 * lisp.h: Prefer 64-bit EMACS_INT if available.
20629 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
20630 on 32-bit hosts that have 64-bit int, so that they can access
20631 large files.
122b0c86
PE
20632 However, temporarily disable this change unless the temporary
20633 symbol WIDE_EMACS_INT is defined.
7fd47d5c 20634
8727937b
PE
20635 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
20636
8ac068ac
PE
20637 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
20638 This removes an assumption that EMACS_INT and long are the same
20639 width as pointers. The assumption is true for Emacs porting targets
20640 now, but we want to make other targets possible.
20641 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
20642 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
20643 In the rest of the code, change types of integers that hold casted
20644 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
20645 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
20646 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
20647 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
20648 No need to cast type when ORing.
20649 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
20650 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
20651 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
20652 assume EMACS_INT is the same width as char *.
20653 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
20654 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
20655 Remove no-longer-needed casts.
20656 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
20657 (xg_tool_bar_help_callback, xg_make_tool_item):
20658 Use EMACS_INTPTR to hold an integer
20659 that will be cast to void *; this can avoid a GCC warning
20660 if EMACS_INT is not the same width as void *.
20661 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
20662 * xdisp.c (display_echo_area_1, resize_mini_window_1):
20663 (current_message_1, set_message_1):
20664 Use a local to convert to proper width without a cast.
20665 * xmenu.c (dialog_selection_callback): Likewise.
20666
ede49d71
PE
20667 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
20668 Also, don't assume VALBITS / RAND_BITS is less than 5,
20669 and don't rely on undefined behavior when shifting a 1 left into
20670 the sign bit.
20671 * lisp.h (get_random): Change signature to match.
20672
2f30ecd0
PE
20673 * lread.c (hash_string): Use size_t, not int, for hash computation.
20674 Normally we prefer signed values; but hashing is special, because
20675 it's better to use unsigned division on hash table sizes so that
20676 the remainder is nonnegative. Also, size_t is the natural width
20677 for hashing into memory. The previous code used 'int', which doesn't
20678 retain enough info to hash well into very large tables.
20679 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
20680
2a866e7b
PE
20681 * dbusbind.c: Don't possibly lose pointer info when converting.
20682 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
20683 Use XPNTR rather than XHASH, so that the high-order bits of
20684 the pointer aren't lost when converting through void *.
20685
51639eac
PE
20686 * eval.c (Fautoload): Don't double-shift a pointer.
20687
92394119
PE
20688 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
20689
dbdb9a7c
JB
206902011-05-06 Juanma Barranquero <lekktu@gmail.com>
20691
20692 * gnutls.c (DEF_GNUTLS_FN):
20693 * image.c (DEF_IMGLIB_FN): Make function pointers static.
20694
db7a0b4f
AS
206952011-05-05 Andreas Schwab <schwab@linux-m68k.org>
20696
20697 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
20698 marker. (Bug#8610)
20699
cd394be1 207002011-05-05 Eli Zaretskii <eliz@gnu.org>
fab624aa
EZ
20701
20702 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
20703 New version that can reserve upto 2GB of heap space.
20704
f7ff1b0f 207052011-05-05 Chong Yidong <cyd@stupidchicken.com>
45cb8994
CY
20706
20707 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
20708
639c109b
TZ
207092011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
20710
20711 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
20712 `gnutls_certificate_set_x509_key_file'.
20713
d2127135
JB
207142011-05-05 Juanma Barranquero <lekktu@gmail.com>
20715
20716 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
20717 Update dependencies.
20718
e968f4f3
JB
207192011-05-04 Juanma Barranquero <lekktu@gmail.com>
20720
20721 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
20722 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
20723 Remove unused parameter `fildes'.
20724 * process.c (read_process_output, send_process): Don't pass it.
20725
84d358f0
JB
207262011-05-04 Juanma Barranquero <lekktu@gmail.com>
20727
20728 Fix previous change: the library cache is defined in w32.c.
20729 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
20730 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
20731
0898ca10
JB
207322011-05-04 Juanma Barranquero <lekktu@gmail.com>
20733
20734 Implement dynamic loading of GnuTLS on Windows.
20735
20736 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
20737 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
20738 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
20739 Declare.
20740
20741 * gnutls.c (Qgnutls_dll): Define.
20742 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
20743 (gnutls_*): Declare function pointers.
20744 (init_gnutls_functions): New function to initialize function pointers.
20745 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
20746 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
20747 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
20748 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
20749 (emacs_gnutls_write, emacs_gnutls_read)
20750 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
20751 (Fgnutls_available_p): New function.
20752 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
20753 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
20754 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
20755
20756 * image.c: Include w32.h.
20757 (Vimage_type_cache): Delete.
20758 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
20759 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
20760 (w32_delayed_load): Move to w32.c.
20761
20762 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
20763
20764 * w32.c (QCloaded_from, Vlibrary_cache): Define.
20765 (w32_delayed_load): Move from image.c. When loading a library, record
20766 its filename in the :loaded-from property of the library id.
20767 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
20768 Initialize and staticpro them.
20769 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
20770
20771 * process.c: Include lisp.h before w32.h, not after.
20772 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
20773 instead of gnutls_record_check_pending.
20774
20775 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
20776
ff4de4aa
TZ
207772011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
20778
20779 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
20780 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
20781 as passed in.
20782
abe95abb
JD
207832011-05-03 Jan Djärv <jan.h.d@swipnet.se>
20784
20785 * xterm.c (x_set_frame_alpha): Do not set property on anything
20786 else than FRAME_X_OUTER_WINDOW (Bug#8608).
20787
e16e55d4
JB
207882011-05-02 Juanma Barranquero <lekktu@gmail.com>
20789
20790 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
20791
bafcf6a5
JB
207922011-05-02 Juanma Barranquero <lekktu@gmail.com>
20793
20794 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
20795 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
20796 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
20797 (gnutls_global_initialized, Qgnutls_bootprop_priority)
20798 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
20799 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
20800 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
20801 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
20802 (Qgnutls_bootprop_callbacks_verify): Make static.
20803
e7a6747f
AS
208042011-05-01 Andreas Schwab <schwab@linux-m68k.org>
20805
19ed11ba
AS
20806 * callproc.c: Indentation fixup.
20807
e7a6747f 20808 * sysdep.c (wait_for_termination_1): Make static.
04f2d78b
CB
20809 (wait_for_termination, interruptible_wait_for_termination):
20810 Move after wait_for_termination_1.
e7a6747f 20811
1ef14cb4
LMI
208122011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
20813
20814 * sysdep.c (interruptible_wait_for_termination): New function
20815 which is like wait_for_termination, but allows keyboard
20816 interruptions.
20817
20818 * callproc.c (Fcall_process): Add (:file "file") as an option for
20819 the STDOUT buffer.
20820 (Fcall_process_region): Ditto.
20821
330d880c
EZ
208222011-04-30 Eli Zaretskii <eliz@gnu.org>
20823
8db90b73
EZ
20824 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
20825 rather than `XVECTOR (FOO)->size'.
20826
330d880c
EZ
20827 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
20828 inttypes.h, as a gnulib replacement is used if it not available in
20829 system headers.
20830
15cbd324
EZ
208312011-04-21 Eli Zaretskii <eliz@gnu.org>
20832
20833 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
20834 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
20835 of MOST_POSITIVE_FIXNUM. (Bug#8528)
20836
20837 * coding.c (coding_alloc_by_realloc): Error out if destination
20838 will grow beyond MOST_POSITIVE_FIXNUM.
20839 (decode_coding_emacs_mule): Abort if there isn't enough place in
20840 charbuf for the composition carryover bytes. Reserve an extra
20841 space for up to 2 characters produced in a loop.
20842 (decode_coding_iso_2022): Abort if there isn't enough place in
20843 charbuf for the composition carryover bytes.
20844
208452011-04-21 Eli Zaretskii <eliz@gnu.org>
afda1437 20846
ae940cca
EZ
20847 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
20848 aborting when %lld or %lll format is passed.
20849 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
20850 %llo or %llx format is passed. (Bug#8545)
20851
03ab8921
EZ
20852 * window.c (window_scroll_line_based): Use a marker instead of
20853 simple variables to record original value of point. (Bug#7952)
20854
afda1437
EZ
20855 * doprnt.c (doprnt): Fix the case where a multibyte sequence
20856 produced by %s or %c overflows available buffer space. (Bug#8545)
20857
f76dee0c
PE
208582011-04-28 Paul Eggert <eggert@cs.ucla.edu>
20859
20860 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
283cdbef 20861 (SIZE_MAX): Move defn after all includes, as they might #define it.
f76dee0c 20862
fdc5744d
JB
208632011-04-28 Juanma Barranquero <lekktu@gmail.com>
20864
20865 * w32.c (init_environment): Warn about defaulting HOME to C:\.
20866
638f053a
JB
208672011-04-28 Juanma Barranquero <lekktu@gmail.com>
20868
20869 * keyboard.c (Qdelayed_warnings_hook): Define.
20870 (command_loop_1): Run `delayed-warnings-hook'
20871 if Vdelayed_warnings_list is non-nil.
20872 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
20873 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
20874
d178f871
EZ
208752011-04-28 Eli Zaretskii <eliz@gnu.org>
20876
20877 * doprnt.c (doprnt): Don't return value smaller than the buffer
20878 size if the message was truncated. (Bug#8545).
20879
b124fd93
JB
208802011-04-28 Juanma Barranquero <lekktu@gmail.com>
20881
20882 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
20883 (Fx_window_property): #if-0 the whole functions, not just the bodies.
20884
e810457d
PE
208852011-04-27 Paul Eggert <eggert@cs.ucla.edu>
20886
20887 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
20888
ea51cceb
JB
208892011-04-27 Juanma Barranquero <lekktu@gmail.com>
20890
20891 * makefile.w32-in: Update dependencies.
20892
94dcfacf
EZ
208932011-04-27 Eli Zaretskii <eliz@gnu.org>
20894
20895 Improve `doprnt' and its usage. (Bug#8545)
20896 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
20897 `format_end'. Remove support for %l as a conversion specifier.
20898 Don't use xrealloc. Improve diagnostics when the %l size modifier
20899 is used. Update the commentary.
20900
20901 * eval.c (verror): Simplify calculation of size_t.
20902
20903 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
20904 messages.
20905
f61f41d7
PE
209062011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
20907
20908 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
20909 change.
20910
96fb4434
PE
209112011-04-27 Paul Eggert <eggert@cs.ucla.edu>
20912
20913 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
20914 This makes this file independent of the recent pseudovector change.
20915
671875da 209162011-04-26 Paul Eggert <eggert@cs.ucla.edu>
eab3844f 20917
69e9b5a3
PE
20918 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
20919
b5f869a7 20920 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
7754e151 20921 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
8d4c3955 20922 Remove unused local.
c8926152 20923 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
080e5a8d 20924
841a1577 20925 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
04f2d78b
CB
20926 GCC 4.6.0 optimizes based on type-based alias analysis.
20927 For example, if b is of type struct buffer * and v of type struct
eab3844f
PE
20928 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
20929 != &v->size, and therefore "v->size = 1; b->size = 2; return
20930 v->size;" must therefore return 1. This assumption is incorrect
20931 for Emacs, since it type-puns struct Lisp_Vector * with many other
20932 types. To fix this problem, this patch adds a new type struct
f904488f 20933 vectorlike_header that documents the constraints on layout of vectors
eab3844f
PE
20934 and pseudovectors, and helps optimizing compilers not get fooled
20935 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
20936 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
f904488f
PE
20937 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
20938 the size member.
eab3844f
PE
20939 (XSETPVECTYPE): Rewrite in terms of new macro.
20940 (XSETPVECTYPESIZE): New macro, specifying both type and size.
20941 This is a bit clearer, and further avoids the possibility of
20942 undesirable aliasing.
20943 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
f904488f 20944 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
eab3844f
PE
20945 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
20946 since Lisp_Subr is a special case (no "next" field).
04f2d78b
CB
20947 (ASIZE): Now uses header.size rather than size.
20948 All previous uses of XVECTOR (foo)->size replaced to use this macro,
f904488f
PE
20949 to avoid the hassle of writing XVECTOR (foo)->header.size.
20950 (struct vectorlike_header): New type.
eab3844f
PE
20951 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
20952 object, to help avoid aliasing.
20953 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
20954 (SUBRP): Likewise, since Lisp_Subr is a special case.
20955 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
20956 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
20957 (struct Lisp_Hash_Table): Combine first two members into a single
f904488f 20958 struct vectorlike_header member. All uses of "size" and "next" members
eab3844f
PE
20959 changed to be "header.size" and "header.next".
20960 * buffer.h (struct buffer): Likewise.
20961 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
20962 * frame.h (struct frame): Likewise.
20963 * process.h (struct Lisp_Process): Likewise.
20964 * termhooks.h (struct terminal): Likewise.
20965 * window.c (struct save_window_data, struct saved_window): Likewise.
20966 * window.h (struct window): Likewise.
20967 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
20968 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
20969 * buffer.c (init_buffer_once): Likewise.
20970 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
20971 special case.
20972 * process.c (Fformat_network_address): Use local var for size,
20973 for brevity.
20974
0df1eac5
PE
20975 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
20976
847ab9d1 20977 Make the Lisp reader and string-to-float more consistent (Bug#8525)
452f4150
PE
20978 * data.c (atof): Remove decl; no longer used or needed.
20979 (digit_to_number): Move to lread.c.
20980 (Fstring_to_number): Use new string_to_number function, to be
20981 consistent with how the Lisp reader treats infinities and NaNs.
20982 Do not assume that floating-point numbers represent EMACS_INT
20983 without losing information; this is not true on most 64-bit hosts.
20984 Avoid double-rounding errors, by insisting on integers when
20985 parsing non-base-10 numbers, as the documentation specifies.
20986 * lisp.h (string_to_number): New decl, replacing ...
20987 (isfloat_string): Remove.
bc0a5c13 20988 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
d78050d6 20989 (read1): Do not accept +. and -. as integers; this
452f4150
PE
20990 appears to have been a coding error. Similarly, do not accept
20991 strings like +-1e0 as floating point numbers. Do not report
20992 overflow for integer overflows unless the base is not 10 which
20993 means we have no simple and reliable way to continue.
20994 Break out the floating-point parsing into a new
20995 function string_to_number, so that Fstring_to_number parses
20996 floating point numbers consistently with the Lisp reader.
04f2d78b 20997 (digit_to_number): Move here from data.c. Make it static inline.
452f4150
PE
20998 (E_CHAR, EXP_INT): Remove, replacing with ...
20999 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
21000 (string_to_number): New function, replacing isfloat_string.
21001 This function checks for valid syntax and produces the resulting
21002 Lisp float number too. Rework it so that string-to-number
bc0a5c13 21003 no longer mishandles examples like "1.0e+". Use strtoumax,
d78050d6
PE
21004 so that overflow for non-base-10 numbers is reported only when
21005 there's no portable and simple way to convert to floating point.
452f4150 21006
67769ffc
PE
21007 * textprop.c (set_text_properties_1): Rewrite for clarity,
21008 and to avoid GCC warning about integer overflow.
21009
c20db43f
PE
21010 * intervals.h (struct interval): Use EMACS_INT for members
21011 where EMACS_UINT might cause problems. See
21012 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
21013 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
21014 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
21015 All uses changed.
37aa2f85
PE
21016 (offset_intervals): Tell GCC not to worry about length overflow
21017 when negating a negative length.
c20db43f 21018
2538aa2f
PE
21019 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
21020 (overrun_check_free): Likewise.
21021
f2d3008d
PE
21022 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
21023 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
21024 word size.
21025
ec8df744
PE
21026 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
21027 (gnutls_make_error): Rename local to avoid shadowing.
21028 (gnutls_emacs_global_deinit): ifdef out; not used.
21029 (Fgnutls_boot): Use const for pointer to readonly storage.
21030 Comment out unused local. Fix pointer signedness problems.
21031
640ee02d
PE
21032 * lread.c (openp): Don't stuff size_t into an 'int'.
21033 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
21034 about possible signed overflow.
21035
6048fb2a
PE
21036 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
21037 (GDK_KEY_g): Don't define if already defined.
21038 (xg_prepare_tooltip): Avoid pointer signedness problem.
21039 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
21040
fa3c87e1
PE
21041 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
21042 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
21043
2172544b
PE
21044 * xfns.c (Fx_window_property): Simplify a bit,
21045 to make a bit faster and to avoid GCC 4.6.0 warning.
21046 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
21047
9b821a21
PE
21048 * fns.c (internal_equal): Don't assume size_t fits in int.
21049
3c616cfa
PE
21050 * alloc.c (compact_small_strings): Tighten assertion a little.
21051
c2982e87
PE
21052 Replace pEd with more-general pI, and fix some printf arg casts.
21053 * lisp.h (pI): New macro, generalizing old pEd macro to other
21054 conversion specifiers. For example, use "...%"pI"d..." rather
21055 than "...%"pEd"...".
21056 (pEd): Remove. All uses replaced with similar uses of pI.
61bdb816 21057 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
c2982e87
PE
21058 * alloc.c (check_pure_size): Don't overflow by converting size to int.
21059 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
21060 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
21061 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
21062 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
21063 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
21064 64-bit hosts.
21065 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
21066 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
21067 * print.c (safe_debug_print, print_object): Likewise.
21068 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
21069 to int.
6f04d126
PE
21070 Use pI instead of if-then-else-abort. Use %p to avoid casts,
21071 avoiding the 0 flag, which is not portable.
c2982e87
PE
21072 * process.c (Fmake_network_process): Use pI to avoid cast.
21073 * region-cache.c (pp_cache): Likewise.
21074 * xdisp.c (decode_mode_spec): Likewise.
21075 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
21076 behavior on 64-bit hosts with printf arg.
6f04d126 21077 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
c2982e87
PE
21078 (x_stop_queuing_selection_requests): Likewise.
21079 (x_get_window_property): Don't truncate byte count to an 'int'
21080 when tracing.
0b432f21 21081
5e073ec7
PE
21082 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
21083 here, since it parses constructs like leading '-' and spaces,
21084 which are not wanted; and it overflows with large numbers.
21085 Instead, simply match F[0-9]+, which is what is wanted anyway.
21086
36372bf9
PE
21087 * alloc.c: Remove unportable assumptions about struct layout.
21088 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
21089 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
21090 (allocate_vectorlike, make_pure_vector): Use the new macros,
21091 plus offsetof, to remove unportable assumptions about struct layout.
21092 These assumptions hold on all porting targets that I know of, but
21093 they are not guaranteed, they're easy to remove, and removing them
21094 makes further changes easier.
21095
0b432f21
PE
21096 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
21097 This doesn't fix a bug but makes the code clearer.
bfd1c781
PE
21098 (string_overrun_cookie): Now const. Use initializers that
21099 don't formally overflow signed char, to avoid warnings.
000098c1
PE
21100 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
21101 can cause Emacs to crash when string overrun checking is enabled.
c7bda33c
PE
21102 (allocate_buffer): Don't assume sizeof (struct buffer) is a
21103 multiple of sizeof (EMACS_INT); it need not be, if
21104 alignof(EMACS_INT) < sizeof (EMACS_INT).
d0f4e1f5 21105 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
0b432f21 21106
895009e1
JB
211072011-04-26 Juanma Barranquero <lekktu@gmail.com>
21108
21109 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
21110
6a7a1b0b
TZ
211112011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
21112
21113 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
b5f869a7 21114 supposed to be handshaking. (Bug#8556)
6a7a1b0b
TZ
21115 Reported by Paul Eggert <eggert@cs.ucla.edu>.
21116
841a1577 211172011-04-26 Daniel Colascione <dan.colascione@gmail.com>
0438ce91
DC
21118
21119 * lisp.h (Qdebug): List symbol.
895009e1 21120 * eval.c (Qdebug): Restore global linkage.
0438ce91
DC
21121 * keyboard.c (debug-on-event): New variable.
21122 (handle_user_signal): Break into debugger when debug-on-event
21123 matches the current signal symbol.
21124
f2d3ba6f
DN
211252011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
21126
21127 * alloc.c (check_sblock, check_string_bytes)
21128 (check_string_free_list): Convert to standard C.
21129
42ce4c63
TZ
211302011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
21131
21132 * w32.c (emacs_gnutls_push): Fix typo.
21133
825cd63c
EZ
211342011-04-25 Eli Zaretskii <eliz@gnu.org>
21135
fb11d64d
EZ
21136 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
21137 "cast to pointer from integer of different size".
21138
825cd63c
EZ
21139 Improve doprnt and its use in verror. (Bug#8545)
21140 * doprnt.c (doprnt): Document the set of format control sequences
21141 supported by the function. Use SAFE_ALLOCA instead of always
21142 using `alloca'.
21143
21144 * eval.c (verror): Don't limit the buffer size at size_max-1, that
21145 is one byte too soon. Don't use xrealloc; instead xfree and
21146 xmalloc anew.
21147
e061a11b
TZ
211482011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
21149
21150 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
21151 callbacks stage.
21152
21153 * gnutls.c: Renamed global_initialized to
21154 gnutls_global_initialized. Added internals for the
21155 :verify-hostname-error, :verify-error, and :verify-flags
21156 parameters of `gnutls-boot' and documented those parameters in the
21157 docstring. Start callback support.
9173deec
JB
21158 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
21159 unless a fatal error occurred. Call gnutls_alert_send_appropriate
21160 on error. Return error code.
e061a11b
TZ
21161 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
21162 (emacs_gnutls_read): Likewise.
21163 (Fgnutls_boot): Return handshake error code.
21164 (emacs_gnutls_handle_error): New function.
21165 (wsaerror_to_errno): Likewise.
21166
21167 * w32.h (emacs_gnutls_pull): Add prototype.
21168 (emacs_gnutls_push): Likewise.
21169
21170 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
21171 (emacs_gnutls_push): Likewise.
21172
211732011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
21174
21175 * process.c (wait_reading_process_output): Check if GnuTLS
21176 buffered some data internally if no FDs are set for TLS
21177 connections.
21178
21179 * makefile.w32-in (OBJ2): Add gnutls.$(O).
21180 (LIBS): Link to USER_LIBS.
21181 ($(BLD)/gnutls.$(0)): New target.
21182
fa6996bc
EZ
211832011-04-24 Eli Zaretskii <eliz@gnu.org>
21184
eb35682e
EZ
21185 * xdisp.c (handle_single_display_spec): Rename the
21186 display_replaced_before_p argument into display_replaced_p, to
21187 make it consistent with the commentary. Fix typos in the
21188 commentary.
21189
e2ad650c
EZ
21190 * textprop.c (syms_of_textprop): Remove dead code.
21191 (copy_text_properties): Delete obsolete commentary about an
21192 interface that was deleted long ago. Fix typos in the description
21193 of arguments.
21194
1b2de274
EZ
21195 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
21196 to changes in oldXMenu/XMenu.h from 2011-04-16.
21197 <menu_help_message, prev_menu_help_message>: Constify.
21198 (IT_menu_make_room): menu->help_text is now `const char **';
21199 adjust.
21200
21201 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
21202 to changes in oldXMenu/XMenu.h from 2011-04-16.
21203 (struct XMenu): Declare `help_text' `const char **'.
21204
21205 * xfaces.c <Qunspecified>: Make extern again.
21206
21207 * syntax.c: Include sys/types.h before including regex.h, as
75f1671a 21208 required by POSIX.
1b2de274 21209
762b15be
EZ
21210 * doc.c (get_doc_string): Improve the format passed to `error'.
21211
21212 * doprnt.c (doprnt): Improve commentary.
21213
21214 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
21215
21216 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
21217 them with etags.
21218
f1052e5d
EZ
21219 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
21220 changes in globals.h immediately force recompilation.
762b15be
EZ
21221 (TAGS): Depend on $(CURDIR)/m/intel386.h and
21222 $(CURDIR)/s/ms-w32.h.
21223 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
f1052e5d 21224
fa6996bc
EZ
21225 * character.c (Fchar_direction): Function deleted.
21226 (syms_of_character): Don't defsubr it.
21227 <char-direction-table>: Deleted.
21228
e6c3da20
EZ
212292011-04-23 Eli Zaretskii <eliz@gnu.org>
21230
21231 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
21232 * doprnt.c: Include limits.h.
21233 (SIZE_MAX): New macro.
04f2d78b
CB
21234 (doprnt): Return a size_t value. 2nd arg is now size_t.
21235 Many local variables are now size_t instead of int or unsigned.
e6c3da20
EZ
21236 Improve overflow protection. Support `l' modifier for integer
21237 conversions. Support %l conversion. Don't assume an EMACS_INT
21238 argument for integer conversions and for %c.
21239
21240 * lisp.h (doprnt): Restore prototype.
21241
21242 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
21243 $(SRC)/character.h.
21244
21245 * Makefile.in (base_obj): Add back doprnt.o.
21246
21247 * deps.mk (doprnt.o): Add back prerequisites.
21248 (callint.o): Depend on character.h.
21249
21250 * eval.c (internal_lisp_condition_case): Include the handler
21251 representation in the error message.
21252 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
21253 when breaking from the loop.
21254
21255 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
21256
21257 * callint.c (Fcall_interactively): When displaying error message
21258 about invalid control letter, pass the character's codepoint, not
21259 a pointer to its multibyte form. Improve display of the character
21260 in octal and display also its hex code.
21261
21262 * character.c (char_string): Use %x to display the (unsigned)
21263 codepoint of an invalid character, to avoid displaying a bogus
21264 negative value.
21265
21266 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
21267 `error', not SYMBOL_NAME itself.
21268
21269 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
21270 character arguments to `error'.
21271
21272 * charset.c (check_iso_charset_parameter): Fix incorrect argument
21273 to `error' in error message about FINAL_CHAR argument. Make sure
21274 FINAL_CHAR is a character, and use %c when it is passed as
21275 argument to `error'.
21276
4ffd0d6b 212772011-04-23 Eli Zaretskii <eliz@gnu.org>
97a93095
EZ
21278
21279 * s/ms-w32.h (localtime): Redirect to sys_localtime.
21280
21281 * w32.c: Include <time.h>.
21282 (sys_localtime): New function.
21283
4ffd0d6b 212842011-04-23 Chong Yidong <cyd@stupidchicken.com>
c17819f4
CY
21285
21286 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
21287
4ffd0d6b 21288 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
aac0c6e3 21289
4ffd0d6b 212902011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
aac0c6e3 21291
4ffd0d6b
GM
21292 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
21293 zombies (Bug#8467).
aac0c6e3 21294
04c56954
EZ
212952011-04-19 Eli Zaretskii <eliz@gnu.org>
21296
21297 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
21298 gl_state.e_property when gl_state.object is Qt.
21299
21300 * insdel.c (make_gap_larger): Remove limitation of buffer size
21301 to <= INT_MAX.
21302
16a43933
CY
213032011-04-18 Chong Yidong <cyd@stupidchicken.com>
21304
21305 * xdisp.c (lookup_glyphless_char_display)
21306 (produce_glyphless_glyph): Handle cons cell entry in
21307 glyphless-char-display.
21308 (Vglyphless_char_display): Document it.
21309
21310 * term.c (produce_glyphless_glyph): Handle cons cell entry in
21311 glyphless-char-display.
21312
4581706e
CY
213132011-04-17 Chong Yidong <cyd@stupidchicken.com>
21314
21315 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
21316
21317 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
21318
21319 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
21320 definition for no-X builds.
21321
4887c6e2 213222011-04-16 Paul Eggert <eggert@cs.ucla.edu>
764430a3 21323
fd35b6f9
PE
21324 Static checks with GCC 4.6.0 and non-default toolkits.
21325
5c1ccb01
PE
21326 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
21327
006c5daa
PE
21328 * process.c (keyboard_bit_set): Define only if SIGIO.
21329 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
21330 (send_process): Repair possible setjmp clobbering.
21331
efc736d3
PE
21332 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
21333
4e2fe2e6
PE
21334 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
21335
f97334a2
PE
21336 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
21337
4e75f29d
PE
21338 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
21339 Define only if needed.
21340
90efadd1
PE
21341 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
21342 by pacifying GCC about it. Maybe it's time to retire it?
875975e9 21343 * xfaces.c (USG, __TIMEVAL__): Likewise.
90efadd1 21344
3c647824
PE
21345 * dispextern.h (struct redisplay_interface): Rename param
21346 to avoid shadowing.
e264f262 21347 * termhooks.h (struct terminal): Likewise.
761383f4 21348 * xterm.c (xembed_send_message): Likewise.
3c647824 21349
b58c5c4a
PE
21350 * insdel.c (make_gap_smaller): Define only if
21351 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
21352
cad59032
PE
21353 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
21354 it.
21355
c339dc2e
PE
21356 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
21357 so that we aren't warned about unused symbols.
21358
91a3e27b
PE
21359 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
21360
399c71d3 21361 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
7a3fb125 21362
8ffc96f5
PE
21363 * xfns.c (x_real_positions): Mark locals as initialized.
21364
eef9bc79
PE
21365 * xmenu.c (xmenu_show): Don't use uninitialized vars.
21366
098db9dd
PE
21367 * xterm.c: Fix problems found by static analysis with other toolkits.
21368 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
dda3aedd
PE
21369 (x_dispatch_event): Declare static if USE_GTK, and
21370 define if USE_GTK || USE_X_TOOLKIT.
098db9dd 21371 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
dda3aedd 21372 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
841a1577
JB
21373 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
21374 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
098db9dd 21375
eb18f6cc
PE
21376 * xmenu.c (menu_help_callback): Pointer type fixes.
21377 Use const pointers when pointing at readonly data. Avoid pointer
21378 signedness clashes.
21379 (FALSE): Remove unused macro.
21380 (update_frame_menubar): Remove unused decl.
21381
1fe72bf8
PE
21382 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
21383
60d9e1db
PE
21384 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
21385 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
21386 (single_menu_item): Rename local to avoid shadowing.
21387
39261c26
PE
21388 * keyboard.c (make_lispy_event): Remove unused local var.
21389
018c5e19
PE
21390 * frame.c, frame.h (x_get_resource_string): Bring this back, but
21391 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
21392
63d2b86e
PE
21393 * bitmaps: Change bitmaps from unsigned char back to the X11
21394 compatible char. Avoid the old compiler warnings about
21395 out-of-range initializers by using, for example, '\xab' rather
21396 than 0xab.
21397
aefd87e1
PE
21398 * xgselect.c (xgselect_initialize): Check vs interface
21399 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
21400
bf501fb9
PE
21401 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
21402
e9829fdf
PE
21403 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
21404 to read-only memory.
21405
1086c095
PE
21406 * fns.c (vector): Remove; this old hack is no longer needed.
21407
2baccd04 21408 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
401f10cb 21409 Remove unused var.
dde42981 21410 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
2baccd04 21411
72391843 21412 * xrdb.c (x_load_resources): Omit unused local.
3565b346 21413
436c16df 21414 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
8a94ea33 21415 (x_window): Rename locals to avoid shadowing.
dc5ddd85 21416 (USG): Use the kludged USG macro, to pacify gcc.
436c16df 21417
92bb796d 21418 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
bbbef9e1 21419 (x_term_init): Remove local to avoid shadowing.
92bb796d 21420
764430a3 21421 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
4887c6e2
PE
21422
21423 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
21424 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
21425
d1dfb56c
EZ
214262011-04-16 Eli Zaretskii <eliz@gnu.org>
21427
c4354cb4
EZ
21428 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
21429
d1dfb56c
EZ
21430 Fix regex.c, syntax.c and friends for buffers > 2GB.
21431 * syntax.h (struct gl_state_s): Declare character position members
21432 EMACS_INT.
21433
21434 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
21435
04f2d78b
CB
21436 * textprop.c (verify_interval_modification, interval_of):
21437 Declare arguments EMACS_INT.
d1dfb56c
EZ
21438
21439 * intervals.c (adjust_intervals_for_insertion): Declare arguments
21440 EMACS_INT.
21441
21442 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
21443
21444 * indent.c (Fvertical_motion): Local variable it_start is now
21445 EMACS_INT.
21446
21447 * regex.c (re_match, re_match_2, re_match_2_internal)
21448 (bcmp_translate, regcomp, regexec, print_double_string)
21449 (group_in_compile_stack, re_search, re_search_2, regex_compile)
21450 (re_compile_pattern, re_exec): Declare arguments and local
21451 variables `size_t' and `ssize_t' and return values `regoff_t', as
21452 appropriate.
21453 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
21454 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
21455 <compile_stack_type>: `size' and `avail' are now `size_t'.
21456
21457 * regex.h <regoff_t>: Use ssize_t, not int.
21458 (re_search, re_search_2, re_match, re_match_2): Arguments that
21459 specify buffer/string position and length are now ssize_t and
21460 size_t. Return type is regoff_t.
21461
613052cd
BK
214622011-04-16 Ben Key <bkey76@gmail.com>
21463
21464 * nsfont.m: Fixed bugs in ns_get_family and
21465 ns_descriptor_to_entity that were caused by using free to
21466 deallocate memory blocks that were allocated by xmalloc (via
21467 xstrdup). This caused Emacs to crash when compiled with
21468 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
21469 --enable-checking=xmallocoverrun). xfree is now used to
21470 deallocate these memory blocks.
21471
4170f62f 214722011-04-15 Paul Eggert <eggert@cs.ucla.edu>
3e047f51 21473
71b41406
PE
21474 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
21475
9587a89d
PE
21476 emacs_write: Accept and return EMACS_INT for sizes.
21477 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
21478 et seq.
21479 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
21480 Accept and return EMACS_INT.
21481 (emacs_gnutls_write): Return the number of bytes written on
21482 partial writes.
21483 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
273a5f82
PE
21484 (emacs_read, emacs_write): Remove check for negative size, as the
21485 Emacs source code has been audited now.
9587a89d
PE
21486 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
21487 (emacs_read, emacs_write): Use it.
273a5f82
PE
21488 * process.c (send_process): Adjust to the new signatures of
21489 emacs_write and emacs_gnutls_write. Do not attempt to store
21490 a byte offset into an 'int'; it might overflow.
9587a89d 21491 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
273a5f82 21492
3e047f51
PE
21493 * sound.c: Don't assume sizes fit in 'int'.
21494 (struct sound_device.period_size, alsa_period_size):
9c3c56a7 21495 Return EMACS_INT, not int.
3e047f51 21496 (struct sound_device.write, vox_write, alsa_write):
9c3c56a7
PE
21497 Accept EMACS_INT, not int.
21498 (wav_play, au_play): Use EMACS_INT to store sizes and to
3e047f51
PE
21499 record read return values.
21500
cc39a9db
BK
215012011-04-15 Ben Key <bkey76@gmail.com>
21502
c9d0ec6d
JB
21503 * keyboard.c (Qundefined): Don't declare static since it is used
21504 in nsfns.m.
21505 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
21506 static since they are used in nsfont.m.
cc39a9db 21507
6c60eb9f
SM
215082011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
21509
21510 * process.c (Qprocessp): Don't declare static.
21511 * lisp.h (Qprocessp): Declare again.
21512
7990b61a
JB
215132011-04-15 Juanma Barranquero <lekktu@gmail.com>
21514
21515 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
21516
5d4cb038
PE
215172011-04-14 Paul Eggert <eggert@cs.ucla.edu>
21518
8bd7b830 21519 Improve C-level modularity by making more things 'static'.
cd64ea1d 21520
e3b27b31
PE
21521 Don't publish debugger-only interfaces to other modules.
21522 * lisp.h (safe_debug_print, debug_output_compilation_hack):
21523 (verify_bytepos, count_markers): Move decls to the only modules
21524 that need them.
21525 * region-cache.h (pp_cache): Likewise.
21526 * window.h (check_all_windows): Likewise.
21527 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
21528
5d4cb038
PE
21529 * sysdep.c (croak): Now static, if
21530 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
21531 * syssignal.h (croak): Declare only if not static.
69003fd8
PE
21532
21533 * alloc.c (refill_memory_reserve): Now static if
21534 !defined REL_ALLOC || defined SYSTEM_MALLOC.
21535 * lisp.h (refill_memory_reserve): Declare only if not static.
93ea6e8f 21536
e87b6180
PE
21537 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
21538 Define only if USE_LUCID.
21539
ac64929e
PE
21540 * xrdb.c (x_customization_string, x_rm_string): Now static.
21541
6f37259d
PE
21542 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
21543 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
21544
1683e3ab
PE
21545 * xdisp.c (draw_row_with_mouse_face): Now static.
21546 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
21547
de9c2632
PE
21548 * window.h (check_all_windows): Mark externally visible.
21549
2b96acb7
PE
21550 * window.c (window_deletion_count): Now static.
21551
21552 * undo.c: Make symbols static if they're not exported.
21553 (last_undo_buffer, last_boundary_position, pending_boundary):
21554 Now static.
21555
50436f33
PE
21556 * textprop.c (interval_insert_behind_hooks): Now static.
21557 (interval_insert_in_front_hooks): Likewise.
21558
64520e5c
PE
21559 * term.c: Make symbols static if they're not exported.
21560 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
21561 (max_frame_lines, tty_set_terminal_modes):
21562 (tty_reset_terminal_modes, tty_turn_off_highlight):
21563 (get_tty_terminal): Now static.
21564 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
21565 * termhooks.h (term_mouse_moveto): Do not declare if
8bd7b830 21566 HAVE_WINDOW_SYSTEM.
64520e5c
PE
21567 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
21568 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
21569
1fa53021
PE
21570 * sysdep.c: Make symbols static if they're not exported.
21571 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
21572 Now static.
21573 (sigprocmask_set, full_mask): Remove; unused.
21574 (wait_debugging): Mark as visible.
21575 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
21576 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
21577
d4b43b22
PE
21578 * syntax.c (syntax_temp): Define only if !__GNUC__.
21579
b7c513d0
PE
21580 * sound.c (current_sound_device, current_sound): Now static.
21581
989b29ad
PE
21582 * search.c (searchbufs, searchbuf_head): Now static.
21583
13a55a78
PE
21584 * scroll.c (scroll_cost): Remove; unused.
21585 * dispextern.h (scroll_cost): Remove decl.
21586
de68a1fc
PE
21587 * region-cache.h (pp_cache): Mark as externally visible.
21588
40ccffa6
PE
21589 * process.c: Make symbols static if they're not exported.
21590 (process_tick, update_tick, create_process, chan_process):
21591 (Vprocess_alist, proc_buffered_char, datagram_access):
21592 (fd_callback_data, send_process_frame, process_sent_to): Now static.
21593 (deactivate_process): Mark defn as static, as well as decl.
21594 * lisp.h (create_process): Remove decl.
21595 * process.h (chan_process, Vprocess_alist): Remove decls.
21596
ad64fc97
PE
21597 * print.c: Make symbols static if they're not exported.
21598 (print_depth, new_backquote_output, being_printed, print_buffer):
21599 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
21600 (print_interval, print_number_index, initial_stderr_stream):
21601 Now static.
21602 * lisp.h (Fprinc): Remove decl.
21603 (debug_output_compilation_hack): Mark as externally visible.
21604
adddb265
PE
21605 * sysdep.c (croak): Move decl from here to syssignal.h.
21606 * syssignal.h (croak): Put it here, so the API can be checked when
21607 'croak' is called from dissociate_if_controlling_tty.
21608
1717ede2
PE
21609 * minibuf.c: Make symbols static if they're not exported.
21610 (minibuf_save_list, choose_minibuf_frame): Now static.
21611 * lisp.h (choose_minibuf_frame): Remove decl.
21612
fa5fb2bc
PE
21613 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
21614
1e3890d1
PE
21615 * lread.c: Make symbols static if they're not exported.
21616 (read_objects, initial_obarray, oblookup_last_bucket_number):
21617 Now static.
21618 (make_symbol): Remove; unused.
21619 * lisp.h (initial_obarray, make_symbol): Remove decls.
21620
8a1414fa
PE
21621 * keyboard.c: Make symbols static if they're not exported.
21622 (single_kboard, recent_keys_index, total_keys, recent_keys):
21623 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
21624 (this_single_command_key_start, echoing, last_auto_save):
21625 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
21626 (command_loop, echo_now, keyboard_init_hook, help_char_p):
21627 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
21628 (Vlispy_mouse_stem, double_click_count):
21629 Now static.
21630 (force_auto_save_soon): Define only if SIGDANGER.
21631 (ignore_mouse_drag_p): Now static if
21632 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
21633 (print_help): Remove; unused.
21634 (stop_character, last_timer_event): Mark as externally visible.
21635 * keyboard.h (ignore_mouse_drag_p): Declare only if
21636 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
21637 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
21638 * lisp.h (echoing): Remove decl.
21639 (force_auto_save_soon): Declare only if SIGDANGER.
21640 * xdisp.c (redisplay_window): Simplify code, to make it more
21641 obvious that ignore_mouse_drag_p is not accessed if !defined
21642 USE_GTK && !defined HAVE_NS.
21643
93ea6e8f
PE
21644 * intervals.c: Make symbols static if they're not exported.
21645 (merge_properties_sticky, merge_interval_right, delete_interval):
21646 Now static.
21647 * intervals.h (merge_interval_right, delete_interval): Remove decls.
21648
77382fcc
PE
21649 * insdel.c: Make symbols static if they're not exported.
21650 However, leave prepare_to_modify_buffer alone. It's never
21651 called from outside this function, but that appears to be a bug.
21652 (combine_after_change_list, combine_after_change_buffer):
4889fc82 21653 (adjust_after_replace, signal_before_change): Now static.
77382fcc
PE
21654 (adjust_after_replace_noundo): Remove; unused.
21655 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
4889fc82 21656 (signal_before_change): Remove decls.
77382fcc 21657
9306c32e
PE
21658 * indent.c (val_compute_motion, val_vmotion): Now static.
21659
cd44d2eb
PE
21660 * image.c: Make symbols static if they're not exported.
21661 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
21662 if USE_GTK.
21663 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
21664 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
21665
ad9a7a06
PE
21666 * fringe.c (standard_bitmaps): Now static.
21667 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
21668
81626931
PE
21669 * frame.c: Make symbols static if they're not exported.
21670 (x_report_frame_params, make_terminal_frame): Now static.
21671 (get_frame_param): Now static, unless HAVE_NS.
21672 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
21673 (x_get_resource_string): Remove; not used.
21674 * frame.h (make_terminal_frame, x_report_frame_params):
21675 (x_get_resource_string); Remove decls.
21676 (x_fullscreen_adjust): Declare only if WINDOWSNT.
21677 * lisp.h (get_frame_param): Declare only if HAVE_NS.
21678
239f9db9
PE
21679 * font.c, fontset.c: Make symbols static if they're not exported.
21680 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
21681 (FACE_SUITABLE_FOR_CHAR_P): Use it.
21682 * font.c (font_close_object): Now static.
21683 * font.h (font_close_object): Remove.
21684 * fontset.c (FONTSET_OBJLIST): Remove.
21685 (free_realized_fontset) #if-0 the body, which does nothing.
21686 (face_suitable_for_char_p): #if-0, as it's never called.
21687 * fontset.h (face_suitable_for_char_p): Remove decl.
04f2d78b
CB
21688 * xfaces.c (face_at_string_position):
21689 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
239f9db9
PE
21690 since 0 is always ASCII.
21691
dfcf3579
PE
21692 * fns.c (weak_hash_tables): Now static.
21693
5045092b
PE
21694 * fileio.c: Make symbols static if they're not exported.
21695 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
21696 (Vwrite_region_annotation_buffers): Now static.
21697
57a96f5c
PE
21698 * eval.c: Make symbols static if they're not exported.
21699 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
21700 * lisp.h (backtrace_list): Remove decl.
21701
35f08c38
PE
21702 * emacs.c: Make symbols static if they're not exported.
21703 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
21704 (fatal_error_code, fatal_error_signal_hook, standard_args):
21705 Now static.
21706 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
21707 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
21708 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
21709 * lisp.h (fatal_error_signal_hook): Remove decl.
21710 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
21711
f44bd759
PE
21712 * editfns.c: Move a (normally-unused) function to its only use.
21713 * editfns.c, lisp.h (get_operating_system_release): Remove.
21714 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
21715 worth the hassle of breaking this out.
21716
b532497d
PE
21717 * xterm.c: Make symbols static if they're not exported.
21718 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
21719 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
21720 (x_destroy_window, x_delete_display):
21721 Now static.
21722 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
21723 (x_mouse_leave): Remove; unused.
21724 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
21725 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
21726 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
21727 Remove decls.
21728 (x_mouse_leave): Declare only if WINDOWSNT.
21729 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
21730 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
21731 USE_X_TOOLKIT.
21732
1675728f
PE
21733 * ftxfont.c: Make symbols static if they're not exported.
21734 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
21735 HAVE_FREETYPE.
21736 * font.h (ftxfont_driver): Likewise.
21737
e4cebfca
PE
21738 * xfns.c: Make symbols static if they're not exported.
21739 (x_last_font_name, x_display_info_for_name):
21740 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
21741 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
21742 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
21743 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
21744 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
21745 (last_show_tip_args): Now static.
21746 (xic_defaut_fontset, xic_create_fontsetname): Define only if
21747 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
21748 (x_screen_planes): Remove; unused.
21749 * dispextern.h (x_screen_planes): Remove decl.
21750
5bf46f05
PE
21751 * dispnew.c: Make symbols static if they're not exported.
21752 * dispextern.h (redraw_garbaged_frames, scrolling):
21753 (increment_row_positions): Remove.
21754 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
21755 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
21756 Now static.
21757 (redraw_garbaged_frames): Remove; unused.
21758
435f4c28
PE
21759 * xfaces.c: Make symbols static if they're not exported.
21760 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
21761 Remove decls.
21762 * xterm.h (defined_color): Remove decls.
21763 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
21764 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
21765 (menu_face_changed_default, defined_color, free_realized_face):
21766 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
21767 (ascii_face_of_lisp_face): Remove; unused.
21768
8524aef3
PE
21769 * xdisp.c: Make symbols static if they're not exported.
21770 * dispextern.h (scratch_glyph_row, window_box_edges):
21771 (glyph_to_pixel_coords, set_cursor_from_row):
21772 (get_next_display_element, set_iterator_to_next):
21773 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
21774 (show_mouse_face): Remove decls
21775 * frame.h (message_buf_print): Likewise.
21776 * lisp.h (pop_message, set_message, check_point_in_composition):
21777 Likewise.
21778 * xterm.h (set_vertical_scroll_bar): Likewise.
21779 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
21780 (message_buf_print, scratch_glyph_row, displayed_buffer):
21781 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
21782 (get_next_display_element, show_mouse_face, window_box_edges):
21783 (frame_to_window_pixel_xy, check_point_in_composition):
21784 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
21785 (glyph_to_pixel_coords): Remove; unused.
21786
16390cd2
PE
21787 * dired.c (file_name_completion): Now static.
21788
21789 * dbusbind.c (xd_in_read_queued_messages): Now static.
21790
a25f4dfa
PE
21791 * lisp.h (circular_list_error, FOREACH): Remove; unused.
21792 * data.c (circular_list_error): Remove.
21793
14a9c8df
PE
21794 * commands.h (last_point_position, last_point_position_buffer):
21795 (last_point_position_window): Remove decls.
21796 * keyboard.c: Make these variables static.
21797
04f2d78b
CB
21798 * coding.h (coding, code_convert_region, encode_coding_gap):
21799 Remove decls.
74ab6df5
PE
21800 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
21801 (iso_code_class, detect_coding, code_convert_region): Now static.
21802 (encode_coding_gap): Remove; unused.
21803
38dfbee1
PE
21804 * chartab.c (chartab_chars, chartab_bits): Now static.
21805
a2cb4e63
PE
21806 * charset.h (charset_iso_8859_1): Remove decl.
21807 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
21808 Now static.
21809
127198fd
PE
21810 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
21811 * ccl.c (Vccl_program_table): Now static.
21812 (check_ccl_update): Remove; unused.
21813
d85b608f
PE
21814 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
21815 * category.h: ... from here.
21816 * category.c (check_category_table, set_category_set): Now static.
21817
31cd66f3
PE
21818 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
21819 * lisp.h: Remove these decls.
21820
c358e587
PE
21821 * buffer.c (buffer_count): Remove unused var.
21822
e78aecca
PE
21823 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
21824 so that it's not optimized away.
21825 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
21826 * dispextern.h (bidi_dump_cached_states): Remove, since it's
21827 exported only to the debugger.
21828
e192d7d3 21829 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
04f2d78b 21830 * atimer.h (run_all_atimers): Remove; not exported.
e192d7d3 21831
92470028
PE
21832 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
21833 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
21834 was inaccessible from Lisp.
21835 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
21836 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
21837
244ed907
PE
21838 alloc.c: Import and export fewer symbols, and remove unused items.
21839 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
21840 is defined.
21841 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
21842 it's not optimized away by whole-program optimization.
21843 (message_enable_multibyte, free_misc): Remove.
21844 (catchlist, handlerlist, mark_backtrace):
21845 Declare only if BYTE_MARK_STACK.
21846 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
21847 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
21848 (message_enable_multibyte): Remove decl.
21849 (free_misc, interval_free_list, float_block, float_block_index):
21850 (n_float_blocks, float_free_list, cons_block, cons_block_index):
21851 (cons_free_list, last_marked_index):
21852 Now static.
21853 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
21854 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
21855 (mark_backtrace): Define only if BYTE_MARK_STACK.
21856 * xdisp.c (message_enable_multibyte): Now static.
21857
61c2b50e 21858 Declare Lisp_Object Q* variables to be 'static' if not exported.
955cbe7b
PE
21859 This makes it easier for human readers (and static analyzers)
21860 to see whether these variables are used from other modules.
21861 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
21862 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
21863 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
21864 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
21865 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
21866 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
21867 * xmenu.c, xselect.c:
21868 Declare Q* vars static if they are not used in other modules.
21869 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
21870 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
21871 Remove decls of unexported vars.
21872 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
21873
95c82688
PE
21874 * lisp.h (DEFINE_FUNC): Make sname 'static'.
21875
16a97296
PE
21876 Make Emacs functions such as Fatom 'static' by default.
21877 This makes it easier for human readers (and static analyzers)
21878 to see whether these functions can be called from other modules.
21879 DEFUN now defines a static function. To make the function external
21880 so that it can be used in other C modules, use the new macro DEFUE.
8bd7b830
PE
21881 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
21882 (Finit_image_library):
16a97296
PE
21883 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
21884 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
21885 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
21886 Remove decls, since these functions are now static.
21887 (Funintern, Fget_internal_run_time): New decls, since these functions
21888 were already external.
95c82688 21889
16a97296
PE
21890 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
21891 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
21892 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
21893 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
21894 * keyboard.c, keymap.c, lread.c:
21895 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
21896 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
21897 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
21898 Mark functions with DEFUE instead of DEFUN,
21899 if they are used in other modules.
21900 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
21901 decls for now-static functions.
21902 * buffer.h (Fdelete_overlay): Remove decl.
21903 * callproc.c (Fgetenv_internal): Mark as internal.
21904 * composite.c (Fremove_list_of_text_properties): Remove decl.
21905 (Fcomposition_get_gstring): New forward static decl.
21906 * composite.h (Fcomposite_get_gstring): Remove decl.
21907 * dired.c (Ffile_attributes): New forward static decl.
21908 * doc.c (Fdocumntation_property): New forward static decl.
21909 * eval.c (Ffetch_bytecode): New forward static decl.
21910 (Funintern): Remove extern decl; now in .h file where it belongs.
21911 * fileio.c (Fmake_symbolic_link): New forward static decl.
21912 * image.c (Finit_image_library): New forward static decl.
21913 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
21914 * intervals.h (Fprevious_property_change):
21915 (Fremove_list_of_text_properties): Remove decls.
21916 * keyboard.c (Fthis_command_keys): Remove decl.
21917 (Fcommand_execute): New forward static decl.
21918 * keymap.c (Flookup_key): New forward static decl.
21919 (Fcopy_keymap): Now static.
21920 * keymap.h (Flookup_key): Remove decl.
21921 * process.c (Fget_process): New forward static decl.
21922 (Fprocess_datagram_address): Mark as internal.
21923 * syntax.c (Fsyntax_table_p): New forward static decl.
21924 (skip_chars): Remove duplicate decl.
21925 * textprop.c (Fprevious_property_change): New forward static decl.
21926 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
21927 Now internal.
21928 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
21929 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
21930
785bbd42
PE
21931 * editfns.c (Fformat): Remove unreachable code.
21932
8b913b57
AS
219332011-04-14 Andreas Schwab <schwab@linux-m68k.org>
21934
21935 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
21936 change. (Bug#8496)
21937
a6744a35
EZ
219382011-04-13 Eli Zaretskii <eliz@gnu.org>
21939
21940 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
21941 when at ZV. (Bug#8487)
21942
e7974947
AS
219432011-04-12 Andreas Schwab <schwab@linux-m68k.org>
21944
baad03f0
AS
21945 * charset.c (Fclear_charset_maps): Use xfree instead of free.
21946 (Bug#8437)
21947 * keyboard.c (parse_tool_bar_item): Likewise.
21948 * sound.c (sound_cleanup, alsa_close): Likewise.
21949 * termcap.c (tgetent): Likewise.
21950 * xfns.c (x_default_font_parameter): Likewise.
21951 * xsettings.c (read_and_apply_settings): Likewise.
21952
e7974947
AS
21953 * alloc.c (overrun_check_malloc, overrun_check_realloc)
21954 (overrun_check_free): Protoize.
21955
28272684
PE
219562011-04-12 Paul Eggert <eggert@cs.ucla.edu>
21957
21958 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
21959 since callers should never pass a negative size.
21960 Change the signature to match that of plain 'read' and 'write'; see
21961 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
21962 * lisp.h: Update prototypes of emacs_write and emacs_read.
21963
11997c76
EZ
219642011-04-11 Eli Zaretskii <eliz@gnu.org>
21965
21966 * xdisp.c (redisplay_window): Don't try to determine the character
21967 position of the scroll margin if the window start point w->startp
e896f03c 21968 is outside the buffer's accessible region. (Bug#8468)
11997c76 21969
8a2cbd72
EZ
219702011-04-10 Eli Zaretskii <eliz@gnu.org>
21971
21972 Fix write-region and its subroutines for buffers > 2GB.
21973 * fileio.c (a_write, e_write): Modify declaration of arguments and
21974 local variables to support buffers larger than 2GB.
21975 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
21976
21977 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
21978 argument, local variables, and return value.
21979
21980 * lisp.h: Update prototypes of emacs_write and emacs_read.
21981
21982 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
21983
4073e537 219842011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 21985
1ebfdcb6
PE
21986 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
21987
b2ded58d
PE
21988 Fix more problems found by GCC 4.6.0's static checks.
21989
7d66342c
PE
21990 * xdisp.c (vmessage): Use a better test for character truncation.
21991
bbf47d44
PE
21992 * charset.c (load_charset_map): <, not <=, for optimization,
21993 and to avoid potential problems with integer overflow.
9248994d 21994 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 21995 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 21996 * editfns.c (Fformat): Likewise.
1e69125e 21997 * syntax.c (skip_chars): Likewise.
3befa583 21998
e3019616
PE
21999 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
22000 This also lets GCC 4.6.0 generate slightly better loop code.
22001
becfa255
PE
22002 * callint.c (Fcall_interactively): <, not <=, for optimization.
22003 (Fcall_interactively): Count the number of arguments produced,
22004 not the number of arguments given. This is simpler and lets GCC
22005 4.6.0 generate slightly better code.
22006
dae0cd48
PE
22007 * ftfont.c: Distingish more carefully between FcChar8 and char.
22008 The previous code passed unsigned char * to a functions like
22009 strlen and xstrcasecmp that expect char *, which does not
22010 conform to the C standard.
22011 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
22012 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
22013 char * when the C standard requires it.
22014
76032d70
PE
22015 * keyboard.c (read_char): Remove unused var.
22016
eb3f1cc8
PE
22017 * eval.c: Port to Windows vsnprintf (Bug#8435).
22018 Include <limits.h>.
22019 (SIZE_MAX): Define if the headers do not.
22020 (verror): Do not give up if vsnprintf returns a negative count.
22021 Instead, grow the buffer. This ports to Windows vsnprintf, which
22022 does not conform to C99. Problem reported by Eli Zaretskii.
22023 Also, simplify the allocation scheme, by avoiding the need for
22024 calling realloc, and removing the ALLOCATED variable.
22025
70476b54
PE
22026 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
22027
12020a9e
PE
22028 Remove invocations of doprnt, as Emacs now uses vsnprintf.
22029 But keep the doprint source code for now, as we might revamp it
22030 and use it again (Bug#8435).
ea6c7ae6
PE
22031 * lisp.h (doprnt): Remove.
22032 * Makefile.in (base_obj): Remove doprnt.o.
22033 * deps.mk (doprnt.o): Remove.
22034
5fdb398c
PE
22035 error: Print 32- and 64-bit integers portably (Bug#8435).
22036 Without this change, on typical 64-bit hosts error ("...%d...", N)
22037 was used to print both 32- and 64-bit integers N, which relied on
22038 undefined behavior.
61bdb816 22039 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
5fdb398c
PE
22040 * lisp.h (error, verror): Mark as printf-like functions.
22041 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
22042 Report overflow in size calculations when allocating printf buffer.
22043 Do not truncate output string at its first null byte.
22044 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
22045 Truncate the output at a character boundary, since vsnprintf does not
22046 do that.
22047 * charset.c (check_iso_charset_parameter): Convert internal
22048 character to string before calling 'error', since %c now has the
22049 printf meaning.
22050 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
22051 overflow when computing char to be passed to 'error'. Do not
22052 pass Lisp_Object to 'error'; pass the integer instead.
22053 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
22054 formatted with plain %d.
22055
b189fa66
PE
22056 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
22057
bff87ef0
PE
22058 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
22059
7e2cac20
PE
22060 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
22061
ce4d90b5
PE
22062 * xterm.c (x_catch_errors): Remove duplicate declaration.
22063
266c9547
PE
22064 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
22065
79c49ad2
PE
22066 * xdisp.c, lisp.h (message_nolog): Remove; unused.
22067
368f4090
JM
220682011-04-10 Jim Meyering <meyering@redhat.com>
22069
22070 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
22071 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
22072 return ssize_t not "int", and use size_t as the buffer length.
22073 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
22074 * gnutls.h: Update declarations.
22075 * process.c (read_process_output): Use ssize_t, to match.
22076 (send_process): Likewise.
22077
a32d4040
CY
220782011-04-09 Chong Yidong <cyd@stupidchicken.com>
22079
22080 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
22081
8546720e 220822011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 22083
04f2d78b
CB
22084 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
22085 Use unsigned char, to match FcChar8 type definition.
aac0c6e3 22086
8546720e
GM
22087 * xterm.c (handle_one_xevent):
22088 * xmenu.c (create_and_show_popup_menu):
22089 * xselect.c (x_decline_selection_request)
22090 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 22091
0a2f5c1a 220922011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
22093
22094 Fix some uses of `int' instead of EMACS_INT.
22095 * search.c (string_match_1, fast_string_match)
22096 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
22097 (scan_buffer, find_next_newline_no_quit)
22098 (find_before_next_newline, search_command, Freplace_match)
22099 (Fmatch_data): Make some `int' variables be EMACS_INT.
22100
22101 * xdisp.c (display_count_lines): 3rd argument and return value now
22102 EMACS_INT. All callers changed.
22103 (pint2hrstr): Last argument is now EMACS_INT.
22104
22105 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
22106 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
22107 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
22108 (decode_coding_utf_16, decode_coding_emacs_mule)
22109 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
22110 (decode_coding_ccl, decode_coding_charset)
22111 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
22112 (decode_coding_iso_2022, decode_coding_emacs_mule)
22113 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
22114 <char_offset, last_offset>: Declare EMACS_INT.
22115 (encode_coding_utf_8, encode_coding_utf_16)
22116 (encode_coding_emacs_mule, encode_invocation_designation)
22117 (encode_designation_at_bol, encode_coding_iso_2022)
22118 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
22119 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
22120 Declare EMACS_INT.
22121 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
22122 (encode_invocation_designation): Last argument P_NCHARS is now
22123 EMACS_INT.
22124 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
22125 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
22126
22127 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
22128 All users changed.
22129
22130 * ccl.c (Fccl_execute_on_string): Declare some variables
22131 EMACS_INT.
22132
8546720e 221332011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
22134
22135 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
22136
4e19a977
CS
221372011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
22138
22139 * process.c (Fformat_network_address): Doc fix.
22140
87302331
R
221412011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
22142
ee7683eb 22143 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
87302331 22144
cbb59342
CY
221452011-04-08 Chong Yidong <cyd@stupidchicken.com>
22146
22147 * keyboard.c (read_char): Call Lisp function help-form-show,
22148 instead of using internal_with_output_to_temp_buffer.
22149 (Qhelp_form_show): New var.
e0d38eeb 22150 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
22151
22152 * print.c (internal_with_output_to_temp_buffer): Function deleted.
22153
22154 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
22155
e67a13ab
CY
221562011-04-06 Chong Yidong <cyd@stupidchicken.com>
22157
04f2d78b
CB
22158 * process.c (Flist_processes): Remove to Lisp.
22159 (list_processes_1): Delete.
e67a13ab 22160
973f782d
EZ
221612011-04-06 Eli Zaretskii <eliz@gnu.org>
22162
7c106b1e
EZ
22163 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
22164
973f782d
EZ
22165 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
22166
41cf7d1a 221672011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 22168
ca23cc88
PE
22169 Fix more problems found by GCC 4.6.0's static checks.
22170
f390e2d5
PE
22171 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
22172
42eea0d0
PE
22173 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
22174
b69769da 22175 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 22176
f9541e84
PE
22177 * xdisp.c (vmessage): Mark as a printf-like function.
22178
13841b55
PE
22179 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
22180
c136c10f
PE
22181 * sound.c (sound_warning): Don't crash if arg contains a printf format.
22182
5e2d4a30
PE
22183 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
22184 printf-like functions.
22185 (tiff_load): Add casts to remove these marks before passing them
22186 to system-supplied API.
22187
583f48b9
PE
22188 * eval.c (Fsignal): Remove excess argument to 'fatal'.
22189
b25d760e
PE
22190 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
22191 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
22192 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
22193 directly, rather than having caller test rule sign. This avoids
22194 some unnecessary tests.
22195 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
22196 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
22197 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 22198
bc7b6697 22199 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 22200 (xfont_open): Avoid unnecessary tests.
bc7b6697 22201
27ccc379
PE
22202 * composite.c (composition_gstring_put_cache): Use unsigned integer.
22203
dcd5c89a
PE
22204 * composite.h, composite.c (composition_gstring_put_cache):
22205 Use EMACS_INT, not int, for length.
22206
b13a45c6
PE
22207 * composite.h (COMPOSITION_DECODE_REFS): New macro,
22208 breaking out part of COMPOSITION_DECODE_RULE.
22209 (COMPOSITION_DECODE_RULE): Use it.
22210 * composite.c (get_composition_id): Remove unused local vars,
22211 by using the new macro.
22212
1e792e4d
PE
22213 * textprop.c (set_text_properties_1): Change while to do-while,
22214 since the condition is always true at first.
22215
dc6c6455 22216 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
22217 (interval_deletion_adjustment): Return unsigned value.
22218 All uses changed.
dc6c6455 22219
aba7731a
PE
22220 * process.c (list_processes_1, create_pty, read_process_output):
22221 (exec_sentinel): Remove vars that were set but not used.
afd4052b 22222 (create_pty): Remove unnecessary "volatile"s.
bc57d757 22223 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 22224 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 22225 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 22226
fdfc4bf3
PE
22227 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
22228
fca8fe46 22229 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 22230 (update_syntax_table): Use unsigned instead of int.
fca8fe46 22231
06a0259a 22232 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 22233 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 22234 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 22235
e7b9e80f
PE
22236 * print.c (print_error_message): Avoid int overflow.
22237
56201685
PE
22238 * font.c (font_list_entities): Redo for clarity,
22239 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
22240
78834453 22241 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 22242 (font_score): Avoid potential overflow in diff calculation.
78834453 22243
0bc0b309 22244 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 22245 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 22246
e610eaca
PE
22247 * eval.c (funcall_lambda): Rename local to avoid shadowing.
22248
b895abce
PE
22249 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
22250 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
22251 can always succeed if overflow has undefined behavior.
22252
1f1d9321 22253 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 22254 (wordify): Omit three unnecessary tests.
1f1d9321 22255
c59478bc
PE
22256 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
22257 All callers changed. This avoids the need for an unused var.
22258
79b73827
PE
22259 * casefiddle.c (casify_region): Remove var that is set but not used.
22260
a4db5dfe
PE
22261 * dired.c (file_name_completion): Remove var that is set but not used.
22262
43aae36e
PE
22263 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
22264
2a47c44d 22265 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 22266 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 22267
a37c69bf
PE
22268 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
22269 Check for integer overflow on size calculations.
22270
328ab8e7
PE
22271 * buffer.c (Fprevious_overlay_change): Remove var that is set
22272 but not used.
22273
e5a2a5cb
PE
22274 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
22275 Remove vars that are set but not used.
8d84a6eb 22276 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 22277 (timer_check_2): Mark vars as initialized.
e5a2a5cb 22278
a60e5f68
PE
22279 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
22280
f661cb61 22281 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 22282 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 22283
f0397f5a
PE
22284 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
22285 that are set but not used.
22286
8664db06 22287 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 22288 if XCreateBitmapFromData fails (Bug#8410).
8664db06 22289
6abdaa4a
PE
22290 * xselect.c (x_get_local_selection, x_handle_property_notify):
22291 Remove vars that are set but not used.
22292
0ce7538d 22293 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 22294 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 22295
9ae848fc
PE
22296 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
22297 Remove var that is set but not used.
0b918413
PE
22298 (scroll_bar_windows_size): Now size_t, not int.
22299 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
22300 Check for overflow.
9ae848fc 22301
a5a62657
PE
22302 * xfaces.c (realize_named_face): Remove vars that are set but not used.
22303 (map_tty_color) [!defined MSDOS]: Likewise.
22304
5c5cdd39
PE
22305 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
22306
66ebf983
PE
22307 * coding.c: Remove vars that are set but not used.
22308 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
22309 All callers changed.
22310 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
22311 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
22312 (decode_coding_charset): Remove vars that are set but not used.
22313
1be4d761
PE
22314 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
22315 that is set but not used.
22316
47553fa8
PE
22317 * print.c (print_object): Remove var that is set but not used.
22318
1f7196bf 22319 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
22320 The gnulib version avoids calling malloc in the usual case,
22321 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
22322 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
22323 * filelock.c (current_lock_owner): Likewise.
22324 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
22325 * sysdep.c: Include allocator.h, careadlinkat.h.
22326 (emacs_no_realloc_allocator): New static constant.
22327 (emacs_readlink): New function.
fdb61804
PE
22328 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
22329 ../lib/careadlinkat.h.
d1fdcab7 22330
f84c17c7
SM
223312011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
22332
22333 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
22334 first non-nil return value).
22335
ef3862ad
JD
223362011-04-03 Jan Djärv <jan.h.d@swipnet.se>
22337
22338 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
22339 if not defined (Bug#8403).
22340
376a7006
JB
223412011-04-02 Juanma Barranquero <lekktu@gmail.com>
22342
22343 * xdisp.c (display_count_lines): Remove parameter `start',
22344 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
22345 (get_char_face_and_encoding): Remove parameter `multibyte_p',
22346 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
22347 (fill_stretch_glyph_string): Remove parameters `row' and `area',
22348 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
22349 and thereabouts. All callers changed.
22350 (get_per_char_metric): Remove parameter `f', unused since
22351 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
22352
6ca3801d
JM
223532011-04-02 Jim Meyering <meyering@redhat.com>
22354
22355 do not dereference NULL upon failed strdup
22356 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
22357 (ns_get_family): Likewise.
22358
d8e2b5ba
JB
223592011-04-02 Juanma Barranquero <lekktu@gmail.com>
22360
22361 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
22362
8c74fcbd
JD
223632011-04-02 Jan Djärv <jan.h.d@swipnet.se>
22364
22365 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
22366 later (Bug#8403).
22367
7200d79c
SM
223682011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
22369
03408648 22370 Add lexical binding.
7200d79c 22371
03408648
SM
22372 * window.c (Ftemp_output_buffer_show): New fun.
22373 (Fsave_window_excursion):
22374 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
22375
22376 * lread.c (lisp_file_lexically_bound_p): New function.
22377 (Fload): Bind Qlexical_binding.
22378 (readevalloop): Remove `evalfun' arg.
22379 Bind Qinternal_interpreter_environment.
22380 (Feval_buffer): Bind Qlexical_binding.
22381 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
22382 Mark as dynamic.
22383 (syms_of_lread): Declare `lexical-binding'.
22384
22385 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
22386
22387 * keyboard.c (eval_dyn): New fun.
22388 (menu_item_eval_property): Use it.
ca105506
SM
22389
22390 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 22391
03408648
SM
22392 * fns.c (concat, mapcar1): Accept byte-code-functions.
22393
22394 * eval.c (Fsetq): Handle lexical vars.
22395 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
22396 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
22397 (FletX, Flet): Obey lexical binding.
22398 (Fcommandp): Handle closures.
22399 (Feval): New `lexical' arg.
22400 (eval_sub): New function extracted from Feval. Use it almost
22401 everywhere where Feval was used. Look up vars in lexical env.
22402 Handle closures.
22403 (Ffunctionp): Move from subr.el.
22404 (Ffuncall): Handle closures.
22405 (apply_lambda): Remove `eval_flags'.
22406 (funcall_lambda): Handle closures and new byte-code-functions.
22407 (Fspecial_variable_p): New function.
22408 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
22409 but without exporting it to Lisp.
23aba0ea 22410
23aba0ea 22411 * doc.c (Fdocumentation, store_function_docstring):
03408648 22412 * data.c (Finteractive_form): Handle closures.
23aba0ea 22413
03408648
SM
22414 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
22415 interactive spec.
ba83908c 22416
04f2d78b
CB
22417 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
22418 New byte-codes.
03408648
SM
22419 (exec_byte_code): New function extracted from Fbyte_code to handle new
22420 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 22421
03408648 22422 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 22423
03408648 22424 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 22425
e2abce01
JB
224262011-03-31 Juanma Barranquero <lekktu@gmail.com>
22427
22428 * xdisp.c (redisplay_internal): Fix prototype.
22429
63696a73 224302011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 22431
63696a73 22432 * xdisp.c (SCROLL_LIMIT): New macro.
04f2d78b
CB
22433 (try_scrolling): Use it when setting scroll_limit.
22434 Limit scrolling to 100 screen lines.
63696a73
EZ
22435 (redisplay_window): Even when falling back on "recentering",
22436 position point in the window according to scroll-conservatively,
22437 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
22438
22439 (try_scrolling): When point is above the window, allow searching
22440 as far as scroll_max, or one screenful, to compute vertical
22441 distance from PT to the scroll margin position. This prevents
22442 try_scrolling from unnecessarily failing when
22443 scroll-conservatively is set to a value slightly larger than the
22444 window height. Clean up the case of PT below the margin at bottom
22445 of window: scroll_max can no longer be INT_MAX. When aggressive
22446 scrolling is in use, don't let point enter the opposite scroll
22447 margin as result of the scroll.
22448 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
22449 threshold of 100 lines for never-recentering scrolling.
22450
e4cc2dfc
JB
224512011-03-31 Juanma Barranquero <lekktu@gmail.com>
22452
22453 * dispextern.h (move_it_by_lines):
22454 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
22455 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
22456 (message_log_check_duplicate): Remove parameters `prev_bol' and
22457 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
22458 (redisplay_internal): Remove parameter `preserve_echo_area',
22459 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
22460
22461 * indent.c (Fvertical_motion):
22462 * window.c (window_scroll_pixel_based, Frecenter):
22463 Don't pass `need_y_p' to `move_it_by_lines'.
22464
1c470562
SM
224652011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
22466
44f230aa
SM
22467 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
22468 steal a few bits to be more compact.
22469 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
22470 Remove unneeded casts.
22471
1c470562
SM
22472 * bytecode.c (Fbyte_code): CAR and CDR can GC.
22473
888adce9
ZK
224742011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
22475
22476 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
22477 binding" message (bug#7967).
22478
f838ed7b
PE
224792011-03-30 Paul Eggert <eggert@cs.ucla.edu>
22480
77861b95
PE
22481 Fix more problems found by GCC 4.6.0's static checks.
22482
de6dbc14
PE
22483 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
22484 Remove unused local var.
22485
f838ed7b
PE
22486 * editfns.c (Fmessage_box): Remove unused local var.
22487
792c7b2b
PE
22488 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
22489 (note_mode_line_or_margin_highlight, note_mouse_highlight):
22490 Omit unused local vars.
c499e557 22491 * window.c (shrink_windows): Omit unused local var.
b01a1c29 22492 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
22493 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
22494 Omit unused local var.
22495
ba0165e1
PE
22496 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
22497 Don't assume string length fits in int.
32ad8845 22498 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 22499 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 22500
3c59b4c9
PE
22501 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
22502 instead of alloca (Bug#8344).
22503
a3eed478 22504 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 22505 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 22506
eb4d412d
PE
22507 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
22508
1658b401
PE
22509 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
22510 concerns.
22511
22512 * term.c (produce_glyphless_glyph): Remove unnecessary test.
22513
22514 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 22515
9a2c6e05
PE
22516 * keyboard.c (syms_of_keyboard): Use the same style as later
22517 in this function when indexing through an array. This also
22518 works around GCC bug 48267.
22519
03d0a109
PE
22520 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
22521
44f730c8
PE
22522 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
22523
fe75f926
PE
22524 * chartab.c (sub_char_table_ref_and_range): Redo for slight
22525 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
22526
ffa8c828
PE
22527 * keyboard.c, keyboard.h (num_input_events): Now size_t.
22528 This avoids undefined behavior on integer overflow, and is a bit
22529 more convenient anyway since it is compared to a size_t variable.
22530
c5101a77
PE
22531 Variadic C functions now count arguments with size_t, not int.
22532 This avoids an unnecessary limitation on 64-bit machines, which
22533 caused (substring ...) to crash on large vectors (Bug#8344).
22534 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
22535 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 22536 All variadic functions and their callers changed accordingly.
c5101a77
PE
22537 (struct gcpro.nvars): Now size_t, not int. All uses changed.
22538 * data.c (arith_driver, float_arith_driver): Likewise.
22539 * editfns.c (general_insert_function): Likewise.
22540 * eval.c (struct backtrace.nargs, interactive_p)
22541 (internal_condition_case_n, run_hook_with_args, apply_lambda)
22542 (funcall_lambda, mark_backtrace): Likewise.
22543 * fns.c (concat): Likewise.
22544 * frame.c (x_set_frame_parameters): Likewise.
22545 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
22546 0 if not found, not -1. All callers changed.
22547
dd3f25f7
PE
22548 * alloc.c (garbage_collect): Don't assume stack size fits in int.
22549 (stack_copy_size): Now size_t, not int.
22550 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
22551
461c2ab9
JB
225522011-03-28 Juanma Barranquero <lekktu@gmail.com>
22553
22554 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
22555 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
22556 All callers changed.
22557
22558 * lisp.h (multibyte_char_to_unibyte):
22559 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
22560 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
22561 * character.h (CHAR_TO_BYTE8):
22562 * cmds.c (internal_self_insert):
22563 * editfns.c (general_insert_function):
22564 * keymap.c (push_key_description):
22565 * search.c (Freplace_match):
22566 * xdisp.c (message_dolog, set_message_1): All callers changed.
22567
f6d62986
SM
225682011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
22569
22570 * keyboard.c (safe_run_hook_funcall): New function.
22571 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
22572 don't set the hook to nil, but remove the offending function instead.
22573 (Qcommand_hook_internal): Remove, unused.
22574 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
22575 Vcommand_hook_internal.
22576
22577 * eval.c (enum run_hooks_condition): Remove.
22578 (funcall_nil, funcall_not): New functions.
22579 (run_hook_with_args): Call each function through a `funcall' argument.
22580 Remove `cond' argument, now redundant.
22581 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
22582 (Frun_hook_with_args_until_failure): Adjust accordingly.
22583 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
22584
1db5b1ad
JB
225852011-03-28 Juanma Barranquero <lekktu@gmail.com>
22586
22587 * dispextern.h (string_buffer_position): Remove declaration.
22588
22589 * print.c (strout): Remove parameter `multibyte', unused since
22590 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
22591
22592 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
22593 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
22594 All callers changed.
22595
22596 * w32.c (_wsa_errlist): Use braces for struct initializers.
22597
22598 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
22599 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
22600 All callers changed.
22601 (string_buffer_position): Likewise. Also, make static (it's never
22602 used outside xdisp.c).
22603 (cursor_row_p): Remove parameter `w', unused since
22604 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
22605 (decode_mode_spec): Remove parameter `precision', introduced during
22606 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
22607 All callers changed.
22608
5ffb62aa
JD
226092011-03-27 Jan Djärv <jan.h.d@swipnet.se>
22610
22611 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
22612
461c2ab9 226132011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
22614
22615 * nsterm.m (ns_menu_bar_is_hidden): New variable.
22616 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
22617 (ns_update_auto_hide_menu_bar): New functions.
22618 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
22619 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
22620 ns_constrain_all_frames.
22621 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
22622 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
22623
5c380ffb
JD
226242011-03-27 Jan Djärv <jan.h.d@swipnet.se>
22625
22626 * nsmenu.m (runDialogAt): Remove argument to timer_check.
22627
9af30bdf
GM
226282011-03-27 Glenn Morris <rgm@gnu.org>
22629
22630 * syssignal.h: Replace RETSIGTYPE with void.
22631 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
22632 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
22633 Replace SIGTYPE with void everywhere.
22634 * s/usg5-4-common.h (SIGTYPE): Remove definition.
22635 * s/template.h (SIGTYPE): Remove commented out definition.
22636
e2abce01
JB
226372011-03-26 Eli Zaretskii <eliz@gnu.org>
22638
22639 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
22640 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
22641
f868cd8a
JB
226422011-03-26 Juanma Barranquero <lekktu@gmail.com>
22643
59eb0929
JB
22644 * w32.c (read_unc_volume): Use parameter `henum', instead of
22645 global variable `wget_enum_handle'.
22646
22647 * keymap.c (describe_vector): Remove parameters `indices' and
22648 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
22649 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
22650
f868cd8a
JB
22651 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
22652
22653 * keyboard.c (timer_check): Remove parameter `do_it_now',
22654 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
22655 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
22656 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
22657
22658 * keyboard.c (read_char):
22659 * w32menu.c (w32_menu_display_help):
22660 * xmenu.c (show_help_event, menu_help_callback):
22661 Adjust calls to `show_help_echo'.
22662
22663 * gtkutil.c (xg_maybe_add_timer):
22664 * keyboard.c (readable_events):
22665 * process.c (wait_reading_process_output):
22666 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
22667
22668 * insdel.c (adjust_markers_gap_motion):
22669 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
22670 (gap_left, gap_right): Don't call it.
22671
2ecf6fdb
CY
226722011-03-25 Chong Yidong <cyd@stupidchicken.com>
22673
22674 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
22675 incurred during fontification.
22676
6b1f9ba4
JB
226772011-03-25 Juanma Barranquero <lekktu@gmail.com>
22678
22679 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
22680 (DEFVAR_PER_BUFFER): Don't pass it.
22681
22682 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
22683 (scrolling_window): Don't pass it.
22684
0f4a96b5
JB
226852011-03-25 Juanma Barranquero <lekktu@gmail.com>
22686
22687 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
22688
22689 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
22690 and `suffix'.
22691 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
22692 of variables specific to SELinux and computation of `encoded_absname'.
22693
22694 * image.c (XPutPixel): Remove unused variable `height'.
22695
22696 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
22697
22698 * unexw32.c (get_section_info): Remove unused variable `section'.
22699
22700 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
22701 (system_process_attributes): Remove unused variable `sess'.
22702 (sys_read): Remove unused variable `err'.
22703
22704 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
22705 (w32_wnd_proc): Remove unused variable `isdead'.
22706 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
22707 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
22708 (x_create_tip_frame): Remove unused variable `tem'.
22709
22710 * w32inevt.c (w32_console_read_socket):
22711 Remove unused variable `no_events'.
22712
22713 * w32term.c (x_draw_composite_glyph_string_foreground):
22714 Remove unused variable `width'.
22715
1149507c
JB
227162011-03-24 Juanma Barranquero <lekktu@gmail.com>
22717
22718 * w32term.c (x_set_glyph_string_clipping):
22719 Don't pass uninitialized region to CombineRgn.
22720
9c88f339
JB
227212011-03-23 Juanma Barranquero <lekktu@gmail.com>
22722
22723 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
22724 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
22725 (Fx_close_connection): Remove unused variable `i'.
22726
22727 * w32font.c (w32font_draw): Return number of glyphs.
22728 (w32font_open_internal): Remove unused variable `i'.
22729 (w32font_driver): Add missing initializer.
22730
22731 * w32menu.c (utf8to16): Remove unused variable `utf16'.
22732 (fill_in_menu): Remove unused variable `items_added'.
22733
22734 * w32term.c (last_mouse_press_frame): Remove static global variable.
22735 (w32_clip_to_row): Remove unused variable `f'.
22736 (x_delete_terminal): Remove unused variable `i'.
22737
22738 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
22739 (NOTHING): Remove unused static global variable.
22740 (uniscribe_check_otf): Remove unused variable `table'.
22741 (uniscribe_font_driver): Add missing initializers.
22742
dee091a3
JD
227432011-03-23 Julien Danjou <julien@danjou.info>
22744
22745 * term.c (Fsuspend_tty, Fresume_tty):
22746 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
22747 * window.c (temp_output_buffer_show):
22748 * insdel.c (signal_before_change):
22749 * frame.c (Fhandle_switch_frame):
22750 * fileio.c (Fdo_auto_save):
22751 * emacs.c (Fkill_emacs):
22752 * editfns.c (save_excursion_restore):
22753 * cmds.c (internal_self_insert):
22754 * callint.c (Fcall_interactively):
22755 * buffer.c (Fkill_all_local_variables):
22756 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
22757 Use Frun_hooks.
0f4a96b5 22758 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
e9fce1ac 22759 unconditionally since it does the check itself.
dee091a3 22760
2c520ab5 227612011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 22762
c9c49752
PE
22763 Fix more problems found by GCC 4.5.2's static checks.
22764
8abc3f12
PE
22765 * coding.c (encode_coding_raw_text): Avoid unnecessary test
22766 the first time through the loop, since we know p0 < p1 then.
22767 This also avoids a gcc -Wstrict-overflow warning.
22768
a2d26660
PE
22769 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
22770 leading to a memory leak, possible in functions like
22771 load_charset_map_from_file that can allocate an unbounded number
b12ef411 22772 of objects (Bug#8318).
a2d26660 22773
916c72e9
PE
22774 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
22775 that could (at least in theory) be that large.
22776
19ab8a18
PE
22777 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
22778 This is less likely to overflow, and avoids undefined behavior if
22779 overflow does occur. All callers changed. Use strtoul to scan
22780 for the unsigned long integer.
b7cbbd6f
PE
22781 (pint2hrstr): Simplify and tune code slightly.
22782 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 22783
f0641eff
PE
22784 * scroll.c (do_scrolling): Work around GCC bug 48228.
22785 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
22786
7f650bb9
PE
22787 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
22788 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
22789 (validate_x_resource_name): Simplify count usage.
22790 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 22791
37dd57d1
PE
22792 * fileio.c (Fcopy_file): Report error if fchown or fchmod
22793 fail (Bug#8306).
81e56e61 22794
699979fc 22795 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 22796
401bf9b4
PE
22797 * process.c (Fmake_network_process): Use socklen_t, not int,
22798 where POSIX says socklen_t is required in portable programs.
22799 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 22800 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
22801 (Fmake_network_process, server_accept_connection):
22802 (wait_reading_process_output, read_process_output):
22803 Likewise.
22804
b93aacde
PE
22805 * process.c: Rename or move locals to avoid shadowing.
22806 (list_processes_1, Fmake_network_process):
22807 (read_process_output_error_handler, exec_sentinel_error_handler):
22808 Rename or move locals.
4dc343ee 22809 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 22810 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 22811 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 22812 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 22813 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 22814
af8a867c 22815 Make tparam.h and terminfo.c consistent.
44f230aa
SM
22816 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
22817 Include tparam.h instead, since it declares them.
af8a867c
PE
22818 * cm.h (PC): Remove extern decl; tparam.h now does this.
22819 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
22820 * terminfo.c: Include tparam.h, to check interfaces.
22821 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
22822 (tparam): Adjust signature to match interface in tparam.h;
22823 this removes some undefined behavior. Check that outstring and len
22824 are zero, which they always are with Emacs.
22825 * tparam.h (PC, BC, UP): New extern decls.
22826
0248044d 22827 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 22828 (xftfont_open): Rename locals to avoid shadowing.
0248044d 22829
8ff096c1 22830 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
22831 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
22832 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 22833 (ftfont_list): Remove unused local.
49eaafba
PE
22834 (get_adstyle_property, ftfont_pattern_entity):
22835 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
22836 Rename locals to avoid shadowing.
8ff096c1 22837
e2be39f6
PE
22838 * xfont.c (xfont_list_family): Mark var as initialized.
22839
c9735e30
PE
22840 * xml.c (make_dom): Now static.
22841
8f5201ae
PE
22842 * composite.c (composition_compute_stop_pos): Rename local to
22843 avoid shadowing.
b246f932
PE
22844 (composition_reseat_it): Remove unused locals.
22845 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 22846 (composition_update_it): Mark var as initialized.
11b61122
PE
22847 (find_automatic_composition): Mark vars as initialized,
22848 with a FIXME (Bug#8290).
8f5201ae 22849
760fbc2c
PE
22850 character.h: Rename locals to avoid shadowing.
22851 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
22852 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
22853 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
22854 (BUF_DEC_POS): Be more systematic about renaming local temporaries
22855 to avoid shadowing.
22856
ff08eb85
PE
22857 * textprop.c (property_change_between_p): Remove; unused.
22858
fc7bf025
PE
22859 * intervals.c (interval_start_pos): Now static.
22860
235d7abc
PE
22861 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
22862
44f230aa
SM
22863 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
22864 Rename locals to avoid shadowing.
3e7d6594 22865
50060332
PE
22866 * sound.c (wav_play, au_play, Fplay_sound_internal):
22867 Fix pointer signedness.
d01f234b 22868 (alsa_choose_format): Remove unused local var.
c83b8872
PE
22869 (wav_play): Initialize a variable to 0, to prevent undefined
22870 behavior (Bug#8278).
50060332 22871
c4fc4e30
PE
22872 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
22873
918436ed
PE
22874 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
22875
c939f91b
PE
22876 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
22877 clobbering (Bug#8298).
b9c7f648
PE
22878 * sysdep.c (sys_subshell): Likewise.
22879 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 22880
6bd8c144
PE
22881 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
22882 This should get cleaned up, so that child_setup has the
22883 same signature on all platforms.
22884
7710357c 22885 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 22886 (relocate_fd): Rename locals to avoid shadowing.
7710357c 22887
c59da222
CY
228882011-03-22 Chong Yidong <cyd@stupidchicken.com>
22889
22890 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
22891 not to be necessary, and produces flickering.
22892
66b87493
GM
228932011-03-20 Glenn Morris <rgm@gnu.org>
22894
22895 * config.in: Remove file.
22896
45b6f6d5
JB
228972011-03-20 Juanma Barranquero <lekktu@gmail.com>
22898
22899 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
22900 are now in src/globals.h.
22901 (syms_of_minibuf): Remove spurious & from previous change.
22902
cd394be1 229032011-03-20 Leo Liu <sdl.web@gmail.com>
3ec03f7e
LL
22904
22905 * minibuf.c (completing-read-function): New variable.
22906 (completing-read-default): Rename from completing-read.
22907 (completing-read): Call completing-read-function.
22908
b14e3e21
CY
229092011-03-19 Juanma Barranquero <lekktu@gmail.com>
22910
22911 * xfaces.c (Fx_load_color_file):
22912 Read color file from absolute filename (bug#8250).
22913
f2b726e6
JB
229142011-03-19 Juanma Barranquero <lekktu@gmail.com>
22915
22916 * makefile.w32-in: Update dependencies.
22917
09f6ff02
EZ
229182011-03-17 Eli Zaretskii <eliz@gnu.org>
22919
22920 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
22921
29a6015a
PE
229222011-03-17 Paul Eggert <eggert@cs.ucla.edu>
22923
a3a6c54e
PE
22924 Fix more problems found by GCC 4.5.2's static checks.
22925
b766f867
PE
22926 * process.c (make_serial_process_unwind, send_process_trap):
22927 (sigchld_handler): Now static.
22928
be02381c
PE
22929 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
22930 That way, the code declares only the vars that it needs.
22931 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
22932 * s/cygwin.h (PTY_ITERATION): Likewise.
22933 * s/darwin.h (PTY_ITERATION): Likewise.
22934 * s/gnu-linux.h (PTY_ITERATION): Likewise.
22935
57048744
PE
22936 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
22937 * process.c (allocate_pty): Don't declare stb unless it's needed.
22938
7914961c 22939 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
22940 (CONSTANTLIM): Remove; unused.
22941 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
22942 Define only if needed.
7914961c 22943
b3967b18
PE
22944 * unexelf.c (unexec): Name an expression,
22945 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
22946 Use a different way to cause a compilation error if anyone uses
22947 n rather than nn, a way that does not involve shadowing.
73366a00 22948 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 22949
29a6015a
PE
22950 * deps.mk (unexalpha.o): Remove; unused.
22951
43cfc33e 22952 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 22953 * unexec.h: New file.
ce701a33
PE
22954 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
22955 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
22956 Depend on unexec.h.
22957 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
22958 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
22959 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 22960 Change as necessary to match prototype in unexec.h.
ce701a33 22961
01f44d5a
PE
22962 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
22963 shadowing.
4f63c6bb 22964 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 22965
a6670b0b
PE
22966 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
22967 Rename locals to avoid shadowing.
22968
cef2010d 22969 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 22970 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 22971
d4d7173a
PE
22972 * print.c (Fredirect_debugging_output): Fix pointer signedess.
22973
f08b802a
PE
22974 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
22975 warning when compiling print.c.
22976
3ddb0639
PE
22977 * font.c (font_unparse_fcname): Abort in an "impossible" situation
22978 instead of using an uninitialized var.
5ad03b97 22979 (font_sort_entities): Mark var as initialized.
3ddb0639 22980
170a2692
PE
22981 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
22982
e663c700
PE
22983 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
22984 pointers to constants.
89bc529a 22985 (font_parse_fcname): Remove unused vars.
7b81e2d0 22986 (font_delete_unmatched): Now static.
ea838e10 22987 (font_get_spec): Remove; unused.
13a547c6
PE
22988 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
22989 (font_update_drivers, Ffont_get_glyphs, font_add_log):
22990 Rename or move locals to avoid shadowing.
e663c700 22991
2a80c887 22992 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 22993 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 22994
1384fa33 22995 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 22996 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 22997
8b2c52e9
PE
22998 * alloc.c (mark_backtrace): Move decl from here ...
22999 * lisp.h: ... to here, so that it can be checked.
23000
475545b5 23001 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 23002 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
23003 (lisp_indirect_variable): Name an expression,
23004 to avoid gcc -Wbad-function-cast warning.
1faed8ae 23005 (Fdefvar): Rename locals to avoid shadowing.
475545b5 23006
b1349114 23007 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 23008 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 23009 Use const pointer when appropriate.
b1349114 23010
a2928364
PE
23011 * lisp.h (get_system_name, get_operating_system_release):
23012 Move decls here, to check interfaces.
23013 * process.c (get_operating_system_release): Move decl to lisp.h.
23014 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
23015 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
23016 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
23017 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
23018 (Fformat_time_string, Fencode_time, Finsert_char):
23019 (Ftranslate_region_internal, Fformat):
23020 Rename or remove local vars to avoid shadowing.
9710023e 23021 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 23022
a415e694
PE
23023 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
23024 avoid shadowing.
23025
8ef4622d
PE
23026 * lisp.h (eassert): Check that the argument compiles, even if
23027 ENABLE_CHECKING is not defined.
23028
946f9a5b
PE
23029 * data.c (Findirect_variable): Name an expression, to avoid
23030 gcc -Wbad-function-cast warning.
112396d6 23031 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 23032 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
23033 (Fmake_variable_buffer_local, Fmake_local_variable):
23034 Mark variables as initialized.
52746918 23035 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 23036
e5aab7e7 23037 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
23038 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
23039 Rename locals to avoid shadowing.
dff45157
PE
23040 (mark_stack): Move local variables into the #ifdef region where
23041 they're used.
7bc26fdb
PE
23042 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
23043 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
23044 needed otherwise.
23045 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
23046 (GC_STRING_CHARS): Remove; not used.
d40d4be1 23047 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 23048
e5aab7e7
PE
23049 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
23050 avoids undefined behavior in theory.
23051
4da60324
PE
23052 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
23053
88043301
PE
23054 Use functions, not macros, for up- and down-casing (Bug#8254).
23055 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
23056 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
23057 to use the following functions instead of these macros.
23058 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
23059 EMACS_INT, since callers assume the returned value fits in int.
23060 (upcase1): Likewise, for UPCASE_TABLE.
23061 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 23062 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 23063 the race-condition problem in the old DOWNCASE.
88043301 23064
19ed5445
PE
23065 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
23066 Rename locals to avoid shadowing.
23067 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
23068 (regex_compile, re_search_2, re_match_2_internal):
23069 Remove unused local vars.
952db0d7
PE
23070 (FREE_VAR): Rewrite so as not to use empty "else",
23071 which gcc can warn about.
da053e48 23072 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
23073 (RETALLOC_IF): Define only if needed.
23074 (WORDCHAR_P): Likewise. This one is never needed, but is used
23075 only in a comment talking about a compiler bug, so put inside
23076 the #if 0 of that comment.
23077 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
23078 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
23079 Remove; unused.
19ed5445 23080
1f3561e4 23081 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
23082 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
23083 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 23084
ded6f8f7
PE
23085 * search.c (simple_search): Remove unused var.
23086
dbd37a95
PE
23087 * dired.c (compile_pattern): Move decl from here ...
23088 * lisp.h: ... to here, so that it can be checked.
23089 (struct re_registers): New forward decl.
23090
7e47afad
PE
23091 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
23092
85f24f61
PE
23093 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
23094 All uses changed.
23095 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
23096 Rename locals to avoid shadowing.
5671df8f 23097 (Fvertical_motion): Mark locals as initialized.
85f24f61 23098
181aa2be 23099 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 23100 (casify_region): Mark local as initialized.
181aa2be 23101
930d429c
PE
23102 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
23103
7082eac6
PE
23104 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
23105 New macros, so that the caller can use some names other than
23106 gcpro1, gcpro2, etc.
23107 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
23108 of the new macros.
23109 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
23110 argument, for consistency with GCPRO2_VAR, etc: it is now the
23111 prefix of the variable, not the variable itself. All uses
23112 changed.
38b2c076
PE
23113 * dired.c (directory_files_internal, file_name_completion):
23114 Rename locals to avoid shadowing.
23115
15206ed9
PE
23116 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
23117 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
23118 dired.c's scmp function, had undefined behavior.
23119 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
23120 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
23121 * buffer.h: ... to here, because these macros use current_buffer,
23122 and the new implementation with inline functions needs to have
23123 current_buffer in scope now, rather than later when the macros
23124 are used.
23125 (downcase, upcase1): New static inline functions.
23126 (DOWNCASE, UPCASE1): Reimplement using these functions.
23127 This avoids undefined behavior in expressions like
23128 DOWNCASE (x) == DOWNCASE (y), which previously suffered
23129 from race conditions in accessing the global variables
23130 case_temp1 and case_temp2.
23131 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
23132 * lisp.h (case_temp1, case_temp2): Remove their decls.
23133 * character.h (ASCII_CHAR_P): Move from here ...
23134 * lisp.h: ... to here, so that the inline functions mentioned
23135 above can use them.
23136
4a6bea26
PE
23137 * dired.c (directory_files_internal_unwind): Now static.
23138
f14b7e14
PE
23139 * fileio.c (file_name_as_directory, directory_file_name):
23140 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
23141 Now static.
2893f146
PE
23142 (file_name_as_directory): Use const pointers when appropriate.
23143 (Fexpand_file_name): Likewise. In particular, newdir might
23144 point at constant storage, so make it a const pointer.
fd4ead52 23145 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
23146 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
23147 signedness issues.
f839df0c
PE
23148 (Fset_file_times, Finsert_file_contents, auto_save_error):
23149 Rename locals to avoid shadowing.
f14b7e14 23150
5716756e 23151 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
23152 (Ftry_completion, Fall_completions): Rename or remove locals
23153 to avoid shadowing.
5716756e 23154
b4c3046a
PE
23155 * marker.c (bytepos_to_charpos): Remove; unused.
23156
b45db522
PE
23157 * lisp.h (verify_bytepos, count_markers): New decls,
23158 so that gcc does not warn that these functions aren't declared.
23159
85876d07
PE
23160 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
23161 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 23162 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 23163 (copy_text): Remove unused local var.
85876d07 23164
03d78a21 23165 * filelock.c (within_one_second): Now static.
b3dd38ab 23166 (lock_file_1): Rename local to avoid shadowing.
03d78a21 23167
5df8f01b
PE
23168 * buffer.c (fix_overlays_before): Mark locals as initialized.
23169 (fix_start_end_in_overlays): Likewise. This function should be
23170 simplified by using pointers-to-pointers, but that's a different
23171 matter.
b1d876f1 23172 (switch_to_buffer_1): Now static.
8f54f30a
PE
23173 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
23174 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 23175
a70072c9 23176 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 23177 Fix pointer signedness issue.
edced198
PE
23178 (sys_subshell): Mark local as volatile if checking for lint,
23179 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 23180 (MAXPATHLEN): Define only if needed.
a70072c9 23181
a0977c44
PE
23182 * process.c (serial_open, serial_configure): Move decls from here ...
23183 * systty.h: ... to here, so that they can be checked.
23184
a884fdcc
PE
23185 * fns.c (get_random, seed_random): Move extern decls from here ...
23186 * lisp.h: ... to here, so that they can be checked.
23187
604efe86 23188 * sysdep.c (reset_io): Now static.
b8950c94 23189 (wait_for_termination_signal): Remove; unused.
604efe86 23190
38fc62d9
PE
23191 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
23192 (copy_keymap_item, append_key, push_text_char_description):
23193 Now static.
1004a21a 23194 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 23195 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
23196 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
23197 (describe_map_tree):
23198 Rename locals to avoid shadowing.
38fc62d9 23199
2f2650da
PE
23200 * keyboard.c: Declare functions static if they are not used elsewhere.
23201 (echo_char, echo_dash, cmd_error, top_level_2):
23202 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
23203 (read_char, kbd_buffer_get_event, make_lispy_position):
23204 (make_lispy_event, make_lispy_movement, apply_modifiers):
23205 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
23206 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
23207 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 23208 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 23209 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 23210
a053e86c 23211 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
23212 (mark_kboards): Move decl here ...
23213 * alloc.c (mark_kboards): ... from here.
a053e86c 23214
4752793e
PE
23215 * lisp.h (force_auto_save_soon): New decl.
23216
74f10ca7 23217 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
23218 (DEFINE_DUMMY_FUNCTION): New macro.
23219 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
23220 Use it.
c03cd23f
PE
23221 (main): Add casts to avoid warnings
23222 if GCC considers string literals to be constants.
74f10ca7 23223
022e70d4
PE
23224 * lisp.h (fatal_error_signal): Add decl, since it's exported.
23225
59d6fe83
PE
23226 * dbusbind.c: Pointer signedness fixes.
23227 (xd_signature, xd_append_arg, xd_initialize):
23228 (Fdbus_call_method, Fdbus_call_method_asynchronously):
23229 (Fdbus_method_return_internal, Fdbus_method_error_internal):
23230 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
23231 (Fdbus_register_signal): Use SSDATA when the context wants char *.
23232
78320123
PE
23233 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
23234 if GCC considers string literals to be constants.
49cebcca 23235 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 23236
35ac2a97
SM
232372011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
23238
fb103ca9
SM
23239 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
23240 (print_preprocess, print_object): New macro to fix last change.
23241
35ac2a97
SM
23242 * print.c (print_preprocess): Don't forget font objects.
23243
62973b41
JB
232442011-03-16 Juanma Barranquero <lekktu@gmail.com>
23245
23246 * emacs.c (USAGE3): Doc fixes.
23247
0e48bb22
AS
232482011-03-15 Andreas Schwab <schwab@linux-m68k.org>
23249
23250 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
23251 structure.
23252
7684e57b
JB
232532011-03-14 Juanma Barranquero <lekktu@gmail.com>
23254
23255 * lisp.h (VWindow_system, Qfile_name_history):
23256 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
23257 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
23258 (w32_system_caret_x, w32_system_caret_y): Declare extern.
23259
23260 * w32select.c: Don't #include "keyboard.h".
c96bbc66 23261 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
23262
23263 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
23264 * w32console.c (detect_input_pending, read_input_pending)
23265 (encode_terminal_code):
23266 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
23267 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
23268 (w32_system_caret_y, Qfile_name_history):
23269 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
23270 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
23271 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
23272 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
23273 * w32proc.c (Qlocal, report_file_error):
23274 * w32term.c (Vwindow_system, updating_frame):
23275 * w32uniscribe.c (initialized, uniscribe_font_driver):
23276 Remove unneeded extern declarations.
23277
2aa46d6c
CY
232782011-03-14 Chong Yidong <cyd@stupidchicken.com>
23279
c96bbc66 23280 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 23281
cffc6f3b
CY
232822011-03-13 Chong Yidong <cyd@stupidchicken.com>
23283
23284 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
23285 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
23286 These macros can no longer be used for assignment.
23287
44f230aa
SM
23288 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
23289 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
23290 (record_buffer_markers, fetch_buffer_markers): New functions for
23291 recording and fetching special buffer markers.
23292 (set_buffer_internal_1, set_buffer_temp): Use them.
23293
23294 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
23295
23296 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
23297
23298 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
23299 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
23300
23301 * xdisp.c (hscroll_window_tree):
23302 (reconsider_clip_changes): Use PT instead of BUF_PT.
23303
d251f04b
EZ
233042011-03-13 Eli Zaretskii <eliz@gnu.org>
23305
23306 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
23307 $(EMACS_ROOT)/lib/intprops.h.
23308
f0c77cd1
PE
233092011-03-13 Paul Eggert <eggert@cs.ucla.edu>
23310
3eca4629
PE
23311 Fix more problems found by GCC 4.5.2's static checks.
23312
7c86ee98
PE
23313 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
23314 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
23315 (xg_free_frame_widgets): Make it clear that a local variable is
23316 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
23317 (gdk_window_get_screen): Make it clear that this macro is needed
23318 only if USE_GTK_TOOLTIP.
1e5524e7
PE
23319 (int_gtk_range_get_value): New function, which avoids a diagnostic
23320 from gcc -Wbad-function-cast.
23321 (xg_set_toolkit_scroll_bar_thumb): Use it.
23322 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
23323 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
23324 (get_utf8_string, xg_get_file_with_chooser):
23325 Rename locals to avoid shadowing.
23326 (create_dialog): Move locals to avoid shadowing.
7c86ee98 23327
41729b81
PE
23328 * xgselect.c (xg_select): Remove unused var.
23329
f0c77cd1
PE
23330 * image.c (four_corners_best): Mark locals as initialized.
23331 (gif_load): Initialize transparent_p to zero (Bug#8238).
23332 Mark another local as initialized.
ec6cf4c6 23333 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 23334
ce0ad53d 23335 * image.c (clear_image_cache): Now static.
d5d5a617 23336 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 23337 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
23338 (x_edge_detection): Remove unnecessary cast that
23339 gcc -Wbad-function-cast diagnoses.
2037898d 23340 (gif_load): Fix pointer signedness.
6ae141d6
PE
23341 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
23342 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 23343
33383987 233442011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 23345
d32df629
PE
23346 Improve quality of tests for time stamp overflow.
23347 For example, without this patch (encode-time 0 0 0 1 1
23348 1152921504606846976) returns the obviously-bogus value (-948597
23349 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
23350 reports time overflow. See
23351 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
23352 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
23353 * editfns.c: Include limits.h and intprops.h.
23354 (TIME_T_MIN, TIME_T_MAX): New macros.
23355 (time_overflow): Move earlier, to before first use.
23356 (hi_time, lo_time): New functions, for an accurate test for
23357 out-of-range times.
23358 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
23359 (Fget_internal_run_time): Don't assume time_t fits in int.
23360 (make_time): Use list2 instead of Fcons twice.
23361 (Fdecode_time): More accurate test for out-of-range times.
23362 (check_tm_member): New function.
23363 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
23364 (lisp_time_argument): Don't rely on undefined left-shift and
23365 right-shift behavior when checking for time stamp overflow.
8be6f318 23366
fe31d94c
PE
23367 * editfns.c (time_overflow): New function, refactoring common code.
23368 (Fformat_time_string, Fdecode_time, Fencode_time):
23369 (Fcurrent_time_string): Use it.
23370
8be6f318
PE
23371 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
23372 * dired.c (make_time): Move to ...
23373 * editfns.c (make_time): ... here.
23374 * systime.h: Note the move.
23375
09d9db2c 233762011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 23377
126bc0dc
YM
23378 * fringe.c (update_window_fringes): Remove unused variables.
23379
c47cbdfd
YM
23380 * unexmacosx.c (copy_data_segment): Also copy __got section.
23381 (Bug#8223)
23382
7ac80be9
EZ
233832011-03-12 Eli Zaretskii <eliz@gnu.org>
23384
c96bbc66 23385 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
23386 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
23387 Constify `char *' arguments and their references according to
23388 prototypes in tparam.h.
23389
ecb0f94d 23390 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 23391
7ac80be9
EZ
23392 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
23393 Adapt all references accordingly.
23394
23395 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
23396
ef1fd07e
TT
233972011-03-11 Tom Tromey <tromey@redhat.com>
23398
23399 * buffer.c (syms_of_buffer): Remove obsolete comment.
23400
7ef4b50c
EZ
234012011-03-11 Eli Zaretskii <eliz@gnu.org>
23402
23403 * termhooks.h (encode_terminal_code): Declare prototype.
23404
23405 * msdos.c (encode_terminal_code): Don't declare prototype.
23406
23407 * term.c (encode_terminal_code): Now external again, used by
23408 w32console.c and msdos.c.
23409
44f230aa
SM
23410 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
23411 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 23412
4b1ec863 234132011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 23414
1714f52b 23415 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 23416
4b1ec863
PE
23417 * fringe.c (update_window_fringes): Mark locals as initialized
23418 (Bug#8227).
23419 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 23420
524c7aa6
PE
23421 * alloc.c (mark_fringe_data): Move decl from here ...
23422 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
23423 to check its interface.
23424 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
23425
a5c0af81 23426 * fontset.c (free_realized_fontset): Now static.
7519b8cd 23427 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 23428 (fontset_font): Mark local as initialized.
a9a06e0b 23429 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 23430
b4716021
PE
23431 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
23432
811e9bac 23433 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 23434 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
23435 (x_own_selection, Fx_disown_selection_internal): Rename locals
23436 to avoid shadowing.
23437 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 23438
7e3ab302
PE
23439 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
23440 so that the caller can use some name other than gcpro1.
23441 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
23442 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
23443 (Fx_backspace_delete_keys_p):
23444 Use them to avoid shadowing, and rename vars to avoid shadowing.
23445 (x_decode_color, x_set_name, x_window): Now static.
6b437900 23446 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 23447 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
23448 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
23449 Remove unused locals.
7e3ab302
PE
23450 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
23451 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
23452 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
23453 macros.
f78faa98 23454
e2b13473
PE
23455 * xterm.h (x_mouse_leave): New decl.
23456
77f23912
PE
23457 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
23458 Remove unused functions.
cdf4ba58
PE
23459 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
23460 (x_calc_absolute_position): Now static.
7411c686 23461 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 23462 Don't declare local "event" unless it's used.
ed7bf3a5
PE
23463 (x_iconify_frame, x_free_frame_resources): Don't declare locals
23464 unless they are used.
38d0b34a
PE
23465 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
23466 (x_fatal_error_signal): Remove; not used.
a6067996
PE
23467 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
23468 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
23469 (x_error_catcher, x_connection_closed, x_error_handler):
23470 (x_error_quitter, xembed_send_message, x_iconify_frame):
23471 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 23472 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 23473 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 23474
44f230aa
SM
23475 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
23476 Rename or move locals to avoid shadowing.
6b463e58 23477 (tty_defined_color, merge_face_heights): Now static.
5967d051 23478 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
23479 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
23480 does not deduce is never used uninitialized.
73719eba
PE
23481 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
23482 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 23483
426994c3 23484 * terminal.c (store_terminal_param): Now static.
5489860b 23485
032f1620 23486 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 23487 (set_frame_menubar): Remove unused local.
d4323972 23488 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
23489 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
23490 since they might point to immutable storage.
281585b0
PE
23491 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
23492 since it's unused otherwise.
032f1620 23493
367c19e5 23494 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 23495 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
23496 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
23497 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 23498 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
23499 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
23500 does not deduce are never used uninitialized.
70739cbe 23501
07b48fa9
PE
23502 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
23503
8868a238 23504 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
23505 * window.c (window_loop, size_window):
23506 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 23507
7e5cf297 23508 * window.c (display_buffer): Now static.
d6550a9f
PE
23509 (size_window): Mark variables that gcc -Wuninitialized
23510 does not deduce are never used uninitialized.
a586633d
PE
23511 * window.h (check_all_windows): New decl, to forestall
23512 gcc -Wmissing-prototypes diagnostic.
5b555da1 23513 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 23514
f6095868
PE
23515 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
23516 shadowing.
23517 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
23518 Include <limits.h>.
23519 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
23520 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
23521 (load_charset_map): Mark variables that gcc -Wuninitialized
23522 does not deduce are never used uninitialized.
53df7c11 23523 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 23524
f38b440c
PE
23525 * coding.c (coding_set_source, coding_set_destination):
23526 Use "else { /* comment */ }" rather than "else /* comment */;"
23527 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
23528 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
23529 a block, when the outer 'i' will do.
23530 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
23531 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
23532 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
23533 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
23534 (Fdecode_sjis_char, Fdefine_coding_system_internal):
23535 Rename locals to avoid shadowing.
23536 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
23537 * coding.c (emacs_mule_char, encode_invocation_designation):
23538 Now static, since they're not used elsewhere.
413bb2db 23539 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 23540 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
23541 (decode_coding_emacs_mule): Mark variables that gcc
23542 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
23543 (detect_coding_iso_2022): Initialize a local variable that might
23544 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 23545 this initialization is needed. (Bug#8211)
5f58e762
PE
23546 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
23547 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
23548 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
23549 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
23550 Remove unused macros.
f38b440c 23551
232b38b9 23552 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 23553 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 23554 * character.c (string_count_byte8): Likewise.
232b38b9 23555
fb90da1b
PE
23556 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
23557 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
23558
fb93dbc2
PE
23559 * chartab.c (copy_sub_char_table): Now static, since it's not used
23560 elsewhere.
5c156ace
PE
23561 (sub_char_table_ref_and_range, char_table_ref_and_range):
23562 Rename locals to avoid shadowing.
bbcd0949 23563 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 23564
7d3b3862 23565 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 23566 (BIDI_BOB): Remove unused macro.
7d3b3862 23567
6be7d3da
PE
23568 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
23569 deduce are never used uninitialized.
c2ed9c8b 23570 * term.c (encode_terminal_code): Likewise.
6be7d3da 23571
75f8807f 23572 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 23573
50938595
PE
23574 * tparam.h: New file.
23575 * term.c, tparam.h: Include it.
23576 * deps.mk (term.o, tparam.o): Depend on tparam.h.
23577 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
23578 Move these decls to tparam.h, and make them agree with what
23579 is actually in tparam.c. The previous trick of using incompatible
23580 decls in different modules does not conform to the C standard.
23581 All callers of tparam changed to use tparam's actual API.
23582 * tparam.c (tparam1, tparam, tgoto):
23583 Use const pointers where appropriate.
23584
fbceeba2
PE
23585 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
23586 * cm.h (struct cm): Likewise.
23587 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
23588 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
23589 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
23590 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
23591 (turn_on_face, init_tty): Likewise.
23592 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 23593
7f3f1250
PE
23594 * term.c (term_mouse_position): Rename local to avoid shadowing.
23595
e6ca6543
PE
23596 * alloc.c (mark_ttys): Move decl from here ...
23597 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
23598
c40f8d15
AS
235992011-03-11 Andreas Schwab <schwab@linux-m68k.org>
23600
23601 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
23602
cfe0661d
JB
236032011-03-09 Juanma Barranquero <lekktu@gmail.com>
23604
23605 * search.c (compile_pattern_1): Remove argument regp, unused since
23606 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
23607 (compile_pattern): Don't pass it.
23608
0afb4571
J
236092011-03-08 Jan Djärv <jan.h.d@swipnet.se>
23610
23611 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
23612 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
23613 for ! HAVE_GTK3.
23614 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
23615
23616 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
23617
23618 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
23619 gdk_window_get_screen, gdk_window_get_geometry,
23620 gdk_x11_window_lookup_for_display and GDK_KEY_g.
23621 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
23622 (xg_get_pixbuf_from_pixmap): New function.
23623 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
23624 to Pixmap, take frame as parameter, remove GdkColormap parameter.
23625 Call xg_get_pixbuf_from_pixmap instead of
23626 gdk_pixbuf_get_from_drawable.
23627 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
23628 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
23629 (xg_check_special_colors): Use GtkStyleContext and its functions
23630 for HAVE_GTK3.
23631 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
23632 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
23633 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
23634 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
23635 Call gtk_widget_get_preferred_size.
0afb4571
J
23636 (xg_frame_resized): gdk_window_get_geometry only takes 5
23637 parameters.
44f230aa
SM
23638 (xg_win_to_widget, xg_event_is_for_menubar):
23639 Call gdk_x11_window_lookup_for_display.
0afb4571
J
23640 (xg_set_widget_bg): New function.
23641 (delete_cb): New function.
895009e1 23642 (xg_create_frame_widgets): Connect delete-event to delete_cb.
5c32d3f2 23643 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
0afb4571
J
23644 (xg_set_background_color): Call xg_set_widget_bg.
23645 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
23646 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
23647 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
23648 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
23649 if ! HAVE_GTK3.
23650 (update_frame_tool_bar): Call gtk_widget_hide.
23651 (xg_initialize): Use GDK_KEY_g.
23652
23653 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
23654 if ! HAVE_GTK3
23655 (x_session_initialize): Call gdk_x11_set_sm_client_id.
23656
23657 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
23658 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
23659 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
23660
1c2cc4ef
JB
236612011-03-08 Juanma Barranquero <lekktu@gmail.com>
23662
23663 * w32xfns.c (select_palette): Check success of RealizePalette against
23664 GDI_ERROR, not zero.
23665
33383987 23666See ChangeLog.11 for earlier changes.
aac0c6e3
MR
23667
23668;; Local Variables:
23669;; coding: utf-8
aac0c6e3
MR
23670;; End:
23671
ab422c4d 23672 Copyright (C) 2011-2013 Free Software Foundation, Inc.
aac0c6e3
MR
23673
23674 This file is part of GNU Emacs.
23675
23676 GNU Emacs is free software: you can redistribute it and/or modify
23677 it under the terms of the GNU General Public License as published by
23678 the Free Software Foundation, either version 3 of the License, or
23679 (at your option) any later version.
23680
23681 GNU Emacs is distributed in the hope that it will be useful,
23682 but WITHOUT ANY WARRANTY; without even the implied warranty of
23683 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23684 GNU General Public License for more details.
23685
23686 You should have received a copy of the GNU General Public License
23687 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.