* fileio.c (Finsert_file_contents): Avoid double-close.
[bpt/emacs.git] / src / ChangeLog
1 2013-07-25 Paul Eggert <eggert@cs.ucla.edu>
2
3 * fileio.c (Finsert_file_contents): Avoid double-close (Bug#14936).
4
5 2013-07-24 Eli Zaretskii <eliz@gnu.org>
6
7 * xdisp.c (redisplay_window): Instead of moving point out of
8 scroll margin, reject the force_start method, and try scrolling
9 instead. (Bug#14780)
10
11 2013-07-24 Ken Brown <kbrown@cornell.edu>
12
13 * alloc.c (make_save_ptr): Define if HAVE_NTGUI is defined
14 (Bug#14944).
15
16 2013-07-24 Paul Eggert <eggert@cs.ucla.edu>
17
18 * eval.c (Fprogn): Do not check that BODY is a proper list.
19 This undoes the previous change. The check slows down the
20 interpreter, and is not needed to prevent a crash. See
21 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00693.html>.
22
23 2013-07-23 Glenn Morris <rgm@gnu.org>
24
25 * Makefile.in ($(etc)/DOC, temacs$(EXEEXT)): Ensure etc/ exists.
26
27 2013-07-23 Paul Eggert <eggert@cs.ucla.edu>
28
29 Port to GNU/Linux systems with tinfo but not ncurses.
30 * dispnew.c (init_display): Depend on USE_NCURSES, not GNU_LINUX,
31 to decide whether ncurses is being used. Without this change,
32 GCC complains about tgetent not being declared, on a system
33 that has tinfo installed but ncurses not installed.
34
35 * eval.c (Fprogn): Check that BODY is a proper list.
36
37 Tune UNEVALLED functions by using XCAR instead of Fcar, etc.
38 * data.c (Fsetq_default):
39 * eval.c (Fif, Fcond, Fprog1, Fsetq, Fquote, Ffunction, Fdefvar)
40 (Fdefconst, FletX, Flet, Fwhile, Fcatch, Funwind_protect)
41 (Fcondition_case):
42 Tune by taking advantage of the fact that ARGS is always a list
43 when a function is declared to have UNEVALLED args.
44
45 * emacsgtkfixed.c: Port to GCC 4.6.
46 GCC 4.6 complains about -Wunused-local-typedefs, introduced in 4.7.
47
48 2013-07-23 Juanma Barranquero <lekktu@gmail.com>
49
50 * callproc.c (child_setup)[!WINDOWSNT]: Move exec_errno and pid
51 here to silence compiler warnings.
52
53 2013-07-22 Paul Eggert <eggert@cs.ucla.edu>
54
55 * sysdep.c (frame) [__FreeBSD__]: #define to freebsd_frame
56 when including <sys/user.h>, to prevent Sparc/ARM machine/frame.h
57 from messing up Emacs's 'struct frame' (Bug#14923).
58
59 2013-07-21 Paul Eggert <eggert@cs.ucla.edu>
60
61 * alloc.c (make_save_ptr_ptr): Define this function.
62 It was inadvertently omitted. It's needed only if
63 HAVE_MENUS && ! (USE_X_TOOLKIT || USE_GTK).
64
65 2013-07-21 Jan Djärv <jan.h.d@swipnet.se>
66
67 * nsterm.m (sendEvent:): Skip mouse moved if no dialog and no Emacs
68 frame have focus (Bug#14895).
69
70 2013-07-21 Paul Eggert <eggert@cs.ucla.edu>
71
72 Avoid vfork-related deadlock more cleanly.
73 * callproc.c (child_setup): When the child's exec fails, output
74 the program name, as that's more useful. Use O_NONBLOCK to avoid
75 deadlock.
76 * process.c (create_process_1): Remove; no longer needed.
77 (create_process): Remove timer hack; no longer needed, now that
78 the child avoids deadlock.
79
80 2013-07-20 Glenn Morris <rgm@gnu.org>
81
82 * image.c (Fimage_flush): Fix doc typo.
83
84 2013-07-20 Paul Eggert <eggert@cs.ucla.edu>
85
86 Fix array bounds violation when pty allocation fails.
87 * process.c (PTY_NAME_SIZE): New constant.
88 (pty_name): Remove static variable; it's now auto.
89 (allocate_pty): Define even if !HAVE_PTYS; that's simpler.
90 Take pty_name as an arg rather than using a static variable.
91 All callers changed.
92 (create_process): Recover pty_flag from process, not from volatile local.
93 (create_pty): Stay inside array even when pty allocation fails.
94 (Fmake_serial_process): Omit unnecessary initializaiton of pty_flag.
95
96 * lread.c (Fload): Avoid initialization only when lint checking.
97 Mention that it's needed only for older GCCs.
98
99 2013-07-20 Kenichi Handa <handa@gnu.org>
100
101 * coding.c (CODING_ISO_FLAG_LEVEL_4): New macro.
102 (decode_coding_iso_2022): Check the single-shift area. (Bug#8522)
103
104 2013-07-20 Andreas Schwab <schwab@linux-m68k.org>
105
106 * lread.c (Fload): Avoid uninitialized warning.
107
108 2013-07-19 Paul Eggert <eggert@cs.ucla.edu>
109
110 Fix some minor file descriptor leaks and related glitches.
111 * filelock.c (create_lock_file) [!O_CLOEXEC]: Use fcntl with FD_CLOEXEC.
112 (create_lock_file): Use write, not emacs_write.
113 * image.c (slurp_file, png_load_body):
114 * process.c (Fnetwork_interface_list, Fnetwork_interface_info)
115 (server_accept_connection):
116 Don't leak an fd on memory allocation failure.
117 * image.c (slurp_file): Add a cheap heuristic for growing files.
118 * xfaces.c (Fx_load_color_file): Block input around the fopen too,
119 as that's what the other routines do. Maybe input need not be
120 blocked at all, but it's better to be consistent.
121 Avoid undefined behavior when strlen is zero.
122
123 * alloc.c (staticpro): Avoid buffer overrun on repeated calls.
124 (NSTATICS): Now a constant; doesn't need to be a macro.
125
126 2013-07-19 Richard Stallman <rms@gnu.org>
127
128 * coding.c (decode_coding_utf_8): Add simple loop for fast
129 processing of ASCII characters.
130
131 2013-07-19 Paul Eggert <eggert@cs.ucla.edu>
132
133 * conf_post.h (RE_TRANSLATE_P) [emacs]: Remove obsolete optimization.
134
135 2013-07-19 Eli Zaretskii <eliz@gnu.org>
136
137 * keyboard.c (kbd_buffer_get_event): Use Display_Info instead of
138 unportable 'struct x_display_info'.
139 (DISPLAY_LIST_INFO): Delete macro: not needed, since Display_Info
140 is a portable type.
141
142 2013-07-19 Paul Eggert <eggert@cs.ucla.edu>
143
144 * sysdep.c [GNU_LINUX]: Fix fd and memory leaks and similar issues.
145 (procfs_ttyname): Don't use uninitialized storage if emacs_fopen
146 or fscanf fails.
147 (system_process_attributes): Prefer plain char to unsigned char
148 when either will do. Clean up properly if interrupted or if
149 memory allocations fail. Don't assume sscanf succeeds. Remove
150 no-longer-needed workaround to stop GCC from whining. Read
151 command-line once, instead of multiple times. Check read status a
152 bit more carefully.
153
154 Fix obscure porting bug with varargs functions.
155 The code assumed that int is treated like ptrdiff_t in a vararg
156 function, which is not a portable assumption. There was a similar
157 -- though these days less likely -- porting problem with various
158 assumptions that pointers of different types all smell the same as
159 far as vararg functions is conserved. To make this problem less
160 likely in the future, redo the API to use varargs functions.
161 * alloc.c (make_save_value): Remove this vararg function.
162 All uses changed to ...
163 (make_save_int_int_int, make_save_obj_obj_obj_obj)
164 (make_save_ptr_int, make_save_funcptr_ptr_obj, make_save_memory):
165 New functions.
166 (make_save_ptr): Rename from make_save_pointer, for consistency with
167 the above. Define only on platforms that need it. All uses changed.
168
169 2013-07-18 Paul Eggert <eggert@cs.ucla.edu>
170
171 * keyboard.c: Try to fix typos in previous change.
172 (DISPLAY_LIST_INFO): New macro.
173 (kbd_buffer_get_event): Do not access members that are not present
174 in X11. Revert inadvertent change of "!=" to "=".
175
176 2013-07-18 Juanma Barranquero <lekktu@gmail.com>
177
178 * keyboard.c (kbd_buffer_get_event):
179 * w32term.c (x_focus_changed): Port FOCUS_(IN|OUT)_EVENT changes to W32.
180 Followup to 2013-07-16T11:41:06Z!jan.h.d@swipnet.se.
181
182 2013-07-18 Paul Eggert <eggert@cs.ucla.edu>
183
184 * filelock.c: Fix unlikely file descriptor leaks.
185 (get_boot_time_1): Rework to avoid using emacs_open.
186 This doesn't actually fix a leak, but is better anyway.
187 (read_lock_data): Use read, not emacs_read.
188
189 * doc.c: Fix minor memory and file descriptor leaks.
190 * doc.c (get_doc_string): Fix memory leak when doc file absent.
191 (get_doc_string, Fsnarf_documentation):
192 Fix file descriptor leak on error.
193
194 * term.c: Fix minor fdopen-related file descriptor leaks.
195 * term.c (Fresume_tty) [!MSDOS]: Close fd if fdopen (fd) fails.
196 (init_tty) [!DOS_NT]: Likewise. Also close fd if isatty (fd) fails.
197
198 * charset.c: Fix file descriptor leaks and errno issues.
199 Include <errno.h>.
200 (load_charset_map_from_file): Don't leak file descriptor on error.
201 Use plain record_xmalloc since the allocation is larger than
202 MAX_ALLOCA; that's simpler here. Simplify test for exhaustion
203 of entries.
204 * eval.c (record_unwind_protect_nothing):
205 * fileio.c (fclose_unwind):
206 New functions.
207 * lread.c (load_unwind): Remove. All uses replaced by fclose_unwind.
208 The replacement doesn't block input, but that no longer seems
209 necessary.
210
211 2013-07-17 Paul Eggert <eggert@cs.ucla.edu>
212
213 * lread.c: Fix file descriptor leaks and errno issues.
214 (Fload): Close some races that leaked fds or streams when 'load'
215 was interrupted.
216 (Fload, openp): Report error number of last nontrivial failure to open.
217 ENOENT counts as trivial.
218 * eval.c (do_nothing, clear_unwind_protect, set_unwind_protect_ptr):
219 New functions.
220 * fileio.c (close_file_unwind): No need to test whether FD is nonnegative,
221 now that the function is always called with a nonnegative arg.
222 * lisp.h (set_unwind_protect_ptr, set_unwind_protect_int): Remove.
223 All uses replaced with ...
224 (clear_unwind_protect, set_unwind_protect_ptr): New decls.
225
226 A few more minor file errno-reporting bugs.
227 * callproc.c (Fcall_process):
228 * doc.c (Fsnarf_documentation):
229 * fileio.c (Frename_file, Fadd_name_to_file, Fmake_symbolic_link):
230 * process.c (set_socket_option):
231 Don't let a constructor trash errno.
232 * doc.c: Include <errno.h>.
233
234 2013-07-16 Juanma Barranquero <lekktu@gmail.com>
235
236 * w32fns.c (unwind_create_tip_frame): Fix declaration.
237
238 2013-07-16 Paul Eggert <eggert@cs.ucla.edu>
239
240 Fix w32 bug with call-process-region (Bug#14885).
241 * callproc.c (Fcall_process_region): Pass nil, not "/dev/null",
242 to Fcall_process when the input is empty. This simplifies the
243 code a bit. It makes no difference on POSIXish platforms but
244 apparently it fixes a bug on w32.
245
246 Fix bug where insert-file-contents closes a file twice. (Bug#14839).
247 * fileio.c (close_file_unwind): Don't close if FD is negative;
248 this can happen when unwinding a zapped file descriptor.
249 (Finsert_file_contents): Unwind-protect the fd before the point marker,
250 in case Emacs runs out of memory between the two unwind-protects.
251 Don't trash errno when closing FD.
252 Zap the FD in the specpdl when closing it, instead of deferring
253 the removal of the unwind-protect; this fixes a bug where a child
254 function unwinds the stack past us.
255
256 New unwind-protect flavors to better type-check C callbacks.
257 This also lessens the need to write wrappers for callbacks,
258 and the need for make_save_pointer.
259 * alloca.c (free_save_value):
260 * atimer.c (run_all_atimers):
261 Now extern.
262 * alloc.c (safe_alloca_unwind):
263 * atimer.c (unwind_stop_other_atimers):
264 * keyboard.c (cancel_hourglass_unwind) [HAVE_WINDOW_SYSTEM]:
265 * menu.c (cleanup_popup_menu) [HAVE_NS]:
266 * minibuf.c (choose_minibuf_frame_1):
267 * process.c (make_serial_process_unwind):
268 * xdisp.h (pop_message_unwind):
269 * xselect.c (queue_selection_requests_unwind):
270 Remove no-longer-needed wrapper. All uses replaced by the wrappee.
271 * alloca.c (record_xmalloc):
272 Prefer record_unwind_protect_ptr to record_unwind_protect with
273 make_save_pointer.
274 * alloca.c (Fgarbage_collect):
275 Prefer record_unwind_protect_void to passing a dummy.
276 * buffer.c (restore_buffer):
277 * window.c (restore_window_configuration):
278 * xfns.c, w32fns.c (do_unwind_create_frame)
279 New wrapper. All record-unwind uses of wrappee changed.
280 * buffer.c (set_buffer_if_live):
281 * callproc.c (call_process_cleanup, delete_temp_file):
282 * coding.c (code_conversion_restore):
283 * dired.c (directory_files_internal_w32_unwind) [WINDOWSNT]:
284 * editfns.c (save_excursion_restore)
285 (subst_char_in_region_unwind, subst_char_in_region_unwind_1)
286 (save_restriction_restore):
287 * eval.c (restore_stack_limits, un_autoload):
288 * fns.c (require_unwind):
289 * keyboard.c (recursive_edit_unwind, tracking_off):
290 * lread.c (record_load_unwind, load_warn_old_style_backquotes):
291 * macros.c (pop_kbd_macro, restore_menu_items):
292 * nsfns.m (unwind_create_frame):
293 * print.c (print_unwind):
294 * process.c (start_process_unwind):
295 * search.c (unwind_set_match_data):
296 * window.c (select_window_norecord, select_frame_norecord):
297 * xdisp.c (unwind_with_echo_area_buffer, unwind_format_mode_line)
298 (fast_set_selected_frame):
299 * xfns.c, w32fns.c (unwind_create_tip_frame):
300 Return void, not a dummy Lisp_Object. All uses changed.
301 * buffer.h (set_buffer_if_live): Move decl here from lisp.h.
302 * callproc.c (call_process_kill):
303 * fileio.c (restore_point_unwind, decide_coding_unwind)
304 (build_annotations_unwind):
305 * insdel.c (Fcombine_after_change_execute_1):
306 * keyboard.c (read_char_help_form_unwind):
307 * menu.c (unuse_menu_items):
308 * minibuf.c (run_exit_minibuf_hook, read_minibuf_unwind):
309 * sound.c (sound_cleanup):
310 * xdisp.c (unwind_redisplay):
311 * xfns.c (clean_up_dialog):
312 * xselect.c (x_selection_request_lisp_error, x_catch_errors_unwind):
313 Accept no args and return void, instead of accepting and returning
314 a dummy Lisp_Object. All uses changed.
315 * cygw32.c (fchdir_unwind):
316 * fileio.c (close_file_unwind):
317 * keyboard.c (restore_kboard_configuration):
318 * lread.c (readevalllop_1):
319 * process.c (wait_reading_process_output_unwind):
320 Accept int and return void, rather than accepting an Emacs integer
321 and returning a dummy object. In some cases this fixes an
322 unlikely bug when the corresponding int is outside Emacs integer
323 range. All uses changed.
324 * dired.c (directory_files_internal_unwind):
325 * fileio.c (do_auto_save_unwind):
326 * gtkutil.c (pop_down_dialog):
327 * insdel.c (reset_var_on_error):
328 * lread.c (load_unwind):
329 * xfns.c (clean_up_file_dialog):
330 * xmenu.c, nsmenu.m (pop_down_menu):
331 * xmenu.c (cleanup_widget_value_tree):
332 * xselect.c (wait_for_property_change_unwind):
333 Accept pointer and return void, rather than accepting an Emacs
334 save value encapsulating the pointer and returning a dummy object.
335 All uses changed.
336 * editfns.c (Fformat): Update the saved pointer directly via
337 set_unwind_protect_ptr rather than indirectly via make_save_pointer.
338 * eval.c (specpdl_func): Remove. All uses replaced by definiens.
339 (unwind_body): New function.
340 (record_unwind_protect): First arg is now a function returning void,
341 not a dummy Lisp_Object.
342 (record_unwind_protect_ptr, record_unwind_protect_int)
343 (record_unwind_protect_void): New functions.
344 (unbind_to): Support SPECPDL_UNWIND_PTR etc.
345 * fileio.c (struct auto_save_unwind): New type.
346 (do_auto_save_unwind): Use it.
347 (do_auto_save_unwind_1): Remove; subsumed by new do_auto_save_unwind.
348 * insdel.c (struct rvoe_arg): New type.
349 (reset_var_on_error): Use it.
350 * lisp.h (SPECPDL_UNWIND_PTR, SPECPDL_UNWIND_INT, SPECPDL_UNWIND_VOID):
351 New constants.
352 (specbinding_func): Remove; there are now several such functions.
353 (union specbinding): New members unwind_ptr, unwind_int, unwind_void.
354 (set_unwind_protect_ptr): New function.
355 * xselect.c: Remove unnecessary forward decls, to simplify maintenance.
356
357 Be simpler and more consistent about reporting I/O errors.
358 * fileio.c (Fcopy_file, Finsert_file_contents, Fwrite_region):
359 Say "Read error" and "Write error", rather than "I/O error", or
360 "IO error reading", or "IO error writing", when a read or write
361 error occurs.
362 * process.c (Fmake_network_process, wait_reading_process_output)
363 (send_process, Fprocess_send_eof, wait_reading_process_output):
364 Capitalize diagnostics consistently. Put "failed foo" at the
365 start of the diagnostic, so that we don't capitalize the
366 function name "foo". Consistently say "failed" for such
367 diagnostics.
368 * sysdep.c, w32.c (serial_open): Now accepts Lisp string, not C string.
369 All callers changed. This is so it can use report_file_error.
370 * sysdep.c (serial_open, serial_configure): Capitalize I/O
371 diagnostics consistently as above.
372
373 * fileio.c (report_file_errno): Fix errno reporting bug.
374 If the file name is neither null nor a pair, package it up as a
375 singleton list. All callers changed, both to this function and to
376 report_file_error. This fixes a bug where the memory allocator
377 invoked by list1 set errno so that the immediately following
378 report_file_error reported the wrong errno value.
379
380 Fix minor problems found by --enable-gcc-warnings.
381 * frame.c (Fhandle_focus_in, Fhandle_focus_out): Return a value.
382 * keyboard.c (kbd_buffer_get_event): Remove unused local.
383
384 2013-07-16 Jan Djärv <jan.h.d@swipnet.se>
385
386 * xterm.c (x_focus_changed): Always generate FOCUS_IN_EVENT.
387 Set event->arg to Qt if switch-event shall be generated.
388 Generate FOCUS_OUT_EVENT for FocusOut if this is the focused frame.
389
390 * termhooks.h (enum event_kind): Add FOCUS_OUT_EVENT.
391
392 * nsterm.m (windowDidResignKey): If this is the focused frame, generate
393 FOCUS_OUT_EVENT.
394
395 * keyboard.c (Qfocus_in, Qfocus_out): New static objects.
396 (make_lispy_focus_in, make_lispy_focus_out): Declare and define.
397 (kbd_buffer_get_event): For FOCUS_IN, make a focus_in event if no
398 switch frame event is made. Check ! NILP (event->arg) if X11 (moved
399 from xterm.c). Make focus_out event for FOCUS_OUT_EVENT if NS or X11
400 and there is a focused frame.
401 (head_table): Add focus-in and focus-out.
402 (keys_of_keyboard): Add focus-in and focus-out to Vspecial_event_map,
403 bind to handle-focus-in/out.
404
405 * frame.c (Fhandle_focus_in, Fhandle_focus_out): New functions.
406 (Fhandle_switch_frame): Call Fhandle_focus_in.
407 (syms_of_frame): defsubr handle-focus-in/out.
408
409 2013-07-16 Paul Eggert <eggert@cs.ucla.edu>
410
411 Fix porting bug to older POSIXish platforms (Bug#14862).
412 * sysdep.c (emacs_pipe): New function, that implements
413 pipe2 (fd, O_CLOEXEC) even on hosts that lack O_CLOEXEC.
414 This should port better to CentOS 5 and to Mac OS X 10.6.
415 All calls to pipe2 changed.
416
417 Prefer list1 (X) to Fcons (X, Qnil) when building lists.
418 This makes the code easier to read and the executable a bit smaller.
419 Do not replace all calls to Fcons that happen to create lists,
420 just calls that are intended to create lists. For example, when
421 creating an alist that maps FOO to nil, use list1 (Fcons (FOO, Qnil))
422 rather than list1 (list1 (FOO)) or Fcons (Fcons (FOO, Qnil), Qnil).
423 Similarly for list2 through list5.
424 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
425 * bytecode.c (exec_byte_code):
426 * callint.c (quotify_arg, Fcall_interactively):
427 * callproc.c (Fcall_process, create_temp_file):
428 * charset.c (load_charset_map_from_file)
429 (Fdefine_charset_internal, init_charset):
430 * coding.c (get_translation_table, detect_coding_system)
431 (Fcheck_coding_systems_region)
432 (Fset_terminal_coding_system_internal)
433 (Fdefine_coding_system_internal, Fdefine_coding_system_alias):
434 * composite.c (update_compositions, Ffind_composition_internal):
435 * dired.c (directory_files_internal, file_name_completion)
436 (Fsystem_users):
437 * dispnew.c (Fopen_termscript, bitch_at_user, init_display):
438 * doc.c (Fsnarf_documentation):
439 * editfns.c (Fmessage_box):
440 * emacs.c (main):
441 * eval.c (do_debug_on_call, signal_error, maybe_call_debugger)
442 (Feval, eval_sub, Ffuncall, apply_lambda):
443 * fileio.c (make_temp_name, Fcopy_file, Faccess_file)
444 (Fset_file_selinux_context, Fset_file_acl, Fset_file_modes)
445 (Fset_file_times, Finsert_file_contents)
446 (Fchoose_write_coding_system, Fwrite_region):
447 * fns.c (Flax_plist_put, Fyes_or_no_p, syms_of_fns):
448 * font.c (font_registry_charsets, font_parse_fcname)
449 (font_prepare_cache, font_update_drivers, Flist_fonts):
450 * fontset.c (Fset_fontset_font, Ffontset_info, syms_of_fontset):
451 * frame.c (make_frame, Fmake_terminal_frame)
452 (x_set_frame_parameters, x_report_frame_params)
453 (x_default_parameter, Fx_parse_geometry):
454 * ftfont.c (syms_of_ftfont):
455 * image.c (gif_load):
456 * keyboard.c (command_loop_1):
457 * keymap.c (Fmake_keymap, Fmake_sparse_keymap, access_keymap_1)
458 (Fcopy_keymap, append_key, Fcurrent_active_maps)
459 (Fminor_mode_key_binding, accessible_keymaps_1)
460 (Faccessible_keymaps, Fwhere_is_internal):
461 * lread.c (read_emacs_mule_char):
462 * menu.c (find_and_return_menu_selection):
463 * minibuf.c (get_minibuffer):
464 * nsfns.m (Fns_perform_service):
465 * nsfont.m (ns_script_to_charset):
466 * nsmenu.m (ns_popup_dialog):
467 * nsselect.m (ns_get_local_selection, ns_string_from_pasteboard)
468 (Fx_own_selection_internal):
469 * nsterm.m (append2):
470 * print.c (Fredirect_debugging_output)
471 (print_prune_string_charset):
472 * process.c (Fdelete_process, Fprocess_contact)
473 (Fformat_network_address, set_socket_option)
474 (read_and_dispose_of_process_output, write_queue_push)
475 (send_process, exec_sentinel):
476 * sound.c (Fplay_sound_internal):
477 * textprop.c (validate_plist, add_properties)
478 (Fput_text_property, Fadd_face_text_property)
479 (copy_text_properties, text_property_list, syms_of_textprop):
480 * unexaix.c (report_error):
481 * unexcoff.c (report_error):
482 * unexsol.c (unexec):
483 * xdisp.c (redisplay_tool_bar, store_mode_line_string)
484 (Fformat_mode_line, syms_of_xdisp):
485 * xfaces.c (set_font_frame_param)
486 (Finternal_lisp_face_attribute_values)
487 (Finternal_merge_in_global_face, syms_of_xfaces):
488 * xfns.c (x_default_scroll_bar_color_parameter)
489 (x_default_font_parameter, x_create_tip_frame):
490 * xfont.c (xfont_supported_scripts):
491 * xmenu.c (Fx_popup_dialog, xmenu_show, xdialog_show)
492 (menu_help_callback, xmenu_show):
493 * xml.c (make_dom):
494 * xterm.c (set_wm_state):
495 Prefer list1 (FOO) to Fcons (FOO, Qnil) when creating a list,
496 and similarly for list2 through list5.
497
498 2013-07-15 Paul Eggert <eggert@cs.ucla.edu>
499
500 * callproc.c (Fcall_process_region): Fix minor race and tune.
501 (create_temp_file): New function, with the temp-file-creation part
502 of the old Fcall_process_region. Use Fcopy_sequence to create the
503 temp file name, rather than alloca + build_string, for simplicity.
504 Don't bother to block input around the temp file creation;
505 shouldn't be needed. Simplify use of mktemp. Use
506 record_unwind_protect immediately after creating the temp file;
507 this closes an unlikely race where the temp file was not removed.
508 Use memcpy rather than an open-coded loop.
509 (Fcall_process_region): Use the new function. If the input is
510 empty, redirect from /dev/null rather than from a newly created
511 empty temp file; this avoids unnecessary file system traffic.
512
513 2013-07-14 Paul Eggert <eggert@cs.ucla.edu>
514
515 * filelock.c (create_lock_file) [!HAVE_MKOSTEMP && !HAVE_MKSTEMP]:
516 Simplify by making this case like the other two. This is a bit
517 slower on obsolete hosts, but the extra complexity isn't worth it.
518
519 * callproc.c (child_setup, relocate_fd) [!DOS_NT]:
520 * process.c (create_process) [!DOS_NT]:
521 Remove now-unnecessary calls to emacs_close.
522
523 2013-07-13 Eli Zaretskii <eliz@gnu.org>
524
525 * w32term.c (x_draw_hollow_cursor): Delete the brush object when
526 returning early. (Bug#14850)
527
528 * coding.c (syms_of_coding): Set up inhibit-null-byte-detection
529 and inhibit-iso-escape-detection attributes of 'undecided'.
530 (Bug#14822)
531
532 2013-07-13 Paul Eggert <eggert@cs.ucla.edu>
533
534 * deps.mk (sysdep.o): Remove dependency on ../lib/ignore-value.h.
535 Reported by Herbert J. Skuhra in
536 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00455.html>.
537
538 Don't lose top specpdl entry when memory is exhausted.
539 * eval.c (grow_specpdl): Increment specpdl top by 1 and check for
540 specpdl overflow here, to simplify callers; all callers changed.
541 Always reserve an unused entry at the stack top; this avoids
542 losing the top entry's information when memory is exhausted.
543
544 2013-07-12 Paul Eggert <eggert@cs.ucla.edu>
545
546 Clean up errno reporting and fix some errno-reporting bugs.
547 * callproc.c (Fcall_process):
548 * fileio.c (Fcopy_file, Finsert_file_contents, Fwrite_region):
549 * process.c (create_process, Fmake_network_process):
550 * unexaix.c (report_error):
551 * unexcoff.c (report_error):
552 Be more careful about reporting the errno of failed operations.
553 The code previously reported the wrong errno sometimes.
554 Also, prefer report_file_errno to setting errno + report_file_error.
555 (Fcall_process): Look at openp return value rather than at path,
556 as that's a bit faster and clearer when there's a numeric predicate.
557 * fileio.c (report_file_errno): New function, with most of the
558 old contents of report_file_error.
559 (report_file_error): Use it.
560 (Ffile_exists_p, Ffile_accessible_directory_p):
561 Set errno to 0 when it is junk.
562 * fileio.c (Faccess_file):
563 * image.c (x_create_bitmap_from_file):
564 Use faccessat rather than opening the file, to avoid the hassle of
565 having a file descriptor open.
566 * lisp.h (report_file_errno): New decl.
567 * lread.c (Flocate_file_internal): File descriptor 0 is valid, too.
568
569 Minor EBADF fixes.
570 * process.c (create_process, wait_reading_process_output) [AIX]:
571 Remove obsolete SIGHUP-related code, as Emacs no longer disables
572 SIGHUP, so EBADF is no longer acceptable here (it wouldn't work in
573 a multithreaded environment anyway).
574 * sysdep.c (emacs_close): It's not dangerous to invoke emacs_close (-1).
575
576 2013-07-12 Andreas Schwab <schwab@linux-m68k.org>
577
578 * image.c (x_find_image_file): Don't close a remote file handle.
579
580 2013-07-12 Paul Eggert <eggert@cs.ucla.edu>
581
582 Fix races with threads and file descriptors.
583 * callproc.c (Fcall_process_region):
584 * dired.c (open_directory):
585 * emacs.c (main, Fdaemon_initialized):
586 * image.c (x_find_image_file):
587 * inotify.c (Finotify_rm_watch):
588 * lread.c (Flocate_file_internal):
589 * process.c (Fnetwork_interface_list, Fnetwork_interface_info):
590 * term.c (term_mouse_moveto, init_tty):
591 * termcap.c (tgetent):
592 * unexaix.c, unexcoff.c (report_error, report_error_1, adjust_lnnoptrs)
593 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c (unexec):
594 * unexhp9k800.c, unexmacosx.c (unexec):
595 * callproc.c (Fcall_process_region):
596 Use emacs_close, not close.
597 * sysdep.c (POSIX_CLOSE_RESTART, posix_close) [!POSIX_CLOSE_RESTART]:
598 New macro and function, which emulates the POSIX_CLOSE_RESTART macro
599 and posix_close function on current platforms (which all lack them).
600 (emacs_close): Use it. This should fix the races on GNU/Linux and
601 on AIX and on future platforms that support POSIX_CLOSE_RESTART,
602 and it should avoid closing random victim file descriptors on
603 other platforms.
604
605 2013-07-11 Paul Eggert <eggert@cs.ucla.edu>
606
607 * inotify.c (uninitialized): Remove. All uses replaced by -1.
608 (Finotify_add_watch): Simplify, since -1 means uninitialized now.
609 Touch up doc a bit.
610
611 * eval.c (backtrace_function, backtrace_args): Now EXTERNALLY_VISIBLE.
612 This is for .gdbinit xbacktrace.
613
614 * sysdep.c, term.c, termcap.c, terminal.c: Integer-related minor fixes.
615 * sysdep.c (emacs_get_tty): Return void, since nobody uses the value.
616 (emacs_set_tty): Now static.
617 * sysdep.c (emacs_set_tty, tabs_safe_p, emacs_close):
618 * term.c (tty_capable_p, tty_default_color_capabilities)
619 (get_tty_terminal, term_mouse_movement)
620 (handle_one_term_event, init_tty, maybe_fatal):
621 * termcap.c (tgetst1, struct termcap_buffer, valid_filename_p)
622 (tgetent, scan_file, name_match, compare_contin):
623 * terminal.c (get_terminal):
624 Use bool for boolean.
625 * sysdep.c (init_system_name): Don't overflow stack on huge hostname.
626 Prefer char to unsigned char if either will do.
627 * term.c (OUTPUT, turn_on_face): Omit unnecessary casts to int.
628 (tty_write_glyphs): Prefer int to unsigned.
629 (produce_glyphless_glyph): Remove 2nd (unused) int arg.
630 All callers changed.
631 * termcap.c (tprint, main) [TEST]: Remove non-working test.
632
633 2013-07-10 Paul Eggert <eggert@cs.ucla.edu>
634
635 Port to C89.
636 * bytecode.c (BYTE_CODE_THREADED): Do not define if __STRICT_ANSI__.
637 (B__dummy__): New dummy symbol, to pacify C89.
638 * dbusbind.c (XD_DEBUG_MESSAGE): Omit debugging on C89 hosts, since
639 they can't grok varargs macros.
640 * dispnew.c (add_window_display_history)
641 (add_frame_display_history):
642 * print.c (print_object):
643 * xdisp.c (debug_method_add):
644 Use %p printf format only for void pointers.
645 * emacs.c (usage_message): New constant, replacing ...
646 (USAGE1, USAGE2, USAGE3): Remove; they were too long for C89.
647 (main): Adjust to usage reorg.
648 * fns.c (syms_of_fns):
649 * profiler.c (syms_of_profiler):
650 Don't use non-constant struct initializers.
651 * gnutls.h (gnutls_initstage_t):
652 * lisp.h (enum Lisp_Fwd_Type):
653 * lread.c (lisp_file_lexically_bound_p):
654 * xsettings.c (anonymous enum):
655 Remove trailing comma.
656 * xsettings.c (apply_xft_settings): Use %f, not %lf; %lf is a C99ism.
657 * lisp.h (ENUM_BF): Use unsigned if pedantic.
658 (DEFUN_FUNCTION_INIT): New macro, that falls back on a cast if pre-C99.
659 (DEFUN): Use it.
660 * regex.c (const_re_char): New type, to pacify strict C89.
661 All uses of 'const re_char' replaced to use it.
662 * regex.h (_Restrict_): Rename from __restrict, to avoid clash
663 with glibc when strict C89. This change is imported from gnulib.
664 All uses changed.
665 (_Restrict_arr_): Rename from __restrict_arr, similarly.
666 * sysdep.c (time_from_jiffies) [!HAVE_LONG_LONG_INT]:
667 Omit GNU_LINUX implementation, since it requires long long.
668 * xterm.c (x_draw_underwave):
669 Do not assume the traditional order of struct's members.
670 (x_term_init): Rewrite to avoid the need for non-constant structure
671 initializers.
672
673 Syntax cleanup, mostly replacing macros with functions.
674 This removes the need for the syntax_temp hack.
675 * search.c: Include syntax.h after buffer.h, since syntax.h uses BVAR.
676 * syntax.c (SYNTAX_INLINE): New macro.
677 (SYNTAX_FLAGS_COMSTART_FIRST, SYNTAX_FLAGS_COMSTART_SECOND)
678 (SYNTAX_FLAGS_COMEND_FIRST, SYNTAX_FLAGS_COMEND_SECOND)
679 (SYNTAX_FLAGS_PREFIX, SYNTAX_FLAGS_COMMENT_STYLEB)
680 (SYNTAX_FLAGS_COMMENT_STYLEC, SYNTAX_FLAGS_COMMENT_STYLEC2)
681 (SYNTAX_FLAGS_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_STYLE)
682 (SYNTAX_COMEND_FIRST): Now functions, not macros.
683 (ST_COMMENT_STYLE, ST_STRING_STYLE, INTERVALS_AT_ONCE):
684 Now constants, not macros.
685 (syntax_temp) [!__GNUC__]: Remove.
686 (SYNTAX_PREFIX): Remove; all uses replaced by syntax_prefix_flag_p.
687 (syntax_prefix_flag_p): Move implementation of SYNTAX_PREFIX here.
688 (SET_RAW_SYNTAX_ENTRY, SET_RAW_SYNTAX_ENTRY_RANGE, SYNTAX_MATCH)
689 (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT):
690 Move here from syntax.h; now functions, not macros. Except for the
691 last function, these are static since only syntax.c uses them.
692 (syntax_multibyte): Rename from SYNTAX_WITH_MULTIBYTE_CHECK.
693 All uses changed. Now a function, not a macro; use this fact
694 to simplify the code.
695 (scan_lists, scan_sexps_forward): Remove workarounds for ancient
696 compiler bugs; no longer relevant.
697 * syntax.h: Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
698 (SYNTAX_INLINE): New macro.
699 (struct gl_state_s, gl_state): Move earlier, so that it's in scope
700 for the new functions. Use bool for boolean member.
701 (SYNTAX_ENTRY, SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH)
702 (SYNTAX_TABLE_BYTE_TO_CHAR, UPDATE_SYNTAX_TABLE_FORWARD)
703 (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE)
704 (SETUP_BUFFER_SYNTAX_TABLE):
705 Now extern inline functions, not macros.
706 (CURRENT_SYNTAX_TABLE, SYNTAX_ENTRY_INT):
707 Remove; all uses replaced by implementation.
708 (syntax_temp) [!__GNUC__]: Remove decl.
709 (SETUP_SYNTAX_TABLE_FOR_OBJECT): New decl.
710
711 2013-07-10 Jan Djärv <jan.h.d@swipnet.se>
712
713 * emacs.c (main): Fix syntax error.
714
715 2013-07-10 Paul Eggert <eggert@cs.ucla.edu>
716
717 Timestamp fixes for undo (Bug#14824).
718 * atimer.c (schedule_atimer):
719 * fileio.c (Ffile_newer_than_file_p):
720 Minor cleanup: use EMACS_TIME_LT so that we can remove EMACS_TIME_GT.
721 * buffer.c (buffer-undo-list): Document (t . 0) and (t . -1).
722 * fileio.c (Fclear_visited_file_modtime): Move to lisp/files.el.
723 (syms_of_fileio): Remove Sclear_visited_file_name.
724 (Fvisited_file_modtime): Return -1, not (-1 ...), when the visited
725 file doesn't exist; this avoids an ambiguity with negative timestamps.
726 (Fset_visited_file_modtime): Accept -1 and 0 as time-list arg.
727 * systime.h (make_emacs_time, invalid_emacs_time):
728 Don't assume struct timespec layout; POSIX doesn't guarantee it.
729 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE): Remove.
730 * undo.c (record_first_change): Push (visited-file-modtime) onto
731 undo list rather than reimplementing it by hand, incorrectly.
732
733 2013-07-09 Ken Brown <kbrown@cornell.edu>
734
735 * sheap.c (STATIC_HEAP_SIZE) [__x86_64__]: Increase to 18MB.
736
737 2013-07-09 Juanma Barranquero <lekktu@gmail.com>
738
739 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/sysdep.$(O)): Update.
740
741 2013-07-09 Paul Eggert <eggert@cs.ucla.edu>
742
743 Handle errno and exit status a bit more carefully.
744 * callproc.c (child_setup) [!DOS_NT]: Don't try to stuff an error
745 number into an exit status. Instead, use EXIT_CANCELED.
746 (child_setup) [!MSDOS]: Avoid possible deadlock with vfork.
747 * callproc.c (relocate_fd):
748 * emacs.c (close_output_streams, main):
749 * process.c (create_process):
750 * sysdep.c (sys_subshell) [!DOS_NT || !WINDOWSNT]:
751 Use emacs_perror for simplicity.
752 * callproc.c (relocate_fd, main):
753 * sysdep.c (sys_subshell):
754 Exit with EXIT_CANCELED etc., not 1, when exec setup fails.
755 (shut_down_emacs): Use emacs_write, not write.
756 * emacs.c, sysdep.c: Don't include <ignore-value.h>.
757 * fileio.c (Fcopy_file, e_write):
758 * nsterm.m (ns_select):
759 * process.c (send_process):
760 * sound.c (vox_write):
761 Use emacs_write_sig, not emacs_write.
762 * lisp.h (emacs_write_sig, emacs_perror): New decls.
763 * process.h (EXIT_CANCELED), EXIT_CANNOT_INVOKE, EXIT_ENOENT):
764 New constants.
765 * sysdep.c (emacs_backtrace): Use emacs_write, not ignore_value
766 of write.
767 (emacs_full_write): New function.
768 (emacs_write): Rewrite to use it.
769 (emacswrite_sig, emacs_perror): New functions.
770 * xrdb.c (fatal): Don't invoke perror, since errno might be garbage.
771
772 2013-07-08 Magnus Henoch <magnus.henoch@gmail.com> (tiny change).
773
774 * image.c (imagemagick_load_image): Do not use MagickExportImagePixels
775 on NS even if it is present. Pixmap on NS is a void*.
776
777 2013-07-07 Paul Eggert <eggert@cs.ucla.edu>
778
779 Port to Ubuntu 10 (Bug#14803).
780 Problem reported by T.V. Raman.
781 * process.c (close_on_exec, accept4, process_socket):
782 Define these if !HAVE_ACCEPT4, not if !SOCK_CLOEXEC.
783
784 2013-07-07 Eli Zaretskii <eliz@gnu.org>
785
786 * w32.c (sys_dup): Declare prototype.
787
788 * filelock.c:
789 * emacs.c:
790 * callproc.c [WINDOWSNT]: Include sys/socket.h.
791
792 2013-07-07 Paul Eggert <eggert@cs.ucla.edu>
793
794 Make file descriptors close-on-exec when possible (Bug#14803).
795 This simplifies Emacs a bit, since it no longer needs to worry
796 about closing file descriptors by hand in some cases.
797 It also fixes some unlikely races. Not all such races, as
798 libraries often open files internally without setting
799 close-on-exec, but it's an improvement.
800 * alloc.c (valid_pointer_p) [!WINDOWSNT]:
801 * callproc.c (Fcall_process) [!MSDOS]:
802 * emacs.c (main) [!DOS_NT]:
803 * nsterm.m (ns_term_init):
804 * process.c (create_process):
805 Use 'pipe2' with O_CLOEXEC instead of 'pipe'.
806 * emacs.c (Fcall_process_region) [HAVE_MKOSTEMP]:
807 * filelock.c (create_lock_file) [HAVE_MKOSTEMP]:
808 Prefer mkostemp with O_CLOEXEC to mkstemp.
809 * callproc.c (relocate_fd) [!WINDOWSNT]:
810 * emacs.c (main): Use F_DUPFD_CLOEXEC, not plain F_DUPFD.
811 No need to use fcntl (..., F_SETFD, FD_CLOEXEC), since we're
812 now using pipe2.
813 * filelock.c (create_lock_file) [! HAVE_MKOSTEMP]:
814 Make the resulting file descriptor close-on-exec.
815 * lisp.h, lread.c, process.c (close_load_descs, close_process_descs):
816 * lread.c (load_descriptor_list, load_descriptor_unwind):
817 Remove; no longer needed. All uses removed.
818 * process.c (SOCK_CLOEXEC): Define to 0 if not supplied by system.
819 (close_on_exec, accept4, process_socket) [!SOCK_CLOEXEC]:
820 New functions.
821 (socket) [!SOCK_CLOEXEC]: Supply a substitute.
822 (Fmake_network_process, Fnetwork_interface_list):
823 (Fnetwork_interface_info, server_accept_connection):
824 Make newly-created socket close-on-exec.
825 * sysdep.c (emacs_open, emacs_fopen):
826 Make new-created descriptor close-on-exec.
827 * w32.c (fcntl): Support F_DUPFD_CLOEXEC well enough for Emacs.
828 * w32.c, w32.h (pipe2): Rename from 'pipe', with new flags arg.
829
830 2013-07-07 Jan Djärv <jan.h.d@swipnet.se>
831
832 * nsterm.m (sendEvent:): Propagate keyboard events to modal windows
833 for NS_IMPL_GNUSTEP.
834
835 2013-07-07 Paul Eggert <eggert@cs.ucla.edu>
836
837 Fix openp errno handling.
838 * callproc.c (Fcall_process): Preserve openp errno around close.
839 * lread.c (openp): Set errno when returning -1, as some callers
840 expect this.
841
842 2013-07-06 Jan Djärv <jan.h.d@swipnet.se>
843
844 * nsterm.m (sendEvent:): Handle NSAPP_DATA2_RUNFILEDIALOG.
845
846 * nsterm.h (NSSavePanel): Update comment.
847 (NSAPP_DATA2_RUNFILEDIALOG): Define.
848 (ns_run_file_dialog): Declare.
849
850 * nsfns.m: Remove panelOK.
851 (ns_fd_data): New.
852 (ns_run_file_dialog): New function.
853 (Fns_read_file_name): Fill in ns_fd_data, post an event and start the
854 event loop, so file dialog is popped up by ns_run_file_dialog, called
855 by sendEvent (Bug#14578).
856 (EmacsSavePanel, EmacsOpenPanel): Remove ok and cancel methods.
857
858 2013-07-06 Eli Zaretskii <eliz@gnu.org>
859
860 * xdisp.c (default_line_pixel_height): New function.
861 (pos_visible_p, move_it_vertically_backward, try_scrolling)
862 (try_cursor_movement, redisplay_window, try_window)
863 (try_window_id): Use it instead of FRAME_LINE_HEIGHT. (Bug#14771)
864
865 * window.c (window_scroll_pixel_based): use
866 default_line_pixel_height.
867
868 * dispextern.h (default_line_pixel_height): Add prototype.
869
870 * frame.c (x_set_line_spacing): Accept a float value for
871 line-spacing parameter, per the documentation.
872
873 * data.c (Fmultibyte_string_p): Doc fix.
874
875 2013-07-05 Paul Eggert <eggert@cs.ucla.edu>
876
877 Use emacs_open more consistently when opening files.
878 This handles EINTR more consistently now, and makes it easier
879 to introduce other uniform changes to file descriptor handling.
880 * src/systdio.h: New file.
881 * src/buffer.c (mmap_init):
882 * cygw32.c (chdir_to_default_directory):
883 * dispnew.c (Fopen_termscript):
884 * emacs.c (Fdaemon_initialized):
885 * fileio.c (Fdo_auto_save):
886 * image.c (slurp_file, png_load_body, jpeg_load_body):
887 * keyboard.c (Fopen_dribble_file):
888 * lread.c (Fload):
889 * print.c (Fredirect_debugging_output):
890 * sysdep.c (get_up_time, procfs_ttyname, procfs_get_total_memory):
891 * termcap.c (tgetent):
892 * unexaix.c, unexcoff.c (unexec, adjust_lnnoptrs):
893 * unexcw.c, unexelf.c, unexhp9k800.c, unexmacosx.c (unexec):
894 * w32term.c (w32_initialize) [CYGWIN]:
895 * xfaces.c (Fx_load_color_file):
896 Use emacs_open instead of plain open, and emacs_fopen instead of
897 plain fopen.
898 * dispnew.c, fileio.c, image.c, keyboard.c, lread.c, print.c, sysdep.c:
899 * xfaces.c: Include sysstdio.h rather than stdio.h, for emacs_fopen.
900 * callproc.c (default_output_mode): New constant.
901 (Fcall_process): Use it to call emacs_open instead of plain creat.
902 * dispnew.c (Fopen_termscript): Fix minor race in opening termscript.
903 * sysdep.c (emacs_open): Add commentary and don't call file name "path".
904 (emacs_fopen): New function.
905 * unexaix.c, unexcoff.c, unexelf.c, unexhp9k800.c, unexmacosx.c:
906 Include <lisp.h>, for emacs_open.
907 * unexelf.c (fatal): Remove decl; not needed with <lisp.h> included.
908
909 Remove duplicate #include directives.
910 * alloc.c [GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES]:
911 * xfaces.c:
912 Don't include stdio.h twice.
913 * buffer.c [USE_MMAP_FOR_BUFFERS]:
914 Don't include sys/types.h or stdio.h twice.
915 * fileio.c [WINDOWSNT | MSDOS]: Don't include fcntl.h twice.
916 * lread.c: Don't include coding.h twice.
917 * nsfont.m: Don't include frame.h twice.
918 * process.c [HAVE_RES_INIT]: Don't include <netinet/in.h> twice.
919 * ralloc.c: Don't include <unistd.h> twice.
920 * xdisp.c: Don't include font.h twice.
921 * xterm.c: Don't include fontset.h twice.
922 * xterm.h [USE_X_TOOLKIT]: Don't include X11/StringDefs.h twice.
923
924 2013-07-04 Paul Eggert <eggert@cs.ucla.edu>
925
926 Scale ImageMagick images more carefully.
927 * image.c (scale_image_size) [HAVE_IMAGEMAGICK]: New function.
928 (compute_image_size): Use it. Define only if HAVE_IMAGEMAGICK.
929 Be more careful about avoiding undefined behavior after
930 integer overflow and division by zero.
931
932 2013-07-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
933
934 * w32fns.c (Qgeometry, Qworkarea, Qmm_size, Qframes): New variables.
935 (syms_of_w32fns): DEFSYM them.
936 (MONITORINFOF_PRIMARY, SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN)
937 (CCHDEVICENAME): Define macros if not defined.
938 (struct MONITOR_INFO_EX): New struct.
939 (MonitorEnum_Proc, EnumDisplayMonitors_Proc): New prototypes.
940 (enum_display_monitors_fn): New variable.
941 (globals_of_w32fns): Initialize it.
942 (Fx_display_pixel_width, Fx_display_pixel_height)
943 (Fx_display_mm_height, Fx_display_mm_width): Mention behavior on
944 multi-monitor setups in docstrings.
945 (Fx_display_mm_height, Fx_display_mm_width): Approximate whole
946 screen size by primary monitor's millimeter per pixel.
947 (w32_monitor_enum, w32_display_monitor_attributes_list)
948 (w32_display_monitor_attributes_list_fallback)
949 (Fw32_display_monitor_attributes_list): New functions.
950 (syms_of_w32fns): Defsubr Sw32_display_monitor_attributes_list.
951
952 * w32term.c (SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN): Define macros
953 if not defined.
954 (x_display_pixel_height, x_display_pixel_width): Use GetSystemMetrics.
955
956 2013-07-04 Michael Albinus <michael.albinus@gmx.de>
957
958 * fileio.c (Qfile_notify_error): New error symbol.
959
960 * gfilenotify.c (Fgfile_add_watch, Fgfile_rm_watch):
961 * inotify.c (inotify_callback, symbol_to_inotifymask)
962 (Finotify_add_watch, Finotify_rm_watch): Use it.
963 (inotifyevent_to_event): Exchange order of cookie and file name.
964 (Finotify_add_watch): Adapt docstring.
965
966 * lisp.h (Qfile_notify_error): Declare.
967
968 2013-07-04 Paul Eggert <eggert@cs.ucla.edu>
969
970 Try again to fix FreeBSD bug re multithreaded memory alloc (Bug#14569).
971 * emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
972 Do not clear _malloc_thread_enabled_p, undoing the previous change,
973 which did not work (see <http://bugs.gnu.org/14569#307>).
974 (main): Do not invoke malloc_enable_thread if (! CANNOT_DUMP
975 && (!noninteractive || initialized)). This attempts to thread
976 the needle between the Scylla of FreeBSD and the Charybdis of Cygwin.
977
978 2013-07-04 Juanma Barranquero <lekktu@gmail.com>
979
980 * image.c (x_to_xcolors) [HAVE_NTGUI]: Remove unused var `hdc'.
981 (x_build_heuristic_mask) [HAVE_NTGUI]: Remove unused var `frame_dc'.
982
983 2013-07-04 Paul Eggert <eggert@cs.ucla.edu>
984
985 Try to fix FreeBSD bug re multithreaded memory allocation (Bug#14569).
986 * emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
987 Clear _malloc_thread_enabled_p at startup. Reported by Ashish SHUKLA in
988 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00088.html>.
989
990 2013-07-02 Paul Eggert <eggert@cs.ucla.edu>
991
992 * sysdep.c (sys_siglist) [HAVE_DECL___SYS_SIGLIST]:
993 Define to __sys_siglist.
994
995 2013-07-02 Eli Zaretskii <eliz@gnu.org>
996
997 * xdisp.c (IT_OVERFLOW_NEWLINE_INTO_FRINGE): Don't disallow
998 word-wrap, so that overflow-newline-into-fringe would work in
999 visual-line-mode. (Bug#2749)
1000 (move_it_in_display_line_to): When the last scanned display
1001 element fits exactly on the display line, and
1002 overflow-newline-into-fringe is non-nil, but wrap_it is valid,
1003 don't return MOVE_NEWLINE_OR_CR, but instead back up to the last
1004 wrap point and return MOVE_LINE_CONTINUED. Fixes problems with
1005 finding buffer position that corresponds to pixel coordinates,
1006 e.g. in buffer_posn_from_coords.
1007
1008 2013-07-02 Jan Djärv <jan.h.d@swipnet.se>
1009
1010 * process.c (handle_child_signal): Call catch_child_signal if
1011 NS_IMPL_GNUSTEP.
1012
1013 2013-07-02 Paul Eggert <eggert@cs.ucla.edu>
1014
1015 Don't convert function pointers to void * and back.
1016 It isn't portable C, and it's easy enough to avoid.
1017 * alloc.c: Verify SAVE_FUNCPOINTER bits, too.
1018 (make_save_value): Add support for SAVE_FUNCPOINTER.
1019 * keymap.c (map_keymap_char_table_item, map_keymap_internal):
1020 * print.c (print_object):
1021 Distinguish function from object pointers.
1022 * lisp.h (SAVE_FUNCPOINTER): New constant.
1023 (SAVE_SLOT_BITS): Adjust to it.
1024 (SAVE_TYPE_FUNCPTR_PTR_OBJ): New constant, replacing
1025 SAVE_TYPE_PTR_PTR_OBJ. Change the only use.
1026 (voidfuncptr): New typedef.
1027 (struct Lisp_Save_Value): New member data[0].funcpointer.
1028 (XSAVE_FUNCPOINTER): New function.
1029
1030 Simplify buildobj processing.
1031 * Makefile.in (buildobj.h): Make it a sequence of strings each
1032 followed by comma, rather than a single string. Put it into a
1033 .tmp file in case there's an error while generating it.
1034 (gl-stamp): Use .tmp for temp files.
1035 (mostlyclean): Clean .tmp files.
1036 * doc.c (buildobj): Move to just the routine that needs it.
1037 It's now an array of strings, so processing is simpler.
1038
1039 2013-07-01 Paul Eggert <eggert@cs.ucla.edu>
1040
1041 Fix bug re noninteractive multithreaded memory allocation (Bug#14569).
1042 * emacs.c (malloc_enable_thread): Hoist extern decl to top level.
1043 (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
1044 Invoke malloc_enable_thread even when not interactive.
1045 Problem reported by Ken Brown in <http://bugs.gnu.org/14569#275>.
1046 * process.c (init_process_emacs) [CYGWIN]: Tickle glib even
1047 in this case, since the underlying bug has now been fixed.
1048
1049 2013-07-01 Juanma Barranquero <lekktu@gmail.com>
1050
1051 * emacs.c (Fkill_emacs): Expand Vauto_save_list_file_name before
1052 unlinking it (bug#14691).
1053
1054 2013-06-30 Michal Nazarewicz <mina86@mina86.com>
1055
1056 * buffer.c (FKill_buffer): Run `kill-buffer-query-functions'
1057 before checking whether buffer is modified. This lets
1058 `kill-buffer-query-functions' cancel killing of the buffer or save
1059 its content before `kill-buffer' asks user the "Buffer %s
1060 modified; kill anyway?" question.
1061
1062 2013-06-30 Jan Djärv <jan.h.d@swipnet.se>
1063
1064 * nsfns.m (handlePanelKeys): Don't process Command+Function keys.
1065 Let the super performKeyEquivalent deal with them (Bug#14747).
1066
1067 2013-06-30 Paul Eggert <eggert@cs.ucla.edu>
1068
1069 * widget.c (resize_cb): Remove unused local.
1070
1071 Do not use GTK 3 if it exists but cannot be compiled.
1072 * xmenu.c (x_menu_wait_for_event) [!USE_GTK]:
1073 * xterm.c (x_error_handler) [!USE_GTK]:
1074 Do not use GTK 3.
1075
1076 * intervals.c (get_local_map): Actually clip POSITION (Bug#14753).
1077
1078 2013-06-30 Eli Zaretskii <eliz@gnu.org>
1079
1080 * intervals.c (get_local_map): Instead of aborting, clip POSITION
1081 to the valid range of values. (Bug#14753)
1082
1083 * xdisp.c (Fmove_point_visually): Invalidate the cursor position
1084 when moving point by using the current glyph matrix. This avoids
1085 the need to force redisplay when this function is called in a
1086 loop.
1087
1088 2013-06-29 Paul Eggert <eggert@cs.ucla.edu>
1089
1090 Fix minor problems found by static checking.
1091 * coding.c (encode_inhibit_flag, inhibit_flag): New functions.
1092 Redo the latter's body to sidestep GCC parenthesization warnings.
1093 (setup_coding_system, detect_coding, detect_coding_system): Use them.
1094 * coding.c (detect_coding, detect_coding_system):
1095 * coding.h (struct undecided_spec):
1096 Use bool for boolean.
1097 * image.c (QCmax_width, QCmax_height): Now static.
1098 * xdisp.c (Fmove_point_visually): Remove unused local.
1099
1100 2013-06-29 Eli Zaretskii <eliz@gnu.org>
1101
1102 * xdisp.c (Fmove_point_visually): New function.
1103
1104 2013-06-28 Kenichi Handa <handa@gnu.org>
1105
1106 * coding.h (define_coding_undecided_arg_index): New enum.
1107 (coding_attr_index): New members
1108 coding_attr_undecided_inhibit_null_byte_detection,
1109 coding_attr_undecided_inhibit_iso_escape_detection,
1110 coding_attr_undecided_prefer_utf_8.
1111 (undecided_spec): New struct.
1112 (struct coding_system): New member `undecided' of the member
1113 `spec'.
1114
1115 * coding.c (setup_coding_system): Handle CODING->spec.undecided.
1116 (detect_coding): Likewise.
1117 (detect_coding_system): Likewise.
1118 (Fdefine_coding_system_internal): New coding system properties
1119 :inhibit-null-byte-detection, :inhibit-iso-escape-detection, and
1120 :prefer-utf-8.
1121 (syms_of_coding): Adjust for coding_arg_undecided_max.
1122
1123 2013-06-28 Paul Eggert <eggert@cs.ucla.edu>
1124
1125 * image.c (x_from_xcolors): Remove unused local.
1126
1127 2013-06-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1128
1129 Defer image data transfer between X client and server until actual
1130 display happens.
1131
1132 * dispextern.h (struct image) [HAVE_X_WINDOWS]: New members `ximg'
1133 and `mask_img'.
1134
1135 * image.c (Destroy_Image): Remove.
1136 (x_clear_image_1): New arg `flags' instead of 3 bools `pixmap_p',
1137 `mask_p', and `colors_p'. All uses changed.
1138 (x_clear_image_1) [HAVE_X_WINDOWS]: Destroy `ximg' and `mask_img'.
1139 (CLEAR_IMAGE_PIXMAP, CLEAR_IMAGE_MASK, CLEAR_IMAGE_COLORS):
1140 New macros for `flags' arg to x_clear_image_1.
1141 (postprocess_image, xpm_load_image, x_build_heuristic_mask)
1142 (png_load_body): Use x_clear_image_1 instead of Free_Pixmap.
1143 (ZPixmap, XGetImage) [HAVE_NS]: Remove.
1144 (image_get_x_image_or_dc, image_unget_x_image_or_dc)
1145 (image_get_x_image, image_unget_x_image): New functions or macros.
1146 (image_background, image_background_transparent, x_to_xcolors)
1147 (x_build_heuristic_mask): Use image_get_x_image_or_dc instead of
1148 XGetImage or CreateCompatibleDC. Use image_unget_x_image_or_dc
1149 instead of Destroy_Image.
1150 (image_create_x_image_and_pixmap, image_put_x_image): New functions.
1151 (xpm_load_image, x_from_xcolors, x_build_heuristic_mask, pbm_load)
1152 (png_load_body, jpeg_load_body, tiff_load, gif_load)
1153 (imagemagick_load_image, svg_load_image): Use them instead of
1154 x_create_x_image_and_pixmap, and x_put_x_image followed by
1155 x_destroy_x_image, respectively.
1156 (xpm_load) [HAVE_XPM && !HAVE_NTGUI]: Use XpmReadFileToImage and
1157 XpmCreateImageFromBuffer instead of XpmReadFileToPixmap and
1158 XpmCreatePixmapFromBuffer. Create pixmaps. Fill background and
1159 background_transparent fields.
1160 (image_sync_to_pixmaps) [HAVE_X_WINDOWS]: New function.
1161 (prepare_image_for_display, x_disable_image) [HAVE_X_WINDOWS]: Use it.
1162
1163 2013-06-27 Paul Eggert <eggert@cs.ucla.edu>
1164
1165 Do not tickle glib SIGCHLD handling if Cygwin (Bug#14569).
1166 This mostly consists of undoing recent changes.
1167 * callproc.c (Fcall_process):
1168 * process.c (create_process):
1169 Do not worry about catching SIGCHLD here, undoing previous change.
1170 * nsterm.m (ns_term_init): Re-catch SIGCHLD, undoing previous change.
1171 * process.c, process.h (catch_child_signal):
1172 No longer extern if !NS_IMPL_GNUSTEP, undoing 06-22 change.
1173 * process.c (catch_child_handler): Don't worry about being called
1174 lazily and do not assume caller has blocked SIGCHLD, undoing
1175 previous change. Move first-time stuff back to
1176 init_process_emacs, undoing 06-22 change. If CYGWIN, do not
1177 tickle glib, as that causes Cygwin bootstrap to fail. Do not
1178 set lib_child_handler if it's already initialized, which may
1179 help avoid problems on GNUStep.
1180
1181 2013-06-23 Paul Eggert <eggert@cs.ucla.edu>
1182
1183 A more-conservative workaround for Cygwin SIGCHLD issues (Bug#14569).
1184 * callproc.c (Fcall_process):
1185 * process.c (create_process):
1186 Make sure SIGCHLD is caught before we fork,
1187 since Emacs startup no arranges to catch SIGCHLD.
1188 * process.c (lib_child_handler): Initialize to null, not to
1189 dummy_handler.
1190 (catch_child_signal): Allow self to be called lazily.
1191 Do nothing if it's already been called.
1192 Assume caller has blocked SIGCHLD (all callers do now).
1193 * emacs.c (main): Do not catch SIGCHLD here; defer it until
1194 just before it's really needed.
1195 * nsterm.m (ns_term_init): No need to re-catch SIGCHLD here,
1196 since it hasn't been caught yet.
1197
1198 2013-06-23 Lars Magne Ingebrigtsen <larsi@gnus.org>
1199
1200 * image.c (compute_image_size): New function to implement
1201 :max-width and :max-height.
1202 (imagemagick_load_image): Use it.
1203
1204 2013-06-23 Paul Eggert <eggert@cs.ucla.edu>
1205
1206 Try to avoid malloc SEGVs on Cygwin (Bug#14569).
1207 * callproc.c, process.h (block_child_signal, unblock_child_signal):
1208 Now extern.
1209 * emacs.c (main): Catch SIGCHLD just before initializing gfilenotify.
1210 * process.c (catch_child_signal): Block SIGCHLD while futzing with
1211 the SIGCHLD handler, since the code is not atomic and (due to glib)
1212 signals may be arriving now.
1213 * sysdep.c (init_signals): Do not catch child signals here;
1214 'main' now does that later, at a safer time.
1215
1216 2013-06-22 Paul Eggert <eggert@cs.ucla.edu>
1217
1218 Clean up SIGCHLD handling a bit (Bug#14569).
1219 * process.c, process.h (catch_child_signal):
1220 Now always extern, even if !NS_IMPL_GNUSTEP.
1221 * process.c (catch_child_signal): Move glib tickler here from
1222 init_process_emacs, so that it's done earlier in Emacs
1223 initialization. Also move the noninteractive && !initialized
1224 check here from init_process_emacs. This is all a bit cleaner for
1225 GNUish platforms, and I hope it works around the Cygwin bug.
1226 * sysdep.c (init_signals): Invoke catch_child_signal here, so
1227 that glib signal handling is tickled before glib creates threads.
1228
1229 * process.c (wait_reading_process_output): Avoid int overflow
1230 when reading more than 2 GiB total from a process.
1231
1232 2013-06-21 Paul Eggert <eggert@cs.ucla.edu>
1233
1234 * process.c (create_process): Handle a couple more cases,
1235 i.e., work even if new_argv and wait_child_setup[i] are cached.
1236 Use Fcall_process's style for volatile vars.
1237
1238 2013-06-21 Andreas Schwab <schwab@linux-m68k.org>
1239
1240 * process.c (create_process): Mark PROCESS volatile.
1241
1242 2013-06-21 Paul Eggert <eggert@cs.ucla.edu>
1243
1244 Use C99-style flexible array members if available.
1245 This avoids some subtle aliasing issues, which typically
1246 aren't a problem with GCC but may be a problem elsewhere.
1247 * alloc.c (sdata): New typedef, replacing the old struct sdata.
1248 It is a struct if GC_CHECK_STRING_BYTES, a union otherwise.
1249 In either case, it uses a flexible array member rather than
1250 the old struct hack. All uses changed.
1251 (SDATA_NBYTES, sweep_strings) [!GC_CHECK_STRING_BYTES]:
1252 Adjust to sdata reorganization.
1253 * alloc.c (VBLOCK_BYTES_MIN, allocate_vectorlike, Fgarbage_collect):
1254 Use offsetof (struct, flex_array_member), not sizeof (struct), as
1255 that ports better to pre-C99 non-GCC.
1256 * chartab.c (Fmake_char_table, make_sub_char_table, copy_char_table):
1257 Use CHAR_TABLE_STANDARD_SLOTS rather than its definition,
1258 as the latter has changed.
1259 * conf_post.h (FLEXIBLE_ARRAY_MEMBER): Move here from w32.c,
1260 and port better to pre-C99 GCC.
1261 * image.c (struct xpm_cached_color):
1262 * lisp.h (struct Lisp_Vector, struct Lisp_Bool_Vector)
1263 (struct Lisp_Char_Table, struct Lisp_Sub_Char_Table):
1264 Use FLEXIBLE_ARRAY_MEMBER.
1265 * lisp.h (string_bytes) [GC_CHECK_STRING_BYTES]:
1266 Move decl to top level so it gets checked against implementation.
1267 (CHAR_TABLE_STANDARD_SLOTS): Adjust to struct Lisp_Char_Table change.
1268 * w32.c (FLEXIBLE_ARRAY_MEMBER): Move to conf_post.h.
1269
1270 2013-06-20 Paul Eggert <eggert@cs.ucla.edu>
1271
1272 * syntax.c: Integer cleanups.
1273 (SYNTAX_FLAGS_COMMENT_STYLEC): Return a boolean, not 0-or-2.
1274 All uses that need 0-or-2 changed to:
1275 (SYNTAX_FLAGS_COMMENT_STYLEC2): New macro, with the same semantics
1276 as the old SYNTAX_FLAGS_COMMENT_STYLEC.
1277 (struct lisp_parse_state, syntax_prefix_flag_p, update_syntax_table)
1278 (char_quoted, prev_char_comend_first, back_comment)
1279 (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
1280 (in_classes, forw_comment, scan_lists, scan_sexps_forward):
1281 Use bool for boolean.
1282 (update_syntax_table, skip_chars, skip_syntaxes):
1283 Prefer int to unsigned when either will do.
1284 (back_comment): Return boolean success flag, like forw_comment,
1285 instead of positive-or-minus-1 (which might have overflowed int anyway).
1286 Don't stuff ptrdiff_t into int.
1287 (syntax_spec_code, syntax_code_spec): Now const.
1288 (Fmatching_paren, scan_lists, scan_sexps_forward):
1289 Use enum syntaxcode for syntax code.
1290 (Fmatching_paren): Check that arg is a character, not just an integer.
1291 (Fstring_to_syntax): Don't assume 0377 fits in enum syntaxcode.
1292 (Finternal_describe_syntax_value): Omit no-longer-needed
1293 comparison to 0.
1294 (skip_chars): Use char, not unsigned char, when the distinction
1295 doesn't matter.
1296 (forw_comment, scan_lists): Prefer A |= B to A = A || B when B's cheap.
1297 * bytecode.c (exec_byte_code):
1298 * syntax.c (syntax_spec_code, Fchar_syntax)
1299 (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
1300 (init_syntax_once):
1301 * syntax.h (SYNTAX_WITH_FLAGS):
1302 Omit unnecessary casts.
1303
1304 2013-06-20 Eli Zaretskii <eliz@gnu.org>
1305
1306 * w32fns.c (w32_wnd_proc): Don't compute the header line and mode
1307 line dimensions here, to avoid race conditions with the main
1308 thread. (Bug#14062, bug#14630, bug#14669)
1309
1310 * w32term.c (w32_draw_window_cursor): Compute the header line and
1311 mode line dimensions here.
1312 <w32_system_caret_window, w32_system_caret_hdr_height>:
1313 <w32_system_caret_mode_height>: New variables.
1314
1315 * w32term.h: Declare them.
1316
1317 2013-06-20 Paul Eggert <eggert@cs.ucla.edu>
1318
1319 * alloc.c (die): Move "assertion failed" string here ...
1320 * lisp.h (eassert): ... from here. Also, suppress evaluation of
1321 COND when SUPPRESS_CHECKING. This shrinks the executable text
1322 size by 0.8% to 2.2% when configured with --enable-checking,
1323 depending on optimization flags (GCC 4.8.1 x86-64).
1324
1325 * floatfns.c (Flog10): Move to Lisp (marked obsolete there).
1326
1327 2013-06-20 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
1328
1329 * floatfns.c (Flog) [HAVE_LOG2]: Use log2 if available and if the
1330 base is 2; this is more accurate.
1331
1332 2013-06-19 Juanma Barranquero <lekktu@gmail.com>
1333
1334 * sound.c (string_default): Move to !WINDOWSNT section.
1335 (Fplay_sound_internal) [WINDOWSNT]: Remove i_result to avoid warning.
1336
1337 2013-06-19 Paul Eggert <eggert@cs.ucla.edu>
1338
1339 * sound.c: Integer cleanups.
1340 Remove unnecessary forward decls.
1341 (struct sound_device): The 'file' member is now a Lisp_Object, not
1342 a char *, so that we needn't invoke alloca on a huge size.
1343 (Fplay_sound_internal): Adjust to this.
1344 (string_default): New function.
1345 (vox_open, vox_init, alsa_open, alsa_configure, alsa_init):
1346 Use it to adjust to the struct sound_device change.
1347 (parse_sound, wav_init, au_init, alsa_init): Use bool for booleans.
1348 (be2hs) [0]: Remove.
1349
1350 * syntax.c (skip_chars): Don't use uninitialized storage
1351 when searching a multibyte buffer for characters that are not in a
1352 unibyte string that contains non-ASCII characters.
1353
1354 2013-06-18 Jan Djärv <jan.h.d@swipnet.se>
1355
1356 * process.c: Include xgselect.h if HAVE_GLIB. Include glib.h
1357 if HAVE_GLIB && ! WINDOWSNT (Bug#14654).
1358
1359 2013-06-18 Paul Eggert <eggert@cs.ucla.edu>
1360
1361 * conf_post.h: Add comments for INLINE, EXTERN_INLINE, etc.
1362
1363 2013-06-18 Kenichi Handa <handa@gnu.org>
1364
1365 * font.c (Ffont_spec): Signal an error for an invalid font name
1366 (Bug#14648).
1367
1368 2013-06-18 Paul Eggert <eggert@cs.ucla.edu>
1369
1370 Porting fixes for merged specpdl and backtrace stacks (Bug#14643).
1371 In particular this ports to 32-bit sparc Sun cc.
1372 * eval.c (init_eval_once, grow_specpdl): Allocate a specbinding
1373 array with a dummy element at specpdl[-1], so that its address can
1374 be taken portably.
1375 (unbind_to): Do not copy the binding; not needed, now that we
1376 copy old_value in the one place where the copy is needed.
1377 * fileio.c (Fwrite_region): Use ptrdiff_t, not int, for specpdl count.
1378 * lisp.h (BITS_PER_PTRDIFF_T): Remove; no longer needed.
1379 (union specbinding): Rename from struct specbinding. Redo layout
1380 to avoid the need for 'ptrdiff_t nargs : BITS_PER_PTRDIFF_T - 1;',
1381 which is not portable. With Sun C 5.12 32-bit sparc, the
1382 declaration causes nargs to be an unsigned bitfield, a behavior
1383 that the C standard allows; but Emacs wants nargs to be signed.
1384 The overall type is now a union of structures rather than a
1385 structure of union of structures, and the 'kind' member is now a
1386 bitfield, so that the overall type doesn't grow. All uses changed.
1387 * process.c (Fmake_serial_process): Remove unnecessary initialization.
1388
1389 2013-06-17 Paul Eggert <eggert@cs.ucla.edu>
1390
1391 * frame.c (x_report_frame_params): Cast parent_desc to uintptr_t.
1392 Needed if HAVE_NTGUI. Reported by Juanma Barranquero.
1393
1394 * nsfont.m (ns_registry_to_script): Parenthesize while expression.
1395
1396 2013-06-17 Eli Zaretskii <eliz@gnu.org>
1397
1398 * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
1399 unless we know that the window w's frame is a frame object.
1400 Another attempt at solving bug#14062 and bug#14630.
1401
1402 2013-06-17 Lars Magne Ingebrigtsen <larsi@gnus.org>
1403
1404 * textprop.c (property_set_type): New enum.
1405 (add_properties): Allow appending/prepending text properties.
1406 (add_text_properties_1): Factored out of Fadd_text_properties.
1407 (Fadd_text_properties): Move all the code into
1408 add_text_properties_1.
1409 (Fadd_face_text_property): New function that calls
1410 add_text_properties_1.
1411
1412 2013-06-17 Paul Eggert <eggert@cs.ucla.edu>
1413
1414 Move functions from lisp.h to individual modules when possible.
1415 From a suggestion by Andreas Schwab in <http://bugs.gnu.org/11935#68>.
1416 * alloc.c (XFLOAT_INIT, set_symbol_name):
1417 * buffer.c (CHECK_OVERLAY):
1418 * chartab.c (CHECK_CHAR_TABLE, set_char_table_ascii)
1419 (set_char_table_parent):
1420 * coding.c (CHECK_NATNUM_CAR, CHECK_NATNUM_CDR):
1421 * data.c (BOOLFWDP, INTFWDP, KBOARD_OBJFWDP, OBJFWDP, XBOOLFWD)
1422 (XKBOARD_OBJFWD, XINTFWD, XOBJFWD, CHECK_SUBR, set_blv_found)
1423 (blv_value, set_blv_value, set_blv_where, set_blv_defcell)
1424 (set_blv_valcell):
1425 * emacs.c (setlocale) [!HAVE_SETLOCALE]:
1426 * eval.c (specpdl_symbol, specpdl_old_value, specpdl_where)
1427 (specpdl_arg, specpdl_func, backtrace_function, backtrace_nargs)
1428 (backtrace_args, backtrace_debug_on_exit):
1429 * floatfns.c (CHECK_FLOAT):
1430 * fns.c (CHECK_HASH_TABLE, CHECK_LIST_END)
1431 (set_hash_key_and_value, set_hash_next, set_hash_next_slot)
1432 (set_hash_hash, set_hash_hash_slot, set_hash_index)
1433 (set_hash_index_slot):
1434 * keymap.c (CHECK_VECTOR_OR_CHAR_TABLE):
1435 * marker.c (CHECK_MARKER):
1436 * textprop.c (CHECK_STRING_OR_BUFFER):
1437 * window.c (CHECK_WINDOW_CONFIGURATION):
1438 Move here from lisp.h, and make these functions static rather than
1439 extern inline.
1440 * buffer.c (Qoverlayp):
1441 * data.c (Qsubrp):
1442 * fns.c (Qhash_table_p):
1443 * window.c (Qwindow_configuration_p):
1444 Now static.
1445 * lisp.h: Remove the abovementioned defns and decls.
1446
1447 Use functions, not macros, for XINT etc. (Bug#11935).
1448 In lisp.h, prefer functions to function-like macros, and
1449 constants to object-like macros, when either will do. This:
1450 . simplifies use, as there's no more need to worry about
1451 arguments' side effects being evaluated multiple times.
1452 . makes the code easier to debug on some platforms.
1453 However, when using gcc -O0, keep using function-like macros
1454 for a few critical operations, for performance reasons.
1455 This sort of thing isn't needed with gcc -Og, but -Og
1456 is a GCC 4.8 feature and isn't widely-enough available yet.
1457 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]:
1458 Remove enum lsb_bits; no longer needed.
1459 (allocate_misc, free_misc): Don't use XMISCTYPE as an lvalue.
1460 * buffer.c (Qoverlap):
1461 * data.c (Qsubrp):
1462 * fns.c (Qhash_table_p):
1463 Now extern, so lisp.h can use these symbols.
1464 * dispextern.h: Include character.h, for MAX_CHAR etc.
1465 (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE)
1466 (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
1467 (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P)
1468 (GLYPH_CODE_P): Move here from lisp.h.
1469 (GLYPH_CHAR, GLYPH_FACE, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
1470 (GLYPH_CHAR_VALID_P, GLYPH_CODE_P): Now functions, not macros.
1471 (GLYPH_MODE_LINE_FACE): Now enums, not macros.
1472 * eval.c (Fautoload): Cast XUNTAG output to intptr_t, since
1473 XUNTAG now returns void *.
1474 * lisp.h (lisp_h_XLI, lisp_h_XIL, lisp_h_CHECK_LIST_CONS)
1475 (lisp_h_CHECK_NUMBER CHECK_SYMBOL, lisp_h_CHECK_TYPE)
1476 (lisp_h_CONSP, lisp_h_EQ, lisp_h_FLOATP, lisp_h_INTEGERP)
1477 (lisp_h_MARKERP, lisp_h_MISCP, lisp_h_NILP)
1478 (lisp_h_SET_SYMBOL_VAL, lisp_h_SYMBOL_CONSTANT_P)
1479 (lisp_h_SYMBOL_VAL, lisp_h_SYMBOLP, lisp_h_VECTORLIKEP)
1480 (lisp_h_XCAR, lisp_h_XCDR, lisp_h_XCONS, lisp_h_XHASH)
1481 (lisp_h_XPNTR, lisp_h_XSYMBOL):
1482 New macros, renamed from their sans-lisp_h_ counterparts.
1483 (XLI, XIL, CHECK_LIST_CONS, CHECK_NUMBER CHECK_SYMBOL)
1484 (CHECK_TYPE, CONSP, EQ, FLOATP, INTEGERP, MARKERP)
1485 (MISCP, NILP, SET_SYMBOL_VAL, SYMBOL_CONSTANT_P, SYMBOL_VAL, SYMBOLP)
1486 (VECTORLIKEP, XCAR, XCDR, XCONS, XHASH, XPNTR, XSYMBOL):
1487 If compiling via GCC without optimization, define these as macros
1488 in addition to inline functions.
1489 To disable this, compile with -DINLINING=0.
1490 (LISP_MACRO_DEFUN, LISP_MACRO_DEFUN_VOID): New macros.
1491 (check_cons_list) [!GC_CHECK_CONS_LIST]: Likewise.
1492 (make_number, XFASTINT, XINT, XTYPE, XUNTAG): Likewise, but
1493 hand-optimize only in the USE_LSB_TAG case, as GNUish hosts do that.
1494 (INTMASK, VALMASK): Now macros, since static values cannot be
1495 accessed from extern inline functions.
1496 (VALMASK): Also a constant, for benefit of old GDB.
1497 (LISP_INT_TAG_P): Remove; no longer needed as the only caller
1498 is INTEGERP, which can fold it in.
1499 (XLI, XIL, XHASH, XTYPE, XINT, XFASTINT, XUINT)
1500 (make_number, XPNTR, XUNTAG, EQ, XCONS, XVECTOR, XSTRING, XSYMBOL)
1501 (XFLOAT, XPROCESS, XWINDOW, XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE)
1502 (XSUB_CHAR_TABLE, XBOOL_VECTOR, make_lisp_ptr, CHECK_TYPE)
1503 (CHECK_STRING_OR_BUFFER, XCAR, XCDR, XSETCAR, XSETCDR, CAR, CDR)
1504 (CAR_SAFE, CDR_SAFE, STRING_MULTIBYTE, SDATA, SSDATA, SREF, SSET)
1505 (SCHARS, STRING_BYTES, SBYTES, STRING_SET_CHARS, STRING_COPYIN, AREF)
1506 (ASIZE, ASET, CHAR_TABLE_REF_ASCII, CHAR_TABLE_REF)
1507 (CHAR_TABLE_SET, CHAR_TABLE_EXTRA_SLOTS, SYMBOL_VAL, SYMBOL_ALIAS)
1508 (SYMBOL_BLV, SYMBOL_FWD, SET_SYMBOL_VAL, SET_SYMBOL_ALIAS)
1509 (SET_SYMBOL_BLV, SET_SYMBOL_FWD, SYMBOL_NAME, SYMBOL_INTERNED_P)
1510 (SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P, SYMBOL_CONSTANT_P)
1511 (XHASH_TABLE, HASH_TABLE_P, CHECK_HASH_TABLE, HASH_KEY, HASH_VALUE)
1512 (HASH_NEXT, HASH_HASH, HASH_INDEX, HASH_TABLE_SIZE)
1513 (XMISC, XMISCANY, XMARKER, XOVERLAY, XSAVE_VALUE, XFWDTYPE)
1514 (XINTFWD, XBOOLFWD, XOBJFWD, XBUFFER_OBJFWD, XKBOARD_OBJFWD)
1515 (XFLOAT_DATA, XFLOAT_INIT, NILP, NUMBERP, NATNUMP)
1516 (RANGED_INTEGERP, CONSP, FLOATP, MISCP, STRINGP, SYMBOLP)
1517 (INTEGERP, VECTORLIKEP, VECTORP, OVERLAYP)
1518 (MARKERP, SAVE_VALUEP, AUTOLOADP, INTFWDP, BOOLFWDP, OBJFWDP)
1519 (BUFFER_OBJFWDP, KBOARD_OBJFWDP, PSEUDOVECTOR_TYPEP)
1520 (PSEUDOVECTORP, WINDOW_CONFIGURATIONP, PROCESSP, WINDOWP)
1521 (TERMINALP, SUBRP, COMPILEDP, BUFFERP, CHAR_TABLE_P)
1522 (SUB_CHAR_TABLE_P, BOOL_VECTOR_P, FRAMEP, IMAGEP, ARRAYP)
1523 (CHECK_LIST, CHECK_LIST_CONS, CHECK_LIST_END, CHECK_STRING)
1524 (CHECK_STRING_CAR, CHECK_CONS, CHECK_SYMBOL, CHECK_CHAR_TABLE)
1525 (CHECK_VECTOR, CHECK_VECTOR_OR_STRING, CHECK_ARRAY)
1526 (CHECK_VECTOR_OR_CHAR_TABLE, CHECK_BUFFER, CHECK_WINDOW)
1527 (CHECK_WINDOW_CONFIGURATION, CHECK_PROCESS, CHECK_SUBR)
1528 (CHECK_NUMBER, CHECK_NATNUM, CHECK_MARKER, XFLOATINT)
1529 (CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT, CHECK_OVERLAY)
1530 (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR, CHECK_NATNUM_CAR)
1531 (CHECK_NATNUM_CDR, FUNCTIONP, SPECPDL_INDEX, LOADHIST_ATTACH)
1532 Now functions.
1533 (check_cons_list) [!GC_CHECK_CONS_LIST]: New empty function.
1534 (LISP_MAKE_RVALUE, TYPEMASK): Remove; no longer needed.
1535 (VALMASK): Define in one place rather than in two, merging the
1536 USE_LSB_TAG parts; this is simpler.
1537 (aref_addr, gc_aset, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM)
1538 (max, min, struct Lisp_String, UNSIGNED_CMP, ASCII_CHAR_P):
1539 Move up, to avoid use before definition.
1540 Also include "globals.h" earlier, for the same reason.
1541 (make_natnum): New function.
1542 (XUNTAG): Now returns void *, not intptr_t, as this means fewer casts.
1543 (union Lisp_Fwd, BOOLFWDP, BOOL_VECTOR_P, BUFFER_OBJFWDP, BUFFERP)
1544 (CHAR_TABLE_P, CHAR_TABLE_REF_ASCII, CONSP, FLOATP, INTEGERP, INTFWDP)
1545 (KBOARD_OBJFWDP, MARKERP, MISCP, NILP, OBJFWDP, OVERLAYP, PROCESSP)
1546 (PSEUDOVECTORP, SAVE_VALUEP, STRINGP, SUB_CHAR_TABLE_P, SUBRP, SYMBOLP)
1547 (VECTORLIKEP, WINDOWP, Qoverlayp, char_table_ref, char_table_set)
1548 (char_table_translate, Qarrayp, Qbufferp, Qbuffer_or_string_p)
1549 (Qchar_table_p, Qconsp, Qfloatp, Qintegerp, Qlambda, Qlistp, Qmarkerp)
1550 (Qnil, Qnumberp, Qsubrp, Qstringp, Qsymbolp, Qvectorp)
1551 (Qvector_or_char_table_p, Qwholenump, Ffboundp, wrong_type_argument)
1552 (initialized, Qhash_table_p, extract_float, Qprocessp, Qwindowp)
1553 (Qwindow_configuration_p, Qimage): New forward declarations.
1554 (XSETFASTINT): Simplify by rewriting in terms of make_natnum.
1555 (STRING_COPYIN): Remove; unused.
1556 (XCAR_AS_LVALUE, XCDR_AS_LVALUE): Remove these macros, replacing with ...
1557 (xcar_addr, xcdr_addr): New functions. All uses changed.
1558 (IEEE_FLOATING_POINT): Now a constant, not a macro.
1559 (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE)
1560 (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
1561 (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P)
1562 (GLYPH_CODE_P): Move to dispextern.h, to avoid define-before-use.
1563 (TYPE_RANGED_INTEGERP): Simplify.
1564 (Qsubrp, Qhash_table_p, Qoverlayp): New extern decls.
1565 (setlocale, fixup_locale, synchronize_system_messages_locale)
1566 (synchronize_system_time_locale) [!HAVE_SETLOCALE]:
1567 Now empty functions, not macros.
1568 (functionp): Return bool, not int.
1569 * window.c (Qwindow_configuration_p): Now extern,
1570 so window.h can use it.
1571 * window.h (Qwindowp): Move decl back to lisp.h.
1572
1573 2013-06-15 Eli Zaretskii <eliz@gnu.org>
1574
1575 * xdisp.c (Fline_pixel_height): New function, required for solving
1576 bug #14567.
1577
1578 2013-06-15 Paul Eggert <eggert@cs.ucla.edu>
1579
1580 * fns.c (Fcopy_sequence): Simplify XTYPE calculation.
1581
1582 2013-06-13 Stefan Monnier <monnier@iro.umontreal.ca>
1583
1584 * lread.c (syms_of_lread):
1585 * fns.c (Fprovide): Adjust to new format of after-load-alist.
1586
1587 2013-06-13 Kelly Dean <kellydeanch@yahoo.com> (tiny change)
1588
1589 * fileio.c (Fdo_auto_save): Trap errors in auto-save-hook. (Bug#14479)
1590
1591 2013-06-12 Xue Fuqiao <xfq.free@gmail.com>
1592
1593 * fileio.c (expand_file_name): Doc fix.
1594
1595 2013-06-11 Paul Eggert <eggert@cs.ucla.edu>
1596
1597 Tickle glib by waiting for Emacs itself, not for process 0 (Bug#14569).
1598 * process.c (init_process_emacs) [HAVE_GLIB && !WINDOWSNT]:
1599 Wait for self, not for 0. This can't hurt on GNU or similar
1600 system, and may help with Cygwin.
1601
1602 * keyboard.c: Don't use PROP (...) as an lvalue.
1603 (parse_tool_bar_item) [!USE_GTK && !HAVE_NS]:
1604 Use set_prop (A, B), not PROP (A) = B.
1605
1606 2013-06-10 Eli Zaretskii <eliz@gnu.org>
1607
1608 * xdisp.c (get_it_property): Use it->window instead of generating
1609 a Lisp object from it->w.
1610
1611 2013-06-09 Eli Zaretskii <eliz@gnu.org>
1612
1613 * xdisp.c (get_it_property): If it->object is a buffer, pass to
1614 get-char-property the window that is being rendered, instead of
1615 the buffer, to support window-specific overlays. (Bug#14575)
1616 (compute_display_string_pos): When W is NULL, use the current
1617 buffer as the object to pass to get-char-property.
1618 (Fcurrent_bidi_paragraph_direction): Assign NULL to the window
1619 pointer member of the bidi iterator, since no window is pertinent
1620 to this function.
1621
1622 2013-06-08 Eli Zaretskii <eliz@gnu.org>
1623
1624 * bidi.c (bidi_fetch_char): Accept additional argument, the window
1625 being displayed, and pass it to compute_display_string_pos.
1626 (bidi_level_of_next_char, bidi_resolve_explicit_1)
1627 (bidi_paragraph_init): All callers changed.
1628
1629 * xdisp.c (init_from_display_pos, init_iterator)
1630 (handle_single_display_spec, next_overlay_string)
1631 (get_overlay_strings_1, reseat_1, reseat_to_string)
1632 (push_prefix_prop, Fcurrent_bidi_paragraph_direction):
1633 Set bidi_it.w member from it->w.
1634 (compute_display_string_pos): Accept additional argument, the
1635 window being displayed, and pass it to Fget_char_property.
1636 (Bug#14575)
1637
1638 * dispextern.h (struct bidi_it): New member w, the window being
1639 displayed.
1640 (compute_display_string_pos): Adjust prototype.
1641
1642 2013-06-08 Jan Djärv <jan.h.d@swipnet.se>
1643
1644 * xgselect.c: Remove unneeded include xterm.h.
1645
1646 * process.c (wait_reading_process_output): Check for NS before GLIB.
1647 GLIB may be linked in due to rsvg, but ns_select must be called.
1648
1649 * xgselect.c (xg_select): Remove call to window_system_available
1650 and g_main_context_pending at the top, so Gdk events (i.e. file
1651 notify) are processed when Emacs is started with -nw.
1652
1653 2013-06-07 Eli Zaretskii <eliz@gnu.org>
1654
1655 * Makefile.in (ctagsfiles1, ctagsfiles2): Don't include *.m files.
1656 (ctagsfiles3): New variable, includes only *.m files.
1657 (TAGS): Use an explicit language name in the regular expressions,
1658 to avoid transformation of '/SOMETHING' by MSYS to
1659 'c:\MSYS\SOMETHING'.
1660
1661 2013-06-07 Richard Copley <rcopley@gmail.com> (tiny change)
1662
1663 * epaths.in: Fix commentary to PATH_SITELOADSEARCH.
1664
1665 2013-06-06 Eli Zaretskii <eliz@gnu.org>
1666
1667 * xdisp.c (note_mouse_highlight): When mouse-highlight is off,
1668 still need to set the mouse pointer shape and activate help-echo.
1669 (Bug#14558)
1670
1671 2013-06-06 Paul Eggert <eggert@cs.ucla.edu>
1672
1673 A few porting etc. fixes for the new file monitor code.
1674 See the thread containing
1675 <http://lists.gnu.org/archive/html/emacs-devel/2013-06/msg00109.html>.
1676 * gfilenotify.c (dir_monitor_callback, Fgfile_add_watch)
1677 (Fgfile_rm_watch): Don't assume EMACS_INT is the same width as a pointer.
1678 (dir_monitor_callback, Fgfile_rm_watch):
1679 Use assq_no_quit instead of Fassoc, for speed.
1680 (dir_monitor_callback, Fgfile_rm_watch):
1681 eassert that the monitor is a fixnum.
1682 (dir_monitor_callback): No need for CDR_SAFE.
1683 Simplify building of lisp with alternative tails.
1684 (Fgfile_add_watch, Fgfile_rm_watch):
1685 Do not assume glib functions set errno reliably on failure.
1686 (Fgfile_add_watch): Check that the monitor survives the XIL trick,
1687 and signal an error otherwise.
1688 (Fgfile_rm_watch): Prefer CONSP to !NILP.
1689 Use Fdelq instead of Fdelete, for speed.
1690
1691 2013-06-05 Eli Zaretskii <eliz@gnu.org>
1692
1693 * xdisp.c (handle_tool_bar_click): When mouse-highlight is off,
1694 don't insist on being invoked on a highlighted tool-bar button.
1695 Avoids losing tool-bar functionality when mouse-highlight is nil.
1696 (note_tool_bar_highlight, note_mode_line_or_margin_highlight):
1697 Don't highlight when mouse-highlight is nil.
1698 (note_mouse_highlight): When mouse-highlight is nil, don't return
1699 right away; instead, run tool-bar and mode-line highlight
1700 subroutine, clear any existing highlight, and revert the mouse
1701 pointer to its default shape. (Bug#14558)
1702
1703 2013-06-05 Stefan Monnier <monnier@iro.umontreal.ca>
1704
1705 * lisp.mk (lisp): Add prog-mode.el.
1706
1707 2013-06-05 Paul Eggert <eggert@cs.ucla.edu>
1708
1709 Chain glib's SIGCHLD handler from Emacs's (Bug#14474).
1710 * process.c (dummy_handler): New function.
1711 (lib_child_handler): New static var.
1712 (handle_child_signal): Invoke it.
1713 (catch_child_signal): If a library has set up a signal handler,
1714 save it into lib_child_handler.
1715 (init_process_emacs): If using glib and not on Windows, tickle glib's
1716 child-handling code so that it initializes its private SIGCHLD handler.
1717 * syssignal.h (SA_SIGINFO): Default to 0.
1718 * xterm.c (x_term_init): Remove D-bus hack that I installed on May
1719 31; it should no longer be needed now.
1720
1721 2013-06-05 Michael Albinus <michael.albinus@gmx.de>
1722
1723 * emacs.c (main) [HAVE_GFILENOTIFY]: Call globals_of_gfilenotify.
1724
1725 * gfilenotify.c (globals_of_gfilenotify): New function.
1726 (syms_of_gfilenotify): Move global initialization there.
1727
1728 * lisp.h (globals_of_gfilenotify) [HAVE_GFILENOTIFY]: Add prototype.
1729
1730 2013-06-05 Stefan Monnier <monnier@iro.umontreal.ca>
1731
1732 * keymap.c (Fcurrent_active_maps, Fdescribe_buffer_bindings):
1733 * keyboard.c (menu_bar_items, tool_bar_items):
1734 * doc.c (Fsubstitute_command_keys): Voverriding_terminal_local_map does
1735 not override local keymaps any more.
1736
1737 2013-06-04 Eli Zaretskii <eliz@gnu.org>
1738
1739 * window.c (Fpos_visible_in_window_p): Doc fix. (Bug#14540)
1740
1741 2013-06-03 Eli Zaretskii <eliz@gnu.org>
1742
1743 * w32console.c (initialize_w32_display): Return the dimensions of
1744 the console window via 2 additional arguments, not via the current
1745 frame. This avoids crashes due to overrunning the bounds of
1746 frame's decode_mode_spec_buffer, which is not resized following
1747 the change of the frame dimensions from the initial 10x10.
1748
1749 * w32term.h (w32_initialize_display_info): Adjust prototype.
1750
1751 * term.c (init_tty): Take dimensions of the frame from the values
1752 returned by initialize_w32_display.
1753
1754 * Makefile.in (GFILENOTIFY_CFLAGS, GFILENOTIFY_LIBS): New variables.
1755 (ALL_CFLAGS): Add $(GFILENOTIFY_CFLAGS).
1756 (LIBES): Add $(GFILENOTIFY_LIBS).
1757
1758 * w32inevt.c (handle_file_notifications): Add dummy implementation
1759 for !HAVE_W32NOTIFY.
1760
1761 * w32term.c: Wrap code with HAVE_W32NOTIFY.
1762
1763 2013-06-03 Jan Djärv <jan.h.d@swipnet.se>
1764
1765 * xgselect.c: Replace #if defined ... with #ifdef HAVE_GLIB.
1766
1767 * process.c (wait_reading_process_output): Call xg_select if HAVE_GLIB.
1768
1769 * Makefile.in (XGSELOBJ): New, xgselect.o if GLib is used, or empty.
1770
1771 2013-06-03 Paul Eggert <eggert@cs.ucla.edu>
1772
1773 Fix minor problems found by static checking.
1774 * data.c (pure_write_error):
1775 Use xsignal2, not Fsignal, as Fsignal might return.
1776 * eval.c (set_backtrace_debug_on_exit): Now static.
1777 (backtrace_p, backtrace_top, backtrace_next, record_in_backtrace):
1778 No longer inline. EXTERN_INLINE is needed only for functions
1779 defined in .h files. Reindent function header as per GNU style.
1780 (backtrace_p, backtrace_top, backtrace_next):
1781 Mark EXTERNALLY_VISIBLE so they don't get optimized away by the
1782 compiler or linker. Add extern decls to pacify gcc -Wall.
1783 * frame.c, frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
1784 Now static.
1785 * frame.c (free_monitors): Define only on platforms that need it.
1786 * nsterm.m (ns_term_init):
1787 * process.c (catch_child_signal):
1788 Don't worry about whether SIGCHLD is defined, as SIGCHLD is
1789 defined on all porting targets these days.
1790 * process.c, process.h (catch_child_signal):
1791 Make it extern only if NS_IMPL_GNUSTEP is defined.
1792
1793 2013-06-03 Eli Zaretskii <eliz@gnu.org>
1794
1795 * w32.c (gettimeofday): Make the signature identical to prototype
1796 in nt/inc/sys/time.h.
1797
1798 2013-06-03 Stefan Monnier <monnier@iro.umontreal.ca>
1799
1800 * eval.c (backtrace_p, backtrace_top, backtrace_next): Export them to
1801 .gdbinit.
1802
1803 * keyboard.c (safe_run_hooks_error): Improve error message.
1804
1805 * data.c (pure_write_error): Add `object' argument.
1806 * puresize.h (CHECK_IMPURE): Use it.
1807
1808 2013-06-03 Michael Albinus <michael.albinus@gmx.de>
1809
1810 * Makefile.in (NOTIFY_OBJ): New variable.
1811 (base_obj): Replace inotify.o by $(NOTIFY_OBJ).
1812
1813 * emacs.c (main): Use HAVE_W32NOTIFY to wrap respective code.
1814 Call syms_of_gfilenotify.
1815
1816 * gfilenotify.c: New file.
1817
1818 * keyboard.c (Qfile_notify): New variable. Replaces Qfile_inotify
1819 and Qfile_w32notify.
1820 (top): Wrap respective code by HAVE_GFILENOTIFY, HAVE_INOTIFY,
1821 HAVE_W32NOTIFY and USE_FILE_NOTIFY.
1822
1823 * lisp.h: Declare syms_of_gfilenotify.
1824
1825 * termhooks.h (e): Wrap enum by USE_FILE_NOTIFY.
1826
1827 2013-06-03 Stefan Monnier <monnier@iro.umontreal.ca>
1828
1829 Merge the specpdl and backtrace stacks. Make the structure of the
1830 specpdl entries more obvious via a tagged union of structs.
1831 * lisp.h (BITS_PER_PTRDIFF_T): New constant.
1832 (enum specbind_tag): New enum.
1833 (struct specbinding): Make it a tagged union of structs.
1834 Add a case for backtrace records.
1835 (specpdl_symbol, specpdl_old_value, specpdl_where, specpdl_arg)
1836 (specpdl_func, backtrace_function, backtrace_nargs, backtrace_args)
1837 (backtrace_debug_on_exit): New accessors.
1838 (struct backtrace): Remove.
1839 (struct catchtag): Remove backlist field.
1840 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
1841 Move to eval.c.
1842 (Flocal_variable_p): Speed up the common case where the binding is
1843 already loaded.
1844 * eval.c (backtrace_list): Remove.
1845 (set_specpdl_symbol, set_specpdl_old_value): Remove.
1846 (set_backtrace_args, set_backtrace_nargs)
1847 (set_backtrace_debug_on_exit, backtrace_p, backtrace_top)
1848 (backtrace_next): New functions.
1849 (Fdefvaralias, Fdefvar): Adjust to new specpdl format.
1850 (unwind_to_catch, internal_lisp_condition_case)
1851 (internal_condition_case, internal_condition_case_1)
1852 (internal_condition_case_2, internal_condition_case_n): Don't bother
1853 with backtrace_list any more.
1854 (Fsignal): Adjust to new backtrace format.
1855 (grow_specpdl): Move up.
1856 (record_in_backtrace): New function.
1857 (eval_sub, Ffuncall): Use it.
1858 (apply_lambda): Adjust to new backtrace format.
1859 (let_shadows_buffer_binding_p, let_shadows_global_binding_p): Move from
1860 data.c.
1861 (specbind): Adjust to new specpdl format. Simplify.
1862 (record_unwind_protect, unbind_to): Adjust to new specpdl format.
1863 (Fbacktrace_debug, Fbacktrace, Fbacktrace_frame): Adjust to new
1864 backtrace format.
1865 (mark_backtrace): Remove.
1866 (mark_specpdl, get_backtrace, backtrace_top_function): New functions.
1867 * xdisp.c (redisplay_internal): Use record_in_backtrace.
1868 * alloc.c (Fgarbage_collect): Use record_in_backtrace.
1869 Use mark_specpdl.
1870 * profiler.c (record_backtrace): Use get_backtrace.
1871 (handle_profiler_signal): Use backtrace_top_function.
1872 * .gdbinit (xbacktrace, hookpost-backtrace): Use new backtrace
1873 accessor functions.
1874
1875 2013-06-02 Jan Djärv <jan.h.d@swipnet.se>
1876
1877 * process.h (catch_child_signal): Declare.
1878
1879 * process.c (catch_child_signal): New function.
1880 (init_process_emacs): Call it.
1881
1882 * nsterm.m: Include process.h if NS_IMPL_GNUSTEP.
1883 (ns_menu_bar_is_hidden, menu_will_open_state): Define only if
1884 NS_IMPL_COCOA.
1885 (x_set_cursor_type): Remove declaration.
1886 (ns_update_begin): Only use r and bp if NS_IMPL_COCOA.
1887 (ns_update_end, ns_focus, ns_unfocus): Remove GNUStep specific code.
1888 (x_set_window_size): Remove 3 pixels from toolbar if NS_IMPL_GNUSTEP.
1889 (ns_get_color): Use F suffix on float.
1890 (ns_color_to_lisp, ns_query_color): Use EmacsCGFloat.
1891 (ns_get_rgb_color): Remove.
1892 (x_set_frame_alpha): Move view inside NS_IMPL_COCOA.
1893 (note_mouse_movement): x and y are CGFloat.
1894 (ns_draw_fringe_bitmap): Remove unused rowY.
1895 Change #if to COCOA && >= 10_6.
1896 (ns_draw_window_cursor): Remove unused overspill.
1897 (ns_draw_underwave): width and x are EamcsCGFloat.
1898 (ns_draw_box): thickness is CGFloat.
1899 (ns_dumpglyphs_image): Change #if to COCOA && >= 10_6.
1900 (ns_send_appdefined): When NS_IMPL_GNUSTEP, redirect to main thread
1901 if not in main thread.
1902 (ns_get_pending_menu_title, ns_check_menu_open)
1903 (ns_check_pending_open_menu): Put inside #if COCOA && >= 10_5.
1904 (ns_term_init): Call catch_child_signal if NS_IMPL_GNUSTEP && SIGCHLD.
1905 (sendFromMainThread:): New method.
1906 (changeFont:): size is CGFloat.
1907 (keyDown:): Check for Delete when NS_IMPL_GNUSTEP.
1908 Disable warning about permanent text.
1909 (characterIndexForPoint:): Adjust return type depending on GNUStep
1910 version.
1911 (mouseDown:): delta is CGFloat.
1912 (updateFrameSize): Remove unised variable f.
1913 (initFrameFromEmacs): Move toggleButton inside NS_IMPL_COCOA.
1914 Cast float to EmacsCGFloat.
1915 (windowWillUseStandardFrame:defaultFrame:): Set maximized_height
1916 also to -1 when restoring.
1917 (windowDidExitFullScreen:): Put call to updateCollectionBehaviour
1918 inside NS_IMPL_COCOA.
1919 (toggleFullScreen:): Put call to toggleFullScreen inside
1920 NS_IMPL_COCOA. Cast float to EmacsCGFloat.
1921 (setPosition:portion:whole:): por is CGFloat.
1922 (getMouseMotionPart:window:x:y:): Add F suffix to float.
1923 (mouseDown:): Use CGFloat.
1924 (mouseDragged:): Remove unised variable edge.
1925 (EmacsDocument): Implement for NS_IMPL_GNUSTEP.
1926
1927 * nsterm.h (EmacsCGFloat): Typedef for OSX and GNUStep when the size
1928 of CGFloat differs.
1929 (EmacsApp): New variable nextappdefined. Declare sendFromMainThread
1930 when NS_IMPL_GNUSTEP.
1931 (EmacsDocument): Declare when NS_IMPL_GNUSTEP.
1932 (EmacsView): Remove unlockFocusNeedsFlush, add windowDidMove.
1933 (EmacsToolbar): Add clearAll. Add tag argument to
1934 addDisplayItemWithImage.
1935 (EmacsSavePanel, EmacsOpenPanel): Remove getFilename and getDirectory.
1936
1937 * nsselect.m (ns_get_local_selection): Remove unused variable type.
1938
1939 * nsmenu.m (ns_update_menubar): Make static.
1940 (x_activate_menubar): Surround with ifdef NS_IMPL_COCOA
1941 (fillWithWidgetValue:): Add cast to SEL for setAction.
1942 (addSubmenuWithTitle:forFrame:): Add cast to SEL for action.
1943 (update_frame_tool_bar): Update code for GNUStep.
1944 (clearAll): New method.
1945 (addDisplayItemWithImage:idx:tag:helpText:enabled:): Handle new tag
1946 argument. Call insertItemWithItemIdentifier when NS_IMPL_GNUSTEP.
1947 Move identifierToItem setObject and activeIdentifiers addObject before
1948 call to insertItemWithItemIdentifier.
1949 (validateVisibleItems): Fix indentation.
1950 (toolbarAllowedItemIdentifiers:): Return activeIdentifiers.
1951 (initWithContentRect:styleMask:backing:defer:): Add ClosableWindow and
1952 UtilityWindow to aStyle, remove call to setStyleMask.
1953
1954 * nsimage.m (setXBMColor:, getPixelAtX:Y:): Use EmacsCGFloat.
1955
1956 * nsfont.m (ns_attribute_fvalue, ns_spec_to_descriptor)
1957 (ns_charset_covers, ns_get_covering_families, nsfont_open):
1958 Use F suffix on floats.
1959 (ns_char_width): Returns CGFloat.
1960 (ns_ascii_average_width): w is CGFloat instead of float.
1961 (nsfont_draw): cbuf and c are unsigned. Cast to char* in call to
1962 DPSxshow.
1963 (ns_glyph_metrics): CGFloat instead of float.
1964
1965 * nsfns.m (x_set_foreground_color, x_set_background_color):
1966 Use EmacsCGFloat.
1967 (ns_implicitly_set_icon_type, Fx_create_frame): Make static,
1968 remove unused variables.
1969 (Fns_read_file_name): Keep track if panel is for save.
1970 Use ns_filename_from_panel/ns_directory_from_panel.
1971 (Fns_list_services): delegate only used for COCOA.
1972 (Fns_convert_utf8_nfd_to_nfc): Remove warning for GNUStep.
1973 Just return the input if GNUStep.
1974 (x_screen_planes): Remove.
1975 (Fxw_color_values): Use EmacsCGFloat
1976 (Fns_display_monitor_attributes_list): Only get screen number for
1977 Cocoa.
1978 (getDirectory, getFilename): Remove from EmacsOpenPanel and
1979 EmacsSavePanel.
1980 (EmacsOpenPanel:ok:): Use ns_filename_from_panel and
1981 ns_directory_from_panel.
1982
1983 2013-06-01 Paul Eggert <eggert@cs.ucla.edu>
1984
1985 * process.c (handle_child_signal): Also use WCONTINUED.
1986 This is so that list-processes doesn't mistakenly list the process
1987 as stopped, when the process has actually been continued and is
1988 now running.
1989
1990 2013-05-31 Paul Eggert <eggert@cs.ucla.edu>
1991
1992 Don't let D-bus autolaunch mess up SIGCHLD handling (Bug#14474).
1993 * xterm.c (x_term_init): Inhibit D-Bus autolaunch if D-Bus is
1994 not already configured.
1995
1996 * fileio.c (Finsert_file_contents): Remove unused local (Bug#8447).
1997
1998 2013-05-29 Eli Zaretskii <eliz@gnu.org>
1999
2000 * Makefile.in (mostlyclean): Remove *.res files.
2001
2002 2013-05-29 Stefan Monnier <monnier@iro.umontreal.ca>
2003
2004 * fileio.c (Finsert_file_contents): Preserve undo info when reverting
2005 a buffer (bug#8447).
2006
2007 2013-05-27 Eli Zaretskii <eliz@gnu.org>
2008
2009 * xdisp.c (pos_visible_p): When CHARPOS is displayed frrom a
2010 display vector, and we backtrack, handle the case that the
2011 previous character position is also displayed from a display
2012 vector or covered by a display string or image. (Bug#14476)
2013
2014 2013-05-25 Jan Djärv <jan.h.d@swipnet.se>
2015
2016 * xfns.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove.
2017 (struct MonitorInfo, free_monitors): Remove.
2018 (x_make_monitor_attribute_list): Call make_monitor_attribute_list.
2019 (Fx_display_monitor_attributes_list): Call make_monitor_attribute_list.
2020 (syms_of_xfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size,
2021 Qframes, Qsource.
2022
2023 * nsfns.m (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove.
2024 (struct MonitorInfo, free_monitors): Remove.
2025 (ns_screen_name): Make static.
2026 (ns_make_monitor_attribute_list): Call make_monitor_attribute_list.
2027 (syms_of_nsfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size,
2028 Qframes, Qsource.
2029
2030 * frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
2031 (struct MonitorInfo): New struct.
2032 (free_monitors, make_monitor_attribute_list): Declare.
2033
2034 * frame.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
2035 New Lisp_Object:s.
2036 (free_monitors, make_monitor_attribute_list): New functions.
2037 (syms_of_frame): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes,
2038 Qsource.
2039
2040 2013-05-25 Xue Fuqiao <xfq.free@gmail.com>
2041
2042 * callproc.c (call_process): Refine the doc string. (Bug#14045)
2043
2044 2013-05-23 Stefan Monnier <monnier@iro.umontreal.ca>
2045
2046 * keyboard.c: Apply keyboard decoding only to events that come directly
2047 from the tty, not from unread-command-events (bug#14368).
2048 (read_event_from_main_queue): New function, extracted from read_char).
2049 (read_decoded_char): Remove.
2050 (read_decoded_event_from_main_queue): New function to replace it.
2051 (read_char): Use it.
2052 (read_key_sequence): Use read_char rather than read_decoded_char.
2053
2054 * keyboard.c (read_decoded_char): Don't decode under w32 (bug#14403).
2055
2056 2013-05-22 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
2057
2058 * casetab.c (init_casetab_once): Fix last change (bug#14424).
2059
2060 2013-05-22 Kenichi Handa <handa@gnu.org>
2061
2062 The following changes are to fix the setting of
2063 buffer-file-coding-system on, for instance, C-x RET c unix RET
2064 _FILE_OF_DOS_EOL_TYPE_ RET.
2065
2066 * coding.h (struct coding_system): New member detected_utf8_chars.
2067
2068 * coding.c (detect_coding_utf_8): Count characters and check EOL
2069 format. Include CATEGORY_MASK_UTF_8_AUTO in detect_info->found if
2070 BOM is there.
2071 (setup_coding_system): Do not initialize coding->head_ascii.
2072 (check_ascii): Do not set coding->eol_seen but update it. Do not
2073 call adjust_coding_eol_type here.
2074 (detect_coding): Fix detection of BOM for utf-8 and utf-16.
2075 If the eol-type of CODING is already specified, adjust the eol type
2076 of the found coding-system.
2077 (decode_coding_gap): Cancel previous change. Utilize the
2078 character numbers counted by detect_coding_utf_8. Fix detection
2079 of BOM for utf-8.
2080
2081 2013-05-21 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
2082
2083 * search.c (looking_at_1): Only set last_thing_searched if the match
2084 changed the match-data (bug#14281).
2085
2086 2013-05-21 Dmitry Antipov <dmantipov@yandex.ru>
2087
2088 * xdisp.c (reseat_at_previous_visible_line_start):
2089 Already declared in dispextern.h, so remove it here.
2090 (move_it_vertically_backward): Likewise.
2091
2092 2013-05-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2093
2094 * xfns.c (check_x_display_info): Don't use XINT for terminal object.
2095 (Fx_display_pixel_width, Fx_display_pixel_height)
2096 (Fx_display_mm_width, Fx_display_mm_height):
2097 Mention `display-monitor-attributes-list' in docstrings.
2098
2099 * nsfns.m (ns_get_screen): Remove function. All uses removed.
2100 (check_ns_display_info): Sync with check_x_display_info in xfns.c.
2101 (Fx_server_max_request_size, Fx_server_vendor, Fx_server_version)
2102 (Fx_display_screens, Fx_display_mm_width, Fx_display_mm_height)
2103 (Fx_display_backing_store, Fx_display_visual_class)
2104 (Fx_display_save_under, Fx_close_connection, Fxw_display_color_p)
2105 (Fx_display_grayscale_p, Fx_display_pixel_width)
2106 (Fx_display_pixel_height, Fx_display_planes)
2107 (Fx_display_color_cells): Sync args and docstrings with xfns.c.
2108 (Fx_display_screens): Don't confuse X11 screens with NS screens.
2109 (Fx_display_mm_width, Fx_display_mm_height)
2110 (Fx_display_pixel_width, Fx_display_pixel_width): Return width or
2111 height for all physical monitors as in X11.
2112
2113 * nsterm.m (x_display_pixel_width, x_display_pixel_height):
2114 Return pixel width or height for all physical monitors as in X11.
2115
2116 2013-05-18 Paul Eggert <eggert@cs.ucla.edu>
2117
2118 Port --enable-gcc-warnings to clang.
2119 * bytecode.c (exec_byte_code):
2120 * regex.c:
2121 Redo diagnostic pragmas to pacify clang, too.
2122 * dbusbind.c (xd_retrieve_arg): Do not use uninitialized variable.
2123 * editfns.c (Fencode_time):
2124 * fileio.c (file_accessible_directory_p):
2125 * font.c (font_unparse_xlfd):
2126 Use '&"string"[index]' instead of '"string" + (index)'.
2127 * undo.c (user_error): Remove; unused.
2128
2129 2013-05-16 Eli Zaretskii <eliz@gnu.org>
2130
2131 * insdel.c (insert_1_both): Document the arguments, instead of
2132 referring to insert_1, which no longer exists.
2133
2134 * xdisp.c (message_dolog): If the *Messages* buffer is shown in
2135 some window, increment windows_or_buffers_changed, so that
2136 *Messages* display in that window is updated. (Bug#14408)
2137
2138 * w32.c: Include epaths.h.
2139 (init_environment): Use cmdproxy.exe without leading directories.
2140 Support emacs.exe in src; point SHELL to cmdproxy in ../nt in that
2141 case.
2142 (gettimeofday): Adjust signature and return value to Posix
2143 expectations.
2144
2145 * unexw32.c (open_output_file): Delete the existing emacs.exe
2146 before creating it, to break the hard link to the versioned
2147 executable.
2148
2149 * Makefile.in (EMACS_MANIFEST, CM_OBJ, TEMACS_POST_LINK)
2150 (ADDSECTION, EMACS_HEAPSIZE, MINGW_TEMACS_POST_LINK)
2151 (FIRSTFILE_OBJ): New variables.
2152 (W32_RES): Rename to EMACSRES. All users changed.
2153 (base_obj): Use $(CM_OBJ).
2154 (ALLOBJS): Use $(FIRSTFILE_OBJ).
2155 (emacs$(EXEEXT)): Depend on $(ADDSECTION).
2156 (temacs$(EXEEXT)): Use $(TEMACS_POST_LINK), and move
2157 $(W32_RES_LINK) before $(LIBES).
2158 (emacs.res): Depend on $(EMACS_MANIFEST). Put emacs.rc in nt.
2159
2160 2013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
2161
2162 * makefile.w32-in (DOC): Use just "DOC".
2163
2164 * Makefile.in (bootstrap-clean): DOC-* doesn't exist any more.
2165
2166 * process.c: Export default filters and sentinels to Elisp.
2167 (Qinternal_default_process_sentinel, Qinternal_default_process_filter):
2168 New constants.
2169 (pset_filter, pset_sentinel, make_process, Fset_process_filter)
2170 (Fset_process_sentinel, Fformat_network_address):
2171 Default to them instead of nil.
2172 (server_accept_connection): Sentinels can't be nil any more.
2173 (read_and_dispose_of_process_output): New function, extracted from
2174 read_process_output.
2175 (read_process_output): Use it; filters can't be nil.
2176 (Finternal_default_process_filter): New function, extracted from
2177 read_process_output.
2178 (exec_sentinel_unwind): Remove function.
2179 (exec_sentinel): Don't zilch sentinel while running.
2180 (status_notify): Sentinels can't be nil.
2181 (Finternal_default_process_sentinel): New function extracted from
2182 status_notify.
2183 (setup_process_coding_systems): Default filter is not nil any more.
2184 (syms_of_process): Export new Elisp functions and initialize
2185 new constants.
2186 * lisp.h (make_lisp_proc): New function.
2187
2188 2013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
2189
2190 * regex.c (regex_compile) [\=, \>, \<]: Don't forget to set laststart.
2191
2192 2013-05-14 Eli Zaretskii <eliz@gnu.org>
2193
2194 * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
2195 unless we know that the window w is a leaf window.
2196 Another attempt at solving bug#14062.
2197
2198 2013-05-14 Jan Djärv <jan.h.d@swipnet.se>
2199
2200 * nsfont.m (ns_spec_to_descriptor): Retain and autorelease
2201 fdesc (Bug#14375).
2202
2203 2013-05-12 Paul Eggert <eggert@cs.ucla.edu>
2204
2205 * image.c (gif_load): Check that subimages fit (Bug#14345).
2206
2207 2013-05-09 Stefan Monnier <monnier@iro.umontreal.ca>
2208
2209 * lread.c (skip_dyn_eof): New function.
2210 (read1): Use it to skip the end of a file in response to #@00.
2211
2212 * doc.c (get_doc_string): Slightly relax the sanity checking.
2213
2214 2013-05-09 Jan Djärv <jan.h.d@swipnet.se>
2215
2216 * nsfns.m: Include IOGraphicsLib.h if Cocoa.
2217 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
2218 (MonitorInfo): New struct.
2219 (free_monitors, ns_screen_name, ns_make_monitor_attribute_list)
2220 (Fns_display_monitor_attributes_list): New functions.
2221 (display-usable-bounds): Remove.
2222 (syms_of_nsfns): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes and
2223 Qsource.
2224
2225 2013-05-09 Paul Eggert <eggert@cs.ucla.edu>
2226
2227 * xterm.h (GTK_PREREQ): Remove, replacing with GTK_CHECK_VERSION.
2228 (GTK_CHECK_VERSION): New macro, if not already defined.
2229 All uses of GTK_PREREQ, GTK_MAJOR_VERSION, etc.
2230 replaced by GTK_CHECK_VERSION.
2231
2232 2013-05-08 Paul Eggert <eggert@cs.ucla.edu>
2233
2234 * xterm.h (GTK_PREREQ): New macro.
2235 All simple uses of GTK_MAJOR_VERSION and GTK_MINOR_VERSION changed
2236 to use this macro instead, for consistency and clarity.
2237
2238 2013-05-08 Eli Zaretskii <eliz@gnu.org>
2239
2240 * xdisp.c (row_for_charpos_p): New function, with code of
2241 cursor_row_p, but accepts an additional argument CHARPOS instead
2242 of using a hardcoded PT.
2243 (cursor_row_p): Call row_for_charpos_p with 2nd argument PT.
2244 (row_containing_pos): Call row_for_charpos_p instead of partially
2245 doing the same. Fixes cursor positioning under longlines-mode
2246 when longlines-show-effect includes more than one newline, when
2247 moving the cursor vertically up.
2248
2249 2013-05-08 Juanma Barranquero <lekktu@gmail.com>
2250
2251 * makefile.w32-in (ACL_H): New macro.
2252 ($(BLD)/fileio.$(O)): Update dependencies.
2253
2254 2013-05-07 Paul Eggert <eggert@cs.ucla.edu>
2255
2256 Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295)
2257 * Makefile.in (LIB_ACL): New macro.
2258 (LIBACL_LIBS): Remove.
2259 (LIBES): Use LIB_ACL, not LIBACL_LIBS.
2260 * fileio.c: Include <acl.h>.
2261 Use HAVE_ACL_SET_FILE rather than HAVE_POSIX_ACL.
2262 (ACL_NOT_WELL_SUPPORTED): Remove. All uses replaced by
2263 !acl_errno_valid.
2264 (Fcopy_file) [!WINDOWSNT]: Use qcopy_acl instead of rolling
2265 it ourselves.
2266
2267 * unexelf.c: Don't assume ElfW (Half) fits in int.
2268 (entry_address, find_section, unexec): Use ptrdiff_t, not int,
2269 when dealing with ElfW (Half) values, since they can exceed 2**31
2270 on 64-bit OpenBSD hosts. Problem reported privately by Han Boetes.
2271 (entry_address): Omit unused NUM arg. All uses changed.
2272
2273 2013-05-07 Juri Linkov <juri@jurta.org>
2274
2275 * callint.c (Fcall_interactively): Set `visargs[i]' for code 'n'
2276 to the string converted from number with `Fnumber_to_string'.
2277 (Bug#14254)
2278
2279 2013-05-07 Paul Eggert <eggert@cs.ucla.edu>
2280
2281 * xfns.c (x_get_net_workarea): Define only if !GTK || GTK<3.4.
2282 This fixes a problem introduced by my previous change.
2283
2284 2013-05-07 Glenn Morris <rgm@gnu.org>
2285
2286 * lread.c (readchar): Don't read from a dead buffer. (Bug#14280)
2287
2288 2013-05-07 Jan Djärv <jan.h.d@swipnet.se>
2289
2290 * xfns.c: Move misplaced ifndef USE_GTK from previous checkin.
2291
2292 2013-05-07 Paul Eggert <eggert@cs.ucla.edu>
2293
2294 Static checking by GCC 4.8.0.
2295 * xfns.c (x_get_net_workarea, struct MonitorInfo, free_monitors)
2296 (x_get_monitor_for_frame, x_make_monitor_attribute_list)
2297 (x_get_monitor_attributes_fallback)
2298 (x_get_monitor_attributes_xinerama)
2299 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes):
2300 Define only if USE_GTK.
2301 (free_monitors): Define only if HAVE_XINERAMA || HAVE_XRANDR.
2302 (x_get_monitor_attributes_fallback): Omit unused locals.
2303 (x_get_monitor_attributes_xinerama, Fx_display_monitor_attributes_list):
2304 Use double, not float, to avoid mixed-mode floating point arithmetic.
2305
2306 2013-05-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2307 Jan Djärv <jan.h.d@swipnet.se>
2308
2309 * Makefile.in (XRANDR_LIBS, XRANDR_CFLAGS, XINERAMA_LIBS)
2310 (XINERAMA_CFLAGS): New macros.
2311 (ALL_CFLAGS, LIBES): Use them.
2312
2313 * xfns.c: Include <X11/extensions/Xrandr.h> if HAVE_XRANDR, and
2314 include <X11/extensions/Xinerama.h> if HAVE_XINERAMA.
2315 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): New variables.
2316 (syms_of_xfns): DEFSYM them.
2317 (struct MonitorInfo): New struct.
2318 (x_get_net_workarea, free_monitors, x_get_monitor_for_frame)
2319 (x_make_monitor_attribute_list, x_get_monitor_attributes_fallback)
2320 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes)
2321 (x_get_monitor_attributes_xinerama): New functions.
2322 (Fx_display_monitor_attributes_list): New primitive.
2323 (syms_of_xfns): Defsubr it.
2324
2325 * xterm.h (x_display_info): Add Xatom_net_workarea and
2326 Xatom_net_current_desktop.
2327
2328 * xterm.c (x_term_init): Initialize dpyinfo->Xatom_net_workarea
2329 and dpyinfo->Xatom_net_current_desktop.
2330
2331 2013-05-06 Eli Zaretskii <eliz@gnu.org>
2332
2333 * xdisp.c (pos_visible_p): Use the special code for finding the
2334 beginning of a display property or overlay for any "replacing"
2335 display property, not just for display strings. This solves
2336 incorrect reporting of position by posn-at-point. (Bug#14241)
2337
2338 2013-05-06 Paul Eggert <eggert@cs.ucla.edu>
2339
2340 * unexelf.c: Fix some 32-bit integer problems, notably when debugging.
2341 Include <limits.h>, <stdbool.h>, <intprops.h>, <verify.h>.
2342 Verify that ElfW (Half) fits in int.
2343 (fatal): Use same signature as lisp.h.
2344 (UNEXELF_DEBUG): New macro, replacing DEBUG, so that people can
2345 configure and build with -DUNEXELF_DEBUG without worrying about
2346 other modules that use DEBUG.
2347 (DEBUG_LOG) [UNEXELF_DEBUG]: New macro. All debug code that prints
2348 possibly-wide integers now uses it instead of plain fprintf.
2349 (entry_address): New function, which avoids problems with 32-bit
2350 overflow on 64-bit hosts.
2351 (OLD_SECTION_H, NEW_SECTION_H, NEW_PROGRAM_H): Use it.
2352 (round_up): Don't assume the remainder fits in int.
2353 (find_section): Use bool for boolean. Simplify debug code.
2354 (unexec): Don't assume file sizes fit in int or size_t.
2355 Omit unnecessary trailing newline in 'fatal' format.
2356 Use strerror rather than outputting decimal error number.
2357 Remove unused code when emacs is not defined;
2358 this file relies on Emacs now.
2359 Don't assume e_phnum and e_shnum are positive.
2360
2361 * regex.c: Fix problems when DEBUG is defined.
2362 (extract_number, extract_number_and_incr): Define regardless of
2363 whether DEBUG is defined; that's simpler and makes the code less
2364 likely to go stale in the normal case when DEBUG is not defined.
2365 Return int rather than taking an int * arg. All callers changed.
2366 (DEBUG_PRINT1, DEBUG_PRINT2, DEBUG_PRINT3, DEBUG_PRINT4):
2367 Remove, replacing with ...
2368 (DEBUG_PRINT): New macro. All callers changed.
2369 (DEBUG_COMPILES_ARGUMENTS): New macro.
2370 (print_fastmap, print_partial_compiled_pattern) [DEBUG]:
2371 (print_compiled_pattern, print_double_string) [DEBUG]:
2372 Use prototype rather than old-style definition.
2373 (print_partial_compiled_pattern, print_compiled_pattern) [DEBUG]:
2374 (ENSURE_FAIL_STACK, PUSH_FAILURE_REG) [DEBUG]:
2375 (POP_FAILURE_REG_OR_COUNT, PUSH_FAILURE_POINT) [DEBUG]:
2376 (POP_FAILURE_POINT, re_match_2_internal) [DEBUG]:
2377 Don't assume ptrdiff_t, size_t, and long are the same width as int.
2378 (POINTER_TO_OFFSET): Return ptrdiff_t, not regoff_t.
2379 This matters only when DEBUG is defined.
2380
2381 2013-05-05 Eli Zaretskii <eliz@gnu.org>
2382
2383 * xdisp.c (set_iterator_to_next): Set the
2384 ignore_overlay_strings_at_pos_p flag only if we are _really_
2385 iterating over an overlay string, as indicated by the
2386 current.overlay_string_index member. (Bug#14306)
2387
2388 2013-05-05 Jan Djärv <jan.h.d@swipnet.se>
2389
2390 * nsmenu.m (ns_update_menubar): Move initialization of submenuTitle
2391 to where it is used, to avoid autorelease issues (Bug#14050).
2392
2393 2013-05-05 Paul Eggert <eggert@cs.ucla.edu>
2394
2395 `write-region-inhibit-fsync' defaults to noninteractive (Bug#14273).
2396 * fileio.c (syms_of_fileio): Implement this.
2397 * filelock.c (create_lock_file): If symbolic links don't work, so
2398 we use a regular file as a lock file, do not fsync the lock file;
2399 it's not needed.
2400
2401 2013-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
2402
2403 * minibuf.c (Fread_minibuffer, Feval_minibuffer): Move to Elisp.
2404 (syms_of_minibuf): Adjust accodingly.
2405 * lread.c (Fread):
2406 * callint.c (Fcall_interactively): Adjust calls accordingly.
2407
2408 2013-05-04 Eli Zaretskii <eliz@gnu.org>
2409
2410 * dispextern.h (WINDOW_WANTS_HEADER_LINE_P): Verify that
2411 w->contents is a buffer before computing everything else.
2412 Use parentheses to disambiguate last part of the condition.
2413
2414 * w32fns.c (w32_wnd_proc): Remove temporary code used to trap
2415 assertion violations. (Bug#14062)
2416
2417 2013-05-01 David Reitter <david.reitter@gmail.com>
2418
2419 * nsfns.m (ns_tooltip): Initialize.
2420
2421 2013-04-28 Eli Zaretskii <eliz@gnu.org>
2422
2423 * coding.c (decode_coding_gap): Don't remove the character before
2424 a newline unless it's a CR character. (Bug#14287)
2425
2426 2013-04-28 Dan Nicolaescu <dann@gnu.org>
2427
2428 * dispextern.h (struct face): Move enum face_underline_type
2429 earlier so that bitfields can be in the same word.
2430
2431 2013-04-28 Jan Djärv <jan.h.d@swipnet.se>
2432
2433 * nsfns.m (handlePanelKeys): New function.
2434 (EmacsOpenPanel:performKeyEquivalent:)
2435 (EmacsSavePanel:performKeyEquivalent:): Call handlePanelKeys to handle
2436 arrows/function/control and copy/paste keys (Bug#14296).
2437
2438 2013-04-27 Juri Linkov <juri@jurta.org>
2439
2440 * callint.c (Fcall_interactively): Call `Qread_number' for
2441 interactive code letter `n' instead of using duplicate code.
2442 (Bug#14254)
2443
2444 2013-04-27 Paul Eggert <eggert@cs.ucla.edu>
2445
2446 * systime.h (make_timeval): Declare as 'const'.
2447
2448 2013-04-27 Kenichi Handa <handa@gnu.org>
2449
2450 * font.c (font_open_entity): Always open a font of manageable
2451 size.
2452
2453 2013-04-26 Paul Eggert <eggert@cs.ucla.edu>
2454
2455 Port better to AIX (Bug#14258).
2456 * lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too,
2457 to pacify AIX xlc.
2458
2459 2013-04-24 Kenichi Handa <handa@gnu.org>
2460
2461 * coding.c (decode_coding_iso_2022): When an invalid escape
2462 sequence is encountered, reset the invocation and designation
2463 status to the safest one.
2464
2465 2013-04-22 Paul Eggert <eggert@cs.ucla.edu>
2466
2467 * Makefile.in (bootstrap-clean): Remove stamp-h1 too.
2468 Without this fix, "make distclean" leaves stamp-h1 behind.
2469
2470 2013-04-20 Erik Charlebois <erikcharlebois@gmail.com>
2471
2472 * w32fns.c (w32_fullscreen_rect): New function to compute the
2473 window rectangle for the given fullscreen mode.
2474 (w32_wnd_proc): When in a fullscreen mode, WM_WINDOWPOSCHANGING no
2475 longer tunes the window size. This keeps the window's edges flush
2476 with the screen and allows the taskbar to hide itself in fullboth.
2477
2478 * w32term.c (w32fullscreen_hook): 'fullboth' now shows without
2479 window decorations and uses the entire screen.
2480
2481 * w32term.h (w32_fullscreen_rect) Add prototype.
2482 (struct w32_output): Replace normal_width, normal_height,
2483 normal_top, and normal_left members with a single normal_placement
2484 struct.
2485 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP):
2486 Remove macros.
2487 (FRAME_NORMAL_PLACEMENT): New macro.
2488
2489 2013-04-16 Juanma Barranquero <lekktu@gmail.com>
2490
2491 * minibuf.c (Ftest_completion): Silence compiler warning.
2492
2493 2013-04-15 Eli Zaretskii <eliz@gnu.org>
2494
2495 * w32fns.c (w32_wnd_proc): Add more assertions to investigate
2496 bug#14062.
2497
2498 * frame.h (WINDOW_FRAME): Protect macro and its argument with
2499 parentheses.
2500
2501 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
2502 (CURRENT_HEADER_LINE_HEIGHT, WINDOW_WANTS_MODELINE_P)
2503 (WINDOW_WANTS_HEADER_LINE_P): Protect macro arguments with
2504 parentheses where appropriate.
2505
2506 2013-04-14 Paul Eggert <eggert@cs.ucla.edu>
2507
2508 * keyboard.c (timer_start_idle): Remove no-longer-used local.
2509
2510 2013-04-14 Eli Zaretskii <eliz@gnu.org>
2511
2512 * buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>
2513 <left-fringe-width, right-fringe-width, fringes-outside-margins>:
2514 Mention in the doc string that setting these variables takes
2515 effect only after a call to set-window-buffer. (Bug#14200)
2516
2517 2013-04-13 Eli Zaretskii <eliz@gnu.org>
2518
2519 * indent.c (Fvertical_motion): Don't consider display strings on
2520 overlay strings as display strings on the buffer position we
2521 started from. This prevents vertical cursor motion from jumping
2522 more than one line when there's an overlay string with a display
2523 property at end of line.
2524 Reported by Karl Chen <Karl.Chen@quarl.org> in
2525 http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00362.html.
2526
2527 2013-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
2528
2529 * window.c (select_window): `record_buffer' even if window is
2530 already selected (bug#14191).
2531
2532 2013-04-11 Eli Zaretskii <eliz@gnu.org>
2533
2534 * window.c (Fwindow_end): Test more flags, including the buffer's
2535 last_overlay_modified flag, to determine whether the window's
2536 display is really up-to-date. Prevents the function from
2537 returning a stale value. (Bug#14170)
2538 (Fwindow_line_height): Fix the test for up-to-date-ness of the
2539 current matrix.
2540
2541 2013-04-10 Eli Zaretskii <eliz@gnu.org>
2542
2543 * frame.c (do_switch_frame): Mark the TTY frame we switch to as
2544 garbaged only if it is not already the top frame on its TTY.
2545 This prevents flickering due to constant redrawing of TTY frames when
2546 there are GUI frames open in the same session. (Bug#13864)
2547
2548 2013-04-10 Stefan Monnier <monnier@iro.umontreal.ca>
2549
2550 * keyboard.c (timer_start_idle): Call internal-timer-start-idle instead
2551 of marking the idle timers directly.
2552
2553 2013-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
2554
2555 * minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash
2556 tables (bug#14054).
2557
2558 2013-04-08 Stefan Monnier <monnier@iro.umontreal.ca>
2559
2560 * window.c (select_window): Don't record_buffer while the invariant is
2561 temporarily broken (bug#14161).
2562
2563 * fns.c (Fdelq): Don't assume !NILP => CONSP.
2564
2565 2013-04-07 Eli Zaretskii <eliz@gnu.org>
2566
2567 * fileio.c (ACL_NOT_WELL_SUPPORTED): Define macro for WINDOWSNT.
2568
2569 2013-04-07 Romain Francoise <romain@orebokech.com>
2570
2571 Ignore additional platform-specific ACL errors (Bug#13702).
2572 * fileio.c (ACL_NOT_WELL_SUPPORTED): New macro copied from gnulib.
2573 (Fcopy_file, Fset_file_acl) [HAVE_POSIX_ACL]: Use it.
2574
2575 2013-03-31 Jan Djärv <jan.h.d@swipnet.se>
2576
2577 * nsterm.m (ns_mouse_position): Use NS_FRAME_P instead of checking
2578 f->output_data.ns.
2579
2580 2013-04-07 Paul Eggert <eggert@cs.ucla.edu>
2581
2582 Fix --enable-profiling bug introduced by 2013-02-25 change (Bug#13783).
2583 This bug was introduced by my 2013-02-25 change that simplified
2584 data_start configuration. Without this change, on GNU/Linux
2585 an Emacs configured with --enable-profiling fails immediately
2586 due to a profiler signal.
2587 * Makefile.in: Compile with $(PROFILING_CFLAGS), but do not link
2588 with these flags. On platforms where special flags are needed
2589 when linking temacs, the flags are now in LD_SWITCH_SYSTEM_TEMACS.
2590 (ALL_CFLAGS): Remove $(PROFILING_CFLAGS).
2591 (.c.o, .m.o): Compile with $(PROFILING_CFLAGS).
2592
2593 2013-04-07 Dmitry Antipov <dmantipov@yandex.ru>
2594
2595 Get rid of some platform-specific functions examining window
2596 system and its capabilities. This is a partial rework of the
2597 2013-04-05 change.
2598 * lisp.h (have_menus_p): Remove prototype. This function is
2599 replaced with platform-independent window_system_available.
2600 (check_window_system): Move to...
2601 * frame.h (decode_window_system_frame, window_system_available):
2602 ...here, add new prototypes.
2603 * frame.c (window_system_available, decode_window_system_frame):
2604 New functions.
2605 (check_window_system): Platform-independent now.
2606 * xterm.h (x_in_use): Remove declaration.
2607 (check_x_frame):
2608 * w32term.h (check_x_frame):
2609 * nsterm.h (check_x_frame): Remove prototypes. This function
2610 is replaced with platform-independent decode_window_system_frame.
2611 * msdos.c (have_menus_p): Remove.
2612 * nsfns.m (check_window_system, have_menus_p, check_ns_frame):
2613 Remove platform-specific functions. Use check_window_system,
2614 decode_window_system_frame and check_ns_display_info where
2615 appropriate. Minor style and comment tweaks.
2616 * w32fns.c (w32_in_use, check_window_system, have_menus_p)
2617 (check_x_frame): Likewise.
2618 * xfns.c (x_in_use, check_window_system, have_menus_p, check_x_frame):
2619 Likewise.
2620 * fileio.c, fns.c, font.c, fontset.c, image.c, menu.c, nsmenu.m:
2621 * nsselect.m, nsterm.m, w32font.c, w32menu.c, xfaces.c, xgselect.c:
2622 * xmenu.c, xselect.c: All related users changed.
2623
2624 2013-04-03 Kenichi Handa <handa@gnu.org>
2625
2626 The following changes is to optimize the code for reading UTF-8
2627 files.
2628
2629 * coding.c (check_ascii): Rename from detect_ascii. Return value
2630 changed. Check EOL format. Do not call adjust_coding_eol_type
2631 here.
2632 (check_utf_8): New function.
2633 (adjust_coding_eol_type): Do nothing if already adjusted.
2634 (detect_coding): Compare the return value of check_ascii with
2635 coding->src_bytes. Call adjust_coding_eol_type if necessary.
2636 (decode_coding_gap): Optimize for valid UTF-8.
2637
2638 2013-03-21 Kenichi Handa <handa@gnu.org>
2639
2640 * coding.c (syms_of_coding): Cancel previous change.
2641
2642 * insdel.c (insert_from_gap): Fix previous change.
2643
2644 2013-04-05 Dmitry Antipov <dmantipov@yandex.ru>
2645
2646 Consistently use platform-specific function to detect window system.
2647 * lisp.h (check_window_system): New prototype. This function is
2648 going to replace check_x, check_w32 and check_ns.
2649 (have_menus_p): Mention msdos.c in comment.
2650 * fontset.c (check_window_system_func): Remove. Adjust all users.
2651 * fontset.h (check_window_system_func): Remove prototype.
2652 * nsterm.h (check_ns):
2653 * xterm.h (check_x):
2654 * w32term.h (check_w32): Likewise.
2655 * menu.c (Fx_popup_menu): Use check_window_system.
2656 * msdos.c (check_window_system): Define for MS-DOS.
2657 * nsfns.m (check_window_system): Define for NS. Adjust all users.
2658 * w32fns.c (check_window_system): Likewise for MS-Windows.
2659 * xfns.c (check_window_system): Likewise for X.
2660 * font.c, frame.c, nsmenu.m, nsselect.m, nsterm.m, w32menu.c:
2661 * xfaces.c, xmenu.c: Use check_window_system where appropriate.
2662
2663 2013-04-02 Paul Eggert <eggert@cs.ucla.edu>
2664
2665 Prefer < to > in range checks such as 0 <= i && i < N.
2666 This makes it easier to visualize quantities on a number line.
2667 This patch doesn't apply to all such range checks,
2668 only to the range checks affected by the 2013-03-24 change.
2669 This patch reverts most of the 2013-03-24 change.
2670 * alloc.c (xpalloc, Fgarbage_collect):
2671 * ccl.c (ccl_driver, resolve_symbol_ccl_program):
2672 * character.c (string_escape_byte8):
2673 * charset.c (read_hex):
2674 * data.c (cons_to_unsigned):
2675 * dispnew.c (update_frame_1):
2676 * doc.c (Fsubstitute_command_keys):
2677 * doprnt.c (doprnt):
2678 * editfns.c (hi_time, decode_time_components):
2679 * fileio.c (file_offset):
2680 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
2681 * font.c (font_intern_prop):
2682 * frame.c (x_set_alpha):
2683 * gtkutil.c (get_utf8_string):
2684 * indent.c (check_display_width):
2685 * keymap.c (Fkey_description):
2686 * lisp.h (FIXNUM_OVERFLOW_P, vcopy):
2687 * lread.c (read1):
2688 * minibuf.c (read_minibuf_noninteractive):
2689 * process.c (wait_reading_process_output):
2690 * search.c (Freplace_match):
2691 * window.c (get_phys_cursor_glyph):
2692 * xdisp.c (redisplay_internal):
2693 * xsmfns.c (smc_save_yourself_CB):
2694 Prefer < to > for range checks.
2695 * dispnew.c (sit_for): Don't mishandle NaNs.
2696 This fixes a bug introduced in the 2013-03-24 change.
2697 * editfns.c (decode_time_components): Don't hoist comparison.
2698 This fixes another bug introduced in the 2013-03-24 change.
2699
2700 2013-03-31 Dmitry Antipov <dmantipov@yandex.ru>
2701
2702 * frame.h (struct frame): Drop scroll_bottom_vpos
2703 member becaue all real users are dead long ago.
2704 (FRAME_SCROLL_BOTTOM_VPOS): Remove.
2705 * xdisp.c (redisplay_internal): Adjust user.
2706
2707 2013-03-30 Darren Ho <darren.hoo@gmail.com> (tiny change)
2708
2709 * nsmenu.m (showAtX:Y:for:): setLevel to
2710 NSPopUpMenuWindowLevel (Bug#13998).
2711
2712 2013-03-30 Jan Djärv <jan.h.d@swipnet.se>
2713
2714 * nsterm.h (ns_get_pending_menu_title, ns_check_menu_open)
2715 (ns_check_pending_open_menu): Declare.
2716
2717 * nsmenu.m (ns_update_menubar): Correct NSTRACE.
2718 (x_activate_menubar): Update the menu with title that matches
2719 ns_get_pending_menu_title, and call
2720 ns_check_pending_openmenu (Bug#12698).
2721 (menuWillOpen:): New method.
2722 (menuNeedsUpdate:): Add check for ! COCOA || OSX < 10.5 (Bug#12698).
2723
2724 * nsterm.m (menu_will_open_state, menu_mouse_point)
2725 (menu_pending_title): New varaibles.
2726 (ns_get_pending_menu_title, ns_check_menu_open)
2727 (ns_check_pending_open_menu): New functions.
2728
2729 2013-03-29 Dmitry Antipov <dmantipov@yandex.ru>
2730
2731 * indent.c (current_column_bol_cache): Remove leftover which is not
2732 used in Fmove_to_column any more.
2733 (current_column, scan_for_column): Adjust users.
2734 * keyboard.c (last_point_position_buffer, last_point_position_window):
2735 Remove leftovers which are not used for recording undo any more.
2736 (command_loop_1, syms_of_keyboard): Adjust users.
2737 * xdisp.c (last_max_ascent): Remove leftover which is not used in
2738 redisplay_window any more.
2739 (move_it_to): Adjust user.
2740
2741 2013-03-29 Juanma Barranquero <lekktu@gmail.com>
2742
2743 * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/filelock.$(O)):
2744 Update dependencies.
2745
2746 2013-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
2747
2748 * lisp.h (save_type, XSAVE_POINTER, set_save_pointer, XSAVE_INTEGER)
2749 (set_save_integer, XSAVE_OBJECT, XSAVE_VALUE): Move to avoid
2750 forward references.
2751
2752 2013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
2753
2754 * window.h (struct window): Replace hchild, vchild and buffer slots
2755 with the only contents slot. This is possible because each valid
2756 window may have either the child window (in vertical or horizontal
2757 combination) or buffer to display (for the leaf window). Using that,
2758 a lof of operations to traverse and/or change window hierarchies may
2759 be simplified. New member horizontal is used to distinguish between
2760 horizontal and vertical combinations of internal windows.
2761 (WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P)
2762 (WINDOW_VERTICAL_COMBINATION_P): New macros.
2763 (WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes.
2764 * window.c (wset_hchild, wset_vchild): Remove. Adjust all users.
2765 Use contents slot, not buffer, where appropriate.
2766 (wset_combination): New function.
2767 (wset_buffer): Add eassert.
2768 (Fframe_first_window): Simplify the loop reaching first window.
2769 (Fwindow_buffer): Use WINDOW_LEAF_P.
2770 (Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P.
2771 (Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P.
2772 (unshow_buffer): Convert initial debugging check to eassert.
2773 (replace_window, recombine_windows, Fdelete_other_windows_internal)
2774 (make_parent_window, window_resize_check, window_resize_apply)
2775 (resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal)
2776 (Fset_window_configuration, delete_all_child_windows, save_window_save):
2777 Adjust to match struct window changes.
2778 (window_loop): Check for broken markers in CHECK_ALL_WINDOWS.
2779 (mark_window_cursors_off, count_windows, get_leaf_windows)
2780 (foreach_window_1): Simplify the loop.
2781 * alloc.c (mark_object): Do not check for the leaf window because
2782 internal windows has no glyph matrices anyway.
2783 * dispnew.c (clear_window_matrices, showing_window_margins_p)
2784 (allocate_matrices_for_window_redisplay, fake_current_matrices)
2785 (allocate_matrices_for_frame_redisplay, free_window_matrices)
2786 (build_frame_matrix_from_window_tree, mirror_make_current)
2787 (frame_row_to_window, mirror_line_dance, check_window_matrix_pointers)
2788 (update_window_tree, set_window_update_flags): Simplify the loop.
2789 (sync_window_with_frame_matrix_rows): Enforce live window.
2790 Use contents slot, not buffer, where appropriate.
2791 * frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P
2792 and WINDOW_HORIZONTAL_COMBINATION_P.
2793 (make_frame_visible_1): Simplify the loop.
2794 Use contents slot, not buffer, where appropriate.
2795 * xdisp.c (hscroll_window_tree, mark_window_display_accurate)
2796 (redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree)
2797 (expose_window_tree): Likewise.
2798 Use contents slot, not buffer, where appropriate.
2799 * textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW
2800 to avoid deleted windows. Use contents slot instead of buffer.
2801 * buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c:
2802 * indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c:
2803 * nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c:
2804 * xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate.
2805
2806 2013-03-28 Eli Zaretskii <eliz@gnu.org>
2807
2808 * w32fns.c (w32_wnd_proc) [ENABLE_CHECKING]: Add code to help
2809 identify the reasons for assertion violations in bug#14062 and
2810 similar ones.
2811 (Fx_show_tip): Fix compilation error under
2812 "--enable-check-lisp-object-type". (Bug#14073)
2813
2814 * image.c (g_error_free) [WINDOWSNT]: Add DEF_IMGLIB_FN.
2815 Reported by <rzl24ozi@gmail.com>.
2816
2817 2013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
2818
2819 * xdisp.c (with_echo_area_buffer_unwind_data): Save window
2820 start marker...
2821 (unwind_with_echo_area_buffer): ...to restore it here.
2822 This is needed to ensure that...
2823 (redisplay_window): ...both window markers are valid here,
2824 which is verified by eassert.
2825 * editfns.c (save_excursion_save): Do not assume that
2826 selected_window always displays the buffer.
2827 * buffer.c (Fbuffer_swap_text): Adjust window start markers.
2828 Fix comment.
2829
2830 2013-03-27 Stefan Monnier <monnier@iro.umontreal.ca>
2831
2832 * casetab.c (init_casetab_once): Don't abuse the ascii eqv table for
2833 the upcase table.
2834
2835 2013-03-27 rzl24ozi <rzl24ozi@gmail.com> (tiny changes)
2836
2837 * image.c [WINDOWSNT]: Fix calls to DEF_IMGLIB_FN for SVG function.
2838
2839 2013-03-27 Eli Zaretskii <eliz@gnu.org>
2840
2841 * w32proc.c (IsValidLocale) [__GNUC__]: Don't declare prototype,
2842 since MinGW's w32api headers do. This avoids compiler warnings.
2843
2844 * w32.c (FSCTL_GET_REPARSE_POINT) [_MSC_VER || _W64]: Don't define
2845 if already defined.
2846
2847 2013-03-26 Eli Zaretskii <eliz@gnu.org>
2848
2849 * w32.c (_REPARSE_DATA_BUFFER): Condition by _MSVC and _W64.
2850
2851 2013-03-26 Jan Djärv <jan.h.d@swipnet.se>
2852
2853 * gtkutil.c (style_changed_cb): Check if frame is live and an
2854 X frame (Bug#14038).
2855
2856 2013-03-26 Eli Zaretskii <eliz@gnu.org>
2857
2858 * w32.c (_PROCESS_MEMORY_COUNTERS_EX) [_WIN32_WINNT < 0x0500]:
2859 Define only for _WIN32_WINNT less than 0x0500.
2860 (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT) [!_W64]: Don't define for
2861 MinGW64.
2862 Move inclusion of time.h before sys/time.h, so that MinGW64 could
2863 see its own definitions of 'struct timeval' and 'struct timezone'.
2864
2865 Fix incompatibilities between MinGW.org and MinGW64 headers.
2866 * w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined.
2867
2868 * w32.c (REPARSE_DATA_BUFFER): Guard with
2869 MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined.
2870
2871 2013-03-25 Jan Djärv <jan.h.d@swipnet.se>
2872
2873 * xterm.c: Include X11/XKBlib.h
2874 (XTring_bell): Use XkbBell if HAVE_XKB (Bug#14041).
2875
2876 2013-03-24 Andreas Schwab <schwab@linux-m68k.org>
2877
2878 * alloc.c (xpalloc, Fgarbage_collect): Reorder conditions that are
2879 written backwards.
2880 * blockinput.h (input_blocked_p): Likewise.
2881 * bytecode.c (exec_byte_code): Likewise.
2882 * callproc.c (call_process_kill, call_process_cleanup)
2883 (Fcall_process): Likewise.
2884 * ccl.c (ccl_driver, resolve_symbol_ccl_program)
2885 (Fccl_execute_on_string): Likewise.
2886 * character.c (string_escape_byte8): Likewise.
2887 * charset.c (read_hex): Likewise.
2888 * cm.c (calccost): Likewise.
2889 * data.c (cons_to_unsigned): Likewise.
2890 * dired.c (directory_files_internal, file_name_completion):
2891 Likewise.
2892 * dispnew.c (scrolling_window, update_frame_1, Fsleep_for)
2893 (sit_for): Likewise.
2894 * doc.c (Fsubstitute_command_keys): Likewise.
2895 * doprnt.c (doprnt): Likewise.
2896 * editfns.c (hi_time, decode_time_components, Fformat): Likewise.
2897 * emacsgtkfixed.c: Likewise.
2898 * fileio.c (file_offset, Fwrite_region): Likewise.
2899 * floatfns.c (Fexpt, fmod_float): Likewise.
2900 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
2901 Likewise.
2902 * font.c (font_intern_prop): Likewise.
2903 * frame.c (x_set_alpha): Likewise.
2904 * gtkutil.c (get_utf8_string): Likewise.
2905 * indent.c (check_display_width): Likewise.
2906 * intervals.c (create_root_interval, rotate_right, rotate_left)
2907 (split_interval_right, split_interval_left)
2908 (adjust_intervals_for_insertion, delete_node)
2909 (interval_deletion_adjustment, adjust_intervals_for_deletion)
2910 (merge_interval_right, merge_interval_left, copy_intervals)
2911 (set_intervals_multibyte_1): Likewise.
2912 * keyboard.c (gobble_input, append_tool_bar_item): Likewise.
2913 * keymap.c (Fkey_description): Likewise.
2914 * lisp.h (FIXNUM_OVERFLOW_P, vcopy): Likewise.
2915 * lread.c (openp, read_integer, read1, string_to_number):
2916 Likewise.
2917 * menu.c (ensure_menu_items): Likewise.
2918 * minibuf.c (read_minibuf_noninteractive): Likewise.
2919 * print.c (printchar, strout): Likewise.
2920 * process.c (create_process, Faccept_process_output)
2921 (wait_reading_process_output, read_process_output, send_process)
2922 (wait_reading_process_output): Likewise.
2923 * profiler.c (make_log, handle_profiler_signal): Likewise.
2924 * regex.c (re_exec): Likewise.
2925 * regex.h: Likewise.
2926 * search.c (looking_at_1, Freplace_match): Likewise.
2927 * sysdep.c (get_child_status, procfs_ttyname)
2928 (procfs_get_total_memory): Likewise.
2929 * systime.h (EMACS_TIME_VALID_P): Likewise.
2930 * term.c (dissociate_if_controlling_tty): Likewise.
2931 * window.c (get_phys_cursor_glyph): Likewise.
2932 * xdisp.c (init_iterator, redisplay_internal, redisplay_window)
2933 (try_window_reusing_current_matrix, try_window_id, pint2hrstr):
2934 Likewise.
2935 * xfns.c (Fx_window_property): Likewise.
2936 * xmenu.c (set_frame_menubar): Likewise.
2937 * xselect.c (x_get_window_property, x_handle_dnd_message):
2938 Likewise.
2939 * xsmfns.c (smc_save_yourself_CB): Likewise.
2940 * xterm.c (x_scroll_bar_set_handle): Likewise.
2941
2942 2013-03-24 Dmitry Antipov <dmantipov@yandex.ru>
2943
2944 * xfaces.c (Finternal_face_x_get_resource): Allow 3rd (frame) argument
2945 to be optional or nil. Adjust comment and convert it to docstring.
2946 * xselect.c (Fx_send_client_event): Rename to Fx_send_client_message.
2947 * frame.c (display_x_get_resource, Fx_get_resource): Break long line.
2948
2949 2013-03-24 Paul Eggert <eggert@cs.ucla.edu>
2950
2951 Static checking by GCC 4.8-20130319.
2952 * image.c (gif_load): Assume pass < 3 to pacify GCC.
2953 * process.c (Fset_process_datagram_address)
2954 (Fmake_network_process): Check get_lisp_to_sockaddr_size return value.
2955 * xdisp.c (get_char_face_and_encoding):
2956 (get_glyph_face_and_encoding): Ensure that *CHAR2B is initialized.
2957 (get_glyph_face_and_encoding): Prepare face before possibly using it.
2958 (get_per_char_metric): Don't use CHAR2B if it might not be initialized.
2959
2960 2013-03-24 Ken Brown <kbrown@cornell.edu>
2961
2962 * w32fns.c (emacs_abort) [CYGWIN]: Define `_open' as a macro to
2963 fix compilation on 64-bit Cygwin, where underscores are not
2964 automatically prepended.
2965
2966 * w32term.c (w32_initialize): Silence compiler warning.
2967
2968 2013-03-23 Eli Zaretskii <eliz@gnu.org>
2969
2970 * w32term.c (w32fullscreen_hook): Use FRAME_NORMAL_WIDTH,
2971 FRAME_NORMAL_HEIGHT, and FRAME_PREV_FSMODE, instead of static
2972 variables, to save and restore frame dimensions.
2973 Use FRAME_NORMAL_LEFT and FRAME_NORMAL_TOP to restore frame position
2974 after returning from a 'fullscreen' configuration.
2975 use SendMessage instead of PostMessage to send the SC_RESTORE message,
2976 to avoid races between the main thread and the input thread.
2977
2978 * w32term.h (struct w32_output): New members normal_width,
2979 normal_height, normal_top, normal_left, and prev_fsmode.
2980 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP)
2981 (FRAME_NORMAL_LEFT, FRAME_PREV_FSMODE): New macros to access these
2982 members of a frame.
2983
2984 * w32term.c (w32fullscreen_hook): Record last value of the frame's
2985 'fullscreen' parameter. Always record previous width and height
2986 of the frame, except when switching out of maximized modes, so
2987 that they could be restored correctly, instead of resetting to the
2988 default frame dimensions. Send SC_RESTORE command to the frame,
2989 unless we are going to send SC_MAXIMIZE, to restore the frame
2990 resize hints in the mouse pointer shown by the window manager.
2991 (Bug#14032)
2992
2993 * frame.c (get_frame_param): Now extern for WINDOWSNT as well.
2994
2995 * lisp.h (get_frame_param): Adjust conditions for prototype
2996 declaration.
2997
2998 2013-03-22 Ken Brown <kbrown@cornell.edu>
2999
3000 * unexcw.c: Drop unneeded inclusion of w32common.h.
3001 (report_sheap_usage): Declare.
3002 (read_exe_header): Add magic numbers for x86_64.
3003 (fixup_executable): Fix printf format specifier for unsigned long
3004 argument.
3005
3006 2013-03-22 Dmitry Antipov <dmantipov@yandex.ru>
3007
3008 * frame.h (struct frame): Put menu_bar_window under #ifdef
3009 because this member is not needed when X toolkit is in use.
3010 (fset_menu_bar_window):
3011 * dispnew.c (clear_current_matrices, clear_desired_matrices)
3012 (free_glyphs, update_frame):
3013 * xdisp.c (expose_frame): Likewise.
3014 (display_menu_bar): Likewise. Remove redundant eassert.
3015 * window.h (WINDOW_MENU_BAR_P): Always define to 0 if X
3016 toolkit is in use.
3017
3018 2013-03-21 Paul Eggert <eggert@cs.ucla.edu>
3019
3020 Use functions and constants to manipulate Lisp_Save_Value objects.
3021 This replaces code that used macros and strings and token-pasting.
3022 The change makes the C source a bit easier to follow,
3023 and shrinks the Emacs executable a bit.
3024 * alloc.c: Verify some properties of Lisp_Save_Value's representation.
3025 (make_save_value): Change 1st arg from string to enum. All callers
3026 changed.
3027 (INTX): Remove.
3028 (mark_object): Use if, not #if, for GC_MARK_STACK.
3029 * lisp.h (SAVE_VALUEP, XSAVE_VALUE, XSAVE_POINTER, XSAVE_INTEGER)
3030 (XSAVE_OBJECT): Now functions, not macros.
3031 (STRING_BYTES_BOUND): Now just a macro, not a constant too;
3032 the constant was never used.
3033 (SAVE_SLOT_BITS, SAVE_VALUE_SLOTS, SAVE_TYPE_BITS, SAVE_TYPE_INT_INT)
3034 (SAVE_TYPE_INT_INT_INT, SAVE_TYPE_OBJ_OBJ, SAVE_TYPE_OBJ_OBJ_OBJ)
3035 (SAVE_TYPE_OBJ_OBJ_OBJ_OBJ, SAVE_TYPE_PTR_INT, SAVE_TYPE_PTR_OBJ)
3036 (SAVE_TYPE_PTR_PTR, SAVE_TYPE_PTR_PTR_OBJ, SAVE_TYPE_MEMORY):
3037 New constants.
3038 (struct Lisp_Save_Value): Replace members area, type0, type1, type2,
3039 type3 with a single member save_type. All uses changed.
3040 (save_type, set_save_pointer, set_save_integer): New functions.
3041 * print.c (PRINTX): Remove.
3042
3043 * alloc.c: Remove redundant static declarations.
3044
3045 2013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
3046
3047 * window.h (struct window): Convert left_col, top_line, total_lines
3048 and total_cols from Lisp_Objects to integers. Adjust comments.
3049 (wset_left_col, wset_top_line, wset_total_cols, wset_total_lines):
3050 Remove.
3051 (WINDOW_TOTAL_COLS, WINDOW_TOTAL_LINES, WINDOW_LEFT_EDGE_COL)
3052 (WINDOW_TOP_EDGE_LINE): Drop Lisp_Object to integer conversion.
3053 * dispnew.c, frame.c, w32fns.c, window.c, xdisp.c, xfns.c:
3054 Adjust users where appropriate.
3055
3056 2013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
3057
3058 * frame.h (struct frame): Drop resx and resy because the same data is
3059 available from window system-specific output context. Adjust users.
3060 (default_pixels_per_inch_x, default_pixels_per_inch_y):
3061 New functions to provide defaults when no window system available.
3062 (FRAME_RES_X, FRAME_RES_Y): New macros.
3063 (NUMVAL): Move from xdisp.c.
3064 * font.c (font_pixel_size, font_find_for_lface, font_open_for_lface)
3065 (Ffont_face_attributes, Fopen_font):
3066 * image.c (gs_load):
3067 * w32font.c (fill_in_logfont):
3068 * xdisp.c (calc_pixel_width_or_height):
3069 * xfaces.c (Fx_family_fonts, set_lface_from_font): Use them.
3070 * xsettings.c (apply_xft_settings): Drop frame loop and adjust comment.
3071
3072 2013-03-20 Kenichi Handa <handa@gnu.org>
3073
3074 * coding.c (syms_of_coding): Initialize disable_ascii_optimization
3075 to 1 (temporary workaround until a bug related to ASCII
3076 optimization is fixed).
3077
3078 2013-03-19 Dmitry Antipov <dmantipov@yandex.ru>
3079
3080 * window.c (Fwindow_combination_limit, Fset_window_combination_limit):
3081 Signal error if window is not internal. Adjust docstring.
3082 (delete_all_child_windows): Use combination_limit to save the buffer.
3083 (Fset_window_configuration): Adjust accordingly.
3084 * print.c (syms_of_print): Initialize debugging output not here...
3085 (init_print_once): ...but in a new function here.
3086 * lisp.h (init_print_once): Add prototype.
3087 * emacs.c (main): Add call to init_print_once. Adjust comments.
3088
3089 2013-03-18 Dmitry Antipov <dmantipov@yandex.ru>
3090
3091 * window.c (window_resize_check, window_resize_apply)
3092 (window_from_coordinates, recombine_windows, set_window_buffer)
3093 (make_parent_window, Fwindow_resize_apply, resize_frame_windows)
3094 (Fsplit_window_internal, Fdelete_window_internal)
3095 (freeze_window_starts): Use bool for booleans.
3096 * window.h (window_frame_coordinates, resize_frame_windows)
3097 (freeze_window_starts, set_window_buffer): Adjust prototypes.
3098
3099 2013-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
3100
3101 * dispnew.c (bitch_at_user): Use `user-error'.
3102
3103 2013-03-17 Ken Brown <kbrown@cornell.edu>
3104
3105 * dispextern.h (RGB_PIXEL_COLOR): Move here from image.c. Use it
3106 as return type of image_background. (Bug#13981)
3107 * image.c (RGB_PIXEL_COLOR): Move to dispextern.h.
3108
3109 2013-03-16 Jan Djärv <jan.h.d@swipnet.se>
3110
3111 * nsterm.m (updateFrameSize:): Change resize increments if needed.
3112 (ns_select): Don't return with result uninitialized.
3113
3114 * nsterm.h (EmacsSavePanel, EmacsOpenPanel): Add getFilename
3115 and getDirectory.
3116
3117 * nsfns.m (ns_filename_from_panel, ns_directory_from_panel):
3118 New functions.
3119 (Fns_read_file_name): ret is BOOL. If ! dir_only_p, don't choose
3120 directories. If filename is nil, get directory name (Bug#13932).
3121 Use getFilename and getDirectory.
3122 (getFilename, getDirectory): New methods for EmacsSavePanel and
3123 EmacsOpenPanel.
3124 (ok:): In EmacsOpenPanel, if we can't choose directories, just return.
3125
3126 2013-03-15 Paul Eggert <eggert@cs.ucla.edu>
3127
3128 * coding.c (decode_coding_gap): Fix typo caught by static checking.
3129
3130 2013-03-15 Kenichi Handa <handa@gnu.org>
3131
3132 * insdel.c (insert_from_gap): New arg text_at_gap_tail.
3133 (adjust_after_replace): Make it back to static. Delete the third
3134 arg text_at_gap_tail. Cancel the code for handling it.
3135
3136 * coding.h (struct coding_system): New member eol_seen.
3137
3138 * coding.c (detect_ascii): New function.
3139 (detect_coding): Set coding->head_ascii and coding->eol_seen only
3140 when the source bytes are actually scanned. On detecting for
3141 coding_category_utf_8_auto, call detect_ascii instead of scanning
3142 source bytes directly.
3143 (produce_chars): Call insert_from_gap with the new arg 0.
3144 (encode_coding): Likewise.
3145 (decode_coding_gap): Control ASCII optimization by the variable
3146 disable_ascii_optimization instead of #ifndef .. #endif.
3147 Deccode EOL format according to coding->eol_seen.
3148 (syms_of_coding): Declare disable-ascii-optimization as a Lisp
3149 variable.
3150
3151 * lisp.h (adjust_after_replace): Cancel externing it.
3152 (insert_from_gap): Adjust prototype.
3153
3154 2013-03-15 Eli Zaretskii <eliz@gnu.org>
3155
3156 * w32term.c (w32fullscreen_hook): Swap FULLSCREEN_BOTH and
3157 FULLSCREEN_MAXIMIZED. (Bug#13935)
3158
3159 2013-03-15 Dmitry Antipov <dmantipov@yandex.ru>
3160
3161 * region-cache.c (find_cache_boundary, move_cache_gap)
3162 (insert_cache_boundary, delete_cache_boundaries, set_cache_region):
3163 Simplify debugging check and convert to eassert. Adjust comment.
3164 (pp_cache): Put under ENABLE_CHECKING.
3165
3166 2013-03-14 Eli Zaretskii <eliz@gnu.org>
3167
3168 * w32term.c (w32_read_socket) <WM_WINDOWPOSCHANGED>: Remove old
3169 and incorrect code. Treat WM_WINDOWPOSCHANGED like WM_ACTIVATE
3170 and WM_ACTIVATEAPP.
3171 (w32fullscreen_hook): If the frame is visible, reset
3172 f->want_fullscreen flag after changing the frame size. If the
3173 frame is not visible, set f->want_fullscreen to FULLSCREEN_WAIT.
3174 (Bug#13953)
3175
3176 2013-03-13 Daniel Colascione <dancol@dancol.org>
3177
3178 * emacs.c (main): Call syms_of_cygw32 on CYGWIN non-NTGUI builds
3179 too so that these builds can use Cygwin's file conversion
3180 functions. (We've been building and linking cygw32.o all along
3181 and just not using it.)
3182
3183 2013-03-13 Paul Eggert <eggert@cs.ucla.edu>
3184
3185 File synchronization fixes (Bug#13944).
3186 * Makefile.in (LIB_FDATASYNC): New macro.
3187 (LIBES): Use it.
3188 * conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
3189 * fileio.c (Fwrite_region, write_region_inhibit_fsync):
3190 Don't worry about HAVE_FSYNC, since a substitute fsync is
3191 available if the system lacks one.
3192 (Fwrite_regin): Retry fsync if interrupted.
3193
3194 2013-03-13 Eli Zaretskii <eliz@gnu.org>
3195
3196 * w32term.c (w32_read_socket): If the Emacs frame is being
3197 activated, call w32fullscreen_hook, to make sure the new frame
3198 dimensions are in effect. (Bug#13937)
3199
3200 2013-03-13 Dmitry Antipov <dmantipov@yandex.ru>
3201
3202 * xdisp.c (init_iterator): Simplify because both character and byte
3203 positions are either specified or -1. Add eassert. Adjust comment.
3204 * window.c (Fscroll_other_window): Use SET_PT_BOTH because both
3205 character and byte positions can be obtained from marker.
3206
3207 2013-03-13 Paul Eggert <eggert@cs.ucla.edu>
3208
3209 Static checking by Sun C 5.12.
3210 * alloc.c (buffer_memory_full) [REL_ALLOC]:
3211 * bytecode.c (exec_byte_code):
3212 * dispnew.c (init_display):
3213 * eval.c (error):
3214 * fileio.c (Fsubstitute_in_file_name):
3215 * keyboard.c (Fevent_convert_list):
3216 * keymap.c (Fsingle_key_description):
3217 * term.c (maybe_fatal, fatal):
3218 * xfns.c (Fx_display_backing_store, Fx_display_visual_class):
3219 * xsmfns.c (Fhandle_save_session):
3220 Omit unreachable code.
3221 * keymap.c (map_keymap_char_table_item): Cast void * to
3222 a function pointer type; the C Standard requires this.
3223
3224 * sysdep.c: Remove a use of BSD_SYSTEM, which I'm trying to phase out.
3225 Include <sys/param.h> unconditionally, as that works elsewhere and
3226 is simpler here. Include <sys/sysctl.h> if DARWIN_OS ||
3227 __FreeBSD__, not if BSD_SYSTEM, since it's needed only for Darwin
3228 and FreeBSD now.
3229
3230 See ChangeLog.12 for earlier changes.
3231
3232 ;; Local Variables:
3233 ;; coding: utf-8
3234 ;; End:
3235
3236 Copyright (C) 2011-2013 Free Software Foundation, Inc.
3237
3238 This file is part of GNU Emacs.
3239
3240 GNU Emacs is free software: you can redistribute it and/or modify
3241 it under the terms of the GNU General Public License as published by
3242 the Free Software Foundation, either version 3 of the License, or
3243 (at your option) any later version.
3244
3245 GNU Emacs is distributed in the hope that it will be useful,
3246 but WITHOUT ANY WARRANTY; without even the implied warranty of
3247 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3248 GNU General Public License for more details.
3249
3250 You should have received a copy of the GNU General Public License
3251 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.