Fix zlib support on MS-Windows.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
aa942e2b
EZ
12013-08-12 Eli Zaretskii <eliz@gnu.org>
2
3 * decompress.c <zlib_initialized> [WINDOWSNT]: New static variable.
4 (Fzlib_decompress_region) [WINDOWSNT]: Call init_zlib_functions if
5 not yet initialized.
6
7699d09e
LMI
72013-08-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
8
9 * decompress.c (Fzlib_decompress_region): Support zlib
10 decompression, too, and rename.
11
1d238bc7
PE
122013-08-12 Paul Eggert <eggert@cs.ucla.edu>
13
14 Minor zlib configuration tweaks.
15 * decompress.c (fn_inflateInit2) [!WINDOWSNT]:
16 Don't assume presence of fn_inflateInit2_ zlib internal function.
17
8a44a184
LMI
182013-08-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
19
20 * decompress.c (Fzlib_decompress_gzipped_region): Rename to
21 include the zlib prefix.
22
594a4307
EZ
232013-08-12 Eli Zaretskii <eliz@gnu.org>
24
25 * decompress.c [WINDOWSNT]: Include windows.h and w32.h.
26 (DEF_ZLIB_FN, LOAD_ZLIB_FN) [WINDOWSNT]: New macros. Use them to
27 define static variables that are pointers to zlib functions to be
28 dynamically loaded.
29 (init_zlib_functions) [WINDOWSNT]: New function.
30 (fn_inflateInit2_, fn_inflate, fn_inflateEnd, fn_inflateInit2):
31 New macros.
32 (Fdecompress_gzipped_region, unwind_decompress): Use the fn_*
33 macros instead of invoking the zlib functions directly.
34 (syms_of_decompress): DEFSYM Qzlib_dll. Staticpro
35 Szlib_available_p.
36
d2e113bc
DA
372013-08-12 Dmitry Antipov <dmantipov@yandex.ru>
38
39 Avoid looping over all frame windows to freeze and unfreeze.
40 * window.h (struct window): Drop frozen_window_start_p.
41 (freeze_window_starts): Drop prototype.
42 * frame.h (struct frame): New frozen_window_starts flag.
43 (FRAME_WINDOWS_FROZEN): New macro.
44 * window.c (freeze_window_start, freeze_window_starts):
45 Remove.
46 (select_window, replace_window): Adjust users.
47 * xdisp.c (resize_mini_window): Use FRAME_WINDOWS_FROZEN.
48 (window_frozen_p): New function.
49 (redisplay_window): Use it.
50
94fcd171
PE
512013-08-12 Paul Eggert <eggert@cs.ucla.edu>
52
53 Fix some fd issues when running subprocesses (Bug#15035).
54 Fix bugs that can leak files or file descriptors on errors.
55 Don't unlink open temp files, as that's hard for users to diagnose
56 when things go awry (e.g., temp disk exhausted).
57 Don't bother to lock temp files. Check for invalid recursion.
58 * callproc.c (synch_process_fd): Remove. All uses removed.
59 (synch_process_tempfile): New var or macro.
60 (CALLPROC_STDOUT, CALLPROC_STDERR, CALLPROC_PIPEREAD, CALLPROC_FDS):
61 New constants.
62 (record_kill_process): New arg, the temp name. All callers changed.
63 (delete_temp_file): Now just a simple wrapper around unlink.
64 (call_process_kill): New arg, the call_process_fd array.
65 Close them all. Clear synch_process_pid. Remove the temp file,
66 or arrange for it to be removed.
67 (call_process_cleanup) [MSDOS]: Arg no longer contains file name;
68 that's been moved to synch_process_tempfile. Caller changed.
69 Do not remove the tempfile; that's now call_process_kill's
70 responsibility.
71 (call_process_cleanup) [!MSDOS]: Do not record unwind-protect for
72 call_process_kill; the caller now does that.
73 (call_process_cleanup): Do not close the process fd; that's now
74 call_process_kill's responsibility.
75 (Fcall_process): Implement via new function call_process, which
76 has most of the old body of Fcall_process, but with a different API.
77 (call_process): New function that does not open or close filefd if
78 it is nonnegative. Record which fds need to be closed, and let
79 call_process_kill close (and remove the tempfile, on MSDOS) on error.
80 Signal an error if invoked recursively (could be done via a hook).
81 Simplify creation of the tempfile in the MSDOS case.
82 Don't create the output file until after checking for the executable.
83 Report any failure to open /dev/null.
84 Don't open /dev/null for writing twice; once is enough.
85 Don't create pipe if all output is being discarded or sent to file.
86 Don't worry about setting up the coding system or reading from the
87 pipe if all output is being discarded.
88 Hoist fd_error local into top level, to lessen block nesting.
89 Don't record deleted pid here; now done by Fcall_process_region.
90 (Fcall_process) [MSDOS]: Report mktemp failure immediately,
91 and note its success in synch_process_tempfile.
92 Do not leak resources when child_setup fails.
93 (Fcall_process) [!MSDOS && !WINDOWSNT]: Remove duplicate assignment
94 to child_errno. Remove unnecessary close of fd0; it's close-on-exec.
95 (create_temp_file): Now returns open fd, with an additional
96 Lisp_Object * argument to return the name. All callers changed.
97 Do not close the file; rewind it instead, and leave it open for
98 the caller. Do not lock the temp file. Unwind-protect the file
99 and the file-descriptor.
100 (Fcall_process_region): If the input is /dev/null, unwind-protect it.
101 If an asynchrounous process, record it here, not in call_process.
102 (syms_of_callproc) [MSDOS]: Initialize synch_process_tempfile.
103 * eval.c (set_unwind_protect): New function.
104 * fileio.c (write_region): New function, generalized from the
105 old Fwrite_region. Do not lock temp files.
106 (Fwrite_region): Use it.
107 * lisp.h (set_unwind_protect, write_region): New decls.
108 * process.c: Include <verify.h>.
109 (make_process): Mark fds as initially closed.
110 (deleted_pid_list): Now a list of pid-filename pairs.
111 All uses changed.
112 (close_process_fd): New function.
113 (SUBPROCESS_STDIN, WRITE_TO_SUBPROCESS, READ_FROM_SUBPROCESS)
114 (SUBPROCESS_STDOUT, READ_FROM_EXEC_MONITOR, EXEC_MONITOR_OUTPUT):
115 New constants. Verify that their number matches PROCESS_OPEN_FDS.
116 (create_process, create_pty, Fmake_serial_process)
117 (server_accept_connection): Record which fds need to be closed,
118 and let deactivate_process close them.
119 (Fmake_network_process): Do not discard the unwind-protect
120 until it's safe to do so.
121 (deactivate_process): Close the fds opened by create_process etc.
122 (Fprocess_send_eof): Adjust to new way of recording open fds.
123 Report an error if /dev/null can't be opened, instead of aborting.
124 * process.h (PROCESS_OPEN_FDS): New constant.
125 (struct Lisp_Process): New member open_fds.
126 (record_kill_process, record_deleted_pid): Adjust signatures.
127 (record_deleted_pid): Move decl here ...
128 * syswait.h (record_deleted_pid): ... from here.
129
d0e615c3
PE
1302013-08-11 Paul Eggert <eggert@cs.ucla.edu>
131
132 * decompress.c: Fix bugs with large buffers and weird inputs.
133 Tune a bit. Reindent as per usual Emacs style.
134 (BUFFER_SIZE): Remove.
135 (Fdecompress_gzipped_region): Do not mishandle input buffers with
136 more than UINT_MAX bytes. Decompress into the gap instead of into
137 an auto buffer, as this should avoid copying. Return nil if
138 'inflate' returns Z_NEED_DICT, as we have no dictionary. Do not
139 set immediate_quit; we shouldn't trust zlib code that much.
140
313546eb
LMI
1412013-08-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
142
99a32242
LMI
143 * decompress.c (Fdecompress_gzipped_region): Respect all zlib
144 errors, and really move the gap to where we want it.
145
313546eb
LMI
146 * lisp.h: Include decompress.c support.
147
148 * emacs.c (main): Include decompress.c support.
149
150 * Makefile.in: Include -lz if present.
151
d2d699ac
JD
1522013-08-11 Jan Djärv <jan.h.d@swipnet.se>
153
f90e3ebd
JD
154 * nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:frame:
155 (initWithTitle:): Initialize frame to 0.
156 (fillWithWidgetValue:): Call fillWithWidgetValue:frame.
157 (fillWithWidgetValue:frame:): Renamed from
158 fillWithWidgetValue:setDelegate, call initWithTile:frame: if f.
159
160 * nsterm.h (EmacsMenu): fillWithWidgetValue:setDelegate renamed to
161 fillWithWidgetValue:frame:
162
423d3b3f
JD
163 * nsfns.m (Fns_convert_utf8_nfd_to_nfc): Allocate and release pool to
164 remove memory leak warnings.
165
d2d699ac
JD
166 * nsterm.m (menu_pending_title, ns_get_pending_menu_title): Remove.
167 (ns_check_menu_open): Handle menu == nil. Remove assignment to
168 menu_pending_title.
169
170 * nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:setDelegate.
171 (x_activate_menubar): Update the whole menu.
172 (trackingNotification:): Call ns_check_menu_open if tracking ends.
173 (menuWillOpen:): Increment trackingMenu. For OSX <= 10.6, exit if
174 current event is not NSSystemDefined (Bug#15001).
175 Call ns_check_menu_open only if trackingMenu is 2.
176 (menuDidClose:): New method, decrease trackingMenu.
177 (fillWithWidgetValue:setDelegate:): New method.
178 (fillWithWidgetValue:): Call the above.
179
180 * nsterm.h (EmacsMenu): Add fillWithWidgetValue:setDelegate:
181
7d652d97
PE
1822013-08-11 Paul Eggert <eggert@cs.ucla.edu>
183
184 Omit some unnecessary casts.
185 Many of these go back to the old pre-C89 days, when they may have
186 been needed, but we've been assuming C89 or later for a while now.
187 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
188 (live_float_p, live_misc_p, live_vector_p):
189 * buffer.c (compare_overlays, cmp_for_strings, mmap_find)
190 (mmap_alloc, alloc_buffer_text, enlarge_buffer_text)
191 (defvar_per_buffer):
192 * callint.c (Fcall_interactively):
193 * doc.c (Fsubstitute_command_keys):
194 * filelock.c (get_boot_time):
195 * frame.c (xrdb_get_resource):
196 * gtkutil.c (hierarchy_ch_cb, qttip_cb, style_changed_cb)
197 (delete_cb, xg_dialog_response_cb, xg_maybe_add_timer)
198 (xg_get_file_name_from_selector, menuitem_destroy_callback)
199 (menuitem_highlight_callback, menu_destroy_callback)
200 (xg_update_menu_item, xg_modify_menubar_widgets, menubar_map_cb)
201 (xg_tool_bar_callback, xg_get_tool_bar_widgets)
202 (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
203 (xg_tool_bar_help_callback, tb_size_cb):
204 * image.c (xpm_alloc_color, png_read_from_memory)
205 (png_read_from_file, png_load_body, our_memory_skip_input_data)
206 (jpeg_memory_src, jpeg_file_src, imagemagick_load_image)
207 (syms_of_image):
208 * keymap.c (describe_map):
209 * nsfns.m (Fns_display_monitor_attributes_list):
210 * nsmenu.m (process_dialog:):
211 * nsterm.m (hold_event):
212 * process.c (wait_reading_process_output):
213 * regex.c (REGEX_REALLOCATE, re_set_registers, re_exec, regexec):
214 * scroll.c (do_direct_scrolling, scrolling_1):
215 * termcap.c (tgetent):
216 * window.c (check_window_containing, add_window_to_list)
217 (freeze_window_starts):
218 * xdisp.c (compare_overlay_entries, vmessage):
219 * xfns.c (x_window, x_get_monitor_attributes_xinerama)
220 (x_get_monitor_attributes_xrandr)
221 (Fx_display_monitor_attributes_list, x_display_info_for_name)
222 (Fx_open_connection, file_dialog_cb, file_dialog_unmap_cb):
223 * xfont.c (xfont_match, xfont_open):
224 * xmenu.c (x_menu_wait_for_event, menu_highlight_callback)
225 (menubar_selection_callback, menu_position_func)
226 (popup_selection_callback, create_and_show_popup_menu)
227 (dialog_selection_callback, create_and_show_dialog):
228 * xrdb.c (x_get_string_resource):
229 (main) [TESTRM]:
230 * xsmfns.c (x_session_check_input):
231 * xterm.c (x_draw_glyphless_glyph_string_foreground)
232 (xm_scroll_callback, xg_scroll_callback, xg_end_scroll_callback)
233 (xaw_jump_callback, xaw_scroll_callback):
234 Omit unnecessary casts.
235
9acc1074
PE
2362013-08-10 Paul Eggert <eggert@cs.ucla.edu>
237
238 Minor string-length refactoring.
239 * alloc.c (xstrdup): Use memcpy, not strcpy, since the length's known.
240 * frame.c (make_monitor_attribute_list):
241 Prefer build_string to strlen + make_string.
242
361c0eb8
JD
2432013-08-10 Jan Djärv <jan.h.d@swipnet.se>
244
245 * xterm.c (x_error_handler): Also ignore BadWindow for X_SetInputFocus,
246 don't check minor_code (Bug#14417).
247
14ba0822
EZ
2482013-08-09 Eli Zaretskii <eliz@gnu.org>
249
250 * xdisp.c (draw_glyphs): Don't compare row pointers, compare row
251 vertical positions instead. This avoids calling MATRIX_ROW with
252 row numbers that are possibly beyond valid limits. (Bug#15064)
253
309f24d1
DA
2542013-08-09 Dmitry Antipov <dmantipov@yandex.ru>
255
256 Use xstrdup and build_unibyte_string where applicable.
257 * alloc.c (xstrdup): Tiny cleanup. Add eassert.
258 * xfns.c (x_window):
259 * xrdb.c (x_get_customization_string):
260 * xterm.c (xim_initialize):
261 * w32fns.c (w32_window): Use xstrdup.
262 (w32_display_monitor_attributes_list):
263 * emacs.c (init_cmdargs):
264 * keyboard.c (PUSH_C_STR):
265 * nsfont.m (nsfont_open):
266 * sysdep.c (system_process_attributes):
267 * w32.c (system_process_attributes):
268 * xdisp.c (message1, message1_nolog): Use build_unibyte_string.
269
55902276
EZ
2702013-08-09 Eli Zaretskii <eliz@gnu.org>
271
272 * w32.c (PEXCEPTION_POINTERS, PEXCEPTION_RECORD, PCONTEXT): Define
273 variables of these types so that GDB would know about them, as aid
274 for debugging fatal exceptions. (Bug#15024) See also
275 http://sourceware.org/ml/gdb/2013-08/msg00010.html for related
276 discussions.
277
10bf7f5a
JD
2782013-08-08 Jan Djärv <jan.h.d@swipnet.se>
279
280 * nsterm.m (ns_update_begin): Don't change clip path if it would be
281 larger than the NSWindow (Bug#14934).
282
65620264
DA
2832013-08-08 Dmitry Antipov <dmantipov@yandex.ru>
284
285 Redesign redisplay interface to drop global variable updated_window.
286 Always pass currently updated window as a parameter to update routines.
287 * dispextern.h (updated_window): Remove declaration.
288 (struct redisplay_interface): Pass window parameter to
289 write_glyphs, insert_glyphs, clear_end_of_line, cursor_to
290 and after_update_window_hook.
291 (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line, x_cursor_to):
292 Adjust prototypes.
293 * dispnew.c (updated_window): Remove.
294 (redraw_overlapped_rows, update_marginal_area, update_text_area)
295 (update_window_line): Adjust to match redisplay interface changes.
296 * nsterm.m (ns_update_window_begin, ns_update_window_end)
297 (ns_scroll_run, ns_after_update_window_line):
298 * w32term.c (x_update_window_begin, x_update_window_end)
299 (x_after_update_window_line, x_scroll_run):
300 * xterm.c (x_update_window_begin, x_update_window_end)
301 (x_after_update_window_line, x_scroll_run):
302 * xdisp.c (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
303 Likewise. Adjust comments where appropriate.
304 (x_cursor_to): Simplify because this is always called during window
305 update (but install debugging check anyway).
306 (expose_window): Check must_be_updated_p flag to see whether this
307 function is called during window update.
308
628fdc56
DA
3092013-08-08 Dmitry Antipov <dmantipov@yandex.ru>
310
311 Do not reset window modification event counters excessively.
312 These leftovers and poor man's tricky methods to catch extra
313 redisplay's attention are no longer needed.
314 * frame.c (set_menu_bar_lines_1):
315 * minibuf.c (read_minibuf_unwind):
316 * window.c (Fset_window_start, set_window_buffer, window_resize_apply)
317 (grow_mini_window, shrink_mini_window, window_scroll_pixel_based)
318 (window_scroll_line_based, Fset_window_configuration):
319 * xdisp.c (redisplay_window): Do not reset last_modified and
320 last_overlay_modified counters.
321
8fd9c92e
JD
3222013-08-07 Jan Djärv <jan.h.d@swipnet.se>
323
324 * xselect.c (x_send_client_event): Set send_event and serial, memset
325 data.l as it might be bigger than data.b. Use 24 bit mask to
326 XSendEvent (Bug#15034).
327
0ee18172
EZ
3282013-08-07 Eli Zaretskii <eliz@gnu.org>
329
330 * xdisp.c (prepare_menu_bars): Don't call x_consider_frame_title
331 for TTY frames that are not the top frame on their console.
332 (Bug#14616)
333
16ddd1a6
MR
3342013-08-07 Martin Rudalics <rudalics@gmx.at>
335
336 * w32term.c (w32fullscreen_hook): Really maximize frame when
337 asked for (Bug#14841).
338
d2a95ffb
DA
3392013-08-07 Dmitry Antipov <dmantipov@yandex.ru>
340
341 Prefer selected_window to Fselected_window, likewise for frames.
342 * buffer.c (Fbuffer_swap_text):
343 * data.c (Fvariable_binding_locus):
344 * window.c (run_window_configuration_change_hook): Adjust users.
345 * w16select.c (Fw16_set_clipboard_data, Fw16_get_clipboard_data):
346 Use decode_live_frame.
347
170da1ec
DA
3482013-08-07 Dmitry Antipov <dmantipov@yandex.ru>
349
350 Be more careful if selected window shows the buffer other than current,
351 use window_outdated only if this is not so. This change should also
352 address some weird issues discussed in Bug#13012.
353 * window.h (window_outdated): New prototype.
354 * window.c (window_outdated): Now here. Convert from static and
355 always assume window's buffer.
356 (Fwindow_end, Fwindow_line_height): Use it.
357 * xdisp.c (reconsider_clip_changes): Remove prototype, drop 2nd arg
358 and always assume window's buffer.
359 (redisplay_window): Adjust user.
e5eefe9b 360 (redisplay_internal): Call to reconsider_clip_changes once and
170da1ec
DA
361 check whether mode line should be updated only if selected window
362 shows current buffer.
363 (run_window_scroll_functions): Use eassert for debugging check.
364 (Fmove_point_visually, note_mouse_highlight): Use window_outdated.
365
56b5d5b1
DA
3662013-08-06 Dmitry Antipov <dmantipov@yandex.ru>
367
368 * window.c (window_scroll, window_scroll_pixel_based)
369 (window_scroll_line_based): Use bool for booleans.
370
2878ba7e
PE
3712013-08-06 Paul Eggert <eggert@cs.ucla.edu>
372
373 * process.c: Fix minor off-by-one issues in descriptor counts.
374 This shouldn't fix any real bugs, but it cleans up the code a bit.
375 (max_process_desc, max_input_desc): -1, not 0, means none.
376 All uses changed.
377 (delete_input_desc): New function.
378 (delete_write_fd, delete_keyboard_wait_descriptor): Use it.
379 (deactivate_process): Scan backwards when recomuting max_process_desc;
380 that should be faster.
381 (init_process_emacs): Initialize max_input_desc.
382
e30b79c1
DA
3832013-08-06 Dmitry Antipov <dmantipov@yandex.ru>
384
385 Use region cache to speedup bidi_find_paragraph_start.
386 * buffer.h (struct buffer): New member bidi_paragraph_cache.
387 Rename cache_long_line_scans to cache_long_scans.
388 * buffer.c (bset_cache_long_line_scans): Rename to
389 bset_cache_long_scans.
390 (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer)
391 (Fbuffer_swap_text, init_buffer_once): Take bidi_paragraph_cache
392 into account.
393 (syms_of_buffer): Rename cache-long-line-scans to
394 cache-long-scans. Adjust docstring.
395 * search.c (newline_cache_on_off):
396 * indent.c (width_run_cache_on_off): Adjust users.
397 * bidi.c (bidi_paragraph_cache_on_off): New function.
398 (bidi_find_paragraph_start): Use bidi_paragraph_cache if needed.
399 * insdel.c (prepare_to_modify_buffer): Invalidate
400 bidi_paragraph_cache if enabled.
401
00012b86
DA
4022013-08-06 Dmitry Antipov <dmantipov@yandex.ru>
403
404 Invalidate region caches only if buffer text is going to be changed.
405 * lisp.h (modify_region_1): Remove 3rd arg and rename to...
406 (modify_text): ...new prototype.
407 (prepare_to_modify_buffer_1): New prototype.
408 * textprop.c (modify_region): Rename to...
409 (modify_text_properties): ...new function.
410 (add_text_properties_1, set_text_properties, Fremove_text_properties)
411 (Fremove_list_of_text_properties): Adjust users.
412 * insdel.c (modify_region_1): Remove 3rd arg and reimplement as...
413 (modify_text): ...new function.
414 (prepare_to_modify_buffer): Reimplement mostly as a wrapper for...
415 (prepare_to_modify_buffer_1): ...new function.
416 * casefiddle.c (casify_region):
417 * editfns.c (Fsubst_char_in_region, Ftranslate_region_internal)
418 (Ftranspose_regions): Use modify_text.
419
dc6c0eda
SM
4202013-08-05 Stefan Monnier <monnier@iro.umontreal.ca>
421
422 * lisp.mk (lisp): Add nadvice.elc.
423
8f3a2c26
DA
4242013-08-05 Dmitry Antipov <dmantipov@yandex.ru>
425
426 New macro to iterate over live buffers similar to frames.
427 * buffer.h (FOR_EACH_LIVE_BUFFER): New macro.
428 (Vbuffer_alist, Qpriority, Qbefore_string, Qafter_string):
429 Declare buffer-related variables here to offload lisp.h.
430 * buffer.c (Vbuffer_alist): Adjust comment.
431 (Fget_file_buffer, get_truename_buffer, Fother_buffer)
432 (other_buffer_safely):
433 * data.c (store_symval_forwarding):
434 * dispnew.c (Fframe_or_buffer_changed_p):
435 * fileio.c (Fdo_auto_save):
436 * filelock.c (unlock_all_files):
437 * minibuf.c (read_minibuf): Use FOR_EACH_LIVE_BUFFER.
438
e0fdb694
PE
4392013-08-04 Paul Eggert <eggert@cs.ucla.edu>
440
441 Fix some minor races in hosts lacking mkostemp (Bug#15015).
442 * callproc.c (create_temp_file):
443 * filelock.c (create_lock_file):
444 Assume mkostemp, since it's now provided by Gnulib.
445
63f5c6c2
EZ
4462013-08-04 Eli Zaretskii <eliz@gnu.org>
447
448 * w32.c (mkostemp): New function.
449 (mktemp): Remove, no longer used. Most of the code reused in
450 mkostemp. (Bug#15015)
484ab239 451 (mktemp): Don't undef.
63f5c6c2 452
f0b79313
DA
4532013-08-04 Dmitry Antipov <dmantipov@yandex.ru>
454
455 * dispnew.c (glyph_matrix_count, glyph_pool_count):
456 Move under GLYPH_DEBUG and ENABLE_CHECKING.
457 (new_glyph_matrix, free_glyph_matrix, new_glyph_pool)
458 (free_glyph_pool, check_glyph_memory): Likewise for
459 all users. Adjust comments where appropriate.
460
98f638d6
PE
4612013-08-03 Paul Eggert <eggert@cs.ucla.edu>
462
463 * composite.h: Minor fixups.
464 (composition_registered_p): Rename from COMPOSITION_REGISTERD_P
465 to fix a misspelling, and change it to an inline function while
466 we're at it (it need not be a macro). All uses changed.
467 (composition_method, composition_valid_p):
468 Rewrite to avoid assignments in if-conditions.
469
75c59fb3
DA
4702013-08-03 Dmitry Antipov <dmantipov@yandex.ru>
471
472 Do not use global Lisp_Object in composition macros.
473 * composite.h (composition_temp): Remove declaration.
474 (COMPOSITION_METHOD, COMPOSITION_VALID_P): Replace with...
475 (composition_method, composition_valid_p): ...inline functions.
416a3e01 476 (compose_region): Remove the leftover.
75c59fb3
DA
477 * composite.c (composition_temp): Remove.
478 (run_composition_function, update_compositions)
479 (composition_compute_stop_pos, composition_adjust_point)
480 (Ffind_composition_internal):
481 * coding.c (handle_composition_annotation):
482 * xdisp.c (handle_composition_prop, check_point_in_composition):
483 Related users changed.
484
a10c8269
DA
4852013-08-03 Dmitry Antipov <dmantipov@yandex.ru>
486
487 Drop FRAME_PTR typedef.
488 * composite.c, font.c, font.h, fontset.c, fontset.h, frame.c, frame.h:
489 * ftfont.c, ftxfont.c, gtkutil.c, gtkutil.h, image.c, keyboard.c:
490 * menu.c, menu.h, msdos.c, nsfns.m, nsfont.m, nsmenu.m, nsterm.h:
491 * nsterm.m, scroll.c, term.c, w32fns.c, w32font.c, w32font.h:
492 * w32inevt.c, w32inevt.h, w32menu.c, w32notify.c, w32term.c, w32term.h:
493 * w32uniscribe.c, w32xfns.c, widget.c, window.c, xdisp.c, xfaces.c:
494 * xfns.c, xfont.c, xftfont.c, xmenu.c, xselect.c, xterm.c:
495 All related users changed.
496
a104f656
SM
4972013-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
498
499 * eval.c (default_toplevel_binding): New function.
500 (Fdefvar): Use it.
501 (unbind_to, backtrace_eval_unrewind): Do a bit of CSE simplification.
502 (Fdefault_toplevel_value, Fset_default_toplevel_value): New subrs.
503 (syms_of_eval): Export them.
504 * data.c (Fdefault_value): Micro cleanup.
505 * term.c (init_tty): Use "false".
506
4b5c9326
DA
5072013-08-02 Dmitry Antipov <dmantipov@yandex.ru>
508
509 Fix X GC leak in GTK and raw (no toolkit) X ports.
510 * xterm.c (x_free_frame_resources): If white and black relief
511 GCs are allocated, always free them here.
512 * xfns.c (x_make_gc): Omit redundant initialization.
513 * widget.c (create_frame_gcs): Remove the leftover.
514 (EmacsFrameDestroy): Do nothing because all GCs are now freed
515 in x_free_frame_resources.
516
b19aa636
JD
5172013-08-02 Jan Djärv <jan.h.d@swipnet.se>
518
519 * nsterm.m (windowWillResize:toSize:): Only change title if
520 ! maximizing_resize && FULLSCREEN_NONE (Bug#15005). strdup title before
521 modifying it.
522 (viewDidEndLiveResize): New method.
523
524 * nsterm.h (EmacsView): Add maximizing_resize, put it and old_title
525 inside NS_IMPL_COCOA.
526
af1f7e06
DA
5272013-08-02 Dmitry Antipov <dmantipov@yandex.ru>
528
529 * insdel.c (adjust_after_replace, replace_range, del_range_2):
530 Do not check whether undo is enabled because record_insert and
531 record_delete does that themselves.
532
65b02bb9
DA
5332013-08-02 Dmitry Antipov <dmantipov@yandex.ru>
534
535 * xterm.h (struct x_output) [HAVE_X_I18N]: Remove xic_base_fontname
536 member which is not really used any more.
537 (FRAME_XIC_BASE_FONTNAME): Remove.
538 * xfns.c (xic_free_fontset): Adjust user.
539 * xmenu.c (mouse_position_for_popup, x_activate_menubar)
540 (update_frame_menubar, set_frame_menubar, free_frame_menubar)
541 (create_and_show_popup_menu, xmenu_show, create_and_show_dialog)
542 (xdialog_show): Use eassert for debugging check.
7ee0f047 543 * w32term.c (x_unfocus_frame): Remove unused dummy function.
65b02bb9 544
6318cde0
PE
5452013-08-01 Paul Eggert <eggert@cs.ucla.edu>
546
547 * fileio.c, fns.c (merge): Move extern decl from here ...
548 * lisp.h (merge): ... to here.
549
6c1a09ba
DA
5502013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
551
552 Fix last font-related change.
553 * w32font.h (w32font_list_internal, w32font_match_internal):
554 Fix prototype.
555 * w32uniscribe.c (uniscribe_list, uniscribe_match):
556 (uniscribe_list_family): Adjust to match font API change.
557 MS-Windows breakage reported by Juanma Barranquero <lekktu@gmail.com>
558 at http://lists.gnu.org/archive/html/emacs-devel/2013-08/msg00006.html.
559
f8c20208
DA
5602013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
561
562 * frame.h (FRAME_MOUSE_UPDATE):
563 * nsterm.m (ns_frame_up_to_date): Omit redundant check
564 whether hlinfo->mouse_face_mouse_frame is non-NULL.
565
fdb396e2
DA
5662013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
567
568 Avoid redundant Lisp_Object <-> struct frame conversions in font API.
569 * font.h (struct font_driver): Change list, match, and list_family
570 functions to accept struct frame * as first arg.
571 * font.c (font_score, font_compare, font_sort_entities): Remove
572 prototypes.
573 (font_sort_entities, font_list_entities, font_select_entity):
574 (font_find_for_lface, Flist_fonts, Ffont_family_list): Adjust to
575 match font API change.
576 * xfont.c (xfont_list, xfont_match, xfont_list_family):
577 * ftfont.c (ftfont_list, ftfont_match, ftfont_list_family):
578 * ftxfont.c (ftxfont_list, ftxfont_match):
579 * xftfont.c (xftfont_list, xftfont_match):
580 * nsfont.m (nsfont_list, nsfont_match, nsfont_list_family):
581 * w32font.c (w32font_list, w32font_match, w32font_list):
582 (w32font_list_internal, w32_font_match_internal): Likewise.
583 * xfaces.c (Fx_family_fonts): Adjust user.
584
52b8a085
DA
5852013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
586
587 Do not use pure Xism x_wm_set_icon_position in non-X ports.
588 * frame.c (x_set_frame_parameters): Call to x_wm_set_icon_position
589 only if HAVE_X_WINDOWS is in use.
590 * frame.h (x_set_frame_parameters): Move under HAVE_X_WINDOWS.
591 * nsterm.m (x_wm_set_icon_position): Remove no-op.
592 * w32term.c (x_wm_set_icon_position): Likewise.
593 * w32fns.c (x_icon): Adjust user.
594
c791c18e
DA
5952013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
596
597 * xterm.c (last_mouse_press_frame): Remove the
598 leftover which is not really used any more.
599 (handle_one_xevent, syms_of_xterm): Adjust users.
1ca6cc28
DA
600 (x_flush): Call XFlush once per each X display, not frame.
601 This is better because this code always unconditionally skips
602 non-X frames in Vframe_list and issues the only XFlush if we
603 have more than one X frame on the same X display.
2f935d86
DA
604 (any_help_event_p, x_draw_glyph_string_background, x_display_ok):
605 Use bool for booleans.
606 (x_draw_glyph_string_background, cvt_string_to_pixel):
607 (cvt_pixel_dtor): Drop unnecessary prototypes.
608 * xterm.h (x_display_ok): Adjust prototype.
c791c18e 609
f435830e
DA
6102013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
611
612 Drop unnecessary functions that deals with frame pixel size.
613 * frame.h, msdos.h, w32term.h, xterm.h (x_pixel_width)
614 (x_pixel_height): Drop prototypes.
615 * msdos.c, nsfns.m, w32fns.c, xfns.c (x_pixel_width)
616 (x_pixel_height): Drop implementations.
617 * frame.c (Fframe_pixel_height): Use FRAME_PIXEL_HEIGHT
618 which should be always valid for window frame.
619 (Frame_pixel_width): Likewise with FRAME_PIXEL_WIDTH.
620 * w32menu.c (Fx_popup_dialog):
621 * xmenu.c (Fx_popup_dialog): Likewise for both.
622
84231434
DA
6232013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
624
625 * frame.c (Fmake_terminal_frame): Use store_in_alist to setup
626 frame parameters and call to Fmodify_frame_parameters just once.
4c131798
DA
627 (Fset_frame_height, Fset_frame_width): Mention nil frame in docstring.
628 (Fset_frame_size, Fset_frame_position): Use decode_live_frame
629 and mention nil frame in docstring.
84231434 630
959067a1
DA
6312013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
632
633 * frame.c (make_frame, x_set_frame_parameters): Use bool for boolean.
634 (x_figure_window_size): Likewise. Adjust to return long.
635 (syms_of_frame): Do not DEFSYM Qterminal_live_p.
636 (toplevel): Move Qterminal_live_p to...
637 * terminal.c (toplevel): ...here, make it static, and...
638 (syms_of_terminal): ...DEFSYM here.
639 * frame.h (Qterminal_live_p): Remove declaration.
640 (make_frame, x_figure_window_size): Adjust prototype.
641 * nsfns.m (Fx_create_frame): Use long for window flags.
642
f4b169ce
PE
6432013-07-30 Paul Eggert <eggert@cs.ucla.edu>
644
645 Fix tempfile bug on platforms lacking mkostemp and mkstemp (Bug#14986).
646 * callproc.c (create_temp_file) [! (HAVE_MKOSTEMP || HAVE_MKSTEMP)]:
647 Do not assume that emacs_close (INT_MAX) is a no-op.
648
bee6a2c7
DA
6492013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
650
651 * xfaces.c (make_face_cache): For struct face_cache, prefer
652 xmalloc to xzalloc and so avoid redundant call to memset.
653 (Finternal_set_lisp_face_attribute): Fix comment typo and style.
654
d7e6881a
DA
6552013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
656
657 * fringe.c (draw_window_fringes, update_window_fringes)
658 (compute_fringe_widths):
659 * w32term.c (x_draw_glyph_string):
660 * window.c (candidate_window_p, Frecenter):
661 * xfaces.c (realize_basic_faces, realize_default_face)
662 (Fbitmap_space_p, Finternal_set_lisp_face_attribute)
663 (x_update_menu_appearance, face_attr_equal_p, lface_equal_p):
664 * xfns.c (x_set_cursor_color, xic_free_xfontset):
665 * xmenu.c (Fx_menu_bar_open_internal):
666 * xselect.c (x_reply_selection_request, Fx_get_atom_name):
667 * xsettings.c (xft_settings_event):
668 * xterm.c (x_draw_glyph_string, x_had_errors_p):
669 Use bool for booleans. Adjust style and comments where
670 appropriate.
671 * dispextern.h (draw_window_fringes, update_window_fringes)
672 (compute_fringe_widths):
673 * xterm.h (x_had_errors_p): Adjust prototype.
674
ec3058af
DA
6752013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
676
677 * frame.c (Fmodify_frame_parameters): Always check 2nd arg with
678 CHECK_LIST. Rewrite the loop to avoid useless local variable.
679
218e0637
DA
6802013-07-29 Dmitry Antipov <dmantipov@yandex.ru>
681
682 * fns.c (toplevel): Remove comment before Fsafe_length because
683 it checks for QUIT.
684
e560aba9
PE
6852013-07-28 Paul Eggert <eggert@cs.ucla.edu>
686
687 * frame.c (delete_frame): Avoid unnecessary 'this_f' test (Bug#14970).
688
2e5ce5de
EZ
6892013-07-28 Eli Zaretskii <eliz@gnu.org>
690
691 * w32fns.c (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Make sure the
692 frame which got the message is still alive, before dereferencing
693 its pointer. (Bug#14970)
694
695 * frame.c (delete_frame): Test "this" frame's minibuffer window to
696 be a live window, before using it as such. (Bug#14970)
697
e95da6d3
EZ
6982013-07-27 Eli Zaretskii <eliz@gnu.org>
699
700 * w32term.c (w32_read_socket) <WM_KILLFOCUS>: Call
701 w32_detect_focus_change instead of doing part of its job by hand.
702 This fixes the problem whereby FOCUS_OUT events were not sent to
703 the event queue.
704
a8f93651
EZ
7052013-07-26 Eli Zaretskii <eliz@gnu.org>
706
fec92060
EZ
707 * process.c (Fprocess_list): Doc fix.
708
a8f93651
EZ
709 * w32term.c (w32_read_socket) <WM_EMACS_PAINT>: Warn about frame
710 being re-exposed only if it didn't ask to become visible.
711 <WM_SIZE>: Under SIZE_RESTORED, only set the frame visible if it
712 was previously iconified. (Bug#14841)
713 (x_iconify_frame): Mark the frame iconified.
714
d5a7a9d9
PE
7152013-07-26 Paul Eggert <eggert@cs.ucla.edu>
716
717 Fix minor problems found by static checking.
718 * eval.c (get_backtrace_frame, backtrace_eval_unrewind): Now static.
719 (backtrace_eval_unrewind): ';' -> '{}' to pacify GCC.
720
56ea7291
SM
7212013-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
722
723 * eval.c (set_specpdl_old_value): New function.
724 (unbind_to): Minor simplification.
725 (get_backtrace_frame): New function.
726 (Fbacktrace_frame): Use it. Add `base' argument.
727 (backtrace_eval_unrewind, Fbacktrace_eval): New functions.
728 (syms_of_eval): Export backtrace-eval.
729 * xterm.c (x_focus_changed): Simplify.
730
9d611ffe
PE
7312013-07-25 Paul Eggert <eggert@cs.ucla.edu>
732
733 * fileio.c (Finsert_file_contents): Avoid double-close (Bug#14936).
734
999c74e3
EZ
7352013-07-24 Eli Zaretskii <eliz@gnu.org>
736
737 * xdisp.c (redisplay_window): Instead of moving point out of
738 scroll margin, reject the force_start method, and try scrolling
739 instead. (Bug#14780)
740
198fa217
KB
7412013-07-24 Ken Brown <kbrown@cornell.edu>
742
743 * alloc.c (make_save_ptr): Define if HAVE_NTGUI is defined
744 (Bug#14944).
745
53840e55
PE
7462013-07-24 Paul Eggert <eggert@cs.ucla.edu>
747
748 * eval.c (Fprogn): Do not check that BODY is a proper list.
749 This undoes the previous change. The check slows down the
750 interpreter, and is not needed to prevent a crash. See
751 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00693.html>.
752
60967f56
GM
7532013-07-23 Glenn Morris <rgm@gnu.org>
754
755 * Makefile.in ($(etc)/DOC, temacs$(EXEEXT)): Ensure etc/ exists.
756
9ca960e2
PE
7572013-07-23 Paul Eggert <eggert@cs.ucla.edu>
758
a29c3e6d
PE
759 Port to GNU/Linux systems with tinfo but not ncurses.
760 * dispnew.c (init_display): Depend on USE_NCURSES, not GNU_LINUX,
761 to decide whether ncurses is being used. Without this change,
762 GCC complains about tgetent not being declared, on a system
763 that has tinfo installed but ncurses not installed.
764
f274311c
PE
765 * eval.c (Fprogn): Check that BODY is a proper list.
766
16b0520a
PE
767 Tune UNEVALLED functions by using XCAR instead of Fcar, etc.
768 * data.c (Fsetq_default):
769 * eval.c (Fif, Fcond, Fprog1, Fsetq, Fquote, Ffunction, Fdefvar)
770 (Fdefconst, FletX, Flet, Fwhile, Fcatch, Funwind_protect)
771 (Fcondition_case):
772 Tune by taking advantage of the fact that ARGS is always a list
773 when a function is declared to have UNEVALLED args.
774
9ca960e2
PE
775 * emacsgtkfixed.c: Port to GCC 4.6.
776 GCC 4.6 complains about -Wunused-local-typedefs, introduced in 4.7.
777
afacaa1b
JB
7782013-07-23 Juanma Barranquero <lekktu@gmail.com>
779
780 * callproc.c (child_setup)[!WINDOWSNT]: Move exec_errno and pid
781 here to silence compiler warnings.
782
368a85a4
PE
7832013-07-22 Paul Eggert <eggert@cs.ucla.edu>
784
785 * sysdep.c (frame) [__FreeBSD__]: #define to freebsd_frame
786 when including <sys/user.h>, to prevent Sparc/ARM machine/frame.h
787 from messing up Emacs's 'struct frame' (Bug#14923).
788
f4e891b5
PE
7892013-07-21 Paul Eggert <eggert@cs.ucla.edu>
790
791 * alloc.c (make_save_ptr_ptr): Define this function.
792 It was inadvertently omitted. It's needed only if
793 HAVE_MENUS && ! (USE_X_TOOLKIT || USE_GTK).
794
96c8b65e
JD
7952013-07-21 Jan Djärv <jan.h.d@swipnet.se>
796
797 * nsterm.m (sendEvent:): Skip mouse moved if no dialog and no Emacs
798 frame have focus (Bug#14895).
799
ee010797
PE
8002013-07-21 Paul Eggert <eggert@cs.ucla.edu>
801
802 Avoid vfork-related deadlock more cleanly.
803 * callproc.c (child_setup): When the child's exec fails, output
804 the program name, as that's more useful. Use O_NONBLOCK to avoid
805 deadlock.
806 * process.c (create_process_1): Remove; no longer needed.
807 (create_process): Remove timer hack; no longer needed, now that
808 the child avoids deadlock.
809
f0398ec1 8102013-07-20 Glenn Morris <rgm@gnu.org>
8bfcc21a
GM
811
812 * image.c (Fimage_flush): Fix doc typo.
813
b2a069c2
PE
8142013-07-20 Paul Eggert <eggert@cs.ucla.edu>
815
6496aec9
PE
816 Fix array bounds violation when pty allocation fails.
817 * process.c (PTY_NAME_SIZE): New constant.
818 (pty_name): Remove static variable; it's now auto.
819 (allocate_pty): Define even if !HAVE_PTYS; that's simpler.
820 Take pty_name as an arg rather than using a static variable.
821 All callers changed.
822 (create_process): Recover pty_flag from process, not from volatile local.
823 (create_pty): Stay inside array even when pty allocation fails.
824 (Fmake_serial_process): Omit unnecessary initializaiton of pty_flag.
825
b2a069c2
PE
826 * lread.c (Fload): Avoid initialization only when lint checking.
827 Mention that it's needed only for older GCCs.
828
99107004
KH
8292013-07-20 Kenichi Handa <handa@gnu.org>
830
831 * coding.c (CODING_ISO_FLAG_LEVEL_4): New macro.
832 (decode_coding_iso_2022): Check the single-shift area. (Bug#8522)
833
6b1b199d
AS
8342013-07-20 Andreas Schwab <schwab@linux-m68k.org>
835
836 * lread.c (Fload): Avoid uninitialized warning.
837
4195afc3
PE
8382013-07-19 Paul Eggert <eggert@cs.ucla.edu>
839
3f5bef16
PE
840 Fix some minor file descriptor leaks and related glitches.
841 * filelock.c (create_lock_file) [!O_CLOEXEC]: Use fcntl with FD_CLOEXEC.
842 (create_lock_file): Use write, not emacs_write.
843 * image.c (slurp_file, png_load_body):
844 * process.c (Fnetwork_interface_list, Fnetwork_interface_info)
845 (server_accept_connection):
846 Don't leak an fd on memory allocation failure.
847 * image.c (slurp_file): Add a cheap heuristic for growing files.
848 * xfaces.c (Fx_load_color_file): Block input around the fopen too,
849 as that's what the other routines do. Maybe input need not be
850 blocked at all, but it's better to be consistent.
851 Avoid undefined behavior when strlen is zero.
852
4195afc3
PE
853 * alloc.c (staticpro): Avoid buffer overrun on repeated calls.
854 (NSTATICS): Now a constant; doesn't need to be a macro.
855
a1aeeffe
RS
8562013-07-19 Richard Stallman <rms@gnu.org>
857
858 * coding.c (decode_coding_utf_8): Add simple loop for fast
859 processing of ASCII characters.
860
63b34baa
PE
8612013-07-19 Paul Eggert <eggert@cs.ucla.edu>
862
863 * conf_post.h (RE_TRANSLATE_P) [emacs]: Remove obsolete optimization.
864
621dd9ac
EZ
8652013-07-19 Eli Zaretskii <eliz@gnu.org>
866
867 * keyboard.c (kbd_buffer_get_event): Use Display_Info instead of
868 unportable 'struct x_display_info'.
869 (DISPLAY_LIST_INFO): Delete macro: not needed, since Display_Info
870 is a portable type.
871
1396ac86
PE
8722013-07-19 Paul Eggert <eggert@cs.ucla.edu>
873
ab9980cd
PE
874 * sysdep.c [GNU_LINUX]: Fix fd and memory leaks and similar issues.
875 (procfs_ttyname): Don't use uninitialized storage if emacs_fopen
876 or fscanf fails.
877 (system_process_attributes): Prefer plain char to unsigned char
878 when either will do. Clean up properly if interrupted or if
879 memory allocations fail. Don't assume sscanf succeeds. Remove
880 no-longer-needed workaround to stop GCC from whining. Read
881 command-line once, instead of multiple times. Check read status a
882 bit more carefully.
883
1396ac86
PE
884 Fix obscure porting bug with varargs functions.
885 The code assumed that int is treated like ptrdiff_t in a vararg
886 function, which is not a portable assumption. There was a similar
887 -- though these days less likely -- porting problem with various
888 assumptions that pointers of different types all smell the same as
889 far as vararg functions is conserved. To make this problem less
890 likely in the future, redo the API to use varargs functions.
891 * alloc.c (make_save_value): Remove this vararg function.
892 All uses changed to ...
893 (make_save_int_int_int, make_save_obj_obj_obj_obj)
894 (make_save_ptr_int, make_save_funcptr_ptr_obj, make_save_memory):
895 New functions.
896 (make_save_ptr): Rename from make_save_pointer, for consistency with
897 the above. Define only on platforms that need it. All uses changed.
898
4d19d194
PE
8992013-07-18 Paul Eggert <eggert@cs.ucla.edu>
900
901 * keyboard.c: Try to fix typos in previous change.
902 (DISPLAY_LIST_INFO): New macro.
903 (kbd_buffer_get_event): Do not access members that are not present
c7064f05 904 in X11. Revert inadvertent change of "!=" to "=".
4d19d194 905
945c5bb1
JB
9062013-07-18 Juanma Barranquero <lekktu@gmail.com>
907
908 * keyboard.c (kbd_buffer_get_event):
909 * w32term.c (x_focus_changed): Port FOCUS_(IN|OUT)_EVENT changes to W32.
910 Followup to 2013-07-16T11:41:06Z!jan.h.d@swipnet.se.
911
f4b1eb36
PE
9122013-07-18 Paul Eggert <eggert@cs.ucla.edu>
913
5e679a2c
PE
914 * filelock.c: Fix unlikely file descriptor leaks.
915 (get_boot_time_1): Rework to avoid using emacs_open.
916 This doesn't actually fix a leak, but is better anyway.
917 (read_lock_data): Use read, not emacs_read.
918
a8cd4836
PE
919 * doc.c: Fix minor memory and file descriptor leaks.
920 * doc.c (get_doc_string): Fix memory leak when doc file absent.
921 (get_doc_string, Fsnarf_documentation):
922 Fix file descriptor leak on error.
923
ef30e638
PE
924 * term.c: Fix minor fdopen-related file descriptor leaks.
925 * term.c (Fresume_tty) [!MSDOS]: Close fd if fdopen (fd) fails.
926 (init_tty) [!DOS_NT]: Likewise. Also close fd if isatty (fd) fails.
927
f4b1eb36
PE
928 * charset.c: Fix file descriptor leaks and errno issues.
929 Include <errno.h>.
930 (load_charset_map_from_file): Don't leak file descriptor on error.
931 Use plain record_xmalloc since the allocation is larger than
932 MAX_ALLOCA; that's simpler here. Simplify test for exhaustion
933 of entries.
934 * eval.c (record_unwind_protect_nothing):
935 * fileio.c (fclose_unwind):
936 New functions.
937 * lread.c (load_unwind): Remove. All uses replaced by fclose_unwind.
938 The replacement doesn't block input, but that no longer seems
939 necessary.
940
b648c163
PE
9412013-07-17 Paul Eggert <eggert@cs.ucla.edu>
942
a0931322
PE
943 * lread.c: Fix file descriptor leaks and errno issues.
944 (Fload): Close some races that leaked fds or streams when 'load'
945 was interrupted.
946 (Fload, openp): Report error number of last nontrivial failure to open.
947 ENOENT counts as trivial.
948 * eval.c (do_nothing, clear_unwind_protect, set_unwind_protect_ptr):
949 New functions.
950 * fileio.c (close_file_unwind): No need to test whether FD is nonnegative,
951 now that the function is always called with a nonnegative arg.
952 * lisp.h (set_unwind_protect_ptr, set_unwind_protect_int): Remove.
953 All uses replaced with ...
954 (clear_unwind_protect, set_unwind_protect_ptr): New decls.
955
b648c163
PE
956 A few more minor file errno-reporting bugs.
957 * callproc.c (Fcall_process):
958 * doc.c (Fsnarf_documentation):
959 * fileio.c (Frename_file, Fadd_name_to_file, Fmake_symbolic_link):
960 * process.c (set_socket_option):
961 Don't let a constructor trash errno.
962 * doc.c: Include <errno.h>.
963
b1dc4084
JB
9642013-07-16 Juanma Barranquero <lekktu@gmail.com>
965
966 * w32fns.c (unwind_create_tip_frame): Fix declaration.
967
c43843aa
PE
9682013-07-16 Paul Eggert <eggert@cs.ucla.edu>
969
50a30cce
PE
970 Fix w32 bug with call-process-region (Bug#14885).
971 * callproc.c (Fcall_process_region): Pass nil, not "/dev/null",
972 to Fcall_process when the input is empty. This simplifies the
973 code a bit. It makes no difference on POSIXish platforms but
974 apparently it fixes a bug on w32.
975
44e18199 976 Fix bug where insert-file-contents closes a file twice (Bug#14839).
41d48a42
PE
977 * fileio.c (close_file_unwind): Don't close if FD is negative;
978 this can happen when unwinding a zapped file descriptor.
979 (Finsert_file_contents): Unwind-protect the fd before the point marker,
980 in case Emacs runs out of memory between the two unwind-protects.
981 Don't trash errno when closing FD.
982 Zap the FD in the specpdl when closing it, instead of deferring
983 the removal of the unwind-protect; this fixes a bug where a child
984 function unwinds the stack past us.
985
27e498e6
PE
986 New unwind-protect flavors to better type-check C callbacks.
987 This also lessens the need to write wrappers for callbacks,
988 and the need for make_save_pointer.
989 * alloca.c (free_save_value):
990 * atimer.c (run_all_atimers):
991 Now extern.
992 * alloc.c (safe_alloca_unwind):
993 * atimer.c (unwind_stop_other_atimers):
994 * keyboard.c (cancel_hourglass_unwind) [HAVE_WINDOW_SYSTEM]:
995 * menu.c (cleanup_popup_menu) [HAVE_NS]:
996 * minibuf.c (choose_minibuf_frame_1):
997 * process.c (make_serial_process_unwind):
998 * xdisp.h (pop_message_unwind):
999 * xselect.c (queue_selection_requests_unwind):
1000 Remove no-longer-needed wrapper. All uses replaced by the wrappee.
1001 * alloca.c (record_xmalloc):
1002 Prefer record_unwind_protect_ptr to record_unwind_protect with
1003 make_save_pointer.
1004 * alloca.c (Fgarbage_collect):
1005 Prefer record_unwind_protect_void to passing a dummy.
1006 * buffer.c (restore_buffer):
1007 * window.c (restore_window_configuration):
1008 * xfns.c, w32fns.c (do_unwind_create_frame)
1009 New wrapper. All record-unwind uses of wrappee changed.
1010 * buffer.c (set_buffer_if_live):
1011 * callproc.c (call_process_cleanup, delete_temp_file):
1012 * coding.c (code_conversion_restore):
1013 * dired.c (directory_files_internal_w32_unwind) [WINDOWSNT]:
1014 * editfns.c (save_excursion_restore)
1015 (subst_char_in_region_unwind, subst_char_in_region_unwind_1)
1016 (save_restriction_restore):
1017 * eval.c (restore_stack_limits, un_autoload):
1018 * fns.c (require_unwind):
1019 * keyboard.c (recursive_edit_unwind, tracking_off):
1020 * lread.c (record_load_unwind, load_warn_old_style_backquotes):
1021 * macros.c (pop_kbd_macro, restore_menu_items):
1022 * nsfns.m (unwind_create_frame):
1023 * print.c (print_unwind):
1024 * process.c (start_process_unwind):
1025 * search.c (unwind_set_match_data):
1026 * window.c (select_window_norecord, select_frame_norecord):
1027 * xdisp.c (unwind_with_echo_area_buffer, unwind_format_mode_line)
1028 (fast_set_selected_frame):
1029 * xfns.c, w32fns.c (unwind_create_tip_frame):
1030 Return void, not a dummy Lisp_Object. All uses changed.
1031 * buffer.h (set_buffer_if_live): Move decl here from lisp.h.
1032 * callproc.c (call_process_kill):
1033 * fileio.c (restore_point_unwind, decide_coding_unwind)
1034 (build_annotations_unwind):
1035 * insdel.c (Fcombine_after_change_execute_1):
1036 * keyboard.c (read_char_help_form_unwind):
1037 * menu.c (unuse_menu_items):
1038 * minibuf.c (run_exit_minibuf_hook, read_minibuf_unwind):
1039 * sound.c (sound_cleanup):
1040 * xdisp.c (unwind_redisplay):
1041 * xfns.c (clean_up_dialog):
1042 * xselect.c (x_selection_request_lisp_error, x_catch_errors_unwind):
1043 Accept no args and return void, instead of accepting and returning
1044 a dummy Lisp_Object. All uses changed.
1045 * cygw32.c (fchdir_unwind):
1046 * fileio.c (close_file_unwind):
1047 * keyboard.c (restore_kboard_configuration):
1048 * lread.c (readevalllop_1):
1049 * process.c (wait_reading_process_output_unwind):
1050 Accept int and return void, rather than accepting an Emacs integer
1051 and returning a dummy object. In some cases this fixes an
1052 unlikely bug when the corresponding int is outside Emacs integer
1053 range. All uses changed.
1054 * dired.c (directory_files_internal_unwind):
1055 * fileio.c (do_auto_save_unwind):
1056 * gtkutil.c (pop_down_dialog):
1057 * insdel.c (reset_var_on_error):
1058 * lread.c (load_unwind):
1059 * xfns.c (clean_up_file_dialog):
1060 * xmenu.c, nsmenu.m (pop_down_menu):
1061 * xmenu.c (cleanup_widget_value_tree):
1062 * xselect.c (wait_for_property_change_unwind):
1063 Accept pointer and return void, rather than accepting an Emacs
1064 save value encapsulating the pointer and returning a dummy object.
1065 All uses changed.
1066 * editfns.c (Fformat): Update the saved pointer directly via
1067 set_unwind_protect_ptr rather than indirectly via make_save_pointer.
1068 * eval.c (specpdl_func): Remove. All uses replaced by definiens.
1069 (unwind_body): New function.
1070 (record_unwind_protect): First arg is now a function returning void,
1071 not a dummy Lisp_Object.
1072 (record_unwind_protect_ptr, record_unwind_protect_int)
1073 (record_unwind_protect_void): New functions.
1074 (unbind_to): Support SPECPDL_UNWIND_PTR etc.
1075 * fileio.c (struct auto_save_unwind): New type.
1076 (do_auto_save_unwind): Use it.
1077 (do_auto_save_unwind_1): Remove; subsumed by new do_auto_save_unwind.
1078 * insdel.c (struct rvoe_arg): New type.
1079 (reset_var_on_error): Use it.
1080 * lisp.h (SPECPDL_UNWIND_PTR, SPECPDL_UNWIND_INT, SPECPDL_UNWIND_VOID):
1081 New constants.
1082 (specbinding_func): Remove; there are now several such functions.
1083 (union specbinding): New members unwind_ptr, unwind_int, unwind_void.
1084 (set_unwind_protect_ptr): New function.
1085 * xselect.c: Remove unnecessary forward decls, to simplify maintenance.
1086
4e604a5d
PE
1087 Be simpler and more consistent about reporting I/O errors.
1088 * fileio.c (Fcopy_file, Finsert_file_contents, Fwrite_region):
1089 Say "Read error" and "Write error", rather than "I/O error", or
1090 "IO error reading", or "IO error writing", when a read or write
1091 error occurs.
1092 * process.c (Fmake_network_process, wait_reading_process_output)
1093 (send_process, Fprocess_send_eof, wait_reading_process_output):
1094 Capitalize diagnostics consistently. Put "failed foo" at the
1095 start of the diagnostic, so that we don't capitalize the
1096 function name "foo". Consistently say "failed" for such
1097 diagnostics.
1098 * sysdep.c, w32.c (serial_open): Now accepts Lisp string, not C string.
1099 All callers changed. This is so it can use report_file_error.
1100 * sysdep.c (serial_open, serial_configure): Capitalize I/O
1101 diagnostics consistently as above.
1102
a9757f6a
PE
1103 * fileio.c (report_file_errno): Fix errno reporting bug.
1104 If the file name is neither null nor a pair, package it up as a
1105 singleton list. All callers changed, both to this function and to
1106 report_file_error. This fixes a bug where the memory allocator
1107 invoked by list1 set errno so that the immediately following
1108 report_file_error reported the wrong errno value.
1109
c43843aa
PE
1110 Fix minor problems found by --enable-gcc-warnings.
1111 * frame.c (Fhandle_focus_in, Fhandle_focus_out): Return a value.
1112 * keyboard.c (kbd_buffer_get_event): Remove unused local.
1113
18c26d81
JD
11142013-07-16 Jan Djärv <jan.h.d@swipnet.se>
1115
1116 * xterm.c (x_focus_changed): Always generate FOCUS_IN_EVENT.
1117 Set event->arg to Qt if switch-event shall be generated.
1118 Generate FOCUS_OUT_EVENT for FocusOut if this is the focused frame.
1119
1120 * termhooks.h (enum event_kind): Add FOCUS_OUT_EVENT.
1121
1122 * nsterm.m (windowDidResignKey): If this is the focused frame, generate
1123 FOCUS_OUT_EVENT.
1124
1125 * keyboard.c (Qfocus_in, Qfocus_out): New static objects.
1126 (make_lispy_focus_in, make_lispy_focus_out): Declare and define.
1127 (kbd_buffer_get_event): For FOCUS_IN, make a focus_in event if no
1128 switch frame event is made. Check ! NILP (event->arg) if X11 (moved
44e18199 1129 from xterm.c). Make focus_out event for FOCUS_OUT_EVENT if NS or X11
18c26d81
JD
1130 and there is a focused frame.
1131 (head_table): Add focus-in and focus-out.
1132 (keys_of_keyboard): Add focus-in and focus-out to Vspecial_event_map,
1133 bind to handle-focus-in/out.
1134
1135 * frame.c (Fhandle_focus_in, Fhandle_focus_out): New functions.
1136 (Fhandle_switch_frame): Call Fhandle_focus_in.
1137 (syms_of_frame): defsubr handle-focus-in/out.
1138
6c6f1994
PE
11392013-07-16 Paul Eggert <eggert@cs.ucla.edu>
1140
c7ddc792
PE
1141 Fix porting bug to older POSIXish platforms (Bug#14862).
1142 * sysdep.c (emacs_pipe): New function, that implements
1143 pipe2 (fd, O_CLOEXEC) even on hosts that lack O_CLOEXEC.
1144 This should port better to CentOS 5 and to Mac OS X 10.6.
1145 All calls to pipe2 changed.
1146
6c6f1994
PE
1147 Prefer list1 (X) to Fcons (X, Qnil) when building lists.
1148 This makes the code easier to read and the executable a bit smaller.
1149 Do not replace all calls to Fcons that happen to create lists,
1150 just calls that are intended to create lists. For example, when
1151 creating an alist that maps FOO to nil, use list1 (Fcons (FOO, Qnil))
1152 rather than list1 (list1 (FOO)) or Fcons (Fcons (FOO, Qnil), Qnil).
1153 Similarly for list2 through list5.
1154 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
1155 * bytecode.c (exec_byte_code):
1156 * callint.c (quotify_arg, Fcall_interactively):
1157 * callproc.c (Fcall_process, create_temp_file):
1158 * charset.c (load_charset_map_from_file)
1159 (Fdefine_charset_internal, init_charset):
1160 * coding.c (get_translation_table, detect_coding_system)
1161 (Fcheck_coding_systems_region)
1162 (Fset_terminal_coding_system_internal)
1163 (Fdefine_coding_system_internal, Fdefine_coding_system_alias):
1164 * composite.c (update_compositions, Ffind_composition_internal):
1165 * dired.c (directory_files_internal, file_name_completion)
1166 (Fsystem_users):
1167 * dispnew.c (Fopen_termscript, bitch_at_user, init_display):
1168 * doc.c (Fsnarf_documentation):
1169 * editfns.c (Fmessage_box):
1170 * emacs.c (main):
1171 * eval.c (do_debug_on_call, signal_error, maybe_call_debugger)
1172 (Feval, eval_sub, Ffuncall, apply_lambda):
1173 * fileio.c (make_temp_name, Fcopy_file, Faccess_file)
1174 (Fset_file_selinux_context, Fset_file_acl, Fset_file_modes)
1175 (Fset_file_times, Finsert_file_contents)
1176 (Fchoose_write_coding_system, Fwrite_region):
1177 * fns.c (Flax_plist_put, Fyes_or_no_p, syms_of_fns):
1178 * font.c (font_registry_charsets, font_parse_fcname)
1179 (font_prepare_cache, font_update_drivers, Flist_fonts):
1180 * fontset.c (Fset_fontset_font, Ffontset_info, syms_of_fontset):
1181 * frame.c (make_frame, Fmake_terminal_frame)
1182 (x_set_frame_parameters, x_report_frame_params)
1183 (x_default_parameter, Fx_parse_geometry):
1184 * ftfont.c (syms_of_ftfont):
1185 * image.c (gif_load):
1186 * keyboard.c (command_loop_1):
1187 * keymap.c (Fmake_keymap, Fmake_sparse_keymap, access_keymap_1)
1188 (Fcopy_keymap, append_key, Fcurrent_active_maps)
1189 (Fminor_mode_key_binding, accessible_keymaps_1)
1190 (Faccessible_keymaps, Fwhere_is_internal):
1191 * lread.c (read_emacs_mule_char):
1192 * menu.c (find_and_return_menu_selection):
1193 * minibuf.c (get_minibuffer):
1194 * nsfns.m (Fns_perform_service):
1195 * nsfont.m (ns_script_to_charset):
1196 * nsmenu.m (ns_popup_dialog):
1197 * nsselect.m (ns_get_local_selection, ns_string_from_pasteboard)
1198 (Fx_own_selection_internal):
1199 * nsterm.m (append2):
1200 * print.c (Fredirect_debugging_output)
1201 (print_prune_string_charset):
1202 * process.c (Fdelete_process, Fprocess_contact)
1203 (Fformat_network_address, set_socket_option)
1204 (read_and_dispose_of_process_output, write_queue_push)
1205 (send_process, exec_sentinel):
1206 * sound.c (Fplay_sound_internal):
1207 * textprop.c (validate_plist, add_properties)
1208 (Fput_text_property, Fadd_face_text_property)
1209 (copy_text_properties, text_property_list, syms_of_textprop):
1210 * unexaix.c (report_error):
1211 * unexcoff.c (report_error):
1212 * unexsol.c (unexec):
1213 * xdisp.c (redisplay_tool_bar, store_mode_line_string)
1214 (Fformat_mode_line, syms_of_xdisp):
1215 * xfaces.c (set_font_frame_param)
1216 (Finternal_lisp_face_attribute_values)
1217 (Finternal_merge_in_global_face, syms_of_xfaces):
1218 * xfns.c (x_default_scroll_bar_color_parameter)
1219 (x_default_font_parameter, x_create_tip_frame):
1220 * xfont.c (xfont_supported_scripts):
1221 * xmenu.c (Fx_popup_dialog, xmenu_show, xdialog_show)
1222 (menu_help_callback, xmenu_show):
1223 * xml.c (make_dom):
1224 * xterm.c (set_wm_state):
1225 Prefer list1 (FOO) to Fcons (FOO, Qnil) when creating a list,
1226 and similarly for list2 through list5.
1227
bafe80ce
PE
12282013-07-15 Paul Eggert <eggert@cs.ucla.edu>
1229
1230 * callproc.c (Fcall_process_region): Fix minor race and tune.
1231 (create_temp_file): New function, with the temp-file-creation part
1232 of the old Fcall_process_region. Use Fcopy_sequence to create the
1233 temp file name, rather than alloca + build_string, for simplicity.
1234 Don't bother to block input around the temp file creation;
1235 shouldn't be needed. Simplify use of mktemp. Use
1236 record_unwind_protect immediately after creating the temp file;
1237 this closes an unlikely race where the temp file was not removed.
1238 Use memcpy rather than an open-coded loop.
1239 (Fcall_process_region): Use the new function. If the input is
1240 empty, redirect from /dev/null rather than from a newly created
1241 empty temp file; this avoids unnecessary file system traffic.
1242
4700b5a5
PE
12432013-07-14 Paul Eggert <eggert@cs.ucla.edu>
1244
5c97beae
PE
1245 * filelock.c (create_lock_file) [!HAVE_MKOSTEMP && !HAVE_MKSTEMP]:
1246 Simplify by making this case like the other two. This is a bit
1247 slower on obsolete hosts, but the extra complexity isn't worth it.
1248
4700b5a5
PE
1249 * callproc.c (child_setup, relocate_fd) [!DOS_NT]:
1250 * process.c (create_process) [!DOS_NT]:
1251 Remove now-unnecessary calls to emacs_close.
1252
f9a74c4c
EZ
12532013-07-13 Eli Zaretskii <eliz@gnu.org>
1254
922ae7ee
EZ
1255 * w32term.c (x_draw_hollow_cursor): Delete the brush object when
1256 returning early. (Bug#14850)
1257
f9a74c4c
EZ
1258 * coding.c (syms_of_coding): Set up inhibit-null-byte-detection
1259 and inhibit-iso-escape-detection attributes of 'undecided'.
1260 (Bug#14822)
1261
5e301d76
PE
12622013-07-13 Paul Eggert <eggert@cs.ucla.edu>
1263
69e0e5ee
PE
1264 * deps.mk (sysdep.o): Remove dependency on ../lib/ignore-value.h.
1265 Reported by Herbert J. Skuhra in
1266 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00455.html>.
1267
5e301d76
PE
1268 Don't lose top specpdl entry when memory is exhausted.
1269 * eval.c (grow_specpdl): Increment specpdl top by 1 and check for
1270 specpdl overflow here, to simplify callers; all callers changed.
1271 Always reserve an unused entry at the stack top; this avoids
1272 losing the top entry's information when memory is exhausted.
1273
7e649856
PE
12742013-07-12 Paul Eggert <eggert@cs.ucla.edu>
1275
a773ed9a
PE
1276 Clean up errno reporting and fix some errno-reporting bugs.
1277 * callproc.c (Fcall_process):
1278 * fileio.c (Fcopy_file, Finsert_file_contents, Fwrite_region):
1279 * process.c (create_process, Fmake_network_process):
1280 * unexaix.c (report_error):
1281 * unexcoff.c (report_error):
1282 Be more careful about reporting the errno of failed operations.
1283 The code previously reported the wrong errno sometimes.
1284 Also, prefer report_file_errno to setting errno + report_file_error.
1285 (Fcall_process): Look at openp return value rather than at path,
1286 as that's a bit faster and clearer when there's a numeric predicate.
1287 * fileio.c (report_file_errno): New function, with most of the
1288 old contents of report_file_error.
1289 (report_file_error): Use it.
1290 (Ffile_exists_p, Ffile_accessible_directory_p):
1291 Set errno to 0 when it is junk.
1292 * fileio.c (Faccess_file):
1293 * image.c (x_create_bitmap_from_file):
1294 Use faccessat rather than opening the file, to avoid the hassle of
1295 having a file descriptor open.
1296 * lisp.h (report_file_errno): New decl.
1297 * lread.c (Flocate_file_internal): File descriptor 0 is valid, too.
1298
7e649856
PE
1299 Minor EBADF fixes.
1300 * process.c (create_process, wait_reading_process_output) [AIX]:
1301 Remove obsolete SIGHUP-related code, as Emacs no longer disables
1302 SIGHUP, so EBADF is no longer acceptable here (it wouldn't work in
1303 a multithreaded environment anyway).
1304 * sysdep.c (emacs_close): It's not dangerous to invoke emacs_close (-1).
1305
f6774c1a
AS
13062013-07-12 Andreas Schwab <schwab@linux-m68k.org>
1307
1308 * image.c (x_find_image_file): Don't close a remote file handle.
1309
bacba3c2
PE
13102013-07-12 Paul Eggert <eggert@cs.ucla.edu>
1311
1312 Fix races with threads and file descriptors.
1313 * callproc.c (Fcall_process_region):
1314 * dired.c (open_directory):
1315 * emacs.c (main, Fdaemon_initialized):
1316 * image.c (x_find_image_file):
1317 * inotify.c (Finotify_rm_watch):
1318 * lread.c (Flocate_file_internal):
1319 * process.c (Fnetwork_interface_list, Fnetwork_interface_info):
1320 * term.c (term_mouse_moveto, init_tty):
1321 * termcap.c (tgetent):
1322 * unexaix.c, unexcoff.c (report_error, report_error_1, adjust_lnnoptrs)
1323 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c (unexec):
1324 * unexhp9k800.c, unexmacosx.c (unexec):
1325 * callproc.c (Fcall_process_region):
1326 Use emacs_close, not close.
1327 * sysdep.c (POSIX_CLOSE_RESTART, posix_close) [!POSIX_CLOSE_RESTART]:
1328 New macro and function, which emulates the POSIX_CLOSE_RESTART macro
1329 and posix_close function on current platforms (which all lack them).
1330 (emacs_close): Use it. This should fix the races on GNU/Linux and
1331 on AIX and on future platforms that support POSIX_CLOSE_RESTART,
1332 and it should avoid closing random victim file descriptors on
1333 other platforms.
1334
653d4f43
PE
13352013-07-11 Paul Eggert <eggert@cs.ucla.edu>
1336
c8536ec4
PE
1337 * inotify.c (uninitialized): Remove. All uses replaced by -1.
1338 (Finotify_add_watch): Simplify, since -1 means uninitialized now.
1339 Touch up doc a bit.
1340
9c203066
PE
1341 * eval.c (backtrace_function, backtrace_args): Now EXTERNALLY_VISIBLE.
1342 This is for .gdbinit xbacktrace.
1343
653d4f43
PE
1344 * sysdep.c, term.c, termcap.c, terminal.c: Integer-related minor fixes.
1345 * sysdep.c (emacs_get_tty): Return void, since nobody uses the value.
1346 (emacs_set_tty): Now static.
1347 * sysdep.c (emacs_set_tty, tabs_safe_p, emacs_close):
1348 * term.c (tty_capable_p, tty_default_color_capabilities)
1349 (get_tty_terminal, term_mouse_movement)
1350 (handle_one_term_event, init_tty, maybe_fatal):
1351 * termcap.c (tgetst1, struct termcap_buffer, valid_filename_p)
1352 (tgetent, scan_file, name_match, compare_contin):
1353 * terminal.c (get_terminal):
1354 Use bool for boolean.
1355 * sysdep.c (init_system_name): Don't overflow stack on huge hostname.
1356 Prefer char to unsigned char if either will do.
1357 * term.c (OUTPUT, turn_on_face): Omit unnecessary casts to int.
1358 (tty_write_glyphs): Prefer int to unsigned.
1359 (produce_glyphless_glyph): Remove 2nd (unused) int arg.
1360 All callers changed.
1361 * termcap.c (tprint, main) [TEST]: Remove non-working test.
1362
45b683a1
PE
13632013-07-10 Paul Eggert <eggert@cs.ucla.edu>
1364
29abe551
PE
1365 Port to C89.
1366 * bytecode.c (BYTE_CODE_THREADED): Do not define if __STRICT_ANSI__.
1367 (B__dummy__): New dummy symbol, to pacify C89.
1368 * dbusbind.c (XD_DEBUG_MESSAGE): Omit debugging on C89 hosts, since
1369 they can't grok varargs macros.
1370 * dispnew.c (add_window_display_history)
1371 (add_frame_display_history):
1372 * print.c (print_object):
1373 * xdisp.c (debug_method_add):
1374 Use %p printf format only for void pointers.
1375 * emacs.c (usage_message): New constant, replacing ...
1376 (USAGE1, USAGE2, USAGE3): Remove; they were too long for C89.
1377 (main): Adjust to usage reorg.
1378 * fns.c (syms_of_fns):
1379 * profiler.c (syms_of_profiler):
1380 Don't use non-constant struct initializers.
1381 * gnutls.h (gnutls_initstage_t):
1382 * lisp.h (enum Lisp_Fwd_Type):
1383 * lread.c (lisp_file_lexically_bound_p):
1384 * xsettings.c (anonymous enum):
1385 Remove trailing comma.
1386 * xsettings.c (apply_xft_settings): Use %f, not %lf; %lf is a C99ism.
1387 * lisp.h (ENUM_BF): Use unsigned if pedantic.
1388 (DEFUN_FUNCTION_INIT): New macro, that falls back on a cast if pre-C99.
1389 (DEFUN): Use it.
1390 * regex.c (const_re_char): New type, to pacify strict C89.
1391 All uses of 'const re_char' replaced to use it.
1392 * regex.h (_Restrict_): Rename from __restrict, to avoid clash
1393 with glibc when strict C89. This change is imported from gnulib.
1394 All uses changed.
1395 (_Restrict_arr_): Rename from __restrict_arr, similarly.
1396 * sysdep.c (time_from_jiffies) [!HAVE_LONG_LONG_INT]:
1397 Omit GNU_LINUX implementation, since it requires long long.
1398 * xterm.c (x_draw_underwave):
1399 Do not assume the traditional order of struct's members.
1400 (x_term_init): Rewrite to avoid the need for non-constant structure
1401 initializers.
1402
45b683a1 1403 Syntax cleanup, mostly replacing macros with functions.
763a086d 1404 This removes the need for the syntax_temp hack.
45b683a1
PE
1405 * search.c: Include syntax.h after buffer.h, since syntax.h uses BVAR.
1406 * syntax.c (SYNTAX_INLINE): New macro.
1407 (SYNTAX_FLAGS_COMSTART_FIRST, SYNTAX_FLAGS_COMSTART_SECOND)
1408 (SYNTAX_FLAGS_COMEND_FIRST, SYNTAX_FLAGS_COMEND_SECOND)
1409 (SYNTAX_FLAGS_PREFIX, SYNTAX_FLAGS_COMMENT_STYLEB)
1410 (SYNTAX_FLAGS_COMMENT_STYLEC, SYNTAX_FLAGS_COMMENT_STYLEC2)
1411 (SYNTAX_FLAGS_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_STYLE)
1412 (SYNTAX_COMEND_FIRST): Now functions, not macros.
1413 (ST_COMMENT_STYLE, ST_STRING_STYLE, INTERVALS_AT_ONCE):
1414 Now constants, not macros.
1415 (syntax_temp) [!__GNUC__]: Remove.
1416 (SYNTAX_PREFIX): Remove; all uses replaced by syntax_prefix_flag_p.
1417 (syntax_prefix_flag_p): Move implementation of SYNTAX_PREFIX here.
1418 (SET_RAW_SYNTAX_ENTRY, SET_RAW_SYNTAX_ENTRY_RANGE, SYNTAX_MATCH)
1419 (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT):
1420 Move here from syntax.h; now functions, not macros. Except for the
1421 last function, these are static since only syntax.c uses them.
1422 (syntax_multibyte): Rename from SYNTAX_WITH_MULTIBYTE_CHECK.
1423 All uses changed. Now a function, not a macro; use this fact
1424 to simplify the code.
1425 (scan_lists, scan_sexps_forward): Remove workarounds for ancient
1426 compiler bugs; no longer relevant.
1427 * syntax.h: Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
1428 (SYNTAX_INLINE): New macro.
1429 (struct gl_state_s, gl_state): Move earlier, so that it's in scope
1430 for the new functions. Use bool for boolean member.
1431 (SYNTAX_ENTRY, SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH)
1432 (SYNTAX_TABLE_BYTE_TO_CHAR, UPDATE_SYNTAX_TABLE_FORWARD)
1433 (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE)
1434 (SETUP_BUFFER_SYNTAX_TABLE):
1435 Now extern inline functions, not macros.
1436 (CURRENT_SYNTAX_TABLE, SYNTAX_ENTRY_INT):
1437 Remove; all uses replaced by implementation.
1438 (syntax_temp) [!__GNUC__]: Remove decl.
1439 (SETUP_SYNTAX_TABLE_FOR_OBJECT): New decl.
1440
29be4a50
JD
14412013-07-10 Jan Djärv <jan.h.d@swipnet.se>
1442
1443 * emacs.c (main): Fix syntax error.
1444
954b166e
PE
14452013-07-10 Paul Eggert <eggert@cs.ucla.edu>
1446
1447 Timestamp fixes for undo (Bug#14824).
1448 * atimer.c (schedule_atimer):
1449 * fileio.c (Ffile_newer_than_file_p):
1450 Minor cleanup: use EMACS_TIME_LT so that we can remove EMACS_TIME_GT.
1451 * buffer.c (buffer-undo-list): Document (t . 0) and (t . -1).
1452 * fileio.c (Fclear_visited_file_modtime): Move to lisp/files.el.
1453 (syms_of_fileio): Remove Sclear_visited_file_name.
1454 (Fvisited_file_modtime): Return -1, not (-1 ...), when the visited
1455 file doesn't exist; this avoids an ambiguity with negative timestamps.
1456 (Fset_visited_file_modtime): Accept -1 and 0 as time-list arg.
1457 * systime.h (make_emacs_time, invalid_emacs_time):
1458 Don't assume struct timespec layout; POSIX doesn't guarantee it.
1459 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE): Remove.
1460 * undo.c (record_first_change): Push (visited-file-modtime) onto
1461 undo list rather than reimplementing it by hand, incorrectly.
1462
d74647c3
KB
14632013-07-09 Ken Brown <kbrown@cornell.edu>
1464
1465 * sheap.c (STATIC_HEAP_SIZE) [__x86_64__]: Increase to 18MB.
1466
3c51b96b
JB
14672013-07-09 Juanma Barranquero <lekktu@gmail.com>
1468
1469 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/sysdep.$(O)): Update.
1470
4ebbdd67
PE
14712013-07-09 Paul Eggert <eggert@cs.ucla.edu>
1472
1473 Handle errno and exit status a bit more carefully.
1474 * callproc.c (child_setup) [!DOS_NT]: Don't try to stuff an error
1475 number into an exit status. Instead, use EXIT_CANCELED.
1476 (child_setup) [!MSDOS]: Avoid possible deadlock with vfork.
1477 * callproc.c (relocate_fd):
1478 * emacs.c (close_output_streams, main):
1479 * process.c (create_process):
1480 * sysdep.c (sys_subshell) [!DOS_NT || !WINDOWSNT]:
1481 Use emacs_perror for simplicity.
1482 * callproc.c (relocate_fd, main):
1483 * sysdep.c (sys_subshell):
1484 Exit with EXIT_CANCELED etc., not 1, when exec setup fails.
1485 (shut_down_emacs): Use emacs_write, not write.
1486 * emacs.c, sysdep.c: Don't include <ignore-value.h>.
1487 * fileio.c (Fcopy_file, e_write):
1488 * nsterm.m (ns_select):
1489 * process.c (send_process):
1490 * sound.c (vox_write):
1491 Use emacs_write_sig, not emacs_write.
1492 * lisp.h (emacs_write_sig, emacs_perror): New decls.
1493 * process.h (EXIT_CANCELED), EXIT_CANNOT_INVOKE, EXIT_ENOENT):
1494 New constants.
1495 * sysdep.c (emacs_backtrace): Use emacs_write, not ignore_value
1496 of write.
1497 (emacs_full_write): New function.
1498 (emacs_write): Rewrite to use it.
1499 (emacswrite_sig, emacs_perror): New functions.
1500 * xrdb.c (fatal): Don't invoke perror, since errno might be garbage.
1501
44e18199 15022013-07-08 Magnus Henoch <magnus.henoch@gmail.com> (tiny change)
e4b1e5af
JD
1503
1504 * image.c (imagemagick_load_image): Do not use MagickExportImagePixels
1505 on NS even if it is present. Pixmap on NS is a void*.
1506
9caab067
PE
15072013-07-07 Paul Eggert <eggert@cs.ucla.edu>
1508
1509 Port to Ubuntu 10 (Bug#14803).
1510 Problem reported by T.V. Raman.
1511 * process.c (close_on_exec, accept4, process_socket):
1512 Define these if !HAVE_ACCEPT4, not if !SOCK_CLOEXEC.
1513
1d442672
EZ
15142013-07-07 Eli Zaretskii <eliz@gnu.org>
1515
1516 * w32.c (sys_dup): Declare prototype.
1517
1518 * filelock.c:
1519 * emacs.c:
1520 * callproc.c [WINDOWSNT]: Include sys/socket.h.
1521
067428c1
PE
15222013-07-07 Paul Eggert <eggert@cs.ucla.edu>
1523
1524 Make file descriptors close-on-exec when possible (Bug#14803).
1525 This simplifies Emacs a bit, since it no longer needs to worry
1526 about closing file descriptors by hand in some cases.
1527 It also fixes some unlikely races. Not all such races, as
1528 libraries often open files internally without setting
1529 close-on-exec, but it's an improvement.
1530 * alloc.c (valid_pointer_p) [!WINDOWSNT]:
1531 * callproc.c (Fcall_process) [!MSDOS]:
1532 * emacs.c (main) [!DOS_NT]:
1533 * nsterm.m (ns_term_init):
1534 * process.c (create_process):
1535 Use 'pipe2' with O_CLOEXEC instead of 'pipe'.
1536 * emacs.c (Fcall_process_region) [HAVE_MKOSTEMP]:
1537 * filelock.c (create_lock_file) [HAVE_MKOSTEMP]:
1538 Prefer mkostemp with O_CLOEXEC to mkstemp.
1539 * callproc.c (relocate_fd) [!WINDOWSNT]:
1540 * emacs.c (main): Use F_DUPFD_CLOEXEC, not plain F_DUPFD.
1541 No need to use fcntl (..., F_SETFD, FD_CLOEXEC), since we're
1542 now using pipe2.
1543 * filelock.c (create_lock_file) [! HAVE_MKOSTEMP]:
1544 Make the resulting file descriptor close-on-exec.
1545 * lisp.h, lread.c, process.c (close_load_descs, close_process_descs):
1546 * lread.c (load_descriptor_list, load_descriptor_unwind):
1547 Remove; no longer needed. All uses removed.
1548 * process.c (SOCK_CLOEXEC): Define to 0 if not supplied by system.
1549 (close_on_exec, accept4, process_socket) [!SOCK_CLOEXEC]:
1550 New functions.
1551 (socket) [!SOCK_CLOEXEC]: Supply a substitute.
1552 (Fmake_network_process, Fnetwork_interface_list):
1553 (Fnetwork_interface_info, server_accept_connection):
1554 Make newly-created socket close-on-exec.
1555 * sysdep.c (emacs_open, emacs_fopen):
1556 Make new-created descriptor close-on-exec.
1557 * w32.c (fcntl): Support F_DUPFD_CLOEXEC well enough for Emacs.
1558 * w32.c, w32.h (pipe2): Rename from 'pipe', with new flags arg.
1559
0da857dd
JD
15602013-07-07 Jan Djärv <jan.h.d@swipnet.se>
1561
1562 * nsterm.m (sendEvent:): Propagate keyboard events to modal windows
1563 for NS_IMPL_GNUSTEP.
1564
5f86adcd
PE
15652013-07-07 Paul Eggert <eggert@cs.ucla.edu>
1566
1567 Fix openp errno handling.
1568 * callproc.c (Fcall_process): Preserve openp errno around close.
1569 * lread.c (openp): Set errno when returning -1, as some callers
1570 expect this.
1571
1afb1d07
JD
15722013-07-06 Jan Djärv <jan.h.d@swipnet.se>
1573
1574 * nsterm.m (sendEvent:): Handle NSAPP_DATA2_RUNFILEDIALOG.
1575
1576 * nsterm.h (NSSavePanel): Update comment.
1577 (NSAPP_DATA2_RUNFILEDIALOG): Define.
1578 (ns_run_file_dialog): Declare.
1579
1580 * nsfns.m: Remove panelOK.
1581 (ns_fd_data): New.
1582 (ns_run_file_dialog): New function.
1583 (Fns_read_file_name): Fill in ns_fd_data, post an event and start the
1584 event loop, so file dialog is popped up by ns_run_file_dialog, called
1585 by sendEvent (Bug#14578).
1586 (EmacsSavePanel, EmacsOpenPanel): Remove ok and cancel methods.
1587
3323c263
EZ
15882013-07-06 Eli Zaretskii <eliz@gnu.org>
1589
fdda0220
EZ
1590 * xdisp.c (default_line_pixel_height): New function.
1591 (pos_visible_p, move_it_vertically_backward, try_scrolling)
1592 (try_cursor_movement, redisplay_window, try_window)
1593 (try_window_id): Use it instead of FRAME_LINE_HEIGHT. (Bug#14771)
1594
1595 * window.c (window_scroll_pixel_based): use
1596 default_line_pixel_height.
1597
1598 * dispextern.h (default_line_pixel_height): Add prototype.
1599
1600 * frame.c (x_set_line_spacing): Accept a float value for
1601 line-spacing parameter, per the documentation.
1602
3323c263
EZ
1603 * data.c (Fmultibyte_string_p): Doc fix.
1604
47ba6d43
PE
16052013-07-05 Paul Eggert <eggert@cs.ucla.edu>
1606
406af475
PE
1607 Use emacs_open more consistently when opening files.
1608 This handles EINTR more consistently now, and makes it easier
1609 to introduce other uniform changes to file descriptor handling.
1610 * src/systdio.h: New file.
1611 * src/buffer.c (mmap_init):
1612 * cygw32.c (chdir_to_default_directory):
1613 * dispnew.c (Fopen_termscript):
1614 * emacs.c (Fdaemon_initialized):
1615 * fileio.c (Fdo_auto_save):
1616 * image.c (slurp_file, png_load_body, jpeg_load_body):
1617 * keyboard.c (Fopen_dribble_file):
1618 * lread.c (Fload):
1619 * print.c (Fredirect_debugging_output):
1620 * sysdep.c (get_up_time, procfs_ttyname, procfs_get_total_memory):
1621 * termcap.c (tgetent):
1622 * unexaix.c, unexcoff.c (unexec, adjust_lnnoptrs):
1623 * unexcw.c, unexelf.c, unexhp9k800.c, unexmacosx.c (unexec):
1624 * w32term.c (w32_initialize) [CYGWIN]:
1625 * xfaces.c (Fx_load_color_file):
1626 Use emacs_open instead of plain open, and emacs_fopen instead of
1627 plain fopen.
1628 * dispnew.c, fileio.c, image.c, keyboard.c, lread.c, print.c, sysdep.c:
1629 * xfaces.c: Include sysstdio.h rather than stdio.h, for emacs_fopen.
1630 * callproc.c (default_output_mode): New constant.
1631 (Fcall_process): Use it to call emacs_open instead of plain creat.
1632 * dispnew.c (Fopen_termscript): Fix minor race in opening termscript.
1633 * sysdep.c (emacs_open): Add commentary and don't call file name "path".
1634 (emacs_fopen): New function.
1635 * unexaix.c, unexcoff.c, unexelf.c, unexhp9k800.c, unexmacosx.c:
1636 Include <lisp.h>, for emacs_open.
1637 * unexelf.c (fatal): Remove decl; not needed with <lisp.h> included.
1638
47ba6d43
PE
1639 Remove duplicate #include directives.
1640 * alloc.c [GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES]:
1641 * xfaces.c:
1642 Don't include stdio.h twice.
1643 * buffer.c [USE_MMAP_FOR_BUFFERS]:
1644 Don't include sys/types.h or stdio.h twice.
1645 * fileio.c [WINDOWSNT | MSDOS]: Don't include fcntl.h twice.
1646 * lread.c: Don't include coding.h twice.
1647 * nsfont.m: Don't include frame.h twice.
1648 * process.c [HAVE_RES_INIT]: Don't include <netinet/in.h> twice.
1649 * ralloc.c: Don't include <unistd.h> twice.
1650 * xdisp.c: Don't include font.h twice.
1651 * xterm.c: Don't include fontset.h twice.
1652 * xterm.h [USE_X_TOOLKIT]: Don't include X11/StringDefs.h twice.
1653
b9ed53d5
PE
16542013-07-04 Paul Eggert <eggert@cs.ucla.edu>
1655
1656 Scale ImageMagick images more carefully.
1657 * image.c (scale_image_size) [HAVE_IMAGEMAGICK]: New function.
1658 (compute_image_size): Use it. Define only if HAVE_IMAGEMAGICK.
1659 Be more careful about avoiding undefined behavior after
1660 integer overflow and division by zero.
1661
cf13177e
YM
16622013-07-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1663
1664 * w32fns.c (Qgeometry, Qworkarea, Qmm_size, Qframes): New variables.
1665 (syms_of_w32fns): DEFSYM them.
1666 (MONITORINFOF_PRIMARY, SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN)
1667 (CCHDEVICENAME): Define macros if not defined.
1668 (struct MONITOR_INFO_EX): New struct.
1669 (MonitorEnum_Proc, EnumDisplayMonitors_Proc): New prototypes.
1670 (enum_display_monitors_fn): New variable.
1671 (globals_of_w32fns): Initialize it.
1672 (Fx_display_pixel_width, Fx_display_pixel_height)
1673 (Fx_display_mm_height, Fx_display_mm_width): Mention behavior on
1674 multi-monitor setups in docstrings.
1675 (Fx_display_mm_height, Fx_display_mm_width): Approximate whole
1676 screen size by primary monitor's millimeter per pixel.
1677 (w32_monitor_enum, w32_display_monitor_attributes_list)
1678 (w32_display_monitor_attributes_list_fallback)
1679 (Fw32_display_monitor_attributes_list): New functions.
1680 (syms_of_w32fns): Defsubr Sw32_display_monitor_attributes_list.
1681
1682 * w32term.c (SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN): Define macros
1683 if not defined.
1684 (x_display_pixel_height, x_display_pixel_width): Use GetSystemMetrics.
1685
86dfb7a8
MA
16862013-07-04 Michael Albinus <michael.albinus@gmx.de>
1687
1688 * fileio.c (Qfile_notify_error): New error symbol.
1689
1690 * gfilenotify.c (Fgfile_add_watch, Fgfile_rm_watch):
1691 * inotify.c (inotify_callback, symbol_to_inotifymask)
1692 (Finotify_add_watch, Finotify_rm_watch): Use it.
1693 (inotifyevent_to_event): Exchange order of cookie and file name.
1694 (Finotify_add_watch): Adapt docstring.
1695
1696 * lisp.h (Qfile_notify_error): Declare.
1697
2c1c974b
PE
16982013-07-04 Paul Eggert <eggert@cs.ucla.edu>
1699
1700 Try again to fix FreeBSD bug re multithreaded memory alloc (Bug#14569).
1701 * emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
1702 Do not clear _malloc_thread_enabled_p, undoing the previous change,
1703 which did not work (see <http://bugs.gnu.org/14569#307>).
1704 (main): Do not invoke malloc_enable_thread if (! CANNOT_DUMP
1705 && (!noninteractive || initialized)). This attempts to thread
1706 the needle between the Scylla of FreeBSD and the Charybdis of Cygwin.
1707
7a35b20f
JB
17082013-07-04 Juanma Barranquero <lekktu@gmail.com>
1709
1710 * image.c (x_to_xcolors) [HAVE_NTGUI]: Remove unused var `hdc'.
1711 (x_build_heuristic_mask) [HAVE_NTGUI]: Remove unused var `frame_dc'.
1712
1ce5cd04
PE
17132013-07-04 Paul Eggert <eggert@cs.ucla.edu>
1714
1715 Try to fix FreeBSD bug re multithreaded memory allocation (Bug#14569).
1716 * emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
1717 Clear _malloc_thread_enabled_p at startup. Reported by Ashish SHUKLA in
1718 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00088.html>.
1719
57f8c490
PE
17202013-07-02 Paul Eggert <eggert@cs.ucla.edu>
1721
1722 * sysdep.c (sys_siglist) [HAVE_DECL___SYS_SIGLIST]:
1723 Define to __sys_siglist.
1724
bcffb5ca
EZ
17252013-07-02 Eli Zaretskii <eliz@gnu.org>
1726
1727 * xdisp.c (IT_OVERFLOW_NEWLINE_INTO_FRINGE): Don't disallow
1728 word-wrap, so that overflow-newline-into-fringe would work in
1729 visual-line-mode. (Bug#2749)
1730 (move_it_in_display_line_to): When the last scanned display
1731 element fits exactly on the display line, and
1732 overflow-newline-into-fringe is non-nil, but wrap_it is valid,
1733 don't return MOVE_NEWLINE_OR_CR, but instead back up to the last
1734 wrap point and return MOVE_LINE_CONTINUED. Fixes problems with
1735 finding buffer position that corresponds to pixel coordinates,
1736 e.g. in buffer_posn_from_coords.
1737
2c41e781
JD
17382013-07-02 Jan Djärv <jan.h.d@swipnet.se>
1739
1740 * process.c (handle_child_signal): Call catch_child_signal if
1741 NS_IMPL_GNUSTEP.
1742
c2418359
PE
17432013-07-02 Paul Eggert <eggert@cs.ucla.edu>
1744
52a9bcae
PE
1745 Don't convert function pointers to void * and back.
1746 It isn't portable C, and it's easy enough to avoid.
1747 * alloc.c: Verify SAVE_FUNCPOINTER bits, too.
1748 (make_save_value): Add support for SAVE_FUNCPOINTER.
1749 * keymap.c (map_keymap_char_table_item, map_keymap_internal):
1750 * print.c (print_object):
1751 Distinguish function from object pointers.
1752 * lisp.h (SAVE_FUNCPOINTER): New constant.
1753 (SAVE_SLOT_BITS): Adjust to it.
1754 (SAVE_TYPE_FUNCPTR_PTR_OBJ): New constant, replacing
1755 SAVE_TYPE_PTR_PTR_OBJ. Change the only use.
1756 (voidfuncptr): New typedef.
1757 (struct Lisp_Save_Value): New member data[0].funcpointer.
1758 (XSAVE_FUNCPOINTER): New function.
1759
c2418359
PE
1760 Simplify buildobj processing.
1761 * Makefile.in (buildobj.h): Make it a sequence of strings each
1762 followed by comma, rather than a single string. Put it into a
1763 .tmp file in case there's an error while generating it.
1764 (gl-stamp): Use .tmp for temp files.
1765 (mostlyclean): Clean .tmp files.
1766 * doc.c (buildobj): Move to just the routine that needs it.
1767 It's now an array of strings, so processing is simpler.
1768
8f43ce49
PE
17692013-07-01 Paul Eggert <eggert@cs.ucla.edu>
1770
1771 Fix bug re noninteractive multithreaded memory allocation (Bug#14569).
1772 * emacs.c (malloc_enable_thread): Hoist extern decl to top level.
1773 (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
1774 Invoke malloc_enable_thread even when not interactive.
1775 Problem reported by Ken Brown in <http://bugs.gnu.org/14569#275>.
1776 * process.c (init_process_emacs) [CYGWIN]: Tickle glib even
1777 in this case, since the underlying bug has now been fixed.
1778
24827db9
JB
17792013-07-01 Juanma Barranquero <lekktu@gmail.com>
1780
1781 * emacs.c (Fkill_emacs): Expand Vauto_save_list_file_name before
1782 unlinking it (bug#14691).
1783
ef099a94
MN
17842013-06-30 Michal Nazarewicz <mina86@mina86.com>
1785
1786 * buffer.c (FKill_buffer): Run `kill-buffer-query-functions'
1787 before checking whether buffer is modified. This lets
1788 `kill-buffer-query-functions' cancel killing of the buffer or save
1789 its content before `kill-buffer' asks user the "Buffer %s
1790 modified; kill anyway?" question.
1791
9d3f2fc2
JD
17922013-06-30 Jan Djärv <jan.h.d@swipnet.se>
1793
1794 * nsfns.m (handlePanelKeys): Don't process Command+Function keys.
1795 Let the super performKeyEquivalent deal with them (Bug#14747).
1796
e6c6c8c7
PE
17972013-06-30 Paul Eggert <eggert@cs.ucla.edu>
1798
1d71c1d9
PE
1799 * widget.c (resize_cb): Remove unused local.
1800
8f5f35cc
PE
1801 Do not use GTK 3 if it exists but cannot be compiled.
1802 * xmenu.c (x_menu_wait_for_event) [!USE_GTK]:
1803 * xterm.c (x_error_handler) [!USE_GTK]:
1804 Do not use GTK 3.
1805
e6c6c8c7
PE
1806 * intervals.c (get_local_map): Actually clip POSITION (Bug#14753).
1807
0ba54312
EZ
18082013-06-30 Eli Zaretskii <eliz@gnu.org>
1809
5d1c3286
EZ
1810 * intervals.c (get_local_map): Instead of aborting, clip POSITION
1811 to the valid range of values. (Bug#14753)
1812
0ba54312
EZ
1813 * xdisp.c (Fmove_point_visually): Invalidate the cursor position
1814 when moving point by using the current glyph matrix. This avoids
1815 the need to force redisplay when this function is called in a
1816 loop.
1817
9c90cc06
PE
18182013-06-29 Paul Eggert <eggert@cs.ucla.edu>
1819
1820 Fix minor problems found by static checking.
1821 * coding.c (encode_inhibit_flag, inhibit_flag): New functions.
1822 Redo the latter's body to sidestep GCC parenthesization warnings.
1823 (setup_coding_system, detect_coding, detect_coding_system): Use them.
1824 * coding.c (detect_coding, detect_coding_system):
1825 * coding.h (struct undecided_spec):
1826 Use bool for boolean.
1827 * image.c (QCmax_width, QCmax_height): Now static.
1828 * xdisp.c (Fmove_point_visually): Remove unused local.
1829
4c672a0f
EZ
18302013-06-29 Eli Zaretskii <eliz@gnu.org>
1831
1832 * xdisp.c (Fmove_point_visually): New function.
1833
c1ea3abf
JB
18342013-06-28 Kenichi Handa <handa@gnu.org>
1835
1836 * coding.h (define_coding_undecided_arg_index): New enum.
1837 (coding_attr_index): New members
1838 coding_attr_undecided_inhibit_null_byte_detection,
1839 coding_attr_undecided_inhibit_iso_escape_detection,
1840 coding_attr_undecided_prefer_utf_8.
1841 (undecided_spec): New struct.
1842 (struct coding_system): New member `undecided' of the member
1843 `spec'.
1844
1845 * coding.c (setup_coding_system): Handle CODING->spec.undecided.
1846 (detect_coding): Likewise.
1847 (detect_coding_system): Likewise.
1848 (Fdefine_coding_system_internal): New coding system properties
1849 :inhibit-null-byte-detection, :inhibit-iso-escape-detection, and
1850 :prefer-utf-8.
1851 (syms_of_coding): Adjust for coding_arg_undecided_max.
1852
ba3de9e6
PE
18532013-06-28 Paul Eggert <eggert@cs.ucla.edu>
1854
1855 * image.c (x_from_xcolors): Remove unused local.
1856
547c9269
YM
18572013-06-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1858
1859 Defer image data transfer between X client and server until actual
1860 display happens.
1861
1862 * dispextern.h (struct image) [HAVE_X_WINDOWS]: New members `ximg'
1863 and `mask_img'.
1864
1865 * image.c (Destroy_Image): Remove.
1866 (x_clear_image_1): New arg `flags' instead of 3 bools `pixmap_p',
1867 `mask_p', and `colors_p'. All uses changed.
1868 (x_clear_image_1) [HAVE_X_WINDOWS]: Destroy `ximg' and `mask_img'.
ef099a94
MN
1869 (CLEAR_IMAGE_PIXMAP, CLEAR_IMAGE_MASK, CLEAR_IMAGE_COLORS):
1870 New macros for `flags' arg to x_clear_image_1.
547c9269
YM
1871 (postprocess_image, xpm_load_image, x_build_heuristic_mask)
1872 (png_load_body): Use x_clear_image_1 instead of Free_Pixmap.
04b66ce7 1873 (ZPixmap, XGetImage) [HAVE_NS]: Remove.
547c9269
YM
1874 (image_get_x_image_or_dc, image_unget_x_image_or_dc)
1875 (image_get_x_image, image_unget_x_image): New functions or macros.
1876 (image_background, image_background_transparent, x_to_xcolors)
1877 (x_build_heuristic_mask): Use image_get_x_image_or_dc instead of
1878 XGetImage or CreateCompatibleDC. Use image_unget_x_image_or_dc
1879 instead of Destroy_Image.
1880 (image_create_x_image_and_pixmap, image_put_x_image): New functions.
1881 (xpm_load_image, x_from_xcolors, x_build_heuristic_mask, pbm_load)
1882 (png_load_body, jpeg_load_body, tiff_load, gif_load)
1883 (imagemagick_load_image, svg_load_image): Use them instead of
1884 x_create_x_image_and_pixmap, and x_put_x_image followed by
1885 x_destroy_x_image, respectively.
1886 (xpm_load) [HAVE_XPM && !HAVE_NTGUI]: Use XpmReadFileToImage and
1887 XpmCreateImageFromBuffer instead of XpmReadFileToPixmap and
1888 XpmCreatePixmapFromBuffer. Create pixmaps. Fill background and
1889 background_transparent fields.
1890 (image_sync_to_pixmaps) [HAVE_X_WINDOWS]: New function.
1891 (prepare_image_for_display, x_disable_image) [HAVE_X_WINDOWS]: Use it.
1892
dae2f5ef
PE
18932013-06-27 Paul Eggert <eggert@cs.ucla.edu>
1894
1895 Do not tickle glib SIGCHLD handling if Cygwin (Bug#14569).
1896 This mostly consists of undoing recent changes.
1897 * callproc.c (Fcall_process):
1898 * process.c (create_process):
1899 Do not worry about catching SIGCHLD here, undoing previous change.
1900 * nsterm.m (ns_term_init): Re-catch SIGCHLD, undoing previous change.
1901 * process.c, process.h (catch_child_signal):
1902 No longer extern if !NS_IMPL_GNUSTEP, undoing 06-22 change.
1903 * process.c (catch_child_handler): Don't worry about being called
1904 lazily and do not assume caller has blocked SIGCHLD, undoing
1905 previous change. Move first-time stuff back to
1906 init_process_emacs, undoing 06-22 change. If CYGWIN, do not
1907 tickle glib, as that causes Cygwin bootstrap to fail. Do not
1908 set lib_child_handler if it's already initialized, which may
1909 help avoid problems on GNUStep.
1910
fa55d2aa
PE
19112013-06-23 Paul Eggert <eggert@cs.ucla.edu>
1912
1913 A more-conservative workaround for Cygwin SIGCHLD issues (Bug#14569).
1914 * callproc.c (Fcall_process):
1915 * process.c (create_process):
1916 Make sure SIGCHLD is caught before we fork,
1917 since Emacs startup no arranges to catch SIGCHLD.
1918 * process.c (lib_child_handler): Initialize to null, not to
1919 dummy_handler.
1920 (catch_child_signal): Allow self to be called lazily.
1921 Do nothing if it's already been called.
1922 Assume caller has blocked SIGCHLD (all callers do now).
1923 * emacs.c (main): Do not catch SIGCHLD here; defer it until
1924 just before it's really needed.
1925 * nsterm.m (ns_term_init): No need to re-catch SIGCHLD here,
1926 since it hasn't been caught yet.
1927
f3f9606c
LMI
19282013-06-23 Lars Magne Ingebrigtsen <larsi@gnus.org>
1929
1930 * image.c (compute_image_size): New function to implement
1931 :max-width and :max-height.
1932 (imagemagick_load_image): Use it.
1933
c7041908
PE
19342013-06-23 Paul Eggert <eggert@cs.ucla.edu>
1935
1936 Try to avoid malloc SEGVs on Cygwin (Bug#14569).
1937 * callproc.c, process.h (block_child_signal, unblock_child_signal):
1938 Now extern.
1939 * emacs.c (main): Catch SIGCHLD just before initializing gfilenotify.
1940 * process.c (catch_child_signal): Block SIGCHLD while futzing with
1941 the SIGCHLD handler, since the code is not atomic and (due to glib)
1942 signals may be arriving now.
1943 * sysdep.c (init_signals): Do not catch child signals here;
1944 'main' now does that later, at a safer time.
1945
f86852b4
PE
19462013-06-22 Paul Eggert <eggert@cs.ucla.edu>
1947
0dfeed58
PE
1948 Clean up SIGCHLD handling a bit (Bug#14569).
1949 * process.c, process.h (catch_child_signal):
1950 Now always extern, even if !NS_IMPL_GNUSTEP.
1951 * process.c (catch_child_signal): Move glib tickler here from
1952 init_process_emacs, so that it's done earlier in Emacs
1953 initialization. Also move the noninteractive && !initialized
1954 check here from init_process_emacs. This is all a bit cleaner for
1955 GNUish platforms, and I hope it works around the Cygwin bug.
1956 * sysdep.c (init_signals): Invoke catch_child_signal here, so
1957 that glib signal handling is tickled before glib creates threads.
1958
f86852b4
PE
1959 * process.c (wait_reading_process_output): Avoid int overflow
1960 when reading more than 2 GiB total from a process.
1961
cbd6509c
PE
19622013-06-21 Paul Eggert <eggert@cs.ucla.edu>
1963
1964 * process.c (create_process): Handle a couple more cases,
1965 i.e., work even if new_argv and wait_child_setup[i] are cached.
1966 Use Fcall_process's style for volatile vars.
1967
9de1114a
AS
19682013-06-21 Andreas Schwab <schwab@linux-m68k.org>
1969
1970 * process.c (create_process): Mark PROCESS volatile.
1971
fbe9e0b9
PE
19722013-06-21 Paul Eggert <eggert@cs.ucla.edu>
1973
1974 Use C99-style flexible array members if available.
1975 This avoids some subtle aliasing issues, which typically
1976 aren't a problem with GCC but may be a problem elsewhere.
1977 * alloc.c (sdata): New typedef, replacing the old struct sdata.
1978 It is a struct if GC_CHECK_STRING_BYTES, a union otherwise.
1979 In either case, it uses a flexible array member rather than
1980 the old struct hack. All uses changed.
1981 (SDATA_NBYTES, sweep_strings) [!GC_CHECK_STRING_BYTES]:
1982 Adjust to sdata reorganization.
1983 * alloc.c (VBLOCK_BYTES_MIN, allocate_vectorlike, Fgarbage_collect):
1984 Use offsetof (struct, flex_array_member), not sizeof (struct), as
1985 that ports better to pre-C99 non-GCC.
1986 * chartab.c (Fmake_char_table, make_sub_char_table, copy_char_table):
1987 Use CHAR_TABLE_STANDARD_SLOTS rather than its definition,
1988 as the latter has changed.
1989 * conf_post.h (FLEXIBLE_ARRAY_MEMBER): Move here from w32.c,
1990 and port better to pre-C99 GCC.
1991 * image.c (struct xpm_cached_color):
1992 * lisp.h (struct Lisp_Vector, struct Lisp_Bool_Vector)
1993 (struct Lisp_Char_Table, struct Lisp_Sub_Char_Table):
1994 Use FLEXIBLE_ARRAY_MEMBER.
1995 * lisp.h (string_bytes) [GC_CHECK_STRING_BYTES]:
1996 Move decl to top level so it gets checked against implementation.
1997 (CHAR_TABLE_STANDARD_SLOTS): Adjust to struct Lisp_Char_Table change.
1998 * w32.c (FLEXIBLE_ARRAY_MEMBER): Move to conf_post.h.
1999
1fc71008
PE
20002013-06-20 Paul Eggert <eggert@cs.ucla.edu>
2001
2002 * syntax.c: Integer cleanups.
2003 (SYNTAX_FLAGS_COMMENT_STYLEC): Return a boolean, not 0-or-2.
2004 All uses that need 0-or-2 changed to:
2005 (SYNTAX_FLAGS_COMMENT_STYLEC2): New macro, with the same semantics
2006 as the old SYNTAX_FLAGS_COMMENT_STYLEC.
2007 (struct lisp_parse_state, syntax_prefix_flag_p, update_syntax_table)
2008 (char_quoted, prev_char_comend_first, back_comment)
2009 (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
2010 (in_classes, forw_comment, scan_lists, scan_sexps_forward):
2011 Use bool for boolean.
2012 (update_syntax_table, skip_chars, skip_syntaxes):
2013 Prefer int to unsigned when either will do.
2014 (back_comment): Return boolean success flag, like forw_comment,
2015 instead of positive-or-minus-1 (which might have overflowed int anyway).
2016 Don't stuff ptrdiff_t into int.
2017 (syntax_spec_code, syntax_code_spec): Now const.
2018 (Fmatching_paren, scan_lists, scan_sexps_forward):
2019 Use enum syntaxcode for syntax code.
2020 (Fmatching_paren): Check that arg is a character, not just an integer.
2021 (Fstring_to_syntax): Don't assume 0377 fits in enum syntaxcode.
2022 (Finternal_describe_syntax_value): Omit no-longer-needed
2023 comparison to 0.
2024 (skip_chars): Use char, not unsigned char, when the distinction
2025 doesn't matter.
2026 (forw_comment, scan_lists): Prefer A |= B to A = A || B when B's cheap.
2027 * bytecode.c (exec_byte_code):
2028 * syntax.c (syntax_spec_code, Fchar_syntax)
2029 (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
2030 (init_syntax_once):
2031 * syntax.h (SYNTAX_WITH_FLAGS):
2032 Omit unnecessary casts.
2033
b932cad7
EZ
20342013-06-20 Eli Zaretskii <eliz@gnu.org>
2035
2036 * w32fns.c (w32_wnd_proc): Don't compute the header line and mode
2037 line dimensions here, to avoid race conditions with the main
2038 thread. (Bug#14062, bug#14630, bug#14669)
2039
2040 * w32term.c (w32_draw_window_cursor): Compute the header line and
2041 mode line dimensions here.
2042 <w32_system_caret_window, w32_system_caret_hdr_height>:
2043 <w32_system_caret_mode_height>: New variables.
2044
2045 * w32term.h: Declare them.
2046
89561f72
PE
20472013-06-20 Paul Eggert <eggert@cs.ucla.edu>
2048
5013fc08
PE
2049 * alloc.c (die): Move "assertion failed" string here ...
2050 * lisp.h (eassert): ... from here. Also, suppress evaluation of
2051 COND when SUPPRESS_CHECKING. This shrinks the executable text
2052 size by 0.8% to 2.2% when configured with --enable-checking,
2053 depending on optimization flags (GCC 4.8.1 x86-64).
2054
89561f72
PE
2055 * floatfns.c (Flog10): Move to Lisp (marked obsolete there).
2056
763a086d 20572013-06-20 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
89561f72
PE
2058
2059 * floatfns.c (Flog) [HAVE_LOG2]: Use log2 if available and if the
2060 base is 2; this is more accurate.
2061
983aeb9a
JB
20622013-06-19 Juanma Barranquero <lekktu@gmail.com>
2063
2064 * sound.c (string_default): Move to !WINDOWSNT section.
2065 (Fplay_sound_internal) [WINDOWSNT]: Remove i_result to avoid warning.
2066
178ba3e6
PE
20672013-06-19 Paul Eggert <eggert@cs.ucla.edu>
2068
bbc51b15
PE
2069 * sound.c: Integer cleanups.
2070 Remove unnecessary forward decls.
2071 (struct sound_device): The 'file' member is now a Lisp_Object, not
2072 a char *, so that we needn't invoke alloca on a huge size.
2073 (Fplay_sound_internal): Adjust to this.
2074 (string_default): New function.
2075 (vox_open, vox_init, alsa_open, alsa_configure, alsa_init):
2076 Use it to adjust to the struct sound_device change.
2077 (parse_sound, wav_init, au_init, alsa_init): Use bool for booleans.
2078 (be2hs) [0]: Remove.
2079
178ba3e6
PE
2080 * syntax.c (skip_chars): Don't use uninitialized storage
2081 when searching a multibyte buffer for characters that are not in a
2082 unibyte string that contains non-ASCII characters.
2083
69f60cdc
JD
20842013-06-18 Jan Djärv <jan.h.d@swipnet.se>
2085
2086 * process.c: Include xgselect.h if HAVE_GLIB. Include glib.h
2087 if HAVE_GLIB && ! WINDOWSNT (Bug#14654).
2088
0d6224d4
PE
20892013-06-18 Paul Eggert <eggert@cs.ucla.edu>
2090
2091 * conf_post.h: Add comments for INLINE, EXTERN_INLINE, etc.
2092
3c542890
KH
20932013-06-18 Kenichi Handa <handa@gnu.org>
2094
f7e3f7cd
KH
2095 * font.c (Ffont_spec): Signal an error for an invalid font name
2096 (Bug#14648).
3c542890 2097
9349e5f7
PE
20982013-06-18 Paul Eggert <eggert@cs.ucla.edu>
2099
2100 Porting fixes for merged specpdl and backtrace stacks (Bug#14643).
2101 In particular this ports to 32-bit sparc Sun cc.
2102 * eval.c (init_eval_once, grow_specpdl): Allocate a specbinding
2103 array with a dummy element at specpdl[-1], so that its address can
2104 be taken portably.
2105 (unbind_to): Do not copy the binding; not needed, now that we
2106 copy old_value in the one place where the copy is needed.
2107 * fileio.c (Fwrite_region): Use ptrdiff_t, not int, for specpdl count.
2108 * lisp.h (BITS_PER_PTRDIFF_T): Remove; no longer needed.
2109 (union specbinding): Rename from struct specbinding. Redo layout
2110 to avoid the need for 'ptrdiff_t nargs : BITS_PER_PTRDIFF_T - 1;',
2111 which is not portable. With Sun C 5.12 32-bit sparc, the
2112 declaration causes nargs to be an unsigned bitfield, a behavior
2113 that the C standard allows; but Emacs wants nargs to be signed.
2114 The overall type is now a union of structures rather than a
2115 structure of union of structures, and the 'kind' member is now a
2116 bitfield, so that the overall type doesn't grow. All uses changed.
2117 * process.c (Fmake_serial_process): Remove unnecessary initialization.
2118
0a4df6a5
PE
21192013-06-17 Paul Eggert <eggert@cs.ucla.edu>
2120
ec6ecaad
PE
2121 * frame.c (x_report_frame_params): Cast parent_desc to uintptr_t.
2122 Needed if HAVE_NTGUI. Reported by Juanma Barranquero.
2123
0a4df6a5
PE
2124 * nsfont.m (ns_registry_to_script): Parenthesize while expression.
2125
7bfe8dbc
EZ
21262013-06-17 Eli Zaretskii <eliz@gnu.org>
2127
2128 * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
2129 unless we know that the window w's frame is a frame object.
2130 Another attempt at solving bug#14062 and bug#14630.
2131
708e05f6
LMI
21322013-06-17 Lars Magne Ingebrigtsen <larsi@gnus.org>
2133
2134 * textprop.c (property_set_type): New enum.
2135 (add_properties): Allow appending/prepending text properties.
2136 (add_text_properties_1): Factored out of Fadd_text_properties.
ef099a94 2137 (Fadd_text_properties): Move all the code into
708e05f6
LMI
2138 add_text_properties_1.
2139 (Fadd_face_text_property): New function that calls
2140 add_text_properties_1.
2141
84575e67
PE
21422013-06-17 Paul Eggert <eggert@cs.ucla.edu>
2143
2144 Move functions from lisp.h to individual modules when possible.
2145 From a suggestion by Andreas Schwab in <http://bugs.gnu.org/11935#68>.
2146 * alloc.c (XFLOAT_INIT, set_symbol_name):
2147 * buffer.c (CHECK_OVERLAY):
2148 * chartab.c (CHECK_CHAR_TABLE, set_char_table_ascii)
2149 (set_char_table_parent):
2150 * coding.c (CHECK_NATNUM_CAR, CHECK_NATNUM_CDR):
2151 * data.c (BOOLFWDP, INTFWDP, KBOARD_OBJFWDP, OBJFWDP, XBOOLFWD)
2152 (XKBOARD_OBJFWD, XINTFWD, XOBJFWD, CHECK_SUBR, set_blv_found)
2153 (blv_value, set_blv_value, set_blv_where, set_blv_defcell)
2154 (set_blv_valcell):
2155 * emacs.c (setlocale) [!HAVE_SETLOCALE]:
2156 * eval.c (specpdl_symbol, specpdl_old_value, specpdl_where)
2157 (specpdl_arg, specpdl_func, backtrace_function, backtrace_nargs)
2158 (backtrace_args, backtrace_debug_on_exit):
2159 * floatfns.c (CHECK_FLOAT):
2160 * fns.c (CHECK_HASH_TABLE, CHECK_LIST_END)
2161 (set_hash_key_and_value, set_hash_next, set_hash_next_slot)
2162 (set_hash_hash, set_hash_hash_slot, set_hash_index)
2163 (set_hash_index_slot):
2164 * keymap.c (CHECK_VECTOR_OR_CHAR_TABLE):
2165 * marker.c (CHECK_MARKER):
2166 * textprop.c (CHECK_STRING_OR_BUFFER):
2167 * window.c (CHECK_WINDOW_CONFIGURATION):
2168 Move here from lisp.h, and make these functions static rather than
2169 extern inline.
2170 * buffer.c (Qoverlayp):
2171 * data.c (Qsubrp):
2172 * fns.c (Qhash_table_p):
2173 * window.c (Qwindow_configuration_p):
2174 Now static.
2175 * lisp.h: Remove the abovementioned defns and decls.
2176
44e18199 2177 Use functions, not macros, for XINT etc (Bug#11935).
84575e67
PE
2178 In lisp.h, prefer functions to function-like macros, and
2179 constants to object-like macros, when either will do. This:
2180 . simplifies use, as there's no more need to worry about
2181 arguments' side effects being evaluated multiple times.
2182 . makes the code easier to debug on some platforms.
2183 However, when using gcc -O0, keep using function-like macros
2184 for a few critical operations, for performance reasons.
2185 This sort of thing isn't needed with gcc -Og, but -Og
2186 is a GCC 4.8 feature and isn't widely-enough available yet.
2187 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]:
2188 Remove enum lsb_bits; no longer needed.
2189 (allocate_misc, free_misc): Don't use XMISCTYPE as an lvalue.
2190 * buffer.c (Qoverlap):
2191 * data.c (Qsubrp):
2192 * fns.c (Qhash_table_p):
2193 Now extern, so lisp.h can use these symbols.
2194 * dispextern.h: Include character.h, for MAX_CHAR etc.
2195 (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE)
2196 (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
2197 (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P)
2198 (GLYPH_CODE_P): Move here from lisp.h.
2199 (GLYPH_CHAR, GLYPH_FACE, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
2200 (GLYPH_CHAR_VALID_P, GLYPH_CODE_P): Now functions, not macros.
2201 (GLYPH_MODE_LINE_FACE): Now enums, not macros.
2202 * eval.c (Fautoload): Cast XUNTAG output to intptr_t, since
2203 XUNTAG now returns void *.
2204 * lisp.h (lisp_h_XLI, lisp_h_XIL, lisp_h_CHECK_LIST_CONS)
2205 (lisp_h_CHECK_NUMBER CHECK_SYMBOL, lisp_h_CHECK_TYPE)
2206 (lisp_h_CONSP, lisp_h_EQ, lisp_h_FLOATP, lisp_h_INTEGERP)
2207 (lisp_h_MARKERP, lisp_h_MISCP, lisp_h_NILP)
2208 (lisp_h_SET_SYMBOL_VAL, lisp_h_SYMBOL_CONSTANT_P)
2209 (lisp_h_SYMBOL_VAL, lisp_h_SYMBOLP, lisp_h_VECTORLIKEP)
2210 (lisp_h_XCAR, lisp_h_XCDR, lisp_h_XCONS, lisp_h_XHASH)
2211 (lisp_h_XPNTR, lisp_h_XSYMBOL):
2212 New macros, renamed from their sans-lisp_h_ counterparts.
2213 (XLI, XIL, CHECK_LIST_CONS, CHECK_NUMBER CHECK_SYMBOL)
2214 (CHECK_TYPE, CONSP, EQ, FLOATP, INTEGERP, MARKERP)
2215 (MISCP, NILP, SET_SYMBOL_VAL, SYMBOL_CONSTANT_P, SYMBOL_VAL, SYMBOLP)
2216 (VECTORLIKEP, XCAR, XCDR, XCONS, XHASH, XPNTR, XSYMBOL):
2217 If compiling via GCC without optimization, define these as macros
2218 in addition to inline functions.
2219 To disable this, compile with -DINLINING=0.
2220 (LISP_MACRO_DEFUN, LISP_MACRO_DEFUN_VOID): New macros.
2221 (check_cons_list) [!GC_CHECK_CONS_LIST]: Likewise.
2222 (make_number, XFASTINT, XINT, XTYPE, XUNTAG): Likewise, but
2223 hand-optimize only in the USE_LSB_TAG case, as GNUish hosts do that.
2224 (INTMASK, VALMASK): Now macros, since static values cannot be
2225 accessed from extern inline functions.
2226 (VALMASK): Also a constant, for benefit of old GDB.
2227 (LISP_INT_TAG_P): Remove; no longer needed as the only caller
2228 is INTEGERP, which can fold it in.
5165d44a 2229 (XLI, XIL, XHASH, XTYPE, XINT, XFASTINT, XUINT)
84575e67
PE
2230 (make_number, XPNTR, XUNTAG, EQ, XCONS, XVECTOR, XSTRING, XSYMBOL)
2231 (XFLOAT, XPROCESS, XWINDOW, XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE)
2232 (XSUB_CHAR_TABLE, XBOOL_VECTOR, make_lisp_ptr, CHECK_TYPE)
2233 (CHECK_STRING_OR_BUFFER, XCAR, XCDR, XSETCAR, XSETCDR, CAR, CDR)
2234 (CAR_SAFE, CDR_SAFE, STRING_MULTIBYTE, SDATA, SSDATA, SREF, SSET)
2235 (SCHARS, STRING_BYTES, SBYTES, STRING_SET_CHARS, STRING_COPYIN, AREF)
2236 (ASIZE, ASET, CHAR_TABLE_REF_ASCII, CHAR_TABLE_REF)
2237 (CHAR_TABLE_SET, CHAR_TABLE_EXTRA_SLOTS, SYMBOL_VAL, SYMBOL_ALIAS)
2238 (SYMBOL_BLV, SYMBOL_FWD, SET_SYMBOL_VAL, SET_SYMBOL_ALIAS)
2239 (SET_SYMBOL_BLV, SET_SYMBOL_FWD, SYMBOL_NAME, SYMBOL_INTERNED_P)
2240 (SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P, SYMBOL_CONSTANT_P)
2241 (XHASH_TABLE, HASH_TABLE_P, CHECK_HASH_TABLE, HASH_KEY, HASH_VALUE)
2242 (HASH_NEXT, HASH_HASH, HASH_INDEX, HASH_TABLE_SIZE)
2243 (XMISC, XMISCANY, XMARKER, XOVERLAY, XSAVE_VALUE, XFWDTYPE)
2244 (XINTFWD, XBOOLFWD, XOBJFWD, XBUFFER_OBJFWD, XKBOARD_OBJFWD)
2245 (XFLOAT_DATA, XFLOAT_INIT, NILP, NUMBERP, NATNUMP)
2246 (RANGED_INTEGERP, CONSP, FLOATP, MISCP, STRINGP, SYMBOLP)
2247 (INTEGERP, VECTORLIKEP, VECTORP, OVERLAYP)
2248 (MARKERP, SAVE_VALUEP, AUTOLOADP, INTFWDP, BOOLFWDP, OBJFWDP)
2249 (BUFFER_OBJFWDP, KBOARD_OBJFWDP, PSEUDOVECTOR_TYPEP)
2250 (PSEUDOVECTORP, WINDOW_CONFIGURATIONP, PROCESSP, WINDOWP)
2251 (TERMINALP, SUBRP, COMPILEDP, BUFFERP, CHAR_TABLE_P)
2252 (SUB_CHAR_TABLE_P, BOOL_VECTOR_P, FRAMEP, IMAGEP, ARRAYP)
2253 (CHECK_LIST, CHECK_LIST_CONS, CHECK_LIST_END, CHECK_STRING)
2254 (CHECK_STRING_CAR, CHECK_CONS, CHECK_SYMBOL, CHECK_CHAR_TABLE)
2255 (CHECK_VECTOR, CHECK_VECTOR_OR_STRING, CHECK_ARRAY)
2256 (CHECK_VECTOR_OR_CHAR_TABLE, CHECK_BUFFER, CHECK_WINDOW)
2257 (CHECK_WINDOW_CONFIGURATION, CHECK_PROCESS, CHECK_SUBR)
2258 (CHECK_NUMBER, CHECK_NATNUM, CHECK_MARKER, XFLOATINT)
2259 (CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT, CHECK_OVERLAY)
2260 (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR, CHECK_NATNUM_CAR)
2261 (CHECK_NATNUM_CDR, FUNCTIONP, SPECPDL_INDEX, LOADHIST_ATTACH)
2262 Now functions.
2263 (check_cons_list) [!GC_CHECK_CONS_LIST]: New empty function.
2264 (LISP_MAKE_RVALUE, TYPEMASK): Remove; no longer needed.
2265 (VALMASK): Define in one place rather than in two, merging the
2266 USE_LSB_TAG parts; this is simpler.
2267 (aref_addr, gc_aset, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM)
2268 (max, min, struct Lisp_String, UNSIGNED_CMP, ASCII_CHAR_P):
2269 Move up, to avoid use before definition.
2270 Also include "globals.h" earlier, for the same reason.
2271 (make_natnum): New function.
2272 (XUNTAG): Now returns void *, not intptr_t, as this means fewer casts.
2273 (union Lisp_Fwd, BOOLFWDP, BOOL_VECTOR_P, BUFFER_OBJFWDP, BUFFERP)
2274 (CHAR_TABLE_P, CHAR_TABLE_REF_ASCII, CONSP, FLOATP, INTEGERP, INTFWDP)
2275 (KBOARD_OBJFWDP, MARKERP, MISCP, NILP, OBJFWDP, OVERLAYP, PROCESSP)
2276 (PSEUDOVECTORP, SAVE_VALUEP, STRINGP, SUB_CHAR_TABLE_P, SUBRP, SYMBOLP)
2277 (VECTORLIKEP, WINDOWP, Qoverlayp, char_table_ref, char_table_set)
2278 (char_table_translate, Qarrayp, Qbufferp, Qbuffer_or_string_p)
2279 (Qchar_table_p, Qconsp, Qfloatp, Qintegerp, Qlambda, Qlistp, Qmarkerp)
2280 (Qnil, Qnumberp, Qsubrp, Qstringp, Qsymbolp, Qvectorp)
2281 (Qvector_or_char_table_p, Qwholenump, Ffboundp, wrong_type_argument)
2282 (initialized, Qhash_table_p, extract_float, Qprocessp, Qwindowp)
2283 (Qwindow_configuration_p, Qimage): New forward declarations.
2284 (XSETFASTINT): Simplify by rewriting in terms of make_natnum.
2285 (STRING_COPYIN): Remove; unused.
2286 (XCAR_AS_LVALUE, XCDR_AS_LVALUE): Remove these macros, replacing with ...
2287 (xcar_addr, xcdr_addr): New functions. All uses changed.
2288 (IEEE_FLOATING_POINT): Now a constant, not a macro.
2289 (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE)
2290 (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
2291 (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P)
2292 (GLYPH_CODE_P): Move to dispextern.h, to avoid define-before-use.
2293 (TYPE_RANGED_INTEGERP): Simplify.
2294 (Qsubrp, Qhash_table_p, Qoverlayp): New extern decls.
2295 (setlocale, fixup_locale, synchronize_system_messages_locale)
2296 (synchronize_system_time_locale) [!HAVE_SETLOCALE]:
2297 Now empty functions, not macros.
2298 (functionp): Return bool, not int.
2299 * window.c (Qwindow_configuration_p): Now extern,
2300 so window.h can use it.
2301 * window.h (Qwindowp): Move decl back to lisp.h.
2302
9583ec36
EZ
23032013-06-15 Eli Zaretskii <eliz@gnu.org>
2304
2305 * xdisp.c (Fline_pixel_height): New function, required for solving
2306 bug #14567.
2307
210272ce
PE
23082013-06-15 Paul Eggert <eggert@cs.ucla.edu>
2309
2310 * fns.c (Fcopy_sequence): Simplify XTYPE calculation.
2311
de0503df
SM
23122013-06-13 Stefan Monnier <monnier@iro.umontreal.ca>
2313
2314 * lread.c (syms_of_lread):
2315 * fns.c (Fprovide): Adjust to new format of after-load-alist.
2316
afbfe143
KD
23172013-06-13 Kelly Dean <kellydeanch@yahoo.com> (tiny change)
2318
2319 * fileio.c (Fdo_auto_save): Trap errors in auto-save-hook. (Bug#14479)
2320
d177e213
XF
23212013-06-12 Xue Fuqiao <xfq.free@gmail.com>
2322
2323 * fileio.c (expand_file_name): Doc fix.
2324
05e3e412
PE
23252013-06-11 Paul Eggert <eggert@cs.ucla.edu>
2326
f7394b12
PE
2327 Tickle glib by waiting for Emacs itself, not for process 0 (Bug#14569).
2328 * process.c (init_process_emacs) [HAVE_GLIB && !WINDOWSNT]:
2329 Wait for self, not for 0. This can't hurt on GNU or similar
2330 system, and may help with Cygwin.
2331
05e3e412
PE
2332 * keyboard.c: Don't use PROP (...) as an lvalue.
2333 (parse_tool_bar_item) [!USE_GTK && !HAVE_NS]:
2334 Use set_prop (A, B), not PROP (A) = B.
2335
17dd3097
EZ
23362013-06-10 Eli Zaretskii <eliz@gnu.org>
2337
2338 * xdisp.c (get_it_property): Use it->window instead of generating
2339 a Lisp object from it->w.
2340
52fab9c9
EZ
23412013-06-09 Eli Zaretskii <eliz@gnu.org>
2342
2343 * xdisp.c (get_it_property): If it->object is a buffer, pass to
2344 get-char-property the window that is being rendered, instead of
2345 the buffer, to support window-specific overlays. (Bug#14575)
ad257d4f
EZ
2346 (compute_display_string_pos): When W is NULL, use the current
2347 buffer as the object to pass to get-char-property.
2348 (Fcurrent_bidi_paragraph_direction): Assign NULL to the window
2349 pointer member of the bidi iterator, since no window is pertinent
2350 to this function.
52fab9c9 2351
5bf97bfc
EZ
23522013-06-08 Eli Zaretskii <eliz@gnu.org>
2353
2354 * bidi.c (bidi_fetch_char): Accept additional argument, the window
2355 being displayed, and pass it to compute_display_string_pos.
2356 (bidi_level_of_next_char, bidi_resolve_explicit_1)
2357 (bidi_paragraph_init): All callers changed.
2358
2359 * xdisp.c (init_from_display_pos, init_iterator)
2360 (handle_single_display_spec, next_overlay_string)
2361 (get_overlay_strings_1, reseat_1, reseat_to_string)
e7b41c4c
JB
2362 (push_prefix_prop, Fcurrent_bidi_paragraph_direction):
2363 Set bidi_it.w member from it->w.
5bf97bfc
EZ
2364 (compute_display_string_pos): Accept additional argument, the
2365 window being displayed, and pass it to Fget_char_property.
2366 (Bug#14575)
2367
2368 * dispextern.h (struct bidi_it): New member w, the window being
2369 displayed.
2370 (compute_display_string_pos): Adjust prototype.
2371
5de0e011
JD
23722013-06-08 Jan Djärv <jan.h.d@swipnet.se>
2373
e7b41c4c 2374 * xgselect.c: Remove unneeded include xterm.h.
b33f93ee
JD
2375
2376 * process.c (wait_reading_process_output): Check for NS before GLIB.
2377 GLIB may be linked in due to rsvg, but ns_select must be called.
2378
5de0e011
JD
2379 * xgselect.c (xg_select): Remove call to window_system_available
2380 and g_main_context_pending at the top, so Gdk events (i.e. file
2381 notify) are processed when Emacs is started with -nw.
2382
a822acff
EZ
23832013-06-07 Eli Zaretskii <eliz@gnu.org>
2384
2385 * Makefile.in (ctagsfiles1, ctagsfiles2): Don't include *.m files.
2386 (ctagsfiles3): New variable, includes only *.m files.
2387 (TAGS): Use an explicit language name in the regular expressions,
2388 to avoid transformation of '/SOMETHING' by MSYS to
2389 'c:\MSYS\SOMETHING'.
2390
6c0a9ed1
RC
23912013-06-07 Richard Copley <rcopley@gmail.com> (tiny change)
2392
2393 * epaths.in: Fix commentary to PATH_SITELOADSEARCH.
2394
9ef6111b
EZ
23952013-06-06 Eli Zaretskii <eliz@gnu.org>
2396
2397 * xdisp.c (note_mouse_highlight): When mouse-highlight is off,
2398 still need to set the mouse pointer shape and activate help-echo.
2399 (Bug#14558)
2400
7d300d64
PE
24012013-06-06 Paul Eggert <eggert@cs.ucla.edu>
2402
2403 A few porting etc. fixes for the new file monitor code.
2404 See the thread containing
2405 <http://lists.gnu.org/archive/html/emacs-devel/2013-06/msg00109.html>.
2406 * gfilenotify.c (dir_monitor_callback, Fgfile_add_watch)
2407 (Fgfile_rm_watch): Don't assume EMACS_INT is the same width as a pointer.
2408 (dir_monitor_callback, Fgfile_rm_watch):
2409 Use assq_no_quit instead of Fassoc, for speed.
2410 (dir_monitor_callback, Fgfile_rm_watch):
2411 eassert that the monitor is a fixnum.
2412 (dir_monitor_callback): No need for CDR_SAFE.
2413 Simplify building of lisp with alternative tails.
2414 (Fgfile_add_watch, Fgfile_rm_watch):
2415 Do not assume glib functions set errno reliably on failure.
2416 (Fgfile_add_watch): Check that the monitor survives the XIL trick,
2417 and signal an error otherwise.
2418 (Fgfile_rm_watch): Prefer CONSP to !NILP.
2419 Use Fdelq instead of Fdelete, for speed.
2420
817ebfcf
EZ
24212013-06-05 Eli Zaretskii <eliz@gnu.org>
2422
2423 * xdisp.c (handle_tool_bar_click): When mouse-highlight is off,
2424 don't insist on being invoked on a highlighted tool-bar button.
2425 Avoids losing tool-bar functionality when mouse-highlight is nil.
2426 (note_tool_bar_highlight, note_mode_line_or_margin_highlight):
2427 Don't highlight when mouse-highlight is nil.
2428 (note_mouse_highlight): When mouse-highlight is nil, don't return
2429 right away; instead, run tool-bar and mode-line highlight
2430 subroutine, clear any existing highlight, and revert the mouse
2431 pointer to its default shape. (Bug#14558)
2432
55577e7c
SM
24332013-06-05 Stefan Monnier <monnier@iro.umontreal.ca>
2434
2435 * lisp.mk (lisp): Add prog-mode.el.
2436
f019a684
PE
24372013-06-05 Paul Eggert <eggert@cs.ucla.edu>
2438
2439 Chain glib's SIGCHLD handler from Emacs's (Bug#14474).
2440 * process.c (dummy_handler): New function.
2441 (lib_child_handler): New static var.
2442 (handle_child_signal): Invoke it.
2443 (catch_child_signal): If a library has set up a signal handler,
2444 save it into lib_child_handler.
2445 (init_process_emacs): If using glib and not on Windows, tickle glib's
2446 child-handling code so that it initializes its private SIGCHLD handler.
2447 * syssignal.h (SA_SIGINFO): Default to 0.
2448 * xterm.c (x_term_init): Remove D-bus hack that I installed on May
2449 31; it should no longer be needed now.
2450
90db8702
MA
24512013-06-05 Michael Albinus <michael.albinus@gmx.de>
2452
2453 * emacs.c (main) [HAVE_GFILENOTIFY]: Call globals_of_gfilenotify.
2454
2455 * gfilenotify.c (globals_of_gfilenotify): New function.
2456 (syms_of_gfilenotify): Move global initialization there.
2457
2458 * lisp.h (globals_of_gfilenotify) [HAVE_GFILENOTIFY]: Add prototype.
2459
bfa3acd6
SM
24602013-06-05 Stefan Monnier <monnier@iro.umontreal.ca>
2461
2462 * keymap.c (Fcurrent_active_maps, Fdescribe_buffer_bindings):
2463 * keyboard.c (menu_bar_items, tool_bar_items):
2464 * doc.c (Fsubstitute_command_keys): Voverriding_terminal_local_map does
2465 not override local keymaps any more.
2466
ba59bd80
EZ
24672013-06-04 Eli Zaretskii <eliz@gnu.org>
2468
2469 * window.c (Fpos_visible_in_window_p): Doc fix. (Bug#14540)
2470
7f203aa1
EZ
24712013-06-03 Eli Zaretskii <eliz@gnu.org>
2472
9337e206
EZ
2473 * w32console.c (initialize_w32_display): Return the dimensions of
2474 the console window via 2 additional arguments, not via the current
2475 frame. This avoids crashes due to overrunning the bounds of
2476 frame's decode_mode_spec_buffer, which is not resized following
2477 the change of the frame dimensions from the initial 10x10.
2478
2479 * w32term.h (w32_initialize_display_info): Adjust prototype.
2480
2481 * term.c (init_tty): Take dimensions of the frame from the values
2482 returned by initialize_w32_display.
2483
7f203aa1
EZ
2484 * Makefile.in (GFILENOTIFY_CFLAGS, GFILENOTIFY_LIBS): New variables.
2485 (ALL_CFLAGS): Add $(GFILENOTIFY_CFLAGS).
2486 (LIBES): Add $(GFILENOTIFY_LIBS).
2487
2488 * w32inevt.c (handle_file_notifications): Add dummy implementation
2489 for !HAVE_W32NOTIFY.
2490
2491 * w32term.c: Wrap code with HAVE_W32NOTIFY.
2492
55a87246
JD
24932013-06-03 Jan Djärv <jan.h.d@swipnet.se>
2494
2495 * xgselect.c: Replace #if defined ... with #ifdef HAVE_GLIB.
2496
2497 * process.c (wait_reading_process_output): Call xg_select if HAVE_GLIB.
2498
2499 * Makefile.in (XGSELOBJ): New, xgselect.o if GLib is used, or empty.
2500
3d5ee10a
PE
25012013-06-03 Paul Eggert <eggert@cs.ucla.edu>
2502
2503 Fix minor problems found by static checking.
2504 * data.c (pure_write_error):
2505 Use xsignal2, not Fsignal, as Fsignal might return.
2506 * eval.c (set_backtrace_debug_on_exit): Now static.
2507 (backtrace_p, backtrace_top, backtrace_next, record_in_backtrace):
2508 No longer inline. EXTERN_INLINE is needed only for functions
2509 defined in .h files. Reindent function header as per GNU style.
2510 (backtrace_p, backtrace_top, backtrace_next):
2511 Mark EXTERNALLY_VISIBLE so they don't get optimized away by the
2512 compiler or linker. Add extern decls to pacify gcc -Wall.
2513 * frame.c, frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
2514 Now static.
2515 * frame.c (free_monitors): Define only on platforms that need it.
2516 * nsterm.m (ns_term_init):
2517 * process.c (catch_child_signal):
2518 Don't worry about whether SIGCHLD is defined, as SIGCHLD is
2519 defined on all porting targets these days.
2520 * process.c, process.h (catch_child_signal):
2521 Make it extern only if NS_IMPL_GNUSTEP is defined.
2522
e2d8a6f0
EZ
25232013-06-03 Eli Zaretskii <eliz@gnu.org>
2524
2525 * w32.c (gettimeofday): Make the signature identical to prototype
2526 in nt/inc/sys/time.h.
2527
a8a7c5f6
SM
25282013-06-03 Stefan Monnier <monnier@iro.umontreal.ca>
2529
2530 * eval.c (backtrace_p, backtrace_top, backtrace_next): Export them to
2531 .gdbinit.
2532
2533 * keyboard.c (safe_run_hooks_error): Improve error message.
2534
2535 * data.c (pure_write_error): Add `object' argument.
2536 * puresize.h (CHECK_IMPURE): Use it.
2537
c9628c79
MA
25382013-06-03 Michael Albinus <michael.albinus@gmx.de>
2539
2540 * Makefile.in (NOTIFY_OBJ): New variable.
2541 (base_obj): Replace inotify.o by $(NOTIFY_OBJ).
2542
2543 * emacs.c (main): Use HAVE_W32NOTIFY to wrap respective code.
2544 Call syms_of_gfilenotify.
2545
2546 * gfilenotify.c: New file.
2547
2548 * keyboard.c (Qfile_notify): New variable. Replaces Qfile_inotify
2549 and Qfile_w32notify.
2550 (top): Wrap respective code by HAVE_GFILENOTIFY, HAVE_INOTIFY,
2551 HAVE_W32NOTIFY and USE_FILE_NOTIFY.
2552
2553 * lisp.h: Declare syms_of_gfilenotify.
2554
2555 * termhooks.h (e): Wrap enum by USE_FILE_NOTIFY.
2556
2f592f95
SM
25572013-06-03 Stefan Monnier <monnier@iro.umontreal.ca>
2558
2559 Merge the specpdl and backtrace stacks. Make the structure of the
2560 specpdl entries more obvious via a tagged union of structs.
2561 * lisp.h (BITS_PER_PTRDIFF_T): New constant.
2562 (enum specbind_tag): New enum.
2563 (struct specbinding): Make it a tagged union of structs.
2564 Add a case for backtrace records.
2565 (specpdl_symbol, specpdl_old_value, specpdl_where, specpdl_arg)
2566 (specpdl_func, backtrace_function, backtrace_nargs, backtrace_args)
2567 (backtrace_debug_on_exit): New accessors.
2568 (struct backtrace): Remove.
2569 (struct catchtag): Remove backlist field.
2570 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
2571 Move to eval.c.
2572 (Flocal_variable_p): Speed up the common case where the binding is
2573 already loaded.
2574 * eval.c (backtrace_list): Remove.
2575 (set_specpdl_symbol, set_specpdl_old_value): Remove.
2576 (set_backtrace_args, set_backtrace_nargs)
2577 (set_backtrace_debug_on_exit, backtrace_p, backtrace_top)
2578 (backtrace_next): New functions.
2579 (Fdefvaralias, Fdefvar): Adjust to new specpdl format.
2580 (unwind_to_catch, internal_lisp_condition_case)
2581 (internal_condition_case, internal_condition_case_1)
2582 (internal_condition_case_2, internal_condition_case_n): Don't bother
2583 with backtrace_list any more.
2584 (Fsignal): Adjust to new backtrace format.
2585 (grow_specpdl): Move up.
2586 (record_in_backtrace): New function.
2587 (eval_sub, Ffuncall): Use it.
2588 (apply_lambda): Adjust to new backtrace format.
2589 (let_shadows_buffer_binding_p, let_shadows_global_binding_p): Move from
2590 data.c.
2591 (specbind): Adjust to new specpdl format. Simplify.
2592 (record_unwind_protect, unbind_to): Adjust to new specpdl format.
2593 (Fbacktrace_debug, Fbacktrace, Fbacktrace_frame): Adjust to new
2594 backtrace format.
2595 (mark_backtrace): Remove.
2596 (mark_specpdl, get_backtrace, backtrace_top_function): New functions.
2597 * xdisp.c (redisplay_internal): Use record_in_backtrace.
2598 * alloc.c (Fgarbage_collect): Use record_in_backtrace.
2599 Use mark_specpdl.
2600 * profiler.c (record_backtrace): Use get_backtrace.
2601 (handle_profiler_signal): Use backtrace_top_function.
2602 * .gdbinit (xbacktrace, hookpost-backtrace): Use new backtrace
2603 accessor functions.
2604
c0342369
JD
26052013-06-02 Jan Djärv <jan.h.d@swipnet.se>
2606
2607 * process.h (catch_child_signal): Declare.
2608
2609 * process.c (catch_child_signal): New function.
2610 (init_process_emacs): Call it.
2611
2612 * nsterm.m: Include process.h if NS_IMPL_GNUSTEP.
2613 (ns_menu_bar_is_hidden, menu_will_open_state): Define only if
2614 NS_IMPL_COCOA.
2615 (x_set_cursor_type): Remove declaration.
2616 (ns_update_begin): Only use r and bp if NS_IMPL_COCOA.
2617 (ns_update_end, ns_focus, ns_unfocus): Remove GNUStep specific code.
2618 (x_set_window_size): Remove 3 pixels from toolbar if NS_IMPL_GNUSTEP.
2619 (ns_get_color): Use F suffix on float.
2620 (ns_color_to_lisp, ns_query_color): Use EmacsCGFloat.
2621 (ns_get_rgb_color): Remove.
2622 (x_set_frame_alpha): Move view inside NS_IMPL_COCOA.
2623 (note_mouse_movement): x and y are CGFloat.
2624 (ns_draw_fringe_bitmap): Remove unused rowY.
2625 Change #if to COCOA && >= 10_6.
2626 (ns_draw_window_cursor): Remove unused overspill.
2627 (ns_draw_underwave): width and x are EamcsCGFloat.
2628 (ns_draw_box): thickness is CGFloat.
2629 (ns_dumpglyphs_image): Change #if to COCOA && >= 10_6.
2630 (ns_send_appdefined): When NS_IMPL_GNUSTEP, redirect to main thread
2631 if not in main thread.
2632 (ns_get_pending_menu_title, ns_check_menu_open)
2633 (ns_check_pending_open_menu): Put inside #if COCOA && >= 10_5.
2634 (ns_term_init): Call catch_child_signal if NS_IMPL_GNUSTEP && SIGCHLD.
2635 (sendFromMainThread:): New method.
2636 (changeFont:): size is CGFloat.
2637 (keyDown:): Check for Delete when NS_IMPL_GNUSTEP.
2638 Disable warning about permanent text.
2639 (characterIndexForPoint:): Adjust return type depending on GNUStep
2640 version.
2641 (mouseDown:): delta is CGFloat.
2642 (updateFrameSize): Remove unised variable f.
2643 (initFrameFromEmacs): Move toggleButton inside NS_IMPL_COCOA.
2644 Cast float to EmacsCGFloat.
2645 (windowWillUseStandardFrame:defaultFrame:): Set maximized_height
2646 also to -1 when restoring.
2647 (windowDidExitFullScreen:): Put call to updateCollectionBehaviour
2648 inside NS_IMPL_COCOA.
2649 (toggleFullScreen:): Put call to toggleFullScreen inside
2650 NS_IMPL_COCOA. Cast float to EmacsCGFloat.
2651 (setPosition:portion:whole:): por is CGFloat.
2652 (getMouseMotionPart:window:x:y:): Add F suffix to float.
2653 (mouseDown:): Use CGFloat.
2654 (mouseDragged:): Remove unised variable edge.
2655 (EmacsDocument): Implement for NS_IMPL_GNUSTEP.
2656
2657 * nsterm.h (EmacsCGFloat): Typedef for OSX and GNUStep when the size
2658 of CGFloat differs.
2659 (EmacsApp): New variable nextappdefined. Declare sendFromMainThread
2660 when NS_IMPL_GNUSTEP.
2661 (EmacsDocument): Declare when NS_IMPL_GNUSTEP.
2662 (EmacsView): Remove unlockFocusNeedsFlush, add windowDidMove.
2663 (EmacsToolbar): Add clearAll. Add tag argument to
2664 addDisplayItemWithImage.
2665 (EmacsSavePanel, EmacsOpenPanel): Remove getFilename and getDirectory.
2666
2667 * nsselect.m (ns_get_local_selection): Remove unused variable type.
2668
2669 * nsmenu.m (ns_update_menubar): Make static.
2670 (x_activate_menubar): Surround with ifdef NS_IMPL_COCOA
2671 (fillWithWidgetValue:): Add cast to SEL for setAction.
2672 (addSubmenuWithTitle:forFrame:): Add cast to SEL for action.
2673 (update_frame_tool_bar): Update code for GNUStep.
2674 (clearAll): New method.
2675 (addDisplayItemWithImage:idx:tag:helpText:enabled:): Handle new tag
4f405069 2676 argument. Call insertItemWithItemIdentifier when NS_IMPL_GNUSTEP.
e7b41c4c 2677 Move identifierToItem setObject and activeIdentifiers addObject before
c0342369
JD
2678 call to insertItemWithItemIdentifier.
2679 (validateVisibleItems): Fix indentation.
2680 (toolbarAllowedItemIdentifiers:): Return activeIdentifiers.
2681 (initWithContentRect:styleMask:backing:defer:): Add ClosableWindow and
2682 UtilityWindow to aStyle, remove call to setStyleMask.
2683
2684 * nsimage.m (setXBMColor:, getPixelAtX:Y:): Use EmacsCGFloat.
2685
2686 * nsfont.m (ns_attribute_fvalue, ns_spec_to_descriptor)
2687 (ns_charset_covers, ns_get_covering_families, nsfont_open):
2688 Use F suffix on floats.
2689 (ns_char_width): Returns CGFloat.
2690 (ns_ascii_average_width): w is CGFloat instead of float.
e7b41c4c 2691 (nsfont_draw): cbuf and c are unsigned. Cast to char* in call to
c0342369
JD
2692 DPSxshow.
2693 (ns_glyph_metrics): CGFloat instead of float.
2694
a0eb10b3
JB
2695 * nsfns.m (x_set_foreground_color, x_set_background_color):
2696 Use EmacsCGFloat.
2697 (ns_implicitly_set_icon_type, Fx_create_frame): Make static,
2698 remove unused variables.
2699 (Fns_read_file_name): Keep track if panel is for save.
2700 Use ns_filename_from_panel/ns_directory_from_panel.
c0342369 2701 (Fns_list_services): delegate only used for COCOA.
a0eb10b3
JB
2702 (Fns_convert_utf8_nfd_to_nfc): Remove warning for GNUStep.
2703 Just return the input if GNUStep.
c0342369
JD
2704 (x_screen_planes): Remove.
2705 (Fxw_color_values): Use EmacsCGFloat
2706 (Fns_display_monitor_attributes_list): Only get screen number for
2707 Cocoa.
ef099a94 2708 (getDirectory, getFilename): Remove from EmacsOpenPanel and
c0342369
JD
2709 EmacsSavePanel.
2710 (EmacsOpenPanel:ok:): Use ns_filename_from_panel and
2711 ns_directory_from_panel.
2712
da9aff11
PE
27132013-06-01 Paul Eggert <eggert@cs.ucla.edu>
2714
2715 * process.c (handle_child_signal): Also use WCONTINUED.
2716 This is so that list-processes doesn't mistakenly list the process
2717 as stopped, when the process has actually been continued and is
2718 now running.
2719
0e64479a
PE
27202013-05-31 Paul Eggert <eggert@cs.ucla.edu>
2721
fc186a96
PE
2722 Don't let D-bus autolaunch mess up SIGCHLD handling (Bug#14474).
2723 * xterm.c (x_term_init): Inhibit D-Bus autolaunch if D-Bus is
2724 not already configured.
2725
0e64479a
PE
2726 * fileio.c (Finsert_file_contents): Remove unused local (Bug#8447).
2727
38b787fa
EZ
27282013-05-29 Eli Zaretskii <eliz@gnu.org>
2729
2730 * Makefile.in (mostlyclean): Remove *.res files.
2731
22513e52
SM
27322013-05-29 Stefan Monnier <monnier@iro.umontreal.ca>
2733
2734 * fileio.c (Finsert_file_contents): Preserve undo info when reverting
2735 a buffer (bug#8447).
2736
6ef3db10
EZ
27372013-05-27 Eli Zaretskii <eliz@gnu.org>
2738
2739 * xdisp.c (pos_visible_p): When CHARPOS is displayed frrom a
2740 display vector, and we backtrack, handle the case that the
2741 previous character position is also displayed from a display
2742 vector or covered by a display string or image. (Bug#14476)
2743
6799bb26
JD
27442013-05-25 Jan Djärv <jan.h.d@swipnet.se>
2745
2746 * xfns.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove.
2747 (struct MonitorInfo, free_monitors): Remove.
2748 (x_make_monitor_attribute_list): Call make_monitor_attribute_list.
2749 (Fx_display_monitor_attributes_list): Call make_monitor_attribute_list.
2750 (syms_of_xfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size,
2751 Qframes, Qsource.
2752
2753 * nsfns.m (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove.
2754 (struct MonitorInfo, free_monitors): Remove.
2755 (ns_screen_name): Make static.
2756 (ns_make_monitor_attribute_list): Call make_monitor_attribute_list.
2757 (syms_of_nsfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size,
2758 Qframes, Qsource.
2759
2760 * frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
2761 (struct MonitorInfo): New struct.
2762 (free_monitors, make_monitor_attribute_list): Declare.
2763
22513e52
SM
2764 * frame.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
2765 New Lisp_Object:s.
6799bb26
JD
2766 (free_monitors, make_monitor_attribute_list): New functions.
2767 (syms_of_frame): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes,
2768 Qsource.
2769
38cd43eb
XF
27702013-05-25 Xue Fuqiao <xfq.free@gmail.com>
2771
2772 * callproc.c (call_process): Refine the doc string. (Bug#14045)
2773
2af0948d
SM
27742013-05-23 Stefan Monnier <monnier@iro.umontreal.ca>
2775
a7eb9b0f
SM
2776 * keyboard.c: Apply keyboard decoding only to events that come directly
2777 from the tty, not from unread-command-events (bug#14368).
2778 (read_event_from_main_queue): New function, extracted from read_char).
2779 (read_decoded_char): Remove.
2780 (read_decoded_event_from_main_queue): New function to replace it.
2781 (read_char): Use it.
2782 (read_key_sequence): Use read_char rather than read_decoded_char.
2783
2af0948d
SM
2784 * keyboard.c (read_decoded_char): Don't decode under w32 (bug#14403).
2785
1413e9a5
BR
27862013-05-22 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
2787
2788 * casetab.c (init_casetab_once): Fix last change (bug#14424).
2789
e6d2f155
KH
27902013-05-22 Kenichi Handa <handa@gnu.org>
2791
2792 The following changes are to fix the setting of
2793 buffer-file-coding-system on, for instance, C-x RET c unix RET
2794 _FILE_OF_DOS_EOL_TYPE_ RET.
2795
2796 * coding.h (struct coding_system): New member detected_utf8_chars.
2797
2798 * coding.c (detect_coding_utf_8): Count characters and check EOL
2799 format. Include CATEGORY_MASK_UTF_8_AUTO in detect_info->found if
2800 BOM is there.
2801 (setup_coding_system): Do not initialize coding->head_ascii.
2802 (check_ascii): Do not set coding->eol_seen but update it. Do not
2803 call adjust_coding_eol_type here.
1413e9a5
BR
2804 (detect_coding): Fix detection of BOM for utf-8 and utf-16.
2805 If the eol-type of CODING is already specified, adjust the eol type
e6d2f155
KH
2806 of the found coding-system.
2807 (decode_coding_gap): Cancel previous change. Utilize the
2808 character numbers counted by detect_coding_utf_8. Fix detection
2809 of BOM for utf-8.
2810
ab56a6f4 28112013-05-21 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
fc30d803
SM
2812
2813 * search.c (looking_at_1): Only set last_thing_searched if the match
2814 changed the match-data (bug#14281).
2815
ecc3c6ed
DA
28162013-05-21 Dmitry Antipov <dmantipov@yandex.ru>
2817
2818 * xdisp.c (reseat_at_previous_visible_line_start):
a0eb10b3 2819 Already declared in dispextern.h, so remove it here.
ecc3c6ed
DA
2820 (move_it_vertically_backward): Likewise.
2821
5ba8bf35
YM
28222013-05-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2823
2824 * xfns.c (check_x_display_info): Don't use XINT for terminal object.
d6635ba2 2825 (Fx_display_pixel_width, Fx_display_pixel_height)
fc30d803
SM
2826 (Fx_display_mm_width, Fx_display_mm_height):
2827 Mention `display-monitor-attributes-list' in docstrings.
5ba8bf35 2828
91e8418b 2829 * nsfns.m (ns_get_screen): Remove function. All uses removed.
a0eb10b3 2830 (check_ns_display_info): Sync with check_x_display_info in xfns.c.
91e8418b
YM
2831 (Fx_server_max_request_size, Fx_server_vendor, Fx_server_version)
2832 (Fx_display_screens, Fx_display_mm_width, Fx_display_mm_height)
2833 (Fx_display_backing_store, Fx_display_visual_class)
2834 (Fx_display_save_under, Fx_close_connection, Fxw_display_color_p)
2835 (Fx_display_grayscale_p, Fx_display_pixel_width)
2836 (Fx_display_pixel_height, Fx_display_planes)
2837 (Fx_display_color_cells): Sync args and docstrings with xfns.c.
2838 (Fx_display_screens): Don't confuse X11 screens with NS screens.
2839 (Fx_display_mm_width, Fx_display_mm_height)
2840 (Fx_display_pixel_width, Fx_display_pixel_width): Return width or
2841 height for all physical monitors as in X11.
2842
fc30d803
SM
2843 * nsterm.m (x_display_pixel_width, x_display_pixel_height):
2844 Return pixel width or height for all physical monitors as in X11.
91e8418b 2845
31ff141c
PE
28462013-05-18 Paul Eggert <eggert@cs.ucla.edu>
2847
2848 Port --enable-gcc-warnings to clang.
2849 * bytecode.c (exec_byte_code):
2850 * regex.c:
2851 Redo diagnostic pragmas to pacify clang, too.
2852 * dbusbind.c (xd_retrieve_arg): Do not use uninitialized variable.
2853 * editfns.c (Fencode_time):
2854 * fileio.c (file_accessible_directory_p):
2855 * font.c (font_unparse_xlfd):
2856 Use '&"string"[index]' instead of '"string" + (index)'.
2857 * undo.c (user_error): Remove; unused.
2858
df065a0b
EZ
28592013-05-16 Eli Zaretskii <eliz@gnu.org>
2860
04d360e7
EZ
2861 * insdel.c (insert_1_both): Document the arguments, instead of
2862 referring to insert_1, which no longer exists.
2863
5bb98290
EZ
2864 * xdisp.c (message_dolog): If the *Messages* buffer is shown in
2865 some window, increment windows_or_buffers_changed, so that
2866 *Messages* display in that window is updated. (Bug#14408)
2867
df065a0b
EZ
2868 * w32.c: Include epaths.h.
2869 (init_environment): Use cmdproxy.exe without leading directories.
2870 Support emacs.exe in src; point SHELL to cmdproxy in ../nt in that
2871 case.
2872 (gettimeofday): Adjust signature and return value to Posix
2873 expectations.
2874
2875 * unexw32.c (open_output_file): Delete the existing emacs.exe
2876 before creating it, to break the hard link to the versioned
2877 executable.
2878
2879 * Makefile.in (EMACS_MANIFEST, CM_OBJ, TEMACS_POST_LINK)
2880 (ADDSECTION, EMACS_HEAPSIZE, MINGW_TEMACS_POST_LINK)
2881 (FIRSTFILE_OBJ): New variables.
2882 (W32_RES): Rename to EMACSRES. All users changed.
2883 (base_obj): Use $(CM_OBJ).
2884 (ALLOBJS): Use $(FIRSTFILE_OBJ).
2885 (emacs$(EXEEXT)): Depend on $(ADDSECTION).
2886 (temacs$(EXEEXT)): Use $(TEMACS_POST_LINK), and move
2887 $(W32_RES_LINK) before $(LIBES).
2888 (emacs.res): Depend on $(EMACS_MANIFEST). Put emacs.rc in nt.
2889
1aa8d505
SM
28902013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
2891
6e911150
SM
2892 * makefile.w32-in (DOC): Use just "DOC".
2893
2894 * Makefile.in (bootstrap-clean): DOC-* doesn't exist any more.
2895
1aa8d505
SM
2896 * process.c: Export default filters and sentinels to Elisp.
2897 (Qinternal_default_process_sentinel, Qinternal_default_process_filter):
2898 New constants.
2899 (pset_filter, pset_sentinel, make_process, Fset_process_filter)
2900 (Fset_process_sentinel, Fformat_network_address):
2901 Default to them instead of nil.
2902 (server_accept_connection): Sentinels can't be nil any more.
2903 (read_and_dispose_of_process_output): New function, extracted from
2904 read_process_output.
2905 (read_process_output): Use it; filters can't be nil.
2906 (Finternal_default_process_filter): New function, extracted from
2907 read_process_output.
2908 (exec_sentinel_unwind): Remove function.
2909 (exec_sentinel): Don't zilch sentinel while running.
2910 (status_notify): Sentinels can't be nil.
2911 (Finternal_default_process_sentinel): New function extracted from
2912 status_notify.
2913 (setup_process_coding_systems): Default filter is not nil any more.
2914 (syms_of_process): Export new Elisp functions and initialize
2915 new constants.
2916 * lisp.h (make_lisp_proc): New function.
2917
5ac2eb34
SM
29182013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
2919
2920 * regex.c (regex_compile) [\=, \>, \<]: Don't forget to set laststart.
2921
eda9c7d7
EZ
29222013-05-14 Eli Zaretskii <eliz@gnu.org>
2923
2924 * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
5ac2eb34
SM
2925 unless we know that the window w is a leaf window.
2926 Another attempt at solving bug#14062.
eda9c7d7 2927
8fdeaad5
JD
29282013-05-14 Jan Djärv <jan.h.d@swipnet.se>
2929
2930 * nsfont.m (ns_spec_to_descriptor): Retain and autorelease
2931 fdesc (Bug#14375).
2932
44aa9ee6
PE
29332013-05-12 Paul Eggert <eggert@cs.ucla.edu>
2934
2935 * image.c (gif_load): Check that subimages fit (Bug#14345).
2936
759fd763
SM
29372013-05-09 Stefan Monnier <monnier@iro.umontreal.ca>
2938
2939 * lread.c (skip_dyn_eof): New function.
2940 (read1): Use it to skip the end of a file in response to #@00.
2941
2942 * doc.c (get_doc_string): Slightly relax the sanity checking.
2943
4465bfb4
JD
29442013-05-09 Jan Djärv <jan.h.d@swipnet.se>
2945
2946 * nsfns.m: Include IOGraphicsLib.h if Cocoa.
2947 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
2948 (MonitorInfo): New struct.
2949 (free_monitors, ns_screen_name, ns_make_monitor_attribute_list)
2950 (Fns_display_monitor_attributes_list): New functions.
2951 (display-usable-bounds): Remove.
2952 (syms_of_nsfns): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes and
2953 Qsource.
2954
7583e2a0
PE
29552013-05-09 Paul Eggert <eggert@cs.ucla.edu>
2956
2957 * xterm.h (GTK_PREREQ): Remove, replacing with GTK_CHECK_VERSION.
2958 (GTK_CHECK_VERSION): New macro, if not already defined.
2959 All uses of GTK_PREREQ, GTK_MAJOR_VERSION, etc.
2960 replaced by GTK_CHECK_VERSION.
2961
ad75d77e
PE
29622013-05-08 Paul Eggert <eggert@cs.ucla.edu>
2963
2964 * xterm.h (GTK_PREREQ): New macro.
2965 All simple uses of GTK_MAJOR_VERSION and GTK_MINOR_VERSION changed
2966 to use this macro instead, for consistency and clarity.
2967
07525f77
EZ
29682013-05-08 Eli Zaretskii <eliz@gnu.org>
2969
2970 * xdisp.c (row_for_charpos_p): New function, with code of
2971 cursor_row_p, but accepts an additional argument CHARPOS instead
2972 of using a hardcoded PT.
2973 (cursor_row_p): Call row_for_charpos_p with 2nd argument PT.
2974 (row_containing_pos): Call row_for_charpos_p instead of partially
2975 doing the same. Fixes cursor positioning under longlines-mode
2976 when longlines-show-effect includes more than one newline, when
2977 moving the cursor vertically up.
2978
d901fc8d
JB
29792013-05-08 Juanma Barranquero <lekktu@gmail.com>
2980
2981 * makefile.w32-in (ACL_H): New macro.
2982 ($(BLD)/fileio.$(O)): Update dependencies.
2983
f269bc61
PE
29842013-05-07 Paul Eggert <eggert@cs.ucla.edu>
2985
e7b41c4c 2986 Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295)
ffdc270a
PE
2987 * Makefile.in (LIB_ACL): New macro.
2988 (LIBACL_LIBS): Remove.
2989 (LIBES): Use LIB_ACL, not LIBACL_LIBS.
2990 * fileio.c: Include <acl.h>.
2991 Use HAVE_ACL_SET_FILE rather than HAVE_POSIX_ACL.
2992 (ACL_NOT_WELL_SUPPORTED): Remove. All uses replaced by
2993 !acl_errno_valid.
2994 (Fcopy_file) [!WINDOWSNT]: Use qcopy_acl instead of rolling
2995 it ourselves.
2996
f269bc61
PE
2997 * unexelf.c: Don't assume ElfW (Half) fits in int.
2998 (entry_address, find_section, unexec): Use ptrdiff_t, not int,
2999 when dealing with ElfW (Half) values, since they can exceed 2**31
3000 on 64-bit OpenBSD hosts. Problem reported privately by Han Boetes.
3001 (entry_address): Omit unused NUM arg. All uses changed.
3002
a261c53e
JL
30032013-05-07 Juri Linkov <juri@jurta.org>
3004
3005 * callint.c (Fcall_interactively): Set `visargs[i]' for code 'n'
3006 to the string converted from number with `Fnumber_to_string'.
3007 (Bug#14254)
3008
2b66427d
PE
30092013-05-07 Paul Eggert <eggert@cs.ucla.edu>
3010
3011 * xfns.c (x_get_net_workarea): Define only if !GTK || GTK<3.4.
3012 This fixes a problem introduced by my previous change.
3013
15acfe41
GM
30142013-05-07 Glenn Morris <rgm@gnu.org>
3015
3016 * lread.c (readchar): Don't read from a dead buffer. (Bug#14280)
3017
5ea03bf5
JD
30182013-05-07 Jan Djärv <jan.h.d@swipnet.se>
3019
3020 * xfns.c: Move misplaced ifndef USE_GTK from previous checkin.
3021
e0c9d565
PE
30222013-05-07 Paul Eggert <eggert@cs.ucla.edu>
3023
3024 Static checking by GCC 4.8.0.
3025 * xfns.c (x_get_net_workarea, struct MonitorInfo, free_monitors)
3026 (x_get_monitor_for_frame, x_make_monitor_attribute_list)
3027 (x_get_monitor_attributes_fallback)
3028 (x_get_monitor_attributes_xinerama)
3029 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes):
3030 Define only if USE_GTK.
3031 (free_monitors): Define only if HAVE_XINERAMA || HAVE_XRANDR.
3032 (x_get_monitor_attributes_fallback): Omit unused locals.
3033 (x_get_monitor_attributes_xinerama, Fx_display_monitor_attributes_list):
3034 Use double, not float, to avoid mixed-mode floating point arithmetic.
3035
4e3f9230
YM
30362013-05-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3037 Jan Djärv <jan.h.d@swipnet.se>
3038
3039 * Makefile.in (XRANDR_LIBS, XRANDR_CFLAGS, XINERAMA_LIBS)
3040 (XINERAMA_CFLAGS): New macros.
3041 (ALL_CFLAGS, LIBES): Use them.
3042
3043 * xfns.c: Include <X11/extensions/Xrandr.h> if HAVE_XRANDR, and
3044 include <X11/extensions/Xinerama.h> if HAVE_XINERAMA.
3045 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): New variables.
3046 (syms_of_xfns): DEFSYM them.
3047 (struct MonitorInfo): New struct.
3048 (x_get_net_workarea, free_monitors, x_get_monitor_for_frame)
3049 (x_make_monitor_attribute_list, x_get_monitor_attributes_fallback)
3050 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes)
3051 (x_get_monitor_attributes_xinerama): New functions.
3052 (Fx_display_monitor_attributes_list): New primitive.
3053 (syms_of_xfns): Defsubr it.
3054
3055 * xterm.h (x_display_info): Add Xatom_net_workarea and
3056 Xatom_net_current_desktop.
3057
3058 * xterm.c (x_term_init): Initialize dpyinfo->Xatom_net_workarea
3059 and dpyinfo->Xatom_net_current_desktop.
3060
05839b6a
EZ
30612013-05-06 Eli Zaretskii <eliz@gnu.org>
3062
3063 * xdisp.c (pos_visible_p): Use the special code for finding the
3064 beginning of a display property or overlay for any "replacing"
3065 display property, not just for display strings. This solves
3066 incorrect reporting of position by posn-at-point. (Bug#14241)
3067
dc4a2ee0
PE
30682013-05-06 Paul Eggert <eggert@cs.ucla.edu>
3069
5ee94506
PE
3070 * unexelf.c: Fix some 32-bit integer problems, notably when debugging.
3071 Include <limits.h>, <stdbool.h>, <intprops.h>, <verify.h>.
3072 Verify that ElfW (Half) fits in int.
3073 (fatal): Use same signature as lisp.h.
3074 (UNEXELF_DEBUG): New macro, replacing DEBUG, so that people can
3075 configure and build with -DUNEXELF_DEBUG without worrying about
3076 other modules that use DEBUG.
3077 (DEBUG_LOG) [UNEXELF_DEBUG]: New macro. All debug code that prints
3078 possibly-wide integers now uses it instead of plain fprintf.
3079 (entry_address): New function, which avoids problems with 32-bit
3080 overflow on 64-bit hosts.
3081 (OLD_SECTION_H, NEW_SECTION_H, NEW_PROGRAM_H): Use it.
3082 (round_up): Don't assume the remainder fits in int.
3083 (find_section): Use bool for boolean. Simplify debug code.
3084 (unexec): Don't assume file sizes fit in int or size_t.
3085 Omit unnecessary trailing newline in 'fatal' format.
3086 Use strerror rather than outputting decimal error number.
3087 Remove unused code when emacs is not defined;
3088 this file relies on Emacs now.
3089 Don't assume e_phnum and e_shnum are positive.
3090
dc4a2ee0
PE
3091 * regex.c: Fix problems when DEBUG is defined.
3092 (extract_number, extract_number_and_incr): Define regardless of
3093 whether DEBUG is defined; that's simpler and makes the code less
3094 likely to go stale in the normal case when DEBUG is not defined.
3095 Return int rather than taking an int * arg. All callers changed.
3096 (DEBUG_PRINT1, DEBUG_PRINT2, DEBUG_PRINT3, DEBUG_PRINT4):
3097 Remove, replacing with ...
3098 (DEBUG_PRINT): New macro. All callers changed.
3099 (DEBUG_COMPILES_ARGUMENTS): New macro.
3100 (print_fastmap, print_partial_compiled_pattern) [DEBUG]:
3101 (print_compiled_pattern, print_double_string) [DEBUG]:
3102 Use prototype rather than old-style definition.
3103 (print_partial_compiled_pattern, print_compiled_pattern) [DEBUG]:
3104 (ENSURE_FAIL_STACK, PUSH_FAILURE_REG) [DEBUG]:
3105 (POP_FAILURE_REG_OR_COUNT, PUSH_FAILURE_POINT) [DEBUG]:
3106 (POP_FAILURE_POINT, re_match_2_internal) [DEBUG]:
3107 Don't assume ptrdiff_t, size_t, and long are the same width as int.
3108 (POINTER_TO_OFFSET): Return ptrdiff_t, not regoff_t.
3109 This matters only when DEBUG is defined.
3110
14c7ed05
EZ
31112013-05-05 Eli Zaretskii <eliz@gnu.org>
3112
3113 * xdisp.c (set_iterator_to_next): Set the
3114 ignore_overlay_strings_at_pos_p flag only if we are _really_
3115 iterating over an overlay string, as indicated by the
3116 current.overlay_string_index member. (Bug#14306)
3117
e6076b1b
JD
31182013-05-05 Jan Djärv <jan.h.d@swipnet.se>
3119
3120 * nsmenu.m (ns_update_menubar): Move initialization of submenuTitle
3121 to where it is used, to avoid autorelease issues (Bug#14050).
3122
cbee2131
PE
31232013-05-05 Paul Eggert <eggert@cs.ucla.edu>
3124
3125 `write-region-inhibit-fsync' defaults to noninteractive (Bug#14273).
3126 * fileio.c (syms_of_fileio): Implement this.
3127 * filelock.c (create_lock_file): If symbolic links don't work, so
3128 we use a regular file as a lock file, do not fsync the lock file;
3129 it's not needed.
3130
30c7e542
SM
31312013-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
3132
3133 * minibuf.c (Fread_minibuffer, Feval_minibuffer): Move to Elisp.
3134 (syms_of_minibuf): Adjust accodingly.
3135 * lread.c (Fread):
3136 * callint.c (Fcall_interactively): Adjust calls accordingly.
3137
5bebd186
EZ
31382013-05-04 Eli Zaretskii <eliz@gnu.org>
3139
3140 * dispextern.h (WINDOW_WANTS_HEADER_LINE_P): Verify that
30c7e542
SM
3141 w->contents is a buffer before computing everything else.
3142 Use parentheses to disambiguate last part of the condition.
5bebd186
EZ
3143
3144 * w32fns.c (w32_wnd_proc): Remove temporary code used to trap
3145 assertion violations. (Bug#14062)
3146
0fb0a4f3
DR
31472013-05-01 David Reitter <david.reitter@gmail.com>
3148
3149 * nsfns.m (ns_tooltip): Initialize.
3150
9e63b4a5
EZ
31512013-04-28 Eli Zaretskii <eliz@gnu.org>
3152
3153 * coding.c (decode_coding_gap): Don't remove the character before
3154 a newline unless it's a CR character. (Bug#14287)
3155
ad60824e
DN
31562013-04-28 Dan Nicolaescu <dann@gnu.org>
3157
3158 * dispextern.h (struct face): Move enum face_underline_type
3159 earlier so that bitfields can be in the same word.
3160
edbdcec0
JD
31612013-04-28 Jan Djärv <jan.h.d@swipnet.se>
3162
3163 * nsfns.m (handlePanelKeys): New function.
3164 (EmacsOpenPanel:performKeyEquivalent:)
3165 (EmacsSavePanel:performKeyEquivalent:): Call handlePanelKeys to handle
3166 arrows/function/control and copy/paste keys (Bug#14296).
3167
0208ede7
JL
31682013-04-27 Juri Linkov <juri@jurta.org>
3169
3170 * callint.c (Fcall_interactively): Call `Qread_number' for
3171 interactive code letter `n' instead of using duplicate code.
3172 (Bug#14254)
3173
b8dd59f7
PE
31742013-04-27 Paul Eggert <eggert@cs.ucla.edu>
3175
3176 * systime.h (make_timeval): Declare as 'const'.
3177
8bd722db
KH
31782013-04-27 Kenichi Handa <handa@gnu.org>
3179
3180 * font.c (font_open_entity): Always open a font of manageable
3181 size.
3182
13d0e56f 31832013-04-26 Paul Eggert <eggert@cs.ucla.edu>
cbee2131 3184
f780d632
PE
3185 Port better to AIX (Bug#14258).
3186 * lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too,
3187 to pacify AIX xlc.
3188
ec509856
KH
31892013-04-24 Kenichi Handa <handa@gnu.org>
3190
3191 * coding.c (decode_coding_iso_2022): When an invalid escape
3192 sequence is encountered, reset the invocation and designation
3193 status to the safest one.
3194
84fc48e5
PE
31952013-04-22 Paul Eggert <eggert@cs.ucla.edu>
3196
3197 * Makefile.in (bootstrap-clean): Remove stamp-h1 too.
3198 Without this fix, "make distclean" leaves stamp-h1 behind.
3199
806bda47
EC
32002013-04-20 Erik Charlebois <erikcharlebois@gmail.com>
3201
3202 * w32fns.c (w32_fullscreen_rect): New function to compute the
3203 window rectangle for the given fullscreen mode.
3204 (w32_wnd_proc): When in a fullscreen mode, WM_WINDOWPOSCHANGING no
3205 longer tunes the window size. This keeps the window's edges flush
3206 with the screen and allows the taskbar to hide itself in fullboth.
3207
3208 * w32term.c (w32fullscreen_hook): 'fullboth' now shows without
3209 window decorations and uses the entire screen.
3210
3211 * w32term.h (w32_fullscreen_rect) Add prototype.
3212 (struct w32_output): Replace normal_width, normal_height,
3213 normal_top, and normal_left members with a single normal_placement
3214 struct.
3215 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP):
3216 Remove macros.
3217 (FRAME_NORMAL_PLACEMENT): New macro.
3218
9cc2810b
JB
32192013-04-16 Juanma Barranquero <lekktu@gmail.com>
3220
3221 * minibuf.c (Ftest_completion): Silence compiler warning.
3222
fd16b54c
EZ
32232013-04-15 Eli Zaretskii <eliz@gnu.org>
3224
3225 * w32fns.c (w32_wnd_proc): Add more assertions to investigate
5fbcd237 3226 bug#14062.
fd16b54c
EZ
3227
3228 * frame.h (WINDOW_FRAME): Protect macro and its argument with
3229 parentheses.
3230
3231 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
3232 (CURRENT_HEADER_LINE_HEIGHT, WINDOW_WANTS_MODELINE_P)
3233 (WINDOW_WANTS_HEADER_LINE_P): Protect macro arguments with
3234 parentheses where appropriate.
3235
9e3379a0
PE
32362013-04-14 Paul Eggert <eggert@cs.ucla.edu>
3237
3238 * keyboard.c (timer_start_idle): Remove no-longer-used local.
3239
ddd6b685
EZ
32402013-04-14 Eli Zaretskii <eliz@gnu.org>
3241
3242 * buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>
3243 <left-fringe-width, right-fringe-width, fringes-outside-margins>:
3244 Mention in the doc string that setting these variables takes
3245 effect only after a call to set-window-buffer. (Bug#14200)
3246
29b79ba1
EZ
32472013-04-13 Eli Zaretskii <eliz@gnu.org>
3248
3249 * indent.c (Fvertical_motion): Don't consider display strings on
3250 overlay strings as display strings on the buffer position we
3251 started from. This prevents vertical cursor motion from jumping
3252 more than one line when there's an overlay string with a display
3253 property at end of line.
3254 Reported by Karl Chen <Karl.Chen@quarl.org> in
3255 http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00362.html.
3256
562c6ee9
SM
32572013-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
3258
3259 * window.c (select_window): `record_buffer' even if window is
3260 already selected (bug#14191).
3261
fcc1fe85
EZ
32622013-04-11 Eli Zaretskii <eliz@gnu.org>
3263
3264 * window.c (Fwindow_end): Test more flags, including the buffer's
3265 last_overlay_modified flag, to determine whether the window's
3266 display is really up-to-date. Prevents the function from
3267 returning a stale value. (Bug#14170)
3268 (Fwindow_line_height): Fix the test for up-to-date-ness of the
3269 current matrix.
3270
f009190a
EZ
32712013-04-10 Eli Zaretskii <eliz@gnu.org>
3272
3273 * frame.c (do_switch_frame): Mark the TTY frame we switch to as
562c6ee9
SM
3274 garbaged only if it is not already the top frame on its TTY.
3275 This prevents flickering due to constant redrawing of TTY frames when
f009190a
EZ
3276 there are GUI frames open in the same session. (Bug#13864)
3277
78ce603d
SM
32782013-04-10 Stefan Monnier <monnier@iro.umontreal.ca>
3279
3280 * keyboard.c (timer_start_idle): Call internal-timer-start-idle instead
3281 of marking the idle timers directly.
3282
a8036e40
SM
32832013-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
3284
3285 * minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash
3286 tables (bug#14054).
3287
7ffe7ef6
SM
32882013-04-08 Stefan Monnier <monnier@iro.umontreal.ca>
3289
3290 * window.c (select_window): Don't record_buffer while the invariant is
3291 temporarily broken (bug#14161).
3292
3293 * fns.c (Fdelq): Don't assume !NILP => CONSP.
3294
7d9f6883
EZ
32952013-04-07 Eli Zaretskii <eliz@gnu.org>
3296
3297 * fileio.c (ACL_NOT_WELL_SUPPORTED): Define macro for WINDOWSNT.
3298
5406cfd9
RF
32992013-04-07 Romain Francoise <romain@orebokech.com>
3300
3301 Ignore additional platform-specific ACL errors (Bug#13702).
3302 * fileio.c (ACL_NOT_WELL_SUPPORTED): New macro copied from gnulib.
3303 (Fcopy_file, Fset_file_acl) [HAVE_POSIX_ACL]: Use it.
3304
95c0e83b
JD
33052013-03-31 Jan Djärv <jan.h.d@swipnet.se>
3306
3307 * nsterm.m (ns_mouse_position): Use NS_FRAME_P instead of checking
3308 f->output_data.ns.
3309
876da980
PE
33102013-04-07 Paul Eggert <eggert@cs.ucla.edu>
3311
3312 Fix --enable-profiling bug introduced by 2013-02-25 change (Bug#13783).
3313 This bug was introduced by my 2013-02-25 change that simplified
3314 data_start configuration. Without this change, on GNU/Linux
3315 an Emacs configured with --enable-profiling fails immediately
3316 due to a profiler signal.
3317 * Makefile.in: Compile with $(PROFILING_CFLAGS), but do not link
3318 with these flags. On platforms where special flags are needed
3319 when linking temacs, the flags are now in LD_SWITCH_SYSTEM_TEMACS.
3320 (ALL_CFLAGS): Remove $(PROFILING_CFLAGS).
3321 (.c.o, .m.o): Compile with $(PROFILING_CFLAGS).
3322
7452b7bd
DA
33232013-04-07 Dmitry Antipov <dmantipov@yandex.ru>
3324
3325 Get rid of some platform-specific functions examining window
3326 system and its capabilities. This is a partial rework of the
3327 2013-04-05 change.
3328 * lisp.h (have_menus_p): Remove prototype. This function is
3329 replaced with platform-independent window_system_available.
3330 (check_window_system): Move to...
3331 * frame.h (decode_window_system_frame, window_system_available):
3332 ...here, add new prototypes.
3333 * frame.c (window_system_available, decode_window_system_frame):
3334 New functions.
3335 (check_window_system): Platform-independent now.
3336 * xterm.h (x_in_use): Remove declaration.
3337 (check_x_frame):
3338 * w32term.h (check_x_frame):
3339 * nsterm.h (check_x_frame): Remove prototypes. This function
3340 is replaced with platform-independent decode_window_system_frame.
3341 * msdos.c (have_menus_p): Remove.
3342 * nsfns.m (check_window_system, have_menus_p, check_ns_frame):
3343 Remove platform-specific functions. Use check_window_system,
3344 decode_window_system_frame and check_ns_display_info where
3345 appropriate. Minor style and comment tweaks.
3346 * w32fns.c (w32_in_use, check_window_system, have_menus_p)
3347 (check_x_frame): Likewise.
3348 * xfns.c (x_in_use, check_window_system, have_menus_p, check_x_frame):
3349 Likewise.
3350 * fileio.c, fns.c, font.c, fontset.c, image.c, menu.c, nsmenu.m:
3351 * nsselect.m, nsterm.m, w32font.c, w32menu.c, xfaces.c, xgselect.c:
3352 * xmenu.c, xselect.c: All related users changed.
3353
251e9147
KH
33542013-04-03 Kenichi Handa <handa@gnu.org>
3355
3356 The following changes is to optimize the code for reading UTF-8
3357 files.
3358
562c6ee9 3359 * coding.c (check_ascii): Rename from detect_ascii. Return value
251e9147
KH
3360 changed. Check EOL format. Do not call adjust_coding_eol_type
3361 here.
3362 (check_utf_8): New function.
3363 (adjust_coding_eol_type): Do nothing if already adjusted.
3364 (detect_coding): Compare the return value of check_ascii with
3365 coding->src_bytes. Call adjust_coding_eol_type if necessary.
3366 (decode_coding_gap): Optimize for valid UTF-8.
3367
8bc369d4
KH
33682013-03-21 Kenichi Handa <handa@gnu.org>
3369
3370 * coding.c (syms_of_coding): Cancel previous change.
3371
3372 * insdel.c (insert_from_gap): Fix previous change.
3373
73931ad1
DA
33742013-04-05 Dmitry Antipov <dmantipov@yandex.ru>
3375
3376 Consistently use platform-specific function to detect window system.
3377 * lisp.h (check_window_system): New prototype. This function is
3378 going to replace check_x, check_w32 and check_ns.
3379 (have_menus_p): Mention msdos.c in comment.
3380 * fontset.c (check_window_system_func): Remove. Adjust all users.
3381 * fontset.h (check_window_system_func): Remove prototype.
3382 * nsterm.h (check_ns):
3383 * xterm.h (check_x):
3384 * w32term.h (check_w32): Likewise.
3385 * menu.c (Fx_popup_menu): Use check_window_system.
3386 * msdos.c (check_window_system): Define for MS-DOS.
3387 * nsfns.m (check_window_system): Define for NS. Adjust all users.
3388 * w32fns.c (check_window_system): Likewise for MS-Windows.
3389 * xfns.c (check_window_system): Likewise for X.
3390 * font.c, frame.c, nsmenu.m, nsselect.m, nsterm.m, w32menu.c:
3391 * xfaces.c, xmenu.c: Use check_window_system where appropriate.
3392
7216e43b
PE
33932013-04-02 Paul Eggert <eggert@cs.ucla.edu>
3394
3395 Prefer < to > in range checks such as 0 <= i && i < N.
3396 This makes it easier to visualize quantities on a number line.
3397 This patch doesn't apply to all such range checks,
3398 only to the range checks affected by the 2013-03-24 change.
3399 This patch reverts most of the 2013-03-24 change.
3400 * alloc.c (xpalloc, Fgarbage_collect):
3401 * ccl.c (ccl_driver, resolve_symbol_ccl_program):
3402 * character.c (string_escape_byte8):
3403 * charset.c (read_hex):
3404 * data.c (cons_to_unsigned):
3405 * dispnew.c (update_frame_1):
3406 * doc.c (Fsubstitute_command_keys):
3407 * doprnt.c (doprnt):
3408 * editfns.c (hi_time, decode_time_components):
3409 * fileio.c (file_offset):
3410 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
3411 * font.c (font_intern_prop):
3412 * frame.c (x_set_alpha):
3413 * gtkutil.c (get_utf8_string):
3414 * indent.c (check_display_width):
3415 * keymap.c (Fkey_description):
3416 * lisp.h (FIXNUM_OVERFLOW_P, vcopy):
3417 * lread.c (read1):
3418 * minibuf.c (read_minibuf_noninteractive):
3419 * process.c (wait_reading_process_output):
3420 * search.c (Freplace_match):
3421 * window.c (get_phys_cursor_glyph):
3422 * xdisp.c (redisplay_internal):
3423 * xsmfns.c (smc_save_yourself_CB):
3424 Prefer < to > for range checks.
3425 * dispnew.c (sit_for): Don't mishandle NaNs.
3426 This fixes a bug introduced in the 2013-03-24 change.
3427 * editfns.c (decode_time_components): Don't hoist comparison.
3428 This fixes another bug introduced in the 2013-03-24 change.
3429
92759988
DA
34302013-03-31 Dmitry Antipov <dmantipov@yandex.ru>
3431
3432 * frame.h (struct frame): Drop scroll_bottom_vpos
3433 member becaue all real users are dead long ago.
3434 (FRAME_SCROLL_BOTTOM_VPOS): Remove.
3435 * xdisp.c (redisplay_internal): Adjust user.
3436
9a1971bb
GM
34372013-03-30 Darren Ho <darren.hoo@gmail.com> (tiny change)
3438
f38ab167
JD
3439 * nsmenu.m (showAtX:Y:for:): setLevel to
3440 NSPopUpMenuWindowLevel (Bug#13998).
3441
6d01f1fe
JD
34422013-03-30 Jan Djärv <jan.h.d@swipnet.se>
3443
3444 * nsterm.h (ns_get_pending_menu_title, ns_check_menu_open)
3445 (ns_check_pending_open_menu): Declare.
3446
3447 * nsmenu.m (ns_update_menubar): Correct NSTRACE.
3448 (x_activate_menubar): Update the menu with title that matches
3449 ns_get_pending_menu_title, and call
3450 ns_check_pending_openmenu (Bug#12698).
3451 (menuWillOpen:): New method.
3452 (menuNeedsUpdate:): Add check for ! COCOA || OSX < 10.5 (Bug#12698).
3453
3454 * nsterm.m (menu_will_open_state, menu_mouse_point)
3455 (menu_pending_title): New varaibles.
3456 (ns_get_pending_menu_title, ns_check_menu_open)
3457 (ns_check_pending_open_menu): New functions.
3458
781f4782
DA
34592013-03-29 Dmitry Antipov <dmantipov@yandex.ru>
3460
3461 * indent.c (current_column_bol_cache): Remove leftover which is not
3462 used in Fmove_to_column any more.
3463 (current_column, scan_for_column): Adjust users.
3464 * keyboard.c (last_point_position_buffer, last_point_position_window):
3465 Remove leftovers which are not used for recording undo any more.
3466 (command_loop_1, syms_of_keyboard): Adjust users.
3467 * xdisp.c (last_max_ascent): Remove leftover which is not used in
3468 redisplay_window any more.
3469 (move_it_to): Adjust user.
3470
1921c31b
JB
34712013-03-29 Juanma Barranquero <lekktu@gmail.com>
3472
3473 * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/filelock.$(O)):
3474 Update dependencies.
3475
717b8bcd
SM
34762013-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
3477
3478 * lisp.h (save_type, XSAVE_POINTER, set_save_pointer, XSAVE_INTEGER)
3479 (set_save_integer, XSAVE_OBJECT, XSAVE_VALUE): Move to avoid
3480 forward references.
3481
e74aeda8
DA
34822013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
3483
3484 * window.h (struct window): Replace hchild, vchild and buffer slots
3485 with the only contents slot. This is possible because each valid
3486 window may have either the child window (in vertical or horizontal
3487 combination) or buffer to display (for the leaf window). Using that,
3488 a lof of operations to traverse and/or change window hierarchies may
3489 be simplified. New member horizontal is used to distinguish between
3490 horizontal and vertical combinations of internal windows.
3491 (WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P)
3492 (WINDOW_VERTICAL_COMBINATION_P): New macros.
3493 (WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes.
3494 * window.c (wset_hchild, wset_vchild): Remove. Adjust all users.
3495 Use contents slot, not buffer, where appropriate.
3496 (wset_combination): New function.
3497 (wset_buffer): Add eassert.
3498 (Fframe_first_window): Simplify the loop reaching first window.
3499 (Fwindow_buffer): Use WINDOW_LEAF_P.
3500 (Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P.
3501 (Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P.
3502 (unshow_buffer): Convert initial debugging check to eassert.
3503 (replace_window, recombine_windows, Fdelete_other_windows_internal)
3504 (make_parent_window, window_resize_check, window_resize_apply)
3505 (resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal)
3506 (Fset_window_configuration, delete_all_child_windows, save_window_save):
3507 Adjust to match struct window changes.
3508 (window_loop): Check for broken markers in CHECK_ALL_WINDOWS.
3509 (mark_window_cursors_off, count_windows, get_leaf_windows)
3510 (foreach_window_1): Simplify the loop.
3511 * alloc.c (mark_object): Do not check for the leaf window because
3512 internal windows has no glyph matrices anyway.
3513 * dispnew.c (clear_window_matrices, showing_window_margins_p)
3514 (allocate_matrices_for_window_redisplay, fake_current_matrices)
3515 (allocate_matrices_for_frame_redisplay, free_window_matrices)
3516 (build_frame_matrix_from_window_tree, mirror_make_current)
3517 (frame_row_to_window, mirror_line_dance, check_window_matrix_pointers)
3518 (update_window_tree, set_window_update_flags): Simplify the loop.
3519 (sync_window_with_frame_matrix_rows): Enforce live window.
3520 Use contents slot, not buffer, where appropriate.
3521 * frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P
3522 and WINDOW_HORIZONTAL_COMBINATION_P.
3523 (make_frame_visible_1): Simplify the loop.
3524 Use contents slot, not buffer, where appropriate.
3525 * xdisp.c (hscroll_window_tree, mark_window_display_accurate)
3526 (redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree)
3527 (expose_window_tree): Likewise.
3528 Use contents slot, not buffer, where appropriate.
3529 * textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW
3530 to avoid deleted windows. Use contents slot instead of buffer.
3531 * buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c:
3532 * indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c:
3533 * nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c:
3534 * xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate.
3535
121ab1cd
EZ
35362013-03-28 Eli Zaretskii <eliz@gnu.org>
3537
ef454cf7
EZ
3538 * w32fns.c (w32_wnd_proc) [ENABLE_CHECKING]: Add code to help
3539 identify the reasons for assertion violations in bug#14062 and
3540 similar ones.
21e930f8
EZ
3541 (Fx_show_tip): Fix compilation error under
3542 "--enable-check-lisp-object-type". (Bug#14073)
ef454cf7 3543
121ab1cd
EZ
3544 * image.c (g_error_free) [WINDOWSNT]: Add DEF_IMGLIB_FN.
3545 Reported by <rzl24ozi@gmail.com>.
3546
5c89ca24
DA
35472013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
3548
3549 * xdisp.c (with_echo_area_buffer_unwind_data): Save window
3550 start marker...
562c6ee9
SM
3551 (unwind_with_echo_area_buffer): ...to restore it here.
3552 This is needed to ensure that...
5c89ca24
DA
3553 (redisplay_window): ...both window markers are valid here,
3554 which is verified by eassert.
3555 * editfns.c (save_excursion_save): Do not assume that
3556 selected_window always displays the buffer.
c7f53895
DA
3557 * buffer.c (Fbuffer_swap_text): Adjust window start markers.
3558 Fix comment.
5c89ca24 3559
f557c1b1
SM
35602013-03-27 Stefan Monnier <monnier@iro.umontreal.ca>
3561
3562 * casetab.c (init_casetab_once): Don't abuse the ascii eqv table for
3563 the upcase table.
3564
40693bba 35652013-03-27 rzl24ozi <rzl24ozi@gmail.com> (tiny changes)
3566
3567 * image.c [WINDOWSNT]: Fix calls to DEF_IMGLIB_FN for SVG function.
3568
c86f791f
EZ
35692013-03-27 Eli Zaretskii <eliz@gnu.org>
3570
3571 * w32proc.c (IsValidLocale) [__GNUC__]: Don't declare prototype,
3572 since MinGW's w32api headers do. This avoids compiler warnings.
3573
3574 * w32.c (FSCTL_GET_REPARSE_POINT) [_MSC_VER || _W64]: Don't define
3575 if already defined.
3576
c6e72e17
EZ
35772013-03-26 Eli Zaretskii <eliz@gnu.org>
3578
3579 * w32.c (_REPARSE_DATA_BUFFER): Condition by _MSVC and _W64.
3580
54e95010
JD
35812013-03-26 Jan Djärv <jan.h.d@swipnet.se>
3582
3583 * gtkutil.c (style_changed_cb): Check if frame is live and an
3584 X frame (Bug#14038).
3585
b88b62de
EZ
35862013-03-26 Eli Zaretskii <eliz@gnu.org>
3587
a18d7de6
EZ
3588 * w32.c (_PROCESS_MEMORY_COUNTERS_EX) [_WIN32_WINNT < 0x0500]:
3589 Define only for _WIN32_WINNT less than 0x0500.
da9dcbb8
EZ
3590 (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT) [!_W64]: Don't define for
3591 MinGW64.
8f5e14c8
EZ
3592 Move inclusion of time.h before sys/time.h, so that MinGW64 could
3593 see its own definitions of 'struct timeval' and 'struct timezone'.
a18d7de6 3594
b88b62de
EZ
3595 Fix incompatibilities between MinGW.org and MinGW64 headers.
3596 * w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined.
3597
3598 * w32.c (REPARSE_DATA_BUFFER): Guard with
3599 MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined.
3600
c074e458
JD
36012013-03-25 Jan Djärv <jan.h.d@swipnet.se>
3602
3603 * xterm.c: Include X11/XKBlib.h
3604 (XTring_bell): Use XkbBell if HAVE_XKB (Bug#14041).
3605
908589fd
AS
36062013-03-24 Andreas Schwab <schwab@linux-m68k.org>
3607
3608 * alloc.c (xpalloc, Fgarbage_collect): Reorder conditions that are
3609 written backwards.
3610 * blockinput.h (input_blocked_p): Likewise.
3611 * bytecode.c (exec_byte_code): Likewise.
3612 * callproc.c (call_process_kill, call_process_cleanup)
3613 (Fcall_process): Likewise.
3614 * ccl.c (ccl_driver, resolve_symbol_ccl_program)
3615 (Fccl_execute_on_string): Likewise.
3616 * character.c (string_escape_byte8): Likewise.
3617 * charset.c (read_hex): Likewise.
3618 * cm.c (calccost): Likewise.
3619 * data.c (cons_to_unsigned): Likewise.
3620 * dired.c (directory_files_internal, file_name_completion):
3621 Likewise.
3622 * dispnew.c (scrolling_window, update_frame_1, Fsleep_for)
3623 (sit_for): Likewise.
3624 * doc.c (Fsubstitute_command_keys): Likewise.
3625 * doprnt.c (doprnt): Likewise.
3626 * editfns.c (hi_time, decode_time_components, Fformat): Likewise.
3627 * emacsgtkfixed.c: Likewise.
3628 * fileio.c (file_offset, Fwrite_region): Likewise.
3629 * floatfns.c (Fexpt, fmod_float): Likewise.
3630 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
3631 Likewise.
3632 * font.c (font_intern_prop): Likewise.
3633 * frame.c (x_set_alpha): Likewise.
3634 * gtkutil.c (get_utf8_string): Likewise.
3635 * indent.c (check_display_width): Likewise.
3636 * intervals.c (create_root_interval, rotate_right, rotate_left)
3637 (split_interval_right, split_interval_left)
3638 (adjust_intervals_for_insertion, delete_node)
3639 (interval_deletion_adjustment, adjust_intervals_for_deletion)
3640 (merge_interval_right, merge_interval_left, copy_intervals)
3641 (set_intervals_multibyte_1): Likewise.
3642 * keyboard.c (gobble_input, append_tool_bar_item): Likewise.
3643 * keymap.c (Fkey_description): Likewise.
3644 * lisp.h (FIXNUM_OVERFLOW_P, vcopy): Likewise.
3645 * lread.c (openp, read_integer, read1, string_to_number):
3646 Likewise.
3647 * menu.c (ensure_menu_items): Likewise.
3648 * minibuf.c (read_minibuf_noninteractive): Likewise.
3649 * print.c (printchar, strout): Likewise.
3650 * process.c (create_process, Faccept_process_output)
3651 (wait_reading_process_output, read_process_output, send_process)
3652 (wait_reading_process_output): Likewise.
3653 * profiler.c (make_log, handle_profiler_signal): Likewise.
3654 * regex.c (re_exec): Likewise.
3655 * regex.h: Likewise.
3656 * search.c (looking_at_1, Freplace_match): Likewise.
3657 * sysdep.c (get_child_status, procfs_ttyname)
3658 (procfs_get_total_memory): Likewise.
3659 * systime.h (EMACS_TIME_VALID_P): Likewise.
3660 * term.c (dissociate_if_controlling_tty): Likewise.
3661 * window.c (get_phys_cursor_glyph): Likewise.
3662 * xdisp.c (init_iterator, redisplay_internal, redisplay_window)
3663 (try_window_reusing_current_matrix, try_window_id, pint2hrstr):
3664 Likewise.
3665 * xfns.c (Fx_window_property): Likewise.
3666 * xmenu.c (set_frame_menubar): Likewise.
3667 * xselect.c (x_get_window_property, x_handle_dnd_message):
3668 Likewise.
3669 * xsmfns.c (smc_save_yourself_CB): Likewise.
3670 * xterm.c (x_scroll_bar_set_handle): Likewise.
3671
2bf7d27a
DA
36722013-03-24 Dmitry Antipov <dmantipov@yandex.ru>
3673
3674 * xfaces.c (Finternal_face_x_get_resource): Allow 3rd (frame) argument
3675 to be optional or nil. Adjust comment and convert it to docstring.
3676 * xselect.c (Fx_send_client_event): Rename to Fx_send_client_message.
3677 * frame.c (display_x_get_resource, Fx_get_resource): Break long line.
3678
a9ebfa0b
PE
36792013-03-24 Paul Eggert <eggert@cs.ucla.edu>
3680
3681 Static checking by GCC 4.8-20130319.
3682 * image.c (gif_load): Assume pass < 3 to pacify GCC.
3683 * process.c (Fset_process_datagram_address)
3684 (Fmake_network_process): Check get_lisp_to_sockaddr_size return value.
3685 * xdisp.c (get_char_face_and_encoding):
3686 (get_glyph_face_and_encoding): Ensure that *CHAR2B is initialized.
3687 (get_glyph_face_and_encoding): Prepare face before possibly using it.
3688 (get_per_char_metric): Don't use CHAR2B if it might not be initialized.
3689
4f3576ee
KB
36902013-03-24 Ken Brown <kbrown@cornell.edu>
3691
789b5e9a
KB
3692 * w32fns.c (emacs_abort) [CYGWIN]: Define `_open' as a macro to
3693 fix compilation on 64-bit Cygwin, where underscores are not
3694 automatically prepended.
3695
4f3576ee
KB
3696 * w32term.c (w32_initialize): Silence compiler warning.
3697
b5b7745f
EZ
36982013-03-23 Eli Zaretskii <eliz@gnu.org>
3699
cdc0d0bd
EZ
3700 * w32term.c (w32fullscreen_hook): Use FRAME_NORMAL_WIDTH,
3701 FRAME_NORMAL_HEIGHT, and FRAME_PREV_FSMODE, instead of static
562c6ee9
SM
3702 variables, to save and restore frame dimensions.
3703 Use FRAME_NORMAL_LEFT and FRAME_NORMAL_TOP to restore frame position
3704 after returning from a 'fullscreen' configuration.
3705 use SendMessage instead of PostMessage to send the SC_RESTORE message,
cdc0d0bd
EZ
3706 to avoid races between the main thread and the input thread.
3707
3708 * w32term.h (struct w32_output): New members normal_width,
3709 normal_height, normal_top, normal_left, and prev_fsmode.
3710 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP)
3711 (FRAME_NORMAL_LEFT, FRAME_PREV_FSMODE): New macros to access these
3712 members of a frame.
3713
b5b7745f
EZ
3714 * w32term.c (w32fullscreen_hook): Record last value of the frame's
3715 'fullscreen' parameter. Always record previous width and height
3716 of the frame, except when switching out of maximized modes, so
3717 that they could be restored correctly, instead of resetting to the
3718 default frame dimensions. Send SC_RESTORE command to the frame,
3719 unless we are going to send SC_MAXIMIZE, to restore the frame
3720 resize hints in the mouse pointer shown by the window manager.
3721 (Bug#14032)
3722
3723 * frame.c (get_frame_param): Now extern for WINDOWSNT as well.
3724
3725 * lisp.h (get_frame_param): Adjust conditions for prototype
3726 declaration.
3727
a3454eed
KB
37282013-03-22 Ken Brown <kbrown@cornell.edu>
3729
3730 * unexcw.c: Drop unneeded inclusion of w32common.h.
3731 (report_sheap_usage): Declare.
3732 (read_exe_header): Add magic numbers for x86_64.
3733 (fixup_executable): Fix printf format specifier for unsigned long
3734 argument.
3735
5a49b79c
DA
37362013-03-22 Dmitry Antipov <dmantipov@yandex.ru>
3737
3738 * frame.h (struct frame): Put menu_bar_window under #ifdef
3739 because this member is not needed when X toolkit is in use.
3740 (fset_menu_bar_window):
3741 * dispnew.c (clear_current_matrices, clear_desired_matrices)
3742 (free_glyphs, update_frame):
3743 * xdisp.c (expose_frame): Likewise.
3744 (display_menu_bar): Likewise. Remove redundant eassert.
3745 * window.h (WINDOW_MENU_BAR_P): Always define to 0 if X
3746 toolkit is in use.
3747
d6723bf7
PE
37482013-03-21 Paul Eggert <eggert@cs.ucla.edu>
3749
7b1123d8
PE
3750 Use functions and constants to manipulate Lisp_Save_Value objects.
3751 This replaces code that used macros and strings and token-pasting.
3752 The change makes the C source a bit easier to follow,
3753 and shrinks the Emacs executable a bit.
3754 * alloc.c: Verify some properties of Lisp_Save_Value's representation.
3755 (make_save_value): Change 1st arg from string to enum. All callers
3756 changed.
3757 (INTX): Remove.
3758 (mark_object): Use if, not #if, for GC_MARK_STACK.
3759 * lisp.h (SAVE_VALUEP, XSAVE_VALUE, XSAVE_POINTER, XSAVE_INTEGER)
3760 (XSAVE_OBJECT): Now functions, not macros.
3761 (STRING_BYTES_BOUND): Now just a macro, not a constant too;
3762 the constant was never used.
3763 (SAVE_SLOT_BITS, SAVE_VALUE_SLOTS, SAVE_TYPE_BITS, SAVE_TYPE_INT_INT)
3764 (SAVE_TYPE_INT_INT_INT, SAVE_TYPE_OBJ_OBJ, SAVE_TYPE_OBJ_OBJ_OBJ)
3765 (SAVE_TYPE_OBJ_OBJ_OBJ_OBJ, SAVE_TYPE_PTR_INT, SAVE_TYPE_PTR_OBJ)
3766 (SAVE_TYPE_PTR_PTR, SAVE_TYPE_PTR_PTR_OBJ, SAVE_TYPE_MEMORY):
3767 New constants.
3768 (struct Lisp_Save_Value): Replace members area, type0, type1, type2,
3769 type3 with a single member save_type. All uses changed.
3770 (save_type, set_save_pointer, set_save_integer): New functions.
3771 * print.c (PRINTX): Remove.
3772
d6723bf7
PE
3773 * alloc.c: Remove redundant static declarations.
3774
5f24fa51
DA
37752013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
3776
3777 * window.h (struct window): Convert left_col, top_line, total_lines
3778 and total_cols from Lisp_Objects to integers. Adjust comments.
3779 (wset_left_col, wset_top_line, wset_total_cols, wset_total_lines):
3780 Remove.
3781 (WINDOW_TOTAL_COLS, WINDOW_TOTAL_LINES, WINDOW_LEFT_EDGE_COL)
3782 (WINDOW_TOP_EDGE_LINE): Drop Lisp_Object to integer conversion.
3783 * dispnew.c, frame.c, w32fns.c, window.c, xdisp.c, xfns.c:
3784 Adjust users where appropriate.
3785
42143acd
DA
37862013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
3787
3788 * frame.h (struct frame): Drop resx and resy because the same data is
3789 available from window system-specific output context. Adjust users.
562c6ee9
SM
3790 (default_pixels_per_inch_x, default_pixels_per_inch_y):
3791 New functions to provide defaults when no window system available.
42143acd 3792 (FRAME_RES_X, FRAME_RES_Y): New macros.
562c6ee9 3793 (NUMVAL): Move from xdisp.c.
42143acd
DA
3794 * font.c (font_pixel_size, font_find_for_lface, font_open_for_lface)
3795 (Ffont_face_attributes, Fopen_font):
3796 * image.c (gs_load):
3797 * w32font.c (fill_in_logfont):
3798 * xdisp.c (calc_pixel_width_or_height):
3799 * xfaces.c (Fx_family_fonts, set_lface_from_font): Use them.
3800 * xsettings.c (apply_xft_settings): Drop frame loop and adjust comment.
3801
c0a17406
KH
38022013-03-20 Kenichi Handa <handa@gnu.org>
3803
3804 * coding.c (syms_of_coding): Initialize disable_ascii_optimization
3805 to 1 (temporary workaround until a bug related to ASCII
3806 optimization is fixed).
3807
095d384d
DA
38082013-03-19 Dmitry Antipov <dmantipov@yandex.ru>
3809
3810 * window.c (Fwindow_combination_limit, Fset_window_combination_limit):
3811 Signal error if window is not internal. Adjust docstring.
3812 (delete_all_child_windows): Use combination_limit to save the buffer.
3813 (Fset_window_configuration): Adjust accordingly.
cf4bb06d
DA
3814 * print.c (syms_of_print): Initialize debugging output not here...
3815 (init_print_once): ...but in a new function here.
3816 * lisp.h (init_print_once): Add prototype.
3817 * emacs.c (main): Add call to init_print_once. Adjust comments.
095d384d 3818
748fa866
DA
38192013-03-18 Dmitry Antipov <dmantipov@yandex.ru>
3820
3821 * window.c (window_resize_check, window_resize_apply)
3822 (window_from_coordinates, recombine_windows, set_window_buffer)
3823 (make_parent_window, Fwindow_resize_apply, resize_frame_windows)
3824 (Fsplit_window_internal, Fdelete_window_internal)
3825 (freeze_window_starts): Use bool for booleans.
3826 * window.h (window_frame_coordinates, resize_frame_windows)
3827 (freeze_window_starts, set_window_buffer): Adjust prototypes.
3828
81519fd2
SM
38292013-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
3830
3831 * dispnew.c (bitch_at_user): Use `user-error'.
3832
6db423a9
KB
38332013-03-17 Ken Brown <kbrown@cornell.edu>
3834
3835 * dispextern.h (RGB_PIXEL_COLOR): Move here from image.c. Use it
3836 as return type of image_background. (Bug#13981)
3837 * image.c (RGB_PIXEL_COLOR): Move to dispextern.h.
3838
8f2906f5
JD
38392013-03-16 Jan Djärv <jan.h.d@swipnet.se>
3840
960ce480 3841 * nsterm.m (updateFrameSize:): Change resize increments if needed.
6615748a 3842 (ns_select): Don't return with result uninitialized.
960ce480 3843
8f2906f5
JD
3844 * nsterm.h (EmacsSavePanel, EmacsOpenPanel): Add getFilename
3845 and getDirectory.
3846
81519fd2
SM
3847 * nsfns.m (ns_filename_from_panel, ns_directory_from_panel):
3848 New functions.
8f2906f5
JD
3849 (Fns_read_file_name): ret is BOOL. If ! dir_only_p, don't choose
3850 directories. If filename is nil, get directory name (Bug#13932).
3851 Use getFilename and getDirectory.
3852 (getFilename, getDirectory): New methods for EmacsSavePanel and
3853 EmacsOpenPanel.
3854 (ok:): In EmacsOpenPanel, if we can't choose directories, just return.
3855
cded56c1
PE
38562013-03-15 Paul Eggert <eggert@cs.ucla.edu>
3857
3858 * coding.c (decode_coding_gap): Fix typo caught by static checking.
3859
251e9147 38602013-03-15 Kenichi Handa <handa@gnu.org>
8a44e6d1
KH
3861
3862 * insdel.c (insert_from_gap): New arg text_at_gap_tail.
3863 (adjust_after_replace): Make it back to static. Delete the third
3864 arg text_at_gap_tail. Cancel the code for handling it.
3865
3866 * coding.h (struct coding_system): New member eol_seen.
3867
3868 * coding.c (detect_ascii): New function.
3869 (detect_coding): Set coding->head_ascii and coding->eol_seen only
3870 when the source bytes are actually scanned. On detecting for
3871 coding_category_utf_8_auto, call detect_ascii instead of scanning
3872 source bytes directly.
3873 (produce_chars): Call insert_from_gap with the new arg 0.
3874 (encode_coding): Likewise.
3875 (decode_coding_gap): Control ASCII optimization by the variable
3876 disable_ascii_optimization instead of #ifndef .. #endif.
3877 Deccode EOL format according to coding->eol_seen.
3878 (syms_of_coding): Declare disable-ascii-optimization as a Lisp
3879 variable.
3880
8a44e6d1
KH
3881 * lisp.h (adjust_after_replace): Cancel externing it.
3882 (insert_from_gap): Adjust prototype.
3883
5f795e34
EZ
38842013-03-15 Eli Zaretskii <eliz@gnu.org>
3885
3886 * w32term.c (w32fullscreen_hook): Swap FULLSCREEN_BOTH and
3887 FULLSCREEN_MAXIMIZED. (Bug#13935)
3888
f258b4be
DA
38892013-03-15 Dmitry Antipov <dmantipov@yandex.ru>
3890
3891 * region-cache.c (find_cache_boundary, move_cache_gap)
3892 (insert_cache_boundary, delete_cache_boundaries, set_cache_region):
3893 Simplify debugging check and convert to eassert. Adjust comment.
3894 (pp_cache): Put under ENABLE_CHECKING.
3895
a5cc4dde
EZ
38962013-03-14 Eli Zaretskii <eliz@gnu.org>
3897
3898 * w32term.c (w32_read_socket) <WM_WINDOWPOSCHANGED>: Remove old
3899 and incorrect code. Treat WM_WINDOWPOSCHANGED like WM_ACTIVATE
3900 and WM_ACTIVATEAPP.
3901 (w32fullscreen_hook): If the frame is visible, reset
3902 f->want_fullscreen flag after changing the frame size. If the
3903 frame is not visible, set f->want_fullscreen to FULLSCREEN_WAIT.
3904 (Bug#13953)
3905
3fc5e44a
DC
39062013-03-13 Daniel Colascione <dancol@dancol.org>
3907
3908 * emacs.c (main): Call syms_of_cygw32 on CYGWIN non-NTGUI builds
3909 too so that these builds can use Cygwin's file conversion
3910 functions. (We've been building and linking cygw32.o all along
3911 and just not using it.)
3912
47d7532e
PE
39132013-03-13 Paul Eggert <eggert@cs.ucla.edu>
3914
3915 File synchronization fixes (Bug#13944).
3916 * Makefile.in (LIB_FDATASYNC): New macro.
3917 (LIBES): Use it.
3918 * conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
3919 * fileio.c (Fwrite_region, write_region_inhibit_fsync):
3920 Don't worry about HAVE_FSYNC, since a substitute fsync is
3921 available if the system lacks one.
3922 (Fwrite_regin): Retry fsync if interrupted.
3923
c7ffccaf
EZ
39242013-03-13 Eli Zaretskii <eliz@gnu.org>
3925
4e2df81d 3926 * w32term.c (w32_read_socket): If the Emacs frame is being
c7ffccaf
EZ
3927 activated, call w32fullscreen_hook, to make sure the new frame
3928 dimensions are in effect. (Bug#13937)
3929
8a7debc1
DA
39302013-03-13 Dmitry Antipov <dmantipov@yandex.ru>
3931
3932 * xdisp.c (init_iterator): Simplify because both character and byte
3933 positions are either specified or -1. Add eassert. Adjust comment.
ffcd945e
DA
3934 * window.c (Fscroll_other_window): Use SET_PT_BOTH because both
3935 character and byte positions can be obtained from marker.
8a7debc1 3936
7fd8c501
PE
39372013-03-13 Paul Eggert <eggert@cs.ucla.edu>
3938
d9df6f40
PE
3939 Static checking by Sun C 5.12.
3940 * alloc.c (buffer_memory_full) [REL_ALLOC]:
3941 * bytecode.c (exec_byte_code):
3942 * dispnew.c (init_display):
3943 * eval.c (error):
3944 * fileio.c (Fsubstitute_in_file_name):
3945 * keyboard.c (Fevent_convert_list):
3946 * keymap.c (Fsingle_key_description):
3947 * term.c (maybe_fatal, fatal):
3948 * xfns.c (Fx_display_backing_store, Fx_display_visual_class):
3949 * xsmfns.c (Fhandle_save_session):
3950 Omit unreachable code.
3951 * keymap.c (map_keymap_char_table_item): Cast void * to
3952 a function pointer type; the C Standard requires this.
3953
7fd8c501
PE
3954 * sysdep.c: Remove a use of BSD_SYSTEM, which I'm trying to phase out.
3955 Include <sys/param.h> unconditionally, as that works elsewhere and
3956 is simpler here. Include <sys/sysctl.h> if DARWIN_OS ||
3957 __FreeBSD__, not if BSD_SYSTEM, since it's needed only for Darwin
3958 and FreeBSD now.
3959
a020afb9 3960See ChangeLog.12 for earlier changes.
aac0c6e3
MR
3961
3962;; Local Variables:
3963;; coding: utf-8
aac0c6e3
MR
3964;; End:
3965
ab422c4d 3966 Copyright (C) 2011-2013 Free Software Foundation, Inc.
aac0c6e3
MR
3967
3968 This file is part of GNU Emacs.
3969
3970 GNU Emacs is free software: you can redistribute it and/or modify
3971 it under the terms of the GNU General Public License as published by
3972 the Free Software Foundation, either version 3 of the License, or
3973 (at your option) any later version.
3974
3975 GNU Emacs is distributed in the hope that it will be useful,
3976 but WITHOUT ANY WARRANTY; without even the implied warranty of
3977 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3978 GNU General Public License for more details.
3979
3980 You should have received a copy of the GNU General Public License
3981 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.