]> code.delx.au - gnu-emacs/blob - src/ChangeLog
Merge from origin/emacs-24
[gnu-emacs] / src / ChangeLog
1 2015-01-17 Eli Zaretskii <eliz@gnu.org>
2
3 * xdisp.c (produce_image_glyph): Fix display of images in R2L
4 screen lines: prepend the new glyph to the ones already there
5 instead of appending it.
6
7 2015-01-14 Eli Zaretskii <eliz@gnu.org>
8
9 * w32fns.c (w32_set_title_bar_text): New function, including
10 support for titles with non-ASCII characters outside of the
11 current system codepage.
12 (x_set_name, x_set_title): Use it. (Bug#19590)
13
14 2015-01-10 Eli Zaretskii <eliz@gnu.org>
15
16 * indent.c (Fvertical_motion): Return zero if we started from ZV
17 and there's an overlay after-string there. (Bug#19553)
18
19 2015-01-09 Eli Zaretskii <eliz@gnu.org>
20
21 * emacs.c (usage_message): Fix the description of the -nl switch.
22 (Bug#19542)
23
24 2015-01-05 Eli Zaretskii <eliz@gnu.org>
25
26 * xdisp.c (move_it_to, try_cursor_movement): Don't use the window
27 end information if the window_end_valid flag is unset.
28 (try_window_id): If the call to display_line invalidated the
29 window end information, give up the try_window_id optimization.
30 (Bug#19511)
31
32 2015-01-04 Eli Zaretskii <eliz@gnu.org>
33
34 * w32fns.c (Fx_server_version, Fx_server_vendor): Doc fix.
35
36 * xfns.c (Fx_server_version, Fx_server_vendor): Doc fix.
37
38 * emacs.c (syms_of_emacs) <system-configuration>: Doc fix.
39 (Bug#19502)
40
41 2015-01-27 Paul Eggert <eggert@cs.ucla.edu>
42
43 Use bool for boolean in xfaces.c
44 * dispextern.h: Adjust to signature changes.
45 * font.c (font_at, font_range):
46 * fontset.c (Finternal_char_font):
47 * fringe.c (draw_fringe_bitmap_1):
48 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
49 (get_next_display_element, highlight_trailing_whitespace)
50 (display_string, calc_line_height_property)
51 (note_mode_line_or_margin_highlight, note_mouse_highlight):
52 * xfaces.c (tty_suppress_bold_inverse_default_colors_p)
53 (menu_face_changed_default, recompute_basic_faces)
54 (Fbitmap_spec_p, parse_rgb_list, tty_lookup_color)
55 (tty_defined_color, defined_color, face_color_gray_p)
56 (face_color_supported_p, load_color2, load_face_colors)
57 (Fx_list_fonts, LFACEP, push_named_merge_point)
58 (resolve_face_name, lface_from_face_name_no_resolve)
59 (lface_from_face_name, get_lface_attributes_no_remap)
60 (get_lface_attributes, lface_fully_specified_p)
61 (set_lface_from_font, merge_face_vectors, merge_named_face)
62 (merge_face_ref, Finternal_make_lisp_face)
63 (Finternal_lisp_face_p, Finternal_copy_lisp_face)
64 (Finternal_set_lisp_face_attribute)
65 (update_face_from_frame_parameter, set_font_frame_param)
66 (face_boolean_x_resource_value)
67 (Finternal_set_lisp_face_attribute_from_resource)
68 (x_update_menu_appearance, Finternal_get_lisp_face_attribute)
69 (Finternal_merge_in_global_face, Fface_font, face_attr_equal_p)
70 (lface_equal_p, Finternal_lisp_face_equal_p)
71 (Finternal_lisp_face_empty_p, lface_same_font_attributes_p)
72 (Fcolor_distance, lookup_named_face, lookup_basic_face)
73 (lookup_derived_face, Fface_attributes_as_vector)
74 (x_supports_face_attributes_p, tty_supports_face_attributes_p)
75 (Fdisplay_supports_face_attributes_p, realize_basic_faces)
76 (realize_default_face, realize_named_face)
77 (realize_non_ascii_face, realize_x_face, map_tty_color)
78 (realize_tty_face, compute_char_face, face_at_buffer_position)
79 (face_for_overlay_string, face_at_string_position):
80 Use bool for boolean.
81 * xfaces.c (set_lface_from_font):
82 Return void, since callers never use the result.
83
84 2015-01-26 Andreas Schwab <schwab@linux-m68k.org>
85
86 * image.c (lookup_pixel_color): Reorder conditions that are
87 written backwards.
88 (x_to_xcolors): Likewise.
89 (x_detect_edges): Likewise.
90 (png_load_body): Likewise.
91 (gif_close): Likewise.
92 (gif_load): Likewise.
93
94 2015-01-25 Eli Zaretskii <eliz@gnu.org>
95
96 Use bool for boolean in w32term.c
97 * w32term.c (x_update_window_begin, x_update_window_end)
98 (x_update_end, x_after_update_window_line)
99 (x_set_glyph_string_gc, x_draw_glyph_string_background)
100 (x_draw_glyph_string_foreground)
101 (x_draw_composite_glyph_string_foreground)
102 (x_draw_glyphless_glyph_string_foreground)
103 (x_draw_image_glyph_string, x_draw_glyph_string)
104 (x_draw_stretch_glyph_string, note_mouse_movement)
105 (w32_mouse_position, x_scroll_bar_report_motion)
106 (x_horizontal_scroll_bar_report_motion, w32_read_socket)
107 (w32_set_vertical_scroll_bar, w32_set_horizontal_scroll_bar)
108 (w32_draw_window_cursor, x_new_font, x_set_offset)
109 (x_set_window_size, x_make_frame_invisible, x_iconify_frame): Use
110 bool where appropriate.
111
112 Use bool for boolean in w32fns.c
113 * w32fns.c (w32_defined_color, x_decode_color)
114 (Fxw_color_defined_p, Fxw_color_values, x_set_icon_type)
115 (x_set_menu_bar_lines, x_change_tool_bar_height)
116 (x_set_internal_border_width, x_explicitly_set_name)
117 (x_implicitly_set_name, Fx_create_frame, w32_window)
118 (x_create_tip_frame, Fx_show_tip): Use bool where appropriate.
119
120 2015-01-25 Paul Eggert <eggert@cs.ucla.edu>
121
122 Use bool for boolean in xfns.c
123 * xfaces.c (x_update_menu_appearance):
124 * xfns.c (x_real_positions, x_defined_color, x_decode_color)
125 (xg_set_icon, xg_set_icon_from_xpm_data, x_set_cursor_color)
126 (x_set_icon_type, x_set_icon_name, x_set_menu_bar_lines)
127 (x_change_tool_bar_height, x_set_internal_border_width)
128 (x_encode_text, x_set_name_internal, x_explicitly_set_name)
129 (x_implicitly_set_name, x_default_scroll_bar_color_parameter)
130 (hack_wm_protocols, xic_create_fontsetname, xic_free_xfontset)
131 (x_window, x_icon, Fx_wm_set_size_hint, Fx_create_frame)
132 (Fxw_color_defined_p, Fxw_color_values, x_create_tip_frame)
133 (Fx_show_tip, clean_up_file_dialog, Fx_file_dialog)
134 (clean_up_dialog, syms_of_xfns):
135 * xterm.h (xg_set_icon, xg_set_icon_from_xpm_data)
136 (xic_create_fontsetname):
137 Use bool for boolean.
138 * xfns.c: Include bitmaps/gray.xbm unconditionally.
139
140 Count MANY function args more reliably
141 * alloc.c (Fgc_status, purecopy, unbind_to, garbage_collect_1):
142 * buffer.c (Fbuffer_list, Fkill_buffer):
143 * callint.c (read_file_name, Fcall_interactively):
144 * charset.c (Fset_charset_priority, syms_of_charset):
145 * chartab.c (uniprop_encode_value_numeric):
146 * coding.c (syms_of_coding):
147 * composite.c (syms_of_composite):
148 * data.c (wrong_range):
149 * dbusbind.c (syms_of_dbusbind):
150 * dired.c (file_attributes):
151 * editfns.c (Fdecode_time, update_buffer_properties, format2):
152 * eval.c (run_hook_with_args_2, apply1, call1, call2, call3)
153 (call4, call5, call6, call7):
154 * fileio.c (Finsert_file_contents, choose_write_coding_system)
155 (Fcar_less_than_car, build_annotations, auto_save_error):
156 * filelock.c (get_boot_time):
157 * fns.c (internal_equal, nconc2, Fyes_or_no_p, Fwidget_apply):
158 (maybe_resize_hash_table, secure_hash):
159 * font.c (font_style_to_value, font_open_by_name, Flist_fonts):
160 * fontset.c (fontset_add, Fset_fontset_font):
161 * ftfont.c (ftfont_lookup_cache):
162 * gtkutil.c (xg_get_font):
163 * insdel.c (signal_before_change, signal_after_change):
164 * keymap.c (append_key):
165 * lread.c (load_warn_old_style_backquotes, Fload, init_lread):
166 * minibuf.c (Fread_buffer):
167 * print.c (print_preprocess):
168 * process.c (Fformat_network_address, Fmake_network_process)
169 (server_accept_connection):
170 * sound.c (Fplay_sound_internal):
171 * term.c (Fsuspend_tty, Fresume_tty):
172 * window.c (window_list):
173 * xdisp.c (run_redisplay_end_trigger_hook, add_to_log)
174 (message_with_string):
175 * xfaces.c (Fx_list_fonts):
176 * xfont.c (syms_of_xfont):
177 * xselect.c (x_handle_selection_request)
178 (x_handle_selection_clear, x_clear_frame_selections)
179 (x_clipboard_manager_error_1):
180 Prefer CALLMANY and CALLN to counting args by hand.
181 * doc.c (reread_doc_file): Remove unused code.
182 * fns.c (concat2, concat3): Redo to avoid need for local-var vector.
183 (cmpfn_user_defined, hashfn_user_defined, Fmaphash):
184 Prefer call1 and call2 to Ffuncall.
185 * keyboard.c (safe_run_hook_funcall, safe_run_hooks):
186 Use struct literal rather than a local var, for simplicity.
187 * keymap.c (where_is_internal): Use NULL rather than a pointer
188 to unused args.
189 * lisp.h (CALLMANY, CALLN): New macros.
190 * sound.c (Fplay_sound_internal): Coalesce duplicate code.
191 Fixes: bug#19634
192
193 Use gnustep-config if available
194 * emacs.c [NS_IMPL_GNUSTEP]: Don't include <GNUstepBase/GSConfig.h>.
195 It doesn't appear to be needed, and the inclusion breaks on
196 Ubuntu 14.10 when 'configure' uses 'gnustep-config'.
197
198 2015-01-22 Eli Zaretskii <eliz@gnu.org>
199
200 * xdisp.c (init_iterator): Restore a comment lost in transition.
201
202 2015-01-22 Paul Eggert <eggert@cs.ucla.edu>
203
204 Use bool for boolean in xfont.c, xftfont.c, xgselect.c
205 * xfont.c (xfont_driver, xfont_chars_supported)
206 (xfont_text_extents):
207 * xftfont.c (xftfont_get_colors, xftfont_open)
208 (xftfont_prepare_face, xftfont_done_face)
209 (xftfont_cached_font_ok):
210 * xgselect.c (xg_select):
211 Use bool for boolean.
212
213 Don't downcase system diagnostics' first letters
214 * fileio.c (report_file_errno): Don't downcase, and simplify.
215 Fixes: bug#19642
216
217 Isolate NIL_IS_ZERO-assuming code better
218 Suggested by Stefan Monnier in:
219 http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00588.html
220 * alloc.c (allocate_pseudovector):
221 Use memclear, not memsetnil, to remove a 'verify'.
222 * callint.c (Fcall_interactively):
223 * dispnew.c (realloc_glyph_pool):
224 * xdisp.c (init_iterator):
225 Use memclear, not memset, to remove a 'verify'.
226 * lisp.h (memclear): Rename from memsetnil, and take a byte
227 count rather than a word count. All callers changed.
228
229 2015-01-20 Paul Eggert <eggert@cs.ucla.edu>
230
231 Undo port to hypothetical nonzero Qnil case
232 This mostly undoes the previous change in this area. See:
233 http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00570.html
234 * alloc.c (allocate_pseudovector):
235 * callint.c (Fcall_interactively):
236 * dispnew.c (realloc_glyph_pool):
237 * fringe.c (init_fringe):
238 * lisp.h (memsetnil):
239 * xdisp.c (init_iterator):
240 Simplify by assuming that Qnil is zero, but verify the assumption.
241 * lisp.h (NIL_IS_ZERO): Revert back to this symbol, removing
242 NIL_IS_NONZERO. All uses changed.
243
244 2015-01-20 Jan Djärv <jan.h.d@swipnet.se>
245
246 * nsterm.m (EV_TRAILER2): Set Vinhibit_quit to Qt (Bug#19531).
247
248 2015-01-20 Dmitry Antipov <dmantipov@yandex.ru>
249
250 Prefer xlispstrdup to avoid dumb calls to strlen.
251 * nsfont.m (ns_get_family):
252 * nsterm.m (ns_term_init):
253 * w32fns.c (w32_window):
254 * xfns.c (x_window, Fx_select_font): Use xlispstrdup.
255
256 2015-01-20 Paul Eggert <eggert@cs.ucla.edu>
257
258 Correct an old fix for GTK font selection
259 * gtkutil.c (xg_get_font): Fix off-by-2 typo.
260 Fixes: bug#3228
261
262 Fix minor bugs with printing null bytes
263 * minibuf.c (read_minibuf_noninteractive):
264 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]:
265 Work even if the Lisp string contains a null byte.
266
267 Port to hypothetical case where Qnil is nonzero
268 * alloc.c (allocate_pseudovector):
269 * callint.c (Fcall_interactively):
270 * coding.c (syms_of_coding):
271 * dispnew.c (realloc_glyph_pool):
272 * fringe.c (init_fringe):
273 * lisp.h (memsetnil):
274 * xdisp.c (init_iterator):
275 Port to the currently-hypothetical case where Qnil is nonzero.
276 * dispnew.c (adjust_glyph_matrix): Remove unnecessary verification,
277 as there are no Lisp_Object values in the data here.
278 * lisp.h (NIL_IS_NONZERO): New symbol, replacing NIL_IS_ZERO.
279 All uses changed. Define only if not already defined, so that one
280 can debug with -DNIL_IS_NONZERO.
281 * xdisp.c (init_iterator): Remove unnecessary initializations to 0.
282
283 2015-01-19 Eli Zaretskii <eliz@gnu.org>
284
285 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool): Verify that
286 Qnil is represented as zero, before using that to initialize parts
287 of the glyph structure.
288
289 * xdisp.c (init_iterator): Verify that Qnil is represented as
290 zero, before using that to initialize parts of the iterator
291 structure.
292
293 2015-01-19 Paul Eggert <eggert@cs.ucla.edu>
294
295 Prefer memset to repeatedly assigning Qnil
296 * alloc.c (allocate_pseudovector): Catch more bogus values.
297 * alloc.c (allocate_pseudovector):
298 * callint.c (Fcall_interactively):
299 * coding.c (syms_of_coding):
300 * fringe.c (init_fringe):
301 Verify that Qnil == 0.
302 * callint.c (Fcall_interactively):
303 * eval.c (Fapply, Ffuncall):
304 * fns.c (mapcar1, larger_vector):
305 * font.c (font_expand_wildcards):
306 * fringe.c (init_fringe):
307 Prefer memset to assigning zeros by hand.
308 * callint.c (Fcall_interactively):
309 Remove duplicate assignment of Qnil to args[i].
310 * coding.c (syms_of_coding):
311 Prefer LISP_INITIALLY_ZERO to assigning zeros by hand.
312 * fileio.c (Ffile_selinux_context):
313 Rewrite to avoid need for Lisp_Object array.
314 * lisp.h (XLI_BUILTIN_LISPSYM): New macro.
315 (DEFINE_LISP_SYMBOL_END): Use it.
316 (NIL_IS_ZERO): New constant.
317 (memsetnil): New function.
318
319 2015-01-16 Dmitry Antipov <dmantipov@yandex.ru>
320
321 Tune pseudovector allocation assuming Qnil == 0.
322 * alloc.c (allocate_pseudovector): Use memset for both
323 Lisp_Objects and regular slots. Add zerolen arg.
324 * lisp.h (allocate_pseudovector): Adjust prototype.
325 (ALLOCATE_PSEUDOVECTOR): Adjust user.
326 (ALLOCATE_ZEROED_PSEUDOVECTOR): New macro.
327 (allocate_hash_table, allocate_window, allocate_frame)
328 (allocate_process, allocate_terminal): Remove prototypes.
329 * fns.c (allocate_hash_table): Now static here.
330 * frame.c (allocate_frame):
331 * process.c (allocate_process):
332 * terminal.c (allocate_terminal):
333 * window.c (allocate_window): Now static here.
334 Use ALLOCATE_ZEROED_PSEUDOVECTOR. Add comment.
335
336 * lisp.h (XTERMINAL): Add eassert.
337 * process.c (make_lisp_proc): Now static here.
338
339 Prefer INLINE functions in font.h to match style used in lisp.h.
340 * font.h (FONTP, FONT_SPEC_P, FONT_ENTITY_P, FONT_OBJECT_P)
341 (CHECK_FONT, CHECK_FONT_SPEC, CHECK_FONT_ENTITY, CHECK_FONT_OBJECT)
342 (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT, CHECK_FONT_GET_OBJECT):
343 Now functions.
344 * font.c (Ffont_otf_alternates, Fquery_font, Ffont_get_glyphs):
345 * ftfont.c (ftfont_shape):
346 * macfont.m (macfont_shape):
347 * w32uniscribe.c (uniscribe_shape):
348 * xftfont.c (xftfont_shape): Adjust CHECK_FONT_GET_OBJECT users.
349
350 2015-01-16 Paul Eggert <eggert@cs.ucla.edu>
351
352 Give up on -Wsuggest-attribute=const
353 * decompress.c (Fzlib_available_p):
354 * gnutls.c (Fgnutls_available_p):
355 * gtkutil.h (xg_uses_old_file_dialog):
356 * xdisp.c (Ftool_bar_height):
357 * xmenu.c (popup_activated):
358 No longer const, since it's not const on at lest some
359 configurations, and we shouldn't lie to the compiler.
360
361 2015-01-15 Eli Zaretskii <eliz@gnu.org>
362
363 * fileio.c: Include binary-io.h.
364 (Fset_binary_mode): New function.
365 (syms_of_fileio): Defsubr it.
366 (syms_of_fileio) <Qstdin, Qstdout, Qstderr>: DEFSYM them.
367
368 2015-01-15 Teodor Zlatanov <tzz@lifelogs.com>
369
370 * gnutls.c (init_gnutls_functions): Import gnutls_x509_crt_check_issuer.
371 (Fgnutls_peer_status): Use it to set the :self-signed flag.
372 Rename the previous :self-signed to :unknown-ca. (Bug#19404)
373 (Fgnutls_peer_status_warning_describe): Explain :unknown-ca flag.
374
375 2015-01-14 Eli Zaretskii <eliz@gnu.org>
376
377 * w32fns.c (w32_wnd_proc): Ignore MENUITEMINFO's dwItemData data
378 when FLAGS indicate the item is not highlighted. (Bug#19596)
379
380 2015-01-14 Martin Rudalics <rudalics@gmx.at>
381
382 * xmenu.c (update_frame_menubar): Remove garbaged code.
383
384 2015-01-14 Paul Eggert <eggert@cs.ucla.edu>
385
386 remove_slash_colon need not be inline
387 * process.c, process.h (remove_slash_colon): No longer inline.
388 This saves text bytes without hurting runtime performance.
389
390 2015-01-14 Dmitry Antipov <dmantipov@yandex.ru>
391
392 Avoid extra multibyteness check in ENCODE_FILE users.
393 * callproc.c (encode_current_directory, Fcall_process, call_process):
394 * dired.c (directory_files_internal, file_name_completion):
395 Do not check for STRING_MULTIBYTE because encode_file_name
396 is a no-op for unibyte strings.
397
398 * process.h (remove_slash_colon): New function.
399 * callproc.c (encode_current_directory, call_process):
400 * process.c (Fstart_process): Use it.
401
402 Consistently handle time zone specification.
403 * editfns.c (decode_time_zone): New function, refactored out from ...
404 (Fencode_time): ... adjusted user.
405 (Fset_time_zone_rule): Use decode_time_zone.
406
407 * editfns.c (make_buffer_string_both): If requested range intersects
408 the gap, don't move the latter but copy in two regions, thus avoiding
409 unnecessary relocation of buffer data.
410
411 2015-01-14 Paul Eggert <eggert@cs.ucla.edu>
412
413 Use bool for boolean in xmenu.c, xml.c
414 * xmenu.c (x_menu_set_in_use, popup_get_selection)
415 (Fx_menu_bar_open_internal, popup_widget_loop)
416 (x_activate_menubar, xg_crazy_callback_abort)
417 (update_frame_menubar, set_frame_menubar)
418 (initialize_frame_menubar, free_frame_menubar)
419 (create_and_show_popup_menu, x_menu_show)
420 (create_and_show_dialog, x_dialog_show):
421 * xml.c (libxml2_loaded_p, init_libxml2_functions, parse_region)
422 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
423 * xrdb.c (main) [TESTRM]:
424 * xsettings.c (init_gsettings):
425 * xterm.c (XFillRectangle, xg_scroll_callback)
426 (xg_end_scroll_callback):
427 * xterm.h (x_menu_set_in_use) [USE_GTK || USE_MOTIF]:
428 Use bool for boolean.
429 * xmenu.c (TRUE): Remove; no longer used.
430 (show_help_event): Remove long-unused code.
431 (set_frame_menubar): Remove "#if 1" and corresponding "#endif" lines.
432
433 2015-01-13 Paul Eggert <eggert@cs.ucla.edu>
434
435 Don't say Fnext_read_file_uses_dialog_p is const
436 It's const only if a windowing system is not used; don't say it's
437 const otherwise. See:
438 http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00310.html
439 * fileio.c (next_read_file_uses_dialog_p): Remove.
440 Move guts back to ...
441 (Fnext_read_file_uses_dialog_p): ... here.
442 Don't declare as const, as make-docfile.c now has a special case
443 for this function. This is an ugly hack, but it's better than
444 lying to the compiler.
445
446 Remove now-unnecessary forward XTYPE decl
447 * lisp.h (XTYPE): Remove forward declaration. The recent merge
448 from emacs-24 fixed the problem in a better way, by moving XPNTR's
449 definition to after XTYPE's.
450
451 2015-01-13 Eli Zaretskii <eliz@gnu.org>
452
453 Fix problems with 32-bit wide-int build exposed by MinGW.
454 * lisp.h (XPNTR): Move definition to after XTYPE, to avoid
455 compilation error in an unoptimized build when !USE_LSB_TAG.
456
457 * w32heap.c (DUMPED_HEAP_SIZE): For 32-bit wide-int build, use the
458 same larger value as for the 64-bit build.
459
460 * w32term.h (SCROLL_BAR_PACK): Cast the result to UINT_PTR to
461 avoid compiler warnings.
462
463 * w32proc.c (Fw32_get_codepage_charset, Fw32_set_keyboard_layout):
464 Avoid compiler warnings about cast from integer to pointer of
465 different size.
466
467 * w32menu.c (menubar_selection_callback, w32_menu_show): Cast to
468 UINT_PTR instead of EMACS_INT, to avoid compiler warnings about
469 casting from integer to pointer of different size.
470 (add_menu_item): Pass the help-echo string as a pointer to
471 Lisp_String, not as a Lisp_Object.
472 (w32_menu_display_help): Use make_lisp_ptr to reconstruct a Lisp
473 string object from its C pointer.
474
475 * w32fns.c (w32_msg_pump) <WM_EMACS_UNREGISTER_HOT_KEY>: Use
476 make_lisp_ptr instead of XIL, to reconstruct a Lisp_Cons from its
477 C pointer.
478 <WM_EMACS_TOGGLE_LOCK_KEY>: msg.lparam is now a C integer.
479 (Fx_create_frame): Type-cast the result of XFASTINT to avoild
480 compiler warnings about size differences.
481 (Fw32_unregister_hot_key): Pass the tail of w32_grabbed_keys as a
482 pointer to a Lisp_Cons struct, not as a disguised EMACS_INT.
483 (Fw32_toggle_lock_key): Pass the new state of the key as a C
484 integer; use -1 for nil. Doc fix.
485
486 * .gdbinit (xgetsym): New subroutine.
487 (xsymname, xsymbol): Use it.
488 (xprintsym): No need to call xgetptr.
489
490 2015-01-13 Martin Rudalics <rudalics@gmx.at>
491
492 * frame.c (adjust_frame_size): Make sure new numbers of
493 lines/columns get installed after font size change (Bug#19575).
494
495 2015-01-13 Dmitry Antipov <dmantipov@yandex.ru>
496
497 Add DEFUN attributes.
498 * callint.c (Finteractive):
499 * character.c (Fcharacterp, Fmax_char):
500 * data.c (Feq, Fnull, Fconsp, Fatom, Flistp, Fnlistp, Fsymbolp)
501 (Fstringp, Fchar_or_string_p, Fintegerp, Fnatnump, Fnumberp)
502 (Ffloatp, Fbyteorder):
503 * decompress.c (Fzlib_available_p):
504 * fns.c (Fidentity):
505 * frame.c (Fframe_windows_min_size):
506 * gnutls.c (Fgnutls_error_p, Fgnutls_available_p):
507 * window.c (Fwindow__sanitize_window_sizes):
508 * xdisp.c (Ftool_bar_height):
509 * xfaces.c (Fface_attribute_relative_p): Add const attribute.
510 * emacs.c (Fkill_emacs):
511 * eval.c (Fthrow):
512 * keyboard.c (Ftop_level, Fexit_recursive_edit)
513 (Fabor_recursive_edit): Add noreturn attribute.
514
515 * search.c (fast_string_match_internal): New function,
516 consolidated from...
517 (fast_string_match, fast_string_match_ignore_case): ...functions
518 which are...
519 * lisp.h (fast_string_match, fast_string_match_ignore_case):
520 inlined from here now.
521 (fast_string_match_internal): Add prototype.
522 * dired.c (file_name_completion): Use fast_string_match_internal.
523
524 * fileio.c (next_read_file_uses_dialog_p): New workaround ...
525 (Fnext_read_file_uses_dialog_p): ... called from here to avoid
526 ATTRIBUTE_CONST dependency from #ifdefs. For details, see
527 http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00289.html.
528
529 2015-01-12 Paul Eggert <eggert@cs.ucla.edu>
530
531 Port to 32-bit MingGW --with-wide-int
532 Problem reported by Eli Zaretskii in:
533 http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00265.html
534 * lisp.h (struct Lisp_Sub_Char_Table): Check that offset matches
535 what we think it is, rather than checking only its alignment (and
536 doing so incorrectly on MinGW).
537
538 2015-01-12 Dmitry Antipov <dmantipov@yandex.ru>
539
540 * fileio.c (Ffile_name_as_directory, Fdirectory_file_name):
541 Remove dead NILP check.
542 * image.c (Flookup_image): Use regular format for docstring.
543 * keyboard.c (apply_modifiers_uncached): Use stpcpy.
544
545 2015-01-12 Martin Rudalics <rudalics@gmx.at>
546
547 * dispnew.c (change_frame_size_1): Pass Qchange_frame_size to
548 adjust_frame_size.
549 * frame.c (frame_default_tool_bar_height): New variable.
550 (adjust_frame_size): Possibly add requested adjustment to
551 Vframe_adjust_size_history.
552 (make_frame): Initialize tool_bar_redisplayed_once slot.
553 (Fset_frame_height, Fset_frame_width, Fset_frame_size): Clarify
554 doc-string. Call adjust_frame_size unconditionally (the frame's
555 text size may remain unaltered but the pixel size may change).
556 (x_figure_window_size): If frame_default_tool_bar_height was
557 set, use it instead of calculating the tool bar height from
558 DEFAULT_TOOL_BAR_IMAGE_HEIGHT. Don't set
559 Vframe_initial_frame_tool_bar_height.
560 (Qchange_frame_size, Qxg_frame_set_char_size)
561 (Qset_window_configuration, Qx_create_frame_1)
562 (Qx_create_frame_2): New symbols.
563 (Vframe_initial_frame_tool_bar_height): Remove.
564 (Vframe_adjust_size_history): New history variable for debugging
565 frame size adjustments.
566 * frame.h (struct frame): New boolean slot
567 tool_bar_redisplayed_once.
568 (frame_default_tool_bar_height): Extern.
569 * gtkutil.c (xg_frame_set_char_size): Pass Qxg_frame_set_char_size
570 to adjust_frame_size.
571 * nsfns.m (Fx_create_frame): Pass Pass Qx_create_frame_1 and
572 Qx_create_frame_2 to adjust_frame_size.
573 * w32fns.c (x_change_tool_bar_height): Call adjust_frame_size with
574 inhibit 1 when we have not redisplayed the tool bar yet.
575 (Fx_create_frame): Pass Pass Qx_create_frame_1 and
576 Qx_create_frame_2 to adjust_frame_size.
577 * w32menu.c (set_frame_menubar): Simplify adjust_frame_size
578 call.
579 * window.c (Fset_window_configuration): Pass
580 Qset_window_configuration to adjust_frame_size.
581 * xdisp.c (redisplay_tool_bar): Assign new height to
582 frame_default_tool_bar_height.
583 (redisplay_internal): If we haven't redisplayed this frame's
584 tool bar, call redisplay_tool_bar early so we can adjust the
585 frame size accordingly.
586 * xfns.c (x_change_tool_bar_height): Call adjust_frame_size with
587 inhibit 1 when we have not redisplayed the tool bar yet.
588 (Fx_create_frame): Pass Pass Qx_create_frame_1 and
589 Qx_create_frame_2 to adjust_frame_size.
590
591 2015-01-12 Paul Eggert <eggert@cs.ucla.edu>
592
593 Have 'make' output better GEN names
594 * Makefile.in (gl-stamp, globals.h): Simplify by putting the new
595 contents of globals.h into gl-stamp. This lets us use AM_V_GEN
596 more naturally so that 'make' can output more-accurate names.
597
598 2015-01-11 Stefan Monnier <monnier@iro.umontreal.ca>
599
600 * buffer.c (init_buffer_once): Initialize buffer_local_flags before
601 calling reset_buffer_local_variables, and make sure we initialize
602 it completely.
603
604 2015-01-11 Dmitry Antipov <dmantipov@yandex.ru>
605
606 * coding.c (Fcoding_system_plist): Use common style for docstring.
607
608 2015-01-11 Paul Eggert <eggert@cs.ucla.edu>
609
610 Port to MSB hosts without optimization
611 E.g., when configuring --with-wide-int CFLAGS='-O0' on x86,
612 the inline function XTYPE needs to be declared before being used.
613 * lisp.h (XTYPE): New forward declaration.
614
615 2015-01-10 Paul Eggert <eggert@cs.ucla.edu>
616
617 Port to 32-bit --with-wide-int
618 Prefer symbol indexes to struct Lisp_Symbol * casted and then
619 widened, as the latter had trouble with GCC on Fedora 21 when
620 configured --with-wide-int and when used in static initializers.
621 * alloc.c (garbage_collect_1, which_symbols):
622 * lread.c (init_obarray):
623 Prefer builtin_lisp_symbol when it can be used.
624 * dispextern.h (struct image_type.type):
625 * font.c (font_property_table.key):
626 * frame.c (struct frame_parm_table.sym):
627 * keyboard.c (scroll_bar_parts, struct event_head):
628 * xdisp.c (struct props.name):
629 Use the index of a builtin symbol rather than its address.
630 All uses changed.
631 * lisp.h (TAG_SYMPTR, XSYMBOL_INIT): Remove, replacing with ...
632 (TAG_SYMOFFSET, SYMBOL_INDEX): ... new macros that deal with
633 symbol indexes rather than pointers, and which work better on MSB
634 hosts because they shift right before tagging. All uses changed.
635 (DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END):
636 No longer noops on wide-int hosts, since they work now.
637 (builtin_lisp_symbol): New function.
638
639 Port to HAVE_FREETYPE && !HAVE_XFT
640 * dispextern.h (struct face.extra) [HAVE_FREETYPE && !HAVE_XFT]:
641 * font.h (syms_of_xftfont) [HAVE_FREETYPE && !HAVE_XFT]:
642 Declare in this case too.
643
644 2015-01-10 Eli Zaretskii <eliz@gnu.org>
645
646 * w32fns.c (Fw32_register_hot_key): Use XINT instead of XLI.
647
648 * w32notify.c (Fw32notify_add_watch, w32_get_watch_object): Use
649 make_pointer_integer instead of XIL.
650 (Fw32notify_rm_watch): Use XINTPTR instead of XLI.
651
652 * w32inevt.c (handle_file_notifications): Use make_pointer_integer
653 instead of XIL. Put a list of the descriptor, action, and file
654 name in event->arg, instead of spreading them between event->code
655 and event->arg.
656
657 * w32term.c (queue_notifications): Use make_pointer_integer
658 instead of XIL. Put a list of the descriptor, action, and file
659 name in event->arg, instead of spreading them between event->code
660 and event->arg.
661
662 * keyboard.c (kbd_buffer_get_event) [HAVE_W32NOTIFY]: Adjust Lisp
663 event creation to changes in w32term.c and w32inevt.c above.
664
665 2015-01-09 Paul Eggert <eggert@cs.ucla.edu>
666
667 Port Qnil==0 changes to 32-bit --with-wide-int
668 * lisp.h (lisp_h_XSYMBOL, XSYMBOL): Assume USE_LSB_TAG in the
669 macro-implemented version. For the non-USE_LSB_TAG case, supply
670 a new inline function that is the inverse of the new TAG_SYMPTR.
671 (lisp_h_XUNTAGBASE, XUNTAGBASE): Remove. All uses removed.
672 (TAG_SYMPTR) [!USE_LSB_TAG]: If the pointer subtraction yields a
673 negative number, don't allow sign bits to bleed into the encoded
674 value. Shift in zero bits instead.
675
676 Refactor pointer-to-integer conversion
677 * gfilenotify.c (monitor_to_lisp, lisp_to_monitor):
678 Rename and move to lisp.h. All uses changed.
679 * lisp.h (XINTPTR, make_pointer_integer): New inline functions,
680 which are renamed from gfilenotify.c's lisp_to_monitor and
681 monitor_to_lisp, and with more-generic void * signatures.
682
683 2015-01-08 Eli Zaretskii <eliz@gnu.org>
684
685 * dispnew.c (buffer_posn_from_coords): Fix the value of the column
686 returned for right-to-left screen lines. (Before the change on
687 2014-12-30, the incorrectly-computed X pixel coordinate concealed
688 this bug.)
689
690 * .gdbinit (xsymname): New subroutine.
691 (xprintsym, initial-tbreak): Use it to access the name of a symbol
692 in a way that doesn't cause GDB to barf when it tries to
693 dereference a NULL pointer.
694
695 * xdisp.c (next_element_from_c_string): Use Lisp integer zero as
696 the object.
697 (set_cursor_from_row, try_cursor_movement, dump_glyph)
698 (insert_left_trunc_glyphs, append_space_for_newline)
699 (extend_face_to_end_of_line, highlight_trailing_whitespace)
700 (find_row_edges, ROW_GLYPH_NEWLINE_P, Fmove_point_visually)
701 (Fbidi_resolved_levels, produce_special_glyphs)
702 (rows_from_pos_range, mouse_face_from_buffer_pos)
703 (note_mouse_highlight): Use nil as the object for glyphs inserted
704 by the display engine, and test with NILP instead of INTEGERP.
705 (Bug#19535)
706
707 * w32fns.c (Fx_show_tip): Use NILP to test for glyphs inserted by
708 the display engine.
709
710 * xfns.c (Fx_show_tip): Use NILP to test for glyphs inserted by
711 the display engine.
712
713 * dispextern.h (struct glyph, struct it): Update comments for the
714 OBJECT members.
715
716 2015-01-08 Paul Eggert <eggert@cs.ucla.edu>
717
718 Port new Lisp symbol init to x86 --with-wide-int
719 * lisp.h (DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END):
720 Define to empty on platforms where EMACS_INT_MAX != INTPTR_MAX, as
721 GCC (at least) does not allow a constant initializer to widen an
722 address constant.
723
724 * lisp.h (TAG_SYMPTR): Don't do arithmetic on NULL.
725 This is a followup to the "Port Qnil==0 XUNTAG to clang" patch.
726 Although clang doesn't need it, some other compiler might, and
727 it's easy enough to be safe.
728
729 * conf_post.h (ATTRIBUTE_ALLOC_SIZE): Port to clang 3.5.0.
730 Apparently clang removed support for the alloc_size attribute.
731
732 Port Qnil==0 XUNTAG to clang
733 clang has undefined behavior if the program subtracts an integer
734 from (char *) 0. Problem reported by YAMAMOTO Mitsuharu in:
735 http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00132.html
736 * lisp.h (lisp_h_XUNTAG) [USE_LSB_TAG]:
737 (XUNTAG) [!USE_LSB_TAG]: Port to clang 3.5.0.
738
739 Port GFileMonitor * hack to Qnil==0 platforms
740 Reported by Glenn Morris in: http://bugs.gnu.org/15880#112
741 * gfilenotify.c (monitor_to_lisp, lisp_to_monitor): New functions.
742 (dir_monitor_callback, Fgfile_add_watch, Fgfile_rm_watch): Use them.
743
744 2015-01-06 Jan Djärv <jan.h.d@swipnet.se>
745
746 * nsterm.m (x_set_window_size): Call updateFrameSize to get real
747 size instead of using widht/height. The frame may be constrained.
748
749 2015-01-05 Paul Eggert <eggert@cs.ucla.edu>
750
751 * lisp.h (XSYMBOL): Parenthesize id in forward decl.
752 Needed when neither optimizing nor inlining.
753 Also, sort decls alphabetically.
754
755 2015-01-05 Eli Zaretskii <eliz@gnu.org>
756
757 * w32proc.c, w32.h, w32fns.c, w32font.c, w32menu.c, w32notify.c:
758 * w32proc.c, w32select.c, w32term.c, w32uniscribe.c: Remove
759 declarations of Q* variables that represent symbols.
760
761 2015-01-05 Paul Eggert <eggert@cs.ucla.edu>
762
763 Use 0 for Qnil
764 Fixes Bug#15880.
765 If USE_LSB_TAG, arrange for the representation of Qnil to be zero so
766 that NILP (x) is equivalent to testing whether x is 0 at the
767 machine level. The overall effects of this and the previous patch
768 shrink the size of the text segment by 2.3% and speeds up
769 compilation of all the .elc files by about 0.5% on my platform,
770 which is Fedora 20 x86-64.
771 * lisp.h (lisp_h_XPNTR, lisp_h_XSYMBOL, lisp_h_XUNTAG)
772 (make_lisp_symbol) [USE_LSB_TAG]:
773 Symbols now tag the difference from lispsym, not the pointer.
774 (lisp_h_XUNTAGBASE, TAG_SYMPTR): New macros.
775 (Lisp_Int0, Lisp_Int1, Lisp_Symbol, Lisp_Misc, Lisp_String, Lisp_Cons):
776 Renumber so that Lisp_Symbol is 0, so that Qnil is zero.
777 (XSYMBOL): New forward decl.
778 (XUNTAGBASE): New function.
779 (XUNTAG): Use it.
780
781 Compute C decls for DEFSYMs automatically
782 Fixes Bug#15880.
783 This patch also makes Q constants (e.g., Qnil) constant addresses
784 from the C point of view.
785 * alloc.c, bidi.c, buffer.c, bytecode.c, callint.c, casefiddle.c:
786 * casetab.c, category.c, ccl.c, charset.c, chartab.c, cmds.c, coding.c:
787 * composite.c, data.c, dbusbind.c, decompress.c, dired.c, dispnew.c:
788 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, fns.c, font.c, fontset.c:
789 * frame.c, fringe.c, ftfont.c, ftxfont.c, gfilenotify.c, gnutls.c:
790 * image.c, inotify.c, insdel.c, keyboard.c, keymap.c, lread.c:
791 * macfont.m, macros.c, minibuf.c, nsfns.m, nsfont.m, nsimage.m:
792 * nsmenu.m, nsselect.m, nsterm.m, print.c, process.c, profiler.c:
793 * search.c, sound.c, syntax.c, term.c, terminal.c, textprop.c, undo.c:
794 * window.c, xdisp.c, xfaces.c, xfns.c, xftfont.c, xmenu.c, xml.c:
795 * xselect.c, xsettings.c, xterm.c:
796 Remove Q vars that represent symbols (e.g., Qnil, Qt, Qemacs).
797 These names are now defined automatically by make-docfile.
798 * alloc.c (init_symbol): New function.
799 (Fmake_symbol): Use it.
800 (c_symbol_p): New function.
801 (valid_lisp_object_p, purecopy): Use it.
802 * alloc.c (marked_pinned_symbols):
803 Use make_lisp_symbol instead of make_lisp_ptr.
804 (garbage_collect_1): Mark lispsym symbols.
805 (CHECK_ALLOCATED_AND_LIVE_SYMBOL): New macro.
806 (mark_object): Use it.
807 (sweep_symbols): Sweep lispsym symbols.
808 (symbol_uses_obj): New function.
809 (which_symbols): Use it. Work for lispsym symbols, too.
810 (init_alloc_once): Initialize Vpurify_flag here; no need to wait,
811 since Qt's address is already known now.
812 (syms_of_alloc): Add lispsym count to symbols_consed.
813 * buffer.c (init_buffer_once): Compare to Qnil, not to make_number (0),
814 when testing whether storage is all bits zero.
815 * dispextern.h (struct image_type):
816 * font.c (font_property_table):
817 * frame.c (struct frame_parm_table, frame_parms):
818 * keyboard.c (scroll_bar_parts, struct event_head):
819 * xdisp.c (struct props):
820 Use XSYMBOL_INIT (Qfoo) and struct Lisp_Symbol * rather than &Qfoo and
821 Lisp_Object *, since Qfoo is no longer an object whose address can be
822 taken. All uses changed.
823 * eval.c (run_hook): New function. Most uses of Frun_hooks changed to
824 use it, so that they no longer need to take the address of a Lisp sym.
825 (syms_of_eval): Don't use DEFSYM on Vrun_hooks, as it's a variable.
826 * frame.c (syms_of_frame): Add defsyms for the frame_parms table.
827 * keyboard.c (syms_of_keyboard): Don't DEFSYM Qmenu_bar here.
828 DEFSYM Qdeactivate_mark before the corresponding var.
829 * keymap.c (syms_of_keymap): Use DEFSYM for Qmenu_bar and Qmode_line
830 instead of interning their symbols; this avoids duplicates.
831 (LISP_INITIALLY, TAG_PTR)
832 (DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END, XSYMBOL_INIT):
833 New macros.
834 (LISP_INITIALLY_ZERO): Use it.
835 (enum symbol_interned, enum symbol_redirect, struct Lisp_Symbol)
836 (EXFUN, DEFUN_ARGS_MANY, DEFUN_ARGS_UNEVALLED, DEFUN_ARGS_*):
837 Move decls up, to avoid forward uses. Include globals.h earlier, too.
838 (make_lisp_symbol): New function.
839 (XSETSYMBOL): Use it.
840 (DEFSYM): Now just a placeholder for make-docfile.
841 * lread.c (DEFINE_SYMBOLS): Define, for globals.h.
842 (intern_sym): New function, with body taken from old intern_driver.
843 (intern_driver): Use it. Last arg is now Lisp integer, not ptrdiff_t.
844 All uses changed.
845 (define_symbol): New function.
846 (init_obarray): Define the C symbols taken from lispsym.
847 Use plain DEFSYM for Qt and Qnil.
848 * syntax.c (init_syntax_once): No need to worry about
849 Qchar_table_extra_slots.
850
851 2015-01-04 Paul Eggert <eggert@cs.ucla.edu>
852
853 'temacs -nw' should not call missing functions
854 Without this patch, "temacs -nw" fails with the diagnostic
855 "emacs: Symbol's function definition is void: frame-windows-min-size"
856 and messes up the tty's state.
857 * frame.c (Fframe_windows_min_size): New placeholder function.
858 (syms_of_frame): Define it.
859 * window.c (Fwindow__sanitize_window_sizes): New placeholder.
860 (syms_of_window): Define it.
861
862 Less 'make' chatter for lisp dir
863 * Makefile.in (%.elc): Adjust to compile-onefile change in
864 ../lisp/Makefile.in.
865
866 batch write-region no longer says "Wrote FOO"
867 This cuts down on 'make' chatter a bit.
868 * fileio.c (Fwrite_region):
869 Don't output "Wrote /whatever/foo.elc" if noninteractive.
870
871 2015-01-03 Paul Eggert <eggert@cs.ucla.edu>
872
873 Revert previous change to produce_composite_glyph
874 * term.c (produce_composite_glyph): Revert previous change (Bug#19496).
875
876 Pacify gcc -Wparentheses
877 * frame.c (x_set_frame_parameters): Add parens (Bug#19428).
878
879 2015-01-03 Martin Rudalics <rudalics@gmx.at>
880
881 * frame.c (x_set_frame_parameters): Call Fset_frame_size only if
882 f->can_x_set_window_size is true.
883 * xterm.c (x_set_window_size_1): Call change_frame_size with
884 text sizes instead of pixel sizes (Bug#19428).
885
886 2015-01-01 Eli Zaretskii <eliz@gnu.org>
887
888 * xdisp.c (pos_visible_p): Fix up the X coordinate for
889 right-to-left screen lines. (Bug#19473)
890
891 2015-01-01 Eli Zaretskii <eliz@gnu.org>
892
893 * w32proc.c (Fw32_get_codepage_charset): Doc fix. (Bug#19458)
894
895 2014-12-31 Paul Eggert <eggert@cs.ucla.edu>
896
897 Simplify setfattr use by assuming GNU make
898 * Makefile.in (PAXCTL_if_present, SETFATTR_if_present): New macros.
899 (emacs$(EXEEXT), temacs$(EXEEXT), bootstrap-emacs$(EXEEXT)): Use them.
900 Simplify by using GNU make rather than shell conditionals,
901 by using ln -f rather than rm -f followed by ln,
902 and by preferring $@ to spelling out the destination.
903
904 2014-12-29 Eli Zaretskii <eliz@gnu.org>
905
906 * sysdep.c [WINDOWSNT]: Include sys/socket.h, without which this
907 file doesn't compile on MS-Windows.
908
909 2014-12-29 Paul Eggert <eggert@cs.ucla.edu>
910
911 Allow return value of system-name to vary. (Bug#19438)
912 * filelock.c (current_lock_owner):
913 * xrdb.c (get_environ_db):
914 * xterm.c (same_x_server):
915 * xterm.c (x_term_init):
916 Prefer (system-name) to system-name, and avoid naming
917 locals 'system-name'.
918 * editfns.c (cached_system_name): New static var.
919 (init_and_cache_system_name): New function.
920 (init_editfns, Fsystem_name): Use it.
921 (syms_of_editfns): Initialize it and Vsystem_name to the same value.
922 * sysdep.c [HAVE_SOCKETS]: Don't include <sys/socket.h>, <netdb.h>.
923 (h_errno) [TRY_AGAIN && !HAVE_H_ERRNO]: Remove decl.
924 (init_system_name) [HAVE_SOCKETS]: Don't canonicalize the name.
925 Don't create a new string if the current value is already correct.
926
927 2014-12-28 Paul Eggert <eggert@cs.ucla.edu>
928
929 Fix produce_composite_width typo
930 * term.c (produce_composite_glyph):
931 Fix typo that confused number of columns for pixel width.
932
933 2014-12-28 Paul Eggert <eggert@Penguin.CS.UCLA.EDU>
934
935 Wrap dll functions more simply
936 * decompress.c, gnutls.c, image.c, xml.c:
937 If WINDOWSNT, use '#define FOO fn_FOO' to wrap dll functions,
938 rather than the inverse when not WINDOWSNT. This isolates the
939 fn_* business into the WINDOWSNT-specific section of the code,
940 which makes it easier to maintain the generic code.
941 * decompress.c (DEF_ZLIB_FN, LOAD_ZLIB_FN):
942 * gnutls.c (DEF_GNUTLS_FN, LOAD_GNUTLS_FN):
943 * image.c (DEF_IMGLIB_FN, LOAD_IMGLIB_FN):
944 * xml.c (DEF_XML2_FN, LOAD_XML2_FN):
945 Remove. All uses replaced by DEF_DLL_FN.
946 * decompress.c (inflateInit2): Remove; no longer needed.
947 * w32.h (DEF_DLL_FN, LOAD_DLL_FN): New macros.
948
949 Port memory-full checking to GnuTLS 3.3
950 Instead of using gnutls_global_set_mem_functions, check every call
951 to a GnuTLS function that might return an indication of memory
952 exhaustion. Suggested by Dmitry Antipov in:
953 http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg02056.html
954 * gnutls.c (gnutls_global_set_mem_functions) [WINDOWSNT]: Remove.
955 (init_gnutls_functions): Do not load gnutls_global_set_mem_functions.
956 (fn_gnutls_global_set_mem_functions) [!WINDOWSNT]: Remove.
957 All uses removed.
958 (check_memory_full): New function.
959 (emacs_gnutls_handshake, emacs_gnutls_handle_error)
960 (gnutls_make_error, gnutls_certificate_details, Fgnutls_peer_status)
961 (Fgnutls_boot): Use it.
962 (emacs_gnutls_global_init): Avoid gnutls_global_set_mem_functions.
963
964 2014-12-27 Paul Eggert <eggert@cs.ucla.edu>
965
966 Fix parse_settings to match internal documentation
967 * xsettings.c (parse_settings): Return the number of settings seen.
968 Count the settings changes accurately.
969 (read_settings): Don't confuse number of settings changes with
970 the return code from XGetWindowProperty.
971
972 2014-12-27 Eli Zaretskii <eliz@gnu.org>
973
974 * xdisp.c (set_iterator_to_next) <GET_FROM_STRING>: Limit search in
975 composition_compute_stop_pos to the number of characters in the
976 string. (Bug#19435)
977 <GET_FROM_BUFFER, GET_FROM_STRING>: Simplify code.
978
979 * composite.c (composition_compute_stop_pos): If no composition
980 was found in a string before ENDPOS, and ENDPOS is the string end,
981 no need to back up to a safe point.
982
983 * dispextern.h (struct it) <end_charpos>: Improve commentary.
984
985 2014-12-27 Jan Djärv <jan.h.d@swipnet.se>
986
987 * nsimage.m (allocInitFromFile:): Initialize bmRep.
988 (dealloc): Release bmRep.
989 (setPixmapData): Make bmRep local so class member is not
990 set (Bug#19133).
991 (setPixmapData): Rename local variable bmRep to avoid compiler
992 warning.
993
994 2014-12-27 Jan Djärv <jan.h.d@swipnet.se>
995
996 * xterm.c (do_ewmh_fullscreen): Don't remove maximized_horz/vert
997 when going to fullscreen (Bug#0x180004f).
998
999 2014-12-27 Eli Zaretskii <eliz@gnu.org>
1000
1001 * window.c (Fwindow_body_width): Doc fix. (Bug#19395)
1002
1003 2014-12-27 Stefan Monnier <monnier@iro.umontreal.ca>
1004
1005 * buffer.c (syms_of_buffer) <Vafter_change_functions>: fix docstring.
1006
1007 2014-12-27 Eli Zaretskii <eliz@gnu.org>
1008
1009 * gnutls.c (gnutls_init): Fix deprecation warning from GCC.
1010
1011 2014-12-26 Paul Eggert <eggert@cs.ucla.edu>
1012
1013 Use bool for boolean in xselect.c, xsettings.c
1014 * xselect.c (x_get_local_selection, struct selection_data)
1015 (x_selection_request_lisp_error, struct prop_location)
1016 (x_handle_selection_request, x_convert_selection)
1017 (waiting_for_other_props_on_window, expect_property_change)
1018 (wait_for_property_change, x_handle_property_notify)
1019 (x_get_foreign_selection, x_get_window_property)
1020 (receive_incremental_selection)
1021 (x_get_window_property_as_lisp_data)
1022 (lisp_data_to_selection_data, Fx_get_selection_internal)
1023 (x_send_client_event):
1024 * xselect.c, xterm.h (x_handle_dnd_message):
1025 * xsettings.c (dpyinfo_valid, parse_settings, read_settings)
1026 (apply_xft_settings, read_and_apply_settings)
1027 (xft_settings_event, init_gsettings, init_xsettings)
1028 (syms_of_xsettings):
1029 Use bool for boolean.
1030 * xselect.c (x_get_window_property): Omit last arg, which was an
1031 unused boolean.
1032 * xsettings.c (apply_xft_settings): Remove 2nd arg, which was
1033 always true. All callers changed.
1034
1035 2014-12-26 Eli Zaretskii <eliz@gnu.org>
1036
1037 * w32proc.c (sys_spawnve, get_lcid_callback): Use strcpy instead
1038 of strcat.
1039
1040 * w32menu.c (add_menu_item): Use stpcpy instead of strcat.
1041
1042 * w32.c (sys_readdir, stat_worker, symlink): Use strcpy instead of
1043 strcat.
1044
1045 2014-12-26 Paul Eggert <eggert@cs.ucla.edu>
1046
1047 Use bool for boolean in xsmfns.c
1048 * xsmfns.c, xterm.h (x_session_have_connection):
1049 * xsmfns.c (doing_interact, smc_interact_CB, Fhandle_save_session):
1050 Use bool for boolean.
1051 (x_session_initialize, Fhandle_save_session):
1052 Prefer NILP (x) to EQ (x, Qnil).
1053
1054 2014-12-25 Paul Eggert <eggert@cs.ucla.edu>
1055
1056 * callproc.c (child_setup):
1057 * dbusbind.c (xd_signature_cat):
1058 * doc.c (get_doc_string, Fsnarf_documentation):
1059 * editfns.c (Fuser_full_name):
1060 * frame.c (xrdb_get_resource):
1061 * gtkutil.c (xg_get_file_with_chooser):
1062 * tparam.c (tparam1):
1063 * xfns.c (xic_create_fontsetname):
1064 * xrdb.c (gethomedir, get_user_db, get_environ_db):
1065 * xsmfns.c (smc_save_yourself_CB):
1066 Rewrite to avoid the need for strcat, typically by using stpcpy
1067 and/or lispstpcpy. strcat tends to be part of O(N**2) algorithms.
1068 * doc.c (sibling_etc):
1069 * xrdb.c (xdefaults):
1070 Now a top-level static constant.
1071
1072 2014-12-23 Didier Verna <didier@didierverna.net> (tiny change).
1073
1074 * nsselect.m (Fns_selection_owner_p): Return a Lisp boolean, not a
1075 C one (Bug#19396).
1076
1077 2014-12-22 Jan Djärv <jan.h.d@swipnet.se>
1078
1079 * xterm.c (x_bitmap_icon): Partly revert change from 2014-03-21 which
1080 breaks icon setting for Gtk+ except for initial frame (Bug#19403).
1081
1082 2014-12-22 Paul Eggert <eggert@cs.ucla.edu>
1083
1084 Use bool for boolean in xterm.c
1085 * frame.h, nsterm.m, w32term.c, w32term.h, xterm.c:
1086 (x_set_window_size, x_bitmap_icon):
1087 * nsterm.m (ns_frame_raise_lower, x_new_font):
1088 * termhooks.h (struct terminal.toggle_invisible_pointer_hook)
1089 (struct terminal.frame_raise_lower_hook):
1090 * w32term.c (w32_frame_raise_lower):
1091 * xterm.c, xterm.h (x_text_icon):
1092 * xterm.c (x_update_window_begin, x_update_window_end)
1093 (x_update_end, x_after_update_window_line)
1094 (x_set_glyph_string_gc, x_draw_glyph_string_background)
1095 (x_draw_glyph_string_foreground)
1096 (x_draw_composite_glyph_string_foreground)
1097 (x_alloc_lighter_color, x_draw_relief_rect)
1098 (x_draw_glyph_string_box, x_draw_image_relief)
1099 (x_draw_image_glyph_string, x_draw_stretch_glyph_string)
1100 (x_draw_underwave, x_draw_glyph_string, x_show_hourglass)
1101 (x_hide_hourglass):
1102 (XFillRectangle) [HAVE_GTK3]:
1103 (XTtoggle_invisible_pointer, frame_highlight, frame_unhighlight)
1104 (x_focus_changed, x_find_modifier_meanings, note_mouse_movement)
1105 (XTmouse_position, xt_action_hook, xt_horizontal_action_hook)
1106 (x_send_scroll_bar_event, xm_scroll_callback)
1107 (xg_scroll_callback, xaw_jump_callback, xaw_scroll_callback)
1108 (x_create_toolkit_scroll_bar)
1109 (x_create_horizontal_toolkit_scroll_bar)
1110 (x_set_toolkit_horizontal_scroll_bar_thumb, x_scroll_bar_create)
1111 (x_scroll_bar_set_handle, XTset_vertical_scroll_bar)
1112 (XTset_horizontal_scroll_bar, x_scroll_bar_expose)
1113 (x_scroll_bar_handle_click, x_scroll_bar_note_movement)
1114 (x_scroll_bar_report_motion)
1115 (x_horizontal_scroll_bar_report_motion, x_net_wm_state)
1116 (handle_one_xevent, XTread_socket, x_draw_bar_cursor)
1117 (x_draw_window_cursor, x_clear_errors)
1118 (x_trace_wire, x_new_font, x_set_offset, wm_supports)
1119 (set_wm_state, x_set_sticky, get_current_wm_state)
1120 (do_ewmh_fullscreen, x_handle_net_wm_state)
1121 (x_check_expected_move, x_sync_with_move, x_wait_for_event)
1122 (x_set_window_size_1, XTframe_raise_lower)
1123 (x_make_frame_visible, x_iconify_frame)
1124 (x_timeout_atimer_activated_flag, same_x_server, x_display_ok)
1125 (x_term_init, x_process_timeouts, x_activate_timeout_atimer)
1126 (x_delete_terminal, x_initialize, syms_of_xterm):
1127 Use bool for boolean.
1128
1129 2014-12-20 Paul Eggert <eggert@cs.ucla.edu>
1130
1131 * composite.h (struct composition.width): Now int
1132 instead of unsigned short, as we prefer signed integers.
1133
1134 Let charset tick grow past USHRT_MAX
1135 * charset.c, charset.h (charset_ordered_list_tick):
1136 Now EMACS_UINT, not unsigned short.
1137 * fontset.c (reorder_font_vector): Allow the tick to grow to the
1138 maximum representable Emacs integer value before wrapping it around.
1139
1140 Simplify unexec file mode setting
1141 * unexaix.c, unexcoff.c, unexelf.c, unexmacosx.c:
1142 Don't include <sys/stat.h> when no longer needed.
1143 (unexec): Create file with correct mode in the first place,
1144 rather than overwriting the mode later and fiddling with the
1145 global umask in the mean time. Avoid bogus usage like
1146 'umask (777)', which should have been 'umask (0777)'.
1147 (mark_x): Remove. All callers removed.
1148
1149 2014-12-19 Paul Eggert <eggert@cs.ucla.edu>
1150
1151 Minor cleanups for Lisp objects and symbols
1152 * alloc.c (next_vector, set_next_vector):
1153 * lisp.h (lisp_h_INTEGERP, make_number, XFASTINT, make_natnum):
1154 (lisp_h_make_number) [USE_LSB_TAG]:
1155 Use Lisp_Int0 instead of the mystery constant 0.
1156 * alloc.c (mark_object): Always set and use po; that's simpler.
1157 (CHECK_LIVE, CHECK_ALLOCATED_AND_LIVE):
1158 Properly parenthesize definientia.
1159 * bidi.c (bidi_initialize):
1160 * buffer.c (init_buffer_once):
1161 * nsfns.m (syms_of_nsfns):
1162 * nsmenu.m (syms_of_nsmenu):
1163 * nsselect.m (syms_of_nsselect):
1164 Prefer DEFSYM to defining by hand.
1165 * buffer.c (syms_of_buffer): Omit unneeded staticpros.
1166 * data.c: Fix too-long line.
1167 * lisp.h (DECLARE_GDB_SYM): New macro.
1168 (DEFINE_GDB_SYMBOL_BEGIN): Use it.
1169 (DEFINE_GDB_SYMBOL_BEGIN, DEFINE_GDB_SYMBOL_END) [!MAIN_PROGRAM]:
1170 Declare the symbol, so it's visible to everywhere lisp.h is included.
1171 Move forward decls as far forward as they can go,
1172 to allow future changes to use them.
1173
1174 2014-12-18 Paul Eggert <eggert@cs.ucla.edu>
1175
1176 * gnutls.c: Include gnutls.h.
1177 This to check syms_of_gnutls's API even when !HAVE_GNUTLS.
1178 * image.c (svg_load): Fix pointer signedness.
1179
1180 2014-12-18 Martin Rudalics <rudalics@gmx.at>
1181
1182 * frame.c (frame_windows_min_size): New argument IGNORE.
1183 (adjust_frame_size): When called from change_frame_size call
1184 frame_windows_min_size with IGNORE Qt so we can ignore size
1185 restrictions.
1186
1187 2014-12-18 Eli Zaretskii <eliz@gnu.org>
1188
1189 * font.c (Ffont_info): Add more font information to the vector
1190 returned by the function, inspired by query-font. Doc fix.
1191 (Bug#19395)
1192
1193 2014-12-18 Stefan Monnier <monnier@iro.umontreal.ca>
1194
1195 * keyboard.c (input_was_pending): New var.
1196 (read_char): Use it to make sure we only skip redisplay when we can't
1197 keep up with the repeat rate.
1198
1199 2014-12-17 Stefan Monnier <monnier@iro.umontreal.ca>
1200
1201 * keyboard.c (swallow_events): Don't redisplay if there's input pending.
1202
1203 2014-12-17 Ulf Jasper <ulf.jasper@web.de>
1204
1205 * image.c (svg_load): Watch out for nil value of current buffer's
1206 filename. Re-enable filename thing for not-a-file case.
1207
1208 2014-12-17 Ulf Jasper <ulf.jasper@web.de>
1209
1210 Partially disabled previous change.
1211
1212 * image.c (svg_load): Temporarily disabled filename thing for
1213 not-a-file case as it can cause crashs.
1214
1215 2014-12-17 Ulf Jasper <ulf.jasper@web.de>
1216
1217 Fix problem with images referenced within svg files. (bug#19373)
1218
1219 * image.c: Additional parameter 'filename' for
1220 svg_load_image. Include "buffer.h". Define library function
1221 rsvg_handle_set_base_uri for WINDOWSNT.
1222 (init_svg_functions): Initialize rsvg_handle_set_base_uri.
1223 (fn_rsvg_handle_set_base_uri): Define fn_rsvg_handle_set_base_uri.
1224 (svg_load): Pass a filename to svg_load_image: either name of
1225 actual file or of current buffer's file.
1226 (svg_load_image): New parameter 'filename', used for setting
1227 base_uri, necessary for loading referenced images. (bug#19373)
1228
1229 2014-12-16 Paul Eggert <eggert@cs.ucla.edu>
1230
1231 * lread.c (init_obarray): Declare Qt as special.
1232 This fixes a typo in the 2012-05-15 patch that
1233 tried to declare Qt as special.
1234
1235 2014-12-15 Stefan Monnier <monnier@iro.umontreal.ca>
1236
1237 Various fixes to use bool type and constants.
1238 * dispnew.c (update_single_window): Remove arg `force_p' since it's
1239 always true.
1240 * xfaces.c (clear_face_cache): Use bool for the argument type.
1241
1242 2014-12-15 Paul Eggert <eggert@cs.ucla.edu>
1243
1244 Correct same_at_end when restoring window points
1245 * fileio.c (Finsert_file_contents): Compute same_at_end character
1246 position using the old buffer size, not the new one, since
1247 restore_window_points wants the old size.
1248 Fixes: debbugs:19161
1249
1250 2014-12-14 Alan Mackenzie <acm@muc.de>
1251
1252 New feature optionally to accelerate auto-repeated scrolling.
1253
1254 * xdisp.c: Remove "static" from declaration of Qfontification_functions.
1255
1256 * window.c (window_scroll): Bind fontification-functions to nil
1257 when scrolling by whole screens and
1258 fast-but-imprecise-scrolling is non-nil.
1259 (syms_of_window): New DEFVAR_BOOL fast-but-imprecise-scrolling.
1260
1261 * lisp.h (bool): Declare Qfontification_functions extern.
1262
1263 2014-12-14 Eli Zaretskii <eliz@gnu.org>
1264
1265 Load system's default trusted Certificate Authorities if available.
1266 * gnutls.c (gnutls_certificate_set_x509_system_trust)
1267 [GNUTLS >= 3.0.20]: Declare for WINDOWSNT.
1268 (init_gnutls_functions)(gnutls_certificate_set_x509_system_trust)
1269 [GNUTLS >= 3.0.20]: Load from shared library for WINDOWSNT.
1270 (fn_gnutls_certificate_set_x509_system_trust) [!WINDOWSNT]:
1271 Define new macro.
1272 (Fgnutls_boot) [GNUTLS >= 3.0.20]:
1273 Call gnutls_certificate_set_x509_system_trust. Log an error message if
1274 it fails.
1275
1276 2014-12-14 Paul Eggert <eggert@cs.ucla.edu>
1277
1278 * regex.c (analyze_first): Rename from analyze_first.
1279
1280 2014-12-13 Paul Eggert <eggert@cs.ucla.edu>
1281
1282 * alloc.c (XMALLOC_BASE_ALIGNMENT): Use max_align_t instead of
1283 a hack involving a union.
1284
1285 2014-12-13 Eli Zaretskii <eliz@gnu.org>
1286
1287 * gnutls.c (Fgnutls_available_p, syms_of_gnutls):
1288 Move gnutls-available-p out of the HAVE_GNUTLS conditional, and define
1289 them only once.
1290
1291 2014-12-13 Teodor Zlatanov <tzz@lifelogs.com>
1292
1293 * emacs.c (main): Always include gnutls.h and run syms_of_gnutls.
1294
1295 * gnutls.h: Always declare syms_of_gnutls.
1296
1297 * gnutls.c (Fgnutls_available_p syms_of_gnutls): Move later for
1298 clarity. Let the availability check return Qnil when the GnuTLS
1299 integration is not available, instead of erroring out.
1300 (Bug#19346)
1301
1302 2014-12-13 Eli Zaretskii <eliz@gnu.org>
1303
1304 * xdisp.c (move_it_in_display_line_to, display_line):
1305 Don't disallow overflow-newline-into-fringe when word-wrap is in
1306 effect. (Bug#19300)
1307
1308 2014-12-11 Stefan Monnier <monnier@iro.umontreal.ca>
1309
1310 * fileio.c: Better preserve window-points during revert (bug#19161).
1311 (Qget_buffer_window_list): New var.
1312 (get_window_points_and_markers, restore_window_points): New functions.
1313 (Finsert_file_contents): Use them to save and restore window-points.
1314
1315 2014-12-11 Dmitry Antipov <dmantipov@yandex.ru>
1316
1317 * xterm.c (x_delete_terminal): Call emacs_close for X connection
1318 descriptor if called from x_connection_closed and always delete
1319 this descriptor from keyboard waiting set (Bug#19147).
1320
1321 2014-12-10 Eli Zaretskii <eliz@gnu.org>
1322
1323 * bidi.c (BIDI_CACHE_MAX_ELTS_PER_SLOT): New macro.
1324 (bidi_cache_max_elts): New global variable.
1325 (bidi_shelve_header_size): Add the sizeof bidi_cache_max_elts.
1326 (bidi_cache_shrink, bidi_initialize): Reset bidi_cache_max_elts to
1327 its initial value.
1328 (bidi_cache_search): Handle overflown cache. Improve commentary.
1329 (bidi_cache_ensure_space): Limit allocations to the current value
1330 of bidi_cache_max_elts. Force xpalloc not to over-allocate.
1331 If less than a full BIDI_CACHE_CHUNK is left to the limit, decrease
1332 the increment to not exceed the limit.
1333 (bidi_cache_iterator_state): Now returns non-zero if succeeded to
1334 cache, zero otherwise (meaning the cache overflowed). In the
1335 latter case, set bidi_cache_last_idx to -1.
1336 (bidi_peek_at_next_level): Handle overflown cache.
1337 (bidi_push_it): Increase the cache limit for iterating the new object.
1338 (bidi_pop_it): Decrease the cache limit back to previous value.
1339 (bidi_shelve_cache): Shelve the current value of the cache limit.
1340 (bidi_unshelve_cache): Restore the value of cache limit.
1341 (bidi_find_bracket_pairs): If the cache overflows while looking
1342 for the paired bracket, give up and let bidi_resolve_neutrals
1343 process the bracket as a simple neutral. (Bug#19322)
1344 (bidi_find_other_level_edge): If the cache overflows, fall back on
1345 Plan B, which effectively stops the reordering and restarts it on
1346 the next character (after resetting the cache).
1347 (bidi_move_to_visually_next): When the cache overflows, reset it
1348 after processing the last cached character.
1349
1350 2014-12-10 Paul Eggert <eggert@cs.ucla.edu>
1351
1352 Fix glitches in gnutls.c, mostly memory-related
1353 * gnutls.c: Sort macro definitions by name.
1354 (fn_gnutls_transport_set_errno): Omit unreachable definition.
1355 (fn_gnutls_x509_crt_get_signature): Omit unused symbol.
1356 (gnutls_hex_string): Arg is now unsigned char *, to avoid a cast.
1357 Prefer ptrdiff_t for sizes. Check for arithmetic overflow when
1358 calculating string length. Use make_uninit_string, to avoid
1359 copying the string. Cast the char, not the pointer.
1360 (gnutls_certificate_details): Use xmalloc and xfree, not malloc
1361 and free. Work even for dates past the year 9999. Use void *
1362 for buffers, to avoid casts.
1363
1364 2014-12-09 Andy Moreton <andrewjmoreton@gmail.com> (tiny change)
1365
1366 * gnutls.c (gnutls_protocol_get_name): Fix a copy/paste typo.
1367
1368 2014-12-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
1369
1370 * gnutls.c (Fgnutls_peer_status): Return the key exchange, cipher
1371 and MAC algorithms.
1372
1373 2014-12-08 Stefan Monnier <monnier@iro.umontreal.ca>
1374
1375 * process.c: Whitespace and line-break nitpicks.
1376
1377 2014-12-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
1378
1379 * gnutls.c (gnutls_certificate_details): The :signature isn't
1380 that useful, so remove it.
1381 (gnutls_certificate_details): Clean up whitespace slightly.
1382 (Fgnutls_peer_status): Return the Diffie-Hellman prime bits for
1383 the connection.
1384 (gnutls_certificate_details): Put :signature-algorithm back again,
1385 which was removed by mistake.
1386 (emacs_gnutls_handle_error): Fatal errors should be on level 1, so
1387 that they are not messaged by default (bug#16253).
1388 (Fgnutls_error_fatalp): Doc fix (bug#18210).
1389
1390 * gnutls.c: Add Windows specs for gnutls_dh_get_prime_bits.
1391
1392 2014-12-07 Jan Djärv <jan.h.d@swipnet.se>
1393
1394 * nsimage.m (setPixmapData): Make bmRep local so class member is not
1395 set (Bug#19133).
1396
1397 2014-12-05 Lee Duhem <lee.duhem@gmail.com> (tiny change)
1398
1399 * eval.c (Fsignal): Remove duplicate test.
1400 (Fautoload_do_load): Fix up docstring.
1401
1402 2014-12-05 Jan Djärv <jan.h.d@swipnet.se>
1403
1404 * nsterm.m (represented_filename, represented_frame): New variables.
1405 (ns_set_represented_filename): New function.
1406 (sendEvent:): Set represented filename here to avoid flicker,
1407 related to Bug#18757.
1408
1409 * nsterm.h: Declare ns_set_represented_filename.
1410
1411 * nsfns.m (ns_set_name_as_filename): Don't set represented filename
1412 at once, call ns_set_represented_filename instead.
1413
1414 2014-12-05 Eli Zaretskii <eliz@gnu.org>
1415
1416 * dispextern.h (enum bidi_dir_t): Force NEUTRAL_DIR to be zero.
1417 (struct bidi_stack): Reduce size by using bit fields and by
1418 packing sos, override, and isolate_status into a single 8-bit
1419 byte called 'flags'.
1420
1421 * bidi.c (ISOLATE_STATUS, OVERRIDE): New macros.
1422 (bidi_push_embedding_level): Construct flags from individual
1423 bits. Adapt to changes in prev_for_neutral and next_for_neutral
1424 members.
1425 (bidi_pop_embedding_level): Use ISOLATE_STATUS. Extract 'sos'
1426 from flags. Adapt to changes in prev_for_neutral,
1427 next_for_neutral, and last_strong members.
1428 (bidi_line_init): Initialize flags to zero.
1429 (bidi_resolve_explicit, bidi_resolve_weak, bidi_resolve_brackets)
1430 (bidi_resolve_neutral): Use ISOLATE_STATUS and OVERRIDE.
1431
1432 2014-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
1433
1434 * eval.c (backtrace_eval_unrewind): Rewind also the excursions.
1435 (Fapply): Try and simplify the control flow.
1436
1437 2014-12-03 Chris Zheng <chriszheng99@gmail.com> (tiny change)
1438
1439 * gnutls.c (init_gnutls_functions, gnutls_certificate_details):
1440 Use gnutls_sign_get_name directly because
1441 gnutls_sign_algorithm_get_name is a macro on MinGW (bug#19231).
1442 (init_gnutls_functions): Load missing gnutls_server_name_set.
1443
1444 2014-12-02 Eli Zaretskii <eliz@gnu.org>
1445
1446 * bidi.c (bidi_find_first_overridden): New function.
1447
1448 * xdisp.c (Fbidi_find_overridden_directionality): New function.
1449 (syms_of_xdisp): Defsubr it.
1450
1451 * dispextern.h (bidi_find_first_overridden): Add prototype.
1452
1453 2014-12-02 Jan Djärv <jan.h.d@swipnet.se>
1454
1455 * nsimage.m (initFromSkipXBM:width:height:flip:length:): Set bmRep
1456 to nil after release (Bug#9133).
1457
1458 2014-11-30 Paul Eggert <eggert@cs.ucla.edu>
1459
1460 Port better to AddressSanitizer.
1461 These changes suffice for temacs on x86-64 with GCC 4.9.2 and
1462 -fsanitize=address.
1463 * alloc.c (valid_pointer_p) [ADDRESS_SANITIZER]:
1464 Return -1 or 0, as the pipe trick doesn't work.
1465 * alloc.c (relocatable_string_data_p, mark_object, sweep_symbols):
1466 * data.c (Ffset):
1467 * print.c (print_object):
1468 When a pointer-check primitive returns -1, do not assume this
1469 means the pointer is valid or that the underlying system has failed.
1470 It could just be that addresses are being sanitized so Emacs can't
1471 test for pointer validity.
1472 * lisp.h (defined_GC_CHECK_STRING_BYTES): New constant.
1473 (USE_STACK_STRING) [GC_CHECK_STRING_BYTES]: Now false, since the
1474 string validity checker doesn't work on stack-based strings.
1475
1476 2014-11-29 Paul Eggert <eggert@cs.ucla.edu>
1477
1478 Improve clarity of USE_LSB_TAG definition.
1479 Reported by Lee Duhem. Suggested by Andreas Schwab in:
1480 http://lists.gnu.org/archive/html/emacs-devel/2014-11/msg02222.html
1481 * lisp.h (USE_LSB_TAG): Define in terms of the (simpler)
1482 VAL_MAX / 2 rather than in terms of the (more complicated)
1483 EMACS_INT_MAX >> GCTYPEBITS, and adjust commentary to match.
1484
1485 2014-11-29 Eli Zaretskii <eliz@gnu.org>
1486
1487 * xdisp.c (handle_single_display_spec): When ignoring a fringe
1488 bitmap display, reset the ignore_overlay_strings_at_pos_p flag.
1489 (next_element_from_buffer): When done with overlays, reset the
1490 ignore_overlay_strings_at_pos_p flag. (Bug#19201)
1491
1492 2014-11-29 Eli Zaretskii <eliz@gnu.org>
1493
1494 * w32fns.c (Fw32_shell_execute): Convert forward slashes in
1495 DOCUMENT to backslashes, if DOCUMENT is a file. (Bug#19141)
1496
1497 2014-11-29 Ulrich Müller <ulm@gentoo.org>
1498
1499 * Makefile.in (temacs$(EXEEXT)): Use consistent flag settings
1500 for paxctl and setfattr. Fixes temacs startup failure with
1501 grsecurity/PaX enabled Linux kernel (bug#19067).
1502
1503 2014-11-27 Oscar Fuentes <ofv@wanadoo.es>
1504
1505 * w32.c, w32heap.c, w32term.c:
1506 Use MINGW_W64 instead of _W64.
1507
1508 2014-11-27 Stefan Monnier <monnier@iro.umontreal.ca>
1509
1510 * frame.c (Fhandle_switch_frame): Deactivate shift-region (bug#19003).
1511
1512 2014-11-26 Lars Magne Ingebrigtsen <larsi@gnus.org>
1513
1514 * gnutls.c (gnutls_ip_address_p): New function.
1515 (Fgnutls_boot): Only send SNI if the host name is not an IP address.
1516
1517 2014-11-26 Toke Høiland-Jørgensen <toke@toke.dk> (tiny change)
1518
1519 * gnutls.c (Fgnutls_boot): Send the server name over (bug#18208).
1520
1521 2014-11-25 Paul Eggert <eggert@cs.ucla.edu>
1522
1523 Fix gnutls problems caught by static checking.
1524 * gnutls.c (Fgnutls_boot): Remove unused local.
1525 (Fgnutls_boot): Fix pointer signedness.
1526
1527 2014-11-25 Lars Magne Ingebrigtsen <larsi@gnus.org>
1528
1529 * gnutls.c (gnutls_certificate_details): Don't include certain
1530 certificate details on older gnutls versions (bug#19168).
1531 (syms_of_gnutls): Export gnutls_peer_status_warning_describe.
1532 (gnutls_certificate_details): Reversed check in last checkin.
1533
1534 2014-11-25 Teodor Zlatanov <tzz@lifelogs.com>
1535
1536 * gnutls.c (Fgnutls_peer_status): Check GNUTLS_INITSTAGE, not gnutls_p.
1537 (Fgnutls_peer_status_warning_describe): Add function to describe a
1538 peer verification warning symbol.
1539 (Fgnutls_peer_status): Use it.
1540 (Fgnutls_boot): Use it. Minor logging fixes.
1541
1542 2014-11-24 Lars Magne Ingebrigtsen <larsi@gnus.org>
1543
1544 * gnutls.c: Fix compilation warnings given fix --enable-gcc-warnings.
1545
1546 2014-11-24 Glenn Morris <rgm@gnu.org>
1547
1548 * emacs.c (main) <--version>: Make use of PACKAGE_NAME.
1549
1550 * Makefile.in (emacs.res): Use ../nt rule, rather than duplicating it.
1551 (ntsource, WINDRES, EMACS_MANIFEST): Remove, now unused.
1552
1553 2014-11-23 Lars Magne Ingebrigtsen <larsi@gnus.org>
1554
1555 * gnutls.c: Fix Windows function definition of
1556 gnutls_x509_crt_get_fingerprint.
1557
1558 * gnutls.c: Fix Windows return value for gnutls_pk_algorithm_get_name.
1559
1560 * gnutls.c (Fgnutls_boot): Save certificate for later inspection.
1561
1562 * process.h: Added more fields to Lisp_Process to track
1563 certificate details.
1564
1565 * gnutls.c (gnutls_hex_string, gnutls_certificate_details)
1566 (Fgnutls_peer_status): New functions to export TLS certificate
1567 details to Emacs Lisp.
1568
1569 2014-11-23 Jan Djärv <jan.h.d@swipnet.se>
1570
1571 * gtkutil.c (gtk_adjustment_configure): Define for Gtk+ < 2.14.
1572 (xg_set_toolkit_horizontal_scroll_bar_thumb): Remove wrong version
1573 check for gtk_adjustment_configure (Bug#19149).
1574 (gtk_adjustment_configure): Don't use 2.14 functions (Bug#19149).
1575
1576 2014-11-22 Glenn Morris <rgm@gnu.org>
1577
1578 * Makefile.in (emacs.res): Add dependency on icons/hand.cur. Use $<.
1579
1580 2014-11-22 Martin Rudalics <rudalics@gmx.at>
1581
1582 Don't shrink frame when using desktop-save-mode (Bug#19048).
1583 * w32fns.c (x_set_tool_bar_lines): Always call
1584 x_change_tool_bar_height (Bug#19048).
1585 (x_change_tool_bar_height): Mark frame as garbaged since
1586 adjust_frame_size might not have done that.
1587 * xfns.c (x_set_tool_bar_lines): Always call
1588 x_change_tool_bar_height (Bug#19048).
1589 (x_change_tool_bar_height): Mark frame as garbaged since
1590 adjust_frame_size might not have done that.
1591
1592 2014-11-21 Ulf Jasper <ulf.jasper@web.de>
1593
1594 * xml.c (parse_region): Take care of new optional parameter
1595 'discard-comments' of 'libxml-parse(html|xml)-region'.
1596 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
1597 New optional parameter 'discard-comments'.
1598
1599 2014-11-17 Paul Eggert <eggert@cs.ucla.edu>
1600
1601 Improve time stamp handling, and be more consistent about it.
1602 * editfns.c (invalid_time): New function.
1603 Use it instead of 'error ("Invalid time specification")'.
1604 (time_add, time_subtract, time_arith, Ftime_add, Ftime_less_p)
1605 (decode_float_time, lisp_to_timespec, lisp_time_struct):
1606 New functions.
1607 (make_time_tail, make_time): Remove. All uses changed to use
1608 new functions or plain list4i.
1609 (disassemble_lisp_time): Return effective length if successful.
1610 Check that LOW is an integer, if it's combined with other components.
1611 (decode_time_components): Decode into struct lisp_time, not
1612 struct timespec, so that we can support a wide set of times
1613 regardless of whether time_t is signed. Decode plain numbers
1614 as seconds since the Epoch, and nil as the current time.
1615 (lisp_time_argument, lisp_seconds_argument, Ffloat_time):
1616 Reimplement in terms of new functions.
1617 (Fencode_time): Just use list2i.
1618 (syms_of_editfns): Add time-add, time-subtract, time-less-p.
1619 * keyboard.c (decode_timer): Don't allow the new formats (floating
1620 point or nil) in timers.
1621 * systime.h (LO_TIME_BITS): New constant. Use it everywhere in
1622 place of the magic number '16'.
1623 (struct lisp_time): New type.
1624 (decode_time_components): Use it.
1625 (lisp_to_timespec): New decl.
1626
1627 2014-11-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
1628
1629 * intervals.h (INTERVAL_WRITABLE_P): Check the `inhibit-read-only'
1630 text property.
1631
1632 * callint.c (Fcall_interactively): Pass in nil as argument to
1633 Fbarf_if_buffer_read_only.
1634
1635 * fileio.c (Finsert_file_contents): Ditto.
1636
1637 * insdel.c (prepare_to_modify_buffer_1): Pass start region in.
1638
1639 * textprop.c (verify_interval_modification): Check buffer
1640 readedness after the last interval.
1641
1642 * buffer.c (Fbarf_if_buffer_read_only): Don't raise an error if
1643 the text at POSITION (new optional argument) has the
1644 `inhibit-read-only' text property set.
1645
1646 2014-11-16 Eli Zaretskii <eliz@gnu.org>
1647
1648 * window.c (window_scroll_pixel_based): Avoid truncation/rounding
1649 errors in computing the number of pixels to scroll.
1650 Suggested by Kelly Dean <kelly@prtime.org>. (Bug#19060)
1651
1652 2014-11-16 Jan Djärv <jan.h.d@swipnet.se>
1653
1654 * nsmenu.m (update_frame_tool_bar): If tool bar changes height,
1655 call updateFrameSize.
1656
1657 * nsterm.m (setFrame:): Remove call to display (Bug#18757).
1658
1659 2014-11-16 Jan Djärv <jan.h.d@swipnet.se>
1660
1661 * nsfns.m (x_set_foreground_color, x_set_background_color)
1662 (x_set_cursor_color, Fxw_color_values): Block/unblock input,
1663 use SET_FRAME_GARBAGED instead of redraw_frame (Bug#19036).
1664
1665 2014-11-15 Jan Djärv <jan.h.d@swipnet.se>
1666
1667 * nsterm.m (ns_send_appdefined): Check for application defined
1668 event on Cocoa (Bug#18993).
1669 (run): Restore code before the previous 18993 fix.
1670
1671 2014-11-14 David Reitter <david.reitter@gmail.com>
1672
1673 * nsterm.m (run): Set timeout for event loop to prevent hang.
1674 (Bug#18993)
1675
1676 2014-11-14 Paul Eggert <eggert@cs.ucla.edu>
1677
1678 * .gitignore: Add emacs-[1-9]*, to ignore files like emacs-25.0.50.1.
1679
1680 2014-11-14 Dmitry Antipov <dmantipov@yandex.ru>
1681
1682 * xfont.c (xfont_list_pattern): Do not allocate font entity object
1683 for each candidate font but attempt to reuse it from previous improper
1684 candidate, if any.
1685
1686 2014-11-13 Paul Eggert <eggert@cs.ucla.edu>
1687
1688 Avoid undefined behavior in color table hashing.
1689 * image.c (CT_HASH_RGB) [COLOR_TABLE_SUPPORT]: Remove, replacing with ...
1690 (ct_hash_rgb) [COLOR_TABLE_SUPPORT]: New function. All uses changed.
1691 This function avoids undefined behavior with signed shift overflow.
1692
1693 2014-11-10 Eli Zaretskii <eliz@gnu.org>
1694
1695 * fileio.c (Finsert_file_contents): Invalidate buffer caches also
1696 when the inserted text does not need decoding. (Bug#18982)
1697
1698 2014-11-10 Jan Djärv <jan.h.d@swipnet.se>
1699
1700 * nsterm.h (EmacsScroller): judge returns bool.
1701
1702 * nsterm.m (ns_set_vertical_scroll_bar): Release bar.
1703 (ns_judge_scroll_bars): Only set removed if judge returns true.
1704 (judge): Returns bool == condemned. Remove self from window.
1705 (setPosition:portion:whole:): Remove raise SIGIO (Bug#18757).
1706
1707 2014-11-10 Stefan Monnier <monnier@iro.umontreal.ca>
1708
1709 * keyboard.c (command_loop_1): Record this-command in recent-keys.
1710 (Frecent_keys): Rewrite. and add optional `include-cmds' arg.
1711
1712 2014-11-09 Jan Djärv <jan.h.d@swipnet.se>
1713
1714 * nsterm.m (ns_set_vertical_scroll_bar)
1715 (ns_set_horizontal_scroll_bar): Cleanup merge error.
1716
1717 2014-11-09 Paul Eggert <eggert@cs.ucla.edu>
1718
1719 * xgselect.c (xg_select): Don't assume n_gfds is nonnegative
1720 merely because tmo_in_millisec is nonnegative. The 1st call
1721 to g_main_context_query could succeed while the 2nd one fails.
1722
1723 * frame.c (Fcan_run_window_configuration_change_hook): Return a value.
1724
1725 2014-11-08 Jan Djärv <jan.h.d@swipnet.se>
1726
1727 * nsterm.m (run): Only use non-system event loop if OSX version is
1728 exactly 10.9 (Bug#18993).
1729 (ns_set_vertical_scroll_bar): Don't call bar setPosition: unless
1730 needed (Bug#18757).
1731
1732 2014-11-08 Michael Albinus <michael.albinus@gmx.de>
1733
1734 * callproc.c (encode_current_directory): Support handling of file
1735 names prepended by "/:". (Bug#18891)
1736
1737 2014-11-08 Alan Mackenzie <acm@muc.de>
1738
1739 * syntax.c (back_comment): Fix off-by-one error (bug#18022).
1740
1741 2014-11-08 Dima Kogan <dima@secretsauce.net>
1742
1743 * xgselect.c (xg_select): Use g_main_context_acquire (bug#18861).
1744
1745 2014-11-08 Michael Albinus <michael.albinus@gmx.de>
1746
1747 * dired.c (Ffile_attributes): Return Qnil, if Fexpand_file_name
1748 raises an error. (Bug#18891)
1749
1750 2014-11-08 Martin Rudalics <rudalics@gmx.at>
1751
1752 * frame.c (adjust_frame_size): Call x_set_window_size only if
1753 f->can_x_set_window_size is set.
1754 (make_frame): Initialize f->can_x_set_window_size and
1755 f->can_run_window_configuration_change_hook.
1756 (Fcan_run_window_configuration_change_hook): New function.
1757 * frame.h (frame): Split `official' into `can_x_set_window_size'
1758 and `can_run_window_configuration_change_hook'.
1759 * nsfns.m (Fx_create_frame): Set f->can_x_set_window_size.
1760 * w32fns.c (Fx_create_frame, x_create_tip_frame):
1761 Set f->can_x_set_window_size.
1762 * window.c (run_window_configuration_change_hook):
1763 Return immediately if either f->can_x_set_window_size or
1764 f->can_run_window_configuration_change_hook are false.
1765 (Fset_window_configuration): Instead of f->official set
1766 f->can_x_set_window_size.
1767 * xfns.c (Fx_create_frame, x_create_tip_frame):
1768 Set f->can_x_set_window_size.
1769
1770 2014-11-08 Jan Djärv <jan.h.d@swipnet.se>
1771
1772 * nsterm.m (EmacsScroller.dealloc): Reinstate, removed at merge
1773 cleanup from 2014-11-01 (Bug#18972).
1774
1775 2014-11-07 Stefan Monnier <monnier@iro.umontreal.ca>
1776
1777 * keyboard.c: Call gui-set-selection instead of x-set-selection.
1778 * xdisp.c (window-scroll-functions): Improve docstring.
1779
1780 2014-11-07 Paul Eggert <eggert@cs.ucla.edu>
1781
1782 Uniquify the 'size' symbol.
1783 * frame.c (Qsize):
1784 * w32notify.c (Qsize): Remove.
1785 * lisp.h (Qsize): New decl.
1786 * lread.c (Qsize): Now extern.
1787 * w32notify.c (syms_of_w32notify): No need to defsym.
1788
1789 2014-11-07 Martin Rudalics <rudalics@gmx.at>
1790
1791 * dispnew.c (change_frame_size_1): Fix call of
1792 adjust_frame_size.
1793 * frame.c (Qsize, Qframe_position, Qframe_outer_size)
1794 (Qframe_inner_size, Qexternal_border_size, Qtitle_height)
1795 (Qmenu_bar_external, Qmenu_bar_size, Qtool_bar_external)
1796 (Qtool_bar_size): New constants.
1797 (frame_inhibit_resize, adjust_frame_size): New argument to
1798 handle case where frame_inhibit_implied_resize is a list.
1799 (Fmake_terminal_frame, Fset_frame_height, Fset_frame_width)
1800 (Fset_frame_size, x_set_left_fringe, x_set_right_fringe)
1801 (x_set_right_divider_width, x_set_bottom_divider_width)
1802 (x_set_vertical_scroll_bars, x_set_horizontal_scroll_bars)
1803 (x_set_scroll_bar_width, x_set_scroll_bar_height):
1804 Update callers.
1805 (frame-inhibit-implied-resize): Rewrite doc-string.
1806 * frame.h (frame_inhibit_resize, adjust_frame_size):
1807 Fix external declarations.
1808 (Qframe_position, Qframe_outer_size)
1809 (Qframe_inner_size, Qexternal_border_size, Qtitle_height)
1810 (Qmenu_bar_external, Qmenu_bar_size, Qtool_bar_external)
1811 (Qtool_bar_size): Extern them.
1812 * gtkutil.c (FRAME_TOTAL_PIXEL_HEIGHT, FRAME_TOTAL_PIXEL_WIDTH)
1813 (xg_height_or_width_changed): Remove.
1814 (xg_frame_set_char_size): Adjust adjust_frame_size calls.
1815 (menubar_map_cb, xg_update_frame_menubar, free_frame_menubar)
1816 (tb_size_cb, update_frame_tool_bar, free_frame_tool_bar)
1817 (xg_change_toolbar_position): Call adjust_frame_size directly.
1818 * nsfns.m (x_set_internal_border_width, Fx_create_frame):
1819 Fix calls of adjust_frame_size.
1820 * w32fns.c (x_set_internal_border_width, x_set_menu_bar_lines)
1821 (Fx_create_frame, x_create_tip_frame): Adjust adjust_frame_size calls.
1822 (x_set_tool_bar_lines, x_change_tool_bar_height): Make sure that
1823 frame can get resized when tool-bar-lines parameter changes from
1824 or to zero.
1825 (Fw32_frame_menu_bar_size): Return fourth value.
1826 (Fw32_frame_rect): Block input around system calls
1827 (Fx_frame_geometry): New function.
1828 * w32menu.c (set_frame_menubar): Adjust adjust_frame_size call.
1829 * w32term.c (x_new_font): Adjust adjust_frame_size call.
1830 * widget.c (EmacsFrameSetCharSize): Adjust frame_inhibit_resize call.
1831 * window.c (Fset_window_configuration): Adjust adjust_frame_size call.
1832 * xfns.c (x_set_menu_bar_lines, x_set_internal_border_width)
1833 (Fx_create_frame): Adjust adjust_frame_size calls.
1834 (x_set_tool_bar_lines, x_change_tool_bar_height): Make sure that
1835 frame can get resized when tool-bar-lines parameter changes from
1836 or to zero.
1837 (Fx_frame_geometry): New function.
1838 * xmenu.c (update_frame_menubar): On Lucid call
1839 adjust_frame_size with one pixel less height to avoid that
1840 repeatedly adding/removing the menu bar grows the frame.
1841 (free_frame_menubar): On Motif arrange to optionally preserve
1842 the old frame height when removing the menu bar.
1843 * xterm.c (x_new_font): Adjust adjust_frame_size call.
1844
1845 2014-11-03 Eli Zaretskii <eliz@gnu.org>
1846
1847 * xdisp.c (Fdump_glyph_matrix, Fdump_frame_glyph_matrix): Doc fix.
1848 (Fdump_frame_glyph_matrix): Don't segfault if invoked on a GUI
1849 frame; instead, print an error message.
1850
1851 2014-11-03 Jan Djärv <jan.h.d@swipnet.se>
1852
1853 * nsfns.m (ns_set_doc_edited): Check for FRAME_NS (Bug#18925).
1854
1855 2014-11-02 Jan Djärv <jan.h.d@swipnet.se>
1856
1857 * nsimage.m (allocInitFromFile:): Initialize bmRep.
1858 (dealloc): Release bmRep.
1859
1860 * nsterm.h (EmacsImage): Remove imageListNext, refCount, reference,
1861 imageListSetNext, imageListNext.
1862
1863 * nsimage.m (ImageList, imageListNext, imageListSetNext:)
1864 (reference): Remove.
1865 (allocInitFromFile:): Remove searching ImageList and calling
1866 reference (Bug#18918).
1867 (dealloc): Remove handling if ImageList.
1868
1869 2014-11-02 Andreas Schwab <schwab@linux-m68k.org>
1870
1871 * process.c (catch_child_signal): Fix incorrect assertion.
1872
1873 2014-11-01 Jan Djärv <jan.h.d@swipnet.se>
1874
1875 * macfont.m (macfont_draw):
1876 * nsterm.m (ns_mouse_position, judge): Clean up merge conflict.
1877
1878 * macfont.m (macfont_glyph_extents): Turn off synthetic bold
1879 if force_integral_p (i.e. no antialias).
1880 (macfont_draw): Check ns_antialias_text, also turn off synthetic
1881 bold if no antialias (Bug#18876).
1882
1883 * emacs.c (main): Don't chdir to $HOME on Cocoa if --chdir
1884 was given (Bug#18846).
1885
1886 * nsterm.h (ns_set_doc_edited): Declare taking no args.
1887
1888 * nsfns.m (ns_set_doc_edited): Do all logic (check frames) here
1889 instead of in xdisp.c, function now takes void. (Bug#18884).
1890
1891 * xdisp.c (prepare_menu_bars): Remove HAVE_NS code.
1892 (redisplay_internal): Call ns_set_doc_edited if HAVE_NS (Bug#18884).
1893
1894 * nsterm.h (EmacsScroller): Replace Lisp_Object win with
1895 struct window* (Bug#18889).
1896 Remove getMouseMotionPart.
1897 (ns_output): Make icon_top/left int.
1898
1899 * nsfns.m (x_icon): icon_top/left is int.
1900
1901 * nsterm.m (ns_mouse_position): Remove unused code.
1902 (initFrame:window:, dealloc): Use window instead of win.
1903 (getMouseMotionPart:window:x:y:): Remove, unused.
1904 (sendScrollEventAtLoc:fromEvent:): Make Lisp_Object win from window.
1905
1906 2014-11-01 Eli Zaretskii <eliz@gnu.org>
1907
1908 * keyboard.c (readable_events): When FLAGS include
1909 READABLE_EVENTS_FILTER_EVENTS, ignore BUFFER_SWITCH_EVENT events.
1910 This avoids returning non-nil from input-pending-p when only such
1911 events are in the queue. (Bug#18856)
1912
1913 2014-11-01 Jan Djärv <jan.h.d@swipnet.se>
1914
1915 * nsselect.m (QCLIPBOARD, QSECONDARY, QTEXT, QFILE_NAME)
1916 (NXPrimaryPboard, NXSecondaryPboard): Declare static.
1917 (Qforeign_selection): Remove.
1918 (ns_get_local_selection): Identation fix.
1919 (syms_of_nsselect): Remove Qforeign_selection, ns-lost-selection-hooks
1920
1921 * nsselect.m (ns_get_local_selection): Remove calling of
1922 functions in Vselection_converter_alist (Bug#18911).
1923 (syms_of_nsselect): Remove Vselection_converter_alist.
1924
1925 2014-10-31 Dmitry Antipov <dmantipov@yandex.ru>
1926
1927 * font.c (copy_font_spec): Redesign to avoid Fcopy_alist
1928 and unnecessary initialization. Adjust comments.
1929
1930 2014-10-30 Eli Zaretskii <eliz@gnu.org>
1931
1932 * bidi.c (bidi_cache_reset_to): Invalidate bidi_cache_last_idx by
1933 setting it to -1.
1934 (bidi_find_bracket_pairs): Pass to bidi_cache_reset_to a relative
1935 index, not an absolute one, as that's what the function expects.
1936
1937 2014-10-30 Dmitry Antipov <dmantipov@yandex.ru>
1938
1939 * xfaces.c (Finternal_set_lisp_face_attribute): Don't try to realize
1940 font on an initial frame when running as a daemon (Bug#18869).
1941
1942 * fontset.c (toplevel): Adjust comment to match 2014-06-19 change.
1943
1944 2014-10-30 Eli Zaretskii <eliz@gnu.org>
1945
1946 * fileio.c (Fexpand_file_name): Use make_unibyte_string, not
1947 build_string, when importing a home directory. (Bug#18873)
1948
1949 2014-12-27 Eli Zaretskii <eliz@gnu.org>
1950
1951 * dispnew.c (buffer_posn_from_coords):
1952 Use WINDOW_WANTS_HEADER_LINE_P, not WINDOW_WANTS_MODELINE_P, to
1953 account for the header-line height. (Bug#18839)
1954
1955 2014-10-28 Ulf Jasper <ulf.jasper@web.de>
1956
1957 * xml.c (parse_region): Do not forget the first document child.
1958
1959 2014-10-25 Jan Djärv <jan.h.d@swipnet.se>
1960
1961 * nsselect.m: pasteboard_changecount is new.
1962 (ns_store_pb_change_count, ns_get_pb_change_count)
1963 (ns_get_our_change_count_for): New functions.
1964 (ns_string_to_pasteboard_internal): Correct comment.
1965 type => gtype in eassert, Call ns_store_pb_change_count.
1966 (Fns_own_selection_internal): Remove data, use value (Bug#18799).
1967 (Fns_disown_selection_internal, Fns_selection_owner_p):
1968 Replace Vselection_alist check, with change count check.
1969 (Fns_get_selection): Initialize val to Qnil. Only get local
1970 selection if change counts match (Bug#18799).
1971 (nxatoms_of_nsselect): Initialize pasteboard_changecount.
1972
1973 2014-10-25 Noam Postavsky <npostavs@users.sourceforget.net>
1974
1975 * w32proc.c (create_child): If calling a quoted batch file,
1976 pass NULL for exe. (Bug#18745)
1977
1978 2014-10-24 Eli Zaretskii <eliz@gnu.org>
1979
1980 * bidi.c (bidi_resolve_explicit, bidi_find_bracket_pairs)
1981 (bidi_resolve_brackets): Use end of string position rather than ZV
1982 when iterating over a string. (Bug#18815)
1983
1984 2014-10-24 Martin Rudalics <rudalics@gmx.at>
1985
1986 * keyboard.c (make_lispy_position): Return coordinates also when
1987 on scroll bars, fringes, margins or not in a window.
1988 * xdisp.c (show_mouse_face): Don't change cursor face during
1989 mouse tracking.
1990
1991 2014-10-23 Martin Rudalics <rudalics@gmx.at>
1992
1993 * frame.c (Fset_frame_height, Fset_frame_width, Fset_frame_size)
1994 (frame_resize_pixelwise, frame_inhibit_implied_resize):
1995 Fix doc-strings (Bug#18789).
1996
1997 2014-10-23 Paul Eggert <eggert@cs.ucla.edu>
1998
1999 * Makefile.in (ACLOCAL_INPUTS): Omit unnecessary use of 'wildcard'.
2000
2001 2014-10-22 Eli Zaretskii <eliz@gnu.org>
2002
2003 Optimize redisplay of simple bracketed text.
2004 * bidi.c (bidi_cache_reset_to): New function.
2005 (bidi_cache_reset): Call it.
2006 (bidi_init_it, bidi_line_init): Initialize the bracket_pairing_pos
2007 member to -1.
2008 (bidi_resolve_explicit): Reset bracket_pairing_pos and
2009 bracket_enclosed_type only if bracket_pairing_pos's value is not
2010 ZV.
2011 (MAX_BPA_STACK): Make sure the value is signed.
2012 (PUSH_BPA_STACK): If the BPA stack overflows, don't bail out, but
2013 stop pushing values onto the stack.
2014 (bidi_find_bracket_pairs): If the bracketed text is only on the
2015 base embedding level, remove all the states cached by this
2016 function from the cache, and return zero, so that the brackets in
2017 this segment of text are processed as normal neutrals.
2018 (bidi_resolve_brackets): Detect the brackets that are to be
2019 processed as neutrals, and don't call bidi_find_bracket_pairs on
2020 them. (Bug#18778)
2021
2022 2014-10-21 Stefan Monnier <monnier@iro.umontreal.ca>
2023
2024 * w32select.c (Fw32_selection_exists_p): Rename from
2025 Fx_selection_exists_p.
2026 (syms_of_w32select): Adjust accordingly.
2027
2028 * w16select.c (Fw16_selection_exists_p): Rename from
2029 Fx_selection_exists_p.
2030 (syms_of_win16select): Adjust accordingly.
2031
2032 * nsselect.m (ns_get_local_selection): Signal error rather than `quit'.
2033 (Fns_own_selection_internal): Tighten scoping.
2034 (Fns_selection_exists_p): Rename from Fx_selection_exists_p.
2035 (Fns_get_selection): Rename from Fx_get_selection_internal.
2036 (Fns_get_selection_internal, Fns_store_selection_internal):
2037 Remove functions.
2038 (syms_of_nsselect): Adjust accordingly.
2039
2040 2014-10-21 Martin Rudalics <rudalics@gmx.at>
2041
2042 * w32fns.c (Fw32_frame_menu_bar_size): New function.
2043 * w32term.c (x_set_window_size): Account for wrapped menu bar
2044 lines when setting up frame height (Bug#15174 and Bug#18720).
2045 (w32_add_wrapped_menu_bar_lines): New variable.
2046
2047 2014-10-21 Stefan Monnier <monnier@iro.umontreal.ca>
2048
2049 * xdisp.c (redisplay_window): Re-run pre-redisplay-function after we
2050 move point.
2051
2052 2014-10-20 Glenn Morris <rgm@gnu.org>
2053
2054 * Merge in all changes up to 24.4 release.
2055
2056 2014-10-19 Jan Djärv <jan.h.d@swipnet.se>
2057
2058 * gtkutil.c (xg_update_menubar, xg_update_menu_item): Only call
2059 g_object_notify for label if Gtk+ >= 2.16 (Bug#16522).
2060
2061 * xterm.h (x_output): Remove net_wm_state_hidden_seen.
2062
2063 * xterm.c (handle_one_xevent): Check return value from
2064 x_handle_net_wm_state, remove net_wm_state_hidden_seen (Bug#18722).
2065 (get_current_wm_state): Remove net_wm_state_hidden_seen setting.
2066
2067 * gtkutil.c (create_dialog): Don't use gtk_dialog_get_action_area on
2068 Gt+ >= 3.12, or gtk_misc_set_alignment on Gtk+ >= 3.14 (Bug#18674).
2069 (make_widget_for_menu_item): Don't use gtk_misc_set_alignment on
2070 Gtk+ >= 3.14 (Bug#18674).
2071 (update_frame_tool_bar): Don't use gtk_misc_set_padding on
2072 Gtk+ >= 3.14 (Bug#18674).
2073
2074 2014-10-18 Paul Eggert <eggert@cs.ucla.edu>
2075
2076 * gtkutil.c: Remove no-longer-used code.
2077 (xg_update_menubar): Remove unused local and unnecessary call to
2078 gtk_menu_item_get_submenu.
2079 (XG_TOOL_BAR_PROXY_BUTTON, xg_tool_bar_proxy_callback)
2080 (xg_get_tool_bar_widgets, xg_tool_bar_proxy_help_callback)
2081 (TOOLBAR_TOP_WIDGET): Remove; no longer used.
2082
2083 2014-10-18 Jan Djärv <jan.h.d@swipnet.se>
2084
2085 * xfns.c (syms_of_xfns): Remove x-gtk-whole-detached-tool-bar.
2086
2087 * xterm.h (handlebox_widget): Remove.
2088
2089 * xmenu.c (set_frame_menubar): Remove GTK block that calls
2090 xg_have_tear_offs.
2091
2092 * gtkutil.h (xg_have_tear_offs): Remove declaration.
2093
2094 * gtkutil.c (XG_TEXT_CANCEL, XG_TEXT_OPEN, XG_TEXT_OK): New defines
2095 to handle Gtk versions.
2096 (xg_get_file_with_chooser): Use them.
2097 (xg_have_tear_offs, tearoff_remove, tearoff_activate):
2098 Remove (create_menus): Remove teroff argument and code.
2099 Remove call to gtk_menu_set_title.
2100 (xg_update_menubar, xg_update_submenu): Remove tearoff code.
2101 Adjust args to create_menus.
2102 (xg_tool_bar_menu_proxy, xg_tool_bar_detach_callback)
2103 (xg_tool_bar_attach_callback, TOOLBAR_TOP_WIDGET): Remove.
2104 (xg_pack_tool_bar): Replace TOOLBAR_TOP_WIDGET, remove detach code.
2105 (xg_make_tool_item): Remove detach code.
2106 (xg_update_tool_bar_sizes): Replace TOOLBAR_TOP_WIDGET.
2107 (find_icon_from_name): New function.
2108 (update_frame_tool_bar): Remove GtkStockItem code, move to
2109 find_icon_from_name. Let stock be a list of icon names to try.
2110 Only use gtk_image_new_from_stock on Gtk+ < 3.10.
2111 Replace TOOLBAR_TOP_WIDGET.
2112 (free_frame_tool_bar, xg_change_toolbar_position ):
2113 Replace TOOLBAR_TOP_WIDGET.
2114 (xg_initialize): Remove tearoff code.
2115
2116 2014-10-18 Eli Zaretskii <eliz@gnu.org>
2117
2118 * xterm.c (x_draw_bar_cursor, x_draw_hollow_cursor): Subtract 1
2119 pixel from the window's cursor glyph width, since X renders hollow
2120 blocks 1 pixel wider than the 'width' parameter.
2121
2122 * xdisp.c (get_phys_cursor_geometry): Don't subtract 1 pixel from
2123 glyph->pixel_width; this is now done in xterm.c.
2124
2125 Fix reordering of bracket characters in isolates.
2126 * bidi.c (bidi_cache_find): Rename the argument NEUTRALS_OK to
2127 RESOLVED_ONLY; when non-zero, return from the cache only fully
2128 resolved states. All callers changed.
2129 (CANONICAL_EQU): New macro.
2130 (PUSH_BPA_STACK): Use it to push onto the BPA stack the canonical
2131 equivalent of the paired closing bracket character.
2132 (bidi_find_bracket_pairs): Set the bracket_pairing_pos member to
2133 the default non-negative value, to be checked later in
2134 bidi_resolve_brackets. Use CANONICAL_EQU to test candidate
2135 characters against those pushed onto the BPA stack.
2136 (bidi_record_type_for_neutral): New function.
2137 (bidi_resolve_brackets): Record next_for_neutral and
2138 prev_for_neutral when embedding level gets pushed. Force
2139 resolution of bracket pairs when entering a level run that was not
2140 yet BPA-resolved.
2141 (bidi_resolve_neutral): Add assertions before calling
2142 bidi_resolve_neutral_1.
2143 (bidi_level_of_next_char): Remove the code that attempted to
2144 resolve unresolved neutrals; that is now done by
2145 bidi_resolve_neutral.
2146
2147 * w32select.c (owner_callback): Mark with ALIGN_STACK attribute.
2148
2149 2014-10-17 Eli Zaretskii <eliz@gnu.org>
2150
2151 * xterm.c (x_draw_hollow_cursor): Fix display of hollow cursor on
2152 1-pixel R2L characters.
2153 Reported by Dmitry Antipov <dmantipov@yandex.ru>, see
2154 http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00518.html.
2155
2156 2014-10-16 Eli Zaretskii <eliz@gnu.org>
2157
2158 * bidi.c (bidi_find_bracket_pairs): Avoid a loop that does nothing
2159 useful.
2160
2161 2014-10-15 Paul Eggert <eggert@cs.ucla.edu>
2162
2163 * bidi.c (bidi_find_bracket_pairs): Initialize local var.
2164 This pacifies GCC 4.9.1 with --enable-gcc-warnings.
2165 It's not clear to me whether the initialization is needed,
2166 but it can't hurt so I played it safe.
2167
2168 2014-10-15 Stefan Monnier <monnier@iro.umontreal.ca>
2169
2170 * lisp.mk (lisp): Add emacs-lisp/eldoc.elc.
2171
2172 2014-10-15 Eli Zaretskii <eliz@gnu.org>
2173
2174 Update the bidirectional reordering engine for Unicode 6.3 and 7.0.
2175 * bidi.c (bidi_ignore_explicit_marks_for_paragraph_level):
2176 Remove variable.
2177 (bidi_get_type): Return the isolate initiators and terminator types.
2178 (bidi_isolate_fmt_char, bidi_paired_bracket_type)
2179 (bidi_fetch_char_skip_isolates, find_first_strong_char)
2180 (bidi_find_bracket_pairs, bidi_resolve_brackets): New functions.
2181 (bidi_set_sos_type): Rename from bidi_set_sor_type and updated
2182 for the new features.
2183 (bidi_push_embedding_level, bidi_pop_embedding_level): Update to
2184 push and pop correctly for isolates.
2185 (bidi_remember_char): Modify to accept an additional argument
2186 and record the bidi type according to its value.
2187 (bidi_cache_iterator_state): Accept an additional argument to only
2188 update an existing state. Handle the new members of struct bidi_it.
2189 (bidi_cache_find): Arguments changed: no longer accepts a level,
2190 instead accepts a flag telling it whether it is okay to return
2191 unresolved neutrals.
2192 (bidi_initialize): Initiate and staticpro the bracket-type uniprop
2193 table. Initialize new isolate-related members.
2194 (bidi_paragraph_init): Some code factored out into
2195 find_first_strong_char.
2196 (bidi_resolve_explicit_1): Function deleted, its code incorporated
2197 into bidi_resolve_explicit.
2198 (bidi_resolve_explicit): Support the isolate initiators and
2199 terminator. Fix handling of embeddings and overrides according to
2200 new UBA requirements. Record information about previously seen
2201 characters here (moved from bidi_level_of_next_char).
2202 (bidi_resolve_weak): Adapt to changes in struct members.
2203 (FLAG_EMBEDDING_INSIDE, FLAG_OPPOSITE_INSIDE, MAX_BPA_STACK)
2204 (STORE_BRACKET_CHARPOS, PUSH_BPA_STACK): New macros.
2205 (bidi_resolve_neutral): Call bidi_resolve_brackets to handle the
2206 paired bracket resolution. Handle isolate initiators and
2207 terminator.
2208 (bidi_type_of_next_char): Remove unneeded code for BN limit.
2209 (bidi_level_of_next_char): Move the code that records information
2210 about previous characters to bidi_resolve_explicit. Fix logic of
2211 resolving neutrals and make sure their cache entries are updated.
2212 Remove now unneeded special handling of PDF level.
2213
2214 * dispextern.h (struct glyph): Enlarge the width of resolved_level.
2215 (BIDI_MAXDEPTH): New macro, renamed from BIDI_MAXLEVEL and
2216 enlarged per Unicode 6.3.
2217 (enum bidi_bracket_type_t): New data type.
2218 (struct bidi_saved_info): Leave only 2 type members out of 4.
2219 Remove bytepos.
2220 (struct bidi_stack): Add members necessary to support isolating
2221 sequences.
2222 (struct bidi_it): Add new members necessary to support isolating
2223 sequences and bracket pair resolution.
2224
2225 * xdisp.c (Fbidi_resolved_levels): New function.
2226 (syms_of_xdisp): Defsubr it.
2227 (append_glyph, append_composite_glyph, produce_image_glyph)
2228 (append_stretch_glyph, append_glyphless_glyph): Convert aborts to
2229 assertions.
2230 (syms_of_xdisp) <inhibit-bidi-mirroring>: New variable.
2231
2232 * term.c (append_glyph, append_composite_glyph)
2233 (append_glyphless_glyph): Convert aborts to assertions.
2234
2235 * .gdbinit (pgx): Display the character codepoint, resolved level,
2236 and bidi type also for glyphless glyphs.
2237
2238 2014-10-15 Dmitry Antipov <dmantipov@yandex.ru>
2239
2240 Avoid unwanted point motion in Fline_beginning_position.
2241 * lisp.h (scan_newline_from_point): Add prototype.
2242 * search.c (scan_newline_from_point): New function, refactored from...
2243 * cmds.c (Fforward_line): ...adjusted user.
2244 * editfns.c (Fline_beginning_position): Use scan_newline_from_point
2245 and simplify the former since the latter doesn't move point.
2246
2247 2014-10-14 Dmitry Antipov <dmantipov@yandex.ru>
2248
2249 Cleanup terminal handling code.
2250 * dispextern.h (get_named_tty): Remove prototype but...
2251 * termhooks.h (get_named_terminal): ...resurrect it under
2252 more meaningful name.
2253 (get_terminal): Likewise, but with...
2254 (decode_live_terminal): ...this name.
2255 (decode_tty_terminal): Add prototype.
2256 * term.c (get_tty_terminal): Remove.
2257 (get_named_tty): Remove.
2258 (Ftty_display_color_p, Ftty_display_color_cells, Ftty_type)
2259 (Fcontrolling_tty_p, Fsuspend_tty, Fresume_tty):
2260 Use decode_tty_terminal.
2261 (Ftty_no_underline, Ftty_top_frame): Use decode_live_terminal.
2262 * terminal.c (get_terminal): Refactor to...
2263 (decode_terminal, decode_live_terminal): ...new functions.
2264 (decode_tty_terminal): Replacement for get_tty_terminal.
2265 (get_named_terminal): Likewise for get_named_tty.
2266 * coding.c (Fset_terminal_coding_system_internal)
2267 (Fterminal_coding_system, Fset_keyboard_coding_system_internal):
2268 (Fkeyboard_coding_system):
2269 * composite.c (Fcomposition_get_gstring):
2270 * dispnew.c (Fsend_string_to_terminal):
2271 * frame.c (Fmake_terminal_frame):
2272 * nsfns.m (check_ns_display_info):
2273 * w32fns.c, xfns.c (check_x_display_info):
2274 * xselect.c (frame_for_x_selection): Use decode_live_terminal.
2275 * keyboard.c (handle_interrupt_signal, handle_interrupt)
2276 (Fset_quit_char): Use get_named_terminal.
2277 (Fset_output_flow_control, Fset_input_meta_mode):
2278 Use decode_tty_terminal.
2279
2280 2014-10-13 Eli Zaretskii <eliz@gnu.org>
2281
2282 * w32term.h (ALIGN_STACK): Use _WIN64, not _W64, to distinguish
2283 between 32-bit and 64-bit MinGW builds. (Bug#18699)
2284
2285 2014-10-12 Paul Eggert <eggert@cs.ucla.edu>
2286
2287 Fix port to Debian GNU/kFreeBSD 7 (wheezy) (Bug#18666).
2288 * process.c (accept4) [!HAVE_ACCEPT4]: New macro.
2289
2290 2014-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
2291
2292 * frame.c (Fmouse_pixel_position): Call Vmouse_position_function
2293 (bug#18638).
2294
2295 2014-10-12 Paul Eggert <eggert@cs.ucla.edu>
2296
2297 * editfns.c (dump_tz_string): No longer const.
2298 It might be modified.
2299
2300 * nsmenu.m (clear): Assume OS X 10.6 or later.
2301
2302 2014-10-12 Jan Djärv <jan.h.d@swipnet.se>
2303
2304 * unexmacosx.c: Remove include ppc/reloc.h.
2305 (unrelocate, copy_dysymtab): Remove PPC code.
2306 (rebase_reloc_address): Remove, only used for PPC:
2307
2308 * nsterm.m: Always include macfont.h on COCOA.
2309 (ns_update_auto_hide_menu_bar, ns_draw_fringe_bitmap)
2310 (ns_dumpglyphs_image, ns_check_menu_open)
2311 (applicationDidFinishLaunching)
2312 (antialiasThresholdDidChange:)
2313 (keyDown:, toggleFullScreen:, setPosition:portion:whole:):
2314 Remove checks for OSX <= 10.5/10.6.
2315 (changeFont:): Use macfont on COCOA, nsfont on GNUSTEP.
2316 (syms_of_nsterm): Call syms_of_macfont on COCOA, syms_of_nsfont on
2317 GNUSTEP.
2318
2319 * nsterm.h (MAC_OS_X_VERSION_10_4, MAC_OS_X_VERSION_10_5): Remove.
2320 (NS_HAVE_NSINTEGER): Remove block.
2321 Remove >= OSX 10.6 tests.
2322
2323 * nsmenu.m (NSMenuDidBeginTrackingNotification): Remove.
2324 (x_activate_menubar, trackingNotification:): Remove check for
2325 OSX >= 10.5.
2326 (menuNeedsUpdate:): Remove check for OSX < 10.5.
2327
2328 * nsimage.m (allocInitFromFile:): Remove code for OSX < 10.6.
2329
2330 * nsfns.m: Always include macfont.h on COCOA.
2331 (ns_filename_from_panel, ns_directory_from_panel)
2332 (Fx_create_frame, Fns_popup_font_panel, ns_run_file_dialog)
2333 (Fns_read_file_name, Fns_list_services): Remove code for OSX < 10.6
2334
2335 * macfont.m: Remove >= 1050 check.
2336 (macfont_create_family_with_symbol)
2337 (macfont_get_glyph_for_character)
2338 (mac_font_get_glyphs_for_variants)
2339 (mac_ctfont_create_available_families, syms_of_macfont):
2340 Remove code for OSX < 10.6.
2341 (mac_font_family_group, mac_font_family_compare): Remove, only used
2342 for OSX < 10.6.
2343
2344 * macfont.h (MAC_FONT_FORMAT_ATTRIBUTE, MAC_FONT_FORMAT_BITMAP)
2345 (mac_font_copy_non_synthetic_table): Remove versions for OSX < 10.6
2346
2347 * Makefile.in: Replace nsfont.o macfont.o with ns_fontfile in
2348 comment.
2349
2350 2014-10-12 Paul Eggert <eggert@cs.ucla.edu>
2351
2352 Fix putenv race conditions with undefined behavior (Bug#8705).
2353 Do all putenv calls before Emacs creates any threads.
2354 Use a safer way to modify the TZ environment variable in the
2355 presence of multiple threads. For further thread-safety,
2356 prefer localtime_r and gmtime_r to localtime and gmtime,
2357 and prefer struct tm's tm_gmtoff (if available) to calling
2358 both localtime_r and gmtime_r.
2359 * dbusbind.c (Fdbus__init_bus): Move xputenv call from here ...
2360 (init_dbusbind): ... to this new function.
2361 * emacs.c (main) [HAVE_DBUS]: Call it before creating threads.
2362 * xterm.c (x_term_init): Move xputenv call from here ...
2363 (init_xterm): ... to this new function.
2364 * emacs.c (main) [USE_GTK]: Call it before creating threads.
2365 * editfns.c (HAVE_TM_GMTOFF): Default to false.
2366 (dump_tz_string): New constant.
2367 (init_editfns): Use it. This centralizes the dump_tz stuff.
2368 Call set_time_zone_rule here, so that its xputenv is done
2369 before Emacs goes multithreaded.
2370 (mktime_z) [!HAVE_TZALLOC]: New function, which is typically
2371 thread-safe enough for Emacs.
2372 (format_time_string, Fdecode_time, Fcurrent_time_string)
2373 (Fcurrent_time_zone):
2374 Prefer localtime_r and gmtime_r, which are more thread-safe, to
2375 localtime and gmtime. Remove now-unnecessary calls to block_input.
2376 (tm_gmtoff): New static function.
2377 (Fdecode_time, Fcurrent_time_zone): Use it.
2378 (Fencode_time): Use mktime_z, for better thread-safety.
2379 (set_time_zone_rule): Now static. Rewrite to be mostly thread-safe,
2380 i.e., not quite thread-safe but good enough for Emacs typical usage.
2381 Do not reclaim storage that is in the environment; let it leak.
2382 Always call tzset, since localtime_r does not.
2383 * emacs.c (dump_tz, Fdump_emacs) [HAVE_TZSET]: Remove dump_tz stuff.
2384 This is now done in init_editfns.
2385 * systime.h (mktime_z, timezone_t, tzalloc, tzfree) [!HAVE_TZALLOC]:
2386 New macros and declarations, for platforms lacking tzalloc & friends.
2387
2388 2014-10-09 Paul Eggert <eggert@cs.ucla.edu>
2389
2390 * lisp.h (USE_STACK_STRING): Now true only if USE_STACK CONS.
2391 On x86 platforms this works around GCC bug 63495
2392 <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63495>,
2393 and more generally should fix a portability problem in Emacs.
2394 Reported by Stefan Monnier in:
2395 http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00261.html
2396
2397 2014-10-08 Leo Liu <sdl.web@gmail.com>
2398
2399 Enhance terpri to allow conditionally output a newline. (Bug#18652)
2400 * keymap.c (describe_vector_princ):
2401 * keyboard.c (Fcommand_error_default_function): Adapt to change to
2402 Fterpri.
2403
2404 * print.c (printchar_stdout_last): Declare.
2405 (printchar): Record the last char written to stdout.
2406 (Fterpri): Add optional argument ENSURE.
2407
2408 2014-10-08 Eli Zaretskii <eliz@gnu.org>
2409
2410 * w32inevt.c (maybe_generate_resize_event): Pass non-zero as the
2411 DELAY argument to change_frame_size, so that the frame size
2412 changes, if any are needed, are delayed until the next redisplay.
2413 This is to avoid a too early QUIT inside change_frame_size, when
2414 it calls Lisp in frame_windows_min_size, in case one of the events
2415 we've read sets the quit-flag. (Bug#18649)
2416
2417 * w32fns.c (check_x_display_info): Accept terminal objects as
2418 argument, to follow what xfns.c does.
2419
2420 2014-10-07 Glenn Morris <rgm@gnu.org>
2421
2422 * Makefile.in ($(srcdir)/macuvs.h)
2423 ($(lispsource)/international/charprop.el): Add explicit FORCE.
2424
2425 2014-10-07 Eli Zaretskii <eliz@gnu.org>
2426
2427 * decompress.c (init_zlib_functions): Move the message about zlib
2428 being unavailable from here...
2429 (Fzlib_decompress_region): ...to here. (Bug#18650)
2430
2431 2014-10-07 Dmitry Antipov <dmantipov@yandex.ru>
2432
2433 * font.c (Ffont_get_glyphs): Use validate_subarray and fix
2434 the case where an optional string is used. Adjust docstring.
2435
2436 2014-10-06 Stefan Monnier <monnier@iro.umontreal.ca>
2437
2438 * lisp.mk (lisp): Remove w32-common-fns.elc.
2439
2440 2014-10-05 Paul Eggert <eggert@cs.ucla.edu>
2441
2442 * keyboard.c (Qleft, Qright): Remove duplicate definitions (Bug#9927).
2443 These were already defined in buffer.c, and the duplicate
2444 definitions cause problems on platforms like 'gcc -fno-common'.
2445 Reported by Peter Dyballa in: http://bugs.gnu.org/9927#137
2446
2447 2014-10-05 Jan Djärv <jan.h.d@swipnet.se>
2448
2449 * nsterm.m (updateFrameSize:): Only call update_frame_tool_bar
2450 if toolbar is visible.
2451
2452 * nsfont.m (nsfont_draw): Use CGFloat for GNUstep newer than
2453 0.23 (Bug#18030).
2454
2455 * nsterm.m (syms_of_nsterm): ns-use-fullscreen-animation is new.
2456 (toggleFullScreen:): Use ns-use-fullscreen-animation for animate.
2457 (ns_select, ns_read_socket): Use unwind_protect to decrease
2458 apploopnr (Bug#18345).
2459 (ns_draw_window_cursor): Adjust y for hbar cursor only if smaller than
2460 line height (Bug#17977).
2461
2462 * macfont.m: Fix indentation and import changes from macport 24.3.94.
2463 (macfont_closest_traits_index): New function.
2464 (macfont_closest_traits_index_p): Rename from
2465 macfont_closest_traits_index.
2466 (macfont_list): Use macfont_closest_traits_index_p.
2467
2468 2014-10-05 K. Handa <handa@gnu.org>
2469
2470 * coding.c (detect_coding_iso_2022): Set coding->rejected
2471 correctly when an invalid escape sequence is found (Bug#18610).
2472
2473 2014-10-04 Jan Djärv <jan.h.d@swipnet.se>
2474
2475 * gtkutil.c (create_menus): Only add tearoffs to empty menus.
2476 (xg_update_submenu): Remove has_tearoff_p, pass 1 to create_menus
2477 for add_tearoff_p.
2478
2479 2014-10-04 Martin Rudalics <rudalics@gmx.at>
2480
2481 * buffer.c (scroll_bar_width, scroll_bar_height):
2482 Fix doc-strings.
2483 * window.c (Fset_window_scroll_bars): Fix doc-string.
2484 (Fwindow_scroll_bars): Have it return what the doc-string says.
2485
2486 2014-10-03 Eli Zaretskii <eliz@gnu.org>
2487
2488 * xdisp.c (move_it_by_lines): Call reseat_1 after moving the
2489 iterator backwards, to resync the bidi iterator. (Bug#18584)
2490
2491 2014-10-03 Dmitry Antipov <dmantipov@yandex.ru>
2492
2493 Consistently use min and max macros from lisp.h.
2494 * coding.c (min, max):
2495 * font.c (MAX):
2496 * unexhp9k800.c (min):
2497 * unexw32.c (min, max): Use definitions from lisp.h.
2498 * regex.c (MAX, MIN) [!emacs]: Define own max and min as such.
2499 Adjust users.
2500 * gmalloc.c (min): Tiny style change.
2501
2502 * fileio.c (emacs_readlinkat, Finsert_file_contents):
2503 * w32fns.c, xfns.c (x_create_tip_frame): Use AUTO_STRING.
2504
2505 2014-10-03 Paul Eggert <eggert@cs.ucla.edu>
2506
2507 Fix x-focus-frame bug with "Not an in-range integer" (Bug#18586).
2508 * xselect.c (X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX, X_LONG_MIN)
2509 (X_ULONG_MAX): Move these macros to xterm.h.
2510 (x_fill_property_data): Be more generous about allowing either
2511 signed or unsigned data of the appropriate width.
2512 * xterm.h (x_display_set_last_user_time): New function.
2513 All setters of last_user_time changd to use this function.
2514 If ENABLE_CHECKING, check that the times are in range.
2515
2516 2014-10-02 Eli Zaretskii <eliz@gnu.org>
2517
2518 * dispnew.c (adjust_decode_mode_spec_buffer): Use 'int' instead of
2519 'ssize_t'. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
2520
2521 2014-10-02 Jan Djärv <jan.h.d@swipnet.se>
2522
2523 * xfaces.c (Finternal_set_lisp_face_attribute): Don't try to
2524 make a font_object from a tty frame (Bug#18573).
2525 (Finternal_set_lisp_face_attribute): Add FIXME comment.
2526
2527 2014-10-02 Dmitry Antipov <dmantipov@yandex.ru>
2528
2529 * alloc.c (mark_overlay): Assume that overlay boundaries are
2530 always markers. Add comment.
2531 * lread.c (read_internal_start): Use convenient validate_subarray.
2532 Adjust docstring.
2533 (Fread_from_string): Adjust docstring.
2534
2535 2014-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
2536
2537 * lisp.h: Fix up compilation for USE_STACK_LISP_OBJECTS=false.
2538
2539 * nsselect.m (ns-own-selection-internal, ns-disown-selection-internal):
2540 Rename from the "x-" prefix.
2541
2542 2014-10-01 Stefan Monnier <monnier@iro.umontreal.ca>
2543
2544 * xselect.c (selection-converter-alist): Fix docstring.
2545
2546 2014-10-01 Eli Zaretskii <eliz@gnu.org>
2547
2548 * w32proc.c (sys_spawnve): Avoid modification of the CMDNAME
2549 argument passed by the caller, when we mirror all slashes into
2550 backslashes.
2551
2552 2014-10-01 Dmitry Antipov <dmantipov@yandex.ru>
2553
2554 * gtkutil.c (xg_set_toolkit_horizontal_scroll_bar_thumb):
2555 Resurrect old code and fix compilation with GTK < 2.13.6.
2556
2557 2014-10-01 Paul Eggert <eggert@cs.ucla.edu>
2558
2559 Use AUTO_CONS instead of SCOPED_CONS, etc.
2560 * frame.h (AUTO_FRAME_ARG): Rename from FRAME_PARAMETER.
2561 * lisp.h (AUTO_CONS): Rename from scoped_cons.
2562 (AUTO_LIST1): Rename from scoped_list1.
2563 (AUTO_LIST2): Rename from scoped_list2.
2564 (AUTO_LIST3): Rename from scoped_list3.
2565 (AUTO_LIST4): Rename from scoped_list4.
2566 (AUTO_STRING): Rename from SCOPED_STRING.
2567 * frame.h (AUTO_FRAME_ARG):
2568 * lisp.h (AUTO_CONS, AUTO_LIST1, AUTO_LIST2, AUTO_LIST3)
2569 (AUTO_LIST4, AUTO_STRING):
2570 Prepend a new argument 'name'.
2571 Declare a variable instead of yielding a value.
2572 All uses changed.
2573 * lisp.h (STACK_CONS, AUTO_CONS_EXPR): New internal macros.
2574
2575 2014-09-30 Eli Zaretskii <eliz@gnu.org>
2576
2577 * w32fns.c (w32_createwindow): Accept an additional argument, an
2578 array of 2 values specifying the coordinates of the frame's
2579 top-left corner. Use these values instead of calling x_get_arg,
2580 which can cons Lisp objects, and therefore cannot be called except
2581 from the main thread. Remove redundant tests for the default
2582 values.
2583 (my_create_window): Move the calculation of the coordinates of the
2584 frame's top-left edge here. Pass them to the input thread via the
2585 second parameter of the WM_EMACS_CREATEWINDOW message.
2586 See http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00892.html
2587 for the details.
2588
2589 2014-09-30 Eli Zaretskii <eliz@gnu.org>
2590
2591 * xdisp.c (cursor_row_fully_visible_p): Update commentary.
2592 (redisplay_window): Treat the frame's frozen_window_starts flag
2593 the same way as the optional_new_start flag for the window: only
2594 obey it if the glyph row showing point will be fully visible.
2595 Likewise when the window start is in a continuation line. If,
2596 after trying everything under the 'force_start' label, point is
2597 still not fully visible, give up and scroll the window.
2598 Add debugging traces. (Bug#18545)
2599
2600 * window.c (Frecenter): Set the window's redisplay flag.
2601
2602 2014-09-30 Eli Zaretskii <eliz@gnu.org>
2603
2604 * w32term.c (w32_read_socket): Don't use frame dimensions for
2605 resizing if GetClientRect returned an empty (0, 0, 0, 0)
2606 rectangle. Check the return value of GetClientRect, and don't use
2607 the results if it didn't succeed.
2608
2609 * dispnew.c (change_frame_size_1): Recompute the frame dimensions
2610 in columns and lines after correcting the pixel dimensions in
2611 check_frame_size.
2612 (adjust_decode_mode_spec_buffer): Add assertion to avoid passing
2613 negative values to xrealloc. (Bug#18528)
2614
2615 2014-09-30 Paul Eggert <eggert@cs.ucla.edu>
2616
2617 * alloc.c: Remove now-unnecessary check.
2618 Suggested by Dmitry Antipov in:
2619 http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00891.html
2620
2621 * xterm.c (x_term_init): Allocate temps on stack, not on heap.
2622
2623 * frame.c (x_set_frame_parameters): Port --enable-gcc-warnings
2624 to Ubuntu 14.04.1 x86-64.
2625
2626 Simplify stack-allocated Lisp objects, and make them more portable.
2627 The build_local_string macro was used in two ways: (1) string
2628 literals for which scoped allocation suffices, and (2) file name
2629 components, where it's not safe in general to assume bounded-size
2630 ASCII data. Simplify by defining a new macro SCOPED_STRING that
2631 allocates a block-scope string, and by using SCOPED_STRING for (1)
2632 and build_string for (2). Furthermore, actually use stack
2633 allocation only for objects known to have sufficient alignment.
2634 This simpler implementation means Emacs can make
2635 USE_STACK_LISP_OBJECTS the default unless GC_MARK_STACK !=
2636 GC_MAKE_GCPROS_NOOPS.
2637 * lisp.h (GCALIGNED): Align even if !USE_STACK_LISP_OBJECTS,
2638 for fewer differences among implementations.
2639 (struct Lisp_String): Now GCALIGNED.
2640 (USE_STACK_LISP_OBJECTS): Default to true, since the
2641 implementation no longer insists on a nonempty GCALIGNED.
2642 But make it false if GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS.
2643 (SCOPED_CONS_INITIALIZER): Remove, since it's no longer needed
2644 separately. Move definiens to scoped_cons. The old definition
2645 was incorrect when GCALIGNED was defined to be empty.
2646 (union Aligned_String): New type.
2647 (USE_STACK_CONS, USE_STACK_STRING): New constants, so that the
2648 implementation ports to compilers that don't align strictly enough.
2649 Don't worry about the union sizes; it's not worth bothering about.
2650 (scoped_cons, scoped_list1, scoped_list3, scoped_list4):
2651 Rewrite using USE_STACK_CONS.
2652 (scoped_cons): Assume the use of union Aligned_Cons.
2653 (lisp_string_size, make_local_string, build_local_string): Remove.
2654 Unless otherwise specified, all callers of build_local_string
2655 changed to use SCOPED_STRING.
2656 (SCOPED_STRING): New macro.
2657 * data.c (wrong_choice):
2658 * menu.c (single_menu_item):
2659 * process.c (Fformat_network_address):
2660 Hoist use of SCOPED_STRING out of a scope, so that its returned
2661 object lives long enough.
2662 * fileio.c (Fexpand_file_name): Use build_string, not SCOPED_STRING,
2663 as the string might be long or might not be ASCII.
2664
2665 2014-09-29 Eli Zaretskii <eliz@gnu.org>
2666
2667 * msdos.c (internal_terminal_init): Bump version to 25.
2668
2669 2014-09-29 Dmitry Antipov <dmantipov@yandex.ru>
2670
2671 Keep stack-allocated Lisp objects fast rather than versatile.
2672 * lisp.h (union Aligned_Cons) [!GCALIGNED]: Define as such.
2673 (SCOPED_CONS_INITIALIZER): New macro.
2674 (scoped_cons) [USE_STACK_LISP_OBJECTS]: Use it.
2675 (USE_LOCAL_ALLOCA): Remove.
2676 (local_cons, local_list1, local_list2, local_list3, local_list4):
2677 Remove. Stack overflow checking makes them too slow.
2678 (make_local_vector): Likewise. Also we just don't have enough
2679 users for it.
2680 (enum LISP_STRING_OVERHEAD): Remove.
2681 (local_string_init, local_vector_init): Remove prototypes.
2682 (make_local_string, build_local_string): Redesign to target short
2683 compile-time string constants, fall back to regular string allocation
2684 where appropriate.
2685 (lisp_string_size): New function.
2686 (verify_ascii) [ENABLE_CHECKING]: Add prototype.
2687 * alloc.c (local_string_init, local_vector_init): Remove.
2688 (verify_ascii) [ENABLE_CHECKING]: New function.
2689 * buffer.c, charset.c, chartab.c, data.c, editfns.c, emacs.c, fileio.c:
2690 * fns.c, font.c, fontset.c, frame.c, keyboard.c, keymap.c, lread.c:
2691 * menu.c, minibuf.c, process.c, textprop.c, xdisp.c, xfns.c, xfont.c:
2692 * xselect.c, xterm.c: All related users changed.
2693
2694 2014-09-28 Ken Brown <kbrown@cornell.edu>
2695
2696 * sheap.c (bss_sbrk_buffer_beg): Remove redundant variable.
2697 * gmalloc.c [CYGWIN]: Adapt to change in sheap.c.
2698
2699 2014-09-27 Ken Brown <kbrown@cornell.edu>
2700
2701 Fix implementation of HYBRID_MALLOC on Cygwin.
2702 * sheap.c (bss_sbrk_buffer_end): Cast to void *.
2703 (bss_sbrk_buffer_beg): New variable. Use it...
2704 * gmalloc.c (ALLOCATED_BEFORE_DUMPING) [CYGWIN]: ...here, to fix
2705 incorrect definition.
2706
2707 2014-09-27 Stefan Monnier <monnier@iro.umontreal.ca>
2708
2709 * keyboard.c (track-mouse): Rename to internal--track-mouse.
2710 Make it into a function and change arg to be a function.
2711
2712 * lisp.mk (lisp): Add elisp-mode.elc.
2713
2714 2014-09-26 Paul Eggert <eggert@cs.ucla.edu>
2715
2716 * xfns.c (x_default_scroll_bar_color_parameter):
2717 Use USE_LOCAL_ALLOCA only if USE_TOOLKIT_SCROLL_BARS,
2718 to pacify --enable-gcc-warnings in non-scrollbar builds.
2719
2720 2014-09-26 Ken Brown <kbrown@cornell.edu>
2721
2722 * w32term.h (ALIGN_STACK): Fix the cpp condition.
2723
2724 2014-09-25 Eli Zaretskii <eliz@gnu.org>
2725
2726 * lisp.h (USE_STACK_LISP_OBJECTS): Default to false for 32-bit
2727 MinGW builds that use GCC before 4.2.
2728
2729 Default to stack objects on DOS_NT platforms as well.
2730 * w32term.h (ALIGN_STACK) [__GNUC__]: Define to
2731 __attribute__((force_align_arg_pointer)) for GCC 4.2 and later.
2732
2733 * lisp.h (USE_STACK_LISP_OBJECTS): Remove the !DOS_NT condition.
2734
2735 * w32proc.c (enum_locale_fn, enum_codepage_fn): Add the
2736 ALIGN_STACK attribute.
2737
2738 * w32fns.c (w32_monitor_enum): Add the ALIGN_STACK attribute.
2739
2740 * w32uniscribe.c (add_opentype_font_name_to_list): Add the
2741 ALIGN_STACK attribute.
2742
2743 * w32font.c (add_font_name_to_list, add_font_entity_to_list)
2744 (add_one_font_entity_to_list): Add the ALIGN_STACK attribute.
2745
2746 2014-09-25 Martin Rudalics <rudalics@gmx.at>
2747
2748 * frame.c (frame_inhibit_resize):
2749 * widget.c (EmacsFrameResize):
2750 * window.c (resize_frame_windows, Fset_window_configuration):
2751 * xdisp.c (expose_frame):
2752 * xfns.c (x_change_tool_bar_height):
2753 * xmenu.c (update_frame_menubar):
2754 * xterm.c (handle_one_xevent, x_new_font, x_set_window_size_1):
2755 Remove code left dead after 2014-07-27 changes.
2756
2757 2014-09-25 Paul Eggert <eggert@cs.ucla.edu>
2758
2759 Fix local_cons etc. to not exhaust the stack when in a loop.
2760 Problem reported in:
2761 http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00696.html
2762 * buffer.c (Fother_buffer, other_buffer_safely, init_buffer):
2763 * charset.c (load_charset_map_from_file, Ffind_charset_region)
2764 (Ffind_charset_string):
2765 * chartab.c (uniprop_encode_value_numeric, uniprop_table):
2766 * data.c (wrong_range):
2767 * editfns.c (Fpropertize, format2):
2768 * emacs.c (init_cmdargs, decode_env_path):
2769 * fileio.c (auto_save_error):
2770 * fns.c (Fyes_or_no_p):
2771 * font.c (font_style_to_value, font_parse_xlfd)
2772 (font_parse_family_registry, font_delete_unmatched)
2773 (font_add_log):
2774 * fontset.c (Fset_fontset_font):
2775 * frame.c (x_get_arg):
2776 * keyboard.c (echo_dash, safe_run_hooks_error, parse_menu_item)
2777 (read_char_minibuf_menu_prompt):
2778 * keymap.c (silly_event_symbol_error, describe_vector):
2779 * lread.c (load_warn_old_style_backquotes):
2780 * menu.c (single_menu_item):
2781 * minibuf.c (Fread_buffer):
2782 * process.c (status_message, Fformat_network_address)
2783 (server_accept_connection):
2784 * textprop.c (copy_text_properties):
2785 * xdisp.c (Fcurrent_bidi_paragraph_direction):
2786 * xfns.c (x_default_scroll_bar_color_parameter):
2787 * xfont.c (xfont_open):
2788 * xselect.c (x_clipboard_manager_error_1):
2789 * xterm.c (x_term_init):
2790 Put USE_LOCAL_ALLOCA at the start of the function.
2791 * fns.c (maybe_resize_hash_table): Use build_string instead of
2792 build_local_string, since we'd otherwise need a conditional
2793 USE_LOCAL_ALLOCA here, but this is just debugging output and is
2794 not worth the bother of optimization.
2795 * font.c (font_delete_unmatched): Remove by-hand code that
2796 observed MAX_ALLOCA limit, since it's now done automatically.
2797 * keymap.c (Fsingle_key_description): Put USE_SAFE_ALLOCA at top,
2798 since build_local_string needs its sa_alloc.
2799 * lisp.h (lisp_word_count): New function.
2800 (SAFE_ALLOCA_LISP): Use it.
2801 (USE_LOCAL_ALLOCA): New macro.
2802 (local_cons, make_local_vector, make_local_string):
2803 Observe the MAX_ALLOCA limit.
2804 (LISP_STRING_OVERHEAD): New constant.
2805 (make_local_string): Use it.
2806
2807 2014-09-24 Paul Eggert <eggert@cs.ucla.edu>
2808
2809 Default to stack objects on non-GNU/Linux, non-DOS_NT platforms.
2810 * lisp.h (USE_STACK_LISP_OBJECTS): Also default to true
2811 if !defined DOS_NT && !defined GNU_LINUX. I've tested this on AIX
2812 and Solaris and it's likely to work on similar platforms.
2813
2814 Avoid signed integer overflow when converting Time to ptrdiff_t.
2815 * keyboard.c (INPUT_EVENT_POS_MAX, INPUT_EVENT_POS_MIN):
2816 New macros.
2817 (position_to_Time, Time_to_position): New functions.
2818 (gen_help_event, kbd_buffer_get_event): Use them.
2819 * systime.h (Time) [emacs && !HAVE_X_WINDOWS]:
2820 Go back to plain 'unsigned long', so that 'Time' is the same
2821 for both X and non-X builds; this is less likely to cause surprise.
2822 * termhooks.h: Remove compile-time check that Time and ptrdiff_t
2823 are the same size; this is no longer required.
2824
2825 * keyboard.c (make_lispy_event): Avoid unnecessary tests
2826 of bit 28 and of whether an unsigned value is negative.
2827 This simplifies the code a bit, and pacifies clang 3.4.
2828
2829 2014-09-24 Eli Zaretskii <eliz@gnu.org>
2830
2831 * systime.h (Time): Define as size_t, to be consistent with 64-bit
2832 Windows builds, where 'long' is a 32-bit type.
2833
2834 * w32inevt.h (w32_console_mouse_position): Update the argument
2835 types to use 'Time'.
2836
2837 * w32term.c (w32_mouse_position)
2838 (x_horizontal_scroll_bar_report_motion)
2839 (x_scroll_bar_report_motion): Update the argument types to use
2840 'Time'.
2841
2842 2014-09-24 Dmitry Antipov <dmantipov@yandex.ru>
2843
2844 * termhooks.h (enum scroll_bar_part): Begin from 0 to allow...
2845 (struct input_event): ...unsigned bitfields. Likewise for
2846 `event_kind' member. Prefer unsigned for `code' and 'modifiers'.
2847 Use `timestamp' for HELP_EVENT position. Add compile-time assert.
2848 * keyboard.c (gen_help_event, kbd_buffer_store_help_event)
2849 (kbd_buffer_get_event): Adjust users.
2850 (scroll_bar_parts): Add Qnil to match scroll_bar_nowhere.
2851 (make_scroll_bar_position): New function, refactored out of...
2852 (make_lispy_event): ...adjusted user.
2853 * nsterm.h (EmacsScroller): Use enum for `last_hit_part' member.
2854 * nsterm.m (ns_mouse_position, mouseUp):
2855 * term.c (term_mouse_position):
2856 * w32inevt.c (w32_console_mouse_position):
2857 * w32term.c (w32_mouse_position):
2858 * xterm.c (XTmouse_position): Use scroll_bar_above_handle.
2859 (x_send_scroll_bar_event, xm_scroll_callback, xg_scroll_callback):
2860 Prefer enum and explicit enum members to integers and numeric values.
2861
2862 * chartab.c (uniprop_encode_value_numeric):
2863 * font.c (font_style_to_value): Use make_local_vector.
2864 (font_delete_unmatched): Use local_cons but respect MAX_ALLOCA.
2865 * keymap.c (append_key): Use scoped_list1.
2866
2867 * lisp.h (USE_STACK_LISP_OBJECTS): Enable by default if GNU_LINUX
2868 && __GNUC__ && !__clang__. Mention known problems. Adjust comment.
2869
2870 2014-09-24 Paul Eggert <eggert@cs.ucla.edu>
2871
2872 Fix some slow uses and misuses of strcat.
2873 * doc.c (get_doc_string):
2874 * gtkutil.c (get_utf8_string):
2875 * xsmfns.c (x_session_initialize):
2876 Avoid recomputation of string length.
2877 * ftfont.c (ftfont_spec_pattern):
2878 * xfns.c (xic_create_fontsetname):
2879 Don't assume output buffer is initially zero.
2880
2881 2014-09-23 Paul Eggert <eggert@cs.ucla.edu>
2882
2883 * lisp.h (lispstpcpy): Rename from lispstrcpy, and act like stpcpy.
2884 All callers changed.
2885 * xterm.c (x_term_init): Use new functionality to avoid two needs
2886 to compute a string length.
2887
2888 * dispextern.h, xdisp.c (window_box_right_offset): Now static.
2889
2890 2014-09-23 Dmitry Antipov <dmantipov@yandex.ru>
2891
2892 Use known length of a Lisp string to copy it faster.
2893 * lisp.h (lispstrcpy): New function. Add comment.
2894 * callproc.c (child_setup):
2895 * dbusbind.c (xd_append_arg):
2896 * doc.c (get_doc_string):
2897 * font.c (Ffont_xlfd_name):
2898 * frame.c (xrdb_get_resource):
2899 * process.c (Fmake_network_process, network_interface_info):
2900 * w32fns.c (Fx_open_connection):
2901 * w32proc.c (sys_spawnve):
2902 * xfns.c (select_visual):
2903 * xfont.c (xfont_list):
2904 * xsmfns.c (x_session_initialize):
2905 * xterm.c (x_term_init): Use it.
2906
2907 2014-09-23 Paul Eggert <eggert@cs.ucla.edu>
2908
2909 Fix SAFE_ALLOCA to not exhaust the stack when in a loop.
2910 Reported by Dmitry Antipov in thread leading to:
2911 http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00713.html
2912 This patch fixes only SAFE_ALLOCA, SAFE_NALLOCA, and SAFE_ALLOCA_LISP;
2913 the experimental local_* macros enabled by USE_LOCAL_ALLOCATORS
2914 remain unfixed.
2915 * callproc.c (call_process): Save and restore sa_avail.
2916 * lisp.h (USE_SAFE_ALLOCA): Define sa_avail.
2917 (AVAIL_ALLOCA): New macro.
2918 (SAFE_ALLOCA, SAFE_NALLOCA, SAFE_ALLOCA_LISP):
2919 Use it, and check against sa_avail rather than MAX_ALLOCA.
2920
2921 2014-09-22 Dmitry Antipov <dmantipov@yandex.ru>
2922
2923 On OSX, do not free font-specific data more than once (Bug#18501).
2924 * macfont.m (macfont_close): Release and free font-specific data
2925 only if it wasn't previously freed.
2926
2927 2014-09-22 David Caldwell <david@porkrind.org> (tiny change)
2928
2929 * unexmacosx.c (dump_it): Improve error message.
2930
2931 2014-09-22 Juri Linkov <juri@jurta.org>
2932
2933 * image.c (imagemagick_load_image): Add delay to imagemagick metadata.
2934 (Bug#10747, bug#18334)
2935
2936 2014-09-22 Eli Zaretskii <eliz@gnu.org>
2937
2938 * frame.c (Fmouse_position, Fset_mouse_position): Clarify the
2939 units in which the position is measured. (Bug#18493)
2940
2941 * xdisp.c (redisplay_internal): Force redisplay of all windows
2942 that show a buffer whose narrowing has changed. (Bug#18490)
2943
2944 2014-09-22 Eli Zaretskii <eliz@gnu.org>
2945
2946 * xterm.c (x_draw_hollow_cursor, x_draw_bar_cursor):
2947 * w32term.c (x_draw_hollow_cursor, x_draw_bar_cursor): In R2L
2948 lines, draw the hollow-box and hbar cursors on the right side of
2949 cursor-glyph. Thanks to martin rudalics <rudalics@gmx.at> for
2950 testing on X.
2951
2952 * xterm.c (x_draw_stretch_glyph_string):
2953 * w32term.c (x_draw_stretch_glyph_string): Fix a thinko that
2954 caused the block cursor to disappear on a TAB in R2L lines in
2955 every window except the leftmost one. Reported by Martin Rudalics
2956 <rudalics@gmx.at>.
2957
2958 2014-09-22 Dmitry Antipov <dmantipov@yandex.ru>
2959
2960 Always use matched specpdl entry to record call arguments (Bug#18473).
2961 * lisp.h (record_in_backtrace): Adjust prototype.
2962 * eval.c (record_in_backtrace): Return current specpdl level.
2963 (set_backtrace_args, set_backtrace_nargs): Merge. Adjust all users.
2964 (eval_sub, Ffuncall): Record call arguments in matched specpdl
2965 entry and use that entry in call to backtrace_debug_on_exit.
2966 (apply_lambda): Likewise. Get current specpdl level as 3rd arg.
2967 (do_debug_on_call): Get current specpdl level as 2nd arg.
2968
2969 Prefer ptrdiff_t to int and avoid integer overflows.
2970 * fileio.c (make_temp_name):
2971 * font.c (font_parse_family_registry): Avoid integer
2972 overflow on string size calculation.
2973 * data.c (Faset): Likewise for byte index.
2974
2975 2014-09-22 Eli Zaretskii <eliz@gnu.org>
2976
2977 Fix display of R2L lines in partial-width windows.
2978 * xdisp.c (init_iterator): Don't use it->bidi_p before it is
2979 assigned the correct value.
2980 (extend_face_to_end_of_line): Account for truncation and
2981 continuation glyphs in R2L rows when one of the fringes is not
2982 displayed.
2983 (display_line): Don't assign negative X offset to a row if we are
2984 going to produce a truncation glyph for it. When handling
2985 truncated R2L rows, consider the width of the left fringe instead
2986 of the right one.
2987 (produce_special_glyphs): Fix bogus assignments.
2988
2989 2014-09-22 Eli Zaretskii <eliz@gnu.org>
2990
2991 * fileio.c (Fexpand_file_name) [DOS_NT]: Make sure newdirlim is
2992 always set to a valid value. Make sure the size passed to alloca
2993 is always positive. (Bug#18516)
2994
2995 2014-09-22 Dmitry Antipov <dmantipov@yandex.ru>
2996
2997 Avoid extra call to oblookup when interning symbols.
2998 * lisp.h (intern_driver): Add prototype.
2999 * lread.c (intern_driver): New function.
3000 (intern1, intern_c_string_1, Fintern):
3001 * font.c (font_intern_prop):
3002 * w32font.c (intern_font_name): Use it.
3003
3004 2014-09-21 Paul Eggert <eggert@cs.ucla.edu>
3005
3006 Minor improvements to new stack-allocated Lisp objects.
3007 * frame.h (FRAME_PARAMETER):
3008 Prefer scoped_list1 to local_list1 where either would do.
3009 * lisp.h (scoped_list4): New macro.
3010 (local_cons, local_list1, local_list2, local_list3, local_list4)
3011 (make_local_vector, make_local_string, build_local_string):
3012 Prefer functions to macros where either would do.
3013 * xdisp.c (build_desired_tool_bar_string):
3014 Prefer scoped_list4 to local_list4 where either would do.
3015
3016 2014-09-18 Dmitry Antipov <dmantipov@yandex.ru>
3017
3018 More and more stack-allocated Lisp objects if USE_LOCAL_ALLOCATORS.
3019 * lisp.h (local_list4) [USE_LOCAL_ALLOCATORS]: New macro.
3020 [!USE_LOCAL_ALLOCATORS]: Fall back to regular list4.
3021 * frame.h (FRAME_PARAMETER): New macro.
3022 * dispnew.c (init_display):
3023 * fontset.c (Fset_fontset_font):
3024 * frame.c (x_default_parameter):
3025 * xfaces.c (set_font_frame_param, Finternal_merge_in_global_face):
3026 * xfns.c (x_default_scroll_bar_color_parameter)
3027 (x_default_font_parameter, x_create_tip_frame): Use it.
3028 * editfns.c (Fpropertize): Use local_cons.
3029 * process.c (status_message): Use build_local_string.
3030 * xfont.c (xfont_open): Use make_local_string.
3031 * xdisp.c (build_desired_tool_bar_string): Use local_list4.
3032
3033 2014-09-18 Paul Eggert <eggert@cs.ucla.edu>
3034
3035 Port USE_LOCAL_ALLOCATORS code to clang 3.4 x86-64.
3036 * lisp.h (USE_LOCAL_ALLOCATORS): Define only if __GNUC__ &&
3037 !__clang__. This works with GCC and with clang and is safer for
3038 compilers we don't know about.
3039 (local_cons): Rename parameter to make capture less likely.
3040
3041 2014-09-17 Samuel Bronson <naesten@gmail.com>
3042
3043 * unexmacosx.c (copy_data_segment): Port to GCC 4.6+ (Bug#9927).
3044
3045 2014-09-17 Paul Eggert <eggert@cs.ucla.edu>
3046
3047 Fix minor problems found by static checking.
3048 * alloc.c, lisp.h (SAVE_TYPE_INT_OBJ, make_save_int_obj):
3049 Remove; now unused.
3050 * buffer.h (decode_buffer): Doc and indentation fixes.
3051 * fns.c (Qstring_collate_lessp, Qstring_collate_equalp): Now static.
3052
3053 2014-09-17 Dmitry Antipov <dmantipov@yandex.ru>
3054
3055 Avoid clang-specific warnings.
3056 * buffer.c (init_buffer): Shut up -Wself-assign.
3057 * process.c (server_accept_connection): Shut up -Wunsequenced.
3058
3059 2014-09-16 Daniel Colascione <dancol@dancol.org>
3060
3061 * fns.c (sxhash): For symbols, use address as hash code.
3062
3063 2014-09-16 Dmitry Antipov <dmantipov@yandex.ru>
3064
3065 If USE_LOCAL_ALLOCATORS, allocate even more Lisp objects on stack.
3066 * charset.c (load_charset_map_from_file): Use scoped_list2
3067 and build_local_string.
3068 * buffer.c (Fother_buffer, other_buffer_safely, init_buffer):
3069 * emacs.c (init_cmdargs, decode_env_path):
3070 * fileio.c (Fexpand_file_name):
3071 * fns.c (maybe_resize_hash_table) [ENABLE_CHECKING]:
3072 * frame.c (x_get_arg):
3073 * keyboard.c (safe_run_hooks_error):
3074 * lread.c (load_warn_old_style_backquotes):
3075 * xdisp.c (Fcurrent_bidi_paragraph_direction):
3076 * xfns.c (x_default_scroll_bar_color_parameter, select_visual):
3077 * xselect.c (x_clipboard_manager_error_1)
3078 (x_clipboard_manager_save_all):
3079 * xterm.c (x_term_init): Use build_local_string.
3080
3081 Avoid more integer overflows on string size calculations.
3082 * category.c (Fmake_category_set):
3083 * xdisp.c (get_overlay_arrow_glyph_row):
3084 * w32font.c (intern_font_name): Prefer ptrdiff_t to int.
3085
3086 2014-09-15 Eli Zaretskii <eliz@gnu.org>
3087
3088 * sound.c [WINDOWSNT]: Include w32common.h and mbstring.h.
3089 (SOUND_WARNING) [WINDOWSNT]: Include in do..while and improve the
3090 error message format. Use message_with_string to have non-ASCII
3091 file names properly displayed.
3092 (do_play_sound) [WINDOWSNT]: Use Unicode APIs to play sound files
3093 when w32-unicode-filenames is non-nil, but not on Windows 9X,
3094 where these APIs are not available even in UNICOWS.DLL.
3095 Improve the format of error messages and include the file name in them
3096 where appropriate.
3097 (Fplay_sound_internal) [WINDOWSNT]: Make the MS-Windows branch
3098 call play-sound-functions, per documentation.
3099
3100 * w32.c (w32_get_long_filename, w32_get_short_filename):
3101 Constify the input file name arguments.
3102
3103 * w32.h (w32_get_long_filename, w32_get_short_filename):
3104 Update prototypes.
3105
3106 2014-09-15 Dmitry Antipov <dmantipov@yandex.ru>
3107
3108 If USE_LOCAL_ALLOCATORS, allocate some Lisp objects on stack.
3109 * lisp.h (local_cons, local_list1, local_list2, local_list3)
3110 [USE_LOCAL_ALLOCATORS]: New macros.
3111 [!USE_LOCAL_ALLOCATORS]: Fall back to regular functions.
3112 (build_local_string): Avoid argument name expansion clash with
3113 make_local_string.
3114 * alloc.c (toplevel)
3115 [USE_LOCAL_ALLOCATORS && GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS]:
3116 Preprocessor guard to avoid impossible configuration.
3117 * charset.c (Ffind_charset_region, Ffind_charset_string):
3118 Use make_local_vector.
3119 * lread.c (read1, substitute_object_recurse): Use scoped_cons.
3120 * textprop.c (Fput_text_property, Fadd_face_text_property):
3121 Use scoped_list2.
3122 (copy_text_properties): Use local_cons and local_list3.
3123 * chartab.c (uniprop_table):
3124 * data.c (wrong_choice, wrong_range):
3125 * doc.c (get_doc_string):
3126 * editfns.c (format2):
3127 * fileio.c (Fexpand_file_name, auto_save_error):
3128 * fns.c (Fyes_or_no_p):
3129 * font.c (font_parse_xlfd, font_parse_family_registry, font_add_log):
3130 * fontset.c (Fset_fontset_font):
3131 * keyboard.c (echo_add_key, echo_dash, parse_menu_item)
3132 (read_char_minibuf_menu_prompt):
3133 * keymap.c (silly_event_symbol_error, describe_vector):
3134 * menu.c (single_menu_item):
3135 * minibuf.c (Fread_buffer):
3136 * process.c (status_message, Fformat_network_address)
3137 (server_accept_connection): Use make_local_string and
3138 build_local_string. Prefer compound literals where appropriate.
3139
3140 2014-09-15 Daniel Colascione <dancol@dancol.org>
3141
3142 * fns.c (Fsort): Tweak sort docstring.
3143
3144 2014-09-15 Eli Zaretskii <eliz@gnu.org>
3145
3146 * w32.c (fcntl): Support O_NONBLOCK fcntl on the write side of pipes.
3147 (sys_write): When a write to a non-blocking pipe returns ENOSPC,
3148 set errno to EAGAIN instead, to allow the caller to retry the
3149 write after some waiting. Fixes deadlocks when Emacs exchanges a
3150 lot of data through the pipe. (Bug#18420)
3151
3152 * sound.c (Fplay_sound_internal): Encode the sound file name in
3153 the ANSI codepage. Expand it against data-directory, as per docs,
3154 not against the current directory. No need to make a local copy
3155 of the file name; pass the encoded file name directly to
3156 do_play_sound. (Bug#18463)
3157
3158 * w32.c (ansi_encode_filename): If w32_get_short_filename returns
3159 NULL, and the file name is not encodable in ANSI codepage, return
3160 the string with "?" replacement characters, which will fail the
3161 caller. This avoids returning a random value in that case.
3162
3163 2014-09-15 Martin Rudalics <rudalics@gmx.at>
3164
3165 * window.c (Fresize_mini_window_internal): Set w->total_lines
3166 from w->pixel_height (Bug#18422).
3167
3168 2014-09-15 Jan Djärv <jan.h.d@swipnet.se>
3169
3170 * nsterm.m (updateFrameSize:, initFrameFromEmacs:)
3171 (toggleFullScreen:): Take frame_resize_pixelwise into account when
3172 setting resize increments (Bug#18435).
3173
3174 2014-09-15 Eli Zaretskii <eliz@gnu.org>
3175
3176 * xdisp.c (pos_visible_p): Properly save and restore the iterator
3177 state around the call to line_bottom, since it can move the
3178 iterator to another screen line. This fixes off-by-one errors in
3179 the reported row in some rare cases.
3180
3181 2014-09-14 Jan Djärv <jan.h.d@swipnet.se>
3182
3183 * callproc.c (init_callproc): Fix bug introduced at
3184 2014-09-07 (Bug#18474).
3185
3186 2014-09-13 Dmitry Antipov <dmantipov@yandex.ru>
3187
3188 Prefer ptrdiff_t to int and avoid integer overflows.
3189 * fileio.c (make_temp_name):
3190 * font.c (font_parse_family_registry): Avoid integer
3191 overflow on string size calculation.
3192 * data.c (Faset): Likewise for byte index.
3193
3194 2014-09-12 Detlev Zundel <dzu@member.fsf.org>
3195
3196 * buffer.c (syms_of_buffer): DEFSYM Qchoice (Bug#18337).
3197
3198 2014-09-11 Dmitry Antipov <dmantipov@yandex.ru>
3199
3200 * lisp.h (make_local_string): Nitpick indent.
3201 * print.c (Fprin1_to_string): Remove unused GCPROs.
3202
3203 More debugging aids around GCPROs.
3204 * lisp.h (struct gcpro) [DEBUG_GCPRO]: Add extra members.
3205 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, GCPRO7):
3206 Minor restyle. If DEBUG_GCPRO, initialize extra fields.
3207
3208 * lread.c (readevalloop_eager_expand_eval): Add GCPRO and fix
3209 bootstrap broken if GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE.
3210
3211 Remove redundant GCPROs around Ffuncall and Fapply calls.
3212 This is safe because Ffuncall protects all of its arguments by itself.
3213 * charset.c (map_charset_for_dump): Remove redundant GCPRO.
3214 * eval.c (Fapply, apply1, call0, call1, call2, call3, call4, call5)
3215 (call6, call7): Likewise. Use compound literals where applicable.
3216 (run_hook_with_args_2): Use compound literal.
3217
3218 2014-09-11 Paul Eggert <eggert@cs.ucla.edu>
3219
3220 Pacify --enable-gcc-warnings when no window system is used.
3221 These warnings found that subscript error, so they seem worthwhile.
3222 * composite.c (char_composable_p): Simplify a bit.
3223 * frame.c (x_set_frame_parameters): Add an IF_LINT.
3224 * frame.c (x_set_horizontal_scroll_bars, x_set_scroll_bar_height):
3225 * frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS):
3226 * window.c (set_window_scroll_bars):
3227 Use USE_HORIZONTAL_SCROLL_BARS for simplicity.
3228 * frame.h [! USE_HORIZONTAL_SCROLL_BARS]:
3229 Ignore -Wsuggest-attribute=const.
3230 * window.h (USE_HORIZONTAL_SCROLL_BARS): New macro.
3231 (WINDOW_HAS_HORIZONTAL_SCROLL_BAR): Use it.
3232
3233 2014-09-10 Paul Eggert <eggert@penguin.cs.ucla.edu>
3234
3235 * charset.c (Fget_unused_iso_final_char): Fix subscript error.
3236 Use check_iso_charset_parameter instead of doing the checks by hand.
3237 (check_iso_charset_parameter): Move up. Check parameters a bit
3238 more carefully, and return true for 96-char sets. All callers changed.
3239
3240 2014-09-10 Paul Eggert <eggert@cs.ucla.edu>
3241
3242 Simplify lisp.h by removing the __COUNTER__ business.
3243 Reported by Dmitry Antipov in:
3244 http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00220.html
3245 * lisp.h (make_local_vector, make_local_string)
3246 (build_local_string): Simplify by not bothering with __COUNTER__.
3247 The __COUNTER__ business wasn't working properly, and was needed
3248 only for hypothetical future expansion anyway.
3249
3250 2014-09-10 Alp Aker <alp.tekin.aker@gmail.com>
3251
3252 * nsterm.m (ns_draw_fringe_bitmap): Use the same logic as other
3253 terms to determine bitmap color. (Bug#18437)
3254
3255 2014-09-10 Eli Zaretskii <eliz@gnu.org>
3256
3257 * w32.c (sys_write): Use SAFE_NALLOCA for the NL -> CRLF
3258 translation buffer.
3259
3260 2014-09-10 Paul Eggert <eggert@cs.ucla.edu>
3261
3262 * xterm.c (handle_one_xevent): Add braces to pacify gcc -Wall.
3263
3264 2014-09-10 Jan Djärv <jan.h.d@swipnet.se>
3265
3266 * xterm.c (handle_one_xevent): Detect iconified by looking at
3267 _NET_WM_STATE_HIDDEN.
3268
3269 2014-09-10 Paul Eggert <eggert@cs.ucla.edu>
3270
3271 * lisp.h (DEFINE_GDB_SYMBOL_ENUM): Remove.
3272 These can generate a constant with the correct value but the wrong
3273 width, which doesn't work as a printf argument. All uses removed.
3274 Reported by Dmitry Antipov in:
3275 http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00213.html
3276 (ENUMABLE): Remove; no longer needed.
3277 (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
3278 Remove; no longer needed because of the above change.
3279 Each definiens moved to the only use.
3280
3281 Improve the experimental local and scoped allocation.
3282 * alloc.c (local_string_init, local_vector_init):
3283 New functions, defined if USE_LOCAL_ALLOCATORS.
3284 Mostly, these are moved here from lisp.h, as it's not
3285 clear it's worth making them inline.
3286 * lisp.h (USE_STACK_LISP_OBJECTS): Default to false.
3287 (GCALIGNED): Depend on HAVE_STRUCT_ATTRIBUTE_ALIGNED and
3288 USE_STACK_LISP_OBJECTS, not on a laundry list.
3289 (local_string_init, local_vector_init): New decls.
3290 (union Aligned_Cons): New type.
3291 (scoped_cons): Use it. Give up on the char trick, as it's a too
3292 much of a maintenance hassle; if someone wants this speedup
3293 they'll just need to convince their compiler to align properly.
3294 Conversely, use the speedup if struct Lisp_Cons happens to
3295 be aligned even without a directive. Better yet, help it along
3296 by using union Aligned_Cons rather than struct Lisp_Cons.
3297 (pointer_valid_for_lisp_object): Remove. This check is not
3298 necessary, since make_lisp_ptr is already doing it. All uses removed.
3299 (local_vector_init, local_string_init): Move to alloc.c.
3300 (build_local_vector): Remove this awkward macro, replacing with ...
3301 (make_local_vector): New macro, which acts more like a function.
3302 Use statement expressions and use __COUNTER__ to avoid macro
3303 capture. Fall back on functions if these features are not supported.
3304 (build_local_string, make_local_string): Likewise.
3305
3306 2014-09-09 Dmitry Antipov <dmantipov@yandex.ru>
3307
3308 * xterm.c (x_term_init): Consolidate duplicated code.
3309 [USE_LUCID]: Revert 2014-04-02 change (Bug#18403). Add comment.
3310 (x_delete_terminal): Do not close X connection fd (Bug#18403).
3311 Add eassert and mark dpyinfo as dead only if it was alive.
3312
3313 Add macros to allocate temporary Lisp objects with alloca.
3314 Respect MAX_ALLOCA and fall back to regular GC for large objects.
3315 * character.h (parse_str_as_multibyte): Move prototype to ...
3316 * lisp.h (parse_str_as_multibyte): ... here.
3317 (struct Lisp_Cons): Add GCALIGNED attribute if supported.
3318 (scoped_cons, scoped_list2, build_local_vector, build_local_string):
3319 New macros.
3320 (scoped_cons_init, pointer_valid_for_lisp_object, local_vector_init)
3321 (local_string_init): New functions.
3322 * alloc.c (verify_alloca) [ENABLE_CHECKING]: New function.
3323 (init_alloc_once): Call it.
3324
3325 Cleanup last change and make all new stuff conditional.
3326 * lisp.h (build_local_string): Rename to ...
3327 (make_local_string): ... this macro.
3328 (build_local_string, scoped_list1, scoped_list3): New macros.
3329 (toplevel) [USE_STACK_LISP_OBJECTS]: Define all new macros
3330 and functions as such, use regular fallbacks otherwise.
3331 * alloc.c (verify_alloca) [USE_STACK_LISP_OBJECTS]: Define
3332 conditionally.
3333
3334 2014-09-08 Eli Zaretskii <eliz@gnu.org>
3335
3336 * dispnew.c (prepare_desired_row): When MODE_LINE_P is zero,
3337 always make sure the marginal areas of the row are in sync with
3338 what the window wants. (Bug#18419)
3339
3340 * data.c (set_internal): Use assq_no_quit, not Fassq, to find an
3341 existing binding of a variable, to avoid silently aborting
3342 commands that use specbind. (Bug#18331)
3343
3344 2014-09-07 Paul Eggert <eggert@cs.ucla.edu>
3345
3346 Fix bug uncovered by changing alloca to auto buffer (Bug#18410).
3347 * coding.c (growable_destination): New function.
3348 (produce_chars): Use it for sanity checks. Do not fiddle with
3349 dst_end if the source and destination are both nil, as it's
3350 the caller's responsibility to avoid overlap.
3351 * keyboard.c (read_decoded_event_from_main_queue):
3352 The destination must be MAX_MULTIBYTE_LENGTH times the max source
3353 length, not 4 times, to prevent decode_coding_c_string from trying
3354 to reallocate a destination. This removes the need for the FIXME.
3355
3356 * callproc.c (exec_failed) [DOS_NT]: Define a dummy.
3357 All callers simplified. Add a comment about exec_failed, vfork,
3358 and alloca.
3359
3360 Adjust drag-and-drop fix when window is above top (Bug#18303).
3361 * xselect.c (x_fill_property_data): Don't let sign bit of negative
3362 XCDR bleed into XCAR's encoded value. Improve checks for
3363 out-of-range data while we're at it.
3364
3365 2014-09-07 Jan Djärv <jan.h.d@swipnet.se>
3366
3367 * xselect.c (x_fill_property_data): Handle negative XCDR when data
3368 is CONSP (Bug#18303).
3369
3370 2014-09-07 Eli Zaretskii <eliz@gnu.org>
3371
3372 * callproc.c (child_setup) [WINDOWSNT]: Don't call exec_failed if
3373 'alloca' gets passed arguments larger than MAX_ALLOCA.
3374
3375 * font.c (MAX): Define if not defined elsewhere.
3376
3377 2014-09-07 Paul Eggert <eggert@cs.ucla.edu>
3378
3379 * keyboard.c (read_decoded_event_from_main_queue): Reinstitute alloca
3380 here for destination buffer, to work around what appears to be a
3381 bug in decode_coding_c_string when the source and destination are
3382 both C strings.
3383
3384 Use SAFE_ALLOCA etc. to avoid unbounded stack allocation (Bug#18410).
3385 This follows up on the recent thread in emacs-devel on alloca; see:
3386 http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00042.html
3387 This patch also cleans up alloca-related glitches noted while
3388 examining the code looking for unbounded alloca.
3389 * alloc.c (listn):
3390 * callproc.c (init_callproc):
3391 Rewrite to avoid need for alloca.
3392 * buffer.c (mouse_face_overlay_overlaps)
3393 (report_overlay_modification):
3394 * buffer.h (GET_OVERLAYS_AT):
3395 * coding.c (make_subsidiaries):
3396 * doc.c (Fsnarf_documentation):
3397 * editfns.c (Fuser_full_name):
3398 * fileio.c (Ffile_name_directory, Fexpand_file_name)
3399 (search_embedded_absfilename, Fsubstitute_in_file_name):
3400 * fns.c (Fmake_hash_table):
3401 * font.c (font_vconcat_entity_vectors, font_update_drivers):
3402 * fontset.c (fontset_pattern_regexp, Ffontset_info):
3403 * frame.c (Fmake_terminal_frame, x_set_frame_parameters)
3404 (xrdb_get_resource, x_get_resource_string):
3405 * ftfont.c (ftfont_get_charset, ftfont_check_otf, ftfont_drive_otf):
3406 * ftxfont.c (ftxfont_draw):
3407 * image.c (xbm_load, xpm_load, jpeg_load_body):
3408 * keyboard.c (echo_add_key, menu_bar_items, tool_bar_items)
3409
3410 * keymap.c (Fdescribe_buffer_bindings, describe_map):
3411 * lread.c (openp):
3412 * menu.c (digest_single_submenu, find_and_call_menu_selection)
3413 (find_and_return_menu_selection):
3414 * print.c (PRINTFINISH):
3415 * process.c (Fformat_network_address):
3416 * scroll.c (do_scrolling, do_direct_scrolling, scrolling_1):
3417 * search.c (search_buffer, Fmatch_data, Fregexp_quote):
3418 * sound.c (wav_play, au_play):
3419 * syntax.c (skip_chars):
3420 * term.c (tty_menu_activate, tty_menu_show):
3421 * textprop.c (get_char_property_and_overlay):
3422 * window.c (Fset_window_configuration):
3423 * xdisp.c (safe__call, next_overlay_change, vmessage)
3424 (compute_overhangs_and_x, draw_glyphs, note_mouse_highlight):
3425 * xfaces.c (face_at_buffer_position):
3426 * xmenu.c (x_menu_show):
3427 Use SAFE_ALLOCA etc. instead of plain alloca, since the
3428 allocation size isn't bounded.
3429 * callint.c (Fcall_interactively): Redo memory_full check
3430 so that it can be done at compile-time on some platforms.
3431 * coding.c (MAX_LOOKUP_MAX): New constant.
3432 (get_translation_table): Use it.
3433 * callproc.c (call_process): Use SAFE_NALLOCA instead of
3434 SAFE_ALLOCA, to catch integer overflows on size calculation.
3435 (exec_failed) [!DOS_NT]: New function.
3436 (child_setup) [!DOS_NT]: Use it.
3437 * editfns.c (Ftranspose_regions):
3438 Hoist USE_SAFE_ALLOC + SAFE_FREE out of 'if'.
3439 * editfns.c (check_translation):
3440 Allocate larger buffers on the heap.
3441 * eval.c (internal_lisp_condition_case):
3442 Check for MAX_ALLOCA overflow.
3443 * fns.c (sort_vector): Use SAFE_ALLOCA_LISP rather than Fmake_vector.
3444 (Fbase64_encode_region, Fbase64_decode_region):
3445 Avoid unnecessary calls to SAFE_FREE before 'error'.
3446 * buffer.c (mouse_face_overlay_overlaps):
3447 * editfns.c (Fget_pos_property, check_translation):
3448 * eval.c (Ffuncall):
3449 * font.c (font_unparse_xlfd, font_find_for_lface):
3450 * ftfont.c (ftfont_drive_otf):
3451 * keyboard.c (echo_add_key, read_decoded_event_from_main_queue)
3452 (menu_bar_items, tool_bar_items):
3453 * sound.c (Fplay_sound_internal):
3454 * xdisp.c (load_overlay_strings, dump_glyph_row):
3455 Use an ordinary auto buffer rather than alloca, since the
3456 allocation size is fixed and small.
3457 * ftfont.c: Include <c-strcase.h>.
3458 (matching_prefix): New function.
3459 (get_adstyle_property): Use it, to avoid need for alloca.
3460 * keyboard.c (echo_add_key):
3461 * keymap.c (describe_map): Use ptrdiff_t, not int.
3462 * keyboard.c (echo_add_key): Prefer sizeof to strlen.
3463 * keymap.c (Fdescribe_buffer_bindings): Use SBYTES, not SCHARS,
3464 when counting bytes.
3465 * lisp.h (xlispstrdupa): Remove, replacing with ...
3466 (SAFE_ALLOCA_STRING): ... new macro with different API.
3467 This fixes a portability problem, namely, alloca result
3468 passed to another function. All uses changed.
3469 (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Check for MAX_ALLOCA,
3470 not MAX_ALLOCA - 1.
3471 * regex.c (REGEX_USE_SAFE_ALLOCA, REGEX_SAFE_FREE)
3472 (REGEX_ALLOCATE): New macros.
3473 (REGEX_REALLOCATE, REGEX_ALLOCATE_STACK, REGEX_REALLOCATE_STACK)
3474 (REGEX_FREE_STACK, FREE_VARIABLES, re_match_2_internal):
3475 Use them.
3476 * xdisp.c (message3): Use SAFE_ALLOCA_STRING rather than doing it
3477 by hand.
3478 (decode_mode_spec_coding): Store directly into buf rather than
3479 into an alloca temporary and copying the temporary to the buf.
3480
3481 2014-09-06 Eli Zaretskii <eliz@gnu.org>
3482
3483 * Makefile.in (EMACS_HEAPSIZE): Remove, no longer used. (Bug#18416)
3484
3485 2014-09-04 Jan D <jan.h.d@swipnet.se>
3486
3487 * xterm.c (x_term_init): Don't call x_session_initialize if running
3488 as a daemon (Bug#18375).
3489
3490 * xsmfns.c: Initialize ice_fd.
3491
3492 2014-09-04 Paul Eggert <eggert@cs.ucla.edu>
3493
3494 Less chatter in 'make' output.
3495 * Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0, am__v_GEN_1, AM_V_at)
3496 (am__v_at_, am__v_at_0, am__v_at_1): New macros, taken from Automake.
3497 ($(etc)/DOC, buildobj.h, gl-stamp): Use them.
3498
3499 2014-09-03 Martin Rudalics <rudalics@gmx.at>
3500
3501 * buffer.c (scroll-bar-height): Fix typo in doc-string.
3502 * frame.c (Vdefault_frame_horizontal_scroll_bars):
3503 Remove variable.
3504 * nsfns.m (Fx_create_frame):
3505 * w32fns.c (Fx_create_frame):
3506 * xfns.c (Fx_create_frame): Default horizontal scroll bars to
3507 nil.
3508
3509 2014-09-03 Eli Zaretskii <eliz@gnu.org>
3510
3511 * dispnew.c (buffer_posn_from_coords): Fix an off-by-one error in
3512 the reported row in the case of a window with a header line, by
3513 improving on the fix committed in 2011-10-08T10:58:50Z!eliz@gnu.org
3514 eliz@gnu.org-20111008105850-ht4tvsayohvr1kjc. (Bug#18384)
3515
3516 2014-09-03 Paul Eggert <eggert@cs.ucla.edu>
3517
3518 * eval.c (internal_lisp_condition_case): Don't overrun the stack
3519 when configured --with-wide-int on typical 32-bit platforms.
3520
3521 2014-09-03 Eli Zaretskii <eliz@gnu.org>
3522
3523 * xdisp.c (display_and_set_cursor): Call erase_phys_cursor also
3524 when HPOS is negative, for the benefit of R2L glyph rows whose
3525 newline overflows into the fringe.
3526
3527 2014-09-03 Ken Brown <kbrown@cornell.edu>
3528
3529 * conf_post.h (strnicmp) [CYGWIN && HAVE_NTGUI]: Define. (Bug#18366)
3530
3531 2014-09-02 Paul Eggert <eggert@cs.ucla.edu>
3532
3533 Minor cleanup of recent strlen-avoiding patch.
3534 * fileio.c (CHECK_LENGTH): Remove.
3535 Rewrite callers so that they don't need it.
3536 (Fexpand_file_name) [DOS_NT]: Fix a case where directory length
3537 variable wasn't set.
3538
3539 2014-09-02 Dmitry Antipov <dmantipov@yandex.ru>
3540
3541 * fileio.c (CHECK_LENGTH): New macro.
3542 (Fexpand_file_name): Use it and get rid of a few more calls
3543 to strlen and strcat.
3544 * callproc.c (egetenv_internal): Add arg and rename from egetenv ...
3545 * lisp.h (egetenv): ... because of a new inline function used to
3546 avoid calls to strlen for a compile-time constants.
3547
3548 * buffer.h (decode_buffer): New function.
3549 * buffer.c (Fbuffer_name, Fbuffer_file_name, Fbuffer_base_buffer)
3550 (Fbuffer_local_variables, Fbuffer_modified_p, Fbuffer_modified_tick)
3551 (Fbuffer_chars_modified_tick, Fdelete_all_overlays):
3552 * data.c (Flocal_variables_p):
3553 * fileio.c (Fverify_visited_file_modtime):
3554 * marker.c (live_buffer): Use it.
3555
3556 2014-09-01 Dmitry Antipov <dmantipov@yandex.ru>
3557
3558 Avoid extra calls to strlen in filesystem I/O routines.
3559 * fileio.c (Fexpand_file_name): Avoid calls to strlen if
3560 the length of 'newdir' is known or may be precalculated.
3561 (file_accessible_directory_p): Prefer to pass Lisp_Object,
3562 not 'char *', and so use precalculated length.
3563 (Ffile_accessible_directory_p):
3564 * callproc.c (encode_current_directory, init_callproc):
3565 * charset.c (init_charset):
3566 * lread.c (load_path_check, load_path_default): Adjust users.
3567 * lisp.h (file_accessible_directory_p): Tweak prototype.
3568
3569 2014-09-01 Eli Zaretskii <eliz@gnu.org>
3570
3571 * w32proc.c (w32_compare_strings): Support "C" and "POSIX"
3572 locales.
3573
3574 2014-09-01 Paul Eggert <eggert@cs.ucla.edu>
3575
3576 --enable-silent-rules now suppresses more chatter.
3577 * Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_CC, am__v_CC_)
3578 (am__v_CC_0, am__v_CC_1, AM_V_CCLD, am__v_CCLD_, am__v_CCLD_0)
3579 (am__v_CCLD_1): New macros, taken from Automake.
3580 (.c.o, .m.o, temacs$(EXEEXT)): Use them.
3581
3582 Clean up extern decls a bit.
3583 * bytecode.c: Include blockinput.h and keyboard.h rather
3584 than rolling their APIs by hand.
3585 * emacs.c: Include regex.h and rely on its and lisp.h's API
3586 rather than rolling them by hand.
3587 * lastfile.c: Include lisp.h, to check this file's API.
3588 * lisp.h (lisp_eval_depth, my_edata, my_endbss, my_endbss_static):
3589 New decls.
3590 * regex.h (re_max_failures): New decl.
3591 * unexcw.c, unexmacosx.c, unexw32.c:
3592 Rely on lisp.h's API rather than rolling it by hand.
3593 * vm-limit.c (__after_morecore_hook, __morecore, real_morecore):
3594 Declare at top level, to pacify GCC -Wnested-externs.
3595
3596 2014-08-31 Eli Zaretskii <eliz@gnu.org>
3597
3598 * xdisp.c (get_glyph_string_clip_rects): Don't let the width of a
3599 clipping rectangle become negative (i.e. large positive, since
3600 it's an unsigned data type). This can happen in R2L hscrolled
3601 glyph rows, and caused us to draw the cursor glyph on the fringe.
3602 For the details, see
3603 http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00543.html.
3604
3605 2014-08-31 Ken Brown <kbrown@cornell.edu>
3606
3607 * gmalloc.c: Don't include <stdlib.h>. Declare system malloc and
3608 friends before defining hybrid_malloc and friends if HYBRID_MALLOC
3609 is defined. (Bug#18368)
3610
3611 2014-08-30 Paul Eggert <eggert@cs.ucla.edu>
3612
3613 Vector-sorting fixes (Bug#18361).
3614 It's not safe to call qsort or qsort_r, since they have undefined
3615 behavior if the user-specified predicate is not a total order.
3616 Also, watch out for garbage-collection while sorting vectors.
3617 * fns.c: Include <vla.h>.
3618 (sort_vector_predicate) [!HAVE_QSORT_R]: Remove.
3619 (sort_vector_compare): Remove, replacing with ....
3620 (inorder, merge_vectors, sort_vector_inplace, sort_vector_copy):
3621 ... these new functions.
3622 (sort_vector): Rewrite to use the new functions.
3623 GCPRO locals, since the predicate can invoke the GC.
3624 Since it's in-place return void; caller changed.
3625 (merge): Use 'inorder', for clarity.
3626
3627 * sysdep.c (str_collate): Clear errno just before wcscoll(_l).
3628 One can't hoist this out of the 'if', because intervening calls to
3629 newlocale, twolower, etc. can change errno.
3630
3631 2014-08-30 Eli Zaretskii <eliz@gnu.org>
3632
3633 * sysdep.c (str_collate) [__STDC_ISO_10646__]: Improve the
3634 wording of the error messages.
3635 (str_collate) [WINDOWSNT]: Signal an error if w32_compare_strings
3636 sets errno.
3637
3638 * w32proc.c (get_lcid_callback): Accept locale specifications
3639 without the country part, as in "enu" vs "enu_USA".
3640 (w32_compare_strings): Signal an error if a locale was specified,
3641 but couldn't be translated into a valid LCID.
3642
3643 2014-08-29 Michael Albinus <michael.albinus@gmx.de>
3644
3645 * sysdep.c (str_collate) [__STDC_ISO_10646__]: Move up setting errno.
3646
3647 2014-08-29 Paul Eggert <eggert@cs.ucla.edu>
3648
3649 * sysdep.c (str_collate) [__STDC_ISO_10646__]: Do not look at
3650 errno after towlower_l. errno's value is not specified after
3651 towlower_l. Instead, assume that towlower_l returns its argument
3652 on failure, which is portable in practice.
3653
3654 2014-08-29 Eli Zaretskii <eliz@gnu.org>
3655
3656 * fns.c (Fstring_collate_lessp, Fstring_collate_equalp): Doc fix.
3657
3658 * w32proc.c (w32_compare_strings): Accept additional argument
3659 IGNORE_CASE. Set up the flags for CompareStringW to ignore case
3660 if requested. If w32-collate-ignore-punctuation is non-nil, add
3661 NORM_IGNORESYMBOLS to the flags.
3662 (LINGUISTIC_IGNORECASE): Define if not already defined.
3663 (syms_of_ntproc) <Vw32_collate_ignore_punctuation>: New variable.
3664
3665 * sysdep.c (str_collate) [WINDOWSNT]: Adapt to the interface
3666 change.
3667
3668 2014-08-29 Michael Albinus <michael.albinus@gmx.de>
3669
3670 * sysdep.c (LC_CTYPE, LC_CTYPE_MASK, towlower_l):
3671 Define substitutes for platforms that lack them.
3672 (str_collate): Add arguments locale and ignore_case.
3673
3674 * fns.c (Fstring_collate_lessp, Fstring_collate_equalp):
3675 Add optional arguments LOCALE and IGNORE-CASE.
3676
3677 * lisp.h (str_collate): Adapt argument list.
3678
3679 2014-08-29 Dmitry Antipov <dmantipov@yandex.ru>
3680
3681 Add vectors support to Fsort.
3682 * fns.c (sort_vector, sort_vector_compare): New functions.
3683 (sort_list): Likewise, refactored out of ...
3684 (Fsort): ... adjusted user. Mention vectors in docstring.
3685 (sort_vector_predicate) [!HAVE_QSORT_R]: New variable.
3686 * alloc.c (make_save_int_obj): New function.
3687 * lisp.h (enum Lisp_Save_Type): New member SAVE_TYPE_INT_OBJ.
3688 (make_save_int_obj): Add prototype.
3689
3690 Fix last change to support Darwin/OSX and FreeBSD (Bug#18354).
3691 * sysdep.c (sort_vector_compare) [DARWIN_OS || __FreeBSD__]:
3692 Conditionally define to match system's qsort_r signature.
3693 (sort_vector) [DARWIN_OS || __FreeBSD__]: Likewise in call to qsort_r.
3694
3695 2014-08-28 Ken Brown <kbrown@cornell.edu>
3696
3697 Add support for HYBRID_MALLOC, allowing the use of gmalloc before
3698 dumping and the system malloc after dumping. (Bug#18222)
3699
3700 * conf_post.h (malloc, realloc, calloc, free) [HYBRID_MALLOC]:
3701 Define as macros, expanding to hybrid_malloc, etc.
3702 (HYBRID_GET_CURRENT_DIR_NAME): New macro.
3703 (get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]: Define as
3704 macro.
3705 * gmalloc.c: Set up the infrastructure for HYBRID_MALLOC, with a
3706 full implementation on Cygwin. Remove Cygwin-specific code that
3707 is no longer needed.
3708 (malloc, realloc, calloc, free, aligned_alloc) [HYBRID_MALLOC]:
3709 Redefine as macros expanding to gmalloc, grealloc, etc.
3710 (DUMPED, ALLOCATED_BEFORE_DUMPING) [CYGWIN]: New macros.
3711 (get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]: Undefine.
3712 (USE_PTHREAD, posix_memalign) [HYBRID_MALLOC]: Don't define.
3713 (hybrid_malloc, hybrid_calloc, hybrid_free, hybrid_realloc)
3714 [HYBRID_MALLOC]:
3715 (hybrid_get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]:
3716 (hybrid_aligned_alloc) [HYBRID_MALLOC && (HAVE_ALIGNED_ALLOC ||
3717 HAVE_POSIX_MEMALIGN)]: New functions.
3718 * alloc.c (aligned_alloc) [HYBRID_MALLOC && (ALIGNED_ALLOC ||
3719 HAVE_POSIX_MEMALIGN)]: Define as macro expanding to
3720 hybrid_aligned_alloc; declare.
3721 (USE_ALIGNED_ALLOC) [HYBRID_MALLOC && (ALIGNED_ALLOC ||
3722 HAVE_POSIX_MEMALIGN)]: Define.
3723 (refill_memory_reserve) [HYBRID_MALLOC]: Do nothing.
3724 * sysdep.c (get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]:
3725 Define as macro, expanding to gget_current_dir_name, and define
3726 the latter.
3727 * emacs.c (main) [HYBRID_MALLOC]: Don't call memory_warnings() or
3728 malloc_enable_thread(). Don't initialize malloc.
3729 * lisp.h (NONPOINTER_BITS) [CYGWIN]: Define (because GNU_MALLOC is
3730 no longer defined on Cygwin).
3731 (refill_memory_reserve) [HYBRID_MALLOC]: Don't declare.
3732 * sheap.c (bss_sbrk_buffer_end): New variable.
3733 * unexcw.c (__malloc_initialized): Remove variable.
3734 * ralloc.c: Throughout, treat HYBRID_MALLOC the same as
3735 SYSTEM_MALLOC.
3736 * xdisp.c (decode_mode_spec) [HYBRID_MALLOC]: Don't check
3737 Vmemory_full.
3738
3739 2014-08-28 Martin Rudalics <rudalics@gmx.at>
3740
3741 * w32term.c (w32_horizontal_scroll_bar_handle_click):
3742 In `event->y' return entire range (the size of the scroll bar minus
3743 that of the thumb).
3744 * xterm.c (xm_scroll_callback, xaw_jump_callback): In `whole'
3745 return entire range (the scaled size of the scroll bar minus
3746 that of the slider). In `portion' return the scaled position of
3747 the slider.
3748 (xaw_jump_callback): Restore part of code for vertical scroll
3749 bar broken in change from 2014-07-27.
3750 (xaw_scroll_callback): Provide incremental scrolling with
3751 horizontal scroll bars.
3752
3753 2014-08-28 Eli Zaretskii <eliz@gnu.org>
3754
3755 * conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Don't define.
3756
3757 * indent.c (Fvertical_motion): Fix vertical motion up through a
3758 display property after a newline. (Bug#18276)
3759
3760 * xdisp.c (display_line): Don't assume that the call to
3761 reseat_at_next_visible_line_start ends up at a character
3762 immediately following the newline on the previous line.
3763 Avoids setting the ends_at_zv_p flag on screen lines that are not at or
3764 beyond ZV, which causes infloop in redisplay. For the details, see
3765 http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00368.html.
3766
3767 * dispnew.c (buffer_posn_from_coords): Fix mirroring of X
3768 coordinate for hscrolled R2L screen lines. (Bug#18277)
3769
3770 2014-08-28 Paul Eggert <eggert@cs.ucla.edu>
3771
3772 * sysdep.c (LC_COLLATE, LC_COLLATE_MASK): Give individual defaults
3773 (Bug#18051).
3774
3775 2014-08-27 Eli Zaretskii <eliz@gnu.org>
3776
3777 * syntax.c (scan_lists): Don't examine positions before BEGV.
3778 (Bug#18339)
3779
3780 2014-08-27 Paul Eggert <eggert@cs.ucla.edu>
3781
3782 Improve robustness of new string-collation code (Bug#18051).
3783 * sysdep.c (LC_COLLATE, LC_COLLATE_MASK, freelocale, locale_t)
3784 (newlocale, wcscoll_l): Define substitutes for platforms that
3785 lack them, so as to simplify the mainline code.
3786 (str_collate): Simplify the code by assuming the above definitions.
3787 Use wcscoll_l, not uselocale, as uselocale is too fragile.
3788 For example, the old version left the Emacs in the wrong locale if
3789 wcscoll reported an error. Use 'int', not ptrdiff_t, for the int
3790 result. Report an error if newlocale fails.
3791
3792 2014-08-27 Michael Albinus <michael.albinus@gmx.de>
3793
3794 * lisp.h (str_collate):
3795 * sysdep.c (str_collate): Return int.
3796 (str_collate) [__STDC_ISO_10646__]: Propagate error of wcscoll.
3797
3798 2014-08-27 Dmitry Antipov <dmantipov@yandex.ru>
3799
3800 Fix some glitches in previous change.
3801 * sysdep.c (stack_direction): Replace stack_grows_down
3802 to simplify calculation of stack boundaries.
3803 (handle_sigsegv): Check whether we really crash somewhere near
3804 to stack boundary, and handle fatal signal as usual if not.
3805 (init_sigsegv): Adjust accordingly.
3806 * keyboard.c (Vtop_level_message): Rename to
3807 Vinternal__top_level_message, as suggested by Stefan Monnier in
3808 http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00493.html
3809 All related users changed.
3810
3811 2014-08-26 Dmitry Antipov <dmantipov@yandex.ru>
3812
3813 Handle C stack overflow caused by too nested Lisp evaluation.
3814 * lisp.h (toplevel) [HAVE_STACK_OVERFLOW_HANDLING]: Declare
3815 siglongjmp point to transfer control from SIGSEGV handler.
3816 * keyboard.c (return_to_command_loop, recover_top_level_message)
3817 [HAVE_STACK_OVERFLOW_HANDLING]: New variables.
3818 (regular_top_level_message): New variable.
3819 (command_loop) [HAVE_STACK_OVERFLOW_HANDLING]: Handle non-local
3820 exit from SIGSEGV handler and adjust message displayed by Vtop_level
3821 if appropriate.
3822 (syms_of_keyboard): DEFVAR Vtop_level_message and initialize
3823 new variables described above.
3824 * sysdep.c [HAVE_SYS_RESOURCE_H]: Include sys/resource.h as such.
3825 (stack_grows_down, sigsegv_stack, handle_sigsegv)
3826 [HAVE_STACK_OVERFLOW_HANDLING]: New variables and function.
3827 (init_sigsegv): New function.
3828 (init_signals): Use it.
3829
3830 2014-08-25 Ken Brown <kbrown@cornell.edu>
3831
3832 * emacs.c (main): Remove use of obsolete macro
3833 G_SLICE_ALWAYS_MALLOC.
3834
3835 2014-08-25 Eli Zaretskii <eliz@gnu.org>
3836
3837 Implement locale-sensitive string collation for MS-Windows.
3838 * w32proc.c (get_lcid_callback, get_lcid, w32_compare_strings):
3839 New functions. (Bug#18051)
3840
3841 * w32.h (w32_compare_strings): Add prototype.
3842
3843 * w32.c <g_b_init_compare_string_w>: New global flag.
3844 (globals_of_w32): Initialize it.
3845
3846 * sysdep.c (str_collate) [WINDOWSNT]: Implementation for MS-Windows.
3847
3848 * fns.c (Fstring_collate_lessp, Fstring_collate_equalp)
3849 [WINDOWSNT]: Call str_collate on MS-Windows.
3850
3851 2014-08-25 Dmitry Antipov <dmantipov@yandex.ru>
3852
3853 One more minor cleanup of font subsystem.
3854 * font.h (struct font_driver): Convert text_extents to
3855 return void because returned value is never actually used.
3856 * macfont.m (macfont_text_extents):
3857 * w32font.c (w32font_text_extents):
3858 * xftfont.c (xftfont_text_extents): Adjust to return void
3859 and assume that 'metrics' argument is always non-NULL.
3860 * ftfont.c (ftfont_text_extents):
3861 * xfont.c (xfont_text_extents): Likewise. Avoid redundant memset.
3862
3863 2014-08-25 Paul Eggert <eggert@cs.ucla.edu>
3864
3865 Minor cleanups of str_collate fix (Bug#18051).
3866 * fns.c (str_collate): Move decl from here ...
3867 * lisp.h (str_collate): ... to here.
3868 * sysdep.c (str_collate): Prune away some of the forest of ifdefs.
3869 Remove unnecessary casts. Use SAFE_NALLOCA to avoid
3870 potential problems with integer overflow. Don't assume
3871 setlocale succeeds. Remove unnecessary test before restoring
3872 locale via setlocale, and free the copied setlocale string
3873 when done with it.
3874
3875 2014-08-24 Michael Albinus <michael.albinus@gmx.de>
3876
3877 * fns.c (Fstring_collate_lessp, Fstring_collate_equalp): New DEFUNs.
3878
3879 * sysdep.c (str_collate): New function. (Bug#18051)
3880
3881 2014-08-23 Karol Ostrovsky <karol.ostrovsky@gmail.com> (tiny change)
3882
3883 * Makefile.in (emacs$(EXEEXT)): Retry deletion of bootstrap-emacs
3884 if the initial "rm -f" fails. This is for MinGW builds, where
3885 MS-Windows will not allow deleting the executable file of a
3886 running program.
3887
3888 2014-08-20 Eli Zaretskii <eliz@gnu.org>
3889
3890 * w32term.c (w32_scroll_bar_handle_click)
3891 (w32_horizontal_scroll_bar_handle_click)
3892 (x_scroll_bar_report_motion)
3893 (x_horizontal_scroll_bar_report_motion): For SB_THUMBPOSITION and
3894 SB_THUMBTRACK, use the 32-bit position information returned by
3895 GetScrollInfo, not the 16-bit information returned in the Windows
3896 message sent to us.
3897
3898 2014-08-19 Eli Zaretskii <eliz@gnu.org>
3899
3900 * w32term.c (w32_horizontal_scroll_bar_handle_click): Fix the
3901 second coordinate ('y') reported for dragging the horizontal
3902 scroll bar thumb.
3903
3904 2014-08-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3905
3906 * xdisp.c (erase_phys_cursor): Fix confusion between window-relative
3907 and text area-relative x-coordinates.
3908
3909 2014-08-17 Eli Zaretskii <eliz@gnu.org>
3910
3911 Avoid overwriting the reversed_p flags in the glyph matrices when
3912 init_iterator or start_display are called.
3913 * xdisp.c (init_iterator): Don't initialize the reversed_p flag of
3914 the glyph row here.
3915 (tool_bar_height, redisplay_tool_bar, try_window)
3916 (try_window_reusing_current_matrix, try_window_id)
3917 (get_overlay_arrow_glyph_row, display_menu_bar): Initialize the
3918 reversed_p flag of the iterator's glyph row where the glyph row
3919 is going to be redrawn.
3920
3921 2014-08-16 Paul Eggert <eggert@cs.ucla.edu>
3922
3923 * xdisp.c (set_horizontal_scroll_bar): Don't use uninitialized local.
3924
3925 2014-08-16 Martin Rudalics <rudalics@gmx.at>
3926
3927 * w32term.c (w32_horizontal_scroll_bar_handle_click): In y part
3928 of emacs_event return length from si.nPage to si.nMax.
3929 * xdisp.c (set_horizontal_scroll_bar): For right-to-left text
3930 interchange start and end of thumb.
3931
3932 2014-08-15 Ken Brown <kbrown@cornell.edu>
3933
3934 * gmalloc.c (_malloc_mutex, _aligned_blocks_mutex) [CYGWIN]: Use
3935 ERRORCHECK mutexes. (Bug#18222)
3936
3937 2014-08-12 Martin Rudalics <rudalics@gmx.at>
3938
3939 * frame.c (set_menu_bar_lines_1): Remove.
3940 (set_menu_bar_lines): Call change_frame_size instead of
3941 set_menu_bar_lines_1.
3942
3943 2014-08-11 Jan Djärv <jan.h.d@swipnet.se>
3944
3945 * nsfns.m (Fx_create_frame): Call adjust_frame_size,
3946 set f->official.
3947
3948 2014-08-11 Glenn Morris <rgm@gnu.org>
3949
3950 * fileio.c: Revert 2013-01-31 change, which chose coding system for
3951 writing before backing up, since it causes a more serious problem
3952 than the one it solves. (Closes Bug#18141, reopens Bug#13522.)
3953 (choose_write_coding_system): No longer callable from Lisp.
3954 Move last piece back here from Fwrite_region.
3955 (Fwrite_region, syms_of_fileio): Update for above changes.
3956
3957 2014-08-11 Martin Rudalics <rudalics@gmx.at>
3958
3959 * window.c (Fwindow_valid_p): Fix doc-string (Bug#18194).
3960 (Fwindow_new_total, Fwindow_normal_size, Fwindow_new_normal)
3961 (Fwindow_new_pixel, Fset_window_new_pixel)
3962 (Fset_window_new_total, Fset_window_new_normal)
3963 (Fwindow_resize_apply): Fix doc-strings (see Bug#18112).
3964 See also:
3965 http://lists.gnu.org/archive/html/bug-gnu-emacs/2014-08/msg00287.html
3966
3967 2014-08-11 Eli Zaretskii <eliz@gnu.org>
3968
3969 * fontset.c (Finternal_char_font): Recompute basic faces if the
3970 frame's face cache was cleared. (Bug#18162)
3971
3972 2014-08-11 Dmitry Antipov <dmantipov@yandex.ru>
3973
3974 Fix bug with uninitialized undo list of an indirect buffer (Bug#18180).
3975 * buffer.c (Fmake_indirect_buffer): Initialize undo list with the
3976 base buffer's undo list.
3977
3978 2014-08-10 Reuben Thomas <rrt@sc3d.org>
3979
3980 Fix a couple of recent inadvertent breaks of the MSDOS port.
3981 * msdos.c: include required menu.h
3982 * term.c: set correct menu_show_hook on MSDOS.
3983
3984 2014-08-10 Martin Rudalics <rudalics@gmx.at>
3985
3986 Fix handling of menu bar line on TTY frames (Bug#18136)
3987 (Bug#18196).
3988 * dispnew.c (handle_window_change_signal):
3989 * keyboard.c (Fsuspend_emacs): Call change_frame_size with
3990 frame's menu bar lines subtracted from height.
3991 * frame.c (frame_inhibit_resize): Inhibit resizing of TTY
3992 frames.
3993 (adjust_frame_size): Count in menu bar when setting FrameRows.
3994 (make_terminal_frame): When setting up the frame's lines and
3995 text height don't count in the menu bar.
3996 (Fmake_terminal_frame): Call adjust_frame_size with menu bar
3997 lines subtracted from height.
3998 (do_switch_frame): Set tty's FrameRows to number of total lines
3999 of frame.
4000 (Fframe_pixel_height, Fframe_pixel_width): If no window system
4001 is used, return total number of lines and columns.
4002 * menu.c (emulate_dialog_with_menu): Use FRAME_TOTAL_LINES instead
4003 of FRAME_LINES.
4004 * term.c (OUTPUT, tty_set_terminal_modes)
4005 (tty_set_terminal_window, tty_set_scroll_region)
4006 (tty_clear_to_end, tty_write_glyphs, tty_write_glyphs_with_face)
4007 (tty_ins_del_lines, tty_menu_display, tty_menu_activate):
4008 Use FRAME_TOTAL_LINES instead of FRAME_LINES.
4009 (Fresume_tty): Use FRAME_TOTAL_LINES instead of FRAME_LINES.
4010 Call change_frame_size with frame's menu bar lines subtracted
4011 from height.
4012 * w32console.c (w32con_clear_to_end, w32con_clear_frame)
4013 (w32con_ins_del_lines): Use FRAME_TOTAL_LINES instead of
4014 FRAME_LINES.
4015
4016 2014-08-09 Reuben Thomas <rrt@sc3d.org>
4017
4018 * alloc.c (Fmemory_info): Remove a stray brace.
4019
4020 * process.c: Fix a comment typo.
4021
4022 * msdos.c, dosfns.c (init_dosfns): Remove support for DJGPP < 2.02.
4023
4024 2014-08-09 Jan Djärv <jan.h.d@swipnet.se>
4025
4026 * widgetprv.h (EmacsFramePart): Remove font.
4027
4028 * widget.c (DEFAULT_FACE_FONT, EmacsFrameSetValues, setup_frame_gcs)
4029 (resources, setup_frame_cursor_bits): Remove unused variables and
4030 functions, esp. wrt. font (Bug#18227).
4031
4032 2014-08-07 Paul Eggert <eggert@cs.ucla.edu>
4033
4034 * xterm.c (x_delete_terminal): Plug file descriptor leak (Bug#17691).
4035
4036 2014-08-07 Reuben Thomas <rrt@sc3d.org>
4037
4038 Refer to MS-DOS using the same name everywhere.
4039
4040 * editfns.c: Fix a couple of ``MS-DOG''s missed in the previous
4041 commit.
4042 * xfaces.c: ditto.
4043
4044 2014-08-05 Martin Rudalics <rudalics@gmx.at>
4045
4046 * w32term.c (w32_redeem_scroll_bar):
4047 * xterm.c (XTredeem_scroll_bar): Revert part of last change by
4048 not redeeming scroll bars that have been turned off.
4049
4050 2014-08-05 Dmitry Antipov <dmantipov@yandex.ru>
4051
4052 * keyboard.c (safe_run_hooks): Follow the convenient style to bind
4053 inhibit-quit to t and pass 2 args to safe_run_hook_funcall. See
4054 <http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00077.html>.
4055 (safe_run_hook_funcall): Adjust accordingly.
4056
4057 2014-08-04 Martin Rudalics <rudalics@gmx.at>
4058
4059 * frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS):
4060 Condition correctly according to toolkit used.
4061 * frame.c (make_initial_frame, make_terminal_frame)
4062 (x_set_horizontal_scroll_bars, x_set_scroll_bar_height)
4063 (Vdefault_frame_horizontal_scroll_bars): Correctly condition
4064 assignments according to presence of toolkit scrollbars.
4065 * window.h (WINDOW_HAS_HORIZONTAL_SCROLL_BAR):
4066 Condition correctly according to toolkit used.
4067 * window.c (set_window_scroll_bars): Set horizontal scroll bar
4068 only if toolkit supports it.
4069 * w32term.c (w32_redeem_scroll_bar): Always redeem scroll bar if
4070 present.
4071 * xterm.c (x_scroll_bar_create): Initialize horizontal slot for
4072 non-toolkit builds.
4073 (XTredeem_scroll_bar): Always redeem scroll bar if present.
4074
4075 2014-08-04 Dmitry Antipov <dmantipov@yandex.ru>
4076
4077 * keyboard.c (safe_run_hook_funcall): Avoid consing around
4078 Vinhibit_quit and prefer internal_condition_case_n to pass args.
4079 (safe_run_hooks_error, safe_run_hooks_1): Adjust accordingly.
4080 (safe_run_hooks): Remove comment which is not relevant any more.
4081
4082 2014-08-03 Paul Eggert <eggert@cs.ucla.edu>
4083
4084 Don't let big frames overrun the stack.
4085 * dispnew.c (mirrored_line_dance, mirror_line_dance, scrolling):
4086 Use SAFE_NALLOCA, not alloca.
4087
4088 Fix bug with clang + directory_files_internal + GC (Bug#16986).
4089 * dired.c (directory_files_internal): Use a volatile variable
4090 to prevent the compiler from optimizing away all copies of a local.
4091 I wonder how many other GC-related bugs like this lurk elsewhere?
4092
4093 Avoid 100% CPU utilization on ssh session exit (Bug#17691).
4094 * xterm.h (struct x_display_info): New member 'connection'.
4095 * xterm.c (x_term_init, x_delete_terminal): Set and use it,
4096 so that x_delete_terminal has a file descriptor to pass to
4097 delete_keyboard_wait_descriptor.
4098
4099 Don't mishandle year-9999 dates (Bug#18176).
4100 * editfns.c (decode_time_components): Store an invalid timespec
4101 on overflow, instead of returning false, so that the caller can
4102 distinguish overflow from other errors.
4103 (lisp_time_argument, lisp_seconds_argument): If the time is out
4104 of range, signal a time overflow instead of an invalid time spec.
4105 * keyboard.c (decode_timer): Treat time overflow like other
4106 timespec errors.
4107
4108 Avoid undefined behavior with signed left shift.
4109 Caught by 'gcc -fsanitize=undefined'.
4110 * dispextern.h, scroll.c (scrolling_max_lines_saved, scrolling_1):
4111 * dispnew.c (line_hash_code, scrolling):
4112 * scroll.c (calculate_scrolling, calculate_direct_scrolling):
4113 Use 'unsigned', not 'int', for line hashes.
4114 (scrolling_max_lines_saved): Avoid mystery constants for hash sizes.
4115
4116 2014-08-02 Paul Eggert <eggert@cs.ucla.edu>
4117
4118 Make compare-strings more compatible with old behavior (Bug#17903).
4119 * fns.c (Fcompare_strings): Silently bring too-large ends into range.
4120
4121 2014-08-02 Jan Djärv <jan.h.d@swipnet.se>
4122
4123 * gtkutil.c (create_dialog): Force min spacing 10 between buttons.
4124 Don't add label between left and right buttons (Bug#18129).
4125
4126 2014-08-01 Paul Eggert <eggert@cs.ucla.edu>
4127
4128 Make functions static that no longer need to be extern.
4129 * frame.c, frame.h (set_menu_bar_lines):
4130 * keyboard.c (Qleftmost, Qrightmost):
4131 * xfns.c, frame.h, menu.h (x_set_menu_bar_lines, x_set_tool_bar_lines)
4132 (x_set_internal_border_width):
4133 Now static.
4134
4135 2014-08-01 Eli Zaretskii <eliz@gnu.org>
4136
4137 Fix display of R2L lines when the last character fits only partially.
4138 See http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00476.html
4139 for the details.
4140 * xdisp.c (extend_face_to_end_of_line): If the last glyph of an
4141 R2L row is visible only partially, give the row a negative x
4142 offset.
4143 (display_line): Fix the calculation of the glyph whose pixel width
4144 is used to decide whether the last produced glyph fits on the
4145 line. When the last glyph fits only partially, give the row a
4146 negative x offset.
4147
4148 Fix hscroll of R2L lines that begin with a TAB or another wide glyph.
4149 * xdisp.c (append_stretch_glyph): In a R2L glyph row, decrease the
4150 pixel width of the first glyph that is hscrolled from display.
4151 (display_line): In R2L glyph rows, don't give a negative offset to
4152 row->x when the first glyph begins before first_visible_x.
4153
4154 * xdisp.c (display_line): If called with iterator set up to write
4155 to a marginal area, delay the call to handle_line_prefix until we
4156 switch back to the text area. (Bug#18035)
4157
4158 * .gdbinit (xwindow): The members total_cols, total_lines,
4159 left_col, and top_line are C integers (and has been so for the
4160 last 1.5 years).
4161
4162 2014-08-01 Andreas Schwab <schwab@suse.de>
4163
4164 * macros.c (Fstart_kbd_macro): Initialize kbd_macro_ptr and
4165 kbd_macro_end together with kbd_macro_buffer. (Bug#18140)
4166
4167 2014-08-01 Dmitry Antipov <dmantipov@yandex.ru>
4168
4169 * atimer.c (toplevel) [HAVE_TIMERFD]: Include errno.h.
4170 (timerfd_callback): Ignore weird events with no data. Add tight
4171 assertions and comments.
4172 (init_atimer) [HAVE_TIMERFD]: Add environment variable to optionally
4173 disable timerfd-based timer. Use TFD_NONBLOCK for timer descriptor.
4174
4175 2014-08-01 Paul Eggert <eggert@cs.ucla.edu>
4176
4177 * frame.c (x_set_frame_parameters): Fix typo in previous patch.
4178 I had confused && with ||.
4179
4180 2014-07-31 Paul Eggert <eggert@cs.ucla.edu>
4181
4182 Simplify timerfd configuration and fix some minor glitches.
4183 * atimer.c (TIMERFD_CREATE_FLAGS): Remove; we now assume TFD_CLOEXEC.
4184 (alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
4185 Fall back on timer_create if timerfd_create fails at runtime.
4186 (resolution) [HAVE_CLOCK_GETRES]: Remove; we now rely on the
4187 kernel primitives to do resolution. All uses removed.
4188 (timerfd) [!HAVE_TIMERFD]: Define to be -1, for convenience.
4189 (turn_on_atimers): Clear timer_create-based timers too,
4190 for consistency.
4191
4192 * frame.c (x_set_frame_parameters): Don't use uninitialized locals.
4193 Without this change, the code can access the local variable 'width'
4194 even when it has not been initialized, and likewise for 'height';
4195 in either case this leads to undefined behavior.
4196
4197 2014-07-30 Dmitry Antipov <dmantipov@yandex.ru>
4198
4199 * xrdb.c (x_load_resources) [USE_MOTIF]: Although not strictly
4200 necessary, put horizontal scroll bar resources as well. See
4201 <http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00430.html>.
4202 * xterm.c (x_sync_with_move): Really wait 0.5s, not 0.0005s.
4203
4204 2014-07-29 Dmitry Antipov <dmantipov@yandex.ru>
4205
4206 * xrdb.c (x_load_resources) [!USE_MOTIF]: Put horizontal scroll bar
4207 background value to match the resource of its vertical counterpart.
4208
4209 2014-07-29 Martin Rudalics <rudalics@gmx.at>
4210
4211 * frame.c (adjust_frame_size): Use FRAME_WINDOW_P instead of
4212 FRAME_X_WINDOW when calling x_set_window_size (Bug#18138).
4213
4214 2014-07-28 Martin Rudalics <rudalics@gmx.at>
4215
4216 * frame.c (x_set_frame_parameters): Revert part of 2014-07-24
4217 change that added the top margin height to the requested height
4218 and revert (undocumented) part of 2014-07-28 change that changed
4219 the logic of whether a size change occurred.
4220
4221 2014-07-28 Eli Zaretskii <eliz@gnu.org>
4222
4223 * .gdbinit (xwindow): The members total_cols, total_lines,
4224 left_col, and top_line are C integers (and has been so for the
4225 last 1.5 years).
4226
4227 * .gdbinit (xsubchartable): The members 'depth' and 'min_char' are
4228 now C integers.
4229
4230 2014-07-28 Dmitry Antipov <dmantipov@yandex.ru>
4231
4232 On GNU/Linux, use timerfd for asynchronous timers.
4233 * atimer.c (toplevel) [HAVE_TIMERFD]: Include sys/timerfd.h.
4234 (toplevel): Rename alarm_timer_ok to special_timer_available.
4235 [HAVE_TIMERFD]: Declare timerfd.
4236 [HAVE_CLOCK_GETRES]: Declare resolution.
4237 (start_atimer) [HAVE_CLOCK_GETRES]: Round up timestamp to
4238 system timer resolution.
4239 (set_alarm) [HAVE_TIMERFD]: Use timerfd_settime.
4240 (timerfd_callback) [HAVE_TIMERFD]: New function.
4241 (atimer_result, debug_timer_callback, Fdebug_timer_check)
4242 [ENABLE_CHECKING]: New function for the sake of automated tests.
4243 (init_atimer) [HAVE_TIMERFD]: Setup timerfd.
4244 [HAVE_CLOCK_GETRES]: Likewise for system timer resolution.
4245 [ENABLE_CHECKING]: Defsubr test function.
4246 * atimer.h (timerfd_callback) [HAVE_TIMERFD]: Add prototype.
4247 * lisp.h (add_timer_wait_descriptor) [HAVE_TIMERFD]: Likewise.
4248 * process.c (add_timer_wait_descriptor) [HAVE_TIMERFD]: New function.
4249
4250 Fix --without-x build and pacify --enable-gcc-warnings.
4251 Problems reported in Bug#18122 and Bug#18124.
4252 * frame.c (get_frame_param): Define even if !HAVE_WINDOW_SYSTEM.
4253 (frame_windows_min_size): Now static.
4254 * frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS) [!HAVE_WINDOW_SYSTEM]:
4255 Define as no-op.
4256 (adjust_frame_size): Always declare prototype.
4257
4258 Fix Gnus-related issues reported by David Kastrup <dak@gnu.org> in
4259 <http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00370.html>.
4260 * atimer.c (timerfd_callback): Always read expiration data.
4261 Add comment.
4262 (turn_on_atimers) [HAVE_TIMERFD]: Disarm timerfd timer.
4263 * process.c (add_timer_wait_descriptor): Add timer descriptor
4264 to input_wait_mask and non_process_wait_mask as well.
4265
4266 2014-07-28 Paul Eggert <eggert@cs.ucla.edu>
4267
4268 * frame.c (x_set_frame_parameters): Don't use uninitialized locals.
4269
4270 2014-07-27 Jan Djärv <jan.h.d@swipnet.se>
4271
4272 * nsterm.m (applicationDidFinishLaunching antialiasThresholdDidChange):
4273 Reinstate code removed by the prevoius commit to this file.
4274
4275 2014-07-27 Martin Rudalics <rudalics@gmx.at>
4276
4277 * buffer.h (struct buffer): New fields scroll_bar_height and
4278 horizontal_scroll_bar_type.
4279 * buffer.c (bset_scroll_bar_height)
4280 (bset_horizontal_scroll_bar_type): New functions.
4281 (Fbuffer_swap_text): Handle old_pointm field.
4282 (init_buffer_once): Set defaults for scroll_bar_height and
4283 horizontal_scroll_bar_type.
4284 (syms_of_buffer): New variables scroll_bar_height and
4285 horizontal_scroll_bar_type.
4286 * dispextern.h (window_part): Rename ON_SCROLL_BAR to
4287 ON_VERTICAL_SCROLL_BAR. Add ON_HORIZONTAL_SCROLL_BAR.
4288 (set_vertical_scroll_bar): Remove prototype.
4289 (x_change_tool_bar_height): Add prototype.
4290 * dispnew.c (adjust_frame_glyphs_for_frame_redisplay)
4291 (window_to_frame_vpos, update_frame_1, scrolling, init_display):
4292 Use FRAME_TOTAL_COLS and FRAME_TOTAL_LINES instead of FRAME_COLS
4293 and FRAME_LINES.
4294 (adjust_frame_glyphs_for_window_redisplay): Rearrange lines.
4295 (update_window): Start mode_line_row->y after horizontal scroll
4296 bar.
4297 (change_frame_size_1): Call adjust_frame_size.
4298 (init_display): When changing the size of a tty frame do not
4299 pass height of menu bar.
4300 (Qframe_windows_min_size): New symbol.
4301 * frame.h (struct frame): List tool bar fields after menu bar
4302 fields. Add official, total_lines, horizontal_scroll_bars,
4303 config_scroll_bar_height and config_scroll_bar_lines fields.
4304 (FRAME_HAS_HORIZONTAL_SCROLL_BARS)
4305 (FRAME_CONFIG_SCROLL_BAR_HEIGHT, FRAME_CONFIG_SCROLL_BAR_LINES)
4306 (FRAME_SCROLL_BAR_AREA_HEIGHT, FRAME_SCROLL_BAR_COLS)
4307 (FRAME_SCROLL_BAR_LINES, FRAME_TOTAL_LINES, SET_FRAME_LINES)
4308 (FRAME_WINDOWS_HEIGHT): New macros.
4309 (SET_FRAME_HEIGHT, FRAME_TEXT_LINES_TO_PIXEL_HEIGHT)
4310 (FRAME_PIXEL_Y_TO_LINE, FRAME_PIXEL_HEIGHT_TO_TEXT_LINES)
4311 (FRAME_TEXT_TO_PIXEL_HEIGHT): Separately count top margin and
4312 horizontal scroll bar.
4313 (frame_inhibit_resize, adjust_frame_size)
4314 (frame_windows_min_size): Add declarations.
4315 (Qscroll_bar_height, Qhorizontal_scroll_bars)
4316 (x_set_scroll_bar_default_height, x_set_left_fringe)
4317 (x_set_right_fringe, x_set_vertical_scroll_bars)
4318 (x_set_horizontal_scroll_bars, x_set_scroll_bar_width)
4319 (x_set_scroll_bar_height): Add external declarations.
4320 * frame.c: (frame_inhibit_resize, frame_windows_min_size)
4321 (adjust_frame_size): New functions.
4322 (make_frame): Initial horizontal_scroll_bars field.
4323 Use SET_FRAME_LINES. Don't allow horizontal scroll bar in
4324 minibuffer window.
4325 (make_initial_frame, make_terminal_frame): No horizontal scroll
4326 bar in initial and terminal frames. Use adjust_frame_size.
4327 (Fframe_total_cols): Fix doc-string.
4328 (Fframe_total_lines, Fscroll_bar_height): New Lisp functions.
4329 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
4330 Rewrite using adjust_frame_size.
4331 (Qscroll_bar_height, Qhorizontal_scroll_bars)
4332 (Qframe_windows_min_size): New symbols.
4333 (x_set_frame_parameters): Remove call of check_frame_size.
4334 (x_report_frame_params): Return scroll_bar_height value.
4335 (x_set_left_fringe, x_set_right_fringe): New functions.
4336 (adjust_frame_height, x_set_internal_border_width)
4337 (x_set_fringe_width): Remove.
4338 (x_set_internal_border_width, x_set_vertical_scroll_bars)
4339 (x_set_scroll_bar_width, x_set_right_divider_width)
4340 (x_set_bottom_divider_width): Rewrite using adjust_frame_size.
4341 (x_set_horizontal_scroll_bars, x_set_scroll_bar_height):
4342 New functions.
4343 (x_figure_window_size): Rewrite to make frame display the
4344 expected number of lines.
4345 (Vdefault_frame_scroll_bars): Rewrite doc-string.
4346 (Vdefault_frame_horizontal_scroll_bars)
4347 (Vframe_initial_frame_tool_bar_height)
4348 (frame_inhibit_implied_resize): New variables.
4349 * fringe.c (compute_fringe_widths): Remove.
4350 * gtkutil.h (YG_SB_MIN, YG_SB_MAX, YG_SB_RANGE): Define.
4351 (xg_create_horizontal_scroll_bar)
4352 (xg_update_horizontal_scrollbar_pos)
4353 (xg_set_toolkit_horizontal_scroll_bar_thumb)
4354 (xg_get_default_scrollbar_height)
4355 (xg_clear_under_internal_border): Extern.
4356 * gtkutil.c (xg_frame_resized): Don't call
4357 do_pending_window_change.
4358 (xg_frame_set_char_size): Use adjust_frame_size.
4359 (style_changed_cb): Call update_theme_scrollbar_height and
4360 x_set_scroll_bar_default_height.
4361 (x_wm_set_size_hint): Don't call check_frame_size.
4362 (update_theme_scrollbar_height)
4363 (xg_get_default_scrollbar_height)
4364 (xg_create_horizontal_scroll_bar)
4365 (xg_update_horizontal_scrollbar_pos)
4366 (xg_set_toolkit_horizontal_scroll_bar_thumb): New functions.
4367 (xg_create_scroll_bar): Set horizontal slot of bar.
4368 (xg_initialize): Call update_theme_scrollbar_height.
4369 (xg_clear_under_internal_border): No more static.
4370 * insdel.c (adjust_suspend_auto_hscroll): New function.
4371 (adjust_markers_for_delete, adjust_markers_for_insert)
4372 (adjust_markers_for_replace): Call adjust_suspend_auto_hscroll.
4373 * keyboard.c (readable_events, discard_mouse_events)
4374 (make_lispy_event): Handle horizontal scroll bar click events.
4375 (Fsuspend_emacs): When changing the size of a tty frame do not
4376 pass height of menu bar.
4377 (Qbefore_handle, Qhorizontal_handle, Qafter_handle, Qleft)
4378 (Qright, Qleftmost, Qrightmost): New symbols.
4379 * menu.c (Fx_popup_dialog): Use FRAME_TOTAL_LINES instead of
4380 FRAME_LINES.
4381 * minibuf.c (read_minibuf): Initialize suspend_auto_hscroll.
4382 * nsfns.m (x_set_internal_border_width): New function.
4383 * nsterm.m (ns_draw_fringe_bitmap, ns_set_vertical_scroll_bar):
4384 Remove extended fringe code.
4385 (x_set_window_size, x_new_font): Don't call
4386 compute_fringe_widths.
4387 * term.c (Fresume_tty): When changing the size of a tty frame do
4388 not pass height of menu bar.
4389 (clear_tty_hooks, set_tty_hooks):
4390 Clear horizontal_scroll_bar_hook.
4391 (init_tty): Frame has no horizontal scroll bars.
4392 * termhooks.h (enum scroll_bar_part): Add scroll_bar_move_ratio,
4393 scroll_bar_before_handle, scroll_bar_horizontal_handle,
4394 scroll_bar_after_handle, scroll_bar_left_arrow,
4395 scroll_bar_right_arrow, scroll_bar_to_leftmost and
4396 scroll_bar_to_rightmost entries.
4397 (enum event_kind): Add HORIZONTAL_SCROLL_BAR_CLICK_EVENT
4398 (struct terminal): Add set_horizontal_scroll_bar_hook.
4399 * w32console.c (initialize_w32_display):
4400 Clear horizontal_scroll_bar_hook.
4401 * w32fns.c (x_set_mouse_color): Use FRAME_W32_DISPLAY instead of
4402 FRAME_X_DISPLAY.
4403 (x_clear_under_internal_border, x_set_internal_border_width):
4404 New functions.
4405 (x_set_menu_bar_lines): Rewrite using frame_inhibit_resize.
4406 Set windows_or_buffers_changed when adding the menu bar.
4407 (x_set_tool_bar_lines): Rewrite using adjust_frame_size.
4408 (x_change_tool_bar_height, x_set_scroll_bar_default_height)
4409 (w32_createhscrollbar): New functions.
4410 (w32_createscrollbar): Rename to w32_createvscrollbar.
4411 (w32_createwindow): Init WND_HSCROLLBAR_INDEX.
4412 (w32_name_of_message): Replace WM_EMACS_CREATESCROLLBAR by
4413 WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR.
4414 Add WM_EMACS_SHOWCURSOR.
4415 (w32_wnd_proc): Handle WM_HSCROLL case. In WM_WINDOWPOSCHANGING
4416 case do not artificially impose WM size hints.
4417 Handle WM_EMACS_SHOWCURSOR case. Replace WM_EMACS_CREATESCROLLBAR case
4418 by WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR
4419 cases.
4420 (my_create_tip_window): Replace WND_SCROLLBAR_INDEX by
4421 WND_VSCROLLBAR_INDEX and WND_HSCROLLBAR_INDEX.
4422 (unwind_create_frame_1): Remove.
4423 (Fx_create_frame): Make both scrollbars the system standard
4424 width and height. Use official field of frame structure to
4425 inhibit running window-configuration-change-hook.
4426 (x_create_tip_frame): Call SET_FRAME_LINES and change_frame_size
4427 pixelwise. Handle frame's official field.
4428 (w32_frame_parm_handlers): Remove x_set_fringe_width
4429 entries. Add x_set_scroll_bar_height,
4430 x_set_horizontal_scroll_bars, x_set_left_fringe and
4431 x_set_right_fringe.
4432 * w32inevt.c (resize_event, maybe_generate_resize_event): Do not
4433 pass height of menu bar to change_frame_size.
4434 * w32menu.c (set_frame_menubar): Rewrite using
4435 frame_inhibit_resize.
4436 * w32term.h (struct w32_display_info):
4437 Add horizontal_scroll_bar_cursor and cursor_display_counter.
4438 (struct scroll_bar): Add horizontal.
4439 (HORIZONTAL_SCROLL_BAR_INSIDE_HEIGHT)
4440 (HORIZONTAL_SCROLL_BAR_LEFT_RANGE)
4441 (HORIZONTAL_SCROLL_BAR_INSIDE_WIDTH)
4442 (HORIZONTAL_SCROLL_BAR_LEFT_BORDER)
4443 (HORIZONTAL_SCROLL_BAR_RIGHT_BORDER)
4444 (HORIZONTAL_SCROLL_BAR_TOP_BORDER)
4445 (HORIZONTAL_SCROLL_BAR_BOTTOM_BORDER)
4446 (HORIZONTAL_SCROLL_BAR_MIN_HANDLE): New macros.
4447 (WM_EMACS_CREATEVSCROLLBAR, WM_EMACS_CREATEHSCROLLBAR):
4448 Define instead of WM_EMACS_CREATESCROLLBAR.
4449 (WND_VSCROLLBAR_INDEX, WND_HSCROLLBAR_INDEX): Define instead of
4450 WND_SCROLLBAR_INDEX.
4451 * w32term.c (horizontal_scroll_bar_min_handle)
4452 (horizontal_scroll_bar_left_border)
4453 (horizontal_scroll_bar_right_border): New integers.
4454 (x_set_frame_alpha): Replace x_highlight_frame by
4455 w32_focus_frame.
4456 (x_window_to_scroll_bar): New argument "type". Update callers
4457 accordingly.
4458 (w32_set_horizontal_scroll_bar_thumb)
4459 (x_horizontal_scroll_bar_report_motion)
4460 (w32_set_horizontal_scroll_bar)
4461 (w32_horizontal_scroll_bar_handle_click)
4462 (x_horizontal_scroll_bar_report_motion): New functions.
4463 (w32_mouse_position): Discriminate horizontal and vertical
4464 scrollbar cases.
4465 (my_create_scrollbar): Replace with two new functions
4466 my_create_vscrollbar and my_create_hscrollbar.
4467 (x_scroll_bar_create): New argument "horizontal".
4468 Update callers accordingly.
4469 (x_scroll_bar_remove, w32_condemn_scroll_bars)
4470 (w32_redeem_scroll_bar, x_scroll_bar_clear): Handle horizontal
4471 scroll bar case.
4472 (w32_read_socket): Handle WM_HSCROLL cae.
4473 (x_new_font): Don't recompute fringe widths.
4474 Use frame_inhibit_resize. Calculate new menu bar height iff we
4475 build without toolkit. Always clear under internal border.
4476 (x_set_window_size): Don't check frame size or recompute
4477 fringes. Reset fullscreen status before applying sizes.
4478 Always resize as requested by pixelwise argument. Don't call
4479 do_pending_window_change.
4480 (x_wm_set_size_hint): Add call for FRAME_SCROLL_BAR_AREA_HEIGHT.
4481 (w32_initialize_display_info): Initialize dpyinfo's
4482 horizontal_scroll_bar_cursor entry.
4483 (w32_create_terminal): Add set_horizontal_scroll_bar_hook.
4484 (w32_initialize): Init horizontal_scroll_bar_min_handle and
4485 horizontal_scroll_bar_left_border.
4486 (w32fullscreen_hook): Intermittently resize window to normal
4487 when switching from fullscreen to maximized state.
4488 (run_window_configuration_change_hook): Don't run it if frame is
4489 not official yet.
4490 (unwind_change_frame): Remove.
4491 (Fset_window_configuration): Rewrite using frame's official field.
4492 * widget.c (set_frame_size): Don't call compute_fringe_widths.
4493 (EmacsFrameSetCharSize): Obey frame_inhibit_resize.
4494 * window.h (struct window): New fields old_pointm,
4495 horizontal_scroll_bar, horizontal_scroll_bar_type, hscroll_whole,
4496 scroll_bar_height and suspend_auto_hscroll.
4497 (wset_horizontal_scroll_bar, wset_horizontal_scroll_bar_type):
4498 New functions.
4499 (sanitize_window_sizes): Extern.
4500 (MINI_NON_ONLY_WINDOW_P, MINI_ONLY_WINDOW_P, WINDOW_PSEUDO_P)
4501 (WINDOW_TOPMOST_P, WINDOW_HAS_HORIZONTAL_SCROLL_BAR)
4502 (WINDOW_CONFIG_SCROLL_BAR_HEIGHT)
4503 (WINDOW_CONFIG_SCROLL_BAR_LINES)
4504 (WINDOW_SCROLL_BAR_LINES, WINDOW_SCROLL_BAR_AREA_HEIGHT):
4505 New macros.
4506 (WINDOW_LEFT_FRINGE_COLS, WINDOW_RIGHT_FRINGE_COLS)
4507 (WINDOW_FRINGE_COLS, WINDOW_FRINGE_EXTENDED_P): Remove macros.
4508 (WINDOW_VERTICAL_SCROLL_BAR_TYPE)
4509 (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT)
4510 (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT)
4511 (WINDOW_HAS_VERTICAL_SCROLL_BAR): Minor rewrite.
4512 (WINDOW_BOX_HEIGHT_NO_MODE_LINE, WINDOW_BOX_TEXT_HEIGHT)
4513 (WINDOW_SCROLL_BAR_AREA_Y): Count in scroll bar height.
4514 * window.c (wset_old_pointm, Fwindow_scroll_bar_height)
4515 (Fwindow_old_point, sanitize_window_sizes): New functions.
4516 (Qwindow_sanitize_window_sizes): New symbol.
4517 (window_body_height): Count in horizontal scroll bar.
4518 (set_window_hscroll, Fscroll_left, Fscroll_right):
4519 Set suspend_auto_hscroll slot.
4520 (Fwindow_inside_edges): Count fringes pixelwise.
4521 (coordinates_in_window, Fcoordinates_in_window_p):
4522 Consider horizontal scroll bar.
4523 (check_frame_size, adjust_window_margins): Remove functions and
4524 corresponding calls.
4525 (set_window_buffer): Initialize old_pointm and horizontal scroll bars.
4526 (temp_output_buffer_show): Reset hscroll related fields.
4527 Initialize old_pointm.
4528 (make_parent_window): Initialize old_pointm.
4529 (make_window): Initialize old_pointm, horizontal scroll bar type,
4530 and scroll bar height.
4531 (resize_frame_windows): Don't count top margin in new sizes.
4532 Don't use safe sizes when shrinking a frame; let the window
4533 manager do the clipping.
4534 (Fsplit_window_internal): Inherit horizontal scroll bar type and
4535 height.
4536 (Fdelete_window_internal): Unchain old_pointm marker.
4537 (window_scroll_pixel_based, Fscroll_other_window):
4538 Adjust old_pointm.
4539 (Fwindow_text_width, Fwindow_text_height): New argument
4540 "pixelwise".
4541 (struct saved_window): New fields, old_pointm, hscroll_whole,
4542 suspend_auto_hscroll, scroll_bar_height and
4543 horizontal_scroll_bar_type.
4544 (Fset_window_configuration, save_window_save): Set new fields of
4545 saved_window.
4546 (apply_window_adjustment): Don't call adjust_window_margins.
4547 (set_window_margins): Don't change margins if new sizes don't
4548 fit into window.
4549 (set_window_scroll_bars): New argument "horizontal_type".
4550 Handle horizontal scroll bars. Don't change scroll bars if they
4551 don't fit into window.
4552 (Fset_window_scroll_bars): New argument "horizontal_type".
4553 (Fwindow_scroll_bars): Return values for horizontal scroll bars.
4554 (compare_window_configurations): Compare horizontal scroll bar
4555 settings.
4556 * xdisp.c (window_text_bottom_y, window_box_height): Count in
4557 horizontal scroll bar height.
4558 (pixel_to_glyph_coords, init_xdisp): Use FRAME_TOTAL_LINES
4559 instead of FRAME_LINES.
4560 (remember_mouse_glyph): Case ON_SCROLL_BAR changed to
4561 ON_VERTICAL_SCROLL_BAR.
4562 (with_echo_area_buffer): Initialize old_pointm.
4563 (with_echo_area_buffer_unwind_data): Store old_pointm values in
4564 vector.
4565 (unwind_with_echo_area_buffer): Handle old_pointm.
4566 (update_tool_bar): Set do_update when the tool bar window has at
4567 least one line (since this is what the user sets).
4568 (MAX_FRAME_TOOL_BAR_HEIGHT): Remove macro.
4569 (redisplay_tool_bar): Return early when toolbar has zero lines.
4570 Call x_change_tool_bar_height. Don't use max_tool_bar_height.
4571 (hscroll_window_tree): Handle suspension of auto_hscroll and
4572 old_pointm.
4573 (set_horizontal_scroll_bar): New function.
4574 (redisplay_window): Set ignore_mouse_drag_p when tool bar has
4575 more than one line. Handle horizontal scroll bars.
4576 (note_mouse_highlight): Handle horizontal scrol bars.
4577 (expose_frame): Set dimensions of XRectangle from frame's text
4578 sizes.
4579 (Vvoid_text_area_pointer): Update doc-string.
4580 * xfns.c (x_set_menu_bar_lines): Use adjust_frame_size.
4581 (x_change_tool_bar_height, x_set_scroll_bar_default_height)
4582 (x_set_internal_border_width): New functions.
4583 (x_set_tool_bar_lines): Call x_change_tool_bar_height.
4584 (unwind_create_frame_1): Remove.
4585 (Fx_create_frame): Handle horizontal scroll bars. Use official
4586 field of frame structure to inhibit running
4587 window-configuration-change-hook.
4588 (x_create_tip_frame): Call SET_FRAME_LINES and change_frame_size
4589 pixelwise. Handle frame's official field.
4590 (x_frame_parm_handlers): Add x_set_scroll_bar_height,
4591 x_set_horizontal_scroll_bars, x_set_left_fringe,
4592 x_set_right_fringe.
4593 * xmenu.c (update_frame_menubar, free_frame_menubar):
4594 Use adjust_frame_size.
4595 * xterm.h (struct x_display_info):
4596 Add horizontal_scroll_bar_cursor and Xatom_Horizontal_Scrollbar
4597 slots.
4598 (struct scroll_bar): Add horizontal slot.
4599 (HORIZONTAL_SCROLL_BAR_INSIDE_HEIGHT)
4600 (HORIZONTAL_SCROLL_BAR_LEFT_RANGE)
4601 (HORIZONTAL_SCROLL_BAR_INSIDE_WIDTH): New macros.
4602 (HORIZONTAL_SCROLL_BAR_LEFT_BORDER)
4603 (HORIZONTAL_SCROLL_BAR_RIGHT_BORDER)
4604 (HORIZONTAL_SCROLL_BAR_TOP_BORDER)
4605 (HORIZONTAL_SCROLL_BAR_BOTTOM_BORDER)
4606 (HORIZONTAL_SCROLL_BAR_MIN_HANDLE): Define.
4607 (x_clear_under_internal_border): Remove.
4608 * xterm.c (XTmouse_position): Handle horizontal scroll bars.
4609 (x_window_to_scroll_bar): New argument TYPE. Update callers.
4610 (x_send_scroll_bar_event, x_scroll_bar_create): New arguments
4611 HORIZONTAL. Update callers.
4612 (horizontal_action_hook_id): New action hook id.
4613 (x_horizontal_scroll_bar_to_input_event)
4614 (x_create_horizontal_toolkit_scroll_bar)
4615 (xt_horizontal_action_hook)
4616 (x_set_toolkit_horizontal_scroll_bar_thumb)
4617 (XTset_horizontal_scroll_bar, x_net_wm_state)
4618 (x_horizontal_scroll_bar_report_motion): New functions.
4619 (xg_scroll_callback, x_scroll_bar_handle_click):
4620 Handle horizontal scroll bars.
4621 (SCROLL_BAR_HORIZONTAL_NAME): Define.
4622 (XTset_vertical_scroll_bar): Attempt to clear areas not covered
4623 by scroll bar.
4624 (XTcondemn_scroll_bars, XTredeem_scroll_bar): Rewrite.
4625 Handle horizontal scroll bars.
4626 (handle_one_xevent): Handle horizontal scroll bar events.
4627 Call x_net_wm_state.
4628 (x_set_window_size_1, x_wm_set_size_hint): Don't call
4629 check_frame_size.
4630 (x_set_window_size): Don't call check_frame_size and
4631 do_pending_window_change.
4632 (x_term_init): Init horizontal_scroll_bar_cursor display info.
4633 (x_create_terminal): Add set_horizontal_scroll_bar_hook.
4634 (x_scroll_bar_set_handle): Add some checks when calling
4635 x_clear_area.
4636
4637 2014-07-26 Paul Eggert <eggert@cs.ucla.edu>
4638
4639 Revert previous change.
4640 There is certainly nothing wrong with writing code like 'lo <= i
4641 && i <= hi', even if LO happens to a constant. There isn't even
4642 anything wrong in general with writing 'a <= b' if A happens to
4643 be a constant. At any rate stylistic changes shouldn't
4644 be done like this without discussion.
4645
4646 2014-07-26 Andreas Schwab <schwab@linux-m68k.org>
4647
4648 * alloc.c (xnmalloc, xnrealloc, xpalloc, make_save_value)
4649 (Fgarbage_collect): Reorder conditions that are written backwards.
4650 * data.c (cons_to_unsigned): Likewise.
4651 * dispnew.c (update_frame_1, sit_for): Likewise.
4652 * fileio.c (file_offset): Likewise.
4653 * filelock.c (read_lock_data, lock_file): Likewise.
4654 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
4655 Likewise.
4656 * font.c (font_intern_prop, font_style_symbolic): Likewise.
4657 * lisp.h (FIXNUM_OVERFLOW_P): Likewise.
4658 * lread.c (read1): Likewise.
4659 * minibuf.c (read_minibuf_noninteractive): Likewise.
4660 * nsterm.m (x_set_frame_alpha): Likewise.
4661 * process.c (wait_reading_process_output): Likewise.
4662 * region-cache.c (delete_cache_boundaries): Likewise.
4663 * xterm.c (x_set_frame_alpha): Likewise.
4664
4665 2014-07-25 Paul Eggert <eggert@cs.ucla.edu>
4666
4667 * dispextern.h, xdisp.c (hourglass_shown_p, hourglass_atimer):
4668 Now static.
4669
4670 2014-07-26 Dmitry Antipov <dmantipov@yandex.ru>
4671
4672 * atimer.c (set_alarm) [HAVE_ITIMERSPEC]: Use TIMER_ABSTIME
4673 because atimer expiration is absolute rather than relative.
4674
4675 2014-07-25 Eli Zaretskii <eliz@gnu.org>
4676
4677 * w32term.h (current_popup_menu, menubar_in_use):
4678 Move declarations from w32term.c.
4679
4680 2014-07-25 Martin Rudalics <rudalics@gmx.at>
4681
4682 * w32fns.c (menubar_in_use): No more static.
4683 * w32term.c (current_popup_menu, menubar_in_use): Declare.
4684
4685 2014-07-25 Dmitry Antipov <dmantipov@yandex.ru>
4686
4687 Move hourglass machinery to RIF.
4688 * dispextern.h (struct redisplay_interface): New members
4689 show_hourglass and hide_hourglass. Indent comments.
4690 (show_hourglass, hide_hourglass): Remove prototypes.
4691 * nsterm.m (show_hourgass, hide_hourglass): Refactor to ...
4692 (ns_show_hourglass, ns_hide_hourglass): ... new no-ops.
4693 (ns_redisplay_interface): Add them.
4694 * w32fns.c (show_hourglass, hide_hourglass): Refactor to ...
4695 * w32term.c (w32_show_hourglass, w32_hide_hourglass): ... these.
4696 (w32_arrow_cursor): New function to hack around non-GUI frames.
4697 (w32_redisplay_interface): Add new functions.
4698 * w32term.h (w32_arror_cursor): Add prototype.
4699 * xdisp.c (show_hourglass): New function, refactored out from
4700 platform-dependent code.
4701 (cancel_hourglass): Now call to RIF function.
4702 * xfns.c (show_hourglass, hide_hourglass): Refactor to ...
4703 * xterm.c (x_show_hourglass, x_hide_hourglass): ... these.
4704 (x_redisplay_interface): Add new functions.
4705
4706 2014-07-24 Dmitry Antipov <dmantipov@yandex.ru>
4707
4708 Fix error reported by Angelo Graziosi <angelo.graziosi@alice.it> in
4709 <http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00274.html>
4710 and complete previous change.
4711 * frame.c (adjust_frame_height): New function.
4712 (Fset_frame_height, Fset_frame_size): Use it.
4713 (x_set_frame_parameters): Take frame top margin into account.
4714
4715 2014-07-23 Dmitry Antipov <dmantipov@yandex.ru>
4716
4717 * frame.c (Fset_frame_height): Take frame top margin into account.
4718 Incorrect behavior was reported by Martin Rudalics <rudalics@gmx.at> in
4719 <http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00258.html>
4720
4721 2014-07-22 Dmitry Antipov <dmantipov@yandex.ru>
4722
4723 * xterm.h (struct x_output) [USE_X_TOOLKIT || USE_GTK]: Define
4724 menubar_height as such. Tweak comment.
4725 [USE_LUCID && USE_TOOLKIT_SCROLL_BARS]: Likewise for
4726 scroll_bar_top_shadow_pixel and scroll_bar_bottom_shadow_pixel.
4727 All related users changed.
4728 (FRAME_MENUBAR_HEIGHT) [!USE_X_TOOLKIT && !USE_GTK]: No-op.
4729 * xterm.c (handle_one_xevent):
4730 * gtkutil.c (xg_event_is_for_menubar):
4731 * xfns.c (x_window) [USE_X_TOOLKIT]:
4732 * xmenu.c (set_frame_menubar, free_frame_menubar):
4733 Prefer to use FRAME_MENUBAR_HEIGHT.
4734
4735 2014-07-21 Dmitry Antipov <dmantipov@yandex.ru>
4736
4737 * frame.c (Fframe_parameters): Always report frame height without
4738 menu and tool bar lines.
4739
4740 2014-07-21 Jan Djärv <jan.h.d@swipnet.se>
4741
4742 * nsterm.m (applicationDidFinishLaunching:): Call
4743 antialiasThresholdDidChange, register for antialias changes (Bug#17534).
4744 (antialiasThresholdDidChange:): New method for EmacsApp.
4745
4746 * nsterm.h (EmacsApp): Add antialiasThresholdDidChange.
4747
4748 * macfont.m (macfont_update_antialias_threshold): Remove static.
4749
4750 * macfont.h (macfont_update_antialias_threshold): Declare.
4751
4752 2014-07-21 Eli Zaretskii <eliz@gnu.org>
4753
4754 * w32select.c (setup_windows_coding_system):
4755 Apply CODING_ANNOTATION_MASK to the common_flags member of struct
4756 coding_system. Reported by martin rudalics <rudalics@gmx.at>.
4757
4758 * w16select.c (Fw16_get_clipboard_data):
4759 Apply CODING_ANNOTATION_MASK to the common_flags member of struct
4760 coding_system.
4761
4762 * xdisp.c (init_iterator): Initialize it->stop_charpos to the
4763 buffer position where we are to start the iteration.
4764 (handle_invisible_prop): Record in it->stop_charpos the position
4765 where the invisible text ends. (Bug#18035)
4766 (hscroll_window_tree): Don't try hscrolling windows whose cursor
4767 row has zero buffer position as their start position.
4768 Reported by martin rudalics <rudalics@gmx.at>.
4769
4770 * xdisp.c (move_it_vertically_backward, move_it_by_lines): Prevent
4771 infinite looping in redisplay when display lines don't have enough
4772 space to display even a single character. (Bug#18036)
4773
4774 2014-07-20 Dmitry Antipov <dmantipov@yandex.ru>
4775
4776 * frame.h (struct frame) [USE_X_TOOLKIT]: New member shell_position.
4777 * xfns.c (x_window): Use it to allow xfree later.
4778 (x_encode_text): Drop 3rd arg; unused. Tweak comment and adjust users
4779 where appropriate. Use bool for booleans and remove redundant checks.
4780 (Fx_backspace_delete_keys_p): Use XkbFreeKeyboard; explain why.
4781 * xterm.c (x_free_frame_resources): Free shell_position.
4782
4783 2014-07-19 K. Handa <handa@gnu.org>
4784
4785 * xfaces.c (realize_x_face): Call font_load_for_lface with no
4786 mandatory font spec (Bug#17973).
4787
4788 2014-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
4789
4790 * font.c (font_score): Return the worst score if the size of
4791 ENTITY is wrong by more than a factor 2 (Bug#17973).
4792
4793 2014-07-18 Dmitry Antipov <dmantipov@yandex.ru>
4794
4795 * frame.c (frame_unspecified_color): New function
4796 refactored out from ...
4797 (Fframe_parameters, Fframe_parameter): ... adjusted users.
4798 (x_fullscreen_adjust, set_frame_param): Move Windows-specific
4799 function to ...
4800 * w32term.c (x_fullscreen_adjust, set_frame_param): ... static here.
4801 * frame.h (x_fullscreen_adjust) [HAVE_NTGUI]:
4802 * lisp.h (set_frame_param): Remove prototype.
4803 * xterm.c (x_display_pixel_width, x_display_pixel_height): Now ...
4804 * xterm.h (x_display_pixel_width, x_display_pixel_height): ...
4805 inlined from here.
4806
4807 Prefer 'x_display_info *' to 'Display *' in X selection code.
4808 This helps to avoid unneeded calls to x_display_info_for_display.
4809 * xterm.h (struct selection_input_event): Record 'x_display_info *'
4810 instead of 'Display *'.
4811 (SELECTION_EVENT_DPYINFO): New macro.
4812 (SELECTION_EVENT_DISPLAY): Now inline function to prohibit using
4813 it as an lvalue. Mention this in comment.
4814 * xterm.c (handle_one_xevent): Use SELECTION_EVENT_DPYINFO.
4815 * xselect.c (x_get_window_property_as_lisp_data, x_atom_to_symbol)
4816 (selection_data_to_lisp_data, receive_incremental_selection):
4817 Convert to use 'x_display_info *'. Adjust users where appropriate.
4818 (lisp_data_to_selection_data): Likewise. Also pass 'struct
4819 selection data *' as last arg to not return values in args.
4820 (unexpect_property_change): Use common removal technique.
4821
4822 2014-07-17 Dmitry Antipov <dmantipov@yandex.ru>
4823
4824 * print.c (print_preprocess): Adjust to match changed
4825 sub char-table structure and avoid crash (Bug#18038).
4826
4827 * data.c (wrong_choice): Not static any more.
4828 * lisp.h (wrong_choice): Add prototype.
4829 * frame.h (struct frame) [USE_X_TOOLKIT || HAVE_NTGUI]:
4830 Declare namebuf as such. Tweak comment.
4831 [USE_GTK]: Likewise for tool_bar_position.
4832 (fset_tool_bar_position) [USE_GTK]: Ditto.
4833 (FRAME_TOOL_BAR_POSITION): New macro.
4834 * frame.c (x_report_frame_params):
4835 * gtkutil.c (update_frame_tool_bar):
4836 * xfns.c (Fx_create_frame): Use it.
4837 (x_set_tool_bar_position): Add meaningful diagnostic messages.
4838
4839 2014-07-16 Eli Zaretskii <eliz@gnu.org>
4840
4841 * xdisp.c (decode_mode_spec): Call file-remote-p on the current
4842 buffer's default-directory only if it is a string. (Bug#17986)
4843
4844 2014-07-16 Dmitry Antipov <dmantipov@yandex.ru>
4845
4846 More precise control over values of some buffer-local variables.
4847 * keyboard.c (Qvertical_scroll_bar):
4848 * frame.c (Qleft, Qright): Move to ...
4849 * buffer.c (Qleft, Qright, Qvertical_scroll_bar): ... here.
4850 * buffer.c (Qchoice, Qrange, Qoverwrite_mode, Qfraction): New symbols.
4851 (syms_of_buffer): DEFSYM all of the above, attach special properties.
4852 Use special symbols to DEFVAR_PER_BUFFER overwrite-mode,
4853 vertical-scroll-bar, scroll-up-aggressively
4854 and scroll-down-aggressively.
4855 * buffer.h (Qchoice, Qrange, Qleft, Qright, Qvertical_scroll_bar):
4856 Add declarations.
4857 * nsfns.m, frame.h (Qleft, Qright):
4858 * nsterm.m (Qleft): Remove declarations.
4859 * gtkutil.c (toplevel): Include buffer.h.
4860 * data.c (wrong_choice, wrong_range): New functions.
4861 (store_symval_forwarding): Handle special properties of buffer-local
4862 variables and use functions from the above to signal error, if any.
4863
4864 * frame.h (enum fullscreen_type) [HAVE_WINDOW_SYSTEM]: Use more natural
4865 values. Add comment.
4866 (struct frame): Re-arrange layout to avoid extra padding and use bit
4867 fields for output_method, want_fullscreen and vertical_scroll_bar_type.
4868 (FRAME_VERTICAL_SCROLL_BAR_TYPE, FRAME_HAS_VERTICAL_SCROLL_BARS)
4869 (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT)
4870 (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT) [!HAVE_WINDOW_SYSTEM]:
4871 Define as no-ops because there are no scroll bars anyway.
4872 * frame.c (make_frame, make_terminal_frame, make_initial_frame):
4873 Adjust users.
4874
4875 * font.c (fset_font_data) [HAVE_XFT || HAVE_FREETYPE]:
4876 Add convenient setter.
4877 (font_put_frame_data, font_get_frame_data): Use it.
4878
4879 2014-07-15 Daiki Ueno <ueno@gnu.org>
4880
4881 * nsgui.h (XCHAR2B_BYTE1): Add missing parentheses around
4882 pointer argument, before dereferencing.
4883 (XCHAR2B_BYTE2): Likewise.
4884
4885 2014-07-15 Dmitry Antipov <dmantipov@yandex.ru>
4886
4887 * xmenu.c (toplevel): Use LWLIB_ID for next_menubar_widget_id.
4888 (pop_down_menu) [USE_X_TOOLKIT]: Accept integer arg.
4889 (create_and_show_popup_menu, create_and_show_dialog) [USE_X_TOOLKIT]:
4890 Use record_unwind_protect_int and avoid consing.
4891 (syms_of_xmenu) [USE_X_TOOLKIT]: Declare WIDGET_ID_TICK_START.
4892
4893 * regex.c (re_search_2): Use ssize_t to avoid integer overflow.
4894
4895 2014-07-14 Paul Eggert <eggert@cs.ucla.edu>
4896
4897 Use binary-io module, O_BINARY, and "b" flag (Bug#18006).
4898 * callproc.c (create_temp_file): Use mkostemp's O_BINARY flag.
4899 * emacs.c [MSDOS]:
4900 * emacs.c (main) [DOS_NT]: Don't mess with _fmode.
4901 (main) [MSDOS]: Use SET_BINARY instead of setmode.
4902 * minibuf.c: Include binary-io.h instead of fcntl.h.
4903 (read_minibuf_noninteractive):
4904 Use set_binary_mode instead of handcrafted code.
4905 Don't call emacs_set_tty if emacs_get_tty failed.
4906 * sysdep.c, systty.h (emacs_get_tty): Return int, not void.
4907 * sysdep.c (emacs_open, emacs_pipe): Use O_BINARY.
4908 * w32.c (pipe2): Adjust eassert to include O_BINARY.
4909
4910 * macros.c (Fstart_kbd_macro): Avoid need for overflow check.
4911 This works around a GCC compiler bug when Emacs is configured with
4912 --enable-gcc-warnings.
4913
4914 2014-07-14 Dmitry Antipov <dmantipov@yandex.ru>
4915
4916 * lisp.h (CHECK_VECTOR_OR_STRING): Return number of elements
4917 or characters in string, respectively. Add comment.
4918 * fringe.c (Fdefine_fringe_bitmap):
4919 * fns.c (Fsubstring, substring_both): Use it.
4920 * keymap.c (Fdefine_key, Flookup_key):
4921 * macros.c (Fstart_kbd_macro): Likewise. Avoid call to Flength.
4922
4923 * term.c (tty_menu_add_pane, tty_menu_add_selection):
4924 Use menu_item_width.
4925 (tty_menu_show): Simplify because tty_menu_create never return NULL.
4926
4927 2014-07-13 Paul Eggert <eggert@cs.ucla.edu>
4928
4929 Improve behavior of 'bzr up; cd src; make -k'.
4930 * Makefile.in (top_srcdir): New var.
4931 (ntsource, lispsource, ALL_CFLAGS, gl-stamp, emacs.res):
4932 Use '$(top_srcdir)' instead of '$(srcdir)/..';
4933 its expansion is a bit shorter.
4934 (../config.status): Actually build config.status instead of
4935 just complaining.
4936 (ACLOCAL_INPUTS, AUTOCONF_INPUTS):
4937 New macros, copied and relocated from ../Makefile.in.
4938 ($(top_srcdir)/aclocal.m4, $(top_srcdir)/configure, config.in)
4939 (../config.status, Makefile): New dependencies and rules,
4940 copied with relocation from ../Makefile.in. This should be more
4941 likely to rebuild the build machinery properly if you do a 'make'
4942 in the src directory.
4943
4944 2014-07-12 Eli Zaretskii <eliz@gnu.org>
4945
4946 * xdisp.c (display_line): Don't call FETCH_BYTE with argument less
4947 than 1. (Bug#17962)
4948
4949 * w32fns.c (Fx_file_dialog): Mention in the doc string the
4950 behavior on Windows 7 and later when the function is repeatedly
4951 invoked with the same value of DIR. (Bug#17950)
4952
4953 * xfns.c (Fx_file_dialog) [USE_MOTIF, USE_GTK]: Update the doc
4954 string to match the one in w32fns.c.
4955
4956 * minibuf.c (read_minibuf_noninteractive) [WINDOWSNT]: Switch
4957 stdin to binary mode only if it is connected to a terminal.
4958
4959 2014-07-11 Paul Eggert <eggert@cs.ucla.edu>
4960
4961 Coalesce extern decls.
4962 * minibuf.c (emacs_get_tty, emacs_set_tty, suppress_echo_on_tty):
4963 * sysdep.c (emacs_get_tty, emacs_set_tty):
4964 Move duplicate extern decls from here ...
4965 * systty.h: ... to here, so that there's just one copy.
4966
4967 2014-07-11 Jan Djärv <jan.h.d@swipnet.se>
4968
4969 * nsterm.m (changeFont:): Add ifdef NS_IMPL_COCOA.
4970
4971 * nsfns.m (Fns_popup_font_panel): Ditto.
4972
4973 2014-07-11 Eli Zaretskii <eliz@gnu.org>
4974
4975 * minibuf.c (read_minibuf_noninteractive): Finish reading on '\r',
4976 not only on '\n'.
4977 [WINDOWSNT]: Switch stdin to binary mode when not echoing input.
4978
4979 * sysdep.c (emacs_get_tty, emacs_set_tty, suppress_echo_on_tty)
4980 [DOS_NT]: Implement for WINDOWSNT.
4981
4982 * systty.h (struct emacs_tty) [DOS_NT]: The struct member is now
4983 unsigned.
4984
4985 2014-07-11 Michael Albinus <michael.albinus@gmx.de>
4986
4987 * sysdep.c (suppress_echo_on_tty): New function.
4988 * minibuf.c (read_minibuf_noninteractive): Use it.
4989
4990 2014-07-11 Dmitry Antipov <dmantipov@yandex.ru>
4991
4992 * alloc.c (Fmemory_info) [HAVE_LINUX_SYSINFO]: Return nil if
4993 sysinfo failed. Adjust docstring.
4994
4995 2014-07-11 Eli Zaretskii <eliz@gnu.org>
4996
4997 Implement memory-info for MS-DOS.
4998 * dosfns.c (dos_memory_info): New function.
4999 * dosfns.h (dos_memory_info): Add prototype.
5000 * alloc.c (Fmemory_info) [MSDOS]: Call dos_memory_info.
5001 * vm-limit.c (get_lim_data) [MSDOS]: Call dos_memory_info, instead
5002 of doing some of its job.
5003
5004 * minibuf.c (read_minibuf_noninteractive) [WINDOWSNT]: Don't
5005 reference termios structure members.
5006
5007 2014-07-11 Michael Albinus <michael.albinus@gmx.de>
5008
5009 * sysdep.c (emacs_get_tty, emacs_set_tty): Make them externally visible.
5010
5011 * minibuf.c (top): Include systty.h. Declare external
5012 emacs_get_tty and emacs_set_tty.
5013 (Vread_hide_char): New lisp variable.
5014 (read_minibuf_noninteractive): Hide characters with
5015 Vread_hide_char if it is a character. (Bug#17839)
5016
5017 2014-07-10 Eli Zaretskii <eliz@gnu.org>
5018
5019 Implement memory-info for MS-Windows.
5020 * w32.c (w32_memory_info): New function.
5021 * w32.h (w32_memory_info): Prototype it.
5022 * alloc.c (Fmemory_info) [WINDOWSNT]: Call it.
5023
5024 2014-07-10 Dmitry Antipov <dmantipov@yandex.ru>
5025
5026 * coding.h (struct coding_system): Remove 'error_positions' (unused)
5027 and 'errors' (set but unused) fields. Use bitfields for 'eol_seen',
5028 'mode', 'common_flags' and 'result' fields, adjust layout to avoid
5029 extra padding and shrink struct coding_system by 56 bytes (x86_64).
5030 * coding.c (decode_coding_utf_8, decode_coding_utf_16)
5031 (decode_coding_emacs_mule, decode_coding_iso_2022, decode_coding_sjis)
5032 (decode_coding_big5, decode_coding_charset, decode_coding)
5033 (encode_coding): Adjust users.
5034
5035 * alloc.c (Fmemory_info): New function.
5036
5037 2014-07-09 Paul Eggert <eggert@cs.ucla.edu>
5038
5039 * syntax.c (back_comment): Use more-natural location for label.
5040
5041 * font.c, font.h (font_unparse_fcname): Now static.
5042 Define only if HAVE_XFT || HAVE_FREETYPE || HAVE_NS.
5043
5044 2014-07-09 Dmitry Antipov <dmantipov@yandex.ru>
5045
5046 Next minor cleanup of font subsystem.
5047 * font.h (enum font_property_index): Remove FONT_ENTITY_INDEX (no
5048 users) and FONT_FORMAT_INDEX (set by a few font drivers but never
5049 really used).
5050 (FONT_ENTITY_NOT_LOADABLE, FONT_ENTITY_SET_NOT_LOADABLE): Remove;
5051 unused.
5052 * ftfont.h (ftfont_font_format): Remove prototype.
5053 * ftfont.c (ftfont_font_format): Remove; now unused.
5054 (ftfont_open):
5055 * nsfont.m (nsfont_open):
5056 * w32font.c (w32font_open_internal):
5057 * w32uniscribe.c (uniscribe_open):
5058 * xfont.c (xfont_open):
5059 * xftfont.c (xftfont_open): All users changed.
5060
5061 * coding.c (ALLOC_CONVERSION_WORK_AREA): Prefer ptrdiff_t to int and
5062 so avoid integer overflow if decoded gap size exceeds INT_MAX bytes.
5063
5064 2014-07-09 Eli Zaretskii <eliz@gnu.org>
5065
5066 * xdisp.c (move_it_to): Adjust calculation of line_start_x to what
5067 x_produce_glyphs does when it generates a stretch glyph that
5068 represents a TAB. (Bug#17969)
5069
5070 * xdisp.c (pos_visible_p): If CHARPOS is at beginning of window,
5071 and there is a display property at that position, don't call
5072 move_it_to to move to a position before window start. (Bug#17942)
5073 Fix condition for finding CHARPOS by the first call to move_it_to.
5074 (Bug#17944)
5075
5076 2014-07-09 Stefan Monnier <monnier@iro.umontreal.ca>
5077
5078 * syntax.c (find_defun_start): Try the cache even
5079 if !open_paren_in_column_0_is_defun_start.
5080 (back_comment): If find_defun_start was pessimistic, use the
5081 scan_sexps_forward result to improve the cache (bug#16526).
5082
5083 2014-07-09 Eli Zaretskii <eliz@gnu.org>
5084
5085 * xdisp.c (redisplay_window): If redisplay of a window ends up
5086 with point in a partially visible line at end of the window, make
5087 sure the amended position of point actually has smaller Y
5088 coordinate; if not, give up and scroll the display. (Bug#17905)
5089
5090 * window.c (window_scroll_pixel_based): When point ends up at the
5091 last fully visible line, don't let move_it_to stop at the left
5092 edge of the line and dupe us into thinking point is inside the
5093 scroll margin.
5094
5095 * w32.c (network_interface_info): Make sure the argument is a
5096 Lisp string.
5097
5098 2014-07-08 Paul Eggert <eggert@cs.ucla.edu>
5099
5100 * process.c (read_and_dispose_of_process_output): Fix typo
5101 in previous patch: we want nonnegative fds, not nonzero fds.
5102
5103 2014-07-08 Dmitry Antipov <dmantipov@yandex.ru>
5104
5105 * chartab.c (char_table_translate): Move to...
5106 * character.h (char_table_translate): ... inline function here.
5107 Avoid Faref and assume that args are always valid. This helps to
5108 speedup search, which is especially important for a huge buffers.
5109 * lisp.h (char_table_translate): Remove prototype.
5110
5111 * nsfont.m (nsfont_close): Free glyphs and metrics arrays as well.
5112 * font.c (font_build_object) [HAVE_XFT || HAVE_FREETYPE || HAVE_NS]:
5113 New function, with an intention to avoid code duplication between
5114 a few font drivers.
5115 * font.h (font_build_object) [HAVE_XFT || HAVE_FREETYPE || HAVE_NS]:
5116 Add prototype.
5117 * ftfont.c (ftfont_open):
5118 * macfont.m (macfont_open):
5119 * xftfont.c (xftfont_open): Use it.
5120
5121 2014-07-08 Paul Eggert <eggert@cs.ucla.edu>
5122
5123 * process.c: Add sanity checks for file descriptors (Bug#17844).
5124 (wait_reading_process_output, Fprocess_filter_multibyte_p):
5125 Check that infd is nonnegative before using it as an fd.
5126 (read_and_dispose_of_process_output, Fprocess_send_eof):
5127 Likewise, for outfd.
5128 (wait_reading_process_output): Omit unnecessary check of infd.
5129
5130 2014-07-07 Paul Eggert <eggert@cs.ucla.edu>
5131
5132 Minor fixups related to usage of the 'long' type.
5133 * gnutls.c (emacs_gnutls_handshake):
5134 * xfaces.c (dump_realized_face):
5135 Work even if 'long' is narrower than 'void *'.
5136 * termcap.c (scan_file):
5137 * xselect.c (x_decline_selection_request)
5138 (x_reply_selection_request, x_get_window_property):
5139 * xterm.c (x_set_frame_alpha):
5140 Remove unnecessary 'L' suffixes of integer constants.
5141 * xfns.c (hack_wm_protocols):
5142 * xselect.c (x_fill_property_data):
5143 * xterm.c (x_set_offset, x_set_window_size_1, x_make_frame_invisible):
5144 Remove unnecessary casts to 'long'.
5145 (set_machine_and_pid_properties): Don't assume pid_t fits in 32 bits.
5146
5147 Minor ImageMagick safety fixes.
5148 * image.c (imagemagick_compute_animated_image):
5149 Remove useless assignment to local. Avoid problems if dest_width is 0.
5150 (imagemagick_load_image): Use int for pixel counts that can't
5151 exceed INT_MAX. Avoid problem if PixelGetNextIteratorRow returns
5152 a row width greater than the image width (or greater than LONG_MAX!).
5153
5154 2014-07-04 K. Handa <handa@gnu.org>
5155
5156 * coding.c (MIN_CHARBUF_SIZE): Delete it.
5157 (MAX_CHARBUF_EXTRA_SIZE): New macro.
5158 (ALLOC_CONVERSION_WORK_AREA): Use MAX_CHARBUF_EXTRA_SIZE.
5159
5160 2014-07-04 Dmitry Antipov <dmantipov@yandex.ru>
5161
5162 * font.h (struct font_driver): Remove get_outline and free_outline;
5163 not used by any font driver.
5164 * ftfont.c (ftfont_driver):
5165 * macfont.m (macfont_driver):
5166 * nsfont.m (nsfont_driver):
5167 * w32font.c (w32font_driver):
5168 * w32uniscribe.c (uniscribe_font_driver):
5169 * xfont.c (xfont_driver): Related users changed.
5170 * xselect.c (x_get_window_property): Use convenient xmalloc.
5171 Call to xfree only if some data was really allocated.
5172
5173 2014-07-03 Dmitry Antipov <dmantipov@yandex.ru>
5174
5175 On MS-Windows, display busy cursor on all GUI frames.
5176 This is similar to what we have on X. Quickly tested by Dani Moncayo.
5177 * w32fns.c (toplevel): Remove hourglass_hwnd; no longer used.
5178 (w32_show_hourglass, w32_hide_hourglass, w32_note_current_window):
5179 Likewise.
5180 (hide_hourglass, show_hourglass): Redesign to match X counterparts.
5181 * xdisp.c (start_hourglass): Remove Windows-specific bits.
5182
5183 2014-07-03 Dmitry Antipov <dmantipov@yandex.ru>
5184
5185 Use convenient alists to manage per-frame font driver-specific data.
5186 * frame.h (struct frame): Rename font_data_list to...
5187 [HAVE_XFT || HAVE_FREETYPE]: ... font_data, which is a Lisp_Object now.
5188 * font.h (struct font_data_list): Remove; no longer need a special
5189 data type.
5190 (font_put_frame_data, font_get_frame_data) [HAVE_XFT || HAVE_FREETYPE]:
5191 Adjust prototypes.
5192 * font.c (font_put_frame_data, font_get_frame_data)
5193 [HAVE_XFT || HAVE_FREETYPE]: Prefer alist functions to ad-hoc list
5194 management.
5195 * xftfont.c (xftfont_get_xft_draw, xftfont_end_for_frame):
5196 Related users changed.
5197 * ftxfont.c (ftxfont_get_gcs, ftxfont_end_for_frame): Likewise.
5198 Prefer convenient xmalloc and xfree.
5199
5200 2014-07-03 Eli Zaretskii <eliz@gnu.org>
5201
5202 * dispnew.c (prepare_desired_row): Accept 2 additional arguments:
5203 the window whose glyph row is being prepared and a flag whether it
5204 is for mode/header line. Make sure the glyph row's marginal areas
5205 are in sync with what the window wants.
5206 (Bug#17892)
5207
5208 * xdisp.c (display_line, display_mode_line):
5209 Call prepare_desired_row with additional arguments, as appropriate.
5210
5211 * dispextern.h (prepare_desired_row): Adjust prototype.
5212
5213 2014-07-03 Dmitry Antipov <dmantipov@yandex.ru>
5214
5215 * xfaces.c (init_frame_faces): Always realize basic faces (Bug#17889).
5216 * menu.c (Fx_popup_dialog): Set Vmenu_updating_frame to avoid crash
5217 caused by xw_popup_dialog in daemon mode (Bug#17891).
5218
5219 2014-07-03 Eli Zaretskii <eliz@gnu.org>
5220
5221 * frame.c (do_switch_frame): When switching to another TTY frame,
5222 make sure FrameCols and FrameRows are in sync with the new frame's
5223 data. (Bug#17875)
5224
5225 2014-07-02 Dmitry Antipov <dmantipov@yandex.ru>
5226
5227 Shrink Lisp_Sub_Char_Table by preferring C integers to Lisp_Objects.
5228 * lisp.h (struct Lisp_Sub_Char_Table): Use C integers for depth and
5229 min_char slots. Adjust comment.
5230 (enum char_table_specials): Rename from CHAR_TABLE_STANDARD_SLOTS.
5231 Add SUB_CHAR_TABLE_OFFSET member.
5232 (make_uninit_sub_char_table): New function.
5233 (toplevel): Add compile-time assert to verify suitable member layout
5234 in Lisp_Sub_Char_Table.
5235 * alloc.c (mark_char_table): Add extra argument to denote char table
5236 subtype. Adjust to match new layout of sub char-table.
5237 (mark_object): Always mark sub char-tables with mark_char_table.
5238 * chartab.c (make_sub_char_table, copy_sub_char_table)
5239 (sub_char_table_ref, sub_char_table_ref_and_range, sub_char_table_set)
5240 (sub_char_table_set_range, optimize_sub_char_table, map_sub_char_table)
5241 (map_sub_char_table_for_charset, uniprop_table_uncompress):
5242 All related users changed.
5243 * lread.c (read1): Adjust to match new layout of sub char-table.
5244 * print.c (print_object): Likewise (Bug#17898).
5245
5246 2014-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
5247
5248 * keymap.c (get_keyelt): Simplify.
5249 (copy_keymap_item): Remove left-over code for when we had
5250 key-shortcut caches.
5251
5252 2014-06-30 Jan Djärv <jan.h.d@swipnet.se>
5253
5254 * nsterm.m (judge): EmacsScroller: Move dealloc code here.
5255 (dealloc): Remove for EmacsScroller.
5256
5257 * nsterm.h (EmacsScroller): Remove dealloc.
5258
5259 2014-06-30 Eli Zaretskii <eliz@gnu.org>
5260
5261 * coding.c (MIN_CHARBUF_SIZE): Enlarge to 32. (Bug#17881)
5262
5263 2014-06-30 Jan Djärv <jan.h.d@swipnet.se>
5264
5265 * nsmenu.m (update_frame_tool_bar): Set wait_for_tool_bar to NO
5266 when setNeedsDisplay is called so we don't trigger redisplay for every
5267 tool bar update.
5268
5269 * nsterm.m (any_help_event_p): New variable.
5270 (mouseMoved:): Set any_help_event_p to YES if help event is
5271 generated. Remove else with empty help event that triggered redisplay
5272 for every mouse move.
5273 (windowDidResignKey:): If any_help_event_p, generate empty help event.
5274
5275 2014-06-29 Dmitry Antipov <dmantipov@yandex.ru>
5276
5277 * xfns.c (Qsuppress_icon): Remove; no real users.
5278 (syms_of_xfns): Don't DEFSYM it. Remove ancient comments.
5279 * w32fns.c (Qsuppress_icon): Remove, for the same reason.
5280 (syms_of_w32fns): Don't DEFSYM it.
5281
5282 2014-06-29 Glenn Morris <rgm@gnu.org>
5283
5284 * Makefile.in (ns-app): Mark as PHONY.
5285
5286 2014-06-28 Glenn Morris <rgm@gnu.org>
5287
5288 * Makefile.in (mostlyclean): There are no libXMenu11.a,
5289 liblw.a in this directory.
5290
5291 2014-06-28 Andreas Schwab <schwab@linux-m68k.org>
5292
5293 * coding.c (encode_coding_utf_8): Correctly count produced_chars
5294 also in unibyte case. (Bug#17865)
5295
5296 2014-06-28 K. Handa <handa@gnu.org>
5297
5298 * coding.c (MAX_CHARBUF_SIZE): Rename from CHARBUF_SIZE.
5299 (MIN_CHARBUF_SIZE): New macro.
5300 (ALLOC_CONVERSION_WORK_AREA): New arg SIZE. Callers changed.
5301
5302 2014-06-27 Glenn Morris <rgm@gnu.org>
5303
5304 * Makefile.in: Replace BOOTSTRAPEMACS sleight-of-hand
5305 with an order-only dependence on bootstrap-emacs. (Bug#2151)
5306 (.el.elc): Replace suffix rule with pattern rule.
5307 (%.elc): New pattern rule, with order-only prerequisite.
5308 ($(lisp)): No more need to depend on BOOTSTRAPEMACS.
5309 ($(lispsource)/loaddefs.el): Use an order-only prerequisite
5310 in place of BOOTSTRAPEMACS.
5311
5312 2014-06-26 Dmitry Antipov <dmantipov@yandex.ru>
5313
5314 * fns.c (Fcompare_strings): Use FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE.
5315
5316 2014-06-25 Dmitry Antipov <dmantipov@yandex.ru>
5317
5318 Consistently use validate_subarray to verify substring.
5319 * fns.c (validate_substring): Not static any more. Adjust to
5320 use ptrdiff_t, not EMACS_INT, because string and vector limits
5321 can't exceed ptrdiff_t even if EMACS_INT is wider.
5322 (Fcompare_strings, Fsubstring, Fsubstring_no_properties)
5323 (secure_hash): Adjust user.
5324 * lisp.h (validate_subarray): Add prototype.
5325 * coding.c (Fundecodable_char_position):
5326 * composite.c (Fcomposition_get_gstring, Fcompose_string_internal):
5327 Use validate_subarray. Adjust comment to mention substring.
5328
5329 2014-06-25 Dmitry Antipov <dmantipov@yandex.ru>
5330
5331 Do not allow out-of-range character position in Fcompare_strings.
5332 * fns.c (validate_subarray): Add prototype.
5333 (Fcompare_substring): Use validate_subarray to check ranges.
5334 Adjust comment to mention that the semantics was changed. Also see
5335 http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00447.html.
5336
5337 2014-06-24 Paul Eggert <eggert@cs.ucla.edu>
5338
5339 Be more consistent about the 'Qfoo' naming convention.
5340 * image.c (Fimagemagick_types):
5341 * lisp.h (lisp_h_CHECK_TYPE, CHECK_TYPE, CHECK_ARRAY):
5342 * process.c (Fmake_network_process):
5343 Rename C local identifier 'Qfoo to avoid giving the false
5344 impression that it stands for the symbol 'foo'.
5345
5346 2014-06-23 Dmitry Antipov <dmantipov@yandex.ru>
5347
5348 Simplify and cleanup character conversion stuff.
5349 * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe):
5350 Remove prototypes.
5351 * character.c (multibyte_char_to_unibyte)
5352 (multibyte_char_to_unibyte_safe): Remove; no longer used.
5353 * character.h (make_char): Remove; unused.
5354 (CHAR_TO_BYTE8, CHAR_TO_BYTE_SAFE): Simplify.
5355 (ASCII_BYTE_P): Remove; ASCII_CHAR_P does the same thing.
5356 * buffer.c, charset.c, charset.h, cmds.c, coding.c, editfns.c:
5357 * fileio.c, indent.c, insdel.c, keyboard.c, lread.c, print.c:
5358 * search.c, term.c, xdisp.c, xterm.c: Related users changed.
5359
5360 2014-06-22 Mario Lang <mlang@delysid.org>
5361
5362 * w32fns.c (Fw32_shell_execute): The the -> the.
5363
5364 2014-06-22 Dmitry Antipov <dmantipov@yandex.ru>
5365
5366 * xmenu.c (mouse_position_for_popup):
5367 * xselect.c (mouse_position_for_drop): Do not duplicate ...
5368 * xfns.c (x_relative_mouse_position): ... and prefer this function.
5369 * menu.c (Fx_popup_menu):
5370 * xselect.c (x_handle_dnd_message): Adjust users.
5371 * menu.h (mouse_position_for_popup): Remove prototype.
5372 * xterm.h (x_relative_mouse_position): Add prototype.
5373 * xterm.c (x_find_topmost_parent): Break from the loop and do not
5374 call XFree if XQueryTree returns zero.
5375
5376 2014-06-21 Eli Zaretskii <eliz@gnu.org>
5377
5378 * indent.c (Fvertical_motion): Doc fix.
5379 Move to the goal column, if any, with a single call to
5380 move_it_in_display_line, not in two calls. Doing this with two
5381 calls causes move_it_in_display_line apply the line-prefix
5382 handling twice instead of just once. (Bug#17823)
5383
5384 2014-06-21 Paul Eggert <eggert@cs.ucla.edu>
5385
5386 Port to OS X ACLs (Bug#17810).
5387 * fileio.c (Ffile_acl): Port to OS X, where acl_get_file (...,
5388 ACL_TYPE_ACCESS) doesn't work.
5389
5390 2014-06-21 Stefan Monnier <monnier@iro.umontreal.ca>
5391
5392 * keyboard.c (read_key_sequence): Don't invoke Vprefix_help_command
5393 before checking key-translation-map (bug#17659).
5394
5395 2014-06-21 Dmitry Antipov <dmantipov@yandex.ru>
5396
5397 * font.c (font_make_object): Avoid dangling pointer which may
5398 crash GC (Bug#17771).
5399
5400 2014-06-21 Eli Zaretskii <eliz@gnu.org>
5401
5402 * image.c [5 < GIFLIB_MAJOR + (1 <= GIFLIB_MINOR)]: Declare the
5403 prototype of DGifCloseFile as appropriate for older and newer
5404 versions of giflib.
5405 (gif_close): New function, encapsulates the differences in the
5406 calling sequence of DGifCloseFile before v5.1.0 and after it.
5407 (gif_load): Call gif_close instead of DGifCloseFile. Divulge the
5408 error string where appropriate. (Bug#17790)
5409
5410 * xdisp.c (Fmove_point_visually): Instead of testing for keyboard
5411 macro execution, make sure point didn't move since last complete
5412 redisplay, as the condition for using the glyph matrix
5413 information. (Bug#17777)
5414
5415 2014-06-19 Dmitry Antipov <dmantipov@yandex.ru>
5416
5417 Minor cleanup of fonset code.
5418 * fontset.c (FONTSET_ID, set_fontset_id, FONTSET_NAME)
5419 (set_fontset_name, FONTSET_ASCII, set_fontset_ascii)
5420 (FONTSET_BASE, set_fontset_base, FONTSET_FRAME)
5421 (set_fontset_frame, FONTSET_NOFONT_FACE, set_fontset_nofont_face)
5422 (FONTSET_DEFAULT, set_fontset_default, FONTSET_FALLBACK)
5423 (set_fontset_fallback): Reorder extra slots and avoid unused slots.
5424 (free_realized_fontset): Remove because a no-op since 2008.
5425 (free_face_fontset): Adjust user.
5426 (syms_of_fontset): Shrink fontset by one extra slot.
5427
5428 2014-06-17 Paul Eggert <eggert@cs.ucla.edu>
5429
5430 Omit redundant extern decls.
5431 Most of this patch is from Dmitry Antipov, in:
5432 http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00263.html
5433 * commands.h (update_mode_lines):
5434 * frame.h (Qbackground_color, Qforeground_color)
5435 (x_set_menu_bar_lines):
5436 * ftfont.c (ftfont_font_format):
5437 * intervals.h (Qkeymap, Qfont):
5438 * keyboard.c (timer_check, safe_run_hooks, Qregion_extract_function):
5439 * lisp.h (Ffboundp, Qnil, Qt, Qlambda, Qintegerp, Qwholenump)
5440 (Qsymbolp, Qlisp, Qconsp, Qstringp, Qarrayp, Qbufferp, Qmarkerp)
5441 (Qvectorp, Qbuffer_or_string_p, Qchar_table_p, Qvector_or_char_table_p)
5442 (Qfloatp, Qnumberp, Qfont_spec, Qfont_entity, Qfont_object)
5443 (Fbyteorder, wrong_type_argument, Fmax_char, syms_of_composite)
5444 (Fidentity, extract_float, init_display, syms_of_display, Qdisplay):
5445 (Qimage, Qbox, redisplay_preserve_echo_area, char_table_ref)
5446 (char_table_set, char_table_translate, Qautoload, Qbottom, Qtop)
5447 (Qvisible, Qfont, Qfront_sticky, Qrear_nonsticky, init_sigio)
5448 (Qtool_bar, Qheader_line):
5449 * macros.c (Fexecute_kbd_macro):
5450 * xdisp.c (Ftool_bar_height, Ftool_bar_height):
5451 * xterm.c (x_delete_terminal, XSetIMValues):
5452 * xterm.h (x_set_window_size, x_query_color, x_get_focus_frame)
5453 (x_implicitly_set_name, popup_activated)
5454 (widget_store_internal_border):
5455 Remove redundant decls.
5456 * frame.c [USE_X_TOOLKIT]: Include widget.h.
5457 * keyboard.c (Fexit_recursive_edit, Fabort_recursive_edit):
5458 Remove _Noreturn, as make-docfile now does that for us.
5459 * lisp.h (DEFUN): Don't declare fnname here; rely on make-docfile.
5460 (Qregion_extract_function): New decl.
5461 * window.c, xfns.c: Include menu.h.
5462
5463 2014-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
5464
5465 * callint.c (Fcall_interactively): Fix up last change (bug#17701).
5466
5467 2014-06-17 Dmitry Antipov <dmantipov@yandex.ru>
5468
5469 * fileio.c (Fread_file_name): Do not pass redundant args and ...
5470 * callint.c (read_file_name): ... convert to static here.
5471 * lisp.h (Fread_file_name): Do not EXFUN it.
5472 (STRING_COPYIN): Remove; unused.
5473 * composite.c (CHAR_COMPOSABLE_P): Replace unsafe macro with ...
5474 (char_composable_p): ... static function. All users changed.
5475 * eval.c (toplevel): Remove redundant #include directives.
5476 * xterm.c (x_initialize): Add static to match prototype.
5477 * ccl.c (Fccl_execute_on_string):
5478 * font.c (fon_intern_prop): Use make_specified_string.
5479
5480 2014-06-16 Paul Eggert <eggert@cs.ucla.edu>
5481
5482 * Makefile.in (ns-app): Fix typo that broke build on OS X.
5483 Reported by David Caldwell in:
5484 http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00251.html
5485
5486 2014-06-16 Dmitry Antipov <dmantipov@yandex.ru>
5487
5488 Do not ask for XRender extension each time XFT font is opened.
5489 * xftfont.c (xftfont_open): Move call to XRenderQueryExtension ...
5490 * xterm.c (x_term_init) [HAVE_XFT]: ... to here. Adjust comment.
5491
5492 2014-06-15 Glenn Morris <rgm@gnu.org>
5493
5494 * Makefile.in: Use `make -C' rather than `cd && make' throughout.
5495
5496 2014-06-15 Eli Zaretskii <eliz@gnu.org>
5497
5498 * xdisp.c (Fmove_point_visually): Don't use the glyph matrix
5499 information if we are in the middle of executing a keyboard macro,
5500 since redisplay doesn't update the screen until the macro is
5501 finished. (Bug#17777)
5502
5503 * alloc.c (cleanup_vector): Don't dereference a font driver
5504 pointer if it is NULL. (Bug#17771)
5505
5506 2014-06-13 Glenn Morris <rgm@gnu.org>
5507
5508 * Makefile.in ($(leimdir)/leim-list.el, $(srcdir)/macuvs.h)
5509 ($(lispsource)/international/charprop.el)
5510 ($(libsrc)/make-docfile$(EXEEXT), $(lwlibdir)/liblw.a)
5511 ($(oldXMenudir)/libXMenu11.a, ns-app, .el.elc)
5512 ($(lispsource)/loaddefs.el, bootstrap-emacs$(EXEEXT)):
5513 GNU make automatically passes command-line arguments to sub-makes.
5514
5515 2014-06-13 Paul Eggert <eggert@cs.ucla.edu>
5516
5517 Avoid hangs in accept-process-output (Bug#17647).
5518 * lisp.h, process.c (wait_reading_process_input):
5519 Return int, not bool. All uses changed.
5520 * process.c (SELECT_CANT_DO_WRITE_MASK):
5521 Remove macro, replacing with ...
5522 (SELECT_CAN_DO_WRITE_MASK): ... new constant, with inverted sense.
5523 All uses changed.
5524 (status_notify): New arg WAIT_PROC. Return int, not void.
5525 All uses changed.
5526
5527 2014-06-13 Eli Zaretskii <eliz@gnu.org>
5528
5529 * menu.c (Fx_popup_menu): Don't call the frame's menu_show_hook if
5530 the frame is the initial frame, because the hook is not set up
5531 then, and Emacs crashes.
5532 Reported by Fabrice Popineau <fabrice.popineau@gmail.com>.
5533
5534 2014-06-12 Stefan Monnier <monnier@iro.umontreal.ca>
5535
5536 * keymap.c (silly_event_symbol_error): Don't recommend the use
5537 of strings.
5538
5539 2014-06-11 Eli Zaretskii <eliz@gnu.org>
5540
5541 * xdisp.c (set_cursor_from_row): Fix an off-by-one error when
5542 matching overlay strings with 'cursor' property against buffer
5543 positions traversed in the glyph row. (Bug#17744)
5544
5545 2014-06-11 Jan Djärv <jan.h.d@swipnet.se>
5546
5547 * nsterm.h (EmacsApp): Always compile in shouldKeepRunning, isFirst
5548 on Cocoa.
5549
5550 * nsterm.m (run): Always compile for Cocoa. Use runtime check to
5551 determine 10.9 (Bug#17751).
5552
5553 * macfont.m (macfont_draw): Positions were not freed.
5554
5555 2014-06-10 Dmitry Antipov <dmantipov@yandex.ru>
5556
5557 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Remove as a duplicate of ...
5558 * xfaces.c (prepare_face_for_display) [HAVE_WINDOW_SYSTEM]: ... this
5559 function. Also adjust comment.
5560 * fringe.c, w32term.c, xdisp.c, xterm.c: All users changed.
5561
5562 * dispextern.h (struct face) [HAVE_XFT]: Ifdef 'extra' member.
5563 * font.c (font_done_for_face):
5564 * xfaces.c (realize_non_ascii_face): Adjust user.
5565 * font.h (struct font_driver): Convert 'prepare_face' to return
5566 void because its return value is never used anyway.
5567 * xfont.c (xfont_prepare_face): Return void.
5568 * xftfont.c (xftfont_prepare_face): Likewise. Use xmalloc.
5569 (xftfont_done_face): Use xfree.
5570
5571 * dispextern.h (last_tool_bar_item): Remove declaration.
5572 * frame.h (struct frame): New member last_tool_bar_item.
5573 * frame.c (make_frame): Initialize it.
5574 * xdisp.c (toplevel): Remove last_tool_bar_item.
5575 (handle_tool_bar_click, note_tool_bar_highlight):
5576 * w32term.c (w32_read_socket, w32_initialize):
5577 * xterm.c (handle_one_xevent, x_initialize): Adjust users.
5578
5579 * frame.h (window_system_available) [!HAVE_WINDOW_SYSTEM]: Always false.
5580 * frame.c (window_system_available) [HAVE_WINDOW_SYSTEM]: Now here.
5581
5582 2014-06-09 Paul Eggert <eggert@cs.ucla.edu>
5583
5584 Say (accept-process-output P)'s result pertains to P if P is non-nil.
5585 * process.c (Faccept_process_output)
5586 (wait_reading_process_output): Mention that if PROCESS is non-nil,
5587 the return value is about PROCESS, not about other processes.
5588
5589 2014-06-09 Dmitry Antipov <dmantipov@yandex.ru>
5590
5591 Further adjustments to mark_object and friends.
5592 Now the mark_object's stack is just 32 bytes on a 64-bit
5593 system, which means extra 20% off the stack usage.
5594 * alloc.c (mark_save_value): As before, refactored out from ...
5595 (mark_object): ... adjusted user. Also add comment.
5596
5597 2014-06-09 Paul Eggert <eggert@cs.ucla.edu>
5598
5599 Fix core dump after a dropped X connection (Bug#17704).
5600 * sysdep.c (stuff_char): Don't abort merely because the selected frame
5601 is dead, as we may be shutting down.
5602
5603 2014-06-08 Glenn Morris <rgm@gnu.org>
5604
5605 * fileio.c (write-region-inhibit-fsync): Doc tweak.
5606
5607 * data.c (Flss, Fgtr, Fleq, Fgeq): Doc tweaks.
5608
5609 2014-06-08 Paul Eggert <eggert@cs.ucla.edu>
5610
5611 If a C name must be extern on some platforms, make it extern on all.
5612 * dispextern.h (set_vertical_scroll_bar, erase_phys_cursor)
5613 (load_color):
5614 * font.h (ftxfont_driver) [HAVE_XFT]:
5615 * keyboard.h (menu_items_inuse, ignore_mouse_drag_p, make_ctrl_char):
5616 * lisp.h (get_frame_param):
5617 * menu.h (tty_menu_show):
5618 * process.h (conv_sockaddr_to_lisp, catch_child_signal):
5619 * termhooks.h (encode_terminal_code):
5620 * xterm.h (x_menu_wait_for_event):
5621 Always declare.
5622 * frame.c (get_frame_param):
5623 * fringe.c (max_used_fringe_bitmap):
5624 * ftxfont.c (ftxfont_driver):
5625 * keyboard.c (ignore_mouse_drag_p, make_ctrl_char):
5626 * menu.c (menu_items_inuse):
5627 * process.c (conv_sockaddr_to_lisp, catch_child_signal):
5628 * term.c (encode_terminal_code, tty_menu_show):
5629 * xdisp.c (set_vertical_scroll_bar, erase_phys_cursor):
5630 * xfaces.c (load_color):
5631 * xmenu.c (x_menu_wait_for_event):
5632 Now always extern.
5633
5634 2014-06-08 Dmitry Antipov <dmantipov@yandex.ru>
5635
5636 Change object marking routines to minimize stack usage.
5637 This change moves a few cold paths from mark_object to NO_INLINE
5638 functions and adjusts symbol marking loop. According to GCC 4.8.2
5639 -Wstack-usage, this reduces mark_object's stack usage from 80 to
5640 48 bytes on a 64-bit system. For a long byte-force-recompile runs,
5641 stack usage at the mark phase is reduced up to 28%. Surprisingly,
5642 it also gains up to 3% in speed (with default '-O2 -g3' flags).
5643 * alloc.c (mark_compiled, mark_localized_symbol): New functions,
5644 refactored out from ...
5645 (mark_object): ... adjusted user. Also mark symbols in a tight
5646 inner loop.
5647 (mark_face_cache): Add NO_INLINE.
5648
5649 2014-06-08 Eli Zaretskii <eliz@gnu.org>
5650
5651 * sysdep.c (reset_sys_modes): Use cursorX, not curX, as the latter
5652 contains garbage on WINDOWSNT (which could potentially infloop at
5653 exit).
5654
5655 Minimize cursor motion during TTY menu updates.
5656 * term.c (tty_menu_display): Don't position cursor here.
5657 Instead, pass the cursor coordinates to update_frame_with_menu.
5658 (tty_menu_activate): Send the hide cursor command only once in an
5659 iteration through the outer 'while' loop.
5660
5661 * dispnew.c (update_frame_1): Accept an additional argument
5662 SET_CURSOR_P, and position the cursor at the end of the frame
5663 update only if that argument is non-zero. All callers changed to
5664 provide the additional argument as non-zero, except for
5665 update_frame_with_menu.
5666 (update_frame_with_menu): Accept 2 additional arguments ROW and
5667 COL; if they are non-negative, instruct update_frame_1 not to
5668 position the cursor, and instead position it according to ROW and COL.
5669
5670 * dispextern.h (update_frame_with_menu): Update prototype.
5671
5672 2014-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
5673
5674 * callproc.c (call_process): Don't check read-only if we don't insert
5675 anything (bug#17666).
5676
5677 2014-06-08 Eli Zaretskii <eliz@gnu.org>
5678
5679 * dispnew.c (update_frame_with_menu): Set display_completed.
5680
5681 2014-06-07 Eli Zaretskii <eliz@gnu.org>
5682
5683 * term.c (tty_menu_show) [WINDOWSNT]: Make tty_menu_show extern
5684 only for WINDOWSNT.
5685 * menu.h (tty_menu_show) [WINDOWSNT]: Declare extern only for WINDOWSNT.
5686
5687 2014-06-06 Paul Eggert <eggert@cs.ucla.edu>
5688
5689 * term.c (tty_menu_show) [!HAVE_NTGUI]: Now static.
5690 * menu.h (tty_menu_show) [!HAVE_NTGUI]: Omit extern decl.
5691
5692 2014-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
5693
5694 * window.c (Frecenter): Signal an error if window-buffer is not
5695 current-buffer.
5696
5697 * keyboard.c (make_lispy_position): Don't include a buffer position in
5698 mode/header-line mouse events.
5699
5700 * keyboard.c (read_char): Handle (t . <event>) in the second use of
5701 Vunread_command_events (bug#17650).
5702
5703 2014-06-06 Dmitry Antipov <dmantipov@yandex.ru>
5704
5705 * xterm.c (x_setup_pointer_blanking):
5706 Conditionally probe Xfixes until this stuff is stabilized (Bug#17609).
5707
5708 2014-06-05 Dmitry Antipov <dmantipov@yandex.ru>
5709
5710 * keyboard.c, process.c: Do not define POLL_FOR_INPUT here
5711 because it will be defined in generated config.h if needed.
5712
5713 2014-06-04 Dmitry Antipov <dmantipov@yandex.ru>
5714
5715 Use terminal-specific hooks to display popup dialogs.
5716 * termhooks.h (struct terminal): New field popup_dialog_hook.
5717 * menu.c (emulate_dialog_with_menu): New function, refactored from ...
5718 (Fx_popup_dialog): ... adjusted user. Also remove old #if 0
5719 code and use popup_dialog_hook.
5720 * nsmenu.m (ns_popup_dialog): Make hook-compatible.
5721 * nsterm.h (ns_popup_dialog): Adjust prototype.
5722 * nsterm.m (ns_create_terminal):
5723 * w32term.c (w32_create_terminal):
5724 * xterm.c (x_create_terminal) [USE_X_TOOLKIT || USE_GTK]:
5725 Setup popup_dialog_hook.
5726
5727 2014-06-04 Eli Zaretskii <eliz@gnu.org>
5728
5729 * w32heap.c (report_temacs_memory_usage): Improve the report by
5730 reporting the large blocks that are actually occupied at dump time.
5731
5732 * w32console.c (initialize_w32_display): Set the console
5733 menu_show_hook, otherwise TTY menus are broken on w32.
5734
5735 2014-06-04 Dmitry Antipov <dmantipov@yandex.ru>
5736
5737 Use terminal-specific hooks to display menus.
5738 * termhooks.h (struct terminal): New field menu_show_hook.
5739 * menu.h (<anonymous enum>): Bit flags for menu hooks.
5740 (x_menu_show, w32_menu_show, ns_menu_show, tty_menu_show):
5741 Adjust prototypes.
5742 * menu.c (Fx_popup_menu): Use bit flags and menu_show_hook.
5743 * nsmenu.m (ns_menu_show):
5744 * w32menu.c (w32_menu_show):
5745 * xmenu.c (x_menu_show):
5746 * term.c (tty_menu_show): Adjust to use bit flags.
5747 (set_tty_hooks): Set menu_show_hook.
5748 * xterm.c (x_create_terminal):
5749 * nsterm.m (ns_create_terminal):
5750 * msdos.c (initialize_msdos_display):
5751 * w32term.c (w32_create_terminal): Likewise.
5752
5753 2014-06-03 Juanma Barranquero <lekktu@gmail.com>
5754
5755 * w32heap.c (DUMPED_HEAP_SIZE) [!_WIN64]: Reduce to 11 MB.
5756
5757 2014-06-03 Eli Zaretskii <eliz@gnu.org>
5758
5759 * sysselect.h (fd_CLR, fd_ISSET, fd_SET, FD_CLR, FD_ISSET)
5760 (FD_SET): Don't define on WINDOWSNT.
5761
5762 2014-06-03 Paul Eggert <eggert@cs.ucla.edu>
5763
5764 * emacs.c: Include "sysselect.h", to define its inline functions.
5765 Reported by Glenn Morris in:
5766 http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00077.html
5767
5768 Do not require libXt-devel when building with gtk.
5769 * gtkutil.h, menu.h: Include lwlib-widget.h, not lwlib-h, to avoid
5770 dependency on libXt-devel.
5771 * menu.h [HAVE_NTGUI]: Include lwlib-widget.h in this case too.
5772 (enum button_type, widget_value) [HAVE_NTGUI]: Remove, as
5773 lwlib-widget.h now does this.
5774 * nsmenu.m (ns_menu_show): "enabled" -> "enable" to fix typo.
5775
5776 2014-06-03 Paul Eggert <eggert@penguin.cs.ucla.edu>
5777
5778 If ENABLE_CHECKING, range-check args of FD_CLR, FD_ISSET, FD_SET.
5779 * process.c (add_read_fd, delete_read_fd, add_write_fd)
5780 (delete_write_fd, wait_reading_process_output):
5781 Remove now-redundant easserts.
5782 * sysselect.h (SYSSELECT_H): New macro, to avoid double-inclusion woes.
5783 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
5784 (fd_CLR, fd_ISSET, fd_SET): New inline functions.
5785 (FD_CLR, FD_ISSET, FD_SET): Redefine in terms of these functions.
5786
5787 2014-06-03 Eli Zaretskii <eliz@gnu.org>
5788
5789 * w32heap.c (DUMPED_HEAP_SIZE): Move from w32heap.h. Don't use
5790 HEAPSIZE; instead, define separate values for the 32- and 64-bit builds.
5791 (calloc): Don't undef, it is never defined.
5792 (HEAP_ENTRY_SHIFT): Remove unused macro.
5793
5794 * Makefile.in (C_HEAP_SWITCH): Remove.
5795 (ALL_CFLAGS): Don't use $(C_HEAP_SWITCH).
5796
5797 Fix MS-Windows build broken by menu changes on 2014-06-02.
5798 * w32menu.c (w32_menu_show): Fix a typo that broke compilation.
5799
5800 * menu.h (enum button_type, struct _widget_value) [HAVE_NTGUI]:
5801 Define instead of including ../lwlib/lwlib.h, which causes
5802 compilation errors due to missing X11 headers.
5803
5804 2014-06-03 Paul Eggert <eggert@cs.ucla.edu>
5805
5806 * process.c (wait_reading_process_output): Omit incorrect test of
5807 p->infd against zero. Add easserts for infd having a plausible value.
5808
5809 2014-06-02 Dmitry Antipov <dmantipov@yandex.ru>
5810
5811 Adjust to match recent lwlib changes.
5812 * menu.h (xmalloc_widget_value): Replace by ...
5813 (make_widget_value): ... new prototype.
5814 * menu.c (xmalloc_widget_value): Replace by ...
5815 (make_widget_value): ... new function.
5816 (free_menubar_widget_value_tree, digest_single_submenu): Adjust users.
5817 * gtkutil.c (malloc_widget_value, free_widget_value):
5818 (widget_value_free_list, malloc_cpt): Remove old lwlib-compatible code.
5819 * keyboard.h (enum button_type, struct _widget_value):
5820 * gtkutil.h, nsgui.h, w32gui.h (malloc_widget_value, free_widget_value):
5821 Likewise.
5822 * nsmenu.m (ns_update_menubar, ns_menu_show):
5823 * w32menu.c (set_frame_menubar, w32_menu_show, w32_dialog_show):
5824 * xmenu.c (set_frame_menubar, xmenu_show, x_dialog_show): Adjust users.
5825 * xterm.h (XtParent) [USE_GTK]: Remove unused macro.
5826
5827 2014-06-02 Dmitry Antipov <dmantipov@yandex.ru>
5828
5829 * image.c (x_query_frame_background_color)
5830 [HAVE_PNG || HAVE_NS || HAVE_IMAGEMAGICK || HAVE_RSVG]:
5831 Fix --enable-gcc-warnings compilation without image libraries.
5832
5833 2014-06-02 Eli Zaretskii <eliz@gnu.org>
5834
5835 * w32heap.c (malloc_after_dump, realloc_after_dump): Update the
5836 emulated break value only if it goes up.
5837 (sbrk): Add assertion that the INCREMENT argument is strictly
5838 zero. Improve and correct the commentary.
5839
5840 2014-06-02 Paul Eggert <eggert@cs.ucla.edu>
5841
5842 Improve AIX-related merge from emacs-24.
5843 * conf_post.h (FLEXIBLE_ARRAY_MEMBER): Fix comment.
5844 * lisp.h (ENUMABLE) [!_AIX]: Don't define to 0 merely because we're
5845 not on AIX; since we're on the trunk we can use enums more broadly.
5846
5847 * frame.c (x_set_frame_parameters): Don't read uninitialized storage.
5848
5849 2014-06-02 Jan Djärv <jan.h.d@swipnet.se>
5850
5851 * xterm.c (xg_scroll_callback): Remove position, for jump set portion
5852 to min(value, whole).
5853
5854 2014-06-02 Paul Eggert <eggert@cs.ucla.edu>
5855
5856 Bring back the changes to GDB-visible symbols, but only on AIX.
5857 And only if it's not pre-4.2 GCC.
5858 * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): New macros.
5859 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
5860 (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
5861 New macros.
5862
5863 2014-06-02 Eli Zaretskii <eliz@gnu.org>
5864
5865 * fileio.c (Finsert_file_contents): Call prepare_to_modify_buffer
5866 with PT, not GPT. (Bug#16433)
5867
5868 Revert last changes to GDB-visible symbols.
5869 * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): Delete macros.
5870 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Don't use them.
5871 (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
5872 Delete macros.
5873
5874 2014-06-02 Glenn Morris <rgm@gnu.org>
5875
5876 * cmds.c (Fself_insert_command): Allow zero repeat count. (Bug#17649)
5877
5878 2014-06-02 Paul Eggert <eggert@cs.ucla.edu>
5879
5880 Fix port to 32-bit AIX with xlc (Bug#17598).
5881 * alloc.c (gdb_make_enums_visible): Remove FLOAT_TO_STRING_BUFSIZE.
5882 * conf_post.h (FLEXIBLE_ARRAY_MEMBER) [__IBMC__]: Don't define to empty.
5883 * lisp.h (FLOAT_TO_STRING_BUFSIZE): Make it a macro, instead of an enum,
5884 to work around a compiler bug in IBM xlc 12.1.
5885
5886 2014-06-02 Eli Zaretskii <eliz@gnu.org>
5887
5888 * xterm.c (x_update_window_end): Don't invalidate the entire
5889 mouse-highlight info, just signal frame_up_to_date_hook that mouse
5890 highlight needs to be redisplayed. (Bug#17588)
5891
5892 2014-06-02 Paul Eggert <eggert@cs.ucla.edu>
5893
5894 Port the GDB-visible symbols to AIX.
5895 Without them, GDB doesn't work to debug Emacs, since the AIX linker
5896 optimizes away the relevant external symbols. Use enums instead;
5897 this suffices for the AIX port, which is 32-bit-only anyway.
5898 * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): New macros.
5899 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
5900 (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
5901 New macros.
5902
5903 Include sources used to create macuvs.h.
5904 * Makefile.in ($(srcdir)/macuvs.h): New rule.
5905 * macuvs.h: Use automatically-generated header.
5906
5907 2014-06-01 Paul Eggert <eggert@cs.ucla.edu>
5908
5909 Port signal-handling to DragonFly BSD (Bug#17646).
5910 * callproc.c, sysdep.c (block_child_signal, unblock_child_signal):
5911 Move implementations from callproc.c to sysdep.c.
5912 * process.h, syssignal.h (block_child_signal, unblock_child_signal):
5913 Move declarations from process.h to syssignal.h.
5914
5915 2014-06-01 Juanma Barranquero <lekktu@gmail.com>
5916
5917 * callint.c (Ffuncall_interactively): Add usage.
5918
5919 2014-06-01 Jan Djärv <jan.h.d@swipnet.se>
5920
5921 * nsfns.m (ns_appkit_version_str): Add os version for Cocoa.
5922
5923 2014-05-30 Eli Zaretskii <eliz@gnu.org>
5924
5925 * w32heap.c (malloc_before_dump, malloc_after_dump)
5926 (malloc_before_dump, realloc_after_dump, realloc_before_dump)
5927 (mmap_alloc, mmap_realloc): Check for errors more thoroughly and
5928 set errno where appropriate to emulate CRT functions.
5929
5930 2014-05-30 Dmitry Antipov <dmantipov@yandex.ru>
5931
5932 Debugging facility to check whether 'const char *' points to
5933 relocatable data of non-pure Lisp string.
5934 * alloc.c (maybe_lisp_pointer): New function, refactored out of ...
5935 (mark_maybe_pointer): ... adjusted user.
5936 (relocatable_string_data_p): New function.
5937 * lisp.h (relocatable_string_data_p): Add prototype.
5938 * xdisp.c (message_with_string): If ENABLE_CHECKING, make sure
5939 the pointer to relocatable Lisp data is not used.
5940
5941 2014-05-30 Paul Eggert <eggert@cs.ucla.edu>
5942
5943 Don't let SIGINT handling block SIGCHLD indefinitely (Bug#17561).
5944 * atimer.c (block_atimers):
5945 * callproc.c (block_child_signal): Block SIGINT too;
5946 otherwise, its handler might now unblock signals that it shouldn't.
5947 * keyboard.c (read_char): Clear signal mask, since we may
5948 be in a SIGINT handler, and many signals may be masked.
5949 * keyboard.c (handle_interrupt):
5950 * sysdep.c (handle_arith_signal):
5951 Clear signal mask instead of just unblocking the signal that
5952 was received, since several signals may be blocked at this point.
5953
5954 2014-05-29 Eli Zaretskii <eliz@gnu.org>
5955
5956 * Makefile.in (TEMACS_POST_LINK): Remove target.
5957 (emacs$(EXEEXT)): Remove $(ADDSECTION) from prerequisites.
5958 (temacs$(EXEEXT)): Remove $(TEMACS_POST_LINK) from the recipe.
5959
5960 2014-05-29 Dmitry Antipov <dmantipov@yandex.ru>
5961
5962 * xmenu.c (xdialog_show): Remove prototype, rename to
5963 x_dialog_show, remove 2nd arg because it's always zero
5964 and simplify accordingly.
5965 (xw_popup_dialog): Adjust user.
5966 * w32menu.c (w32_dialog_show): Adjust prototype, remove
5967 2nd arg because it's always zero and simplify accordingly.
5968 (w32_popup_dialog): Adjust user.
5969
5970 2014-05-29 Eli Zaretskii <eliz@gnu.org>
5971
5972 * w32heap.c (report_temacs_memory_usage): New function.
5973
5974 * unexw32.c (unexec) [ENABLE_CHECKING]:
5975 Call report_temacs_memory_usage.
5976
5977 * w32heap.h (report_temacs_memory_usage): Add prototype.
5978
5979 2014-05-29 Paul Eggert <eggert@cs.ucla.edu>
5980
5981 Don't substitute sigprocmask for pthread_sigmask (Bug#17561).
5982 * Makefile.in (LIB_PTHREAD_SIGMASK): Remove; all uses removed.
5983
5984 2014-05-29 Eli Zaretskii <eliz@gnu.org>
5985
5986 * buffer.c (init_buffer): Accept an argument 'initialized'.
5987 [USE_MMAP_FOR_BUFFERS]: If 'initialized' is non-zero, reset
5988 mmap_regions and mmap_fd, to avoid referencing stale data from the
5989 dump phase. Add an assertion for buffer text of buffers created
5990 in temacs before this function is called. (Bug#17622)
5991 (mmap_regions_1, mmap_fd_1): Remove unused variables.
5992
5993 * lisp.h (init_buffer): Update prototype.
5994
5995 * emacs.c (main): Pass 'initialized' as the argument to init_buffer.
5996
5997 2014-05-29 Dmitry Antipov <dmantipov@yandex.ru>
5998
5999 * alloc.c (Fgarbage_collect): Fix compilation with
6000 GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE.
6001
6002 2014-05-29 Paul Eggert <eggert@cs.ucla.edu>
6003
6004 * frame.c, frame.h (frame_char_to_pixel_position)
6005 (frame_set_mouse_position): Now static, and made private in
6006 frame.c rather than public in frame.h.
6007
6008 2014-05-28 Dmitry Antipov <dmantipov@yandex.ru>
6009
6010 Refactor mouse positioning stuff to avoid code duplication.
6011 * frame.h (frame_char_to_pixel_position): New function.
6012 (x_set_mouse_position): Rename to...
6013 (frame_set_mouse_position): ...new function.
6014 (frame_set_mouse_pixel_position): Add prototype.
6015 * nsterm.m, w32term.c, xterm.c (x_set_mouse_pixel_position):
6016 Rename to frame_set_mouse_pixel_position.
6017 * frame.c (Fset_mouse_pixel_position, Fset_mouse_position):
6018 Adjust users.
6019 * xterm.h, w32term.h ( x_set_mouse_position)
6020 (x_set_mouse_pixel_position): Remove prototypes.
6021
6022 2014-05-28 Dmitry Antipov <dmantipov@yandex.ru>
6023
6024 On X, always make pointer visible when deleting frame (Bug#17609).
6025 * frame.c (frame_make_pointer_visible, frame_make_pointer_invisible):
6026 Pass frame as arg.
6027 * frame.h (frame_make_pointer_visible, frame_make_pointer_invisible):
6028 Adjust prototypes.
6029 * cmds.c (Fself_insert_command): Use SELECTED_FRAME.
6030 * keyboard.c (gobble_input): If there is no terminal input error,
6031 make sure the pointer is visible for all frames on this terminal.
6032 * xterm.c (x_free_frame_resources): Enable pointer visibility if
6033 it was previously disabled.
6034
6035 2014-05-28 Stefan Monnier <monnier@iro.umontreal.ca>
6036
6037 * data.c (Fzerop): Move to Elisp.
6038 (syms_of_data): Don't defsubr it.
6039 * keyboard.c (echo_keystrokes_p): New function.
6040 (read_char, record_menu_key, read_key_sequence): Use it.
6041
6042 * callint.c (Qfuncall_interactively): New var.
6043 (Qcall_interactively): Remove.
6044 (Ffuncall_interactively): New function.
6045 (Fcall_interactively): Use it.
6046 (syms_of_callint): Defsubr it.
6047
6048 2014-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
6049
6050 * bytecode.c (FETCH) [BYTE_CODE_SAFE]: Check the bytecode wasn't
6051 relocated from under us.
6052
6053 2014-05-27 Fabrice Popineau <fabrice.popineau@gmail.com>
6054
6055 Use mmap(2) emulation for allocating buffer text on MS-Windows.
6056 * Makefile.in (C_HEAP_SWITCH): Get the predefined heap size from
6057 configure, not from HEAPSIZE.
6058 (ADDSECTION, MINGW_TEMACS_POST_LINK): Remove, no longer used.
6059
6060 * lisp.h (NONPOINTER_BITS): Modify the condition to define to zero
6061 for MinGW, since it no longer uses gmalloc.
6062
6063 * buffer.c: Do not define mmap allocations functions for Windows.
6064 Remove mmap_find which is unused. Remove mmap_set_vars which does
6065 nothing useful.
6066 [WINDOWSNT]: Include w32heap.h.
6067 (init_buffer): Always allocate new memory for buffers.
6068
6069 * emacs.c: Remove mmap_set_vars calls.
6070
6071 * image.c (free_image): Undef free for Windows because it is
6072 redirected to our private version.
6073
6074 * unexw32.c (COPY_PROC_CHUNK): Use %p format for 64bits compatibility.
6075 (copy_executable_and_dump_data): Remove dumping the heap section.
6076 (unexec): Restore using_dynamic_heap after dumping.
6077
6078 * w32heap.c (dumped_data_commit, malloc_after_dump)
6079 (malloc_before_dump, realloc_after_dump, realloc_before_dump)
6080 (free_after_dump, free_before_dump, mmap_alloc, mmap_realloc)
6081 (mmap_free): New functions.
6082
6083 * w32heap.h: Declare dumped_data and mmap_* function prototypes.
6084
6085 2014-05-27 Paul Eggert <eggert@cs.ucla.edu>
6086
6087 * image.c (imagemagick_load_image): Use MagickRealType for local
6088 'color_scale', instead of double, to avoid a GCC warning about
6089 double promotion.
6090
6091 * xfns.c (Fx_window_property): Remove unused local.
6092
6093 Don't kill already-reaped process (Bug#17561).
6094 * process.c (process_send_signal): Fix race condition where a
6095 subprocess was reaped by a signal handler between the check for
6096 liveness and calling 'kill', which meant that Emacs could in
6097 theory kill an innocent bystander process. Do the fix by blocking
6098 SIGCHLD in a critical section that checks liveness before killing.
6099
6100 2014-05-26 Eli Zaretskii <eliz@gnu.org>
6101
6102 * w32.c (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT): Define only if undefined.
6103
6104 2014-05-26 Ken Brown <kbrown@cornell.edu>
6105
6106 * w32term.c (x_delete_display): Don't free dpyinfo->w32_id_name,
6107 even if !CYGWIN (see bug#17510).
6108
6109 2014-05-26 Jan Djärv <jan.h.d@swipnet.se>
6110
6111 * nsfns.m (Fns_do_applescript): Surround NSApp run
6112 with calls to ns_init_events, ns_finish_events (Bug#17424).
6113
6114 * nsterm.h (ns_init_events, ns_finish_events): Declare.
6115
6116 * nsterm.m (ns_init_events, ns_finish_events): New functions.
6117 (ns_read_socket, ns_select): Call ns_init_events, ns_finish_events.
6118
6119 * nsfns.m (ns_do_applescript): Surround executeAndReturnError
6120 with calls to ns_init_events, ns_finish_events (Bug#17424).
6121
6122 2014-05-26 Eli Zaretskii <eliz@gnu.org>
6123
6124 * xdisp.c (move_it_in_display_line_to): Don't record wrap position
6125 if we are iterating over an object that generates glyphs for
6126 marginal areas. (Bug#17585)
6127
6128 2014-05-26 Paul Eggert <eggert@cs.ucla.edu>
6129
6130 * xdisp.c (safe__call1, safe__eval): Now static.
6131
6132 2014-05-26 Eli Zaretskii <eliz@gnu.org>
6133
6134 * xdisp.c (safe__call): Accept va_list argument instead of '...'.
6135 (safe_call, safe__call1): Construct a va_list argument for safe_call.
6136 (safe_call1): Call safe_call instead of safe__call directly.
6137
6138 2014-05-26 Ken Brown <kbrown@cornell.edu>
6139
6140 * w32term.c (x_delete_display) [CYGWIN]: Don't free
6141 dpyinfo->w32_id_name, to make sure it doesn't get freed more than
6142 once. (Bug#17510)
6143
6144 2014-05-26 Stefan Monnier <monnier@iro.umontreal.ca>
6145
6146 * xdisp.c: Bind inhibit-quit during pre-redisplay-function.
6147 (safe__call, safe__call1, safe__eval): New functions.
6148 (safe_call): Use it.
6149 (prepare_menu_bars): Use it for pre-redisplay-function (bug#17577).
6150 (display_mode_element): Same for `:eval'.
6151
6152 2014-05-26 Paul Eggert <eggert@cs.ucla.edu>
6153
6154 Fix port to 32-bit AIX (Bug#17540).
6155 * unexaix.c (copy_text_and_data): Don't add text_scnptr to ptr
6156 twice. _text already includes this offset.
6157 (unrelocate_symbols): Don't cast 64-bit integer to pointer.
6158
6159 2014-05-26 Eli Zaretskii <eliz@gnu.org>
6160
6161 * xdisp.c (move_it_in_display_line_to): Avoid infinite recursion:
6162 when closest_pos is identical to to_charpos, don't recurse, since
6163 we already tried that, and failed. (Bug#17539)
6164
6165 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: If we are
6166 unwinding when frame's faces were not initialized yet, increment
6167 the frame's image-cache reference count before calling
6168 x_free_frame_resources. Don't dereference
6169 dpyinfo->terminal->image_cache if it is NULL. (Bug#17524)
6170
6171 2014-05-25 Jan Djärv <jan.h.d@swipnet.se>
6172
6173 * nsfont.m (nsfont_draw): Simplify as arguments are adjusted in
6174 nsterm.m now.
6175
6176 * nsterm.m (ns_draw_glyph_string): Move isComposite and end from
6177 macfont.m, call draw with adjusted arguments so font drivers
6178 don't need to do that.
6179
6180 * macfont.m (macfont_draw): Merge changes from Macport.
6181
6182 2014-05-24 Eli Zaretskii <eliz@gnu.org>
6183
6184 * alloc.c (garbage_collect_1): New function, with all of the guts
6185 of Fgarbage_collect.
6186 (mark_stack): Accept an argument END and don't mark Lisp objects
6187 on the stack beyond the address given by END. Calculation of END
6188 was moved to Fgarbage_collect.
6189 (Fgarbage_collect): Calculate the end address of the stack portion
6190 that needs to be examined by mark_stack, and pass that address to
6191 garbage_collect_1, which will pass it to mark_stack.
6192 See http://lists.gnu.org/archive/html/emacs-devel/2014-05/msg00270.html
6193 for more details about the underlying problems. In particular,
6194 this avoids dumping Emacs with the large hash-table whose value is
6195 held in purify-flag for most of the time loadup.el runs.
6196
6197 2014-05-24 Jan Djärv <jan.h.d@swipnet.se>
6198
6199 * xfns.c (x_window_property_intern): New function (code from
6200 x_window_property).
6201 (Fx_window_property): Call x_window_property_intern. If property
6202 not found and NILP (source) and outer window != inner window,
6203 check outer window for property (Bug#17537).
6204
6205 2014-05-22 Paul Eggert <eggert@cs.ucla.edu>
6206
6207 Supply malloc and alloc_size attributes for extern allocators.
6208 This documents the C API, and helps GCC generate a bit better code.
6209 * conf_post.h (ATTRIBUTE_MALLOC, ATTRIBUTE_ALLOC_SIZE)
6210 (ATTRIBUTE_MALLOC_SIZE): New macros.
6211 * gmalloc.c (malloc, realloc, calloc):
6212 * gtkutil.h (malloc_widget_value):
6213 * lisp.h (ralloc, r_re_alloc, xmalloc, xzalloc, xrealloc, xnmalloc)
6214 (xnrealloc, xstrdup, xlispstrdup, record_xmalloc):
6215 Use them.
6216
6217 2014-05-21 Paul Eggert <eggert@cs.ucla.edu>
6218
6219 Don't assume that ImageMagick uses a 16-bit quantum (Bug#17519).
6220 * image.c (imagemagick_load_image): Port to hosts that do not use
6221 a 16-bit quantum, i.e., QuantumRange does not equal 65535.
6222
6223 2014-05-21 Leo Liu <sdl.web@gmail.com>
6224
6225 * fns.c (Fnreverse): Accept strings for SEQ and update doc-string.
6226
6227 2014-05-20 Michael Albinus <michael.albinus@gmx.de>
6228
6229 * dbusbind.c (xd_signature): Revert last 2 patches.
6230
6231 2014-05-19 Paul Eggert <eggert@cs.ucla.edu>
6232
6233 Allow any non-nil value to count as true in bool-vector.
6234 Likewise for xd_signature in dbusbind.c.
6235 This is more consistent with the usual practice in Emacs, which is
6236 that any non-nil value counts as true.
6237 * alloc.c (Fbool_vector): Don't require args to be t or nil.
6238 * dbusbind.c (xd_signature): Likewise, for booleans.
6239 * data.c, lisp.h (Qbooleanp):
6240 * lisp.h (CHECK_BOOLEAN): Remove. All uses removed.
6241
6242 2014-05-19 Dmitry Antipov <dmantipov@yandex.ru>
6243
6244 * lisp.h (CHECK_BOOLEAN): New function.
6245 * alloc.c (Fbool_vector): New function.
6246 (syms_of_alloc): Defsubr it.
6247 * data.c (Qbooleanp): New symbol.
6248 (syms_of_data): DEFSYM it.
6249 * dbusbind.c (xd_signature): Use CHECK_BOOLEAN.
6250
6251 * font.c (font_matching_entity): Extract font-entity object
6252 from the vector of matching entities (Bug#17486).
6253
6254 2014-05-17 Paul Eggert <eggert@cs.ucla.edu>
6255
6256 Assume C99 or later (Bug#17487).
6257 * bytecode.c (B__dummy__): Remove.
6258 * conf_post.h (bool_bf) [!NS_IMPL_GNUSTEP]: Use bool.
6259 (FLEXIBLE_ARRAY_MEMBER): Now always empty.
6260 * dbusbind.c (XD_DEBUG_MESSAGE) [!DBUS_DEBUG]:
6261 * regex.c (DEBUG_PRINT): Assume varargs macros.
6262 * lisp.h (DEFUN_FUNCTION_INIT): Remove. All uses now assume C99.
6263
6264 2014-05-17 Fabrice Popineau <fabrice.popineau@gmail.com>
6265
6266 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Always map new
6267 memory for every buffer that was dumped.
6268
6269 2014-05-15 Dmitry Antipov <dmantipov@yandex.ru>
6270
6271 * fns.c (Freverse): Allow vectors, bool vectors and strings.
6272 (Fnreverse): Allow vectors and bool vectors.
6273
6274 2014-05-14 Dmitry Antipov <dmantipov@yandex.ru>
6275
6276 Minor cleanup for terminal setup.
6277 * termhooks.h (create_terminal): Adjust prototype.
6278 * terminal.c (create_terminal): Pass output method and RIF as args.
6279 (init_initial_terminal):
6280 * nsterm.m (ns_create_terminal):
6281 * term.c (init_tty):
6282 * w32term.c (w32_create_terminal):
6283 * xterm.c (x_create_terminal): Adjust users.
6284 Avoid redundant NULL initializers and add comments.
6285
6286 2014-05-13 Paul Eggert <eggert@cs.ucla.edu>
6287
6288 * keyboard.c (Qdeactivate_mark): Now static.
6289
6290 2014-05-13 Dmitry Antipov <dmantipov@yandex.ru>
6291
6292 If available, use Xfixes extension to do pointer blanking.
6293 * Makefile.in (XFIXES_CFLAGS, XFIXES_LIBS): New var.
6294 * xfns.c (x_set_mouse_color): Do not call make_invisible_cursor here.
6295 (make_invisible_cursor): Move to...
6296 * xterm.c (make_invisible_cursor): ...here.
6297 (x_probe_xfixes_extension, xfixes_toggle_visible_pointer)
6298 (x_toggle_visible_pointer, x_setup_pointer_blanking): New functions.
6299 (x_term_init): Call to x_setup_pointer_blanking.
6300 (XTtoggle_invisible_pointer): Use blanking specific to this display.
6301 * xterm.h (struct x_display_info): New member toggle_visible_pointer.
6302
6303 2014-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
6304
6305 * xdisp.c (draw_glyphs): Set clipping to highlight boundaries.
6306
6307 2014-05-12 Glenn Morris <rgm@gnu.org>
6308
6309 * fileio.c (Ffile_executable_p): Doc tweak.
6310
6311 2014-05-12 Jan Djärv <jan.h.d@swipnet.se>
6312
6313 * xsettings.c (init_gsettings): Use g_settings_schema_source_lookup
6314 instead of deprecated g_settings_list_schemas if possible (Bug#17434).
6315
6316 2014-05-08 Paul Eggert <eggert@cs.ucla.edu>
6317
6318 * minibuf.c (read_minibuf): Avoid C99ism in previous patch (Bug#17430).
6319
6320 2014-05-08 Jarek Czekalski <jarekczek@poczta.onet.pl>
6321
6322 Fix initialization of minibuffer history variable (Bug#17430).
6323 * minibuf.c (read_minibuf): Initialize histval to Qnil if unbound.
6324 Move the initialization up to prevent any "value void" message.
6325
6326 2014-05-08 Samuel Bronson <naesten@gmail.com>
6327
6328 * keyboard.c (Frecursive_edit): Ensure inc&dec of command_loop_level
6329 are matched (bug#17413).
6330
6331 2014-05-08 Jarek Czekalski <jarekczek@poczta.onet.pl>
6332
6333 Stop tooltips pulling Emacs window to front (Bug#17408).
6334 * w32fns.c (Fx_show_tip): Add SWP_NOOWNERZORDER flag to
6335 SetWindowPos invocations.
6336
6337 2014-05-08 Jan Djärv <jan.h.d@swipnet.se>
6338
6339 * nsselect.m (Fx_selection_exists_p): Just return Qnil if window system
6340 not initialized (Bug#17398).
6341
6342 2014-05-07 Paul Eggert <eggert@cs.ucla.edu>
6343
6344 * image.c: Include <png.h> before <setjmp.h> (Bug#17429).
6345
6346 2014-05-06 Paul Eggert <eggert@cs.ucla.edu>
6347
6348 * image.c: Do not use libpng if HAVE_NS, as NS does its own thing.
6349 [HAVE_NS]: Do not include png.h.
6350 (x_query_frame_background_color): New function.
6351 (png_load_body, imagemagick_load_image, svg_load_image): Use it.
6352 (png_load_body): Coalesce duplicate code.
6353
6354 2014-05-04 Paul Eggert <eggert@cs.ucla.edu>
6355
6356 Consult libpng-config more consistently (Bug#17339).
6357 * Makefile.in (PNG_CFLAGS): New var.
6358 (ALL_CFLAGS): Use it.
6359 * image.c [HAVE_PNG]: Don't worry about <libpng/png.h>, as
6360 CFLAGS now handles this.
6361
6362 2014-05-03 Paul Eggert <eggert@cs.ucla.edu>
6363
6364 Handle systems without WCONTINUED consistently. (Bug#15110, 17339)
6365 * process.c (handle_child_signal): Remove WCONTINUED ifdef,
6366 because WCONTINUED is always defined now.
6367 * syswait.h (WCONTINUED): Move here from ../lib-src/emacsclient.c.
6368
6369 2014-05-03 Eli Zaretskii <eliz@gnu.org>
6370
6371 * buffer.c (overlay_strings): Fix the wording of the commentary.
6372
6373 2014-05-01 Glenn Morris <rgm@gnu.org>
6374
6375 * floatfns.c (Fisnan):
6376 * profiler.c (Fprofiler_cpu_running_p): Doc fix (replace `iff').
6377
6378 2014-05-01 Eli Zaretskii <eliz@gnu.org>
6379
6380 * term.c (tty_menu_activate): A better initialization for cursor
6381 coordinates.
6382
6383 2014-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
6384
6385 * intervals.c: Tighten assertions.
6386 (create_root_interval): Make sure the interval is not empty.
6387 (intervals_equal): Use booleans.
6388 (rotate_right, rotate_left): Check LENGTHs rather than TOTAL_LENGTH.
6389 (balance_an_interval): Sanity check LENGTHs and TOTAL_LENGTHs.
6390 (balance_possible_root_interval): Simplify and use booleans.
6391 (split_interval_right, split_interval_left): Check LENGTH, and remove
6392 now redundant assertion.
6393 (adjust_intervals_for_insertion): Remove now redundant assertions.
6394 (delete_node, interval_deletion_adjustment)
6395 (adjust_intervals_for_deletion, merge_interval_right)
6396 (merge_interval_left): Check LENGTH rather than TOTAL_LENGTH.
6397 (reproduce_interval): Make sure the interval is not empty.
6398
6399 2014-04-30 Paul Eggert <eggert@cs.ucla.edu>
6400
6401 * term.c (tty_menu_activate): Don't assume row and col are initialized.
6402 GCC 4.9.0 warned about this, and I couldn't easily prove to my own
6403 satisfaction that they would always be initialized.
6404
6405 2014-04-30 Eli Zaretskii <eliz@gnu.org>
6406
6407 * term.c (tty_menu_display): Move the cursor to the active menu item.
6408 (tty_menu_activate): Return the cursor to the active menu item
6409 after displaying the menu and after displaying help-echo.
6410 See http://lists.gnu.org/archive/html/emacs-devel/2014-04/msg00402.html
6411 for the details of why this is needed by screen readers and
6412 Braille displays.
6413
6414 2014-04-30 Glenn Morris <rgm@gnu.org>
6415
6416 * process.c (handle_child_signal):
6417 Handle systems without WCONTINUED. (Bug#15110, 17339)
6418
6419 2014-04-29 Stefan Monnier <monnier@iro.umontreal.ca>
6420
6421 * window.c (struct saved_window): Remove mark.
6422 (Fset_window_configuration, save_window_save)
6423 (compare_window_configurations): Don't touch marks any more.
6424
6425 2014-04-28 Paul Eggert <eggert@cs.ucla.edu>
6426
6427 Use bits_word for gcmarkbits.
6428 * alloc.c (struct cons_block, struct float_block): On 64-bit hosts,
6429 bits_word is typically a tad more efficient for mark bits than
6430 unsigned is, so use bits_word. All uses changed.
6431 * lisp.h (BITS_PER_INT): Remove; no longer used.
6432
6433 Avoid undefined behavior in signed left shift.
6434 This ports to GCC 4.9.0 with -fsanitize=undefined.
6435 * alloc.c (bool_vector_fill, SETMARKBIT, UNSETMARKBIT):
6436 * data.c (Fash):
6437 * regex.c (extract_number):
6438 * lisp.h (make_number, XINT):
6439 Do not shift a 1 bit left into a sign bit.
6440 * alloc.c (struct cons_block, struct float_block): Use unsigned,
6441 not int, for gcmarkbits. All uses changed.
6442
6443 2014-04-25 Eli Zaretskii <eliz@gnu.org>
6444
6445 * search.c (Fnewline_cache_check): Don't try to count newlines
6446 outside the buffer's restriction, as find_newline doesn't support that.
6447
6448 2014-04-24 Stefan Monnier <monnier@iro.umontreal.ca>
6449
6450 * window.c (Fset_window_configuration): Deactivate the mark before
6451 unsetting the mark.
6452 (set_window_buffer): Ignore window_initialized.
6453 (window_initialized): Remove.
6454 * keyboard.c (Qdeactivate_mark): Not static any more.
6455 * buffer.c (buffer_local_value): Rename from buffer_local_value_1.
6456 Update all callers.
6457
6458 2014-04-23 Paul Eggert <eggert@cs.ucla.edu>
6459
6460 * conf_post.h (ADDRESS_SANITIZER_WORKAROUND): Port to GCC 4.9.0
6461 and to clang 3.4, which have fixed the bug. This should let us
6462 run a bit faster on these platforms when address sanitization is
6463 in effect.
6464
6465 2014-04-22 Paul Eggert <eggert@cs.ucla.edu>
6466
6467 Port to GCC 4.9.0 with --enable-gcc-warnings.
6468 * image.c (struct my_jpeg_error_mgr) [lint]: Remove member fp.
6469 All uses removed.
6470 (jpeg_load_body) [lint]: Add a 'volatile' to pacify a buggy GCC in
6471 a way that also works with GCC 4.9.0.
6472
6473 * search.c (Fnewline_cache_check): Remove unused locals.
6474
6475 2014-04-22 Eli Zaretskii <eliz@gnu.org>
6476
6477 * search.c (find_newline1): New subroutine.
6478 (Fnewline_cache_check): New function.
6479 (syms_of_search): Defsubr it.
6480
6481 2014-04-22 Jarek Czekalski <jarekczek@poczta.onet.pl>
6482
6483 Fix freezing with scroll bars of GTK3 Toolkit (bug#15801).
6484 * keyboard.c (unblock_input): Add comment.
6485 * xgselect.c (xg_select): Prevent Glib main loop recursion.
6486
6487 2014-04-22 Daniel Colascione <dancol@dancol.org>
6488
6489 * lread.c (readevalloop_eager_expand_eval): New function
6490 that can recurse into toplevel forms.
6491 (readevalloop): Call it.
6492 * lisp.h: Declare Qprogn.
6493 * callint.c (Qprogn): No longer static.
6494
6495 2014-04-19 Stefan Monnier <monnier@iro.umontreal.ca>
6496
6497 * intervals.c (rotate_right, rotate_left): Fix up length computation.
6498 Also change identifiers to match the comments, and add more assertions
6499 (bug#16234).
6500
6501 2014-04-18 Paul Eggert <eggert@cs.ucla.edu>
6502
6503 * emacs.c (close_output_streams): Don't clear and restore errno.
6504
6505 2014-04-18 Jan Djärv <jan.h.d@swipnet.se>
6506
6507 * xterm.c (x_make_frame_visible): Prevent endless loop when frame
6508 never becomes visible, i.e. using XMonad (Bug#17237).
6509
6510 2014-04-18 Eli Zaretskii <eliz@gnu.org>
6511
6512 * xdisp.c (insert_left_trunc_glyphs): Ensure the left truncation
6513 glyph is written to TEXT_AREA of the temporary glyph_row. (Bug#17288)
6514 (Fline_pixel_height): Don't assume that the current buffer and the
6515 selected window's buffer are one and the same. (Bug#17281)
6516
6517 * insdel.c (invalidate_buffer_caches): Invalidate the bidi
6518 paragraph-start cache before the newline cache. (Bug#17269)
6519
6520 2014-04-17 Paul Eggert <eggert@cs.ucla.edu>
6521
6522 * term.c (tty_send_additional_strings): No need to fflush here,
6523 as callers fflush.
6524 (tty_set_terminal_modes): fflush after sending additional strings,
6525 not before.
6526
6527 2014-04-17 Daniel Colascione <dancol@dancol.org>
6528
6529 * term.c (Qtty_mode_set_strings, Qtty_mode_reset_strings):
6530 New symbols.
6531 (tty_send_additional_strings): New function.
6532 (tty_set_terminal_modes, tty_reset_terminal_modes): Use it.
6533 (syms_of_term): Intern tty-mode-set-strings and
6534 tty-mode-reset-strings.
6535
6536 2014-04-16 Stefan Monnier <monnier@iro.umontreal.ca>
6537
6538 * window.c (save_window_save): Lookup window_point_insertion_type in
6539 the right buffer (bug#15457).
6540 (Qwindow_point_insertion_type): New var.
6541 (syms_of_window): Initialize it.
6542
6543 2014-04-16 Eli Zaretskii <eliz@gnu.org>
6544
6545 Fix the MSDOS build.
6546 * unexcoff.c [MSDOS]: Include libc/atexit.h.
6547 (copy_text_and_data): Zero out the atexit chain pointer before
6548 dumping Emacs.
6549
6550 * termhooks.h (encode_terminal_code): Update prototype.
6551
6552 * term.c (encode_terminal_code) [DOS_NT]: Make it externally
6553 visible for all DOS_NT ports, not just WINDOWSNT.
6554 (syms_of_term) [!MSDOS]: Don't define 'tty-menu-*' symbols on MSDOS.
6555
6556 * sysdep.c (emacs_sigaction_init, init_signals): Don't use SIGCHLD
6557 unless it is defined.
6558 (emacs_pipe) [MSDOS]: Redirect to 'pipe'.
6559
6560 * process.c (close_on_exec, accept4, process_socket): Move into
6561 the "ifdef subprocesses" part.
6562 (catch_child_signal): Condition by "ifdef subprocesses".
6563 (syms_of_process) <Qinternal_default_process_sentinel>
6564 <Qinternal_default_process_filter>: Condition by "ifdef subprocesses".
6565
6566 * msdos.h: Add prototypes for new functions.
6567 (EINPROGRESS): Define.
6568 (O_CLOEXEC): Define to zero.
6569
6570 * msdos.c (check_window_system): Remove unnecessary an
6571 incompatible duplicate function.
6572 (sys_opendir, readlinkat, faccessat, fstatat, unsetenv):
6573 New functions in support of new functionality.
6574
6575 * menu.c (single_menu_item): Add visual indication of submenu
6576 also for menus on MSDOS frames.
6577 (Fx_popup_menu) [!MSDOS]: Do not call tty_menu_show on MSDOS.
6578
6579 * lisp.h (CHECK_PROCESS) [!subprocesses]: Do not define
6580 when async subprocesses aren't supported.
6581
6582 * font.h (FONT_WIDTH) [MSDOS]: MSDOS-specific definition.
6583
6584 * emacs.c (close_output_streams): Zero out errno before calling
6585 close_stream.
6586
6587 * dired.c [MSDOS]: Include msdos.h.
6588
6589 * conf_post.h (opendir) [MSDOS]: Redirect to sys_opendir.
6590 (DATA_START) [MSDOS]: Define.
6591 (SYSTEM_PURESIZE_EXTRA) [MSDOS]: Enlarge by 25K.
6592
6593 * callproc.c (block_child_signal, unblock_child_signal) [MSDOS]:
6594 Ifdef away for MSDOS.
6595 (record_kill_process) [MSDOS]: Ifdef away the entire body for MSDOS.
6596 (call_process_cleanup) [MSDOS]: Ifdef away portions not relevant
6597 for MSDOS.
6598 (call_process) [MSDOS]: Fix call sequence of dostounix_filename.
6599 Use temporary file template that is compatible with mkostemp.
6600 Move vfork-related portions under #ifndef MSDOS.
6601 (syms_of_callproc): Unify templates of MSDOS and WINDOWSNT.
6602
6603 2014-04-16 Stefan Monnier <monnier@iro.umontreal.ca>
6604
6605 * buffer.c (Foverlays_at): Add argument `sorted'.
6606
6607 2014-04-16 Eli Zaretskii <eliz@gnu.org>
6608
6609 * insdel.c (invalidate_buffer_caches): When deleting or replacing
6610 text, invalidate the bidi_paragraph_cache upto and including the
6611 preceding newline.
6612
6613 2014-04-16 Paul Eggert <eggert@cs.ucla.edu>
6614
6615 Port to IRIX 6.5 (Bug#9684).
6616 * conf_post.h (INET6) [IRIX6_5]: Define.
6617 (HAVE_GETADDRINFO) [IRIX6_5]: Undef.
6618 * data.c (BITS_PER_ULL): Don't assume ULLONG_MAX is defined.
6619
6620 2014-04-16 Eli Zaretskii <eliz@gnu.org>
6621
6622 * keyboard.c (Fopen_dribble_file): Encode the dribble file-name
6623 before passing it to system APIs.
6624
6625 2014-04-16 Stefan Monnier <monnier@iro.umontreal.ca>
6626
6627 * bytecode.c (exec_byte_code): Rework the volatiles. Most importantly,
6628 make sure stack.byte_string_start is not de-adjusted by pushhandler.
6629
6630 2014-04-16 Paul Eggert <eggert@cs.ucla.edu>
6631
6632 * keyboard.c (Fopen_dribble_file): Avoid some races. (Bug#17187)
6633
6634 2014-04-15 Paul Eggert <eggert@cs.ucla.edu>
6635
6636 Remove DATA_SEG_BITS.
6637 The DATA_SEG_BITS hack was needed for older 32 bit platforms.
6638 As a result of this change, Emacs won't work on IRIX 6.5 with IRIX
6639 cc, but that platform is so old that SGI itself stopped supporting
6640 it in December 2013. If you still need Emacs on IRIX, please
6641 either compile with GCC and port the undumping code, or run
6642 './configure --with-wide-int'.
6643 * alloc.c (gdb_make_enums_visible): Update to match lisp.h.
6644 * lisp.h (GCTYPEBITS): Move definition up, and switch to the
6645 DEFINE_GDB_SYMBOL_START way to define it.
6646 (NONPOINTER_BITS): New macro.
6647 (EMACS_INT): Use it.
6648 [!USE_LSB_TAG && !WIDE_EMACS_INT]: Fail, and suggest reporting
6649 the problem and/or configuring --with-wide-int.
6650 (USE_LSB_TAG): Simplify, based on above changes.
6651 (gdb_DATA_SEG_BITS): Remove. All uses removed.
6652 * vm-limit.c (exceeds_lisp_ptr): Remove. All uses removed.
6653
6654 2014-04-12 Eli Zaretskii <eliz@gnu.org>
6655
6656 * xdisp.c (move_it_by_lines): If a large portion of buffer text is
6657 covered by a display string that ends in a newline, and that cases
6658 going back by DVPOS lines to hit the search limit, lift the limit
6659 and go back until DVPOS is reached. (Bug#17244)
6660
6661 * indent.c (Fvertical_motion): Handle correctly the case when the
6662 display string is preceded by an empty line.
6663
6664 * w32.c (sys_umask) <WRITE_USER>: Remove redundant constant, and
6665 use S_IWRITE instead.
6666
6667 2014-04-11 Glenn Morris <rgm@gnu.org>
6668
6669 * keyboard.c (Fopen_dribble_file): Make file private. (Bug#17187)
6670
6671 2014-04-11 Ken Brown <kbrown@cornell.edu>
6672
6673 * Makefile.in (EMACS_MANIFEST): Revert last change.
6674
6675 2014-04-10 Daniel Colascione <dancol@dancol.org>
6676
6677 * puresize.h (BASE_PURESIZE): Increase.
6678
6679 2014-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
6680
6681 * keyboard.c (syms_of_keyboard): Make deactivate-mark buffer-local.
6682
6683 * insdel.c (prepare_to_modify_buffer_1): Cancel lock-file checks and
6684 region handling (and don't call signal_before_change) if
6685 inhibit_modification_hooks is set.
6686 (signal_before_change): Don't check inhibit_modification_hooks any more.
6687
6688 2014-04-08 Daniel Colascione <dancol@dancol.org>
6689
6690 * alloc.c (sweep_symbols, mark_object): Assert that symbol
6691 function cells contain valid lisp objects. (Modified version of
6692 patch from Dmitry).
6693
6694 * alloc.c (detect_suspicious_free): Split actual stack capturing
6695 out into new function for easier breakpoint setting.
6696 (note_suspicious_free): New function.
6697
6698 2014-04-07 Stefan Monnier <monnier@iro.umontreal.ca>
6699
6700 * lisp.h (struct Lisp_Symbol): New bitfield `pinned'.
6701
6702 * alloc.c: Keep track of symbols referenced from pure space (bug#17168).
6703 (symbol_block_pinned): New var.
6704 (Fmake_symbol): Initialize `pinned'.
6705 (purecopy): New function, extracted from Fpurecopy. Mark symbols as
6706 pinned and signal an error for un-purifiable objects.
6707 (pure_cons): Use it.
6708 (Fpurecopy): Use it, except for objects that can't be purified.
6709 (mark_pinned_symbols): New function.
6710 (Fgarbage_collect): Use it.
6711 (gc_sweep): Remove hack made unnecessary.
6712
6713 2014-04-07 Glenn Morris <rgm@gnu.org>
6714
6715 * keyboard.c (Fopen_dribble_file): Doc tweak.
6716
6717 2014-04-07 Ken Brown <kbrown@cornell.edu>
6718
6719 * Makefile.in (EMACS_MANIFEST): Update comment. (Bug#17176)
6720
6721 2014-04-07 Paul Eggert <eggert@cs.ucla.edu>
6722
6723 * alloc.c: Simplify by removing use of HAVE_EXECINFO_H.
6724 We have a substitute execinfo.h on hosts that lack it.
6725 (suspicious_free_history): Make it EXTERNALLY_VISIBLE so it
6726 isn't optimized away.
6727
6728 2014-04-05 Paul Eggert <eggert@cs.ucla.edu>
6729
6730 Prefer 'ARRAYELTS (x)' to 'sizeof x / sizeof *x'.
6731 * alloc.c (memory_full):
6732 * charset.c (syms_of_charset):
6733 * doc.c (Fsnarf_documentation):
6734 * emacs.c (main):
6735 * font.c (BUILD_STYLE_TABLE):
6736 * keyboard.c (make_lispy_event):
6737 * profiler.c (setup_cpu_timer):
6738 * xgselect.c (xg_select):
6739 * xterm.c (record_event, STORE_KEYSYM_FOR_DEBUG):
6740 Use ARRAYELTS.
6741 * font.c (FONT_PROPERTY_TABLE_SIZE): Remove.
6742 Replace the only use with ARRAYELTS (font_property_table).
6743 * xfaces.c (DIM): Remove. All uses replaced by ARRAYELTS.
6744
6745 2014-04-03 Daniel Colascione <dancol@dancol.org>
6746
6747 * xterm.c (x_term_init):
6748 * xfns.c (best_xim_style):
6749 * xfaces.c (Fdump_colors):
6750 * w32fns.c (w32_default_color_map):
6751 * w32.c (init_environment, N_ENV_VARS):
6752 * unexcw.c (read_exe_header):
6753 * term.c (term_get_fkeys_1):
6754 * sysdep.c (init_baud_rate):
6755 * nsterm.m (ns_convert_key):
6756 * nsfns.m (get_geometry_from_preferences):
6757 * msdos.c (dos_set_window_size, init_environment):
6758 * macfont.m (mac_font_get_glyph_for_cid)
6759 (macfont_store_descriptor_attributes)
6760 (macfont_create_attributes_with_spec, mac_ctfont_get_glyph_for_cid):
6761 * keyboard.c (command_loop_1, read_menu_command, make_lispy_event)
6762 (NUM_MOD_NAMES, read_key_sequence_vs, Fcurrent_input_mode)
6763 (syms_of_keyboard):
6764 * image.c (xpm_str_to_color_key):
6765 * fringe.c (MAX_STANDARD_FRINGE_BITMAPS):
6766 * frame.c (x_set_frame_parameters):
6767 * fileio.c (Ffile_selinux_context):
6768 * emacs.c (sort_args):
6769 * dosfns.c (msdos_stdcolor_name):
6770 * dired.c (file_attributes):
6771 * chartab.c (uniprop_decoder_count, uniprop_encode_count):
6772 Change expressions of the form sizeof(arr) / sizeof(arr[0])
6773 to ARRAYELTS (arr).
6774
6775 2014-04-02 Daniel Colascione <dancol@dancol.org>
6776
6777 * data.c (Ffset): Abort if we're trying to set a function call to
6778 a dead lisp object.
6779
6780 * lisp.h (ARRAYELTS): New macro.
6781
6782 * alloc.c: Include execinfo.h if available.
6783 (SUSPICIOUS_OBJECT_CHECKING): New macro; define unconditionally.
6784 (suspicious_free_record): New structure.
6785 (suspicious_objects, suspicious_object_index)
6786 (suspicious_free_history, suspicious_free_history_index):
6787 New variables.
6788 (find_suspicious_object_in_range, detect_suspicious_free)
6789 (Fsuspicious_object): New functions.
6790 (cleanup_vector): Call find_suspicious_object_in_range.
6791
6792 2014-04-02 Martin Rudalics <rudalics@gmx.at>
6793
6794 * xterm.c (x_new_font): Don't calculate non-toolkit scrollbar
6795 width from font width (Bug#17163).
6796
6797 * frame.c (x_set_frame_parameters): Calculate default values of
6798 new frame sizes only after all other frame parameters have been
6799 processed (Bug#17142).
6800
6801 2014-04-02 Ken Brown <kbrown@cornell.edu>
6802
6803 * conf_post.h (SYSTEM_PURESIZE_EXTRA) [CYGWIN]: Set to 10000.
6804 (Bug#17112)
6805
6806 2014-04-02 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
6807
6808 * xterm.c (x_draw_image_glyph_string): Adjust image background
6809 width accordingly when its x position is adjusted. (Bug#17115)
6810
6811 2014-04-02 Dmitry Antipov <dmantipov@yandex.ru>
6812
6813 * font.c (font_list_entities): Do not add empty vector to font cache.
6814 (font_matching_entity): Likewise. If matching entity is found, insert
6815 1-item vector with this entity instead of entity itself (Bug#17125).
6816
6817 * xterm.c (x_term_init) [USE_LUCID]: Fix minor memory leak.
6818
6819 2014-04-01 Paul Eggert <eggert@cs.ucla.edu>
6820
6821 * fns.c (validate_subarray): Rename from validate_substring,
6822 since it works for vectors too. New arg ARRAY. Optimize for the
6823 non-nil case. Instead of returning bool, throw an error if out of
6824 range, so that the caller needn't do that. All uses changed.
6825 Report original values if out of range.
6826 (Fsubstring, Fsubstring_no_properties, secure_hash):
6827 Also optimize the case where FROM is 0 or TO is the size.
6828
6829 2014-03-31 Dmitry Antipov <dmantipov@yandex.ru>
6830
6831 * search.c (Freplace_match): Use make_specified_string.
6832 * xterm.c, w32term.c (x_set_glyph_string_gc): Use emacs_abort
6833 to catch bogus override face of glyph strings.
6834 * fns.c (Fsubstring, Fsubstring_no_properties, secure_hash):
6835 Move common substring range checking code to...
6836 (validate_substring): ...this function.
6837
6838 2014-03-31 Jan Djärv <jan.h.d@swipnet.se>
6839
6840 * nsmenu.m (free_frame_tool_bar): Set wait_for_tool_bar = NO (Bug#16976)
6841
6842 2014-03-30 Jan Djärv <jan.h.d@swipnet.se>
6843
6844 * nsterm.m (updateFrameSize:): If waiting for the tool bar and tool
6845 bar is zero height, just return (Bug#16976).
6846 (initFrameFromEmacs:): Initialize wait_for_tool_bar.
6847
6848 * nsterm.h (EmacsView): Add wait_for_tool_bar.
6849
6850 * nsmenu.m (update_frame_tool_bar): Return early if view or toolbar
6851 is nil. If waiting for toolbar to complete, force a redraw.
6852
6853 2014-03-28 Glenn Morris <rgm@gnu.org>
6854
6855 * emacs.c (emacs_version): Use PACKAGE_VERSION rather than VERSION.
6856 (emacs_bugreport): New variable.
6857 (usage_message): Use PACKAGE_BUGREPORT.
6858 (syms_of_emacs) <report-emacs-bug-address>: New variable.
6859
6860 * emacs.c (syms_of_emacs) <system-configuration-features>: New var.
6861
6862 2014-03-27 Paul Eggert <eggert@cs.ucla.edu>
6863
6864 Port recent signal-related changes to FreeBSD.
6865 Reported by Herbert J. Skuhra.
6866 * lisp.h (block_tty_out_signal, unblock_tty_out_signal):
6867 Move decls from here ...
6868 * syssignal.h: ... to here, so that lisp.h doesn't depend on signal.h.
6869
6870 2014-03-27 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
6871
6872 * w32term.c (x_draw_image_glyph_string): Fix computation of height
6873 and width of image background when it is displayed with a 'box'
6874 face. (Bug#17115)
6875
6876 2014-03-27 Paul Eggert <eggert@penguin.cs.ucla.edu>
6877
6878 More backward-compatible fix to char-equal core dump (Bug#17011).
6879 * editfns.c (Fchar_equal): In unibyte buffers, assume values in
6880 range 128-255 are raw bytes. Suggested by Eli Zaretskii.
6881
6882 2014-03-27 Juanma Barranquero <lekktu@gmail.com>
6883
6884 * image.c (init_svg_functions): When loading SVG-related libraries,
6885 free already loaded libraries if the initialization fails.
6886 (rsvg_handle_set_size_callback): Remove declaration, unused.
6887
6888 2014-03-26 Paul Eggert <eggert@cs.ucla.edu>
6889
6890 Fix core dump in char-equal (Bug#17011).
6891 * editfns.c (Fchar_equal): Do not use MAKE_CHAR_MULTIBYTE in
6892 unibyte buffers, as we can't tell whether the characters are
6893 actually unibyte.
6894
6895 * insdel.c (adjust_markers_for_delete): Remove unused local.
6896
6897 2014-03-26 Barry O'Reilly <gundaetiapo@gmail.com>
6898
6899 Have (MARKER . ADJUSTMENT) undo records always be immediately
6900 after their corresponding (TEXT . POS) record in undo list.
6901 (Bug#16818)
6902 * lisp.h (record-delete): New arg record_markers.
6903 (record_marker_adjustment): No longer needed outside undo.c.
6904 * insdel.c (adjust_markers_for_delete): Move calculation of marker
6905 adjustments to undo.c's record_marker_adjustments. Note that
6906 fileio.c's decide_coding_unwind is another caller to
6907 adjust_markers_for_delete. Because it has undo list bound to t,
6908 it does not rely on adjust_markers_for_delete to record marker
6909 adjustments.
6910 (del_range_2): Swap call to record_delete and
6911 adjust_markers_for_delete so as undo marker adjustments are
6912 recorded before current deletion's adjustments, as before.
6913 (adjust_after_replace):
6914 (replace_range): Pass value for new record_markers arg to
6915 delete_record.
6916 * undo.c (record_marker_adjustment): Rename to
6917 record_marker_adjustments and made static.
6918 (record_delete): Check record_markers arg and call
6919 record_marker_adjustments.
6920 (record_change): Pass value for new record_markers arg to
6921 delete_record.
6922 (record_point): at_boundary calculation no longer needs to account
6923 for marker adjustments.
6924
6925 2014-03-26 Martin Rudalics <rudalics@gmx.at>
6926
6927 * w32term.c (x_set_window_size): Refine fix from 2014-03-14
6928 (Bug#17077).
6929
6930 2014-03-26 Glenn Morris <rgm@gnu.org>
6931
6932 * fileio.c (Ffile_symlink_p): Doc fix. (Bug#17073)
6933
6934 2014-03-26 Stefan Monnier <monnier@iro.umontreal.ca>
6935
6936 * buffer.c (struct sortvec): Add field `spriority'.
6937 (compare_overlays): Use it.
6938 (sort_overlays): Set it.
6939
6940 2014-03-26 Eli Zaretskii <eliz@gnu.org>
6941
6942 * xdisp.c (redisplay_window): If all previous attempts to find the
6943 cursor row failed, try a few alternatives before falling back to
6944 the top-most row of the window. Use row_containing_pos. (Bug#17047)
6945
6946 2014-03-26 Juanma Barranquero <lekktu@gmail.com>
6947
6948 * image.c (x_bitmap_height, x_bitmap_width) [HAVE_X_WINDOWS]:
6949 * sysdep.c (reset_sigio) [!DOS_NT]: Declare conditionally.
6950
6951 * keyboard.c (read_decoded_event_from_main_queue): #ifdef out
6952 variables on Windows.
6953
6954 * w32fns.c (Ffile_system_info): Use parenthesis in and/or expression.
6955
6956 * w32.c (unsetenv): Remove unused var `retval'.
6957 (emacs_gnutls_pull): Remove unused vars `fdset' and `timeout'.
6958
6959 * w32notify.c (watch_worker): Remove unnecesary var sleep_result.
6960 (start_watching): Remove unused var `thr'.
6961
6962 * w32proc.c (sys_spawnve): Comment out unused vars `first', `last'.
6963 (find_child_console): Remove unnecesary var `thread_id'.
6964
6965 * w32term.c (w32_read_socket): Comment out unused vars `row', `columns'.
6966 (x_focus_frame): #ifdef 0 unused variable `dpyinfo'.
6967
6968 2014-03-26 Glenn Morris <rgm@gnu.org>
6969
6970 * filelock.c (Flock_buffer): Doc tweak.
6971
6972 * buffer.c (Frestore_buffer_modified_p, Fkill_buffer):
6973 * emacs.c (shut_down_emacs):
6974 * fileio.c (Finsert_file_contents, write_region):
6975 * filelock.c (top-level, syms_of_filelock):
6976 * insdel.c (prepare_to_modify_buffer_1):
6977 CLASH_DETECTION is always defined now.
6978
6979 2014-03-25 Eli Zaretskii <eliz@gnu.org>
6980
6981 * w32.c (w32_delayed_load): Call DisableThreadLibraryCalls on the
6982 DLL handle, to speed up thread startup.
6983
6984 2014-03-25 Paul Eggert <eggert@cs.ucla.edu>
6985
6986 Handle sigmask better with nested signal handlers (Bug#15561).
6987 * atimer.c (sigmask_atimers): Remove.
6988 Remaining use rewritten to use body of this function.
6989 * atimer.c (block_atimers, unblock_atimers):
6990 * callproc.c (block_child_signal, unblock_child_signal):
6991 * sysdep.c (block_tty_out_signal, unblock_tty_out_signal):
6992 New arg OLDSET. All callers changed.
6993 * atimer.c (block_atimers, unblock_atimers):
6994 * callproc.c (block_child_signal, unblock_child_signal):
6995 * keyboard.c (handle_interrupt):
6996 * sound.c (vox_configure, vox_close):
6997 Restore the old signal mask rather than unilaterally clearing bits
6998 from the mask, in case a handler is running within another
6999 handler. All callers changed.
7000 * lisp.h, process.c, process.h, term.c:
7001 Adjust decls and callers to match new API.
7002 * sysdep.c (emacs_sigaction_init): Don't worry about masking SIGFPE;
7003 signal handlers aren't supposed to use floating point anyway.
7004 (handle_arith_signal): Unblock just SIGFPE rather than clearing mask.
7005
7006 2014-03-23 Daniel Colascione <dancol@dancol.org>
7007
7008 Split gc_sweep into discrete functions for legibility and better
7009 stack traces.
7010
7011 * alloc.c (sweep_strings, sweep_vectors): Add NO_INLINE
7012 (sweep_vectors): Fix typo in comment.
7013 (sweep_conses, sweep_floats, sweep_intervals)
7014 (sweep_symbols, sweep_misc, sweep_buffers): New functions.
7015 (gc_sweep): Call new functions, to which existing functionality is
7016 moved.
7017 * fns.c (sweep_weak_hash_tables): Add NO_INLINE.
7018
7019 2014-03-23 Juanma Barranquero <lekktu@gmail.com>
7020
7021 * w32fns.c (Fw32_shell_execute): Declare `result' only on Cygwin.
7022
7023 2014-03-23 Daniel Colascione <dancol@dancol.org>
7024
7025 * xfns.c (create_frame_xic): Pass XNStatusAttributes to XCreateIC
7026 only if xic_style calls for it. This change allows Emacs to work
7027 with ibus. Also, don't leak resources if create_frame_xic fails,
7028 and stop caching xic_style across different displays.
7029 (supported_xim_styles): Make const.
7030 (best_xim_style): Remove first parameter: it's always just
7031 supported_xim_styles. Change to look at supported_xim_styles
7032 directly.
7033
7034 2014-03-23 Daniel Colascione <dancol@dancol.org>
7035
7036 * term.c (init_tty): Rearrange condition for clarity; print
7037 appropriate diagnostic.
7038
7039 2014-03-23 Daniel Colascione <dancol@dancol.org>
7040
7041 * process.c (DATAGRAM_CONN_P): Don't underflow datagram_address
7042 array. (ASAN caught.)
7043
7044 2014-03-22 Glenn Morris <rgm@gnu.org>
7045
7046 * callproc.c (init_callproc): In etc, look for NEWS rather than GNU.
7047
7048 2014-03-22 Daniel Colascione <dancol@dancol.org>
7049
7050 * process.c (conv_sockaddr_to_lisp): When extracting the string
7051 names of AF_LOCAL sockets, stop before reading uninitialized memory.
7052
7053 2014-03-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7054
7055 Fix regression introduced by patch for Bug#10500.
7056 * xterm.c (x_draw_image_relief): Respect Vtool_bar_button_margin.
7057 * w32term.c (x_draw_image_relief): Likewise.
7058
7059 2014-03-21 Martin Rudalics <rudalics@gmx.at>
7060
7061 * w32fns.c (w32_wnd_proc): For WM_WINDOWPOSCHANGING don't
7062 constrain frame size in SW_SHOWMAXIMIZED case so we can truly
7063 maximize a frame for odd default fonts.
7064
7065 2014-03-21 Glenn Morris <rgm@gnu.org>
7066
7067 * minibuf.c (history-length): Increase default from 30 to 100.
7068
7069 2014-03-21 Daniel Colascione <dancol@dancol.org>
7070
7071 * xterm.c (x_bitmap_icon): Stop reading the icon bitmap from disk
7072 every time we switch to minibuffer.
7073
7074 * alloc.c (lisp_align_malloc, allocate_string_data)
7075 (allocate_vectorlike): Allow mmap allocation of lisp objects.
7076 (pointers_fit_in_lispobj_p, mmap_lisp_allowed_p): New functions.
7077
7078 2014-03-21 Eli Zaretskii <eliz@gnu.org>
7079
7080 * w32fns.c (Fw32_shell_execute) [!CYGWIN]: Use ShellExecuteEx, to
7081 support more "verbs".
7082
7083 2014-03-21 Daniel Colascione <dancol@dancol.org>
7084
7085 Always prohibit dumping a dumped Emacs.
7086
7087 * emacs.c (might_dump): New variable.
7088 (Fdump_emacs): Always prohibit dumping of dumped Emacs.
7089 * lisp.h (might_dump): Declare.
7090 * unexcw.c (unexec): Remove now-redundant multiple-dump detection code.
7091
7092 2014-03-20 Paul Eggert <eggert@cs.ucla.edu>
7093
7094 * doc.c (store_function_docstring): Fix pointer signedness mismatch.
7095
7096 2014-03-20 Stefan Monnier <monnier@iro.umontreal.ca>
7097
7098 * doc.c (store_function_docstring): Warn when we don't know where to
7099 put a docstring.
7100 (Fsubstitute_command_keys): Don't advertise the fact that
7101 text-properties are dropped, since we think it's a bug that we'll fix.
7102
7103 * frame.h (SET_FRAME_VISIBLE): Keep frame_garbaged up to date.
7104 * xterm.c (handle_one_xevent) <MapNotify>: Don't garbage the frame.
7105 * frame.c (frame_garbaged): Make "docstring" more precise.
7106
7107 2014-03-20 Glenn Morris <rgm@gnu.org>
7108
7109 * charset.c (init_charset): When we cannot find the charsets directory,
7110 mention if EMACSDATA is set.
7111
7112 2014-03-19 Paul Eggert <eggert@cs.ucla.edu>
7113
7114 * fns.c (Frandom): Fix rare bug where the result isn't random.
7115
7116 Fix porting inconsistency about rounding to even.
7117 * floatfns.c (emacs_rint) [!HAVE_RINT]: Round to even.
7118 This way, the unusual !HAVE_RINT case acts like the usual
7119 HAVE_RINT case, and we can fix the documentation accordingly.
7120
7121 2014-03-19 Eli Zaretskii <eliz@gnu.org>
7122
7123 * w32fns.c (reset_modifiers): Zero out keystate[] before using it.
7124 (w32_wnd_proc): Initialize the dwHoverTime member of
7125 TRACKMOUSEEVENT structure.
7126
7127 2014-03-17 Teodor Zlatanov <tzz@lifelogs.com>
7128
7129 * gnutls.c (Fgnutls_boot): Fix case of :verify-error = t.
7130
7131 2014-03-16 Eli Zaretskii <eliz@gnu.org>
7132
7133 * search.c (find_newline): Speed up the function when using the
7134 newline cache, by halving the number of calls to
7135 region_cache_forward and region_cache_backward. (Bug#16830)
7136
7137 2014-03-15 Juanma Barranquero <lekktu@gmail.com>
7138
7139 * buffer.c (Fset_buffer): Document return value (bug#17015).
7140
7141 2014-03-14 Martin Rudalics <rudalics@gmx.at>
7142
7143 * w32term.c (x_set_window_size): When frame-resize-pixelwise is
7144 nil, always resize character wise to avoid potential loss of the
7145 mode line (Bug#16923 related).
7146
7147 2014-03-12 Martin Rudalics <rudalics@gmx.at>
7148
7149 * frame.c (x_set_frame_parameters): Always calculate new sizes
7150 pixelwise to avoid potential loss when rounding.
7151
7152 2014-03-11 Dmitry Antipov <dmantipov@yandex.ru>
7153
7154 * xfns.c (x_set_mouse_color): Recolor vertical_drag_cursor.
7155 * xterm.c (x_free_frame_resources): Free all allocated cursors.
7156
7157 2014-03-10 Eli Zaretskii <eliz@gnu.org>
7158
7159 * w32.c (fstatat): Don't add an extra slash if the argument ends
7160 with a slash: this fails the subsequent call to stat_worker on
7161 Windows 9X. Reported by oslsachem <oslsachem@gmail.com>.
7162
7163 2014-03-09 Martin Rudalics <rudalics@gmx.at>
7164
7165 * xdisp.c (Fwindow_text_pixel_size): Adjust doc-string.
7166
7167 2014-03-08 Jan Djärv <jan.h.d@swipnet.se>
7168
7169 * nsterm.h (MAC_OS_X_VERSION_10_9): Add.
7170
7171 * nsterm.m (constrainFrameRect:toScreen:): Constrain normally
7172 when frame is only on one screen (Bug#14713).
7173
7174 2014-03-08 Eli Zaretskii <eliz@gnu.org>
7175
7176 * xdisp.c (move_it_in_display_line_to): If word-wrap is ON, and
7177 there's a valid wrap point in the display line, the last glyph
7178 cannot "just barely fit" on this row, because display_line doesn't
7179 let it. Instead, proceed as if the last glyph didn't fit, so that
7180 we eventually back up the iterator to the wrap point. This avoids
7181 delusional behavior of move_it_to, whereby it proceeds to the next
7182 display line, but sets current_x to zero for all the glyphs that
7183 without word-wrap would fit on the previous display line.
7184 One result was that visual-order cursor movement behaved erratically
7185 under word-wrap.
7186 (Fmove_point_visually): Add code to find the x coordinate of the
7187 last character before wrap point, under word-wrap on a TTY.
7188
7189 2014-03-07 Eli Zaretskii <eliz@gnu.org>
7190
7191 * xdisp.c (Fmove_point_visually): When under word-wrap, accept
7192 also return value of MOVE_POS_MATCH_OR_ZV from
7193 move_it_in_display_line_to, when moving from beginning of line to
7194 point's position. (Bug#16961)
7195
7196 2014-03-07 Martin Rudalics <rudalics@gmx.at>
7197
7198 * buffer.c (Vbuffer_list_update_hook): Doc-string fix.
7199 * window.c (Fselect_window): Explain NORECORD and
7200 `buffer-list-update-hook' in doc-string.
7201
7202 2014-03-06 Martin Rudalics <rudalics@gmx.at>
7203
7204 * window.c (Fother_window_for_scrolling): Check that
7205 Vother_window_scroll_buffer is a buffer.
7206
7207 2014-03-06 Dmitry Antipov <dmantipov@yandex.ru>
7208
7209 * xterm.c (xim_initialize): Always pass a copy of resource name
7210 to XRegisterIMInstantiateCallback and eassert whether return
7211 value is True. Passing copy is important because Xlib doesn't
7212 make its own copy and resource name argument usually points to
7213 SSDATA (Vx_resource_name), which may be changed from Lisp.
7214 (xim_close_display): For XUnregisterIMInstantiateCallback,
7215 always eassert return value and pass exactly the same values
7216 as were used for XRegisterIMInstantiateCallback.
7217 Otherwise XUnregisterIMInstantiateCallback will always fail. See Xlib
7218 sources to check why if you are interested.
7219
7220 2014-03-05 Martin Rudalics <rudalics@gmx.at>
7221
7222 * dispnew.c (change_frame_size_1): Add new_lines instead of
7223 new_height, the latter may be still zero if passed as such.
7224 * window.c (Fwindow_pixel_height): Mention bottom divider in
7225 doc-string.
7226
7227 2014-03-05 Paul Eggert <eggert@cs.ucla.edu>
7228
7229 Fix "resource temporarily unavailable" with xgselect
7230 (Bug#16925).
7231 * xgselect.c: Include <stdbool.h>.
7232 (xg_select) [!USE_GTK]: Don't lose track of errno.
7233
7234 Fix minor --enable-gcc-warnings issues.
7235 * widget.c (update_various_frame_slots, EmacsFrameResize):
7236 Avoid unused locals. Prefer 'if' to '#if' when either will do.
7237
7238 2014-03-04 Ken Brown <kbrown@cornell.edu>
7239
7240 * gmalloc.c (aligned_alloc): Clarify the code by making `adj'
7241 represent the actual adjustment needed for alignment.
7242
7243 2014-03-04 Eli Zaretskii <eliz@gnu.org>
7244
7245 * gmalloc.c (aligned_alloc): Don't allocate more memory than
7246 needed, and don't reallocate if the initial allocation already
7247 fits the bill. Suggested by Ken Brown <kbrown@cornell.edu>.
7248
7249 2014-03-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7250
7251 * xterm.c (x_draw_stretch_glyph_string): Reset clipping.
7252 (Bug#16932)
7253
7254 2014-03-04 Michal Nazarewicz <mina86@mina86.com>
7255
7256 * cmds.c (delete-char): Update docstring pointing out that the
7257 function ignores `delete-active-region' and `overwrite-mode'.
7258
7259 2014-03-03 Eli Zaretskii <eliz@gnu.org>
7260
7261 * font.c (Fframe_font_cache): Fix last change. (Bug#16930)
7262
7263 * gmalloc.c (aligned_alloc): Fix adjustment of size of the
7264 allocated buffer due to alignment.
7265 (freehook): If the block to be freed was allocated by
7266 'aligned_alloc', find its real pointer before calling 'free'.
7267 (Bug#16901)
7268 (mabort) [emacs]: Call 'emacs_abort', not 'abort', to provide a
7269 backtrace.
7270
7271 2014-03-03 Dmitry Antipov <dmantipov@yandex.ru>
7272
7273 * font.c (toplevel): Adjust comment about font cache layout.
7274 (font_clear_cache): Fix to match real font cache layout.
7275 Suggested by <namespace_collision@yahoo.com> in Bug#16069.
7276 (Fframe_font_cache) [FONT_DEBUG]: New function.
7277 (syms_of_font) [FONT_DEBUG]: Defsubr it.
7278
7279 Avoid crashes when X fonts are erroneously freed on reused X
7280 'Display *' connection data (Bug#16069). Note that X font
7281 resources still may be leaked, but currently there is no way
7282 to completely avoid it.
7283 * xterm.h (struct x_display_info): New member x_id. Add comments.
7284 * xterm.c (x_display_id): New variable.
7285 (x_term_init): Assign identifier to each opened X connection.
7286 * xfont.c (struct xfont): New member x_display_id.
7287 (xfont_open): Initialize it with frame's display id.
7288 (xfont_close): Check whether font's display id matches the one
7289 recorded for the given display. Adjust comment.
7290 * xftfont.c (struct xftfont_info):
7291 (xftfont_open, xftfont_close): Exactly as above with xfont stuff.
7292
7293 2014-03-01 Martin Rudalics <rudalics@gmx.at>
7294
7295 Consider Vother_window_scroll_buffer valid iff it's a live buffer.
7296 * window.c (Fother_window_for_scrolling): Don't try to scroll a
7297 killed Vother_window_scroll_buffer.
7298 (Vother_window_scroll_buffer): Fix doc-string accordingly.
7299
7300 2014-03-01 Eli Zaretskii <eliz@gnu.org>
7301
7302 * fileio.c (Fexpand_file_name) [WINDOWSNT]: Don't treat file names
7303 that start with more than 2 slashes as UNCs. (Bug#16751)
7304
7305 2014-02-28 Paul Eggert <eggert@penguin.cs.ucla.edu>
7306
7307 Fix a few crashes and leaks when cloning C strings.
7308 * alloc.c, lisp.h (dupstring): New function.
7309 * gtkutil.c (xg_get_font):
7310 * term.c (tty_default_color_capabilities):
7311 * xsettings.c (store_monospaced_changed)
7312 (store_font_name_changed, parse_settings)
7313 (read_and_apply_settings, init_gsettings, init_gconf): Use it.
7314 This avoids some unlikely crashes due to accessing freed storage,
7315 and avoids some minor memory leaks in the more-typical case.
7316
7317 2014-02-28 Martin Rudalics <rudalics@gmx.at>
7318
7319 * xdisp.c (note_mode_line_or_margin_highlight): Don't show drag
7320 cursor when modeline can't be dragged (Bug#16647).
7321
7322 2014-02-28 Glenn Morris <rgm@gnu.org>
7323
7324 * doc.c (Fsnarf_documentation): Snarf not-yet-bound variables
7325 from custom-delayed-init-variables. (Bug#11565)
7326
7327 2014-02-27 Martin Rudalics <rudalics@gmx.at>
7328
7329 More fixes for mouse glyph calculations (Bug#16647).
7330 * window.c (coordinates_in_window): In intersection of
7331 horizontal and vertical window dividers prefer the horizontal
7332 one. Add some extra parens to last fix.
7333 (window_relative_x_coord): Return x-coordinate for header and
7334 mode line too.
7335 * xdisp.c (remember_mouse_glyph): In text area don't extend
7336 glyph into mode line to show the vertical drag cursor there
7337 immediately. Subdivide mouse glyphs in right fringes to show a
7338 horizontal drag cursor as soon as we enter the "grabbable width"
7339 portion. Handle vertical border case separately. Do not
7340 subdivide window divider areas.
7341 (note_mouse_highlight): On bottom divider of bottommost windows
7342 show vertical drag cursor only when the minibuffer window can be
7343 resized.
7344
7345 2014-02-27 Eli Zaretskii <eliz@gnu.org>
7346
7347 * xdisp.c (pop_it): Restore the it->face_box_p flag which could be
7348 reset by the face of the object just displayed. See also bug#76.
7349 (get_next_display_element): If the string came from a display
7350 property, examine the box face attribute at it->position, not at
7351 it->current.pos, since the latter was not updated yet. (Bug#16870)
7352 (handle_face_prop): Improve commentary.
7353
7354 2014-02-27 Michael Albinus <michael.albinus@gmx.de>
7355
7356 * dbusbind.c (Fdbus__init_bus, Qdbus__init_bus, Sdbus__init_bus):
7357 Rename from Fdbus_init_bus_1, Qdbus_init_bus_1, Sdbus_init_bus_1.
7358
7359 2014-02-26 Martin Rudalics <rudalics@gmx.at>
7360
7361 Fixes around Bug#16647.
7362 * xdisp.c (remember_mouse_glyph): Handle ON_RIGHT_DIVIDER and
7363 ON_BOTTOM_DIVIDER cases.
7364 * window.c (coordinates_in_window): Return ON_VERTICAL_BORDER
7365 only if the window has no right divider.
7366 (Fcoordinates_in_window_p): Fix doc-string.
7367
7368 2014-02-25 Juanma Barranquero <lekktu@gmail.com>
7369
7370 * lread.c (Funintern): Fix doc to match advertised calling convention.
7371
7372 2014-02-24 Daniel Colascione <dancol@dancol.org>
7373
7374 * keyboard.c (read_char): Close race that resulted in lost events.
7375
7376 2014-02-22 Glenn Morris <rgm@gnu.org>
7377
7378 * frame.c (frame-alpha-lower-limit, frame-resize-pixelwise):
7379 * window.c (window-resize-pixelwise): Doc fixes.
7380
7381 * process.c (Finternal_default_process_filter)
7382 (Finternal_default_process_sentinel): Doc tweaks.
7383
7384 2014-02-21 Glenn Morris <rgm@gnu.org>
7385
7386 * process.c (Fprocess_buffer, Faccept_process_output)
7387 (Finternal_default_process_filter, Finternal_default_process_sentinel):
7388 Doc fixes.
7389
7390 2014-02-21 Martin Rudalics <rudalics@gmx.at>
7391
7392 * window.c (Fwindow_scroll_bar_width): New function.
7393
7394 2014-02-21 Paul Eggert <eggert@cs.ucla.edu>
7395
7396 Pacify GCC when configuring with --enable-gcc-warnings.
7397 * xdisp.c (move_it_in_display_line_to) [lint]:
7398 Initialize recently-added local.
7399
7400 2014-02-21 Daniel Colascione <dancol@dancol.org>
7401
7402 * dbusbind.c: Rename dbus-init-bus to dbus-init-bus-1.
7403
7404 2014-02-20 Eli Zaretskii <eliz@gnu.org>
7405
7406 * xdisp.c (init_iterator): Don't dereference a bogus face
7407 pointer. (Bug#16819)
7408 (try_cursor_movement): Don't use cursor position if
7409 set_cursor_from_row failed to compute it. This avoids assertion
7410 violations in MATRIX_ROW.
7411 (move_it_in_display_line_to): Save the iterator state in ppos_it
7412 only once per call. Reimplement the method used to return to the
7413 best candidate position if all the positions found in display line
7414 are beyond TO_CHARPOS. This cuts down the number of calls to
7415 bidi_shelve_cache, which moves a lot of stuff when lines are long
7416 and include bidirectional text. (Bug#15555)
7417
7418 2014-02-20 Glenn Morris <rgm@gnu.org>
7419
7420 * data.c (Fdefalias): Doc fix.
7421
7422 2014-02-19 Eli Zaretskii <eliz@gnu.org>
7423
7424 * xdisp.c (display_line): Fix horizontal scrolling of large images
7425 when fringes are turned off. This comes at a price of not
7426 displaying the truncation/continuation glyphs in this case.
7427 (Bug#16806)
7428
7429 * image.c (x_create_x_image_and_pixmap) [HAVE_NTGUI]: If
7430 CreateDIBSection returns an error indication, zero out *ximg after
7431 destroying the image. This avoids crashes in memory allocations
7432 due to the fact that some of the callers also call
7433 x_destroy_x_image, which will attempt to free an already free'd
7434 block of memory.
7435
7436 2014-02-18 Martin Rudalics <rudalics@gmx.at>
7437
7438 * widget.c (update_various_frame_slots): Don't set
7439 FRAME_PIXEL_HEIGHT and FRAME_PIXEL_WIDTH here (Bug#16736).
7440
7441 2014-02-18 Michael Albinus <michael.albinus@gmx.de>
7442
7443 * dbusbind.c (xd_close_bus): Apply proper check on busobj.
7444
7445 2014-02-17 Paul Eggert <eggert@cs.ucla.edu>
7446
7447 temacs --daemon fix (Bug#16599).
7448 * emacs.c (main): Initialize daemon_pipe[1] here ...
7449 (syms_of_emacs): ... instead of here.
7450
7451 2014-02-16 Anders Lindgern <andlind@gmail.com>
7452
7453 * nsterm.m (keyDown:): Check for normal key even if NSNumericPadKeyMask
7454 is set (Bug#16505).
7455
7456 2014-02-16 Daniel Colascione <dancol@dancol.org>
7457
7458 * dbusbind.c (xd_lisp_dbus_to_dbus): New function.
7459 (xd_get_connection_address): Use it.
7460 (xd_close_bus): Use xd_lisp_dbus_to_dbus to instead of
7461 xd_get_connection_address because the latter signals if the bus
7462 we're trying to close is already disconnected.
7463
7464 2014-02-13 Eli Zaretskii <eliz@gnu.org>
7465
7466 * w32proc.c (start_timer_thread): Pass a non-NULL pointer as last
7467 argument to CreateThread. This avoids segfaults on Windows 9X.
7468 Reported by oslsachem <oslsachem@gmail.com>.
7469
7470 2014-02-13 Paul Eggert <eggert@cs.ucla.edu>
7471
7472 Fix subspace record bug on HP-UX 10.20 (Bug#16717).
7473 * unexhp9k800.c (unexec_error): New function, to simplify the code.
7474 (check_lseek): New function, to report lseek errors.
7475 (save_data_space, update_file_ptrs, read_header, write_header)
7476 (copy_file, copy_rest, unexec): Use these news functions.
7477 (update_file_ptrs): Don't assume wraparound behavior when
7478 converting a large size_t value to off_t.
7479
7480 2014-02-13 Dmitry Antipov <dmantipov@yandex.ru>
7481
7482 * composite.c (fill_gstring_header): Pass positions as C integers
7483 and move parameters checking to...
7484 (Fcomposition_get_gstring): ...this function. Handle case when
7485 buffer positions are in reversed order and avoid crash (Bug#16739).
7486 Adjust docstring.
7487 * buffer.c (validate_region): Mention current buffer in error message.
7488
7489 2014-02-12 Marcus Karlsson <mk@acc.umu.se> (tiny change)
7490
7491 * image.c (pbm_load): Set to NO_PIXMAP on error (Bug#16683).
7492
7493 2014-02-12 Lars Ingebrigtsen <larsi@gnus.org>
7494
7495 * buffer.c (syms_of_buffer): Doc clarification (bug#9981).
7496
7497 2014-02-11 Glenn Morris <rgm@gnu.org>
7498
7499 * nsfns.m (ns_display_info_for_name, Fx_open_connection):
7500 Replace refs to "OpenStep" in messages.
7501
7502 2014-02-10 Paul Eggert <eggert@cs.ucla.edu>
7503
7504 Avoid "." at end of error diagnostics.
7505 * cmds.c (Fself_insert_command): Reword and avoid "." at end.
7506 * font.c (Ffont_at):
7507 * nsfns.m (ns_display_info_for_name):
7508 * nsselect.m (Fx_own_selection_internal):
7509 * nsterm.m (performDragOperation:):
7510 Remove "." from end of diagnostic.
7511
7512 2014-02-10 Lars Ingebrigtsen <larsi@gnus.org>
7513
7514 * fns.c (Fmaphash): Say what `maphash' returns, since it may be
7515 unintuitive (bug#15824).
7516 (Fyes_or_no_p): Doc fix (bug#15456).
7517
7518 2014-02-10 Dmitry Antipov <dmantipov@yandex.ru>
7519
7520 * cmds.c (Fself_insert_command): Respect the width of EMACS_INT
7521 and avoid warning.
7522 * eval.c (call_debugger): When exiting the debugger, do not allow
7523 max_specpdl_size less than actual binding depth (Bug#16603).
7524 (syms_of_eval): Adjust docstring.
7525
7526 2014-02-09 Lars Ingebrigtsen <larsi@gnus.org>
7527
7528 * cmds.c (Fself_insert_command): Output a clearer error message on
7529 negative repetitions (bug#9476).
7530
7531 * macros.c (Fexecute_kbd_macro): Doc fix (bug#14206).
7532
7533 2014-02-08 Lars Ingebrigtsen <larsi@gnus.org>
7534
7535 * syntax.c (Fskip_syntax_backward): Doc clarification (bug#15115).
7536
7537 * minibuf.c (Fread_string): Doc clarification (bug#15422).
7538
7539 * buffer.c (Fmake_overlay): Doc clarification (bug#15489).
7540
7541 2014-02-08 Juanma Barranquero <lekktu@gmail.com>
7542
7543 * keyboard.c (Frecursive_edit): Fix typo in docstring.
7544
7545 2014-02-08 Lars Ingebrigtsen <larsi@gnus.org>
7546
7547 * xdisp.c (syms_of_xdisp): Doc clarification (bug#15657).
7548
7549 * keyboard.c (Frecursive_edit): Say more precicely how throwing
7550 `exit' works (bug#15865).
7551
7552 2014-02-07 Martin Rudalics <rudalics@gmx.at>
7553
7554 Constrain window box/body sizes and margin widths (Bug#16649).
7555 * xdisp.c (window_box_width): Don't return less than zero.
7556 (window_box_left_offset, window_box_right_offset): Don't return
7557 more than the window's pixel width.
7558 * window.c (window_body_height, window_body_width): Don't return
7559 negative value.
7560 (window_resize_apply): Adjust margin width, if necessary.
7561
7562 2014-02-07 Glenn Morris <rgm@gnu.org>
7563
7564 * nsterm.m (syms_of_nsterm): Doc fix.
7565
7566 2014-02-06 Eli Zaretskii <eliz@gnu.org>
7567
7568 * w32.c (pMultiByteToWideChar, pWideCharToMultiByte):
7569 New variables: pointers through which to call the respective APIs.
7570 (filename_to_utf16, filename_from_utf16, filename_to_ansi)
7571 (filename_from_ansi, sys_link, check_windows_init_file):
7572 Call MultiByteToWideChar and WideCharToMultiByte through pointers.
7573 This is required on Windows 9X, where we dynamically load
7574 UNICOWS.DLL which has their non-stub implementations.
7575 (maybe_load_unicows_dll): Assign addresses to these 2 function
7576 pointers after loading UNICOWS.DLL.
7577
7578 * w32fns.c (Fx_file_dialog, Fw32_shell_execute) [!CYGWIN]: Call
7579 MultiByteToWideChar and WideCharToMultiByte through function
7580 pointers.
7581
7582 * w32.h (pMultiByteToWideChar, pWideCharToMultiByte):
7583 New declarations.
7584
7585 2014-02-06 Jan Djärv <jan.h.d@swipnet.se>
7586
7587 * nsterm.m (toggleFullScreen:): Hide menubar on secondary monitor
7588 for OSX >= 10.9 if separate spaces are used.
7589 (toggleFullScreen:): Use screen of w instead of fw (Bug#16659).
7590
7591 2014-02-06 Glenn Morris <rgm@gnu.org>
7592
7593 * buffer.c (cache-long-scans): Doc fix.
7594
7595 2014-02-05 Eli Zaretskii <eliz@gnu.org>
7596
7597 * w32fns.c (Fw32_shell_execute): Doc fix.
7598
7599 2014-02-05 Bastien Guerry <bzg@gnu.org>
7600
7601 * syntax.c (Fforward_word): Call Fconstrain_to_field with
7602 ESCAPE-FROM-EDGE set to `nil' (Bug#16453).
7603
7604 2014-02-05 Martin Rudalics <rudalics@gmx.at>
7605
7606 * fringe.c (draw_fringe_bitmap_1): Don't draw a fringe if it's
7607 outside the window (Bug#16649).
7608
7609 * xdisp.c (note_mouse_highlight): When entering a margin area show
7610 a non-text cursor (Bug#16647).
7611
7612 2014-02-04 Paul Eggert <eggert@cs.ucla.edu>
7613
7614 * menu.c (Fx_popup_dialog): Remove label 'dialog_via_menu'.
7615 It prompted a compile-time diagnostic on GNU/Linux.
7616 Simplify to remove the need for the label.
7617
7618 2014-02-04 Eli Zaretskii <eliz@gnu.org>
7619
7620 * w32menu.c (w32_popup_dialog): Don't condition the whole function
7621 on HAVE_DIALOGS. If the dialog is "simple", pop up a message box
7622 to show it; otherwise return 'unsupported--w32-dialog' to signal
7623 to the caller that emulation with menus is necessary.
7624 This resurrects code inadvertently deleted by the 2013-10-08 commit.
7625 (Bug#16636)
7626 (syms_of_w32menu): DEFSYM Qunsupported__w32_dialog.
7627
7628 * w32term.h (w32_popup_dialog): Prototype is no longer conditioned
7629 by HAVE_DIALOGS.
7630
7631 * menu.c (Fx_popup_dialog): Don't condition the call to
7632 w32_popup_dialog on HAVE_DIALOGS. If w32_popup_dialog returns a
7633 special symbol 'unsupported--w32-dialog', emulate the dialog with
7634 a menu by calling x-popup-menu.
7635
7636 * menu.h (Qunsupported__w32_dialog): New extern variable.
7637
7638 2014-02-04 Michael Albinus <michael.albinus@gmx.de>
7639
7640 * keyboard.c (kbd_buffer_get_event): Read file notification events
7641 also in batch mode.
7642
7643 * xgselect.c (xg_select): Read glib events in any case, even if
7644 there are no file descriptors to watch for. (Bug#16519)
7645
7646 2014-02-03 Martin Rudalics <rudalics@gmx.at>
7647
7648 * dispextern.h (face_id): Add WINDOW_DIVIDER_FIRST_PIXEL_FACE_ID
7649 and WINDOW_DIVIDER_LAST_PIXEL_FACE_ID.
7650 * w32term.c (w32_draw_window_divider): Handle first and last
7651 pixels specially.
7652 * w32term.h (w32_fill_area_abs): New function.
7653 * xdisp.c (x_draw_right_divider): Don't draw over bottom
7654 divider.
7655 * xfaces.c (realize_basic_faces): Handle new face ids.
7656 * xfns.c (Fx_create_frame): Call x_default_parameter for right
7657 and bottom divider width.
7658 * xterm.c (x_draw_window_divider): Handle first and last pixels
7659 specially.
7660
7661 2014-02-03 Dmitry Antipov <dmantipov@yandex.ru>
7662
7663 * print.c (Fexternal_debugging_output): Add cast to pacify
7664 --enable-gcc-warnings.
7665 * eval.c (call_debugger): Grow specpdl if the debugger was
7666 entered due to specpdl overflow (Bug#16603) and allow more
7667 specpdl space for the debugger itself.
7668
7669 2014-02-02 Martin Rudalics <rudalics@gmx.at>
7670
7671 * w32fns.c (Fx_create_frame): Process frame alpha earlier.
7672 (Bug#16619)
7673
7674 2014-02-01 Eli Zaretskii <eliz@gnu.org>
7675
7676 * w32fns.c (Ffile_system_info): Use WINAPI in the function
7677 pointers that get the address of GetDiskFreeSpaceEx. (Bug#16615)
7678
7679 * print.c (Fexternal_debugging_output): If the argument character
7680 is non-ASCII, encode it with the current locale's encoding before
7681 writing the result to the terminal. (Bug#16448)
7682
7683 * w32fns.c (Fw32_shell_execute): Don't call file-exists-p for
7684 DOCUMENT that is a "remote" file name, i.e. a file-handler exists
7685 for it. (Bug#16558)
7686
7687 2014-01-30 Andreas Schwab <schwab@linux-m68k.org>
7688
7689 * process.c (create_process): Reset SIGPROF handler in the child.
7690 * callproc.c (call_process): Likewise.
7691
7692 2014-01-29 Paul Eggert <eggert@cs.ucla.edu>
7693
7694 * xmenu.c (create_and_show_popup_menu): Port comment to C89.
7695
7696 2014-01-29 Eli Zaretskii <eliz@gnu.org>
7697
7698 * .gdbinit (xprintstr, xprintbytestr): Don't use repetition count
7699 of zero to print strings, GDB doesn't like it.
7700
7701 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE, not
7702 STRING_CHAR_AND_LENGTH, so that if the string is relocated by GC,
7703 we still use correct addresses. (Bug#16576)
7704
7705 2014-01-27 K. Handa <handa@gnu.org>
7706
7707 Fix bug#16286 by a different method from 2014-01-26T00:32:30Z!eggert@cs.ucla.edu,
7708 to preserve the code detection behavior of 24.3.
7709 * coding.h (struct coding_system): New member detected_utf8_bytes.
7710 * coding.c (detect_coding_utf_8): Set coding->detected_utf8_bytes.
7711 (decode_coding_gap): Use short cut for UTF-8 file reading only
7712 when coding->detected_utf8_bytes equals to coding->src_bytes.
7713 * fileio.c (Finsert_file_contents): Cancel the previous change.
7714
7715 2014-01-29 Martin Rudalics <rudalics@gmx.at>
7716
7717 * w32fns.c (x_set_tool_bar_lines): Don't clear area on frames
7718 that are not visible.
7719
7720 2014-01-29 Jan Djärv <jan.h.d@swipnet.se>
7721
7722 * xmenu.c (create_and_show_popup_menu): Handle case when no key
7723 is grabbed (Bug#16565).
7724
7725 2014-01-28 Martin Rudalics <rudalics@gmx.at>
7726
7727 * xdisp.c (last_max_ascent): Re-remove after erroneously
7728 reintroducing it on 2013-11-30 and abolishing Dmitry's removal
7729 from 2013-03-29.
7730 (move_it_to): Re-remove reference to last_max_ascent.
7731 (Fwindow_text_pixel_size): Add iterator's max_ascent and
7732 max_descent here instead of calling line_bottom_y.
7733 Fix doc-string.
7734
7735 2014-01-28 Dmitry Antipov <dmantipov@yandex.ru>
7736
7737 * terminal.c (initial_free_frame_resources): New function.
7738 (init_initial_terminal): Install new hook to free face cache
7739 on initial frame and avoid memory leak. For details, see
7740 <http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg01974.html>.
7741 * xfaces.c (free_frame_faces): Adjust comment.
7742
7743 2014-01-26 Paul Eggert <eggert@cs.ucla.edu>
7744
7745 * data.c (Fstring_to_number): Document results if unparsable
7746 (Bug#16551).
7747
7748 2014-01-26 Jan Djärv <jan.h.d@swipnet.se>
7749
7750 * xterm.c (x_focus_changed): Check for non-X terminal-frame (Bug#16540)
7751
7752 2014-01-26 Paul Eggert <eggert@cs.ucla.edu>
7753
7754 When decoding, prefer ptrdiff_t to int for buffer positions etc.
7755 * coding.c (detect_coding_utf_8, emacs_mule_char)
7756 (detect_coding_iso_2022, encode_coding_iso_2022, check_ascii)
7757 (check_utf_8, decode_coding):
7758 * coding.h (struct coding_system.errors):
7759 Use ptrdiff_t, not int, for integer values derived from buffer and
7760 string positions.
7761
7762 Fix crash with insert-file-contents and misdecoded text (Bug#16286).
7763 * fileio.c (Finsert_file_contents): Set CODING_MODE_LAST_BLOCK
7764 before invoking decode_coding_gap, since there's just one block.
7765
7766 2014-01-25 Martin Rudalics <rudalics@gmx.at>
7767
7768 Fix handling of face attributes in Fx_create_frame (Bug#16529).
7769 * w32fns.c (Fx_create_frame): Don't inhibit running Lisp code
7770 too early. Again run change_frame_size before assigning menu-
7771 and tool-bar-lines.
7772
7773 2014-01-25 Fabrice Popineau <fabrice.popineau@gmail.com>
7774
7775 * w32term.c (w32_read_socket): When the WM_DISPLAYCHANGE message
7776 arrives, call x_check_fullscreen, in case the new display has a
7777 different resolution. (Bug#16517)
7778
7779 2014-01-25 Eli Zaretskii <eliz@gnu.org>
7780
7781 * term.c (read_menu_input): If the selected frame changes, exit
7782 the menu.
7783 (tty_menu_show): If the selected frame changes while we displayed
7784 a menu, throw to top level. (Bug#16479)
7785
7786 2014-01-25 Stefan Monnier <monnier@iro.umontreal.ca>
7787
7788 * eval.c (Fsignal): Fix `debug' handling to match 2013-10-03 change.
7789
7790 2014-01-24 Paul Eggert <eggert@cs.ucla.edu>
7791
7792 Fix bool-vector-count-population bug on MinGW64 (Bug#16535).
7793 * data.c (count_one_bits_word): Fix bug (negated comparison)
7794 when BITS_PER_ULL < BITS_PER_BITS_WORD.
7795
7796 2014-01-24 Dmitry Antipov <dmantipov@yandex.ru>
7797
7798 * xdisp.c (reseat_1, Fcurrent_bidi_paragraph_direction):
7799 Avoid undefined behavior by initializing display property bit of a
7800 string processed by the bidirectional iterator. For details, see
7801 <http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg01920.html>.
7802
7803 2014-01-23 Paul Eggert <eggert@cs.ucla.edu>
7804
7805 Minor cleanup of previous change.
7806 * image.c (imagemagick_error, Fimagemagick_types):
7807 Omit some recently-introduced and unnecessary casts and assignments.
7808
7809 2014-01-23 Dmitry Antipov <dmantipov@yandex.ru>
7810
7811 Fix two memory leaks discovered with Valgrind.
7812 * ftfont.c (ftfont_list) [HAVE_LIBOTF]: Call OTF_close.
7813 * image.c (Fimagemagick_types): Call MagickRelinquishMemory.
7814
7815 2014-01-22 Martin Rudalics <rudalics@gmx.at>
7816
7817 Fixes in window size functions around Bug#16430 and Bug#16470.
7818 * window.c (Fwindow_pixel_width, Fwindow_pixel_height)
7819 (Fwindow_mode_line_height, Fwindow_header_line_height)
7820 (Fwindow_right_divider_width, Fwindow_bottom_divider_width):
7821 Minor doc-string adjustments.
7822 (Fwindow_total_height, Fwindow_total_width): New argument ROUND.
7823 Rewrite doc-strings.
7824 (window_body_height, window_body_width): Do not count partially
7825 visible lines/columns when PIXELWISE is nil (Bug#16470).
7826 (Qfloor, Qceiling): New symbols.
7827
7828 2014-01-21 Eli Zaretskii <eliz@gnu.org>
7829
7830 * w32fns.c (unwind_create_frame): Avoid crashing inside assertion
7831 when the image cache is not yet allocated. (Bug#16509)
7832
7833 2014-01-21 Dmitry Antipov <dmantipov@yandex.ru>
7834
7835 * buffer.c (Fkill_buffer): When killing an indirect buffer,
7836 re-attach intervals to its base buffer (Bug#16502).
7837 * intervals.c (set_interval_object): Move from here...
7838 * intervals.h (set_interval_object): ... to here. Fix comments.
7839
7840 2014-01-20 Paul Eggert <eggert@cs.ucla.edu>
7841
7842 Avoid undefined behavior by initializing buffer redisplay bit.
7843 Reported by Dmitry Antipov in
7844 <http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg01756.html>.
7845 * buffer.c (Fget_buffer_create): Initialize redisplay bit.
7846
7847 Revert some of the CANNOT_DUMP fix (Bug#16494).
7848 * lread.c (init_lread): Fix typo: NILP, not !NILP.
7849
7850 2014-01-19 Eli Zaretskii <eliz@gnu.org>
7851
7852 * w32font.c (w32_load_unicows_or_gdi32, get_outline_metrics_w)
7853 (get_text_metrics_w, get_glyph_outline_w, get_char_width_32_w)
7854 [!WINDOWSNT]: These functions are no longer compiled on Cygwin;
7855 they are replaced by macros that expand into direct calls to the
7856 corresponding functions from GDI32.DLL.
7857 (globals_of_w32font) [WINDOWSNT]: Don't initialize g_b_* static
7858 variables in the Cygwin build, they are unused.
7859
7860 2014-01-19 K. Handa <handa@gnu.org>
7861
7862 * composite.c (composition_update_it): Fix previous change.
7863
7864 2014-01-18 Eli Zaretskii <eliz@gnu.org>
7865
7866 Fix file name handling on MS-Windows 9X.
7867 * w32.c (maybe_load_unicows_dll): New function.
7868
7869 * emacs.c (main) [WINDOWSNT]: Call maybe_load_unicows_dll early
7870 on, to make sure we can convert file names to and from UTF-8 on
7871 Windows 9X. This fixes a failure to start up because Emacs cannot
7872 find term/w32-win.el. Reported by oslsachem <oslsachem@gmail.com>.
7873
7874 * w32font.c [WINDOWSNT]: Include w32.h.
7875 (w32_load_unicows_or_gdi32): Call maybe_load_unicows_dll, instead
7876 of implementing the same stuff.
7877 Remove now unused g_b_init_is_windows_9x.
7878
7879 * w32.h (maybe_load_unicows_dll): Add prototype.
7880
7881 2014-01-17 Eli Zaretskii <eliz@gnu.org>
7882
7883 * menu.c (Fx_popup_menu): When invoking tty_menu_show, temporarily
7884 switch to single keyboard. Prevents daemon crashes when a new
7885 client connects while we show a TTY menu in an existing client.
7886 (Bug#16479)
7887
7888 2014-01-14 Paul Eggert <eggert@cs.ucla.edu>
7889
7890 Fix MinGW64 porting problem with _setjmp.
7891 Reported by Eli Zaretskii in:
7892 http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg01297.html
7893 * image.c (FAST_SETJMP, FAST_LONGJMP): New macros, replacing
7894 the old _setjmp and _longjmp. All uses changed.
7895
7896 2014-01-13 Daniel Colascione <dancol@dancol.org>
7897
7898 * textprop.c (Fremove_list_of_text_properties):
7899 Correctly handle reaching the end of the interval tree. (Bug#15344)
7900
7901 2014-01-13 Martin Rudalics <rudalics@gmx.at>
7902
7903 * xdisp.c (resize_mini_window): Round height to a multiple of
7904 frame's line height. Fix bug in calculation of window start
7905 position (Bug#16424).
7906
7907 2014-01-13 Jan Djärv <jan.h.d@swipnet.se>
7908
7909 * macfont.m: Include termchar.h.
7910 (CG_SET_FILL_COLOR_WITH_FACE_FOREGROUND)
7911 (CG_SET_FILL_COLOR_WITH_FACE_BACKGROUND)
7912 (CG_SET_STROKE_COLOR_WITH_FACE_FOREGROUND): Modify from
7913 *_WITH_GC_* to take face and f as parameters.
7914 (macfont_draw): Check for DRAW_MOUSE_FACE and set face accordingly.
7915 Use *_WITH_FACE_*, and pass face as parameter (Bug#16425).
7916
7917 2014-01-13 Daniel Colascione <dancol@dancol.org>
7918
7919 Fix menu item updating in the presence of the Unity global menu
7920 GTK+ module.
7921
7922 * gtkutil.h (xg_have_tear_offs): Add frame parameter
7923 * gtkutil.c (xg_have_tear_offs): Count the global menu as a
7924 tear-off.
7925 (xg_update_menubar, xg_update_menu_item): Call g_object_notify when
7926 updating menus; explain why.
7927 (xg_update_frame_menubar): Remove the 23px hack: I can't repro the
7928 problem it's supposed to solve and it interferes with detecting
7929 the presence of a global menu.
7930 * xmenu.c (set_frame_menubar): Call xg_have_tear_offs with new
7931 parameter.
7932
7933 2014-01-11 K. Handa <handa@gnu.org>
7934
7935 * composite.c (composition_update_it): Fix indexing of
7936 LGSTRING_CHAR (Bug#15984).
7937
7938 2014-01-11 Fabrice Popineau <fabrice.popineau@gmail.com>
7939
7940 * unexw32.c (_start) [__MINGW64__]: Define to __start.
7941
7942 2014-01-11 Eli Zaretskii <eliz@gnu.org>
7943
7944 * xdisp.c (try_window_id): Don't use this function's optimizations
7945 if overlays in the buffer displayed by the window have changed
7946 since last redisplay. (Bug#16347)
7947 (message_dolog): Fix indentation.
7948
7949 2014-01-11 Martin Rudalics <rudalics@gmx.at>
7950
7951 * frame.c (frame_resize_pixelwise): Fix doc-string.
7952
7953 2014-01-10 Martin Rudalics <rudalics@gmx.at>
7954
7955 Fix handling of internal borders (Bug#16348).
7956 * dispnew.c (adjust_frame_glyphs_for_window_redisplay):
7957 Remove internal border width from pixel width of windows.
7958 (change_frame_size_1): Don't return early when frame's pixel
7959 size changes - we still have to record the new sizes in the
7960 frame structure.
7961 * w32fns.c (x_set_tool_bar_lines): Clear internal border width
7962 also when toolbar gets larger.
7963 * window.c (check_frame_size): Include internal_border_width in
7964 check.
7965 * xdisp.c (Ftool_bar_height): Fix doc-string typo.
7966 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
7967 In non-toolkit/non-GTK version clear internal border.
7968 * xterm.c (x_clear_under_internal_border): New function for
7969 non-toolkit/non-GTK version.
7970 (x_after_update_window_line): In non-toolkit/non-GTK version
7971 don't do that.
7972 (handle_one_xevent, x_set_window_size):
7973 Call x_clear_under_internal_border in non-toolkit/non-GTK version.
7974 * xterm.h (x_clear_under_internal_border): Extern it.
7975
7976 2014-01-07 Paul Eggert <eggert@cs.ucla.edu>
7977
7978 Fix misdisplay of interlaced GIFs with libgif5 (Bug#16372).
7979 * image.c (gif_load): libgif5 deinterlaces for us, so don't do
7980 it again.
7981
7982 2014-01-06 Eli Zaretskii <eliz@gnu.org>
7983
7984 * xdisp.c (redisplay_window): Don't skip window redisplay if the
7985 last value of point is not equal to buffer's point. (Bug#16129)
7986
7987 2014-01-05 Paul Eggert <eggert@cs.ucla.edu>
7988
7989 Spelling fixes.
7990 * nsterm.h (updateCollectionBehavior): Rename from
7991 updateCollectionBehaviour. All uses changed.
7992
7993 Port to GNU/Linux with recent grsecurity/PaX patches (Bug#16343).
7994 * Makefile.in (SETFATTR): New macro.
7995 (temacs$(EXEEXT)): Use it.
7996
7997 2014-01-04 Martin Rudalics <rudalics@gmx.at>
7998
7999 Fix maximization behavior on Windows (Bug#16300).
8000 * w32fns.c (w32_fullscreen_rect): Don't handle
8001 FULLSCREEN_MAXIMIZED and FULLSCREEN_NONE specially.
8002 * w32term.c (w32fullscreen_hook): Use SetWindowPlacement instead
8003 of SetWindowPos. Restore last placement also when leaving
8004 FULLSCREEN_HEIGHT and FULLSCREEN_WIDTH. Call ShowWindow in all
8005 but the FULLSCREEN_BOTH case.
8006
8007 2014-01-03 Paul Eggert <eggert@cs.ucla.edu>
8008
8009 Port to C89.
8010 * data.c (arithcompare_driver):
8011 * fileio.c (Fcar_less_than_car):
8012 * fns.c (internal_equal):
8013 * frame.c (delete_frame):
8014 * lisp.h (enum More_Lisp_Bits):
8015 * lread.c (read1):
8016 Avoid C99 constructs that don't work in C89.
8017 * data.c (ULL_MAX, count_trailing_zeros_ll): New macros,
8018 to port to C89, which doesn't have 'long long'.
8019 (count_trailing_zero_bits): Use them.
8020
8021 2014-01-03 Chong Yidong <cyd@gnu.org>
8022
8023 * doc.c (Fdocumentation): Remove dynamic-docstring-function.
8024
8025 2014-01-02 Martin Rudalics <rudalics@gmx.at>
8026
8027 Further adjust frame/window scrollbar width calculations.
8028 * window.c (apply_window_adjustment):
8029 Set windows_or_buffers_changed.
8030 (Fwindow_scroll_bars): Return actual scrollbar width.
8031 * xfns.c (x_set_scroll_bar_default_width): Rename wid to unit.
8032 For non-toolkit builds again use 14 as minimum width and set
8033 FRAME_CONFIG_SCROLL_BAR_WIDTH accordingly.
8034 * xterm.c (XTset_vertical_scroll_bar): Take width from
8035 WINDOW_SCROLL_BAR_AREA_WIDTH.
8036 (x_new_font): Rename wid to unit. Base calculation of new
8037 scrollbar width on toolkit used and make it analogous to that of
8038 x_set_scroll_bar_default_width.
8039 * w32fns.c (x_set_scroll_bar_default_width): Rename wid to unit.
8040 (Fx_create_frame): Call x_set_scroll_bar_default_width instead
8041 of GetSystemMetrics.
8042 * w32term.c (w32_set_vertical_scroll_bar): Take width from
8043 WINDOW_SCROLL_BAR_AREA_WIDTH.
8044 (x_new_font): Make it correspond to changes in xterm.c.
8045
8046 2014-01-01 Paul Eggert <eggert@cs.ucla.edu>
8047
8048 * lisp.h (EMACS_INT): Configure based on INTPTR_MAX, not LONG_MAX.
8049 This is a cleaner way to fix the MinGW-w64 porting problem.
8050 Check for INTPTR_MAX misconfiguration.
8051
8052 2014-01-01 Eli Zaretskii <eliz@gnu.org>
8053
8054 * search.c (newline_cache_on_off, find_newline): In indirect
8055 buffers, use the newline cache of the base buffer.
8056
8057 * insdel.c (invalidate_buffer_caches): If BUF is an indirect
8058 buffer, invalidate the caches of its base buffer. (Bug#16265)
8059
8060 * indent.c (width_run_cache_on_off, compute_motion): In indirect
8061 buffers, use the width-run cache of the base buffer.
8062
8063 * xdisp.c (redisplay_window): When the window displays an indirect
8064 buffer, and the character widths in the display table have
8065 changed, invalidate the width-run cache of the corresponding base
8066 buffer.
8067
8068 * fileio.c (Finsert_file_contents): When invalidating the newline
8069 cache, consider the case of inserting into indirect buffer.
8070
8071 * bidi.c (bidi_paragraph_cache_on_off, bidi_find_paragraph_start):
8072 In indirect buffers, use the paragraph cache of the base buffer.
8073
8074 2013-12-31 Martin Rudalics <rudalics@gmx.at>
8075
8076 * window.c (grow_mini_window): Fix last change.
8077
8078 2013-12-31 Jan Djärv <jan.h.d@swipnet.se>
8079
8080 * nsterm.m (windowDidResignKey:): Set mouse_moved to 0 (Bug#8421).
8081
8082 2013-12-31 Fabrice Popineau <fabrice.popineau@supelec.fr>
8083
8084 * w32term.c (w32_initialize): Use LCID and LOWORD.
8085
8086 * w32proc.c (create_child): Use pid_t for 5th argument.
8087 (IsValidLocale): Don't provide prototype for MinGW64.
8088 (Fw32_get_valid_keyboard_layouts, Fw32_get_keyboard_layout)
8089 (Fw32_set_keyboard_layout): Use HKL and HIWORD/LOWORD.
8090
8091 * w32heap.c (allocate_heap) [_WIN64]: Use "ull", not "i64", which
8092 MinGW64 doesn't support.
8093
8094 * lisp.h (EMACS_INT) [_WIN64]: Define for the MinGW64 build.
8095
8096 * w32.c (set_named_security_info): New function.
8097 (acl_set_file): Fall back on set_named_security_info if
8098 set_file_security fails.
8099 (g_b_init_set_named_security_info_w)
8100 (g_b_init_set_named_security_info_a): New static variables.
8101 (globals_of_w32): Initialize them to zero.
8102 (set_named_security_info): Set them to non-zero if the
8103 corresponding API is available.
8104 (SetNamedSecurityInfoW_Proc, SetNamedSecurityInfoA_Proc):
8105 New function typedefs.
8106
8107 2013-12-31 Martin Rudalics <rudalics@gmx.at>
8108
8109 Some more fixes following pixelwise resize changes including one
8110 for Bug#16306.
8111 * gtkutil.c (x_wm_set_size_hint): Have size hints respect value
8112 of frame_resize_pixelwise.
8113 * widget.c (pixel_to_text_size): New function.
8114 (update_wm_hints): Have size hints respect value of
8115 frame_resize_pixelwise.
8116 (EmacsFrameResize): Alway process resize requests pixelwise.
8117 * window.c (grow_mini_window): Make sure mini window is at least
8118 one line tall.
8119 * xdisp.c (display_menu_bar): Make sure menubar extends till
8120 right end of frame.
8121 * xfns.c (x_set_menu_bar_lines): Resize frame windows pixelwise.
8122 (x_set_tool_bar_lines): Calculate pixelwise.
8123 * xterm.c (x_wm_set_size_hint): Have size hints respect value of
8124 frame_resize_pixelwise.
8125
8126 2013-12-30 Juanma Barranquero <lekktu@gmail.com>
8127
8128 * fileio.c (Fcopy_file) [!WINDOWSNT]: Don't declare on Windows
8129 variables not used there.
8130
8131 2013-12-30 Eli Zaretskii <eliz@gnu.org>
8132
8133 * w32.c (sys_umask): New function. (Bug#16299)
8134
8135 2013-12-30 Martin Rudalics <rudalics@gmx.at>
8136
8137 * dispnew.c (change_frame_size_1): Take old width of root window
8138 from that window's pixel width. (Bug#16284)
8139
8140 2013-12-29 Paul Eggert <eggert@cs.ucla.edu>
8141
8142 Plain copy-file no longer chmods an existing destination (Bug#16133).
8143 * fileio.c (realmask): Now a static var, not a local.
8144 (barf_or_query_if_file_exists): New arg KNOWN_TO_EXIST.
8145 Remove arg STATPTR. All uses changed.
8146 (Fcopy_file): Do not alter permissions of existing destinations,
8147 unless PRESERVE-PERMISSIONS (renamed from
8148 PRESERVE-EXTENDED-ATTRIBUTES) is non-nil.
8149 Avoid race when testing for existing destinations and for
8150 when input and output files are the same.
8151 If changing the group fails, adjust both default and
8152 preserved permissions so that access is not granted to the
8153 wrong group.
8154 (Fset_default_file_modes, init_fileio): Update realmask.
8155 (Fdefault_file_modes): Use realmask instead of calling umask.
8156
8157 2013-12-28 Paul Eggert <eggert@cs.ucla.edu>
8158
8159 Fix pipe bug with OS X emacs --daemon (Bug#16262).
8160 * emacs.c (main) [DAEMON_MUST_EXEC]: Clear the close-on-exec
8161 flags on the daemon pipe ends before execing.
8162
8163 2013-12-28 Eli Zaretskii <eliz@gnu.org>
8164
8165 * w32fns.c (Fx_create_frame): Error out if called from a TTY
8166 session. (Bug#14739)
8167
8168 2013-12-27 Jarek Czekalski <jarekczek@poczta.onet.pl>
8169
8170 * callproc.c (Vexec_path): Document that exec-directory is in it.
8171
8172 2013-12-27 Steve Purcell <steve@sanityinc.com> (tiny change)
8173
8174 * nsterm.m (syms_of_nsterm): Enable ns-use-srgb-colorspace by
8175 default.
8176
8177 2013-12-27 Chong Yidong <cyd@gnu.org>
8178
8179 * data.c (Fsymbol_function): Doc fix.
8180
8181 2013-12-26 Martin Rudalics <rudalics@gmx.at>
8182
8183 Some more tinkering with Bug#16051.
8184 * window.c (resize_frame_windows): Don't let the size of the
8185 root window drop below the frame's default character size.
8186 Never ever delete any subwindows - let the window manager do the
8187 clipping.
8188
8189 * w32fns.c (x_set_tool_bar_lines): Rewrite calculation of number
8190 of toolbar lines needed when they exceed the height of the root
8191 window.
8192 (unwind_create_frame_1): New function.
8193 (Fx_create_frame): Generally inhibit calling the window
8194 configuration change hook here. Remove extra call to
8195 change_frame_size - it's not needed when we don't run the
8196 configuration change hook.
8197
8198 2013-12-26 Paul Eggert <eggert@cs.ucla.edu>
8199
8200 Fix core dumps with gcc -fsanitize=address and GNU/Linux.
8201 On my Fedora 19 platform the core dumps were so big that
8202 my desktop became nearly catatonic.
8203 * alloc.c (no_sanitize_memcpy) [MAX_SAVE_STACK > 0]: New function.
8204 (Fgarbage_collect) [MAX_SAVE_STACK > 0]: Use it.
8205 (USE_ALIGNED_MALLOC): Do not define if addresses are sanitized.
8206 (mark_memory): Use ATTRIBUTE_NO_SANITIZE_ADDRESS rather than
8207 a clang-only syntax.
8208 * conf_post.h (__has_feature): New macro, if not already defined.
8209 (ADDRESS_SANITIZER, ADDRESS_SANITIZER_WORKAROUND)
8210 (ATTRIBUTE_NO_SANITIZE_ADDRESS): New macros.
8211
8212 2013-12-25 Eli Zaretskii <eliz@gnu.org>
8213
8214 * w32fns.c (Fw32_shell_execute): Make DOCUMENT absolute only if it
8215 is a file name. (Bug#16252)
8216
8217 2013-12-25 Chong Yidong <cyd@gnu.org>
8218
8219 * keyboard.c (Voverriding_terminal_local_map)
8220 (Voverriding_local_map): Doc fix.
8221
8222 * keymap.c (Vemulation_mode_map_alists): Doc fix.
8223
8224 2013-12-24 Eli Zaretskii <eliz@gnu.org>
8225
8226 * w32fns.c (Fw32_shell_execute): Ensure DOCUMENT is an absolute
8227 file name when it is submitted to ShellExecute. Simplify code.
8228 Don't test DOCUMENT for being a string, as that is enforced by
8229 CHECK_STRING. Doc fix.
8230
8231 2013-12-23 Eli Zaretskii <eliz@gnu.org>
8232
8233 * xdisp.c (tool_bar_height): Use WINDOW_PIXEL_WIDTH to set up the
8234 iterator X limits, not FRAME_TOTAL_COLS, for consistency with what
8235 redisplay_tool_bar does. Improve and fix commentary.
8236 (hscroll_window_tree): Don't assume w->cursor.vpos is within the
8237 limits of the glyph matrices. (Bug#16051)
8238 (redisplay_tool_bar): Modify the tool-bar-lines frame parameter
8239 only when the new size is different from the old one, and the new
8240 size can be achieved given the frame height.
8241
8242 2013-12-23 Jan Djärv <jan.h.d@swipnet.se>
8243
8244 * conf_post.h: Use unsigned it for bool_bf if GNUSTEP (Bug#16210).
8245
8246 2013-12-23 Glenn Morris <rgm@gnu.org>
8247
8248 * lread.c (Fload): Mention load-prefer-newer in doc.
8249
8250 2013-12-22 Martin Rudalics <rudalics@gmx.at>
8251
8252 Handle Bug#16207 by being more restrictive when running hooks.
8253 * window.c (unwind_change_frame): New function.
8254 (Fset_window_configuration): Don't run configuration change hook
8255 while the frame configuration is unsafe. Call select_window
8256 twice.
8257
8258 2013-12-22 Xue Fuqiao <xfq.free@gmail.com>
8259
8260 * lread.c (syms_of_lread) <load_prefer_newer>: Doc fix.
8261
8262 2013-12-21 Jan Djärv <jan.h.d@swipnet.se>
8263
8264 * nsterm.h: Declare EmacsColor category.
8265
8266 * nsterm.m (NSColor): Implement EmacsColor category.
8267 (ns_get_color): Use colorUsingDefaultColorSpace.
8268 (ns_get_color, ns_term_init): Use colorForEmacsRed.
8269
8270 * nsfns.m (Fxw_color_values): Use colorUsingDefaultColorSpace.
8271
8272 2013-12-21 Eli Zaretskii <eliz@gnu.org>
8273
8274 * image.c (fn_png_longjmp) [WINDOWSNT]: Mark the function as
8275 having the PNG_NORETURN attribute, to avoid compiler warning in
8276 my_png_error.
8277
8278 2013-12-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
8279
8280 * w32term.h (struct scroll_bar): Remove member `fringe_extended_p'.
8281
8282 * w32term.c (w32_draw_fringe_bitmap, x_scroll_run): Remove code for
8283 fringe background extension.
8284 (x_scroll_bar_create): Remove variables `sb_left' and `sb_width',
8285 because they are now always the same as `left' and `width',
8286 respectively. Remove code for the case that `width' and
8287 `sb_width' are different.
8288
8289 2013-12-20 Martin Rudalics <rudalics@gmx.at>
8290
8291 Remove scroll_bar_actual_width from frames.
8292 * frame.h (struct frame): Remove scroll_bar_actual_width slot.
8293 * frame.c (Fscroll_bar_width): Return scroll bar area width.
8294 (x_figure_window_size):
8295 * nsterm.m (x_set_window_size):
8296 * widget.c (set_frame_size):
8297 * w32term.c (x_set_window_size):
8298 * xterm.c (x_set_window_size, x_set_window_size_1): Don't set
8299 scroll_bar_actual_width.
8300
8301 Convert scroll_bar members to integers on Windows.
8302 * w32term.h (struct scroll_bar): Convert top, left, width,
8303 height, start, end and dragging to integers.
8304 * w32fns.c (w32_createscrollbar): Remove XINT conversions for
8305 scroll_bar members.
8306 * w32term.c (w32_set_scroll_bar_thumb)
8307 (w32_scroll_bar_handle_click): Remove XINT conversions for
8308 scroll_bar members. Treat bar->dragging as integer.
8309 (x_scroll_bar_create): Call ALLOCATE_PSEUDOVECTOR with "top" as
8310 first element. Remove XINT conversions for scroll_bar members.
8311 (w32_set_vertical_scroll_bar, x_scroll_bar_report_motion):
8312 Remove XINT conversions for scroll_bar members.
8313
8314 Fix assignment for new window total sizes.
8315 * window.c (Fwindow_resize_apply_total): Assign values for
8316 minibuffer window.
8317
8318 2013-12-20 Chong Yidong <cyd@gnu.org>
8319
8320 * textprop.c (Fadd_face_text_property): Doc fix. Rename `appendp'
8321 argument to `append'.
8322
8323 2013-12-19 Eli Zaretskii <eliz@gnu.org>
8324
8325 * xdisp.c (extend_face_to_end_of_line): Use default face, not the
8326 current text face, for extending the face of the display margins.
8327 (Bug#16192)
8328
8329 * casefiddle.c (Fupcase_word, Fdowncase_word, Fcapitalize_word):
8330 Doc fix. (Bug#16190)
8331
8332 2013-12-19 Jan Djärv <jan.h.d@swipnet.se>
8333
8334 * nsterm.h (KEY_NS_DRAG_FILE, KEY_NS_DRAG_COLOR, KEY_NS_DRAG_TEXT):
8335 Remove.
8336
8337 * nsterm.m (Qfile, Qurl): New.
8338 (EV_MODIFIERS2): New macro.
8339 (EV_MODIFIERS): Use EV_MODIFIERS2.
8340 (ns_term_init): Remove font and color from DND, does not work on
8341 newer OSX, and other ports don't have them.
8342 (performDragOperation:): Handle modifiers used during drag.
8343 Use DRAG_N_DROP_EVENT instead of NS specific events (Bug#8051).
8344 Remove global Lisp variables used to communicate with ns-win.el.
8345 Remove font and color handling.
8346 (syms_of_nsterm): Defsym Qfile and Qurl.
8347
8348 2013-12-19 Anders Lindgren <andlind@gmail.com>
8349
8350 * nsterm.m (NSTRACE_SIZE, NSTRACE_RECT): New macros.
8351 (ns_constrain_all_frames, x_set_offset): Remove assignment to
8352 dont_constrain.
8353 (updateFrameSize:, windowWillResize:toSize:): Add trace.
8354 (constrainFrameRect): Remove special case nr_screens == 1.
8355 Don't constrain size to size of view.
8356
8357 * nsterm.h (ns_output): Remove dont_constrain.
8358
8359 2013-12-19 Anders Lindgren <andlind@gmail.com>
8360
8361 * nsterm.m (mouseDown:): Generate HORIZ_WHEEL_EVENT.
8362
8363 2013-12-18 Paul Eggert <eggert@cs.ucla.edu>
8364
8365 Minor fixes for recent openp changes.
8366 * lisp.h (GCPRO7): New macro.
8367 * lread.c (openp): Use bool for boolean; all callers changed.
8368 Protect save_string from GC. Don't assume that file descriptors
8369 are nonzero. Redo save_mtime comparison to avoid bogus GCC
8370 warning about uninitialized variable.
8371
8372 2013-12-18 Eli Zaretskii <eliz@gnu.org>
8373
8374 * w32fns.c (emacs_abort): Use intptr_t as argument of
8375 INT_BUFSIZE_BOUND, to avoid compiler warnings.
8376
8377 2013-12-18 Glenn Morris <rgm@gnu.org>
8378
8379 * lread.c (Fload): Pass load_prefer_newer to openp.
8380 Don't bother checking mtime if openp already did it.
8381 (openp): Add `newer' argument, to check all suffixes
8382 and find the newest file.
8383 (syms_of_lread) <load_prefer_newer>: New option. (Bug#2061)
8384 * callproc.c (call_process):
8385 * charset.c (load_charset_map_from_file):
8386 * emacs.c (init_cmdargs):
8387 * image.c (x_create_bitmap_from_file, x_find_image_file):
8388 * lisp.h (openp):
8389 * lread.c (Flocate_file_internal):
8390 * process.c (Fformat_network_address):
8391 * sound.c (Fplay_sound_internal):
8392 * w32.c (check_windows_init_file):
8393 * w32proc.c (sys_spawnve): Update for new arg spec of openp.
8394
8395 * emacs.c (standard_args) [HAVE_NS]: Remove -disable-font-backend.
8396
8397 2013-12-17 Eli Zaretskii <eliz@gnu.org>
8398
8399 * w32.c (getloadavg): Don't index samples[] array with negative
8400 indices. Recover from wall-clock time being set backwards.
8401
8402 * w32term.c (w32_initialize): Declare the argument of
8403 set_user_model as const.
8404
8405 * w32menu.c <MessageBoxW_Proc>: Fix argument declarations.
8406 (w32_menu_show): Constify some arguments passed to MessageBox.
8407
8408 * w32uniscribe.c (uniscribe_font_driver): Use LISP_INITIALLY_ZERO
8409 to initialize Lisp objects.
8410
8411 * w32font.c (w32font_driver): Use LISP_INITIALLY_ZERO to
8412 initialize Lisp objects.
8413
8414 * frame.c (x_set_frame_parameters) [HAVE_X_WINDOWS]: Declare and
8415 use variables used only on X under that condition.
8416
8417 * fileio.c (Fcopy_file) [!WINDOWSNT]: Don't declare on Windows
8418 variables not used there.
8419
8420 2013-12-16 Paul Eggert <eggert@cs.ucla.edu>
8421
8422 Fix problems with CANNOT_DUMP and EMACSLOADPATH.
8423 * lread.c (init_lread): If CANNOT_DUMP, we can't be dumping.
8424
8425 2013-12-16 Eli Zaretskii <eliz@gnu.org>
8426
8427 * xdisp.c (Fmove_point_visually): Fix subtle bugs in the fallback
8428 code, revealed in presence of R2L characters, character
8429 compositions, and display vectors. A better fix for Bug#16148.
8430 (extend_face_to_end_of_line): Don't reference tool_bar_window in
8431 GTK and NS builds, they don't have this member of struct frame.
8432
8433 * dispextern.h (struct composition_it): Correct a comment for the
8434 'width' member.
8435
8436 2013-12-16 Paul Eggert <eggert@cs.ucla.edu>
8437
8438 * font.h (valid_font_driver) [!ENABLE_CHECKING]: Define a dummy.
8439 This prevents a compilation error on C compilers that do not
8440 default functions to return 'int' if not declared. Also, add
8441 INLINE_HEADER_BEGIN and INLINE_HEADER_END to this include file,
8442 since it now uses inline functions.
8443
8444 2013-12-16 Eli Zaretskii <eliz@gnu.org>
8445
8446 * xdisp.c (extend_face_to_end_of_line): Don't fill background of
8447 display margins on mode line, header line, and in the frame's
8448 tool-bar window. (Bug#16165)
8449
8450 2013-12-16 Andreas Schwab <schwab@suse.de>
8451
8452 * gnutls.c (Fgnutls_boot): Properly check Flistp return value.
8453
8454 2013-12-16 Teodor Zlatanov <tzz@lifelogs.com>
8455
8456 * gnutls.c (Fgnutls_boot): Use `Flistp' instead of
8457 `CHECK_LIST_CONS'.
8458
8459 2013-12-16 Martin Rudalics <rudalics@gmx.at>
8460
8461 * w32term.c (w32_enable_frame_resize_hack): Default to 1.
8462
8463 2013-12-16 Dmitry Antipov <dmantipov@yandex.ru>
8464
8465 * font.c (valid_font_driver) [ENABLE_CHECKING]: New function
8466 intended to find bogus pointers in font objects (Bug#16140).
8467 * font.h (valid_font_driver) [ENABLE_CHECKING]: Add prototype.
8468 * alloc.c (cleanup_vector): Use valid_font_driver in eassert.
8469 (compact_font_cache_entry, compact_font_caches) [!HAVE_NTGUI]:
8470 Disable for MS-Windows due to Bug#15876; apparently this
8471 requires more or less substantial changes in fontset code.
8472 * xfont.c (xfont_close):
8473 * xftfont.c (xftfont_close): Call x_display_info_for_display
8474 to check whether 'Display *' is valid (Bug#16093 and probably
8475 Bug#16069).
8476
8477 2013-12-15 Eli Zaretskii <eliz@gnu.org>
8478
8479 * fileio.c (Fexpand_file_name) [WINDOWSNT]: Fix conditionals.
8480 Reported by Juanma Barranquero <lekktu@gmail.com>.
8481
8482 * process.c (Fprocess_send_eof): Don't crash if someone tries to
8483 open a pty on MS-Windows. (Bug#16152)
8484
8485 * emacs.c (decode_env_path): Fix bogus comparison against
8486 emacs_dir. Reported by Juanma Barranquero <lekktu@gmail.com>.
8487
8488 2013-12-15 Juanma Barranquero <lekktu@gmail.com>
8489
8490 * w32fns.c (Fw32_shell_execute): Remove unused local variable.
8491 (Fx_file_dialog): Add parentheses around && to silence warning.
8492
8493 * w32term.c (construct_drag_n_drop): Remove unused local variable.
8494
8495 2013-12-15 Eli Zaretskii <eliz@gnu.org>
8496
8497 * xdisp.c (extend_face_to_end_of_line): Extend background of
8498 non-default face in margin areas as well. (Bug#16151)
8499 (display_line): Call extend_face_to_end_of_line for continued
8500 lines as well, if the display margins have non-zero width.
8501 (set_glyph_string_background_width): When needed, set the
8502 extends_to_end_of_line_p flag on glyph strings to be drawn in
8503 margin areas, not only in the text area.
8504
8505 * frame.h (FRAME_MOUSE_UPDATE): Fix a typo that caused infloop at
8506 startup.
8507
8508 2013-12-15 Paul Eggert <eggert@cs.ucla.edu>
8509
8510 * gnutls.c (Fgnutls_boot): Fix typo; "!" applied to a Lisp_Object.
8511 Don't worry about verify_error being t, since it has to be a list.
8512
8513 2013-12-14 Paul Eggert <eggert@cs.ucla.edu>
8514
8515 Use bool for boolean, focusing on headers.
8516 * atimer.h, lisp.h, syssignal.h, syswait.h, unexelf.c:
8517 No need to include <stdbool.h>, since conf_post.h does it now.
8518 * buffer.h (BUF_COMPUTE_UNCHANGED, DECODE_POSITION)
8519 (BUFFER_CHECK_INDIRECTION, GET_OVERLAYS_AT, PER_BUFFER_VALUE_P)
8520 (SET_PER_BUFFER_VALUE_P):
8521 * ccl.c, ccl.h (setup_ccl_program):
8522 * ccl.h (CHECK_CCL_PROGRAM):
8523 * character.h (MAKE_CHAR_UNIBYTE, CHECK_CHARACTER_CAR)
8524 (CHECK_CHARACTER_CDR, CHAR_STRING_ADVANCE, NEXT_CHAR_BOUNDARY)
8525 (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE)
8526 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE)
8527 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, FETCH_CHAR_ADVANCE)
8528 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, INC_BOTH)
8529 (DEC_BOTH, BUF_INC_POS, BUF_DEC_POS):
8530 * charset.h (CHECK_CHARSET, CHECK_CHARSET_GET_ID)
8531 (CHECK_CHARSET_GET_ATTR, CHECK_CHARSET_GET_CHARSET)
8532 (CHARSET_FAST_MAP_SET):
8533 * coding.c (decode_coding_ccl, encode_coding_ccl):
8534 * coding.h (CHECK_CODING_SYSTEM, CHECK_CODING_SYSTEM_GET_SPEC)
8535 (CHECK_CODING_SYSTEM_GET_ID, SJIS_TO_JIS, SJIS_TO_JIS2)
8536 (JIS_TO_SJIS, JIS_TO_SJIS2, ENCODE_FILE, DECODE_FILE)
8537 (ENCODE_SYSTEM, DECODE_SYSTEM, ENCODE_UTF_8)
8538 (decode_coding_c_string):
8539 * composite.h (COMPOSITION_DECODE_REFS, COMPOSITION_DECODE_RULE):
8540 * conf_post.h (has_attribute):
8541 * dispextern.h (trace_redisplay_p)
8542 (INC_TEXT_POS, DEC_TEXT_POS, SET_GLYPH_FROM_GLYPH_CODE)
8543 (SET_CHAR_GLYPH, SET_CHAR_GLYPH_FROM_GLYPH)
8544 (SET_GLYPH_FROM_CHAR_GLYPH)
8545 (WINDOW_WANTS_MODELINE_P, WINDOW_WANTS_HEADER_LINE_P)
8546 (FACE_SUITABLE_FOR_ASCII_CHAR_P, FACE_SUITABLE_FOR_CHAR_P)
8547 (PRODUCE_GLYPHS, reset_mouse_highlight, in_display_vector_p)
8548 (cursor_in_mouse_face_p):
8549 * dispnew.c (adjust_glyph_matrix, clear_glyph_matrix_rows)
8550 (blank_row, prepare_desired_row)
8551 (build_frame_matrix_from_leaf_window, make_current)
8552 (mirror_make_current, mirrored_line_dance, mirror_line_dance)
8553 (update_window, scrolling_window, update_frame_line):
8554 * disptab.h (GLYPH_FOLLOW_ALIASES):
8555 * editfns.c (Fformat):
8556 * font.h (FONT_WEIGHT_SYMBOLIC, FONT_SLANT_SYMBOLIC)
8557 (FONT_WIDTH_SYMBOLIC, FONT_WEIGHT_FOR_FACE, FONT_SLANT_FOR_FACE)
8558 (FONT_WIDTH_FOR_FACE, FONT_WEIGHT_NAME_NUMERIC)
8559 (FONT_SLANT_NAME_NUMERIC, FONT_WIDTH_NAME_NUMERIC)
8560 (FONT_SET_STYLE, CHECK_FONT, CHECK_FONT_SPEC, CHECK_FONT_ENTITY)
8561 (CHECK_FONT_OBJECT, CHECK_FONT_GET_OBJECT, FONT_ADD_LOG)
8562 (FONT_DEFERRED_LOG):
8563 * frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_WINDOW_P)
8564 (FRAME_EXTERNAL_TOOL_BAR, FRAME_EXTERNAL_MENU_BAR, FOR_EACH_FRAME)
8565 (FRAME_MOUSE_UPDATE):
8566 * fringe.c (Fdefine_fringe_bitmap):
8567 * image.c (x_create_bitmap_from_data, x_create_bitmap_mask)
8568 (x_create_bitmap_from_xpm_data, xpm_load_image):
8569 * intervals.h (INTERVAL_HAS_PARENT, INTERVAL_PARENT)
8570 (set_interval_parent, RESET_INTERVAL, COPY_INTERVAL_CACHE)
8571 (MERGE_INTERVAL_CACHE):
8572 * keymap.h (KEYMAPP):
8573 * lisp.h (eassert, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE)
8574 (STRING_SET_UNIBYTE, STRING_SET_MULTIBYTE, DEFSYM, PSEUDOVECTORP)
8575 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER)
8576 (CHECK_NUMBER_COERCE_MARKER, CHECK_NUMBER_OR_FLOAT_COERCE_MARKER)
8577 (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL, DEFVAR_INT)
8578 (DEFVAR_BUFFER_DEFAULTS, DEFVAR_KBOARD, QUIT)
8579 (RETURN_UNGCPRO, USE_SAFE_ALLOCA, SAFE_NALLOCA, SAFE_FREE)
8580 (SAFE_ALLOCA_LISP, FOR_EACH_ALIST_VALUE, functionp):
8581 * syntax.h (SYNTAX_ENTRY, SYNTAX_WITH_FLAGS, SYNTAX)
8582 (UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD)
8583 (SETUP_BUFFER_SYNTAX_TABLE):
8584 * systime.h (timespec_valid_p):
8585 * term.c (save_and_enable_current_matrix):
8586 * window.h (WINDOW_MENU_BAR_P, WINDOW_TOOL_BAR_P):
8587 * xdisp.c (in_display_vector_p, display_tool_bar_line)
8588 (redisplay_internal, try_window_reusing_current_matrix)
8589 (sync_frame_with_window_matrix_rows, try_window_id)
8590 (display_menu_bar, display_tty_menu_item, display_mode_line)
8591 (coords_in_mouse_face_p, cursor_in_mouse_face_p):
8592 * xdisp.c (trace_redisplay_p) [GLYPH_DEBUG]:
8593 * xmenu.c (xmenu_show):
8594 * xterm.c (use_xim, x_term_init):
8595 * xterm.h (XSync, GTK_CHECK_VERSION, use_xim, SET_SCROLL_BAR_X_WIDGET)
8596 (struct x_bitmap_record):
8597 Use bool for booleans.
8598 * ccl.c (struct buffer_text):
8599 * ccl.h (struct ccl_program):
8600 * charset.h (struct charset):
8601 * cm.h (struct cm):
8602 * coding.h (struct iso_2022_spec, struct coding_system):
8603 * dispextern.h (struct glyph, struct glyph_matrix, struct glyph_row)
8604 (struct glyph_string, struct face, struct face_cache)
8605 (struct bidi_string_data, struct bidi_it)
8606 (struct draw_fringe_bitmap_params, struct it, Mouse_HLInfo)
8607 (struct image):
8608 * editfns.c (Fformat):
8609 * frame.h (struct frame):
8610 * fringe.c (struct fringe_bitmap):
8611 * intervals.h (struct interval):
8612 * keyboard.h (struct kboard):
8613 * lisp.h (struct Lisp_Symbol, struct Lisp_Misc_Any, struct Lisp_Marker)
8614 (struct Lisp_Overlay, struct Lisp_Save_Value, struct Lisp_Free)
8615 (struct Lisp_Buffer_Local_Value, union specbinding):
8616 * macfont.m (struct macfont_info):
8617 * process.h (struct Lisp_Process):
8618 * termchar.h (struct tty_display_info):
8619 * window.h (struct window):
8620 * xterm.h (struct x_output):
8621 Use bool_bf for boolean bit-fields.
8622 * ccl.c (setup_ccl_program): Now returns bool instead of -1 or 0.
8623 All callers changed.
8624 * ccl.h (struct ccl_program): Remove unused members private_state,
8625 src_multibyte, dst_multibyte, cr_consumed, suppress_error,
8626 eight_bit_control.
8627 (struct ccl_spec): Remove unused members cr_carryover,
8628 eight_bit_carryover.
8629 * conf_post.h: Include <stdbool.h>.
8630 (bool_bf): New type.
8631 * dispextern.h (TRACE, PREPARE_FACE_FOR_DISPLAY):
8632 * intervals.h (RESET_INTERVAL, COPY_INTERVAL_CACHE)
8633 (MERGE_INTERVAL_CACHE): Surround statement macro with proper
8634 'do { ... } while (false)' brackets.
8635 * dispextern.h (IF_DEBUG): Properly parenthesize and convert to void.
8636 Args must now be expressions; all callers changed.
8637 (SET_MATRIX_ROW_ENABLED_P): Assume 2nd arg is bool.
8638 (PRODUCE_GLYPHS): Simplify use of boolean.
8639 * fileio.c (Fcopy_file):
8640 If I is an integer, prefer 'if (I != 0)' to 'if (I)'.
8641 * lisp.h (UNGCPRO): Return void, not int.
8642 (FOR_EACH_TAIL): Use void expression, not int expression.
8643 * region-cache.c: Reindent.
8644 * region-cache.h: Copy comments from region-cache.c, to fix
8645 incorrect remarks about booleans.
8646
8647 2013-12-14 Eli Zaretskii <eliz@gnu.org>
8648
8649 * xdisp.c (Fmove_point_visually): Expect overshoot in move_it_to
8650 when character at point is displayed from a display vector.
8651 (Bug#16148)
8652
8653 2013-12-14 Teodor Zlatanov <tzz@lifelogs.com>
8654
8655 * gnutls.c: Replace `:verify_hostname_error' with `:verify_error',
8656 now a list of certificate validation checks that will abort a
8657 connection with an error.
8658 (Fgnutls_boot): Document it and use it.
8659
8660 2013-12-14 Martin Rudalics <rudalics@gmx.at>
8661
8662 * w32term.c (w32_enable_frame_resize_hack): New variable.
8663 (x_set_window_size): Use it to hack frame resizing on Windows
8664 (Bug#16028).
8665
8666 2013-12-14 Eli Zaretskii <eliz@gnu.org>
8667
8668 * fileio.c (Fcopy_file) [WINDOWSNT]: Move most of the
8669 Windows-specific code to w32.c. Change error message text to
8670 match that of Posix platforms.
8671
8672 * w32.c (w32_copy_file): New function, most of the code copied and
8673 reworked from Fcopy_file. Improve error handling. Plug memory
8674 leak when errors are thrown. Support file names outside of the
8675 current codepage. (Bug#7100)
8676
8677 2013-12-13 Paul Eggert <eggert@cs.ucla.edu>
8678
8679 * lread.c (load_path_default): Prototype.
8680
8681 2013-12-13 Glenn Morris <rgm@gnu.org>
8682
8683 * lread.c: Unconditionally reset load-path after dumping. (Bug#16107)
8684 (dump_path): Remove.
8685 (load-path-default): Remove `changed' argument.
8686 Do not set dump_path permanently. Simplify.
8687 (init_lread): Simplify.
8688 (syms_of_lread): Remove dump_path.
8689
8690 2013-12-13 Dmitry Antipov <dmantipov@yandex.ru>
8691
8692 * alloc.c, font.c, font.h, ftfont.c, ftxfont.c, macfont.m,
8693 * nsfont.m, w32font.c, xfont.c, xftfont.c: Revert last and
8694 2013-12-12 font-related change to avoid Bug#16128, which
8695 is quite hard to fix without even more substantial changes.
8696
8697 2013-12-13 Dmitry Antipov <dmantipov@yandex.ru>
8698
8699 * font.c (font_close_object): Check for live frame (Bug#16128).
8700
8701 2013-12-13 Paul Eggert <eggert@cs.ucla.edu>
8702
8703 * gnutls.c, gnutls.h (emacs_gnutls_record_check_pending):
8704 Return ptrdiff_t, not int, since it's a buffer size.
8705 Reindent/reparen some macros to a more Gnuish style.
8706
8707 2013-12-12 Paul Eggert <eggert@cs.ucla.edu>
8708
8709 Avoid undefined behavior with huge regexp interval counts.
8710 * regex.c (GET_INTERVAL_COUNT): Rename from 'GET_UNSIGNED_NUMBER',
8711 since it's now specialized to interval counts. All uses changed.
8712 Do not assume wraparound on signed integer overflow.
8713 (regex_compile): Simplify based on the above changes.
8714
8715 2013-12-12 Eli Zaretskii <eliz@gnu.org>
8716
8717 Support file names on MS-Windows that use characters outside of
8718 the current system codepage. (Bug#7100)
8719
8720 * w32.c (get_file_security, set_file_security)
8721 (create_symbolic_link): Separate pointers and boolean flags for
8722 ANSI and Unicode APIs. Use the latter if w32_unicode_filenames is
8723 non-zero, else the former.
8724 (codepage_for_filenames, filename_to_utf16, )
8725 (filename_from_utf16, filename_to_ansi, filename_from_ansi):
8726 New functions.
8727 (init_user_info): Allow $HOME and $SHELL to include non-ANSI
8728 characters.
8729 (normalize_filename): Lose the DBCS code, now works on UTF-8.
8730 Accept only one argument; all callers changed.
8731 (dostounix_filename): Remove the second argument, now works in
8732 UTF-8. All callers changed.
8733 (parse_root): Lose DBCS code.
8734 (get_long_basename, w32_get_short_filename, init_environment)
8735 (GetCachedVolumeInformation, sys_readdir, open_unc_volume)
8736 (read_unc_volume, logon_network_drive, faccessat, sys_chdir)
8737 (sys_chmod, sys_creat, sys_fopen, sys_link, sys_mkdir, sys_open)
8738 (sys_rename_replace, sys_rmdir, sys_unlink, stat_worker, utime)
8739 (is_symlink, readlink, chase_symlinks, w32_delayed_load): Work in
8740 Unicode mode if w32_unicode_filenames is non-zero, in ANSI mode
8741 otherwise.
8742 (ansi_encode_filename): New function.
8743 (get_emacs_configuration, get_emacs_configuration_options):
8744 Functions deleted.
8745 (add_volume_info, GetCachedVolumeInformation): Run the input file
8746 name through unixtodos_filename, to ensure it is stored and
8747 referenced in canonical form.
8748 (get_volume_info): Lose the DBCS code, now works in UTF-8.
8749 (logon_network_drive, sys_link, utime): Improve error handling.
8750 (sys_access): New function.
8751 (hashval, generate_inode_val): Unused functions deleted.
8752 (symlink, readlink, readlinkat): Lose DBCS code, now works in UTF-8.
8753 (check_windows_init_file): Convert error message from UTF-8 to
8754 ANSI codepage, for display in the message box.
8755 (globals_of_w32): Set w32_unicode_filenames according to the OS
8756 version.
8757
8758 * w32term.c (construct_drag_n_drop): Work in Unicode mode when
8759 w32_unicode_filenames is non-zero, ANSI mode otherwise.
8760 (syms_of_w32term): Declare w32-unicode-filenames.
8761
8762 * w32proc.c (new_child, delete_child): Remove code that handled
8763 unused pending_deletion and input_file members of the child struct.
8764 (create_child, sys_spawnve): Convert all file names to ANSI
8765 codepage. Use ANSI APIs explicitly; forcibly fail if any file
8766 name cannot be encoded in ANSI codepage. Don't use
8767 unixtodos_filename, mirror slashes by hand.
8768 (record_infile, record_pending_deletion): Functions deleted.
8769 (Fw32_short_file_name): Call w32_get_short_filename instead of
8770 GetShortPathName.
8771
8772 * w32notify.c (add_watch): Work in Unicode mode when
8773 w32_unicode_filenames is non-zero, ANSI mode otherwise.
8774 (Fw32notify_add_watch): Rewrite to avoid using GetFullPathName;
8775 instead, do the same with Lisp primitives.
8776
8777 * w32fns.c (file_dialog_callback, Fx_file_dialog)
8778 (Fsystem_move_file_to_trash, Fw32_shell_execute)
8779 (Ffile_system_info, Fdefault_printer_name): Work in Unicode mode
8780 when w32_unicode_filenames is non-zero, ANSI mode otherwise.
8781 (Fw32_shell_execute): Improve error reporting.
8782 (Fdefault_printer_name): Ifdef away for Cygwin.
8783
8784 * w32.h (struct _child_process): Remove input_file and
8785 pending_deletion members that are no longer used.
8786 (dostounix_filename, w32_get_short_filename, filename_from_ansi)
8787 (filename_to_ansi, filename_from_utf16, filename_to_utf16)
8788 (ansi_encode_filename): New and updated prototypes.
8789
8790 * unexw32.c (open_input_file, open_output_file, unexec): Use ANSI
8791 APIs explicitly.
8792 (unexec): Don't use dostounix_filename, it expects a file name in
8793 UTF-8. Instead, mirror backslashes by hand. Convert NEW_NAME to
8794 ANSI encoding.
8795
8796 * fileio.c (Ffile_name_directory, file_name_as_directory)
8797 (directory_file_name, Fexpand_file_name)
8798 (Fsubstitute_in_file_name) [WINDOWSNT]: Adapt to the change in
8799 arguments of dostounix_filename.
8800 (Fexpand_file_name) [WINDOWSNT]: Convert value of $HOME to UTF-8.
8801 use MAX_UTF8_PATH for size of file-name strings.
8802 (emacs_readlinkat): Build an explicitly unibyte string for file
8803 names.
8804 (syms_of_fileio) <file-name-coding-system>:
8805 <default-file-name-coding-system>: Mention MS-Windows peculiarities.
8806
8807 * emacs.c (init_cmdargs) [WINDOWSNT]: Convert argv[0] to UTF-8.
8808 (main) [WINDOWSNT]: Convert the argv[] elements that are files or
8809 directories to UTF-8.
8810 (decode_env_path) [WINDOWSNT]: Convert file names taken from the
8811 environment, and each element of the input PATH, to UTF-8.
8812
8813 * dired.c (file_attributes): Use build_unibyte_string explicitly
8814 to make Lisp strings from user and group names.
8815
8816 * coding.h (ENCODE_FILE, DECODE_FILE): Just call encode_file and
8817 decode_file.
8818
8819 * coding.c (decode_file_name, encode_file_name): New functions.
8820
8821 * termcap.c (tgetent): Adapt to the change in arguments of
8822 dostounix_filename.
8823
8824 * sysdep.c (sys_subshell) [WINDOWSNT]: Use MAX_UTF8_PATH for file
8825 names.
8826
8827 * msdos.c (dostounix_filename, init_environment): Adapt to the
8828 change in arguments of dostounix_filename.
8829
8830 * image.c (xpm_load, tiff_load, gif_load, imagemagick_load)
8831 [WINDOWSNT]: Encode file names passed to the image libraries in
8832 ANSI codepage.
8833
8834 * gnutls.c (Fgnutls_boot): Encode all file names passed to GnuTLS.
8835 [WINDOWSNT]: Convert file names to the current ANSI codepage.
8836
8837 * filelock.c (lock_file) [WINDOWSNT]: Adapt to the change in
8838 arguments of dostounix_filename.
8839
8840 2013-12-12 Dmitry Antipov <dmantipov@yandex.ru>
8841
8842 * font.h (struct font_entity) [HAVE_NS]: New field to record
8843 font driver which was used to create this entity.
8844 (struct font) [HAVE_WINDOW_SYSTEM]: New field to record
8845 frame where the font was opened.
8846 (font_close_object): Add prototype.
8847 * font.c (font_make_entity) [HAVE_NS]: Zero out driver field.
8848 (font_close_object): Not static any more. Lost frame arg.
8849 Adjust comment and users.
8850 * alloc.c (cleanup_vector): Call font_close_object to adjust
8851 per-frame font counters correctly. If HAVE_NS, also call
8852 driver-specific cleanup for font-entity objects.
8853 * ftfont.c (ftfont_open):
8854 * nsfont.m (nsfont_open):
8855 * w32font.c (w32font_open_internal):
8856 * xfont.c (xfont_open):
8857 * xftfont.c (xftfont_open): Save frame pointer in font object.
8858 * macfont.m (macfont_open): Likewise.
8859 (macfont_descriptor_entity): Save driver pointer to be able
8860 to call its free_entity routine when font-entity is swept.
8861 * ftxfont.c (ftxfont_open): Add eassert because frame
8862 pointer should be saved by ftfont_driver.open.
8863
8864 2013-12-12 Dmitry Antipov <dmantipov@yandex.ru>
8865
8866 * xterm.c (x_make_frame_visible): Restore hack which is needed when
8867 input polling is used. This is still meaningful for Cygwin, see
8868 http://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00351.html.
8869 * keyboard.c (poll_for_input_1, input_polling_used):
8870 Define unconditionally.
8871 * dispextern.h (FACE_SUITABLE_FOR_CHAR_P): Remove unused macro.
8872 (FACE_FOR_CHAR): Simplify because face_for_char does the same.
8873 * fontset.c (face_suitable_for_char_p) [0]: Remove unused function.
8874 (font_for_char): Prefer ptrdiff_t to int for buffer position.
8875 (face_for_char): Likewise. Rearrange eassert and return ASCII
8876 face for CHAR_BYTE8_P.
8877 * fontset.h (font_for_char, face_for_char): Adjust prototypes.
8878
8879 2013-12-11 Ken Brown <kbrown@cornell.edu>
8880
8881 * dispextern.h (erase_phys_cursor):
8882 * keyboard.h (make_ctrl_char): Declare prototypes if HAVE_NTGUI.
8883
8884 2013-12-11 Dmitry Antipov <dmantipov@yandex.ru>
8885
8886 * nsterm.m (x_free_frame_resources):
8887 * term.c (tty_free_frame_resources):
8888 * xterm.c (x_free_frame_resources): Do not check for non-NULL
8889 face cache because it's implied by free_frame_faces anyway.
8890 * w32term.c (x_free_frame_resources): Likewise. Do not call
8891 free_frame_faces twice.
8892
8893 2013-12-11 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
8894
8895 * editfns.c (Fformat_time_string): Mention %F in the doc.
8896
8897 2013-12-11 Martin Rudalics <rudalics@gmx.at>
8898
8899 * window.c (resize_frame_windows): Don't return immediately when
8900 the root window's size doesn't change - the minibuffer window
8901 may still have to be repositioned/resized.
8902 * xfns.c (Fx_create_frame): Always change the frame size after
8903 initializing the frame's faces.
8904 * xterm.c (handle_one_xevent): Don't set pixel sizes here,
8905 change_frame_size should already have done it.
8906 (x_new_font): Assign new tool- and menu-bar heights.
8907 (x_set_window_size_1): Account for tool- and menu-bar heights
8908 (Bug#16013). Don't set pixel sizes since change_frame_size
8909 should already have done it.
8910
8911 2013-12-11 Paul Eggert <eggert@cs.ucla.edu>
8912
8913 Remove the option of using libcrypto.
8914 * Makefile.in (LIB_CRYPTO): Remove.
8915 (LIBES): Don't use it.
8916
8917 2013-12-11 Juri Linkov <juri@jurta.org>
8918
8919 * term.c (term_get_fkeys_1): Remove non-standard IBM terminfo
8920 as obsolete to avoid conflicts with <S-up>. (Bug#13471)
8921
8922 2013-12-10 Dmitry Antipov <dmantipov@yandex.ru>
8923
8924 * xdisp.c (display_tool_bar_line): Don't extend on a previously
8925 drawn tool bar items (Bug#16058).
8926 * font.c (font_find_for_lface): Ensure SAFE_FREE on return.
8927
8928 2013-12-09 Ken Brown <kbrown@cornell.edu>
8929
8930 * frame.c (get_frame_param): Make extern if HAVE_NTGUI.
8931
8932 * lisp.h (get_frame_param): Adjust conditions for prototype
8933 declaration.
8934
8935 2013-12-09 Dmitry Antipov <dmantipov@yandex.ru>
8936
8937 * gtkutil.c (USE_NEW_GTK_FONT_CHOOSER) [HAVE_FREETYPE]:
8938 Avoid unused macro warning if configured --without-xft.
8939
8940 2013-12-09 Jan Djärv <jan.h.d@swipnet.se>
8941
8942 * alloc.c (Fmemory_limit): Avoid compiler warning. Return 0 always.
8943
8944 2013-12-08 Jan Djärv <jan.h.d@swipnet.se>
8945
8946 * nsterm.m (updateFrameSize:): Fix GNUstep toolbar not updating.
8947
8948 * emacs.c (main): Call fixup_locale a second time for GNUstep.
8949
8950 2013-12-08 Martin Rudalics <rudalics@gmx.at>
8951
8952 * frame.c (x_set_font): Mark frame as garbaged (Bug#16028).
8953
8954 2013-12-08 Paul Eggert <eggert@cs.ucla.edu>
8955
8956 Use libcrypto's checksum implementations if available, for speed.
8957 * Makefile.in (LIB_CRYPTO): New macro.
8958 (LIBES): Use it.
8959
8960 * frame.h (SET_FRAME_VISIBLE): Now an inline function.
8961 The macro didn't conform to C99 due to type mismatch,
8962 which caused compilation failure with Sun C 5.12,
8963 and it was confusing anyway. Include window.h to declare
8964 redisplay_other_windows.
8965
8966 2013-12-08 Stefan Monnier <monnier@iro.umontreal.ca>
8967
8968 * window.c (set_window_buffer): Update mode line (bug#16084).
8969
8970 2013-12-07 Paul Eggert <eggert@cs.ucla.edu>
8971
8972 Fix minor problems found by static checking.
8973 * keyboard.c (poll_for_input_1, input_polling_used):
8974 Define only if HAVE_NTGUI.
8975 * xmenu.c (popup_activate_callback): Omit unnecessary
8976 check against USE_X_TOOLKIT, which must be defined here anyway.
8977 * xterm.c, xterm.h (x_dispatch_event) [! (USE_X_TOOLKIT || USE_MOTIF)]:
8978 Now static.
8979
8980 2013-12-07 Martin Rudalics <rudalics@gmx.at>
8981
8982 * w32term.c (w32_read_socket): Fix int/Lisp_Object type mixup.
8983
8984 2013-12-07 Jan Djärv <jan.h.d@swipnet.se>
8985
8986 * gtkutil.c (tb_size_cb): Call xg_height_or_width_changed.
8987
8988 * nsterm.m (x_set_window_size): Remove fprintf.
8989 (init): Define always. Set applicationDidFinishLaunchingCalled
8990 for GNUstep.
8991 (applicationDidFinishLaunching:):
8992 Set applicationDidFinishLaunchingCalled.
8993 (applicationDidBecomeActive:): Call applicationDidFinishLaunching if
8994 not called.
8995
8996 * nsterm.h (EmacsApp): Add applicationDidFinishLaunchingCalled.
8997
8998 Pixel resize changes for NS (Bug#16049).
8999 * nsterm.m (x_set_window_size): Change parameters rows/cols to
9000 height/width. row/cols are locals.
9001 Pass pixelwise to check_frame_size. Don't set FRAME_PIXEL_WIDTH/HEIGHT.
9002 (updateFrameSize:): Remove gsextra. Adjust for pixelwise resize.
9003 (windowWillResize): Remove gsextra. Calculate extra as in
9004 updateFrameSize.
9005 (x_new_font): Don't change frame size if fullscreen.
9006 Change size pixelwise.
9007
9008 * nsfns.m (Fx_create_frame): Call change_frame_size twice as per
9009 comment in xfns.c. Change to pixelwise call.
9010
9011 2013-12-06 Eli Zaretskii <eliz@gnu.org>
9012
9013 * buffer.c (Fset_buffer_multibyte): Invalidate buffer caches.
9014 (Bug#16070)
9015
9016 2013-12-06 Dmitry Antipov <dmantipov@yandex.ru>
9017
9018 * xterm.c (input_signal_count): Remove.
9019 (x_dispatch_event): Define unconditionally.
9020 (x_make_frame_visible): Process X events until the frame
9021 is really visible (Bug#16027).
9022 * xterm.h (x_dispatch_event): Declare unconditionally.
9023
9024 2013-12-05 Jan Djärv <jan.h.d@swipnet.se>
9025
9026 * nsfns.m (ns_frame_parm_handlers): Add right/bottom_divider_width.
9027
9028 * nsterm.m (x_set_window_size): Handle pixelwise.
9029
9030 2013-12-05 Martin Rudalics <rudalics@gmx.at>
9031
9032 * w32term.c (x_new_font):
9033 * xterm.c (x_new_font): Calculate new frame size from new font
9034 size (Bug#16028).
9035
9036 2013-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
9037
9038 * lisp.h (FOR_EACH_TAIL): New macro.
9039 * fns.c (Fdelq): Use it to avoid inf-loops; remove QUIT.
9040
9041 * window.c (select_window): Call second wset_redisplay before we change
9042 selected_window (bug#16034).
9043
9044 2013-12-04 Paul Eggert <eggert@cs.ucla.edu>
9045
9046 * bidi.c (LRM_CHAR, RLM_CHAR): Remove; no longer used.
9047
9048 2013-12-04 Eli Zaretskii <eliz@gnu.org>
9049
9050 * w32xfns.c: Include window.h, to avoid a compiler warning.
9051
9052 2013-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
9053
9054 * window.c (window_scroll): Mark window for redisplay (bug#16034).
9055 (scroll_command, Fscroll_other_window): Don't cause redisplay now that
9056 window_scroll takes care of it.
9057 (Fset_window_point, Fdelete_other_windows_internal)
9058 (set_window_buffer, Fwindow_resize_apply, resize_frame_windows)
9059 (Fsplit_window_internal, Fdelete_window_internal)
9060 (Fresize_mini_window_internal, Fset_window_configuration)
9061 (apply_window_adjustment): Use fset_redisplay and wset_redisplay to
9062 cause redisplay instead of forcing a complete redisplay.
9063 * xdisp.c (wset_redisplay): Don't set windows_or_buffers_changed if
9064 we're only affecting the selected_window.
9065
9066 2013-12-04 Eli Zaretskii <eliz@gnu.org>
9067
9068 * bidi.c (bidi_get_type, bidi_get_category): Handle the isolate
9069 directional control characters. Update type and category
9070 determination according to the UBA from Unicode v6.3.
9071 (bidi_category_t): New category EXPLICIT_FORMATTING.
9072
9073 * dispextern.h (bidi_type_t): Update to include new bidirectional
9074 properties introduced with Unicode v6.3. (Bug#16043)
9075
9076 2013-12-04 Martin Rudalics <rudalics@gmx.at>
9077
9078 * xterm.c (XTflash): Fix coordinate of bottom area to flash
9079 (Bug#16044).
9080
9081 2013-12-04 Dmitry Antipov <dmantipov@yandex.ru>
9082
9083 * font.c (font_list_entities): Remove dummy assignment.
9084 * font.h (struct font) [HAVE_WINDOW_SYSTEM]: Group members which are
9085 used on graphic displays only. Remove unused 'font_encoder' member.
9086 (struct font_bitmap): Remove unused 'extra' member.
9087 * nsfont.m (nsfont_open):
9088 * w32font.c (w32font_open_internal):
9089 * ftfont.c (ftfont_get_bitmap): Adjust users.
9090
9091 2013-12-03 Paul Eggert <eggert@cs.ucla.edu>
9092
9093 Use bool for boolean.
9094 * tparam.c (tparam1):
9095 * undo.c (record_point, record_property_change):
9096 Use bool for boolean, for local vars that are always true or false.
9097
9098 Minor integer overflow fixes (Bug#16033).
9099 * window.c (Fset_window_new_pixel): Don't let new_pixel go negative.
9100 This improves on the previous fix to this function.
9101 (window_resize_check): When summing up pixel counts, don't rely on
9102 undefined behavior if the sum overflows.
9103
9104 2013-12-03 Martin Rudalics <rudalics@gmx.at>
9105
9106 * window.c (Fset_window_new_pixel): Don't choke at negative
9107 argument value (Bug#16033).
9108
9109 * xfns.c (Fx_create_frame): Add another call to change_frame_size
9110 to avoid crash in window_box_height.
9111
9112 * gtkutil.h: Fix external declaration of xg_frame_set_char_size.
9113 * gtkutil.c (xg_frame_set_char_size, style_changed_cb): Fix size
9114 calculation.
9115 * xterm.c (x_set_window_size): Fix size calculation (Bug#16013).
9116
9117 2013-12-03 Paul Eggert <eggert@cs.ucla.edu>
9118
9119 Minor integer overflow fixes.
9120 * window.c (Fset_window_new_pixel, grow_mini_window):
9121 * xdisp.c (Fwindow_text_pixel_size):
9122 Avoid undefined behavior on signed integer overflow.
9123 * xfns.c (x_set_mouse_color):
9124 Check that drag shape fits in 'unsigned', since that's what X wants.
9125
9126 2013-12-02 Eli Zaretskii <eliz@gnu.org>
9127
9128 Improve reporting of fatal exception on MS-Windows.
9129 * w32fns.c (my_exception_handler): New function.
9130 (globals_of_w32fns): Set it up as the unhandled exception
9131 handler. Initialize exception code and address to zeros.
9132 (emacs_abort): If the exception code and address are available,
9133 print them at the beginning of the backtrace. Fix the format of
9134 printing addresses (was producing 0x0x12345678 on XP).
9135 (Bug#15994)
9136
9137 2013-12-02 Helmut Eller <eller.helmut@gmail.com>
9138
9139 * eval.c (Fbacktrace__locals): New function.
9140 (syms_of_eval): Defsubr it.
9141
9142 2013-12-02 Dmitry Antipov <dmantipov@yandex.ru>
9143
9144 * font.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_DESCENT):
9145 Define here to unify between...
9146 * nsterm.h, w32term.h, xterm.h: ...port-specific headers.
9147 * w32term.h (CHECK_W32_FRAME): Remove unused macro.
9148
9149 2013-12-02 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
9150
9151 * xterm.h (struct scroll_bar): Remove member `fringe_extended_p'.
9152
9153 * xterm.c (x_draw_fringe_bitmap, x_scroll_run): Remove code for
9154 fringe background extension.
9155 (x_scroll_bar_create): Remove variables `sb_left' and `sb_width',
9156 because they are now always the same as `left' and `width',
9157 respectively. Remove code for the case that `width' and
9158 `sb_width' are different.
9159
9160 2013-12-01 Paul Eggert <eggert@cs.ucla.edu>
9161
9162 Fix minor problems found by static checking.
9163 * dispextern.h, xdisp.c (x_draw_bottom_divider): Now static.
9164 * frame.c (set_frame_param) [!HAVE_NTGUI]: Remove.
9165 * xdisp.c (Ftool_bar_height) [USE_GTK || HAVE_NS]: Now const function.
9166
9167 2013-12-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
9168
9169 * image.c (imagemagick_compute_animated_image): Don't crash if we
9170 have an animation with different-sized images (bug#15313).
9171
9172 2013-11-30 Martin Rudalics <rudalics@gmx.at>
9173
9174 Remove some unused items introduced during pixelwise change.
9175 * window.c (window_resize_total_check): Remove unused function.
9176 * xdisp.c (remember_mouse_glyph): Remove unused label.
9177 (Ftool_bar_height): Move declaration inside #if.
9178 * xterm.c (x_set_window_size): Don't use r and c.
9179
9180 2013-11-30 Juanma Barranquero <lekktu@gmail.com>
9181
9182 * xdisp.c (Fwindow_text_pixel_size): Remove unused variables
9183 `value' and `endp'.
9184
9185 * window.c (Fset_window_configuration): Comment out unused variables.
9186
9187 * w32term.c (w32_read_socket): Remove unused variable `buf'.
9188
9189 2013-11-30 Jan Djärv <jan.h.d@swipnet.se>
9190
9191 * xdisp.c (redisplay_internal): unrequest_sigio => request_sigio.
9192
9193 * xfaces.c (NEAR_SAME_COLOR_THRESHOLD): Move inside HAVE_WINDOW_SYSTEM.
9194
9195 * gnutls.c (gnutls_audit_log_function): Only declare and define if
9196 HAVE_GNUTLS3 (Bug#16001).
9197
9198 * xdisp.c (redisplay_internal): Call request_sigio at end_of_redisplay
9199 if interrupts are deferred (Bug#15801).
9200
9201 2013-11-30 Martin Rudalics <rudalics@gmx.at>
9202
9203 Support resizing frames and windows pixelwise.
9204 * dispextern.h (enum window_part): Add ON_SCROLL_BAR,
9205 ON_RIGHT_DIVIDER and ON_BOTTOM_DIVIDER.
9206 (struct glyph_matrix): Replace window_left_col and
9207 window_top_line by window_pixel_left and window_pixel_top.
9208 (WINDOW_WANTS_MODELINE_P, WINDOW_WANTS_HEADER_LINE_P):
9209 Minor rewrite.
9210 (enum face_id): Add WINDOW_DIVIDER_FACE_ID.
9211 (draw_window_divider, move_it_to, x_draw_right_divider)
9212 (x_draw_bottom_divider, change_frame_size): Add or fix
9213 declarations.
9214 * dispnew.c (change_frame_size_1): Change prototype.
9215 (adjust_glyph_matrix, required_matrix_width)
9216 (adjust_frame_glyphs_for_window_redisplay): Use pixel
9217 values instead of lines and columns.
9218 (marginal_area_string): Use WINDOW_FRINGES_WIDTH instead of
9219 WINDOW_TOTAL_FRINGE_WIDTH.
9220 (handle_window_change_signal, do_pending_window_change)
9221 (init_display): Adjusts calls of change_frame_size.
9222 (change_frame_size, change_frame_size_1): Handle pixelwise
9223 changes.
9224 * frame.c (Qright_divider_width, Qbottom_divider_width):
9225 New Lisp objects.
9226 (set_menu_bar_lines_1, set_menu_bar_lines, make_frame)
9227 (make_terminal_frame, Fmake_terminal_frame, Fframe_parameters)
9228 (x_set_internal_border_width, x_set_vertical_scroll_bars)
9229 (x_set_scroll_bar_width, x_figure_window_size): Handle pixel
9230 values.
9231 (set_frame_param): New function.
9232 (Fframe_text_cols, Fframe_text_lines, Fframe_total_cols)
9233 (Fframe_text_width, Fframe_text_height, Fscroll_bar_width)
9234 (Ffringe_width, Fborder_width, Fright_divider_width)
9235 (Fbottom_divider_width): New functions, defsubr them.
9236 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
9237 New argument pixelwise.
9238 (struct frame_parm_table): New members Qright_divider_width and
9239 Qbottom_divider_width.
9240 (x_set_frame_parameters): Handle parameters for pixelwise sizes.
9241 (x_report_frame_params): Handle Qright_divider_width and
9242 Qbottom_divider_width.
9243 (x_set_right_divider_width, x_set_bottom_divider_width):
9244 New functions.
9245 (frame_resize_pixelwise): New option.
9246 * frame.h (struct frame): Add tool_bar_height, menu_bar_height,
9247 new_pixelwise, right_divider_width and bottom_divider_width;
9248 remove total_lines; rename text_lines, text_cols, new_text_lines
9249 and new_text_cols to text_height, text_width, new_height and
9250 new_width respectively.
9251 (FRAME_LINES, FRAME_COLS): Rename to FRAME_TEXT_HEIGHT and
9252 FRAME_TEXT_WIDTH respectively.
9253 (FRAME_MENU_BAR_HEIGHT, FRAME_TOOL_BAR_HEIGHT)
9254 (FRAME_RIGHT_DIVIDER_WIDTH, FRAME_BOTTOM_DIVIDER_WIDTH)
9255 (FRAME_TEXT_TO_PIXEL_WIDTH, FRAME_PIXEL_TO_TEXT_WIDTH):
9256 New macros.
9257 (FRAME_TOP_MARGIN_HEIGHT, FRAME_LEFT_SCROLL_BAR_AREA_WIDTH)
9258 (FRAME_RIGHT_SCROLL_BAR_AREA_WIDTH, FRAME_SCROLL_BAR_AREA_WIDTH)
9259 (SET_FRAME_COLS, SET_FRAME_WIDTH, SET_FRAME_HEIGHT)
9260 (FRAME_TEXT_COLS_TO_PIXEL_WIDTH, FRAME_PIXEL_WIDTH_TO_TEXT_COLS)
9261 (FRAME_TEXT_COLS_TO_PIXEL_WIDTH): Rewrite macros.
9262 (FRAME_TOTAL_COLS_ARG): Remove macro.
9263 * fringe.c (draw_fringe_bitmap_1): Handle right divder.
9264 * gtkutil.c (xg_frame_resized, xg_frame_set_char_size)
9265 (x_wm_set_size_hint): Handle frame pixel sizes.
9266 * indent.c (compute_motion, Fcompute_motion):
9267 Call window_body_width instead of window_body_cols.
9268 * keyboard.c (Qright_divider, Qbottom_divider): New symbols.
9269 (make_lispy_position): Handle right and bottom dividers.
9270 (Fsuspend_emacs): Pixelize call of change_frame_size.
9271 * keyboard.h: Extern Qright_divider, Qbottom_divider.
9272 * lisp.h: Extern set_frame_param.
9273 * nsfns.m (x_set_tool_bar_lines): Pixelize call of
9274 x_set_window_size.
9275 (Fx_create_frame): Add entry for vertical_drag_cursor.
9276 Pixelize call of change_frame_size.
9277 * nsterm.h (struct ns_output): Add vertical_drag_cursor.
9278 * nsterm.m (ns_update_window_end): Optionally draw right
9279 divider.
9280 (x_set_window_size): Add argument pixelwise.
9281 Call check_frame_size and change_frame_size with pixelwise zero.
9282 (ns_draw_window_divider): New function.
9283 (ns_redisplay_interface): Add ns_draw_window_divider.
9284 (updateFrameSize:): Call change_frame_size with pixelwise zero.
9285 (x_new_font): Call x_set_window_size with pixelwise zero.
9286 * print.c (print_object): For a window print its sequence
9287 number again.
9288 * term.c (Fresume_tty): Pixelize call of change_frame_size.
9289 * w32fns.c (x_set_mouse_color): Handle vertical drag cursor.
9290 (x_set_menu_bar_lines, x_set_tool_bar_lines): Calculate pixelwise.
9291 (w32_createwindow): Use scroll bar area width.
9292 (w32_wnd_proc): Handle bottom divider width.
9293 For WM_WINDOWPOSCHANGING return zero if we resize pixelwise.
9294 (Fx_create_frame): Default divider width parameters.
9295 Caclulate sizes pixelwise. Add vertical drag cursor support.
9296 (x_create_tip_frame): Default divider widths to zero.
9297 Pixelize call to change_frame_size.
9298 (Fx_show_tip): Add handling of divider widths. Pixelize window
9299 position and sizes.
9300 (Fw32_frame_rect): New function.
9301 (frame_parm_handler w32_frame_parm_handlers): Add divider
9302 widths.
9303 (Vx_window_vertical_drag_shape): Add variable.
9304 * w32inevt.c (resize_event, maybe_generate_resize_event):
9305 Pixelize change_frame_size calls.
9306 * w32menu.c (set_frame_menubar): Pixelize x_set_window_size
9307 call.
9308 * w32term.c (w32_draw_window_divider): New function.
9309 (x_update_window_end): Handle right divider.
9310 (w32_draw_fringe_bitmap, x_scroll_run)
9311 (w32_set_vertical_scroll_bar): Pixelize scrollbar widths.
9312 (w32_read_socket): Handle SIZE_MAXIMIZED separately.
9313 Calculate new frame sizes pixelwise.
9314 (x_new_font): Pixelize call to x_set_window_size.
9315 (x_check_fullscreen): Pixelize call to change_frame_size.
9316 (x_set_window_size_1, x_set_window_size): New argument
9317 pixelwise. Calculate pixelwise.
9318 (x_wm_set_size_hint): Use scroll bar area width.
9319 (w32_redisplay_interface): Add w32_draw_window_divider.
9320 * w32term.h (struct w32_output): Add vertical drag cursor.
9321 * widget.c (set_frame_size, update_wm_hints)
9322 (EmacsFrameResize, EmacsFrameSetValues): Pixelize calls of
9323 change_frame_size.
9324 (EmacsFrameSetCharSize): Pixelize call of x_set_window_size.
9325 * window.c (sequence_number): Restore.
9326 (Fwindow_pixel_width, Fwindow_pixel_height)
9327 (Fwindow_mode_line_height, Fwindow_header_line_height)
9328 (window_pixel_to_total, Frun_window_scroll_functions)
9329 (Fset_window_new_pixel, window_resize_apply_total)
9330 (Fwindow_resize_apply_total): New functions.
9331 (window_body_height, window_body_width): Rename from
9332 window_body_lines. New argument PIXELWISE.
9333 Calculate pixelwise.
9334 (Fwindow_body_height, Fwindow_body_width): New argument
9335 PIXELWISE.
9336 (coordinates_in_window, window_relative_x_coord): Use window's
9337 pixel width instead of total width.
9338 (replace_window, recombine_windows): Initialize pixel values.
9339 (resize_root_window, resize_frame_windows, grow_mini_window)
9340 (shrink_mini_window): New argument PIXELWISE.
9341 Calculate pixelwise.
9342 (Fdelete_other_windows_internal, adjust_window_margins)
9343 (window_resize_check, window_resize_apply)
9344 (Fdelete_window_internal, Fresize_mini_window_internal)
9345 (Fwindow_text_width, Fwindow_text_height): Calculate pixelwise.
9346 (check_frame_size): Rename arguments. New argument PIXELWISE.
9347 Calculate pixelwise.
9348 (set_window_buffer): Make samebuf bool. Run configuration change
9349 hook only if buffer changed.
9350 (Fset_window_buffer): Rewrite doc-string.
9351 (make_window): Initialize new_pixel slot.
9352 (Fwindow_resize_apply): Check pixel size of root window.
9353 (Fsplit_window_internal): Call 2nd argument pixel_size.
9354 Calculate pixelwise.
9355 (Fscroll_left, Fscroll_right): Call window_body_width instead of
9356 window_body_cols.
9357 (save_window_data): New slots frame_text_width,
9358 frame_text_height, frame_menu_bar_height, frame_tool_bar_height.
9359 (saved_window): New slots pixel_left, pixel_top, pixel_height,
9360 pixel_width.
9361 (Fcurrent_window_configuration, Fset_window_configuration)
9362 (save_window_save, compare_window_configurations): Handle new
9363 slots in save_window_data and saved_window.
9364 (Fset_window_scroll_bars): Fix doc-string.
9365 (window_resize_pixelwise): New variable.
9366 (coordinates_in_window, Fcoordinates_in_window_p):
9367 Handle dividers.
9368 (make_parent_window): Adjust sequence_number.
9369 (Fwindow_right_divider_width, Fwindow_bottom_divider_width):
9370 New functions.
9371 * window.h (struct window): New members new_pixel, pixel_left,
9372 pixel_top, pixel_width, pixel_height. Restore sequence_number.
9373 (wset_new_pixel): New function.
9374 (WINDOW_PIXEL_WIDTH, WINDOW_PIXEL_HEIGHT)
9375 (MIN_SAFE_WINDOW_PIXEL_WIDTH, MIN_SAFE_WINDOW_PIXEL_HEIGHT)
9376 (WINDOW_LEFT_PIXEL_EDGE, WINDOW_RIGHT_PIXEL_EDGE)
9377 (WINDOW_TOP_PIXEL_EDGE, WINDOW_BOTTOM_PIXEL_EDGE)
9378 (WINDOW_BOTTOMMOST_P, WINDOW_BOX_LEFT_PIXEL_EDGE)
9379 (WINDOW_BOX_RIGHT_PIXEL_EDGE, WINDOW_MARGINS_COLS)
9380 (WINDOW_MARGINS_WIDTH, WINDOW_RIGHT_DIVIDER_WIDTH)
9381 (WINDOW_BOTTOM_DIVIDER_WIDTH): New macros.
9382 (WINDOW_TOTAL_FRINGE_WIDTH): Rename to WINDOW_FRINGES_WIDTH.
9383 (WINDOW_TOTAL_WIDTH, WINDOW_TOTAL_HEIGHT): Remove macros.
9384 (WINDOW_RIGHT_EDGE_X, WINDOW_LEFT_EDGE_X, WINDOW_TOP_EDGE_Y)
9385 (WINDOW_BOTTOM_EDGE_Y, WINDOW_FULL_WIDTH_P, WINDOW_LEFTMOST_P)
9386 (WINDOW_RIGHTMOST_P, WINDOW_BOX_LEFT_EDGE_X)
9387 (WINDOW_BOX_RIGHT_EDGE_X, WINDOW_FRINGE_COLS)
9388 (WINDOW_BOX_HEIGHT_NO_MODE_LINE, WINDOW_BOX_TEXT_HEIGHT):
9389 Rewrite.
9390 (resize_frame_windows, grow_mini_window, shrink_mini_window)
9391 (window_body_width, check_frame_size): Adapt external declarations.
9392 * xdisp.c (last_max_ascent): New integer.
9393 (window_text_bottom_y): Handle bottom divider.
9394 (window_box_width, window_box_height): Calculate pixelwise.
9395 (get_glyph_string_clip_rects): Handle right divider.
9396 (remember_mouse_glyph): When windows are resized pixelwise
9397 proceed with width and height set to 1.
9398 (init_iterator): Use WINDOW_PIXEL_WIDTH instead of
9399 WINDOW_TOTAL_WIDTH.
9400 (move_it_to): Calculate and return maximum x position
9401 encountered.
9402 (Fwindow_text_pixel_size): New function.
9403 (resize_mini_window, update_tool_bar): Calculate pixelwise.
9404 (tool_bar_lines_needed): Rename to tool_bar_height.
9405 Calculate pixelwise.
9406 (Ftool_bar_lines_needed): Rename to Ftool_bar_height.
9407 Calculate pixelwise.
9408 (redisplay_tool_bar): Calculate pixelwise.
9409 (redisplay_window): Calculate pixelwise. Handle dividers.
9410 (draw_glyphs, x_clear_end_of_line, note_mouse_highlight)
9411 (x_draw_vertical_border): Handle dividers.
9412 (define_frame_cursor1): Handle vertical drag cursor.
9413 (x_draw_right_divider, x_draw_bottom_divider): New functions.
9414 (expose_window): Calculate pixelwise. Handle dividers.
9415 (init_xdisp): Initialize pixel values.
9416 * xfaces.c (Qwindow_divider): New face.
9417 (realize_basic_faces): Realize it.
9418 * xfns.c (x_set_mouse_color): Handle vertical_drag_cursor.
9419 (x_set_menu_bar_lines, x_set_tool_bar_lines): Calculate pixelwise.
9420 (x_set_scroll_bar_default_width): Default actual width to 16.
9421 (Fx_create_frame): Set sizes pixelwise.
9422 (x_create_tip_frame): Default divider widths to zero.
9423 Pixelize call of change_frame_size.
9424 (Fx_show_tip): Handle divider widths. Initial pixel position
9425 and sizes.
9426 (frame_parm_handler x_frame_parm_handlers): Add divider widths.
9427 (Vx_window_vertical_drag_shape): New option.
9428 * xmenu.c (free_frame_menubar): Pixelize call of
9429 x_set_window_size.
9430 * xterm.c (x_draw_window_divider): New function.
9431 (x_update_window_end): Optionally draw right divider.
9432 (x_draw_fringe_bitmap, x_scroll_run, x_scroll_bar_create)
9433 (XTset_vertical_scroll_bar): Use scroll bar pixel width.
9434 (handle_one_xevent, x_new_font): Calculate pixelwise.
9435 (x_set_window_size_1, x_set_window_size): New argument
9436 pixelwise. Calculate pixelwise.
9437 (x_wm_set_size_hint): Pixelize call of check_frame_size.
9438 (struct x_redisplay_interface): Add x_draw_window_divider.
9439 * xterm.h (struct x_output): Add vertical_drag_cursor.
9440
9441 2013-11-30 Stefan Monnier <monnier@iro.umontreal.ca>
9442
9443 * xdisp.c (redisplay_internal): Don't call set_window_update_flags.
9444 Set invisible frames's `redisplay' when a full redisplay is requested.
9445 (redisplay_window): Set must_be_updated_p instead (bug#15999).
9446 (redisplay_mode_lines): Don't set must_be_updated_p any more.
9447 (display_mode_lines): Set it here instead.
9448
9449 * dispnew.c (set_window_update_flags): Remove `b' argument; make static.
9450
9451 * dispextern.h (set_window_update_flags): Remove.
9452
9453 2013-11-29 Stefan Monnier <monnier@iro.umontreal.ca>
9454
9455 * fns.c (internal_equal): Add a hash_table argument to handle cycles.
9456
9457 * xdisp.c (REDISPLAY_SOME_P): New macro.
9458 (redisplay_internal): Use it (bug#15999).
9459 (prepare_menu_bars, redisplay_window): Use it as well.
9460
9461 * lisp.mk (lisp): Add electric.elc and uniquify.elc.
9462
9463 2013-11-29 Tom Seddon <emacs@tomseddon.plus.com> (tiny change)
9464
9465 * w32font.c (g_b_init_get_char_width_32_w): New static var.
9466 (globals_of_w32font): Zero it out.
9467 (GetCharWidth32W_Proc): New function pointer.
9468 (get_char_width_32_w): New function.
9469 (compute_metrics): If get_glyph_outline_w returns an error, try
9470 get_char_width_32_w before declaring a failure. This avoids
9471 punishing raster (a.k.a. "bitmap") fonts by slowing down
9472 redisplay. (Bug#6364).
9473
9474 2013-11-29 Eli Zaretskii <eliz@gnu.org>
9475
9476 * xdisp.c (clear_mouse_face): Don't invalidate the entire
9477 mouse-highlight info, just signal frame_up_to_date_hook that mouse
9478 highlight needs to be redisplayed. (Bug#15913)
9479
9480 2013-11-29 Paul Eggert <eggert@cs.ucla.edu>
9481
9482 Fix minor problems found by static checking.
9483 * buffer.h (struct buffer_text, struct buffer):
9484 * frame.h (struct frame):
9485 * window.h (struct window):
9486 Avoid 'bool foo : 1;', as it's not portable to pre-C99 compilers,
9487 as described in ../lib/stdbool.in.h. Use 'unsigned foo : 1;' instead.
9488 * menu.c (syms_of_menu): Define x-popup-dialog, removing a
9489 no-longer-valid use of HAVE_MENUS.
9490 * xdisp.c (propagate_buffer_redisplay): Now static.
9491
9492 2013-11-29 Stefan Monnier <monnier@iro.umontreal.ca>
9493
9494 * xmenu.c (Fmenu_or_popup_active_p):
9495 * window.c (Fset_window_configuration):
9496 * menu.c (Fx_popup_menu, Fx_popup_dialog):
9497 * keyboard.c (record_menu_key, read_char_x_menu_prompt):
9498 * fns.c (Fyes_or_no_p):
9499 * editfns.c (Fmessage_box, Fmessage_or_box):
9500 * alloc.c (make_save_ptr_ptr):
9501 * xdisp.c, w32menu.c, term.c, xterm.h, xterm.c: Remove HAVE_MENUS.
9502
9503 * window.c (Fset_window_configuration): Move select_window later.
9504
9505 2013-11-28 Stefan Monnier <monnier@iro.umontreal.ca>
9506
9507 Refine redisplay optimizations to only redisplay *some* frames/windows
9508 rather than all of them.
9509 * xdisp.c (REDISPLAY_SOME): New constant.
9510 (redisplay_other_windows, wset_redisplay, fset_redisplay)
9511 (bset_redisplay, bset_update_mode_line): New functions.
9512 (message_dolog): Use bset_redisplay.
9513 (clear_garbaged_frames): Use fset_redisplay.
9514 (echo_area_display): Use wset_redisplay.
9515 (buffer_shared_and_changed): Remove.
9516 (prepare_menu_bars): Call Vpre_redisplay_function before updating
9517 frame titles. Compute the actual set of windows redisplayed.
9518 Don't update frame titles and menu bars for frames that don't need to
9519 be redisplayed.
9520 (propagate_buffer_redisplay): New function.
9521 (AINC): New macro.
9522 (redisplay_internal): Use it. Be more selective in the set of windows
9523 we redisplay. Propagate windows_or_buffers_changed to
9524 update_mode_lines a bit later to simplify the code.
9525 (mark_window_display_accurate_1): Reset window and buffer's
9526 `redisplay' flag.
9527 (redisplay_window): Do nothing if neither the window nor the buffer nor
9528 the frame needs redisplay.
9529 * window.h (struct window): Add `redisplay' field.
9530 (wset_redisplay, fset_redisplay, bset_redisplay, bset_update_mode_line)
9531 (redisplay_other_windows, window_list): New declarations.
9532 * window.c (select_window, Fset_window_start): Use wset_redisplay.
9533 (window_list): Not static any more.
9534 (grow_mini_window, shrink_mini_window): Use fset_redisplay.
9535 * minibuf.c (read_minibuf_unwind): Don't redisplay everything.
9536 * insdel.c (prepare_to_modify_buffer_1): Use bset_redisplay.
9537 * frame.c (Fmake_frame_visible): Don't redisplay everything.
9538 * frame.h (struct frame): Add `redisplay' field.
9539 Move `external_menu_bar' bitfield next to other bit-fields.
9540 (SET_FRAME_GARBAGED): Use fset_redisplay.
9541 (SET_FRAME_VISIBLE): Don't garbage the frame;
9542 Use redisplay_other_windows.
9543 * buffer.h (struct buffer): Add `redisplay' field.
9544 * buffer.c (Fforce_mode_line_update): Pay attention to the `all' flag.
9545 (modify_overlay): Use bset_redisplay.
9546 * alloc.c (gc_sweep): Don't unmark strings while sweeping symbols.
9547
9548 2013-11-28 Eli Zaretskii <eliz@gnu.org>
9549
9550 Support w32 file notifications in batch mode.
9551 * w32proc.c (sys_select): Don't wait on interrupt_handle if it is
9552 invalid (which happens in batch mode). If non-interactive, call
9553 handle_file_notifications to store file notification events in the
9554 input queue. (Bug#15933)
9555
9556 * w32notify.c (send_notifications): Handle FRAME_INITIAL frames as well.
9557
9558 * w32inevt.c (handle_file_notifications): Now external, not static.
9559
9560 * w32term.h (handle_file_notifications): Provide prototype.
9561
9562 * emacs.c (main) [HAVE_W32NOTIFY]: When non-interactive, call
9563 init_crit, since init_display, which does that otherwise, is not
9564 called.
9565
9566 2013-11-27 Glenn Morris <rgm@gnu.org>
9567
9568 * Makefile.in ($(lispsource)/international/charprop.el): New.
9569 (emacs$(EXEEXT)): Depend on charprop.el.
9570
9571 2013-11-27 Eli Zaretskii <eliz@gnu.org>
9572
9573 * fileio.c (Finsert_file_contents): Invalidate buffer caches when
9574 deleting portions of the buffer under non-nil REPLACE argument.
9575 (Bug#15973)
9576
9577 * w32notify.c (Fw32notify_add_watch): If the argument FILE is a
9578 directory, watch it and not its parent.
9579 (add_watch): Allow empty string in FILE.
9580
9581 2013-11-27 Martin Rudalics <rudalics@gmx.at>
9582
9583 * window.c (Fset_window_start, window_resize_apply)
9584 (window_scroll): Reset window_end_valid (Bug#15957).
9585
9586 2013-11-27 Glenn Morris <rgm@gnu.org>
9587
9588 * Makefile.in (leimdir): Now in lisp source directory.
9589 ($(leimdir)/leim-list.el): Just use ../leim .
9590 * epaths.in (PATH_DUMPLOADSEARCH):
9591 * lread.c (load_path_default):
9592 * nsterm.m (ns_load_path): No more leim directory.
9593
9594 2013-11-26 Andreas Schwab <schwab@suse.de>
9595
9596 * .gdbinit (xgettype): Add cast.
9597
9598 2013-11-26 Glenn Morris <rgm@gnu.org>
9599
9600 Preload leim-list.el.
9601 * epaths.in (PATH_DUMPLOADSEARCH): Add leim/.
9602 * callproc.c (init_callproc): Don't assume PATH_DUMPLOADSEARCH
9603 is a single directory.
9604
9605 2013-11-25 Paul Eggert <eggert@cs.ucla.edu>
9606
9607 bool-vector-subsetp is now the normal direction (Bug#15912).
9608 * data.c (Fbool_vector_subsetp): Test whether the first argument
9609 is a subset of the second one, not the reverse. Add doc string.
9610
9611 Fix minor problems found by static checking.
9612 * lread.c (load_path_default): Now static.
9613 * textprop.c (text_property_stickiness): Be consistent about the
9614 test used when deciding whether to consider the previous character.
9615 This simplifies the code a bit.
9616
9617 2013-11-25 Stefan Monnier <monnier@iro.umontreal.ca>
9618
9619 * textprop.c (text_property_stickiness): Fix front-stickiness at BOB.
9620
9621 * frame.c (Fhandle_focus_in, Fhandle_focus_out): Move to frame.el.
9622 (syms_of_frame): Don't defsubr them.
9623
9624 2013-11-25 Glenn Morris <rgm@gnu.org>
9625
9626 * lread.c (load_path_default): Change the sense of the argument.
9627 (init_lread): When EMACSLOADPATH is set, do not ignore changes
9628 from dump_path. When it is not, avoid checking dump_path twice.
9629
9630 * lread.c (init_lread): Fix 2013-11-23 goof that was checking
9631 uninstalled dump_path against installed Vload_path. (Bug#15964)
9632
9633 2013-11-24 Stefan Monnier <monnier@iro.umontreal.ca>
9634
9635 Export get_pos_property to Elisp.
9636 * editfns.c (Fget_pos_property): Rename from get_pos_property.
9637 (syms_of_editfns): Export it to Elisp.
9638
9639 * data.c (Fmake_variable_buffer_local): Mention `permanent-local'.
9640
9641 2013-11-23 Romain Francoise <romain@orebokech.com>
9642
9643 * fileio.c (init_fileio): Move `write_region_inhibit_fsync'
9644 initialization here ...
9645 (syms_of_fileio): ... from here.
9646
9647 2013-11-23 Stefan Monnier <monnier@iro.umontreal.ca>
9648
9649 * lread.c (init_lread): Fix int/Lisp_Object mixup.
9650 Please use --enable-check-lisp-object-type.
9651
9652 2013-11-23 Glenn Morris <rgm@gnu.org>
9653
9654 * process.c (get_process): Explicit error for dead buffers.
9655
9656 2013-11-23 Andreas Schwab <schwab@linux-m68k.org>
9657
9658 * process.c (get_process): Check that OBJ is a live buffer. (Bug#15923)
9659
9660 2013-11-23 Glenn Morris <rgm@gnu.org>
9661
9662 Empty elements in EMACSLOADPATH stand for the default. (Bug#12100)
9663 * lread.c (load_path_check): Take path to check as argument.
9664 (load_path_default): New, split from init_lread.
9665 (init_lread): Move calc of default load-path to load_path_default.
9666 Empty elements in EMACSLOADPATH now stand for the default.
9667 (load-path): Doc fix.
9668 * emacs.c (decode_env_path): Add option to treat empty elements
9669 as nil rather than ".".
9670 * callproc.c (init_callproc_1, init_callproc):
9671 * image.c (Vx_bitmap_file_path):
9672 * lisp.h (decode_env_path):
9673 * lread.c (Vsource_directory):
9674 Update for new argument spec of decode_env_path.
9675
9676 2013-11-22 Eli Zaretskii <eliz@gnu.org>
9677
9678 * bidi.c (bidi_find_paragraph_start): Limit the returned positions
9679 to BEGV_BYTE..ZV_BYTE range. (Bug#15951)
9680
9681 2013-11-21 Paul Eggert <eggert@cs.ucla.edu>
9682
9683 Fix some dependency problems that cause unnecessary recompiles.
9684 Reported by RMS in
9685 <http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00421.html>.
9686 * Makefile.in (OLDXMENU_TARGET, OLDXMENU, OLDXMENU_DEPS)
9687 (really-lwlib, really-oldXMenu, stamp-oldxmenu)
9688 (../src/$(OLDXMENU), $(OLDXMENU)): Remove.
9689 (temacs$(EXEEXT)): Depend on $(LIBXMENU), not stamp-oldxmenu.
9690 ($(lwlibdir)/liblw.a, $(oldXMenudir)/libXMenu11.a, FORCE): New targets.
9691 (boostrap-clean): No need to remove stamp-oldxmenu.
9692
9693 Fix recently introduced bool vector overrun.
9694 This was due to an optimization that went awry.
9695 Reported by Glenn Morris in
9696 <http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00622.html>.
9697 * alloc.c (make_uninit_bool_vector): Don't allocate a dummy word
9698 for empty vectors, undoing the 2013-11-18 change.
9699 * data.c (bool_vector_binop_driver): Rely on this.
9700 Fix bug that occasionally overran the destination.
9701 * lisp.h (struct Lisp_Bool_vector): Document this.
9702
9703 2013-11-20 Jan Djärv <jan.h.d@swipnet.se>
9704
9705 * nsterm.m (init, run, stop:): Enable again. stop calls super stop
9706 to handle dialogs.
9707
9708 * nsterm.m (init, run, stop:): Comment out for now, does not work
9709 with dialogs.
9710
9711 2013-11-19 Paul Eggert <eggert@cs.ucla.edu>
9712
9713 * charset.c (syms_of_charset): Don't read past end of string.
9714
9715 2013-11-19 Glenn Morris <rgm@gnu.org>
9716
9717 * frame.c (Fhandle_focus_in, Fhandle_focus_out): Doc fixes.
9718
9719 2013-11-19 Brian Jenkins <brian@brianjenkins.org> (tiny change)
9720
9721 Add hooks to run on gaining/losing focus. (Bug#15029)
9722 * frame.c (Qfocus_in_hook, Qfocus_out_hook): New static lisp objects.
9723 (Fhandle_focus_in, Fhandle_focus_out): Run focus hooks.
9724 (syms_of_frame): Add focus-in-hook, focus-out-hook.
9725
9726 2013-11-18 Paul Eggert <eggert@cs.ucla.edu>
9727
9728 * data.c (bool_vector_binop_driver): Rename locals for sanity's sake.
9729 The old names predated the API change that put destination at end.
9730
9731 Improve API of recently-added bool vector functions (Bug#15912).
9732 The old API had (bool-vector-count-matches A B)
9733 and (bool-vector-count-matches-at A B I), which gave the
9734 misleading impression that the two functions were variants, one
9735 with a location I. The new API has (bool-vector-count-population A)
9736 and (bool-vector-count-consecutive A B I) to make the distinction
9737 clearer. The first function no longer has a B argument, since the
9738 caller can easily determine the number of nils if the length and
9739 number of ts is known.
9740 * data.c (Fbool_vector_count_population): Rename from
9741 bool_vector_count_matches, and accept just 1 argument.
9742 (Fbool_vector_count_consecutive): Rename from
9743 Fbool_vector_count_matches_at.
9744
9745 Always allocate at least one bits_word per bool vector.
9746 See Daniel Colascione in:
9747 http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00518.html
9748 * alloc.c (make_uninit_bool_vector): Always allocate at least one word.
9749 * data.c (bool_vector_binop_driver): Rely on this. Tune.
9750 * lisp.h (struct Lisp_Bool_vector): Document this.
9751
9752 2013-11-18 Eli Zaretskii <eliz@gnu.org>
9753
9754 * insdel.c (invalidate_buffer_caches): New function, consolidated
9755 from part of prepare_to_modify_buffer.
9756 (insert_from_gap, prepare_to_modify_buffer):
9757 * coding.c (code_convert_region, code_convert_string):
9758 Call invalidate_buffer_caches. (Bug#15841)
9759
9760 * lisp.h (invalidate_buffer_caches): Add prototype.
9761
9762 2013-11-17 Eli Zaretskii <eliz@gnu.org>
9763
9764 * w32term.c (x_update_window_end): Don't invalidate the entire
9765 mouse-highlight info, just signal frame_up_to_date_hook that mouse
9766 highlight needs to be redisplayed. (Bug#15913)
9767
9768 2013-11-17 Paul Eggert <eggert@cs.ucla.edu>
9769
9770 * lisp.h (DEBUGGER_SEES_C_MACROS): Remove.
9771
9772 2013-11-16 Eli Zaretskii <eliz@gnu.org>
9773
9774 * doc.c (Fsubstitute_command_keys): Inhibit modification hooks
9775 while we are using Vprin1_to_string_buffer.
9776
9777 * keymap.c (describe_map): Don't crash if PT is 1 both before and
9778 after inserting the description string. (Bug#15907)
9779
9780 2013-11-15 Paul Eggert <eggert@cs.ucla.edu>
9781
9782 * data.c: Work around bogus GCC diagnostic about shift count.
9783 Reported by Eli Zaretskii in
9784 <http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00489.html>.
9785 (pre_value): New function.
9786 (count_trailing_zero_bits): Use it.
9787
9788 2013-11-15 Eli Zaretskii <eliz@gnu.org>
9789
9790 * lisp.h (DEBUGGER_SEES_C_MACROS) [GCC < v3.5]: Pessimistically
9791 assume C macros are not supported even under -g3 in these old GCC
9792 versions.
9793
9794 2013-11-15 Leo Liu <sdl.web@gmail.com>
9795
9796 * minibuf.c (Ftry_completion, Fall_completions)
9797 (Ftest_completion): Use FUNCTIONP. (Bug#15889)
9798
9799 2013-11-15 Paul Eggert <eggert@cs.ucla.edu>
9800
9801 * lisp.h (DEFINE_GDB_SYMBOL_BEGIN, DEFINE_GDB_SYMBOL_END):
9802 Define to empty if DEBUGGER_SEES_C_MACROS is defined.
9803 This avoids placing unnecessary constants into the Emacs code.
9804
9805 2013-11-14 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
9806
9807 * keyboard.c (make_ctrl_char) [HAVE_NTGUI]: Now externally visible
9808 for Cygwin w32 build.
9809
9810 * xdisp.c (erase_phys_cursor) [HAVE_NTGUI]: Now externally visible
9811 for Cygwin w32 build. (Bug#15892)
9812
9813 2013-11-14 Paul Eggert <eggert@cs.ucla.edu>
9814
9815 Simplify, port and tune bool vector implementation.
9816 * alloc.c (bool_vector_exact_payload_bytes)
9817 (bool_vector_payload_bytes): Remove.
9818 (bool_vector_fill): Return its argument.
9819 * alloc.c (bool_vector_fill):
9820 * lread.c (read1):
9821 * print.c (print_object):
9822 Simplify by using bool_vector_bytes.
9823 * alloc.c (make_uninit_bool_vector):
9824 New function, broken out from Fmake_bool_vector.
9825 (Fmake_bool_vector): Use it. Use tail call.
9826 (make_uninit_bool_vector, vector_nbytes): Simplify size calculations.
9827 * data.c (BITS_PER_ULL): New constant.
9828 (ULLONG_MAX, count_one_bits_ll): Fall back on long counterparts
9829 if long long versions don't exist.
9830 (shift_right_ull): New function.
9831 (count_one_bits_word): New function, replacing popcount_bits_word
9832 macro. Don't assume that bits_word is no wider than long long.
9833 (count_one_bits_word, count_trailing_zero_bits):
9834 Don't assume that bits_word is no wider than long long.
9835 * data.c (bool_vector_binop_driver, bool_vector_not):
9836 * fns.c (Fcopy_sequence):
9837 * lread.c (read1):
9838 Create an uninitialized destination, to avoid needless work.
9839 (internal_equal): Simplify.
9840 (Ffillarray): Prefer tail call.
9841 * data.c (bool_vector_binop_driver): Don't assume bit vectors always
9842 contain at least one word.
9843 (bits_word_to_host_endian): Prefer if to #if. Don't assume
9844 chars are narrower than ints.
9845 * data.c (Fbool_vector_count_matches, Fbool_vector_count_matches_at):
9846 * fns.c (Fcopy_sequence):
9847 Simplify and tune.
9848 * lisp.h (bits_word, BITS_WORD_MAX, BITS_PER_BITS_WORD):
9849 Don't try to port to hosts where bits_word values have holes; the
9850 code wouldn't work there anyway. Verify this assumption, though.
9851 (bool_vector_bytes): New function.
9852 (make_uninit_bool_vector): New decl.
9853 (bool_vector_fill): Now returns Lisp_Object.
9854
9855 * xfns.c (xic_create_fontsetname):
9856 * xrdb.c (gethomedir): Prefer tail calls.
9857
9858 2013-11-12 Paul Eggert <eggert@cs.ucla.edu>
9859
9860 * xterm.c (syms_of_xterm): staticpro Qmodifier_value, Qalt, Qhyper,
9861 Qmeta, and Qsuper. This is safer, and it's what w32fns.c does.
9862
9863 * buffer.c (Fforce_mode_line_update): Don't fall off end of function
9864 that requires a return value.
9865 (Fset_buffer_modified_p): Take advantage of this change to do
9866 a tail call.
9867
9868 2013-11-11 Stefan Monnier <monnier@iro.umontreal.ca>
9869
9870 * buffer.c (Frestore_buffer_modified_p): Sync it with
9871 Fset_buffer_modified_p.
9872 (Fforce_mode_line_update): New function, moved from subr.el.
9873 (Fset_buffer_modified_p): Use them.
9874 (syms_of_buffer): Defsubr Fforce_mode_line_update.
9875
9876 2013-11-11 Paul Eggert <eggert@cs.ucla.edu>
9877
9878 * search.c (find_newline): Rewrite to prefer offsets to pointers.
9879 This avoids undefined behavior when subtracting pointers into
9880 different aways. On my platform it also makes the code a tad
9881 smaller and presumably faster.
9882
9883 2013-11-11 Stefan Monnier <monnier@iro.umontreal.ca>
9884
9885 * keyboard.c (command_loop_1): Use region-extract-function.
9886 * insdel.c (Qregion_extract_function): Not static any more (can we
9887 stop pretending that these vars can benefit from being marked static?).
9888
9889 2013-11-09 Eli Zaretskii <eliz@gnu.org>
9890
9891 * search.c (find_newline): If buffer text is relocated during the
9892 "dumb loop", adjust C pointers into buffer text to follow suit.
9893 (Bug#15841)
9894
9895 2013-11-09 Łukasz Stelmach <stlman@poczta.fm> (tiny change)
9896
9897 * gtkutil.c (xg_check_special_colors): Use rgb: instead of rgbi:
9898 for conversion (Bug#15837).
9899
9900 2013-11-09 Eli Zaretskii <eliz@gnu.org>
9901
9902 * fileio.c (Finsert_file_contents): Invalidate the newline cache
9903 for the entire range of inserted characters. (Bug#15841)
9904
9905 2013-11-08 Jan Djärv <jan.h.d@swipnet.se>
9906
9907 * xfaces.c (lface_fully_specified_p): Let distant-foreground be
9908 unspecified.
9909 (realize_default_face): Remove assignment to distant-foreground if
9910 unspecified (Bug#15815).
9911
9912 2013-11-08 Eli Zaretskii <eliz@gnu.org>
9913
9914 * xdisp.c (message_dolog): Make sure the *Messages* buffer has its
9915 cache-long-scans disabled, since we don't want to call
9916 prepare_to_modify_buffer (in insert_1_both) for each message we
9917 display.
9918
9919 * buffer.h (bset_cache_long_scans): New INLINE function, moved
9920 from buffer.c. Improve commentary to the buffer field setter
9921 functions.
9922
9923 * buffer.c (bset_cache_long_scans): Static function deleted.
9924 Improve commentary to the buffer field setter functions.
9925 (init_buffer_once): Default for cache-long-scans changed to t.
9926 (Bug#15797)
9927
9928 2013-11-08 Paul Eggert <eggert@cs.ucla.edu>
9929
9930 * gmalloc.c (special_realloc, calloc, mallochook): Use tail calls.
9931
9932 * chartab.c (make_sub_char_table): Fix size typo (Bug#15825).
9933 This bug was introduced in my 2013-06-21 change, and caused
9934 struct Lisp_Sub_Char_Table objects to be given too many slots,
9935 which broke 'make -C admin/unidata'.
9936
9937 2013-11-07 Jan Djärv <jan.h.d@swipnet.se>
9938
9939 Import changes from mac-port 4.5.
9940 * macfont.m (mac_font_copy_default_descriptors_for_language)
9941 (mac_font_copy_default_name_for_charset_and_languages): Declare.
9942 (cf_charset_table): big-5-0 has uniquifier 0x4EDC.
9943 (macfont_language_default_font_names): New.
9944 (macfont_list): Rearrange language/charset code.
9945 (macfont_close): Don't check for macfont_info->cache.
9946 (mac_ctfont_create_preferred_family_for_attributes): New font
9947 selection code, call
9948 mac_font_copy_default_name_for_charset_and_languages.
9949 (mac_font_copy_default_descriptors_for_language)
9950 (mac_font_copy_default_name_for_charset_and_languages): New functions.
9951
9952 * macfont.h (kCTVersionNumber10_9): Define if not defined.
9953
9954 2013-11-07 Paul Eggert <eggert@cs.ucla.edu>
9955
9956 Port to C11 aligned_alloc, and fix some integer overflows.
9957 * alloc.c (USE_ALIGNED_ALLOC): New symbol.
9958 (USE_POSIX_MEMALIGN): Remove. All uses replaced with USE_ALIGNED_ALLOC,
9959 and use of posix_memalign replaced with aligned_alloc.
9960 (aligned_alloc): New function, defined or declared as needed.
9961 * conf_post.h (HAVE_POSIX_MEMALIGN) [DARWIN_OS]:
9962 Don't undef; configure.ac now does this.
9963 * gmalloc.c (aligned_alloc) [MSDOS]: New decl.
9964 (calloc, aligned_alloc): Check for integer overflow.
9965 (aligned_alloc): Rename from memalign. All uses changed.
9966 (memalign): New function, an alias for aligned_alloc.
9967
9968 2013-11-06 Stefan Monnier <monnier@iro.umontreal.ca>
9969
9970 * xdisp.c (redisplay_internal): Fix typo in last change.
9971
9972 2013-11-06 Paul Eggert <eggert@cs.ucla.edu>
9973
9974 * regex.c: Fix --enable-gcc-warning glitch with GCC 4.5.2.
9975
9976 2013-11-06 Stefan Monnier <monnier@iro.umontreal.ca>
9977
9978 * xdisp.c (syms_of_xdisp): New vars redisplay--all-windows-cause and
9979 redisplay--mode-lines-cause.
9980 (redisplay_internal): Keep them uptodate. Remove redundant check of
9981 buffer_shared_and_changed.
9982 * *.[chm]: Number every assignment to update_mode_lines so we
9983 can track why it is set.
9984
9985 2013-11-06 Eli Zaretskii <eliz@gnu.org>
9986
9987 * editfns.c (Fformat_time_string): Doc fix. (Bug#15816)
9988
9989 2013-11-06 Stefan Monnier <monnier@iro.umontreal.ca>
9990
9991 * *.[chm]: Number every assignment to windows_or_buffers_changed so we
9992 can track why it is set.
9993
9994 2013-11-06 Paul Eggert <eggert@cs.ucla.edu>
9995
9996 Integer-related fixes for term.c etc.
9997 * dispextern.h (face_tty_specified_color): New function.
9998 * term.c (turn_on_face): Don't rely on undefined behavior when
9999 assigning an out-of-range value to 'long'.
10000 Simplify test for toggling highlight.
10001 (tty_capable_p): Omit last two (unused) args. All callers changed.
10002 * term.c (tty_capable_p, tty_menu_display, tty_menu_add_selection)
10003 (read_menu_input, tty_menu_activate, tty_menu_show):
10004 * xfaces.c (x_supports_face_attributes_p)
10005 (tty_supports_face_attributes_p):
10006 Use bool for boolean. All callers changed.
10007 (tty_supports_face_attributes_p): Omit defaults for color indices;
10008 no longer needed. Simplify tail call.
10009
10010 2013-11-05 Stefan Monnier <monnier@iro.umontreal.ca>
10011
10012 * xdisp.c (prepare_menu_bars): Mark static.
10013 * lisp.h (prepare_menu_bars): Don't declare.
10014 * xselect.c (x_handle_selection_clear):
10015 * callproc.c (call_process): Remove redundant call to prepare_menu_bars.
10016
10017 2013-11-05 Paul Eggert <eggert@cs.ucla.edu>
10018
10019 * keyboard.c (Fcommand_error_default_function): Fix pointer signedness
10020 glitch. Eliminate 'sz' prefix; Hungarian notation is not helpful here.
10021
10022 2013-11-05 Stefan Monnier <monnier@iro.umontreal.ca>
10023
10024 * keyboard.c (Fcommand_error_default_function): Rename from
10025 Fdefault_error_output.
10026
10027 2013-11-05 Jarek Czekalski <jarekczek@poczta.onet.pl> (tiny change)
10028
10029 * keyboard.c (Fdefault_error_output): New function, extracted from
10030 cmd_error_internal.
10031 (syms_of_keyboard): Use it for Vcommand_error_function.
10032
10033 2013-11-05 Stefan Monnier <monnier@iro.umontreal.ca>
10034
10035 * eval.c (handlerlist_sentinel): New variable (bug#15802).
10036 (init_eval): Use it to ensure handlerlist is non-NULL.
10037 (unwind_to_catch): Make sure we never set handlerlist to NULL.
10038 (Fsignal): Adjust NULLness test of handlerlist.
10039 * lisp.h (PUSH_HANDLER): Assume handlerlist is non-NULL.
10040
10041 2013-11-05 Eli Zaretskii <eliz@gnu.org>
10042
10043 * callproc.c (call_process): Call prepare_to_modify_buffer before
10044 decoding text read from the sub-process, as the decoded stuff will
10045 be inserted into the buffer. This will invalidate the various
10046 caches maintained for the buffer. (Bug#15148)
10047
10048 2013-11-05 Xue Fuqiao <xfq.free@gmail.com>
10049
10050 * xdisp.c (syms_of_xdisp): Mention the active display table in doc
10051 string of glyphless-char-display.
10052
10053 2013-11-05 Jan Djärv <jan.h.d@swipnet.se>
10054
10055 * nsfns.m (ns_get_name_from_ioreg): New function.
10056 (ns_screen_name): Don't use deprecated CGDisplayIOServicePort on
10057 OSX >= 10.9. Use ns_get_name_from_ioreg.
10058
10059 2013-11-05 Paul Eggert <eggert@cs.ucla.edu>
10060
10061 Simplify and port recent bool vector changes.
10062 * alloc.c (ROUNDUP): Move here from lisp.h, since it's now used
10063 only in this file. Use a more-efficient implementation if the
10064 second argument is a power of 2.
10065 (ALIGN): Rewrite in terms of ROUNDUP. Make it a function.
10066 Remove no-longer-necessary compile-time checks.
10067 (bool_vector_exact_payload_bytes): New function.
10068 (bool_vector_payload_bytes): Remove 2nd arg; callers that need
10069 exact payload changed to call the new function. Do not assume
10070 that the arg or result fits in ptrdiff_t.
10071 (bool_vector_fill): New function.
10072 (Fmake_bool_vector): Use it. Don't assume bit counts fit
10073 in ptrdiff_t.
10074 (vroundup_ct): Don't assume arg fits in size_t.
10075 * category.c (SET_CATEGORY_SET): Remove. All callers now just
10076 invoke set_category_set.
10077 (set_category_set): 2nd arg is now EMACS_INT and 3rd is now bool.
10078 All callers changed. Use bool_vector_set.
10079 * category.h (XCATEGORY_SET): Remove; no longer needed.
10080 (CATEGORY_MEMBER): Now a function. Rewrite in terms of
10081 bool_vector_bitref.
10082 * data.c (Faref): Use bool_vector_ref.
10083 (Faset): Use bool_vector_set.
10084 (bits_word_to_host_endian): Don't assume you can shift by CHAR_BIT.
10085 (Fbool_vector_not, Fbool_vector_count_matches)
10086 (Fbool_vector_count_matches_at): Don't assume CHAR_BIT == 8.
10087 * fns.c (concat): Use bool_vector_ref.
10088 (Ffillarray): Use bool_vector_fill.
10089 (mapcar1): Use bool_vector_ref.
10090 (sxhash_bool_vector): Hash words, not bytes.
10091 * lisp.h (BOOL_VECTOR_BITS_PER_CHAR): Now a macro as well as
10092 a constant, since it's now used in #if.
10093 (bits_word, BITS_WORD_MAX, BITS_PER_BITS_WORD): Fall back on
10094 unsigned char on unusual architectures, so that we no longer
10095 assume that the number of bits per bits_word is a power of two or
10096 is a multiple of 8 or of CHAR_BIT.
10097 (Qt): Add forward decl.
10098 (struct Lisp_Bool_Vector): Don't assume EMACS_INT is aligned
10099 at least as strictly as bits_word.
10100 (bool_vector_data, bool_vector_uchar_data): New accessors.
10101 All data structure accesses changed to use them.
10102 (bool_vector_words, bool_vector_bitref, bool_vector_ref)
10103 (bool_vector_set): New functions.
10104 (bool_vector_fill): New decl.
10105 (ROUNDUP): Move to alloc.c as described above.
10106
10107 Fix recent gnutls changes.
10108 * gnutls.c (Fgnutls_boot): Don't assume C99.
10109 * process.c (wait_reading_process_output): Fix typo in recent change.
10110
10111 2013-11-05 Teodor Zlatanov <tzz@lifelogs.com>
10112
10113 * process.c (wait_reading_process_output, read_process_output)
10114 (send_process): Check gnutls_state is not NULL.
10115
10116 * gnutls.c (emacs_gnutls_handle_error): Adjust log level for EAGAIN.
10117 (Fgnutls_boot): Set process gnutls_p later, after initialization.
10118
10119 2013-11-04 Jan Djärv <jan.h.d@swipnet.se>
10120
10121 * nsterm.m (init, run, stop:): New methods in EmacsApp for
10122 OSX >= 10.9 to prevent memory leak of GCD dispatch source.
10123
10124 * nsterm.h (EmacsApp): Add shouldKeepRunning and isFirst for
10125 OSX >= 10.9.
10126
10127 * nsfns.m (Fx_create_frame): Fix memory leak.
10128
10129 * macfont.m (CG_SET_FILL_COLOR_WITH_GC_FOREGROUND)
10130 (CG_SET_FILL_COLOR_WITH_GC_BACKGROUND)
10131 (CG_SET_STROKE_COLOR_WITH_GC_FOREGROUND): Fix memory leak.
10132
10133 2013-11-04 Eli Zaretskii <eliz@gnu.org>
10134
10135 * xdisp.c (message3_nolog, message_with_string): Encode the string
10136 before writing it to the terminal in a non-interactive session.
10137
10138 * lread.c (openp): If both FILENAME and SUFFIX are unibyte, make
10139 sure we concatenate them into a unibyte string.
10140
10141 * fileio.c (make_temp_name): Encode PREFIX, and decode the
10142 resulting temporary name before returning it to the caller.
10143 (Fexpand_file_name): If NAME is pure-ASCII and DEFAULT_DIRECTORY
10144 is a unibyte string, convert NAME to a unibyte string to ensure
10145 that the result is also a unibyte string.
10146
10147 * emacs.c (init_cmdargs): Use build_unibyte_string to make sure we
10148 create unibyte strings from default paths and directory/file
10149 names.
10150
10151 * coding.h (ENCODE_FILE): Do not attempt to encode a unibyte
10152 string.
10153
10154 * callproc.c (init_callproc): Use build_unibyte_string to make
10155 sure we create unibyte strings from default paths and
10156 directory/file names.
10157
10158 * buffer.c (init_buffer): Don't store default-directory of
10159 *scratch* in multibyte form. The original problem which led to
10160 that is described in
10161 http://lists.gnu.org/archive/html/emacs-pretest-bug/2004-11/msg00532.html,
10162 but it was solved long ago. (Bug#15260)
10163
10164 2013-11-04 Paul Eggert <eggert@cs.ucla.edu>
10165
10166 Port to stricter C99 platforms.
10167 Especially, C99 prohibits nesting a struct X inside struct Y if
10168 struct X has a flexible array member.
10169 * alloc.c (struct sdata): New type.
10170 (sdata): Implement in terms of struct sdata.
10171 Remove u member; all uses replaced by next_vector, set_next_vector.
10172 (SDATA_SELECTOR, SDATA_DATA, SDATA_DATA_OFFSET): Adjust to sdata change.
10173 (SDATA_DATA_OFFSET): Now a constant, not a macro.
10174 (struct sblock): Rename first_data member to data, which is now
10175 a flexible array member. All uses changed.
10176 (next_vector, set_next_vector, large_vector_vec): New functions.
10177 (vector_alignment): New constant.
10178 (roundup_size): Make it a multiple of ALIGNOF_STRUCT_LISP_VECTOR, too.
10179 (struct large-vector): Now merely a NEXT member, since the old approach
10180 ran afoul of stricter C99. All uses changed to use
10181 large_vector_vec or large_vector_offset.
10182 (large_vector_offset): New constant.
10183 * dispnew.c: Include tparam.h, for tgetent.
10184 Do not include term.h; no longer needed.
10185 * gnutls.c (Fgnutls_boot): Don't continue after calling a _Noreturn.
10186 * lisp.h (ENUM_BF) [__SUNPRO_C && __STDC__]: Use unsigned int.
10187 (struct Lisp_Vector): Use a flexible array member for contents,
10188 instead of a union with a member that is an array of size 1.
10189 All uses changed.
10190 (ALIGNOF_STRUCT_LISP_VECTOR): New constant, to make up for the
10191 fact that the struct no longer contains a union.
10192 (struct Lisp_Misc_Any, struct Lisp_Marker, struct Lisp_Overlay)
10193 (struct Lisp_Save_Value, struct Lisp_Free):
10194 Use unsigned, not int, for spacers, to avoid c99 warning.
10195 (union specbinding): Use unsigned, not bool, for bitfield, as
10196 bool is not portable to pre-C99 hosts.
10197
10198 2013-11-04 Glenn Morris <rgm@gnu.org>
10199
10200 * emacs.c (usage_message): Mention that `-L :...' appends.
10201
10202 2013-11-02 Glenn Morris <rgm@gnu.org>
10203
10204 * Makefile.in (abs_builddir): Remove.
10205 (bootstrap_exe): Use relative filename.
10206
10207 Use relative filenames in TAGS files.
10208 * Makefile.in (abs_srcdir): Remove it again.
10209 (.PHONY): Remove frc.
10210 (maintainer-clean): No more TAGS-LISP file.
10211 (TAGS): Pass relative file names to etags.
10212 (../lisp/TAGS): Rename from TAGS-LISP. Work in ../lisp.
10213
10214 * Makefile.in (abs_srcdir): New, set by configure.
10215 (lispdir): Remove.
10216 (maintainer-clean): Remove pointless echo. That should be in the
10217 top-level Makefile, if anywhere. Delete TAGS-LISP.
10218 (extraclean): No s/ and m/ directories for some time.
10219 (TAGS): Also depend on ctagsfiles3.
10220 Remove no-longer-defined S_FILE.
10221 Pass absolute filenames to etags once more.
10222 (TAGS-LISP): Replace lispdir with its expansion.
10223 (TAGS-LISP, $(lwlibdir)/TAGS): Correctly pass ETAGS to sub-makes.
10224 ($(lwlibdir)/TAGS): Remove useless subshell, check cd return value.
10225
10226 2013-11-02 Jan Djärv <jan.h.d@swipnet.se>
10227
10228 * xfaces.c (check_lface_attrs, realize_default_face):
10229 Add LFACE_DISTANT_FOREGROUND_INDEX (Bug#15788).
10230 (realize_default_face): Set DISTANT_FOREGROUND to unspecified_fg.
10231
10232 2013-11-02 Paul Eggert <eggert@cs.ucla.edu>
10233
10234 * emacs.c (original_pwd): Remove global var by making it local.
10235 (init_cmdargs): New arg ORIGINAL_PWD; caller changed.
10236
10237 2013-11-01 Jan Djärv <jan.h.d@swipnet.se>
10238
10239 * xfaces.c: Declare color_distance.
10240 (QCdistant_foreground): New variable.
10241 (NEAR_SAME_COLOR_THRESHOLD): New define.
10242 (load_color2): New function.
10243 (load_color): Call load_color2.
10244 (load_face_colors): Call load_color2 and if distant-color is specified
10245 calculate distant and use distant-color if colors are near.
10246 (LFACE_DISTANT_FOREGROUND): New define.
10247 (merge_face_ref, Finternal_set_lisp_face_attribute)
10248 (Finternal_get_lisp_face_attribute)
10249 (x_supports_face_attributes_p): Handle distant-foreground similar to
10250 foreground.
10251 (syms_of_xfaces): DEFSYM QCdistant_foreground.
10252
10253 * dispextern.h (lface_attribute_index):
10254 Add LFACE_DISTANT_FOREGROUND_INDEX.
10255
10256 2013-11-01 Claudio Bley <claudio.bley@googlemail.com>
10257
10258 * image.c (pbm_next_char): New function.
10259 See http://netpbm.sourceforge.net/doc/pbm.html for the details.
10260 (pbm_scan_number): Use it.
10261 (Qlibjpeg_version): New variable.
10262 (syms_of_image): DEFSYM and initialize it.
10263
10264 2013-10-31 Jan Djärv <jan.h.d@swipnet.se>
10265
10266 * emacs.c (main): Skip -psn args on OSX even if ! isatty (0).
10267
10268 2013-10-31 Glenn Morris <rgm@gnu.org>
10269
10270 * emacs.c (original_pwd): New char.
10271 (main): If using --chdir, store original_pwd.
10272 (init_cmdargs): When setting Vinvocation_directory based on a
10273 relative argv[0], use original_pwd if set. (Bug#15768)
10274
10275 2013-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
10276
10277 * keyboard.c (command_loop_1): If command is nil, call `undefined'.
10278
10279 2013-10-29 Paul Eggert <eggert@cs.ucla.edu>
10280
10281 * insdel.c: Fix minor problems found by static checking.
10282 (Qregion_extract_function): Now static.
10283 (prepare_to_modify_buffer_1): Remove unused locals.
10284
10285 2013-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
10286
10287 * xdisp.c (prepare_menu_bars): Call Vpre_redisplay_function.
10288 (syms_of_xdisp): Declare pre-redisplay-function.
10289 (markpos_of_region): Remove function.
10290 (init_iterator, compute_stop_pos, handle_face_prop)
10291 (face_before_or_after_it_pos, reseat_to_string)
10292 (get_next_display_element, window_buffer_changed)
10293 (redisplay_internal, try_cursor_movement, redisplay_window)
10294 (try_window_reusing_current_matrix, try_window_id, display_line)
10295 (note_mode_line_or_margin_highlight, note_mouse_highlight)
10296 (display_string, mouse_face_from_buffer_pos): Remove region handling.
10297 * window.h (struct window): Remove field `region_showing'.
10298 * dispextern.h (struct it): Remove region_beg/end_charpos.
10299 (face_at_buffer_position, face_for_overlay_string)
10300 (face_at_string_position): Update prototypes.
10301 * xfaces.c (face_at_buffer_position, face_for_overlay_string)
10302 (face_at_string_position): Remove `region_beg' and `region_end' args.
10303 * fontset.c (Finternal_char_font):
10304 * font.c (font_at, font_range): Adjust calls accordingly.
10305 * insdel.c (Qregion_extract_function): New var.
10306 (syms_of_insdel): Initialize it.
10307 (prepare_to_modify_buffer_1): Use it.
10308
10309 2013-10-29 Dmitry Antipov <dmantipov@yandex.ru>
10310
10311 Prefer 'unsigned long' to 'long unsigned int' and 'unsigned long int'.
10312 * ftxfont.c (ftxfont_get_gcs):
10313 * gtkutil.c (xg_set_widget_bg, xg_set_background_color):
10314 * xfaces.c (x_free_colors, x_free_dpy_colors)
10315 (x_create_gc, unload_color):
10316 * xselect.c (x_property_data_to_lisp):
10317 * xsettings.c (parse_settings):
10318 * xterm.c (x_copy_color, x_alloc_lighter_color, x_setup_relief_color)
10319 (get_bits_and_offset): Adjust definition.
10320 * frame.c (XParseGeometry): Adjust locals.
10321 * lisp.h (toplevel): Adjust EMACS_UINT type definition.
10322 * regex.h (toplevel): Likewise for reg_syntax_t.
10323
10324 2013-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
10325
10326 * eval.c (run_hook_with_args): Use FUNCTIONP.
10327
10328 2013-10-29 Dmitry Antipov <dmantipov@yandex.ru>
10329
10330 * xterm.h (struct x_output): For 'black_relief' and 'white_relief'
10331 fields, drop 'allocated_p' member and use -1 for uninitialized value.
10332 * w32term.h (struct w32_output): Similarly but do not use -1 because...
10333 * xfaces.c (unload_color) [HAVE_X_WINDOWS]: ...this function is a no-op
10334 on MS-Windows anyway.
10335 (free_face_colors): Define only if HAVE_X_WINDOWS and...
10336 (free_realized_face): ...adjust user.
10337 * xfns.c (Fx_create_frame, x_create_tip_frame): Initialize black and
10338 white relief pixels to -1.
10339 * xterm.c (x_setup_relief_color, x_free_frame_resources): Adjust users.
10340 * w32term.c (w32_setup_relief_color, x_free_frame_resources): Likewise.
10341 * dispextern.h (unload_color): Move prototype under HAVE_X_WINDOWS.
10342
10343 2013-10-28 Paul Eggert <eggert@cs.ucla.edu>
10344
10345 * dispextern.h, image.c (x_bitmap_height, x_bitmap_width): Now static.
10346 * xfaces.c (load_pixmap): Omit last two args, which are always NULL
10347 in practice now. All callers changed.
10348
10349 2013-10-28 Dmitry Antipov <dmantipov@yandex.ru>
10350
10351 * dispextern.h (struct face): Use bitfields for 'underline_type'
10352 and 'box' members. Remove set-but-unused members 'pixmap_w' and
10353 'pixmap_h'. If not HAVE_WINDOW_SYSTEM, also remove dummy
10354 'stipple' member. Move 'lface' member up to help...
10355 * xfaces.c (make_realized_face): ...this function to find and
10356 clear just the members that need clearing.
10357 (load_face_colors, realize_x_face):
10358 * xdisp.c (extend_face_to_end_of_line): Adjust user.
10359
10360 2013-10-27 Dmitry Antipov <dmantipov@yandex.ru>
10361
10362 * xftfont.c (struct xftfont_info): Remove set-but-unused
10363 'screen' member.
10364 (xftfont_open): Adjust user.
10365 (xftfont_get_colors): Remove useless prototype.
10366
10367 2013-10-26 Eli Zaretskii <eliz@gnu.org>
10368
10369 * emacs.c (Fdump_emacs): Encode FILENAME and SYMFILE arguments
10370 before passing them to 'unexec'. (Bug#15260)
10371
10372 2013-10-26 Xue Fuqiao <xfq.free@gmail.com>
10373
10374 * fringe.c (set_fringe_bitmap_face): Add usage note from lispref.
10375
10376 2013-10-25 Eli Zaretskii <eliz@gnu.org>
10377
10378 * w32uniscribe.c (uniscribe_close): Adjust the argument list to
10379 the changed signature of the font driver's 'close' method.
10380
10381 * w32font.h (w32font_close): Adjust the prototype to the change in
10382 function definition.
10383
10384 * w32font.c (w32font_close): Reintroduce deleted declaration of i.
10385
10386 * w32uniscribe.c (uniscribe_close): Adapt the call to
10387 w32font_close to its new prototype.
10388
10389 2013-10-25 Dmitry Antipov <dmantipov@yandex.ru>
10390
10391 Omit unused frame argument of font API's close function.
10392 * font.h (struct font): Drop frame argument. Adjust comment.
10393 * font.c (font_clear_cache, font_close_object): Adjust users.
10394 * ftfont.c (ftfont_close):
10395 * ftxfont.c (ftxfont_close):
10396 * macfont.m (macfont_close):
10397 * nsfont.m (nsfont_close):
10398 * w32font.c (w32font_close):
10399 * xfont.c (xfont_close):
10400 * xftfont.c (xftfont_close): Adjust driver-specific close functions,
10401 tweak comments and make functions safe if called more than once for
10402 the same font object.
10403
10404 Perform font-specific cleanup when font object is swept by GC. See
10405 http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00740.html.
10406 * alloc.c (cleanup_vector): New function.
10407 (sweep_vector): Call it for each reclaimed vector object.
10408 * font.h (struct font): Adjust comment.
10409
10410 2013-10-24 Glenn Morris <rgm@gnu.org>
10411
10412 * Makefile.in (abs_top_srcdir): New, set by configure.
10413
10414 2013-10-23 Dmitry Antipov <dmantipov@yandex.ru>
10415
10416 Adjust recent font-related changes to fix bug#15686.
10417 * alloc.c (mark_object) [HAVE_WINDOW_SYSTEM]: If marked frame
10418 is a live window system frame, mark its default font too.
10419
10420 2013-10-23 Glenn Morris <rgm@gnu.org>
10421
10422 * Makefile.in (RUN_TEMACS): Make relative (again).
10423 ($(leimdir)/leim-list.el, .el.elc, $(lispsource)/loaddefs.el)
10424 (bootstrap-emacs$(EXEEXT)):
10425 Quote entities that might contain whitespace.
10426
10427 2013-10-23 Paul Eggert <eggert@cs.ucla.edu>
10428
10429 Port to Solaris 10 and its bundled GCC. Reported by Timothy C. Burt.
10430 * floatfns.c (isfinite, isnan): Redefine unconditionally.
10431
10432 2013-10-21 Dmitry Antipov <dmantipov@yandex.ru>
10433
10434 Do not allow font caches to grow too large.
10435 * alloc.c (compact_font_cache_entry, compact_font_caches):
10436 New functions or stub if not HAVE_WINDOW_SYSTEM.
10437 (compact_undo_list): Factor out from Fgarbage_collect.
10438 Add comment.
10439 (mark_face_cache): Mark face font. Move down to avoid
10440 extra prototypes.
10441 (mark_terminals): Do not mark font cache here.
10442 (Fgarbage_collect): Call compaction functions described
10443 above. Adjust comment.
10444
10445 2013-10-20 Jan Djärv <jan.h.d@swipnet.se>
10446
10447 * emacs.c (main): On Cocoa, if GUI session and 0 is not a tty,
10448 chdir to HOME (bug#15607).
10449
10450 * nsterm.m (Qcocoa, Qgnustep): New variables.
10451 (syms_of_nsterm): Defsym Qcocoa, Qgnustep. Fprovide appropriate one.
10452 (ns_get_color): Make selection color work for GNUstep also.
10453
10454 2013-10-18 Eli Zaretskii <eliz@gnu.org>
10455
10456 * keyboard.c (make_lispy_event): Remove GPM-specific code that
10457 handles mouse clicks. Instead, let GPM use the same code as all
10458 the other mice use. See the discussion starting at
10459 http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00521.html
10460 for the details of the problem with the menu bar this fixes.
10461
10462 2013-10-18 Dmitry Antipov <dmantipov@yandex.ru>
10463
10464 Remove port-specific display name lists to avoid extra
10465 complexity and data duplication with display info lists.
10466 * xterm.h (x_display_name_list): Remove declaration.
10467 * xterm.c (x_display_name_list): Remove.
10468 (x_term_init, x_delete_display, syms_of_xterm): Adjust users.
10469 * xfns.c (x_display_info_for_name, Fx_display_list):
10470 Likewise. Use x_display_list where appropriate.
10471 * w32term.h (w32_display_name_list): Remove declaration.
10472 * w32term.c (w32_display_name_list): Remove.
10473 (w32_initialize_display_info, x_delete_display, syms_of_w32term):
10474 Adjust users.
10475 * w32fns.c (x_display_info_for_name, Fx_display_list):
10476 Likewise. Use x_display_list where appropriate.
10477 * nsterm.h (ns_display_name_list): Remove declaration.
10478 * nsterm.m (ns_display_name_list): Remove.
10479 (ns_term_init, syms_of_nsterm): Adjust users.
10480 * nsfns.m (ns_display_info_for_name, Fx_display_list):
10481 Likewise. Use x_display_list where appropriate.
10482 * termhooks.h (TERMINAL_FONT_CACHE): New macro.
10483 * alloc.c (toplevel) [HAVE_WINDOW_SYSTEM]: Include TERM_HEADER.
10484 (mark_terminals): Mark per-terminal font cache.
10485
10486 2013-10-17 Barry O'Reilly <gundaetiapo@gmail.com>
10487
10488 Don't run timers in input-pending-p. Its new check-timers param
10489 provides the prior behavior. (Bug#15045).
10490 * keyboard.c (Finput_pending_p): Accept optional check-timers param.
10491
10492 2013-10-17 Paul Eggert <eggert@cs.ucla.edu>
10493
10494 Make some functions static in non-Microsoft builds.
10495 On my platform (Fedora 19 x86-64), this shrinks the
10496 Emacs executable (text+data) by 0.25%.
10497 * dispextern.h (erase_phys_cursor) [!WINDOWSNT]:
10498 (load_color) [!MSDOS]:
10499 * gnutls.h (emacs_gnutls_transport_set_errno) [!WINDOWSNT]:
10500 * keyboard.h (make_ctrl_char) [!WINDOWSNT]:
10501 * lisp.h (check_existing):
10502 * process.h (conv_sockaddr_to_lisp, network_interface_list)
10503 (network_interface_info) [!WINDOWSNT]:
10504 * termhooks.h (encode_terminal_code) [!WINDOWSNT]:
10505 Remove extern decls.
10506 * fileio.c (check_existing):
10507 * keyboard.c (make_ctrl_char) [!WINDOWSNT]:
10508 * process.c (conv_sockaddr_to_lisp, network_interface_list)
10509 (network_interface_info) [!WINDOWSNT]:
10510 * term.c (encode_terminal_code) [!WINDOWSNT]:
10511 * xdisp.c (erase_phys_cursor) [!WINDOWSNT]:
10512 * xfaces.c (load_color) [!MSDOS]:
10513 Now static.
10514 * fileio.c (check_existing, check_executable, check_writable):
10515 * process.c (network_interface_list, network_interface_info):
10516 Move earlier, so that we don't need forward decls.
10517 * gnutls.c (fn_gnutls_transport_set_errno)
10518 (emacs_gnutls_transport_set_errno) [!WINDOWNT]:
10519 Remove; unused.
10520 * w32.c (init_environment): Use faccessat rather than
10521 check_existing, partly for consistency with the rest of the code
10522 in this file, partly so that check_existing can be static.
10523
10524 Make VALMASK visible to GDB even if clang is used (Bug#15574).
10525 * emacs.c (MAIN_PROGRAM): New macro.
10526 * lisp.h (DEFINE_GDB_SYMBOL_BEGIN, DEFINE_GDB_SYMBOL_END): New macros.
10527 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
10528
10529 bool vector int width fixes
10530 * data.c (bool_vector_spare_mask, Fbool_vector_count_matches)
10531 (Fbool_vector_count_matches_at):
10532 Use EMACS_INT, not ptrdiff_t, to record bit counts, as a bit count
10533 can exceed PTRDIFF_MAX, at least in theory.
10534 (Fbool_vector_count_matches_at):
10535 Use int, not ptrdiff_t, to record a value that can't exceed INT_MAX.
10536
10537 2013-10-16 Paul Eggert <eggert@cs.ucla.edu>
10538
10539 * process.h (conv_sockaddr_to_lisp): New decl, for newly-extern func.
10540 (struct sockaddr): Add forward decl, for platforms that lack it.
10541
10542 2013-10-16 Jan Djärv <jan.h.d@swipnet.se>
10543
10544 * nsselect.m (ns_string_from_pasteboard): Remove Fquit, just return
10545 Qnil (Bug#15628).
10546
10547 2013-10-16 Eli Zaretskii <eliz@gnu.org>
10548
10549 * w32.c (network_interface_get_info, network_interface_list)
10550 (network_interface_info): New functions. (Bug#15610)
10551 (GetAdaptersInfo_Proc): New typedef.
10552 (get_adapters_info): New wrapper function.
10553 (globals_of_w32): Initialize g_b_init_get_adapters_info.
10554
10555 * process.h (network_interface_list, network_interface_info):
10556 New prototypes.
10557
10558 * process.c (conv_sockaddr_to_lisp): Now externally-visible.
10559 (Fnetwork_interface_list, Fnetwork_interface_info): Define for
10560 all systems. Return non-nil for systems that HAVE_NET_IF_H and
10561 for WINDOWSNT. Doc fix.
10562 (syms_of_process): Defsubr Snetwork_interface_list and
10563 Snetwork_interface_info unconditionally.
10564
10565 * menu.c (have_boxes): Fix redundant simulation of radio buttons
10566 in NS GUI sessions. (Bug#15629)
10567
10568 2013-10-16 Dmitry Antipov <dmantipov@yandex.ru>
10569
10570 * fns.c (Fstring_as_unibyte): Use xlispstrdup.
10571
10572 2013-10-15 Paul Eggert <eggert@cs.ucla.edu>
10573
10574 * print.c (print_object): Print " ..." when truncating bool vectors.
10575
10576 2013-10-15 Eli Zaretskii <eliz@gnu.org>
10577
10578 * w32inevt.c (do_mouse_event): Support mouse wheel and all the 5
10579 standard mouse buttons.
10580
10581 * termhooks.h (struct input_event): Remove incorrect commentary.
10582
10583 2013-10-15 Paul Eggert <eggert@cs.ucla.edu>
10584
10585 Disallow bool vector operations on mixed-length operands.
10586 The old behavior left garbage in the result vector sometimes,
10587 and didn't seem to be useful.
10588 * data.c (Qwrong_length_argument): New static var.
10589 (wrong_length_argument): New function.
10590 (bool_vector_binop_driver): Check that args agree in length.
10591
10592 * keyboard.c, keyboard.h (all_kboards): Now static.
10593
10594 2013-10-15 Xue Fuqiao <xfq.free@gmail.com>
10595
10596 * buffer.c (syms_of_buffer) <buffer-invisibility-spec>: Add usage
10597 note from the lispref.
10598
10599 2013-10-15 Dmitry Antipov <dmantipov@yandex.ru>
10600
10601 * nsterm.h (struct ns_display_info): Remove set-but-unused
10602 member image_cache (image caches are per-terminal anyway).
10603 (FRAME_X_IMAGE_CACHE): Remove.
10604 * nsterm.m (ns_initialize_display_info): Adjust user.
10605
10606 2013-10-14 Eli Zaretskii <eliz@gnu.org>
10607
10608 * w32proc.c: Include mingw_time.h.
10609
10610 * w32.c: Include mingw_time.h.
10611
10612 Implement scrolling of TTY menus when the screen is too short.
10613
10614 * term.c (tty_menu_display): Accept an additional argument, the
10615 menu item from which to start displaying the menu. Account for
10616 the value of Y when limiting the menu to the number of available
10617 screen lines.
10618 (mi_result): New enumeration.
10619 (read_menu_input): Return enumerated value. When the y coordinate
10620 hits min_y or max_y, return scroll indication instead of wrapping
10621 around the menu.
10622 (tty_menu_activate): Handle the scrolling indications from
10623 read_menu_input. Compute the first menu item to display and pass
10624 it to tty_menu_display.
10625
10626 2013-10-14 Dmitry Antipov <dmantipov@yandex.ru>
10627
10628 * termhooks.h (FRAME_MUST_WRITE_SPACES, FRAME_LINE_INS_DEL_OK)
10629 (FRAME_CHAR_INS_DEL_OK, FRAME_SCROLL_REGION_OK)
10630 (FRAME_SCROLL_REGION_COST, FRAME_MEMORY_BELOW_FRAME):
10631 Adjust to match the change described below.
10632 (struct terminal): Move must_write_spaces, line_ins_del_ok,
10633 char_ins_del_ok, scroll_region_ok, scroll_region_cost and
10634 memory_below_frame members to...
10635 * termchar.h (struct tty_display_info): ...here because they're
10636 relevant only on TTYs. Prefer unsigned bitfield where appropriate.
10637 * term.c (init_tty):
10638 * nsterm.m (ns_create_terminal):
10639 * w32term.c (w32_create_terminal):
10640 * xterm.c (x_create_terminal): Adjust users.
10641 * dispnew.c (line_hash_code, line_draw_cost): Pass frame arg
10642 to filter out non-TTY frames. Adjust comment.
10643 (scrolling): Adjust user. Prefer eassert for debugging check.
10644
10645 2013-10-14 Dmitry Antipov <dmantipov@yandex.ru>
10646
10647 * xfaces.c (PT_PER_INCH): Remove unused macro.
10648 * termhooks.h (struct terminal): Remove set-but-unused
10649 member fast_clear_end_of_line.
10650 (FRAME_FAST_CLEAR_END_OF_LINE): Remove.
10651 * nsterm.m (ns_create_terminal):
10652 * term.c (init_tty):
10653 * w32term.c (w32_create_terminal):
10654 * xterm.c (x_create_terminal): Adjust users.
10655
10656 2013-10-14 Paul Eggert <eggert@cs.ucla.edu>
10657
10658 * lisp.h (bool_vector_size): New function.
10659 All uses of XBOOL_VECTOR (x)->size changed to bool_vector_size (x).
10660 * data.c (bool_vector_spare_mask, bool_vector_binop_driver)
10661 (Fbool_vector_not, Fbool_vector_count_matches_at):
10662 Remove uses of 'eassume' that should no longer be needed,
10663 because they are subsumed by the 'eassume' in bool_vector_size.
10664
10665 2013-10-12 Eli Zaretskii <eliz@gnu.org>
10666
10667 * image.c (GIFLIB_MAJOR, GIFLIB_MINOR, GIFLIB_RELEASE): Move back
10668 after inclusion of gif_lib.h, thus fixing compiler warnings caused
10669 by 2013-10-10T19:15:33Z!eggert@cs.ucla.edu.
10670
10671 2013-10-11 Eli Zaretskii <eliz@gnu.org>
10672
10673 * xdisp.c (deep_copy_glyph_row): Handle the case that FROM and TO
10674 have different dimensions. (Bug#15575)
10675
10676 * dispnew.c (fill_up_frame_row_with_spaces): Now has external
10677 visibility.
10678
10679 * dispextern.h (fill_up_frame_row_with_spaces): Add prototype.
10680
10681 2013-10-11 Dmitry Antipov <dmantipov@yandex.ru>
10682
10683 * term.c (tty_menu_show): Never return with unbalanced
10684 specpdl. Use eassert for debugging check. Adjust style.
10685
10686 2013-10-11 Eli Zaretskii <eliz@gnu.org>
10687
10688 * term.c (read_menu_input): Make selection of menu items
10689 cyclical. Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
10690 (tty_menu_activate): Fix off-by-one error when computing max_y.
10691
10692 2013-10-11 Teodor Zlatanov <tzz@lifelogs.com>
10693
10694 * gnutls.c (gnutls_audit_log_function): Add function for GnuTLS
10695 audit logging (only used with GnuTLS 3.x) and enable it.
10696
10697 2013-10-11 Dmitry Antipov <dmantipov@yandex.ru>
10698
10699 * dispnew.c (redraw_frame): Remove useless #ifdef because
10700 FRAME_MSDOS_P is a compile-time zero everywhere except MS-DOS.
10701 Also, move TTY fflush to...
10702 * term.c (tty_update_end): ...this function.
10703
10704 2013-10-11 Eli Zaretskii <eliz@gnu.org>
10705
10706 * xdisp.c (display_tty_menu_item): Make sure we never write beyond
10707 the end of the frame's glyph matrix. (Bug#15575)
10708
10709 * term.c (tty_menu_display): Don't move cursor while overwriting
10710 frame's glyphs with menu items. Limit the number of items
10711 displayed to what can be shown on the available screen lines,
10712 excluding the echo area.
10713 (tty_menu_activate): Limit the Y coordinate allowed by
10714 read_menu_input to the last screen line used for menu display.
10715
10716 2013-10-11 Paul Eggert <eggert@cs.ucla.edu>
10717
10718 * lisp.h (eassume): New macro.
10719 Also, include <verify.h>, for 'assume'.
10720 * alloc.c (bool_vector_payload_bytes, Fmake_bool_vector)
10721 (vroundup, vector_nbytes):
10722 * data.c (bool_vector_spare_mask, bool_vector_binop_driver)
10723 (Fbool_vector_not, Fbool_vector_count_matches)
10724 (Fbool_vector_count_matches_at):
10725 Use eassume, not eassert.
10726 * casetab.c (set_identity, shuffle):
10727 * composite.c (composition_gstring_put_cache):
10728 * dispnew.c (update_frame_1):
10729 * ftfont.c (ftfont_shape_by_flt):
10730 * image.c (gif_load):
10731 * intervals.c (offset_intervals):
10732 * macfont.m (macfont_shape):
10733 Remove calls to 'assume' that are no longer needed, because
10734 --enable-gcc-warnings no longer generates bogus warnings
10735 when these calls are removed.
10736
10737 2013-10-11 Dmitry Antipov <dmantipov@yandex.ru>
10738
10739 * xdisp.c (deep_copy_glyph_row): Remove unused locals.
10740
10741 2013-10-10 Stefan Monnier <monnier@iro.umontreal.ca>
10742
10743 * fileio.c (Fsubstitute_in_file_name): Use substitute-env-in-file-name.
10744 (Qsubstitute_env_in_file_name): New var.
10745 (syms_of_fileio): Define it.
10746
10747 2013-10-10 Eli Zaretskii <eliz@gnu.org>
10748
10749 * xdisp.c (deep_copy_glyph_row): Assert that the 'used' counts of
10750 FROM and TO are identical. Copy only the glyphs of TEXT_AREA.
10751 (Bug#15575)
10752
10753 * term.c (save_and_enable_current_matrix): Don't allocate and
10754 don't save margin areas.
10755 (restore_desired_matrix): Don't restore margin areas.
10756 (free_saved_screen): Don't free margin areas.
10757
10758 2013-10-10 Paul Eggert <eggert@cs.ucla.edu>
10759
10760 * image.c: Pacify --enable-gcc-warnings.
10761 (GIFLIB_MAJOR, GIFLIB_MINOR, GIFLIB_RELEASE, fn_GifErrorString):
10762 #define only if used.
10763
10764 2013-10-10 Eli Zaretskii <eliz@gnu.org>
10765
10766 * image.c (GIFLIB_MAJOR): Define to 4 if undefined.
10767 (GIFLIB_MINOR, GIFLIB_RELEASE): Define to zero if undefined.
10768 (GifErrorString) [GIFLIB_MAJOR >= 5]: Define a function pointer.
10769 (gif_load): For giflib v5.x and later, display the error message
10770 produced by giflib when its functions fail.
10771 (syms_of_image) <Qlibgif_version> [HAVE_NTGUI]: New DEFSYM.
10772 (Bug#15531)
10773
10774 2013-10-10 Dmitry Antipov <dmantipov@yandex.ru>
10775
10776 * keyboard.c (last_event_timestamp): Remove. For X selection and
10777 GTK popup menus, it may be obtained from per-frame X display info.
10778 (kbd_buffer_store_event_hold, kbd_buffer_get_event)
10779 (process_special_events): Adjust users.
10780 * keyboard.h (last_event_timestamp): Remove declaration.
10781 * xmenu.c (xmenu_show, create_and_show_popup_menu): Lost last arg.
10782 Use FRAME_DISPLAY_INFO (f)->last_user_time for gtk_menu_popup.
10783 * menu.h (xmenu_show): Adjust prototype.
10784 * menu.c (Fx_popup_menu): Adjust user.
10785 * xselect.c (x_own_selection, x_get_foreign_selection)
10786 (Fx_disown_selection_internal): Use dpyinfo->last_user_time.
10787
10788 2013-10-10 Dmitry Antipov <dmantipov@yandex.ru>
10789
10790 * keyboard.c (init_kboard): Now static. Add arg
10791 to denote window system. Adjust comment.
10792 (init_keyboard): Adjust user.
10793 (allocate_kboard): New function.
10794 (syms_of_keyboard):
10795 * nsterm.m (ns_term_init):
10796 * term.c (init_tty):
10797 * w32term.c (w32_create_terminal):
10798 * xterm.c (x_term_init): Use it.
10799 * keyboard.h (init_kboard): Remove prototype.
10800 (allocate_kboard): Add prototype.
10801
10802 2013-10-10 Barry Fishman <barry_fishman@acm.org> (tiny change)
10803
10804 * image.c (GIFLIB_MAJOR): Ensure it's defined.
10805 (DGifOpen, DGifOpenFileName): Handle giflib 5 syntax. (Bug#15531)
10806
10807 2013-10-09 Paul Eggert <eggert@cs.ucla.edu>
10808
10809 * fns.c (sxhash_bool_vector): Fix buffer read overrun.
10810
10811 2013-10-09 Eli Zaretskii <eliz@gnu.org>
10812
10813 * term.c (tty_menu_activate): Flush the output stream after
10814 showing the cursor, and don't mark the frame garbaged at exit from
10815 the function. Fixes redisplay glitches when moving from one menu
10816 to another.
10817
10818 2013-10-09 Jan Djärv <jan.h.d@swipnet.se>
10819
10820 * nsfns.m (Fns_convert_utf8_nfd_to_nfc): Check input for valid UTF-8
10821 or throw error (Bug#15570).
10822
10823 2013-10-09 Paul Eggert <eggert@cs.ucla.edu>
10824
10825 * intervals.c (temp_set_point_both): Move test into 'eassert',
10826 for speed.
10827
10828 * lisp.h (eassert): Don't use 'assume'.
10829 Sometimes 'assume' wins in performance, and sometimes it loses,
10830 so it shouldn't be used all the time. Perhaps we need two
10831 flavors of 'eassert', one for where 'assume' is far more likely
10832 to help or to hurt; but that can be done later.
10833 Reported by Dmitry Antipov in
10834 <http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00276.html>.
10835 Also, don't include <verify.h>; no longer needed.
10836
10837 2013-10-09 Glenn Morris <rgm@gnu.org>
10838
10839 * eval.c (Fcond): Doc tweak.
10840
10841 2013-10-09 Eli Zaretskii <eliz@gnu.org>
10842
10843 * xfaces.c (x_free_gc) [HAVE_X_WINDOWS, HAVE_NTGUI]: Don't pass
10844 expressions with side effects to eassert. (Bug#15565)
10845
10846 2013-10-09 Stefan Monnier <monnier@iro.umontreal.ca>
10847
10848 * fns.c (hashfn_user_defined): Allow hash functions to return any
10849 Lisp_Object.
10850
10851 2013-10-08 Paul Eggert <eggert@cs.ucla.edu>
10852
10853 Fix minor problems found by static checking.
10854 * dispnew.c (save_current_matrix): Omit unnecessary casts.
10855 * dispnew.c (update_frame_with_menu): Mark debug local as used.
10856 * keyboard.c, keyboard.h (Qmouse_movement): Now static.
10857 * keyboard.c (read_menu_command): Remove unused local.
10858 * lisp.h (read_menu_command): New decl.
10859 * menu.c, menu.h (menu_item_width): Arg is now unsigned char *, for
10860 benefit of STRING_CHAR_AND_LENGTH. All uses changed.
10861 Return ptrdiff_t, not int.
10862 * term.c (tty_menu_struct): 'allocated' member is now ptrdiff_t,
10863 not int, for benefit of xpalloc.
10864 (tty_menu_create, tty_menu_make_room): Simplify by using xzalloc
10865 and xpalloc.
10866 (have_menus_p): Remove; unused.
10867 (tty_menu_add_pane, tty_menu_add_selection): Change signedness of
10868 local char * pointer to pacify STRING_CHAR_AND_LENGTH.
10869 (tty_menu_add_selection, tty_menu_locate, tty_meny_destroy):
10870 Now static.
10871 (save_and_enable_current_matrix): Omit unnecessary casts.
10872 (read_menu_input): Omit local extern decl (now in lisp.h).
10873 Don't access uninitialized storage if mouse_get_xy fails.
10874 (tty_menu_activate): Mark local as initialized, for lint.
10875 (tty_menu_activate, tty_meny_show): Remove unused locals.
10876
10877 2013-10-08 Eli Zaretskii <eliz@gnu.org>
10878
10879 Support menus on text-mode terminals.
10880 * xterm.h (xw_popup_dialog): Add prototype.
10881
10882 * xmenu.c (Fx_popup_dialog): Function moved to menu.c.
10883 (xmenu_show): Block input here, instead in Fx_popup_menu.
10884 (xw_popup_dialog): New function, with X-specific bits of popup
10885 dialogs.
10886
10887 * xdisp.c (deep_copy_glyph_row, display_tty_menu_item):
10888 New functions.
10889
10890 * window.c (Fset_window_configuration): Use run-time tests of the
10891 frame type instead of compile-time conditionals, when menu-bar
10892 lines are considered.
10893
10894 * w32term.h (w32con_hide_cursor, w32con_show_cursor)
10895 (w32_popup_dialog): New prototypes.
10896
10897 * w32menu.c (Fx_popup_dialog): Function deleted.
10898 (w32_popup_dialog): New function, with w32 specific bits of popup
10899 dialogs. Block input here.
10900
10901 * w32inevt.c (w32_console_read_socket): Minor change to add
10902 debugging TTY events.
10903
10904 * w32fns.c (show_hourglass): If returning early because the frame
10905 is not a GUI frame, unblock input.
10906
10907 * w32console.c (w32con_hide_cursor, w32con_show_cursor, cursorX)
10908 (cursorY): New functions.
10909
10910 * termhooks.h (cursorX, cursorY): Prototypes of functions on
10911 WINDOWSNT, macros that call curX and curY elsewhere.
10912
10913 * termchar.h (struct tty_display_info) <showing_menu>: New flag.
10914
10915 * term.c (tty_hide_cursor, tty_show_cursor) [WINDOWSNT]: Call w32
10916 specific function to hide and show cursor on a text-mode terminal.
10917 (tty_menu_struct, struct tty_menu_state): New structures.
10918 (tty_menu_create, tty_menu_make_room, tty_menu_search_pane)
10919 (tty_menu_calc_size, mouse_get_xy, tty_menu_display)
10920 (have_menus_p, tty_menu_add_pane, tty_menu_add_selection)
10921 (tty_menu_locate, save_and_enable_current_matrix)
10922 (restore_desired_matrix, screen_update, read_menu_input)
10923 (tty_menu_activate, tty_menu_destroy, tty_menu_help_callback)
10924 (tty_pop_down_menu, tty_menu_last_menubar_item)
10925 (tty_menu_new_item_coords, tty_menu_show): New functions.
10926 (syms_of_term): New DEFSYMs for tty-menu-* symbols.
10927
10928 * nsterm.h (ns_popup_dialog): Adjust prototype.
10929
10930 * nsmenu.m (ns_menu_show): Block and unblock input here, instead
10931 of in x-popup-menu.
10932 (ns_popup_dialog): Adapt order of arguments to the other
10933 *_menu_show implementations.
10934 (Fx_popup_dialog): Function deleted.
10935
10936 * msdos.c (x_set_menu_bar_lines): Delete unused function.
10937
10938 * menu.h (tty_menu_show, menu_item_width): Provide prototypes.
10939
10940 * menu.c (have_boxes): New function.
10941 (single_keymap_panes): Use it instead of a compile-time
10942 conditional.
10943 (single_menu_item): Use run-time tests of the frame type instead
10944 of compile-time conditionals.
10945 (encode_menu_string): New function.
10946 (list_of_items, list_of_panes): Use it instead of ENCODE_STRING
10947 the macro, since different types of frame need different encoding
10948 of menu items.
10949 (digest_single_submenu): Use run-time tests of frame type instead
10950 of, or in addition to, compile-time conditionals.
10951 (menu_item_width, Fmenu_bar_menu_at_x_y): New functions.
10952 (Fx_popup_menu): Detect when the function is called from keyboard
10953 on a TTY. Don't barf when invoked on a text-mode frame.
10954 Check frame type at run time, instead of compile-time conditionals for
10955 invoking terminal-specific menu-show functions.
10956 Call tty_menu_show on text-mode frames.
10957 (Fx_popup_dialog): Move here from xmenu.c. Test frame types at
10958 run time to determine which alternative to invoke; support dialogs
10959 on TTYs.
10960
10961 * keyboard.h <Qmouse_movement>: Declare.
10962
10963 * keyboard.c <Qmouse_movement>: Now extern.
10964 <Qecho_keystrokes>: New static variable.
10965 (read_key_sequence): Accept an additional argument, a flag to
10966 prevent redisplay during reading of the key sequence. All callers
10967 changed.
10968 (read_menu_command): New function.
10969 (read_char): When COMMANDFLAG is -2, do not redisplay and do not
10970 autosave.
10971 (toolkit_menubar_in_use): New function.
10972 (make_lispy_event): Use it instead of a compile-time test.
10973
10974 * fns.c (Fyes_or_no_p) [HAVE_MENUS]: Don't condition on
10975 window-system being available.
10976
10977 * editfns.c (Fmessage_box) [HAVE_MENUS]: Don't condition the call
10978 to x-popup-dialog on the frame type, they all now support popup
10979 dialogs.
10980
10981 * dispnew.c (save_current_matrix): Save the margin areas.
10982 (restore_current_matrix): Restore margin areas.
10983 (update_frame_with_menu): New function.
10984
10985 * dispextern.h (display_tty_menu_item, update_frame_with_menu):
10986 Add prototypes.
10987
10988 * alloc.c (make_save_ptr): Now compiled unconditionally.
10989
10990 2013-10-08 Dmitry Antipov <dmantipov@yandex.ru>
10991
10992 * dispnew.c (set_window_update_flags): Add buffer arg. Adjust comment.
10993 (redraw_frame, update_frame): Adjust users.
10994 * dispextern.h (set_window_update_flags): Adjust prototype.
10995 * xdisp.c (redisplay_internal): When updating all frames with zero
10996 windows_or_buffers_changed, assume that only the windows that shows
10997 current buffer should be really updated.
10998
10999 2013-10-08 Dmitry Antipov <dmantipov@yandex.ru>
11000
11001 Do not allocate huge temporary memory areas and objects while encoding
11002 for file I/O, thus reducing an enormous memory usage for large buffers.
11003 See http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00180.html.
11004 * coding.h (struct coding_system): New member raw_destination.
11005 * coding.c (setup_coding_system): Initialize it to zero.
11006 (encode_coding_object): If raw_destination is set, do not create
11007 dst_object. Add comment.
11008 * fileio.c (toplevel): New constant E_WRITE_MAX.
11009 (e_write): Do not encode more than E_WRITE_MAX characters per one loop
11010 iteration. Use raw_destination if E_WRITE_MAX characters is encoded.
11011
11012 2013-10-08 Jan Djärv <jan.h.d@swipnet.se>
11013
11014 * nsterm.m (windowDidExitFullScreen:)
11015 (toggleFullScreen:): Change NS_IMPL_COCOA to HAVE_NATIVE_FS.
11016
11017 2013-10-08 Paul Eggert <eggert@cs.ucla.edu>
11018
11019 Fix race where emacs aborts when sent SIGTERM (Bug#15534).
11020 * keyboard.c (unblock_input_to): Don't process pending signals
11021 if a fatal error is in progress.
11022
11023 * lisp.h (bits_word, BITS_WORD_MAX): New type and macro.
11024 All uses of 'size_t' and 'SIZE_MAX' changed to use them, when
11025 they're talking about words in Lisp bool vectors.
11026 (BITS_PER_BITS_WORD): Rename from BITS_PER_SIZE_T. All uses changed.
11027 * data.c (popcount_bits_word): Rename from popcount_size_t.
11028 (bits_word_to_host_endian): Rename from size_t_to_host_endian.
11029 All uses changed.
11030
11031 2013-10-07 Paul Eggert <eggert@cs.ucla.edu>
11032
11033 Improve support for popcount and counting trailing zeros (Bug#15550).
11034 * data.c: Include <count-one-bits.h>, <count-trailing-zeros.h>.
11035 (USE_MSC_POPCOUNT, POPCOUNT_STATIC_INLINE)
11036 (NEED_GENERIC_POPCOUNT, popcount_size_t_generic)
11037 (popcount_size_t_msc, popcount_size_t_gcc):
11038 Remove; now done by Gnulib.
11039 (popcount_size_t): Now a macro that defers to Gnulib.
11040 (count_trailing_zero_bits): Return int, for consistency with
11041 Gnulib and because Emacs prefers signed to unsigned int.
11042 Don't assume that size_t is either unsigned int or unsigned long
11043 or unsigned long long.
11044 (size_t_to_host_endian): Do not assume that size_t is either
11045 exactly 32 or exactly 64 bits wide.
11046 * lisp.h (BITS_PER_SIZE_T): Define consistently with BITS_PER_LONG
11047 etc., so that it's now an enum constant, not a macro.
11048 No need to assume that it's either 32 or 64.
11049
11050 2013-10-07 Jan Djärv <jan.h.d@swipnet.se>
11051
11052 * nsterm.m (windowDidEnterFullScreen:): setPresentationOptions only
11053 on >= 10.7.
11054
11055 2013-10-07 Dmitry Antipov <dmantipov@yandex.ru>
11056
11057 * insdel.c (insert_from_gap): Prefer ptrdiff_t to int where needed.
11058 * xdisp.c (handle_fontified_prop): Likewise. Use bool for boolean.
11059
11060 2013-10-07 Paul Eggert <eggert@cs.ucla.edu>
11061
11062 emacs_read and emacs_write now use void *, not char *.
11063 * alloc.c (valid_pointer_p) [!WINDOWSNT]: Remove now-unnecessary cast.
11064 * sysdep.c (emacs_read, emacs_write, emacs_write_sig):
11065 Buffer arg is now void *, not char *. This matches plain
11066 'read' and 'write' better, and avoids a constraint violation
11067 on Solaris 9 with Oracle Studio.
11068
11069 2013-10-07 Dmitry Antipov <dmantipov@yandex.ru>
11070
11071 * alloc.c (Fmake_string): For ASCII char initializer, prefer
11072 memset to explicit loop. Otherwise copy largest possible chunk
11073 from initialized to uninitialized part, thus allowing the longer
11074 memcpy runs and reducing the number of loop iterations.
11075
11076 2013-10-06 Jan Djärv <jan.h.d@swipnet.se>
11077
11078 * nsterm.m (ns_update_begin): If native fullscreen and no toolbar,
11079 hide toolbar (Bug#15388).
11080 (windowDidEnterFullScreen:): If presentation options are zero,
11081 set them here (Bug#15388).
11082 (ns_update_auto_hide_menu_bar): Remove runtime check.
11083 Don't auto hide dock unless menubar is also auto hidden.
11084
11085 2013-10-05 Xue Fuqiao <xfq.free@gmail.com>
11086
11087 * editfns.c (message): Mention batch mode in doc string.
11088
11089 2013-10-05 Jan Djärv <jan.h.d@swipnet.se>
11090
11091 * nsterm.m (check_native_fs): Remove erroneous comment.
11092
11093 2013-10-04 Dmitry Antipov <dmantipov@yandex.ru>
11094
11095 * xdisp.c (redisplay_internal): Simplify because scan_for_column now
11096 uses find_newline instead of scan_newline and so doesn't move point.
11097
11098 2013-10-04 Paul Eggert <eggert@cs.ucla.edu>
11099
11100 Use hardware support for byteswapping on glibc x86 etc.
11101 On Fedora 19 x86-64, the new bswap_64 needs 1 instruction,
11102 whereas the old swap64 needed 30.
11103 * fringe.c (init_fringe_bitmap) [WORDS_BIGENDIAN]:
11104 * sound.c (le2hl, le2hs, be2hl) [!WINDOWSNT]:
11105 Use byteswap.h's macros to swap bytes.
11106 * lisp.h (swap16, swap32, swap64): Remove.
11107 All uses replaced by bswap_16, bswap_32, bswap_64.
11108
11109 * bytecode.c (exec_byte_code): Use some more volatile variables
11110 to work around local variables getting clobbered by longjmp.
11111 Port to pre-C99, which doesn't allow decls after stmts.
11112
11113 2013-10-03 Paul Eggert <eggert@cs.ucla.edu>
11114
11115 * lisp.h (eassert): Assume that COND is true when optimizing.
11116 In other words, take on the behavior of eassert_and_assume.
11117 This makes Emacs 0.2% smaller on my platform (Fedora 19, x86-64).
11118 (eassert_and_assume): Remove. All uses replaced by eassert.
11119
11120 * xdisp.c (Qglyphless_char): Now static.
11121
11122 Adjust to merge from gnulib.
11123 * conf_post.h (__has_builtin, assume): Remove; gnulib now does these.
11124 * lisp.h: Include <verify.h>, for 'assume'.
11125
11126 * eval.c (clobbered_eassert): New macro.
11127 (internal_catch, internal_condition_case)
11128 (internal_condition_case_1, internal_condition_case_2)
11129 (internal_condition_case_n): Use it instead of eassert
11130 when the argument contains locals clobbered by longjmp.
11131 Don't use clobbered locals outside of clobbered_eassert.
11132 (internal_lisp_condition_case): Use a volatile variable
11133 to work around a local variable's getting clobbered.
11134
11135 2013-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
11136
11137 * lisp.h (struct handler): Merge struct handler and struct catchtag.
11138 (PUSH_HANDLER): New macro.
11139 (catchlist): Remove.
11140 (handlerlist): Always declare.
11141
11142 * eval.c (catchlist): Remove (merge with handlerlist).
11143 (handlerlist, lisp_eval_depth): Not static any more.
11144 (internal_catch, internal_condition_case, internal_condition_case_1)
11145 (internal_condition_case_2, internal_condition_case_n):
11146 Use PUSH_HANDLER.
11147 (unwind_to_catch, Fthrow, Fsignal): Adjust to merged
11148 handlerlist/catchlist.
11149 (internal_lisp_condition_case): Use PUSH_HANDLER. Adjust to new
11150 handlerlist which can only handle a single condition-case handler at
11151 a time.
11152 (find_handler_clause): Simplify since we only a single branch here
11153 any more.
11154
11155 * bytecode.c (BYTE_CODES): Add Bpushcatch, Bpushconditioncase
11156 and Bpophandler.
11157 (bcall0): New function.
11158 (exec_byte_code): Add corresponding cases. Improve error message when
11159 encountering an invalid byte-code. Let Bunwind_protect accept
11160 a function (rather than a list of expressions) as argument.
11161
11162 * alloc.c (Fgarbage_collect): Merge scans of handlerlist and catchlist,
11163 and make them unconditional now that they're heap-allocated.
11164
11165 2013-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
11166
11167 * charset.c (Fdecode_char, Fencode_char): Remove description of
11168 `restriction' arg. now that it's hidden by advertised-calling-convention.
11169
11170 2013-10-02 Jan Djärv <jan.h.d@swipnet.se>
11171
11172 * macfont.m (mac_ctfont_create_preferred_family_for_attributes):
11173 Remove unused variable (from mac-port).
11174 (macfont_draw): Use s->ybase for correct y position.
11175
11176 2013-10-02 Dmitry Antipov <dmantipov@yandex.ru>
11177
11178 * frame.h (struct frame): Drop has_minibuffer member because...
11179 (FRAME_HAS_MINIBUF_P): ...this macro can be implemented without it.
11180 * frame.c (make_frame, make_minibuffer_frame): Adjust users.
11181
11182 2013-10-02 Dmitry Antipov <dmantipov@yandex.ru>
11183
11184 * window.h (struct window): Prefer enum text_cursor_kinds to int
11185 for phys_cursor_type member. Move the latter, phys_cursor_width,
11186 phys_cursor_ascent and phys_cursor_height under HAVE_WINDOW_SYSTEM.
11187 * window.c (replace_window, make_window): Adjust users.
11188
11189 2013-10-02 Dmitry Antipov <dmantipov@yandex.ru>
11190
11191 * fringe.c (toplevel): Do not use HAVE_WINDOW_SYSTEM because
11192 this module is never compiled otherwise.
11193
11194 2013-10-01 Alp Aker <alp.tekin.aker@gmail.com>
11195
11196 * macfont.m (macfont_draw): Use CGRectMake rather than NSMakeRect
11197 (Bug#15500).
11198
11199 2013-09-29 Eli Zaretskii <eliz@gnu.org>
11200
11201 * xdisp.c (get_next_display_element): Don't call face_for_font in
11202 a build configured --without-x. (Bug#15484)
11203
11204 2013-09-29 Jan Djärv <jan.h.d@swipnet.se>
11205
11206 * window.c (calc_absolute_offset): #elif should be #elif defined.
11207
11208 * frame.c (delete_frame): Block/unblock input to overcome race
11209 condition (Bug#15475).
11210
11211 2013-09-29 Andreas Politz <politza@hochschule-trier.de>
11212
11213 * frame.c (delete_frame): Record selected frame only after
11214 calling Qdelete_frame_functions (Bug#15477).
11215
11216 2013-09-28 Jan Djärv <jan.h.d@swipnet.se>
11217
11218 * nsterm.m (ns_selection_color): Remove.
11219 (ns_get_color): Check for ns_selection_(fg|bg)_color using
11220 NSColor selectedText(Background)Color. Only for COCOA.
11221 (ns_term_init): Remove assignment of ns_selection_color, logic
11222 moved to ns_get_color.
11223
11224 * nsterm.h (NS_SELECTION_BG_COLOR_DEFAULT): Rename from
11225 NS_SELECTION_COLOR_DEFAULT.
11226 (NS_SELECTION_FG_COLOR_DEFAULT): New.
11227
11228 2013-09-28 Eli Zaretskii <eliz@gnu.org>
11229
11230 * xdisp.c (Fdump_tool_bar_row): Ifdef away the body if 'struct
11231 frame' does not have the tool_bar_window member.
11232
11233 2013-09-26 Barry O'Reilly <gundaetiapo@gmail.com>
11234
11235 Signal error when reading an empty byte-code object (Bug#15405)
11236 * lread.c (read1): Signal error.
11237 * alloc.c (make_byte_code): eassert header size.
11238 (sweep_vectors): Change an int to size_t.
11239
11240 2013-09-24 Paul Eggert <eggert@cs.ucla.edu>
11241
11242 * dispnew.c (clear_glyph_row, copy_row_except_pointers): Use enums
11243 instead of ints, as it's the usual style for offsetof constants. See:
11244 http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00478.html
11245
11246 * data.c (POPCOUNT_STATIC_INLINE): New macro, as a hack for popcount.
11247 This is ugly, but it should fix the performance problem for older
11248 GCC versions in the short run. I'll look into integrating the
11249 Gnulib module for popcount, as a better fix.
11250 See the thread starting in:
11251 http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00474.html
11252 (popcount_size_t_generic) [NEED_GENERIC_POPCOUNT]:
11253 (popcount_size_t_msc) [USE_MSC_POPCOUNT]:
11254 (popcount_size_t_gcc) [USE_GCC_POPCOUNT]:
11255 (popcount_size_t): Use it.
11256
11257 2013-09-24 Daniel Colascione <dancol@dancol.org>
11258
11259 * process.c (Fnetwork_interface_info): Fix build break due to
11260 vector changes.
11261
11262 2013-09-24 Paul Eggert <eggert@cs.ucla.edu>
11263
11264 * dispnew.c (clear_glyph_row, copy_row_except_pointers):
11265 Prefer signed to unsigned integers where either will do.
11266 No need for 'const' on locals that do not escape.
11267 Omit easserts with unnecessary and unportable assumptions about
11268 alignment. Avoid unnecessary casts to char *.
11269
11270 2013-09-24 Dmitry Antipov <dmantipov@yandex.ru>
11271
11272 Use union for the payload of struct Lisp_Vector.
11273 This helps to avoid a few glitches dictated by C's aliasing rules.
11274 * lisp.h (struct Lisp_Vector): Use union for next and
11275 contents member. Adjust comment. Change related users.
11276 * alloc.c (next_in_free_list, set_next_in_free_list): Remove.
11277 Related users changed.
11278 * buffer.c, bytecode.c, ccl.c, character.h, chartab.c, composite.c:
11279 * composite.h, disptab.h, fns.c, fontset.c, indent.c, keyboard.c:
11280 * lread.c, msdos.c, process.c, w32menu.c, window.c, xdisp.c:
11281 * xfaces.c, xfont.c, xmenu.c: Related users changed.
11282
11283 2013-09-24 Dmitry Antipov <dmantipov@yandex.ru>
11284
11285 Optimize glyph row clearing and copying routines.
11286 * dispextern.h (struct glyph_row): Change layout of struct
11287 glyph_row to help copy_row_except_pointers. Adjust comment.
11288 * dispnew.c (null_row): Remove.
11289 (clear_glyph_row): Use offsetof and memset to find and clear
11290 just the members that need clearing. Adjust comment.
11291 (copy_row_except_pointers): Likewise for copying.
11292
11293 2013-09-24 Paul Eggert <eggert@cs.ucla.edu>
11294
11295 Some minor cleanups of recently-added bool vector code.
11296 * conf_post.h (assume): Always return void. Use lint version
11297 only if GCC and MSC versions don't apply.
11298 * conf_post.h (assume):
11299 * data.c (USC_MSC_POPCOUNT, count_trailing_zero_bits):
11300 Depend on _MSC_VER, not __MSC_VER, for consistency with
11301 the rest of Emacs.
11302 * data.c (bool_vector_spare_mask, popcount_size_t_generic)
11303 (popcount_size_t_msc, popcount_size_t_gcc, popcount_size_t)
11304 (bool_vector_binop_driver, count_trailing_zero_bits)
11305 (size_t_to_host_endian): Now static, not static inline;
11306 the latter isn't needed with modern compilers and doesn't
11307 work with older compilers anyway.
11308
11309 * alloc.c (valgrind_p): Use bool for boolean.
11310
11311 2013-09-23 Dmitry Antipov <dmantipov@yandex.ru>
11312
11313 * xdisp.c (noninteractive_need_newline, message_log_need_newline)
11314 (overlay_arrow_seen, message_enable_multibyte, line_number_displayed)
11315 (display_last_displayed_message_p, message_buf_print)
11316 (message_cleared_p, help_echo_showing_p, hourglass_shown_p):
11317 Use bool for boolean.
11318 * dispextern.h (cancel_line, init_desired_glyphs):
11319 Remove ancient leftover.
11320 (help_echo_showing_p, hourglass_shown_p):
11321 * lisp.h (noninteractive_need_newline): Adjust declaration.
11322
11323 2013-09-23 Dmitry Antipov <dmantipov@yandex.ru>
11324
11325 * dispnew.c (frame_garbaged, selected_frame, last_nonminibuf_frame):
11326 Move to...
11327 * frame.c (frame_garbaged, selected_frame, last_nonminibuf_frame):
11328 ...this file and convert the latter to static. Adjust comment.
11329 (make_initial_frame):
11330 * window.c (init_window_once): Adjust user.
11331 * frame.h (last_nonminibuf_frame): Remove declaration.
11332 * lisp.h (selected_frame): Likewise.
11333 * msdos.c (the_only_display_info): Adjust comment.
11334
11335 2013-09-23 Eli Zaretskii <eliz@gnu.org>
11336
11337 * xdisp.c (mouse_face_from_string_pos): Fix off-by-one error in
11338 computing the end column of mouse-highlight that comes from
11339 display or overlay strings. (Bug#15437)
11340 (note_mouse_highlight): Adapt calculation of last argument to
11341 mouse_face_from_string_pos to the above change.
11342
11343 * conf_post.h (__has_builtin): Define to zero, if undefined, on
11344 all platforms, not just for clang.
11345
11346 2013-09-23 Jan Djärv <jan.h.d@swipnet.se>
11347
11348 * filelock.c (lock_file_1): Rearrange to remove compiler warning
11349 about excess arguments to snprintf.
11350
11351 * conf_post.h(assume): Use __builtin_unreachable for clang.
11352
11353 2013-09-23 Juanma Barranquero <lekktu@gmail.com>
11354
11355 * w32console.c (initialize_w32_display): Remove unused variable hlinfo.
11356 * w32term.c (w32_scroll_bar_handle_click): Remove unused variable f.
11357
11358 2013-09-23 Daniel Colascione <dancol@dancol.org>
11359
11360 * alloc.c (USE_VALGRIND): New macro; on by default
11361 when ENABLE_CHECKING.
11362 (mark_maybe_object, mark_maybe_pointer)
11363 [USE_VALGRIND]: Mark conservatively-scanned regions valid for
11364 valgrind purposes.
11365 (valgrind_p) [USE_VALGRIND]: New variable.
11366 (init_alloc) [USE_VALGRIND]: Initialize valgrind_p.
11367
11368 2013-09-22 Jan Djärv <jan.h.d@swipnet.se>
11369
11370 * process.c (wait_reading_process_output): Change int pnamelen to
11371 socklen_t.
11372
11373 * nsterm.m (setMarkedText:selectedRange:, deleteWorkingText):
11374 * nsmenu.m (addDisplayItemWithImage:idx:tag:helpText:enabled:):
11375 * nsfont.m (ns_get_covering_families, ns_findfonts): Cast NSLog
11376 argument to unsigned long to avoid warning.
11377 (nsfont_draw): Use 0.25 instead of Fix2X (kATSItalicQDSkew).
11378
11379 * conf_post.h (assume): Fix compiler error: x shall be cond.
11380
11381 2013-09-22 Daniel Colascione <dancol@dancol.org>
11382
11383 * xfns.c (x_get_monitor_attributes): Suppress unused variable
11384 warning when compiling without a window system.
11385
11386 2013-09-22 Daniel Colascione <dancol@dancol.org>
11387
11388 * data.c (Qbool_vector_p): New symbol.
11389 (bool_vector_spare_mask, popcount_size_t_generic)
11390 (popcount_size_t_msc, popcount_size_t_gcc)
11391 (popcount_size_t)
11392 (bool_vector_binop_driver)
11393 (count_trailing_zero_bits, size_t_to_host_endian)
11394 (Fbool_vector_exclusive_or)
11395 (Fbool_vector_union)
11396 (Fbool_vector_intersection, Fbool_vector_set_difference)
11397 (Fbool_vector_subsetp, Fbool_vector_not)
11398 (Fbool_vector_count_matches)
11399 (Fbool_vector_count_matches_at): New functions.
11400 (syms_of_data): Intern new symbol, functions.
11401 * alloc.c (bool_vector_payload_bytes): New function.
11402 (Fmake_bool_vector): Instead of calling Fmake_vector,
11403 which performs redundant initialization and argument checking,
11404 just call allocate_vector ourselves. Make sure we clear any
11405 terminating padding to zero.
11406 (vector_nbytes, sweep_vectors): Use bool_vector_payload_bytes
11407 instead of open-coding the size calculation.
11408 (vroundup_ct): New macro.
11409 (vroundup): Assume argument >= 0; invoke vroundup_ct.
11410 * casetab.c (shuffle, set_identity): Change lint_assume to assume.
11411 * composite.c (composition_gstring_put_cache):
11412 Change lint_assume to assume.
11413 * conf_post.h (assume): New macro.
11414 (lint_assume): Remove.
11415 * dispnew.c (update_frame_1): Change lint_assume to assume.
11416 * ftfont.c (ftfont_shape_by_flt): Change lint_assume
11417 to assume.
11418 * image.c (gif_load): Change lint_assume to assume.
11419 * lisp.h (eassert_and_assume): New macro.
11420 (Qbool_vector_p): Declare.
11421 (CHECK_BOOL_VECTOR, ROUNDUP, BITS_PER_SIZE_T): New macros.
11422 (swap16, swap32, swap64): New inline functions.
11423 * macfont.m (macfont_shape): Change lint_assume to assume.
11424 * ralloc.c: Rename ROUNDUP to PAGE_ROUNDUP throughout.
11425 * xsettings.c (parse_settings): Use new swap16 and
11426 swap32 from lisp.h instead of file-specific macros.
11427
11428 2013-09-22 Eli Zaretskii <eliz@gnu.org>
11429
11430 * xdisp.c (try_window_id): Don't abort if cursor row could not be
11431 found (which can legitimately happen when the glyph row at the
11432 window start is disabled in the current_matrix. (Bug#15365)
11433
11434 2013-09-22 Paul Eggert <eggert@cs.ucla.edu>
11435
11436 Fix syntax.h bug introduced by recent INLINE change.
11437 syntax.h defined an extern inline function SYNTAX_ENTRY that was
11438 conditionally compiled one way in some modules, and a different
11439 way in others. This doesn't work with extern inline functions,
11440 which must have the same definition in all modules, because the
11441 defining code might be shared across modules, depending on the
11442 implementation. Symptoms reported by Martin Rudalics in:
11443 http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00414.html
11444 * regex.c, syntax.c (SYNTAX_ENTRY_VIA_PROPERTY): Remove.
11445 (SYNTAX, SYNTAX_ENTRY, SYNTAX_WITH_FLAGS): New macros,
11446 overriding the corresponding functions in syntax.h.
11447 * syntax.h (syntax_property_entry, syntax_property_with_flags)
11448 (syntax_property): New inline functions.
11449 (SYNTAX_ENTRY, SYNTAX_WITH_FLAGS, SYNTAX):
11450 Rewrite in terms of these new functions.
11451
11452 2013-09-21 Eli Zaretskii <eliz@gnu.org>
11453
11454 * dired.c (directory_files_internal): Use multibyte_chars_in_text,
11455 not chars_in_text, whose result depends on the multibyteness of
11456 the current buffer. (Bug#15426)
11457
11458 2013-09-20 Paul Eggert <eggert@cs.ucla.edu>
11459
11460 Port recent change to hosts where pointers aren't 'long'.
11461 * xterm.c (x_send_scroll_bar_event, x_scroll_bar_to_input_event):
11462 Don't assume that pointers are the same width as 'long'.
11463 Add a compile-time check that a pointer fits into two X slots.
11464
11465 A simpler, centralized INLINE.
11466 * conf_post.h (INLINE): Define only if not already defined.
11467 This allows us to use a single INLINE, defined by one file
11468 per executable.
11469 * emacs.c (INLINE): Define it.
11470 Also, include category.h, charset.h, composite.h, dispextern.h,
11471 syntax.h, systime.h, so that their INLINE definitions are expanded
11472 properly for Emacs.
11473 * blockinput.h, keyboard.c (BLOCKINPUT_INLINE):
11474 * buffer.h, buffer.c (BUFFER_INLINE):
11475 * category.h, category.c (CATEGORY_INLINE):
11476 * character.h, character.c (CHARACTER_INLINE):
11477 * charset.h, charset.c (CHARSET_INLINE):
11478 * composite.h, composite.c (COMPOSITE_INLINE):
11479 * dispextern.h, dispnew.c (DISPEXTERN_INLINE):
11480 * frame.h, frame.c (FRAME_INLINE):
11481 * intervals.h, intervals.c (INTERVALS_INLINE):
11482 * keyboard.h, keyboard.c (KEYBOARD_INLINE):
11483 * lisp.h, alloc.c (LISP_INLINE):
11484 * process.h, process.c (PROCESS_INLINE):
11485 * syntax.h, syntax.c (SYNTAX_INLINE):
11486 * systime.h, sysdep.c (SYSTIME_INLINE):
11487 * termhooks.h, terminal.c (TERMHOOKS_INLINE):
11488 * window.h, window.c (WINDOW_INLINE):
11489 Remove. All uses replaced with INLINE.
11490
11491 2013-09-20 Dmitry Antipov <dmantipov@yandex.ru>
11492
11493 * xterm.c (handle_one_xevent): Revert part of 2013-09-17 change
11494 to avoid Bug#15398.
11495
11496 2013-09-19 Eli Zaretskii <eliz@gnu.org>
11497
11498 * w32reg.c (w32_get_string_resource): Make the first 2 arguments
11499 'const char *' to avoid compiler warnings due to similar change in
11500 the prototype of x_get_string_resource.
11501
11502 2013-09-19 Dmitry Antipov <dmantipov@yandex.ru>
11503
11504 * xterm.h (struct x_display_info): New members last_mouse_glyph_frame,
11505 last_mouse_scroll_bar, last_mouse_glyph and last_mouse_movement_time,
11506 going to replace static variables below. Adjust comments.
11507 * xterm.c (last_mouse_glyph, last_mouse_glyph_frame)
11508 (last_mouse_scroll_bar, last_mouse_movement_time): Remove.
11509 (note_mouse_movement, XTmouse_position, x_scroll_bar_note_movement)
11510 (x_scroll_bar_report_motion, handle_one_xevent, syms_of_xterm):
11511 Related users changed.
11512 * w32term.h (struct w32_display_info): New members last_mouse_glyph_frame,
11513 last_mouse_scroll_bar, last_mouse_scroll_bar_pos, last_mouse_glyph and
11514 last_mouse_movement_time, going to replace static variables below.
11515 Adjust comments.
11516 * w32term.c (last_mouse_glyph_frame, last_mouse_scroll_bar)
11517 (last_mouse_scroll_bar_pos, last_mouse_glyph, last_mouse_movement_time):
11518 Remove.
11519 (note_mouse_movement, w32_mouse_position, w32_scroll_bar_handle_click)
11520 (x_scroll_bar_report_motion, syms_of_w32term): Related users changed.
11521 * nsterm.h (struct ns_display_info): New members last_mouse_glyph,
11522 last_mouse_movement_time and last_mouse_scroll_bar, going to replace
11523 static variables below.
11524 * nsterm.m (last_mouse_glyph, last_mouse_movement_time)
11525 (last_mouse_scroll_bar): Remove.
11526 (note_mouse_movement, ns_mouse_position, mouseMoved, mouseEntered)
11527 (mouseExited): Related users changed.
11528
11529 2013-09-19 Dmitry Antipov <dmantipov@yandex.ru>
11530
11531 Do not use external array to process X scroll bar messages.
11532 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): Remove.
11533 (x_send_scroll_bar_event): Pack window pointer into two slots
11534 of XClientMessageEvent if we're 64-bit. Adjust comment.
11535 (x_scroll_bar_to_input_event): Unpack accordingly.
11536
11537 2013-09-18 Dmitry Antipov <dmantipov@yandex.ru>
11538
11539 Ifdef away recent changes which aren't relevant to NS port.
11540 * dispextern.h (x_mouse_grabbed, x_redo_mouse_highlight)
11541 [!HAVE_NS]: Declare as such.
11542 * frame.c (x_mouse_grabbed, x_redo_mouse_highlight)
11543 [!HAVE_NS]: Define as such.
11544
11545 2013-09-18 Dmitry Antipov <dmantipov@yandex.ru>
11546
11547 * frame.c (x_redo_mouse_highlight): New function
11548 to factor out common code used in W32 and X ports.
11549 * dispextern.h (x_redo_mouse_highlight): Add prototype.
11550 * xterm.h (struct x_display_info):
11551 * w32term.h (struct w32_display_info):
11552 * nsterm.h (struct ns_display_info): New members
11553 last_mouse_motion_frame, last_mouse_motion_x and
11554 last_mouse_motion_y, going to replace static variables below.
11555 * xterm.c (last_mouse_motion_event, last_mouse_motion_frame)
11556 (redo_mouse_highlight): Remove.
11557 (note_mouse_movement, syms_of_xterm): Adjust user.
11558 (handle_one_xevent): Likewise. Use x_redo_mouse_highlight.
11559 * w32term.c (last_mouse_motion_event, last_mouse_motion_frame)
11560 (redo_mouse_highlight): Remove.
11561 (note_mouse_movement, syms_of_w32term): Adjust user.
11562 (w32_read_socket): Likewise. Use x_redo_mouse_highlight.
11563 * nsterm.m (last_mouse_motion_position, last_mouse_motion_frame):
11564 Remove.
11565 (note_mouse_movement, mouseMoved, syms_of_nsterm):
11566 * nsfns.m (compute_tip_xy): Adjust user.
11567
11568 2013-09-18 Dmitry Antipov <dmantipov@yandex.ru>
11569
11570 * frame.c (x_mouse_grabbed): New function.
11571 * dispextern.h (x_mouse_grabbed): Add prototype.
11572 (last_mouse_frame): Remove declaration.
11573 * xterm.h (struct x_display_info):
11574 * w32term.h (struct w32_display_info):
11575 * nsterm.h (struct ns_display_info): New member
11576 last_mouse_frame, going to replace...
11577 * xdisp.c (last_mouse_frame): ...global variable.
11578 (note_tool_bar_highlight):
11579 * w32term.c (w32_mouse_position, w32_read_socket):
11580 * xterm.c (XTmouse_position, handle_one_xevent):
11581 Use x_mouse_grabbed.
11582 * nsterm.m (ns_mouse_position, mouseDown): Adjust user.
11583
11584 2013-09-17 Dmitry Antipov <dmantipov@yandex.ru>
11585
11586 * w32term.c (w32_read_socket): Avoid temporary
11587 variables in a call to x_real_positions.
11588 * xterm.c (handle_one_xevent): Likewise.
11589
11590 2013-09-17 Dmitry Antipov <dmantipov@yandex.ru>
11591
11592 * frame.h (x_set_bitmap_icon) [!HAVE_NS]: New function.
11593 (x_icon_type): Remove prototype.
11594 (x_bitmap_icon) [!HAVE_NS]: Declare as such.
11595 * frame.c (x_icon_type): Remove.
11596 * w32term.c (x_make_frame_visible, x_iconify_frame):
11597 * xterm.c (x_make_frame_visible, x_iconify_frame):
11598 Use x_set_bitmap_icon to factor out common code.
11599
11600 2013-09-17 Dmitry Antipov <dmantipov@yandex.ru>
11601
11602 * dispextern.h (check_x_display_info, x_get_string_resource):
11603 Declare here just once and unify the latter.
11604 * frame.c (check_x_display_info, x_get_string_resource):
11605 * nsterm.h (check_x_display_info):
11606 * xrdb.c (x_get_string_resource):
11607 * xterm.h (check_x_display_info): Remove prototypes.
11608 * nsfns.m (x_get_string_resource): Likewise. Adjust definition.
11609 * w32reg.c (x_get_string_resource): Likewise.
11610 (w32_get_rdb_resource): Adjust user.
11611
11612 2013-09-17 Dmitry Antipov <dmantipov@yandex.ru>
11613
11614 * xterm.h (struct x_display_info): New member
11615 x_pending_autoraise_frame, going to replace...
11616 * xterm.c (pending_autoraise_frame): ...static variable.
11617 (x_new_focus_frame, XTread_socket): Adjust users.
11618 * w32term.h (struct w32_display_info): New member
11619 w32_pending_autoraise_frame, going to replace...
11620 * w32term.c (pending_autoraise_frame): ...global variable.
11621 (x_new_focus_frame, w32_read_socket): Adjust users.
11622
11623 2013-09-17 Glenn Morris <rgm@gnu.org>
11624
11625 * xdisp.c (message_dolog): If we create *Messages*,
11626 switch it to messages-buffer-mode.
11627
11628 2013-09-17 Paul Eggert <eggert@cs.ucla.edu>
11629
11630 Don't overuse 'const' in types of locals.
11631 * bidi.c (bidi_count_bytes):
11632 * gtkutil.c, gtkutil.h (xg_event_is_for_menubar)
11633 (xg_event_is_for_scrollbar):
11634 * xselect.c (x_handle_property_notify)
11635 (x_handle_selection_notify, x_handle_dnd_message):
11636 * xsettings.c, xsettings.h (xft_settings_event):
11637 * xterm.c (x_handle_net_wm_state, handle_one_event)
11638 (x_menubar_window_to_frame, x_detect_focus_change)
11639 (construct_mouse_click, note_mouse_movement)
11640 (x_scroll_bar_to_input_event, x_scroll_bar_expose)
11641 (x_scroll_bar_handle_click, x_scroll_bar_note_movement)
11642 (handle_one_xevent, x_handle_net_wm_state):
11643 * xterm.h (x_handle_property_notify, x_handle_selection_notify)
11644 (x_handle_dnd_message):
11645 Avoid unnecessary 'const', typically the second 'const' in
11646 'const foo * const arg', a 'const' that does not affect the API
11647 and doesn't significantly help the human reader.
11648
11649 2013-09-17 Dmitry Antipov <dmantipov@yandex.ru>
11650
11651 * image.c (fn_g_type_init) [WINDOWSNT]: Define and load
11652 only if Glib < 2.36.0.
11653 (fn_g_type_init) [!WINDOWSNT]: Define only if Glib < 2.36.0.
11654 * xsettings.c (init_gconf, init_gsettings): Do not check
11655 for g_type_init.
11656 * xterm.c (handle_one_xevent): Do not call to x_clear_area
11657 if GTK >= 2.7.0.
11658 (toplevel) [USE_MOTIF]: Include xlwmenu.h to pacify GCC.
11659
11660 2013-09-16 Jan Djärv <jan.h.d@swipnet.se>
11661
11662 * xsettings.c (init_gconf, init_gsettings): Check for Glib 2.36.0
11663 before calling g_type_init.
11664
11665 * font.c (syms_of_font): Move call to syms_of_(ns|mac)font ...
11666
11667 * nsterm.m (syms_of_nsterm): ... to here.
11668
11669 2013-09-16 Dmitry Antipov <dmantipov@yandex.ru>
11670
11671 * xterm.c (toolkit_scroll_bar_interaction): Use bool for boolean.
11672 (ignore_next_mouse_click_timeout): Use Time as X does.
11673 (handle_one_xevent): Avoid cast and use unsigned comparison.
11674
11675 2013-09-16 Dmitry Antipov <dmantipov@yandex.ru>
11676
11677 Do not copy X event in handle_one_xevent except KeyPress case.
11678 Wnen XEvent is processed, it is unlikely to be changed except
11679 KeyPress case, so we can avoid copying and use const pointer to
11680 const data to make sure that an event is not changed elsewhere.
11681 * xterm.c (handle_one_xevent): Change 2nd arg to 'const XEvent *
11682 const' and do not create local copy except for the KeyPress event.
11683 Use casts to avoid a few glitches. Adjust formatting. Add comments.
11684 (SET_SAVED_BUTTON_EVENT): Remove and move the code to the only user.
11685 (x_handle_net_wm_state, x_menubar_window_to_frame)
11686 (x_detect_focus_change, construct_mouse_click, note_mouse_movement)
11687 (x_scroll_bar_to_input_event, x_scroll_bar_expose)
11688 (x_scroll_bar_handle_click, x_scroll_bar_note_movement):
11689 * gtkutil.c (xg_event_is_for_menubar, xg_event_is_for_scrollbar):
11690 * xselect.c (x_handle_property_notify, x_handle_selection_notify)
11691 (x_handle_dnd_message):
11692 * xsettings.c (xft_settings_event):
11693 Use 'const XEvent * const' where appropriate.
11694 * xterm.h, gtkutil.h, xsettings.h: Adjust related prototypes.
11695
11696 2013-09-16 Dmitry Antipov <dmantipov@yandex.ru>
11697
11698 Fix X event waiting to handle multiple frames.
11699 * frame.h (struct frame) [HAVE_X_WINDOWS]: New member wait_event_type.
11700 * xterm.c (pending_event_wait): Remove. Adjust users.
11701 (x_detect_focus_change): Pass frame arg.
11702 (handle_one_xevent): Find related frame early and clear per-frame
11703 wait_event_type only if this is an event for the relevant frame.
11704 (x_wait_for_event): Use per-frame wait_event_type.
11705
11706 2013-09-15 Jan Djärv <jan.h.d@swipnet.se>
11707
11708 * nsfns.m (Fx_create_frame): Fix font driver registration for
11709 GNUstep.
11710
11711 * font.c (syms_of_font): Check MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
11712 for syms_of_macfont.
11713
11714 * nsterm.m: Include macfont.h.
11715 (ns_tmp_flags, ns_tmp_font): Remove.
11716 (ns_compute_glyph_string_overhangs): Check for driver Qns.
11717 (ns_draw_glyph_string): Use local variables instead of ns_tmp_flags,
11718 ns_tmp_font. Call ns_draw_text_decoration here instead of nsfont.m.
11719 (changeFont:): Fix code style. Check for font driver type when
11720 getiing font.
11721
11722 * nsterm.h (FONT_DESCENT, FONT_ASCENT): Define to (f)->ascent and
11723 (f)->descent.
11724
11725 * nsfont.m (ns_tmp_flags, ns_tmp_font): Remove.
11726 (nsfont_open): Set font driver type.
11727 Set font->ascent and font->descent. Figure out font instead of
11728 ns_tmp_font, and flags instead of ns_tmp_flags.
11729 Fix indentation. Remove call to ns_draw_text_decoration,
11730 moved to nsterm.
11731
11732 * nsfns.m: Include macfont.h.
11733 (Fx_create_frame): Register macfont driver, make a better default font.
11734 (Fns_popup_font_panel): Get font from macfont driver, if used.
11735
11736 * macfont.m, macfont.h, macuvs.h: New files.
11737
11738 * font.h: Declare syms_of_macfont.
11739
11740 * font.c (syms_of_font): Call syms_of_macfont.
11741
11742 * Makefile.in (NS_OBJ, SOME_MACHINE_OBJECTS): Add macfont.o.
11743
11744 2013-09-15 Dmitry Antipov <dmantipov@yandex.ru>
11745
11746 Drop VERTICAL_SCROLL_BAR_WIDTH_TRIM. For X, it is zero since 1999,
11747 and it is always zero for others, so I assume that this is an ancient
11748 leftover which nobody will want to change any more.
11749 * xterm.h, w32term.h, nsterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Remove.
11750 (VERTICAL_SCROLL_BAR_INSIDE_WIDTH):
11751 * frame.c (x_set_scroll_bar_width):
11752 * w32fns.c (w32_createscrollbar):
11753 * w32term.c (w32_set_vertical_scroll_bar):
11754 * xfns.c (x_set_scroll_bar_default_width):
11755 * xterm.c (XTflash, x_scroll_bar_create, XTset_vertical_scroll_bar)
11756 (x_scroll_bar_expose): Related users changed.
11757
11758 2013-09-15 Dmitry Antipov <dmantipov@yandex.ru>
11759
11760 * xterm.h (FRAME_X_SCREEN_NUMBER): Add comment.
11761 (BLACK_PIX_DEFAULT, WHITE_PIX_DEFAULT): Use FRAME_X_SCREEN_NUMBER.
11762 (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET) [USE_X_TOOLKIT]:
11763 Define as such.
11764 * frame.h (FRAME_SMALLEST_CHAR_WIDTH, FRAME_SMALLEST_FONT_HEIGHT):
11765 Define once here...
11766 * nsterm.h, w32term.h, xterm.h: ...and not here.
11767 * w32term.h (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET):
11768 Remove unused Xisms.
11769 * xterm.c, xfns.c (toplevel): Remove #ifdef HAVE_X_WINDOWS because
11770 these modules are never compiled otherwise.
11771
11772 2013-09-14 Eli Zaretskii <eliz@gnu.org>
11773
11774 * buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>:
11775 Doc fix. (Bug#15375)
11776
11777 2013-09-13 Dmitry Antipov <dmantipov@yandex.ru>
11778
11779 Unify Fx_focus_frame between all ports.
11780 * frame.h (x_focus_frame): New prototype.
11781 * xfns.c (Fx_focus_frame): Remove.
11782 (syms_of_xfns): Do not defsubr it.
11783 (x_focus_frame): X implementation.
11784 * nsfns.m (Fx_focus_frame): Remove.
11785 (syms_of_nsfns): Do not defsubr it.
11786 (x_focus_frame): NS implementation.
11787 * w32term.c (Fx_focus_frame): Remove.
11788 (x_focus_on_frame): Rename to...
11789 (x_focus_frame): W32 implementation.
11790 * w32term.h (x_focus_on_frame): Remove prototype.
11791 * w32fns.c (Fx_focus_frame): Remove.
11792 (syms_of_w32fns): Do not defsubr it.
11793 * frame.c (Fx_focus_frame): Define here.
11794 (syms_of_frame): Defsubr here.
11795 * gtkutil.c (xg_tool_bar_callback): Use x_focus_frame.
11796
11797 2013-09-13 Dmitry Antipov <dmantipov@yandex.ru>
11798
11799 Unify FRAME_window_system_DISPLAY_INFO macros between all ports.
11800 All of them are replaced with FRAME_DISPLAY_INFO, defined in
11801 each port to reference the port-specific window system data.
11802 * msdos.h (FRAME_X_DISPLAY_INFO): Remove.
11803 (FRAME_DISPLAY_INFO): Define.
11804 * w32term.h (FRAME_W32_DISPLAY_INFO, FRAME_X_DISPLAY_INFO): Remove.
11805 (FRAME_DISPLAY_INFO): Define. Adjust users.
11806 * xterm.h (FRAME_X_DISPLAY_INFO): Remove.
11807 (FRAME_DISPLAY_INFO): Define. Adjust users.
11808 * frame.h (FRAME_RES_X, FRAME_RES_Y): Unify.
11809 * font.c, frame.c, gtkutil.c, image.c, menu.c, msdos.c, nsfns.m:
11810 * nsfont.m, nsterm.m, w32fns.c, w32font.c, w32menu.c, w32term.c:
11811 * w32xfns.c, widget.c, xdisp.c, xfaces.c, xfns.c, xfont.c, xmenu.c:
11812 * xselect.c, xterm.c: All related users changed.
11813
11814 2013-09-13 Dmitry Antipov <dmantipov@yandex.ru>
11815
11816 * xterm.h (x_window_to_frame, x_any_window_to_frame)
11817 (x_menubar_window_to_frame): Remove prototypes.
11818 * xfns.c (x_window_to_frame, x_any_window_to_frame)
11819 (x_menubar_window_to_frame, x_top_window_to_frame):
11820 Move from here...
11821 * xterm.c (x_window_to_frame, x_any_window_to_frame)
11822 (x_menubar_window_to_frame, x_top_window_to_frame):
11823 ...to here and convert all but the last to static.
11824
11825 2013-09-12 Eli Zaretskii <eliz@gnu.org>
11826
11827 * lisp.mk (lisp): Add w32-common-fns.elc.
11828
11829 2013-09-12 Xue Fuqiao <xfq.free@gmail.com>
11830
11831 * charset.c (char_charset): Document an exception for char-charset.
11832
11833 2013-09-12 Dmitry Antipov <dmantipov@yandex.ru>
11834
11835 * xterm.h (x_display_info): New field last_user_time...
11836 * xterm.c (toplevel): ...to replace static last_user_time.
11837 (handle_one_xevent, x_ewmh_activate_frame): Adjust users.
11838
11839 2013-09-12 Dmitry Antipov <dmantipov@yandex.ru>
11840
11841 * xterm.c (x_set_scroll_bar_thumb) [USE_LUCID && !HAVE_XAW3D]: Clip
11842 scroll bar values to prevent thumb from disappear and update comment.
11843
11844 2013-09-11 Glenn Morris <rgm@gnu.org>
11845
11846 * emacs.c (usage_message): Possessive apostrophe tweak.
11847
11848 2013-09-11 Dmitry Antipov <dmantipov@yandex.ru>
11849
11850 * nsterm.m (syms_of_nsterm): Use Qns.
11851 * w32fns.c (Fx_open_connection): Remove old '#if 0' code.
11852 * w32term.c (w32_create_terminal, syms_of_w32term): Use Qw32.
11853 * xfns.c (x_display_info_for_name, Fx_open_connection):
11854 Remove old '#if 0' code.
11855 (syms_of_xfns): Use Qx.
11856 * termhooks.h (fullscreen_hook): Remove the leftover.
11857 (struct terminal): Fix typo in comment.
11858
11859 2013-09-11 Dmitry Antipov <dmantipov@yandex.ru>
11860
11861 Cleaning up a few X scroll bar bits.
11862 * termhooks.h (enum scroll_bar_part): Add scroll_bar_nowhere member.
11863 * xterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS && USE_LUCID]:
11864 New member last_seen_part, going to replace...
11865 * xterm.c [USE_TOOLKIT_SCROLL_BARS]: ...global last_scroll_bar_part.
11866 (xt_action_hook) [USE_LUCID]: Adjust user.
11867 (xm_scroll_callback, xg_scroll_callback): Do not bloat with
11868 Lucid-specific scroll bar support.
11869 (xaw_jump_callback, xaw_scroll_callback): Prefer enum scroll_par_part
11870 to int and adjust to use last_seen_part member.
11871 (x_set_toolkit_scroll_bar_thumb) [USE_LUCID]: Adjust user.
11872 (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS && USE_LUCID]:
11873 Initialize last_seen_part.
11874
11875 2013-09-11 Stefan Monnier <monnier@iro.umontreal.ca>
11876
11877 * insdel.c (insert_from_buffer_1): Don't mark buffer as modified when
11878 insert-buffer-substring an empty string.
11879
11880 2013-09-11 Paul Eggert <eggert@cs.ucla.edu>
11881
11882 * xdisp.c (Ftool_bar_lines_needed): Declare as 'const' if ifdeffed out,
11883 avoiding a GCC warning.
11884
11885 2013-09-11 Dmitry Antipov <dmantipov@yandex.ru>
11886
11887 Ifdef away frame tool bar code when it is not really used.
11888 * frame.h (struct frame) [HAVE_WINDOW_SYSTEM && !USE_GTK && !HAVE_NS]:
11889 Move tool_bar_window, desired_tool_bar_string, current_tool_bar_string
11890 and minimize_tool_bar_window_p under the above.
11891 (fset_current_tool_bar_string, fset_desired_tool_bar_string)
11892 (fset_tool_bar_window): Likewise.
11893 * dispnew.c (clear_current_matrices, clear_desired_matrices)
11894 (adjust_frame_glyphs_for_window_redisplay, free_glyphs, update_frame)
11895 (change_frame_size_1):
11896 * window.c (window_from_coordinates, Frecenter): Adjust users.
11897 * window.h (WINDOW_TOOL_BAR_P): Define to zero when frame tool bar
11898 code is not really used.
11899 * xdisp.c (build_desired_tool_bar_string, display_tool_bar_line)
11900 (tool_bar_lines_needed, MAX_FRAME_TOOL_BAR_HEIGHT, tool_bar_item_info)
11901 (get_tool_bar_item, handle_tool_bar_click, note_tool_bar_highlight)
11902 [!USE_GTK && !HAVE_NS]: Define as such.
11903 (Ftool_bar_lines_needed, redisplay_tool_bar, show_mouse_face)
11904 (note_mouse_highlight, expose_frame):
11905 * xfns.c (x_set_tool_bar_lines):
11906 * xterm.c (handle_one_xevent): Adjust users.
11907
11908 2013-09-11 Paul Eggert <eggert@cs.ucla.edu>
11909
11910 Fix corruption with multiple emacsclient -t instances (Bug#15222).
11911 This bug was introduced by my 2013-08-26 patch, which incorrectly
11912 assumed that the terminfo implementation doesn't use termcap buffers.
11913 * term.c (init_tty) [TERMINFO]: Remove optimization, as
11914 these buffers apparently are used after all.
11915 * termchar.h (TERMCAP_BUFFER_SIZE) [TERMINFO]: Define here too.
11916 (struct tty_display_info): Define members termcap_term_buffer and
11917 termcap_strings_buffer even if TERMINFO.
11918
11919 2013-09-11 Dmitry Antipov <dmantipov@yandex.ru>
11920
11921 Fix last change.
11922 * data.c (Feqlsign, Flss, Fgtr, Fleq, Fgeq): Add convenient
11923 'usage' docstring entry to pacify make-docfile.
11924
11925 2013-09-11 Barry O'Reilly <gundaetiapo@gmail.com>
11926
11927 Change comparison functions =, <, >, <=, >= to take many arguments.
11928 * data.c: Change comparison functions' interface and implementation.
11929 * lisp.h: Make arithcompare available for efficient two arg
11930 comparisons.
11931 * bytecode.c: Use arithcompare.
11932 * fileio.c: Use new interface.
11933
11934 2013-09-11 Stefan Monnier <monnier@iro.umontreal.ca>
11935
11936 * keyboard.c (read_char): Don't break immediate_echo (bug#15332).
11937
11938 2013-09-10 Stefan Monnier <monnier@iro.umontreal.ca>
11939
11940 * eval.c (Feval): Document the new use of `lexical'.
11941
11942 2013-09-09 Dmitry Antipov <dmantipov@yandex.ru>
11943
11944 Review and drop old frame resize hack.
11945 * frame.h (struct frame): Remove force_flush_display_p.
11946 * dispnew.c (update_frame): Adjust user and don't call
11947 flush_frame here. The comment has said that there was an issues
11948 with redisplaying fringes, but I don't see any differences with
11949 and without this hack. Hopefully we can continue without it.
11950 * xdisp.c (clear_garbaged_frames): Adjust user and do not clear
11951 current frame matrices twice if resized_p is set.
11952
11953 2013-09-09 Dmitry Antipov <dmantipov@yandex.ru>
11954
11955 Do not populate pure Xism x_sync to other ports.
11956 * frame.h (x_sync): Move under HAVE_X_WINDOWS.
11957 * frame.c (other_visible_frames) [HAVE_X_WINDOWS]: Use as such.
11958 * nsfns.m, w32xfns.c (x_sync): Remove no-op.
11959 * w32term.h (x_sync): Remove prototype.
11960
11961 2013-09-09 Dmitry Antipov <dmantipov@yandex.ru>
11962
11963 Cleanup frame flushing.
11964 * dispextern.h (struct redisplay_interface):
11965 Drop flush_display_optional because flush_display is enough
11966 for X and flushing via RIF is just a no-op for others.
11967 * frame.h (flush_frame): New function.
11968 * dispnew.c (update_frame):
11969 * minibuf.c (read_minibuf):
11970 * xdisp.c (echo_area_display, redisplay_preserve_echo_area):
11971 Use it.
11972 * keyboard.c (detect_input_pending_run_timers): Do not flush
11973 all frames but selected one in redisplay_preserve_echo_area.
11974 * nsterm.m (ns_flush): Remove no-op.
11975 (ns_redisplay_interface): Adjust user.
11976 * w32term.h (x_flush): Remove no-op.
11977 (w32_redisplay_interface): Adjust user.
11978 * xterm.c (x_flush): Simplify because we do not flush all
11979 frames at once any more. Adjust comment.
11980 (x_redisplay_interface): Adjust user.
11981
11982 2013-09-07 Paul Eggert <eggert@cs.ucla.edu>
11983
11984 Port --without-x --enable-gcc-warnings to Fedora 19.
11985 * gfilenotify.c (globals_of_gfilenotify):
11986 Call g_type_init only if using an older glib version that needs it.
11987
11988 2013-09-06 Dmitry Antipov <dmantipov@yandex.ru>
11989
11990 * lisp.h (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
11991 (last_glyphless_glyph_merged_face_id): Remove declarations.
11992 * dispextern.h (merge_glyphless_glyph_face): Add prototype.
11993 * xdisp.c (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
11994 (last_glyphless_glyph_merged_face_id): Now static.
11995 (merge_escape_glyph_face): New function, refactored from...
11996 (get_next_display_element): ...here.
11997 (merge_glyphless_glyph_face): New function, refactored from...
11998 (produce_glyphless_glyph): ...here...
11999 * term.c (produce_glyphless_glyph): ...and here.
12000
12001 2013-09-06 Stefan Monnier <monnier@iro.umontreal.ca>
12002
12003 * eval.c (eval_sub): Only call Ffunction if necessary.
12004
12005 2013-09-06 Dmitry Antipov <dmantipov@yandex.ru>
12006
12007 Attempt to make redisplay more selective when changing cursor type.
12008 * frame.h (struct frame): New bitfield cursor_type_changed.
12009 * xdisp.c (cursor_type_changed): Remove.
12010 (try_cursor_movement, redisplay_window, try_window_id)
12011 (set_frame_cursor_types, try_window_reusing_current_matrix):
12012 Adjust to use per-frame bitfield.
12013 (redisplay_internal): Look for cursor type change on each visible
12014 frame and consider all frames if cursor type has been changed on
12015 the frame other than selected. If cursor type has been changed on
12016 selected frame only, do not use fast update.
12017
12018 2013-09-06 Dmitry Antipov <dmantipov@yandex.ru>
12019
12020 Attempt to make redisplay more selective when changing fonts.
12021 * frame.h (struct frame): New bitfield fonts_changed.
12022 * dispextern.h (fonts_changed_p, adjust_glyphs): Remove declaration.
12023 (adjust_frame_glyphs): Add prototype.
12024 * dispnew.c (fonts_changed_p): Remove.
12025 (adjust_glyphs): Remove because we do not
12026 adjust matrices on all frames at once any more.
12027 (adjust_frame_glyphs): Block and unblock input here.
12028 (adjust_glyph_matrix): Use fonts_changed.
12029 (change_frame_size_1): Use adjust_frame_glyphs.
12030 * font.c (font_open_entity): Use fonts_changed.
12031 * frame.c (set_menu_bar_lines, Fmake_terminal_frame):
12032 * w32fns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip):
12033 * window.c (Fdelete_other_windows_internal, Fwindow_resize_apply)
12034 (Fsplit_window_internal, Fdelete_window_internal, grow_mini_window)
12035 (shrink_mini_window, Fresize_mini_window_internal)
12036 (window_scroll_pixel_based, Fset_window_configuration)
12037 (apply_window_adjustment, Fset_window_vscroll):
12038 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip):
12039 Use adjust_frame_glyphs.
12040 * xdisp.c (redisplay_tool_bar, redisplay_window, try_window)
12041 (try_window_reusing_current_matrix, try_window_id, display_line)
12042 (IT_EXPAND_MATRIX_WIDTH): Use fonts_changed.
12043 (redisplay_internal): Consider fonts_changed and adjust frame
12044 matrices for each frame only if the frame is visible. If font
12045 has been changed on some frame during full redisplay, retry
12046 only visible frames where the font has been actually changed.
12047
12048 2013-09-05 Dmitry Antipov <dmantipov@yandex.ru>
12049
12050 Cache current header and mode line height for each window.
12051 * window.h (struct window): New fields mode_line_height
12052 and header_line_height.
12053 * window.c (make_window): Initialize them.
12054 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
12055 (CURRENT_HEADER_LINE_HEIGHT): Use them. Adjust comment.
12056 (current_mode_line_height, current_header_line_height):
12057 Remove declaration.
12058 * xdisp.c (current_mode_line_height, current_header_line_height):
12059 Remove.
12060 (pos_visible_p, init_xdisp): Adjust user.
12061 (redisplay_window): Invalidate mode_line_height and
12062 header_line_height if current and desired matrices do not agree.
12063
12064 2013-09-05 Dmitry Antipov <dmantipov@yandex.ru>
12065
12066 * fontset.c, window.c, xdisp.c (toplevel): Use TERM_HEADER.
12067 * xfaces.c (toplevel) [HAVE_X_WINDOWS]: Do not include xterm.h twice.
12068
12069 2013-09-05 Dmitry Antipov <dmantipov@yandex.ru>
12070
12071 Make --without-x compatible with --enable-gcc-warnings.
12072 * font.c (register_font_driver): Move check under HAVE_WINDOW_SYSTEM.
12073 * font.h (struct font_driver): Move draw, get_bitmap and free_bitmap
12074 members under HAVE_WINDOW_SYSTEM.
12075 * keyboard.c (make_lispy_focus_out): Likewise.
12076 (record_menu_key): Move under HAVE_MENUS.
12077 * xdisp.c (toplevel): Move hourglass_shown_p, hourglass_atimer and
12078 THIN_SPACE_WIDTH under HAVE_WINDOW_SYSTEM.
12079 (syms_of_xdisp): Adjust user.
12080 (window_box_edges): Define only if HAVE_WINDOW_SYSTEM.
12081 (start_hourglass, cancel_hourglass):
12082 * xfaces.c (toplevel): Likewise with PT_PER_INCH,
12083 clear_font_table_count, CLEAR_FONT_TABLE_COUNT
12084 and CLEAR_FONT_TABLE_NFONTS.
12085 (set_font_frame_param, clear_face_gcs, realize_non_ascii_face):
12086 Declare only if HAVE_WINDOW_SYSTEM.
12087 (lface_same_font_attributes_p, clear_face_gcs): Define only
12088 if HAVE_WINDOW_SYSTEM.
12089
12090 2013-09-05 Dmitry Antipov <dmantipov@yandex.ru>
12091
12092 * frame.c (check_minibuf_window): Update 'frame' with frame pointer.
12093 * xterm.c (x_scroll_bar_handle_click) [!USE_TOOLKIT_SCROLL_BARS]:
12094 Don't pass C integer to XINT (tiny fix for 2013-09-03 change).
12095
12096 2013-09-05 Stefan Monnier <monnier@iro.umontreal.ca>
12097
12098 * cmds.c (Fself_insert_command): Don't pass a non-integer to XINT.
12099
12100 2013-09-04 Paul Eggert <eggert@cs.ucla.edu>
12101
12102 * alloc.c (make_event_array): First arg is now ptrdiff_t, not int.
12103 This fixes a type error on hosts where ptrdiff_t is wider than int.
12104
12105 2013-09-04 Stefan Monnier <monnier@iro.umontreal.ca>
12106
12107 * keyboard.c (read_key_sequence_vs): New function.
12108 (Fread_key_sequence_vector, Fread_key_sequence): Use it to factor out
12109 common code.
12110
12111 * callint.c (Fcall_interactively): Always return a vector for 'K'.
12112
12113 2013-09-04 Paul Eggert <eggert@cs.ucla.edu>
12114
12115 Makefile improvements.
12116 * Makefile.in (config.status): Don't use double-colon rules, as
12117 they are not portable according to POSIX. Fix shell typo with `;
12118 I guess this rule has never been tested?
12119 (VCSWITNESS): New macro, to override any environment var.
12120
12121 2013-09-04 Dmitry Antipov <dmantipov@yandex.ru>
12122
12123 * xterm.h (struct x_display_info): Do not track X connection
12124 fd separately because it is always available from Display.
12125 * xterm.c (x_term_init, x_delete_terminal, x_delete_display):
12126 Adjust users.
12127
12128 2013-09-03 Dmitry Antipov <dmantipov@yandex.ru>
12129
12130 * buffer.c (drop_overlay):
12131 * fileio.c (restore_point_unwind): Prefer unchain_marker to
12132 Fset_marker (X, Qnil, ...) (which is the same but a bit slower).
12133
12134 2013-09-03 Dmitry Antipov <dmantipov@yandex.ru>
12135
12136 * buffer.c (Fmake_overlay, Fmove_overlay):
12137 * intervals.c (set_point_from_marker):
12138 * print.c (PRINTPREPARE): Prefer signal_error
12139 to plain error and report unsuitable marker too.
12140
12141 2013-09-03 Dmitry Antipov <dmantipov@yandex.ru>
12142
12143 * xterm.h (struct scroll_bar): Prefer int to Lisp_Object
12144 for 'dragging' member.
12145 (struct x_output): Remove set-but-unused leftovers
12146 'left_before_move' and 'top_before_move'.
12147 * gtkutil.c (xg_set_toolkit_scroll_bar_thumb):
12148 * xterm.c (xt_action_hook, xm_scroll_callback, xg_scroll_callback)
12149 (xg_end_scroll_callback, xaw_jump_callback, xaw_scroll_callback)
12150 (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
12151 (x_scroll_bar_set_handle, XTset_vertical_scroll_bar)
12152 (x_scroll_bar_handle_click, x_scroll_bar_note_movement)
12153 (x_scroll_bar_report_motion, x_set_offset): Related users changed.
12154 * xfns.c, image.c (XLIB_ILLEGAL_ACCESS): No longer needed.
12155
12156 2013-09-03 Jan Djärv <jan.h.d@swipnet.se>
12157
12158 * nsfont.m (INVALID_GLYPH): New define.
12159 (nsfont_encode_char): Use INVALID_GLYPH.
12160 (ns_uni_to_glyphs): Ditto, check for NSNullGlyph (Bug#15138).
12161
12162 2013-09-02 Dmitry Antipov <dmantipov@yandex.ru>
12163
12164 * xterm.c (x_last_mouse_movement_time): Revert last change.
12165 This code should use XDisplayMotionBufferSize to check display's
12166 motion history first, and there are few other issues as well.
12167 (x_scroll_bar_note_movement): Pass XMotionEvent rather than XEvent.
12168 (handle_one_xevent): Adjust user.
12169
12170 2013-09-02 Martin Rudalics <rudalics@gmx.at>
12171
12172 * dispnew.c (Flast_nonminibuf_frame): Move from here ...
12173 * frame.c (Flast_nonminibuf_frame): ... to here.
12174 (check_minibuf_window): Don't abort if no window was found
12175 (Bug#15247).
12176
12177 2013-09-02 Dmitry Antipov <dmantipov@yandex.ru>
12178
12179 Use XGetMotionEvents to ask the last mouse motion time from X server.
12180 * xterm.c (X_MOTION_HISTORY): Default to 1.
12181 (x_last_mouse_movement_time) [X_MOTION_HISTORY]: New function.
12182 (x_last_mouse_movement_time) [!X_MOTION_HISTORY]: Legacy version.
12183 (note_mouse_movement, x_scroll_bar_note_movement) [!X_MOTION_HISTORY]:
12184 Ifdef away legacy code.
12185 (XTmouse_position, x_scroll_bar_report_motion):
12186 Use x_last_mouse_movement_time.
12187 (handle_one_xevent): Use event.xunmap and not event.xmap when handling
12188 UnmapNotify event.
12189
12190 2013-09-02 Dmitry Antipov <dmantipov@yandex.ru>
12191
12192 * msdos.c (last_mouse_window): Move to...
12193 (dos_rawgetc): ...this function and adjust comment.
12194 * nsterm.m (last_window): Rename to last_mouse_window, move to...
12195 (mouseMoved): ...this function and adjust comment.
12196 * w32term.c (last_window): Likewise with...
12197 (w32_read_socket): ...this function.
12198 * xterm.c (last_window): Likewise with...
12199 (handle_one_xevent): ...this function.
12200
12201 2013-09-02 Dmitry Antipov <dmantipov@yandex.ru>
12202
12203 * window.h (Vmouse_window, Vmouse_event): Remove the leftovers.
12204 * xterm.c (toplevel): Drop obsolete comment and move compose_status...
12205 (handle_one_xevent): ...to here.
12206 (STORE_KEYSYM_FOR_DEBUG): Move under ENABLE_CHECKING and make no-op
12207 otherwise.
12208
12209 2013-09-02 Dmitry Antipov <dmantipov@yandex.ru>
12210
12211 * msdos.c (IT_set_terminal_window): Remove no-op.
12212 (initialize_msdos_display): Adjust terminal setup.
12213 * w32console.c (w32con_set_terminal_window): Remove no-op.
12214 (initialize_w32_display): Adjust terminal setup.
12215 * w32term.c (w32_set_terminal_window): Remove no-op.
12216 (w32_create_terminal): Adjust terminal setup.
12217 * xterm.c (XTset_terminal_window): Remove no-op.
12218 (x_create_terminal): Adjust terminal setup.
12219
12220 2013-09-01 Dmitry Antipov <dmantipov@yandex.ru>
12221
12222 * nsterm.m (ns_set_terminal_modes, ns_reset_terminal_modes):
12223 Remove no-ops.
12224 (ns_create_terminal): Adjust terminal setup.
12225 * w32term.c (w32_set_terminal_modes, w32_reset_terminal_modes):
12226 Remove no-ops.
12227 (w32_create_terminal): Adjust terminal setup.
12228 * xterm.c (XTset_terminal_modes, XTreset_terminal_modes):
12229 Remove no-ops.
12230 (x_create_terminal): Adjust terminal setup.
12231
12232 2013-09-01 Dmitry Antipov <dmantipov@yandex.ru>
12233
12234 * dispextern.h (SET_TEXT_POS_FROM_MARKER): Indent.
12235 (CLIP_TEXT_POS_FROM_MARKER): New macro.
12236 * dispnew.c (buffer_posn_from_coords):
12237 * window.c (Fwindow_end, displayed_window_lines):
12238 * xdisp.c (redisplay_mode_lines): Use it.
12239
12240 2013-09-01 Jan Djärv <jan.h.d@swipnet.se>
12241
12242 * fontset.c (face_for_char): Check char in the current face font first
12243 if HAVE_NS (Bug#15138).
12244
12245 2013-08-31 Martin Rudalics <rudalics@gmx.at>
12246
12247 * window.c (temp_output_buffer_show): Make sure window returned
12248 by display_buffer is live (Bug#15213).
12249
12250 2013-08-30 Dmitry Antipov <dmantipov@yandex.ru>
12251
12252 Minor cleanup to avoid forward declarations.
12253 * coding.h (struct ccl_spec): Remove forward declaration.
12254 * composite.h (toplevel): Include font.h.
12255 (struct composition_it, struct face, struct font_metrics):
12256 Remove forward declaration.
12257 * dispextern.h (struct image, struct atimer): Likewise.
12258 * emacsgtkfixed.h (struct frame): Likewise.
12259 * emacsgtkfixed.c (toplevel): Reorder headers and drop stdio.h.
12260 * font.h (struct font_driver, struct font, struct glyph_string)
12261 (struct face): Remove forward declaration.
12262 * fontset.h (struct face, struct font): Likewise.
12263 * frame.h (toplevel): Style cleanup.
12264 (enum output_method): Move to...
12265 * termhooks.h (enum output_method): ...here.
12266 (struct glyph, struct frame, struct ns_display_info)
12267 (struct x_display_info, struct w32_display_info):
12268 Remove forward declaration.
12269 * xterm.h (toplevel): Include termhooks.h.
12270 (struct font, struct window, struct glyph_matrix, struct frame)
12271 (struct input_event, struct face, struct image): Remove forward
12272 declaration.
12273 * gtkutil.h (struct _widget_value): Likewise.
12274 * keyboard.h (toplevel): Include termhooks.h.
12275 (struct input_event): Remove forward declaration.
12276
12277 2013-08-29 Dmitry Antipov <dmantipov@yandex.ru>
12278
12279 * intervals.c (set_point_from_marker): New function.
12280 * editfns.c (Fgoto_char):
12281 * process.c (Finternal_default_process_filter):
12282 * window.c (select_window_1): Use it.
12283 * buffer.h (set_point_from_marker): Add prototype.
12284
12285 2013-08-29 Eli Zaretskii <eliz@gnu.org>
12286
12287 * w32.c (term_winsock): Call release_listen_threads before calling
12288 WSACleanup.
12289 (_sys_wait_accept): Wait for accept event in a loop with a finite
12290 timeout, instead of waiting indefinitely. Will hopefully avoid
12291 hanging during exit because WSACleanup deadlocks waiting for the
12292 event object to be released. (Bug#14333)
12293
12294 * w32proc.c (release_listen_threads): New function, signals all
12295 the reader threads that listen for connections to stop waiting.
12296
12297 * w32.h (release_listen_threads): Add prototype.
12298
12299 2013-08-29 Dmitry Antipov <dmantipov@yandex.ru>
12300
12301 * alloc.c (Fmake_marker, build_marker): Zero need_adjustment
12302 field of new marker (for sanity and safety).
12303 * lisp.h (XSETMARKER): Remove unused macro (it doesn't work
12304 anyway because XMISCTYPE is a function and can't be an lvalue).
12305
12306 2013-08-29 Dmitry Antipov <dmantipov@yandex.ru>
12307
12308 * xterm.c (x_clear_area): Lost 7th arg because it is always False.
12309 (x_after_update_window_line, x_scroll_bar_create)
12310 (x_scroll_bar_set_handle, XTset_vertical_scroll_bar)
12311 (handle_one_xevent, x_clear_frame_area):
12312 * gtkutil.c (xg_clear_under_internal_border, xg_update_scrollbar_pos):
12313 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines): Adjust users.
12314 * xterm.h (x_clear_area): Adjust prototype.
12315
12316 2013-08-29 Dmitry Antipov <dmantipov@yandex.ru>
12317
12318 Hook scanning and indentation functions to find_newline. This helps
12319 to avoid duplicated code and renders more respect to newline cache.
12320 * lisp.h (scan_newline): Prefer ptrdiff_t to EMACS_INT.
12321 * cmds.c (Fforward_line):
12322 * indent.c (scan_for_column, Fcurrent_indentation, indented_beyond_p):
12323 Use find_newline and avoid unnecessary point movements.
12324 * search.c (scan_newline): Implement on top of find_newline.
12325
12326 2013-08-28 Stefan Monnier <monnier@iro.umontreal.ca>
12327
12328 * eval.c (Ffuncall): Fix handling of ((lambda ..) ..) in lexically
12329 scoped code (bug#11258).
12330
12331 2013-08-28 Davor Cubranic <cubranic@stat.ubc.ca> (tiny change)
12332
12333 * nsterm.m (last_window): New variable.
12334 (EV_TRAILER2): New macro.
12335 (EV_TRAILER): Call EV_TRAILER2.
12336 (mouseMoved:): Add support for mouse-autoselect-window
12337 on nextstep (Bug#6888).
12338
12339 2013-08-28 Andreas Schwab <schwab@suse.de>
12340
12341 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE, CHAR_HEAD_P)
12342 (SINGLE_BYTE_CHAR_P, SAME_CHARSET_P, MAKE_CHAR, BYTE8_TO_CHAR):
12343 Remove unused macro definitions.
12344 (CHARSET_RANGE_TABLE_BITS, EXTEND_RANGE_TABLE)
12345 (SET_RANGE_TABLE_WORK_AREA_BIT, SET_RANGE_TABLE_WORK_AREA):
12346 Only define if emacs.
12347
12348 2013-08-28 Dmitry Antipov <dmantipov@yandex.ru>
12349
12350 Prefer enum glyph_row_area to int where appropriate.
12351 * dispextern.h (enum glyph_row_area): Add ANY_AREA member.
12352 Fix comment.
12353 (window_box, window_box_width, window_box_left, window_box_left_offset)
12354 (window_box_right, window_box_right_offset): Adjust prototypes.
12355 * xdisp.c (window_box, window_box_width, window_box_left)
12356 (window_box_left_offset, window_box_right, window_box_right_offset):
12357 Use enum glyph_row_area. Adjust users and tweak comment where needed.
12358 (window_box_edges): Likewise. Lost 2nd arg since it is always ANY_AREA.
12359 * nsterm.m (ns_clip_to_row):
12360 * w32term.c (w32_clip_to_row):
12361 * xterm.c (x_clip_to_row): Likewise.
12362
12363 2013-08-28 Dmitry Antipov <dmantipov@yandex.ru>
12364
12365 * buffer.c (Foverlays_at, Foverlays_in, Fnext_overlay_change)
12366 (Fprevious_overlay_change): Fast path for buffer with no overlays.
12367
12368 2013-08-28 Paul Eggert <eggert@cs.ucla.edu>
12369
12370 * Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
12371 for portability to hosts where /bin/sh has problems.
12372
12373 2013-08-28 Dmitry Antipov <dmantipov@yandex.ru>
12374
12375 Redesign redisplay interface to drop global output_cursor.
12376 * dispextern.h (struct redisplay_interface): Remove cursor_to member.
12377 (toplevel): Remove declaration of output_cursor.
12378 (set_output_cursor, x_cursor_to): Remove prototype.
12379 * window.h (struct window): New member output_cursor.
12380 (output_cursor_to): New function to replace RIF member.
12381 * dispnew.c (redraw_overlapped_rows, update_marginal_area)
12382 (update_text_area, set_window_cursor_after_update): Use it.
12383 * xdisp.c (output_cursor, set_output_cursor, x_cursor_to): Remove.
12384 (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
12385 * nsterm.m (ns_update_window_begin, ns_update_window_end):
12386 * w32term.c (x_update_window_begin, x_update_window_end):
12387 * xterm.c (x_update_window_begin, x_update_window_end):
12388 Adjust to use per-window output cursor.
12389
12390 2013-08-27 Paul Eggert <eggert@cs.ucla.edu>
12391
12392 Simplify SELECT_TYPE-related code.
12393 Like EMACS_TIME, this portability layer is no longer needed, since
12394 Emacs has been using fd_set as a portability layer for some time.
12395 * sysselect.h (FD_SETSIZE): Rename from MAXDESC. All uses changed.
12396 (SELECT_TYPE): Remove. All uses changed to fd_set.
12397 (fd_set) [!FD_SET]: New typedef.
12398
12399 Simplify EMACS_TIME-related code.
12400 This portability layer is no longer needed, since Emacs has been
12401 using struct timespec as a portability layer for some time.
12402 * atimer.h, buffer.h, dispextern.h, xgselect.h:
12403 Include <time.h> rather than "systime.h"; that's all that's needed now.
12404 * dispnew.c: Include <timespec.h> rather than "systime.h";
12405 that's all that's needed now.
12406 * systime.h (EMACS_TIME): Remove. All uses changed to struct timespec.
12407 (EMACS_TIME_RESOLUTION): Remove. All uses changed to
12408 TIMESPEC_RESOLUTION.
12409 (LOG10_EMACS_TIME_RESOLUTION): Remove. All uses changed to
12410 LOG10_TIMESPEC_RESOLUTION.
12411 (EMACS_SECS, emacs_secs_addr): Remove. All uses changed to tv_sec.
12412 (EMACS_NSECS): Remove. All uses changed to tv_nsec.
12413 (make_emacs_time): Remove. All used changed to make_timespec.
12414 (invalid_timespec): Rename from invalid_emacs_time. All uses changed.
12415 (current_timespec): Rename from current_emacs_time. All uses changed.
12416 (add_emacs_time): Remove. All uses changed to timespec_add.
12417 (sub_emacs_time): Remove. All uses change dot timespec_sub.
12418 (EMACS_TIME_SIGN): Remove. All uses changed to timespec_sign.
12419 (timespec_valid_p): Rename from EMACS_TIME_VALID_P. All uses changed.
12420 (EMACS_TIME_FROM_DOUBLE): Remove. All uses changed to dtotimespec.
12421 (EMACS_TIME_TO_DOUBLE): Remove. All uses changed to timespectod.
12422 (current_timespec): Rename from current_emacs_time. All uses changed.
12423 (EMACS_TIME_EQ, EMACS_TIME_LT, EMACS_TIME_LE): Remove. All uses
12424 changed to timespec_cmp.
12425 * xgselect.c: Include <timespec.h>, since our .h files don't.
12426
12427 2013-08-27 Dmitry Antipov <dmantipov@yandex.ru>
12428
12429 * xterm.h (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE:)
12430 * nsterm.h (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE):
12431 Remove the leftovers.
12432 * gtkutil.c (toplevel): Do not declare Qxft but include
12433 font.h to do so.
12434 * image.c (toplevel): Do not declare Vlibrary_cache because
12435 it's already done in lisp.h.
12436
12437 2013-08-27 Dmitry Antipov <dmantipov@yandex.ru>
12438
12439 * lisp.h (Mouse_HLInfo): Move from here...
12440 * dispextern.h (Mouse_HLInfo): ...to here and offload lisp.h.
12441 (reset_mouse_highlight): New function.
12442 * msdos.c (dos_set_window_size, IT_update_begin)
12443 (internal_terminal_init):
12444 * nsterm.m (ns_update_window_end, x_free_frame_resources)
12445 (ns_initialize_display_info):
12446 * w32console.c (initialize_w32_display):
12447 * w32term.c (x_update_window_end, x_free_frame_resources)
12448 (w32_initialize_display_info):
12449 * xterm.c (x_update_window_end, x_free_frame_resources, x_term_init):
12450 * window.c (Fdelete_other_windows_internal):
12451 * xdisp.c (clear_mouse_face, cancel_mouse_face): Use it.
12452 * termchar.h (toplevel):
12453 * xterm.h (toplevel): Include dispextern.h.
12454
12455 2013-08-26 Paul Eggert <eggert@cs.ucla.edu>
12456
12457 Fix minor problems found by static checking.
12458 * image.c (XGetPixel, XPutPixel) [HAVE_NS]: Now static.
12459 (expect): Avoid nested-if warning.
12460 (x_build_heuristic_mask) [HAVE_NS]: Avoid unused-var warning.
12461 * nsmenu.m (fillWithWidgetValue:): Avoid type warning.
12462 * nsterm.h, nsterm.m (ns_select):
12463 * xgselect.c, xgselect.h (xg_select):
12464 Adjust signature to better match pselect's.
12465 * nsterm.m (ns_select):
12466 Don't set *TIMEOUT, since pselect doesn't.
12467 * regex.c (whitespace_regexp): Now const_re_char *, to avoid
12468 diagnostic about assigning const char * to it.
12469 * xfaces.c (x_display_info) [HAVE_NS]: Remove; unused.
12470
12471 2013-08-26 Stefan Monnier <monnier@iro.umontreal.ca>
12472
12473 * lread.c (substitute_object_recurse): Handle hash-tables as well
12474 (bug#15190).
12475
12476 2013-08-26 Paul Eggert <eggert@cs.ucla.edu>
12477
12478 Fix unlikely core dump in init_tty, and simplify terminfo case.
12479 * term.c (init_tty) [TERMINFO]: Fix check for buffer overrun.
12480 The old version incorrectly dumped core if malloc returned a
12481 buffer containing only non-NUL bytes.
12482 (init_tty): Do not allocate or free termcap buffers; the
12483 struct does that for us now.
12484 * termchar.h (TERMCAP_BUFFER_SIZE) [!TERMINFO]: New constant.
12485 (struct tty_display_info): Define members termcap_term_buffer and
12486 termcap_strings_buffer only if !TERMINFO, since terminfo doesn't
12487 use them. Allocate them directly in struct rather than indirectly
12488 via a pointer, to simplify init_tty.
12489
12490 * frame.c (check_minibuf_window): Initialize 'window' properly,
12491 so that Emacs reliably aborts later if 'window' is not initialized.
12492
12493 2013-08-26 Jan Djärv <jan.h.d@swipnet.se>
12494
12495 * gtkutil.c (xg_initialize): Set gtk-menu-bar-accel to "" instead
12496 of VoidSymbol (Bug#15154).
12497
12498 2013-08-26 Dmitry Antipov <dmantipov@yandex.ru>
12499
12500 * lisp.h (Mouse_HLInfo): Drop set-but-unused members
12501 mouse_face_beg_y and mouse_face_end_y.
12502 * xdisp.c (note_tool_bar_highlight, mouse_face_from_buffer_pos)
12503 (mouse_face_from_string_pos, note_mode_line_or_margin_highlight):
12504 Adjust users and update comment where appropriate.
12505
12506 2013-08-26 Martin Rudalics <rudalics@gmx.at>
12507
12508 * frame.c (check_minibuf_window): New function.
12509 (delete_frame, Fmake_frame_invisible, Ficonify_frame):
12510 Call check_minibuf_window (Bug#15183).
12511
12512 2013-08-26 Dmitry Antipov <dmantipov@yandex.ru>
12513
12514 * window.h (struct window): Replace last_cursor with last_cursor_vpos
12515 because this is the only last cursor data we need to keep and consult.
12516 * window.c (replace_window, set_window_buffer, Fsplit_window_internal):
12517 * xdisp.c (mark_window_display_accurate_1, try_cursor_movement):
12518 Adjust users.
12519
12520 2013-08-26 Dmitry Antipov <dmantipov@yandex.ru>
12521
12522 Fix recovering from possible decompression error.
12523 Since insert_from_gap doesn't always move point, we can't use PT as
12524 the position where the partially decompressed data ends, and
12525 should count how many bytes was produced so far.
12526 * decompress.c (struct decompress_unwind_data): Add nbytes member.
12527 (unwind_decompress): Really delete partially uncompressed data.
12528 (Fzlib_decompress_region): Take decompressed data size into account.
12529
12530 2013-08-26 Dmitry Antipov <dmantipov@yandex.ru>
12531
12532 * syntax.c (init_syntax_once): Adjust comment and do an early
12533 initialization of Qchar_table_extra_slots just once...
12534 * casetab.c (init_casetab_once):
12535 * category.c (init_category_once):
12536 * character.c (syms_of_character):
12537 * coding.c (syms_of_coding):
12538 * xdisp.c (syms_of_xdisp): ...and omit it here.
12539
12540 2013-08-24 Eli Zaretskii <eliz@gnu.org>
12541
12542 * xdisp.c (get_next_display_element): Don't apply to characters
12543 from a display vector the logic of setting it->end_of_box_run_p
12544 suitable for characters from a buffer. (Bug#15175)
12545
12546 * w32.c (fdutimens): Call 'utime', which is implemented on w32.c
12547 to handle directories, rather than '_utime' which doesn't.
12548 (Bug#15176)
12549
12550 2013-08-24 Jan Djärv <jan.h.d@swipnet.se>
12551
12552 * gtkutil.c (x_wm_set_size_hint): Don't set hints when maximized
12553 or fullscreen (Bug#14627).
12554
12555 2013-08-24 Paul Eggert <eggert@cs.ucla.edu>
12556
12557 System-dependent integer overflow fixes.
12558 * process.c (Fset_process_window_size): Signal an error if
12559 the window size is outside the range supported by the lower level.
12560 * sysdep.c (set_window_size): Return negative on error,
12561 nonnegative on success, rather than -1, 0, 1 on not in system,
12562 failure, success. This is simpler. Caller changed.
12563 (serial_configure): Remove unnecessary initialization of local.
12564 (procfs_get_total_memory) [GNU_LINUX]: Don't assume system memory
12565 size fits in unsigned long; this isn't true on some 32-bit hosts.
12566 Avoid buffer overrun if some future version of /proc/meminfo has a
12567 variable name longer than 20 bytes.
12568 (system_process_attributes) [__FreeBSD__]:
12569 Don't assume hw.availpages fits in 'int'.
12570
12571 2013-08-23 Paul Eggert <eggert@cs.ucla.edu>
12572
12573 Don't let very long directory names overrun the stack.
12574 Fix some related minor problems involving "//", vfork.
12575 * callproc.c (encode_current_directory): New function.
12576 (call_process): Don't append "/"; not needed.
12577 * fileio.c (file_name_as_directory_slop): New constant.
12578 (file_name_as_directory): Allow SRC to be longer than SRCLEN;
12579 this can save the caller having to alloca.
12580 (Ffile_name_as_directory, Fdirectory_file_name, Fexpand_file_name):
12581 Use SAFE_ALLOCA, not alloca.
12582 (directory_file_name, Fexpand_file_name): Leave leading "//"
12583 alone, since it can be special even on POSIX platforms.
12584 * callproc.c (call_process):
12585 * process.c (Fformat_network_address):
12586 * sysdep.c (sys_subshell):
12587 Use encode_current_directory rather than rolling our own.
12588 (create_process): No need to encode directory; caller does that now.
12589 * process.h (encode_current_directory): New decl.
12590 * sysdep.c (sys_subshell): Work even if vfork trashes saved_handlers.
12591 Rework to avoid 'goto xyzzy;'.
12592
12593 2013-08-23 Eli Zaretskii <eliz@gnu.org>
12594
12595 * xdisp.c (handle_face_prop): If the default face was remapped use
12596 the remapped face for strings from prefix properties. (Bug#15155)
12597
12598 2013-08-23 Dmitry Antipov <dmantipov@yandex.ru>
12599
12600 Minor cleanup for redisplay interface and few related functions.
12601 * frame.h (enum text_cursor_kinds): Move from here...
12602 * dispextern.h (enum text_cursor_kinds): ...to here.
12603 (toplevel): Drop unnecessary declarations.
12604 (struct redisplay_interface): Use bool and enum text_cursor_kinds
12605 in update_window_end_hook and draw_window_cursor functions.
12606 (display_and_set_cursor, x_update_cursor): Adjust prototypes.
12607 * nsterm.m (ns_update_window_end, ns_draw_window_cursor):
12608 * w32term.c (x_update_window_end, w32_draw_window_cursor):
12609 * xterm.c (x_update_window_end, x_draw_window_cursor):
12610 * xdisp.c (display_and_set_cursor, update_window_cursor)
12611 (update_cursor_in_window_tree, x_update_cursor): Use bool and
12612 enum text_cursor_kinds where appropriate.
12613
12614 2013-08-23 Dmitry Antipov <dmantipov@yandex.ru>
12615
12616 Redesign redisplay interface to drop updated_row and updated_area.
12617 * dispextern.h (updated_row, updated_area): Remove declaration.
12618 (struct redisplay_interface): Pass glyph row and row area parameters
12619 to write_glyphs, insert_glyphs and clear_end_of_line functions.
12620 (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
12621 Adjust prototypes.
12622 * dispnew.c (updated_row, updated_area): Remove.
12623 (redraw_overlapped_rows, update_window_line): Adjust user.
12624 (update_marginal_area, update_text_area): Likewise. Pass updated row
12625 as a parameter. Prefer enum glyph_row_area to int where appropriate.
12626 * xdisp.c (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
12627 Adjust users.
12628
12629 2013-08-22 Paul Eggert <eggert@cs.ucla.edu>
12630
12631 * process.c (flush_pending_output): Remove stub.
12632 All uses removed.
12633
12634 2013-08-21 Paul Eggert <eggert@cs.ucla.edu>
12635
12636 * callproc.c: Fix race that killed background processes (Bug#15144).
12637 (call_process): New arg TEMPFILE_INDEX. Callers changed.
12638 Record deleted process-id in critical section, not afterwards.
12639 Don't mistakenly kill process created by a call-process invocation
12640 that discards output and does not wait.
12641
12642 2013-08-21 Dmitry Antipov <dmantipov@yandex.ru>
12643
12644 Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE
12645 and GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES.
12646 * alloc.c (toplevel): Remove unnecessary nested #if...#endif.
12647 (mark_maybe_object) [!GC_MARK_STACK]: Define to emacs_abort
12648 to shut up compiler in mark_object.
12649 (dump_zombies): Convert to global and add EXTERNALLY_VISIBLE.
12650
12651 2013-08-21 Paul Eggert <eggert@cs.ucla.edu>
12652
12653 * process.c (allocate_pty) [PTY_OPEN]: Set fd's FD_CLOEXEC flag.
12654 We can't portably rely on PTY_OPEN doing that, even if
12655 it calls posix_openpt with O_CLOEXEC.
12656
12657 2013-08-20 Kenichi Handa <handa@gnu.org>
12658
12659 * character.c (string_char): Improve commentary.
12660
12661 2013-08-20 Paul Eggert <eggert@cs.ucla.edu>
12662
12663 * image.c (SIGNATURE_DIGESTSIZE): Remove.
12664 (struct animation_cache): Make signature a flexible array member.
12665 All uses changed. This is a tad slower but may insulate us better
12666 from future changes to ImageMagick.
12667
12668 2013-08-19 Paul Eggert <eggert@cs.ucla.edu>
12669
12670 * image.c: Shrink memory needed for animation cache.
12671 (SIGNATURE_DIGESTSIZE): New constant.
12672 (struct animation_cache): Make 'signature' a fixed size array of bytes.
12673 (imagemagick_create_cache): Copy the signature. This saves
12674 several KB of memory that ImageMagick wastes per signature.
12675 Don't bother updating the update_time, as the caller does that now.
12676 (imagemagick_prune_animation_cache): Don't destroy the signature, as
12677 it's a fixed size struct member now.
12678 (imagemagick_get_animation_cache): Always destroy the signature,
12679 as it's now imagemagick_create_cache's responsibility to copy it.
12680 Avoid duplicate calls to strcmp and to imagemagick_create_cache,
12681 and use memcmp rather than strcmp.
12682 eassert that ImageMagick returns a signature of the specified length.
12683
12684 2013-08-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
12685
12686 * image.c (imagemagick_get_animation_cache): Don't segfault on
12687 each invocation.
12688 (imagemagick_get_animation_cache): Revert to previous definition
12689 so that it actually works. But keep the memory leak fix.
12690 (imagemagick_get_animation_cache): Fix memory leak.
12691
12692 2013-08-19 Paul Eggert <eggert@cs.ucla.edu>
12693
12694 * image.c: Fix animation cache signature memory leak.
12695 Fix some other minor performance problems while we're at it.
12696 (imagemagick_create_cache): Clear just the members that
12697 need clearing. Don't set update_time, as caller does that now.
12698 (imagemagick_prune_animation_cache, imagemagick_get_animation_cache):
12699 Simplify by using pointer-to-pointer instead of a prev pointer.
12700 (imagemagick_prune_animation_cache): Use make_emacs_time rather
12701 than EMACS_TIME_FROM_DOUBLE, and DestroyString rather than free.
12702 (imagemagick_get_animation_cache): Don't xstrdup the image signature;
12703 it's already a copy. Free the signature probe unless it's cached.
12704
12705 * process.c (handle_child_signal): Fix crash; deleted pid (Bug#15106).
12706 This was introduced by my 2013-08-12 fix for Bug#15035.
12707
12708 2013-08-19 Dmitry Antipov <dmantipov@yandex.ru>
12709
12710 * image.c (imagemagick_create_cache, imagemagick_get_animation_cache)
12711 (imagemagick_prune_animation_cache): Now static.
12712
12713 2013-08-18 Lars Magne Ingebrigtsen <larsi@gnus.org>
12714
12715 * image.c (imagemagick_get_animation_cache): Don't segfault when
12716 pruning all entries.
12717
12718 2013-08-18 Ken Brown <kbrown@cornell.edu>
12719
12720 * sheap.c (STATIC_HEAP_SIZE): Adjust to current needs; use bigger
12721 static heap if ENABLE_CHECKING is defined.
12722 (max_bss_sbrk_ptr): New variable.
12723 (bss_sbrk): Use it.
12724 (report_sheap_usage): Report maximum static heap usage instead of
12725 ending static heap usage.
12726
12727 2013-08-17 Eli Zaretskii <eliz@gnu.org>
12728
12729 * decompress.c (Fzlib_available_p) [WINDOWSNT]: Update the value
12730 of zlib_initialized according to the results of calling
12731 init_zlib_functions.
12732
12733 2013-08-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
12734
12735 * image.c: Implement an ImageMagick per-image cache.
12736 (imagemagick_get_animation_cache): Fix a double-free error.
12737 (imagemagick_load_image): Remove the ping_wand code, which only
12738 apparently saved time on invalid animated images, and slowed down
12739 everything else. Optimize for the common case.
12740
12741 2013-08-16 Xue Fuqiao <xfq.free@gmail.com>
12742
12743 * buffer.c (syms_of_buffer) <buffer-undo-list>: Doc fix.
12744
12745 * editfns.c (insert_before_markers): Mention overlay in the doc string.
12746
12747 * marker.c (set_marker): Remove documentation of undefined behavior.
12748
12749 2013-08-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
12750
12751 * image.c (imagemagick_compute_animated_image): Animate correctly
12752 when sub-images are smaller than the main image.
12753 (imagemagick_compute_animated_image): Setting the iterator row to
12754 zero is apparently not allowed.
12755 (imagemagick_compute_animated_image): Allow images that say they
12756 have sub-images that are bigger than the main image, but just crop
12757 them.
12758
12759 2013-08-15 Jan Djärv <jan.h.d@swipnet.se>
12760
12761 * nsmenu.m (menuWillOpen:): Fix preprocessor test (Bug#15001).
12762
12763 2013-08-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
12764
12765 * image.c (imagemagick_compute_animated_image): Respect the GIF
12766 disposal methods.
12767
12768 2013-08-15 Ken Brown <kbrown@cornell.edu>
12769
12770 * emacs.c (main): Update comment about G_SLICE_ALWAYS_MALLOC.
12771 * gmalloc.c (memalign) [CYGWIN]: Revert last change; it's not
12772 needed.
12773
12774 2013-08-15 Paul Eggert <eggert@cs.ucla.edu>
12775
12776 Fix minor problems found by static checking.
12777 * frame.c (delete_frame):
12778 * xdisp.c (next_element_from_display_vector):
12779 Avoid uninitialized local.
12780 * image.c (imagemagick_compute_animated_image): Port to C89.
12781 Prefer usual GNU indentation style for loops.
12782 Be more careful about bizarrely large sizes, by using ptrdiff_t
12783 instead of int.
12784
12785 2013-08-15 Dmitry Antipov <dmantipov@yandex.ru>
12786
12787 Fix infinite frame selection loop (Bug#15025).
12788 * frame.c (delete_frame): Prefer fast ad-hoc loop to next_frame.
12789
12790 2013-08-15 Eli Zaretskii <eliz@gnu.org>
12791
12792 * xdisp.c (compute_window_start_on_continuation_line):
12793 When WORD_WRAP is in effect, use move_it_to instead of move_it_by_lines
12794 to make sure we end up setting the window start at the leftmost
12795 visible character of the display line. This avoids funky
12796 horizontal shifting because the window start is not kept on the
12797 same position. (Bug#15090)
12798 (next_element_from_display_vector): Support 'box' face attribute
12799 in the face definitions of a display vector. (Bug#15099)
12800
12801 2013-08-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
12802
12803 * image.c (imagemagick_compute_animated_image): Implement animated
12804 images (bug#14700).
12805 (imagemagick_compute_animated_image): Fix some compilation
12806 warnings. Implement a very simple cache to make the animation
12807 usable at all, but it should be replaced with a per-image cache.
12808
12809 2013-08-15 Dmitry Antipov <dmantipov@yandex.ru>
12810
12811 * lisp.h (FOR_EACH_ALIST_VALUE): New macro
12812 to do `for' loops over alist values.
12813 * buffer.h (FOR_EACH_BUFFER):
12814 * process.c (FOR_EACH_PROCESS): Use it.
12815 (handle_child_signal, status_notify, Fget_buffer_process)
12816 (kill_buffer_processes): Use FOR_EACH_PROCESS.
12817
12818 2013-08-15 Dmitry Antipov <dmantipov@yandex.ru>
12819
12820 * term.c (get_named_tty, create_tty_output, tty_free_frame_resources)
12821 (tty_free_frame_resources, delete_tty): Prefer eassert to emacs_abort.
12822 * image.c (make_image_cache): For struct image_cache, prefer xmalloc
12823 to xzalloc and so avoid redundant call to memset.
12824 * xterm.c (x_term_init): Avoid unnecessary initializations of dpyinfo
12825 members because it is allocated with xzalloc and so already zeroed.
12826
12827 2013-08-14 Ken Brown <kbrown@cornell.edu>
12828
12829 * gmalloc.c (memalign) [CYGWIN]: Rename to emacs_memalign
12830 (Bug#15094).
12831
12832 2013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
12833
12834 Utility function and macro to copy Lisp string to C string.
12835 * lisp.h (xlispstrdupa): New macro.
12836 (xlispstrdup): New prototype.
12837 * alloc.c (xlispstrdup): New function.
12838 * callint.c (Fcall_interactively):
12839 * fileio.c (Ffile_name_directory, Fexpand_file_name)
12840 (Fsubstitute_in_file_name):
12841 * frame.c (Fmake_terminal_frame): Use xlispstrdupa.
12842 * image.c (x_create_bitmap_from_file):
12843 * w32term.c (w32_term_init):
12844 * xterm.c (x_term_init): Use xlispstrdup.
12845
12846 2013-08-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
12847
12848 * image.c (imagemagick_load_image): Make animated pictures work.
12849 There's still some problems with background color settings, though
12850 (bug#14700).
12851
12852 * decompress.c (unwind_decompress): Always restore point.
12853
12854 2013-08-14 Xue Fuqiao <xfq.free@gmail.com>
12855
12856 * marker.c (set_marker): Reformat documentation.
12857
12858 2013-08-14 Paul Eggert <eggert@cs.ucla.edu>
12859
12860 * xdisp.c (cursor_type_changed): Now static.
12861
12862 * image.c (imagemagick_filename_hint): New arg HINT_BUFFER.
12863 Use changed. This avoids the need to call xmalloc and for the
12864 caller to call xfree, and avoids memory leaks in some situations.
12865
12866 2013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
12867
12868 * xdisp.c (adjust_window_ends): Move duplicated code to new function.
12869 (try_window, try_window_reusing_current_matrix, try_window_id): Use it.
12870 (redisplay_window): If window_end_valid is cleared due to non-zero
12871 windows_or_buffers_changed, clear current_matrix_up_to_date_p and
12872 so do not call to try_cursor_movement for that window.
12873
12874 2013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
12875
12876 * window.h (struct window): Convert window_end_pos and
12877 window_end_vpos from Lisp_Object to ptrdiff_t and int, respectively.
12878 (wset_window_end_pos, wset_window_end_vpos): Remove.
12879 * dispnew.c (adjust_glyph_matrix):
12880 * window.c (Fwindow_end, replace_window, set_window_buffer)
12881 (make_window):
12882 * xdisp.c (check_window_end, move_it_to, redisplay_internal)
12883 (set_vertical_scroll_bar, redisplay_window, try_window)
12884 (try_window_reusing_current_matrix, find_first_unchanged_at_end_row)
12885 (try_window_id, decode_mode_spec, mouse_face_from_buffer_pos)
12886 (note_mouse_highlight): Adjust users.
12887 (try_cursor_movement): Likewise. Convert old precondition to eassert.
12888 Add comment.
12889
12890 2013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
12891
12892 Fix --enable-gcc-warnings errors introduced in 2013-08-13 commit.
12893 * image.c (imagemagick_filename_hint): Use `const char *' and
12894 prefer SSDATA to SDATA to avoid warnings.
12895
12896 2013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
12897
12898 Cleanup window fringes, margins and scroll bars adjustments.
12899 * window.c (set_window_fringes, set_window_margins)
12900 (set_window_scroll_bars, apply_window_adjustment): New functions.
12901 (set_window_buffer, Fset_window_margins, Fset_window_fringes)
12902 (Fset_window_scroll_bars): Use them.
12903
12904 2013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
12905
12906 * window.h (struct window): Convert scroll_bar_width
12907 from Lisp_Object to integer. Adjust comment.
12908 (WINDOW_CONFIG_SCROLL_BAR_WIDTH, WINDOW_CONFIG_SCROLL_BAR_COLS):
12909 Adjust users.
12910 * window.c (wset_scroll_bar_width): Remove.
12911 (make_window): Initialize scroll_bar_width.
12912 (Fsplit_window_internal): Use direct assignment.
12913 (Fset_window_configuration, save_window_save):
12914 Convert Lisp_Object to integer and back where appropriate.
12915 (Fset_window_scroll_bars): Adjust user. Return t if any scroll
12916 bar was actually changed, and mention this in docstring.
12917
12918 2013-08-13 Paul Eggert <eggert@cs.ucla.edu>
12919
12920 * decompress.c: Minor simplifications.
12921 (Fzlib_decompress_region): Don't bother verifying
12922 that avail_out <= UINT_MAX, as that was confusing.
12923 Mention the restriction in a comment instead.
12924 Prefer 'int' to 'ptrdiff_t' when 'int' is wide enough.
12925
12926 2013-08-13 Jan Djärv <jan.h.d@swipnet.se>
12927
12928 * nsmenu.m (x_activate_menubar): Check for OSX >= 10.5
12929 (trackingNotification:): Call ns_check_menu_open only for OSX >= 10.5.
12930
12931 2013-08-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
12932
12933 * image.c (imagemagick_filename_hint): Check for errors in the
12934 alist structure.
12935
12936 2013-08-13 Eli Zaretskii <eliz@gnu.org>
12937
12938 * window.c (Fwindow_margins): Return nil when there's no marginal
12939 area, as per the documented API.
12940
12941 * w32term.c (x_scroll_bar_create): Use ALLOCATE_PSEUDOVECTOR, not
12942 Fmake_vector, as scroll bar's struct members are not all Lisp
12943 objects now. This avoids crashes in GC.
12944
12945 * w32term.h (struct scroll_bar): Convert fringe_extended_p to a
12946 bool, so its address could be taken.
12947
12948 2013-08-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
12949
12950 * image.c (imagemagick_filename_hint): New function to possibly
12951 apply `image-content-type-suffixes'.
12952 (imagemagick_load_image): Use it.
12953
12954 2013-08-13 Eli Zaretskii <eliz@gnu.org>
12955
12956 * decompress.c (Fzlib_decompress_region) [WINDOWSNT]: Return Qnil
12957 if loading zlib failed.
12958
12959 2013-08-13 Jan Djärv <jan.h.d@swipnet.se>
12960
12961 * nsterm.m (ns_set_vertical_scroll_bar): Fix breakage intruduced by
12962 2013-08-13 checkin below. Change bool to BOOL, rule is:
12963 All Obj-C code uses BOOL, except for interfaces callable from C.
12964
12965 * nsterm.h: Fix CGFloat for OSX 10.4 (Bug#15086).
12966
12967 2013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
12968
12969 * window.h (WINDOW_FRINGE_EXTENDED_P): New macro.
12970 * nsterm.m (ns_set_vertical_scroll_bar): Use it. Use convenient
12971 bool instead of BOOL.
12972 * w32term.h (struct scroll_bar): Convert fringe_extended_p
12973 from Lisp_Object to bitfield. Adjust comment.
12974 * w32term.c (x_scroll_bar_create): Adjust user.
12975 Use WINDOW_FRINGE_EXTENDED_P and bool for boolean.
12976 * xterm.c (XTset_vertical_scroll_bar): Likewise.
12977 Use bool for boolean.
12978 * xterm.h (struct scroll_bar): Prefer commonly used `unsigned'
12979 to `unsigned int' when defining a bitfield.
12980
12981 2013-08-13 Paul Eggert <eggert@cs.ucla.edu>
12982
12983 * decompress.c (Fzlib_decompress_region): Try to clarify 'avail_out'.
12984
12985 2013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
12986
12987 * window.h (struct window): Convert left_margin_cols and
12988 right_margin_cols from Lisp_Objects to integers. Adjust comment.
12989 (WINDOW_LEFT_MARGIN_COLS, WINDOW_RIGHT_MARGIN_COLS)
12990 (WINDOW_LEFT_MARGIN_WIDTH, WINDOW_RIGHT_MARGIN_WIDTH):
12991 Adjust users.
12992 * dispnew.c (margin_glyphs_to_reserve): Convert 3rd arg to int.
12993 Adjust comment.
12994 (showing_window_margins_p, update_window_line, update_frame_1):
12995 * fringe.c (draw_fringe_bitmap_1):
12996 * xdisp.c (window_box_width): Adjust users.
12997 * window.c (wset_left_margin_cols, wset_right_margin_cols): Remove.
12998 (adjust_window_margins, set_window_buffer, Fsplit_window_internal):
12999 Use direct assignment.
13000 (Fset_window_configuration, save_window_save, Fwindow_margins):
13001 Convert Lisp_Object to integer and back where appropriate.
13002 (Fset_window_margins): Adjust user. Return t if any margin
13003 was actually changed, and mention this in docstring.
13004
13005 2013-08-13 Xue Fuqiao <xfq.free@gmail.com>
13006
13007 * syntax.c (forward_word):
13008 * cmds.c (forward_char, backward_char): Mention the optional argument.
13009
13010 2013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
13011
13012 * window.h (struct window): Convert left_fringe_width
13013 and right_fringe_width from Lisp_Objects to integers.
13014 Adjust comment.
13015 (WINDOW_FRINGE_COLS, WINDOW_LEFT_FRINGE_WIDTH)
13016 (WINDOW_RIGHT_FRINGE_WIDTH): Adjust users.
13017 * window.c (wset_left_fringe_width, wset_right_fringe_width):
13018 Remove.
13019 (make_window): Initialize new integer fields to -1.
13020 (Fsplit_window_internal): Use direct assignment.
13021 (Fset_window_configuration, save_window_save):
13022 Convert Lisp_Object to integer and back where appropriate.
13023 (Fset_window_fringes): Adjust user. Return t if any fringe
13024 was actually changed, and mention this in docstring.
13025
13026 2013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
13027
13028 * keyboard.c (Fdiscard_input): Do not increment update_mode_lines.
13029 * nsfns.m (x_set_cursor_type):
13030 * w32fns.c (x_set_cursor_type):
13031 * xfns.c (x_set_cursor_type): Do not set cursor_type_changed here...
13032 * xdisp.c (set_frame_cursor_types): ...but in common code.
13033
13034 2013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
13035
13036 * font.c (clear_font_cache): New function, stripped from...
13037 (Fclear_font_cache): ...here, which now uses the function
13038 above. Adjust comment.
13039 * font.h (clear_font_cache): Add prototype.
13040 * xfaces.c (clear_face_cache): Use clear_font_cache.
13041
13042 2013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
13043
13044 * window.c (Fset_window_start): Compare `w', not `window' because
13045 `w' might not be equal to `window' after call to decode_live_window.
13046
13047 2013-08-12 Paul Eggert <eggert@cs.ucla.edu>
13048
13049 * process.c (deactivate_process): Reset fds to -1 (Bug#15035).
13050 This fixes a problem introduced by the Bug#15035 patch
13051 when using GPG. Reported by Herbert J. Skuhra.
13052
13053 2013-08-12 Eli Zaretskii <eliz@gnu.org>
13054
13055 * decompress.c <zlib_initialized> [WINDOWSNT]: New static variable.
13056 (Fzlib_decompress_region) [WINDOWSNT]: Call init_zlib_functions if
13057 not yet initialized.
13058
13059 2013-08-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
13060
13061 * decompress.c (Fzlib_decompress_region): Support zlib
13062 decompression, too, and rename.
13063
13064 2013-08-12 Paul Eggert <eggert@cs.ucla.edu>
13065
13066 Minor zlib configuration tweaks.
13067 * decompress.c (fn_inflateInit2) [!WINDOWSNT]:
13068 Don't assume presence of fn_inflateInit2_ zlib internal function.
13069
13070 2013-08-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
13071
13072 * decompress.c (Fzlib_decompress_gzipped_region): Rename to
13073 include the zlib prefix.
13074
13075 2013-08-12 Eli Zaretskii <eliz@gnu.org>
13076
13077 * decompress.c [WINDOWSNT]: Include windows.h and w32.h.
13078 (DEF_ZLIB_FN, LOAD_ZLIB_FN) [WINDOWSNT]: New macros. Use them to
13079 define static variables that are pointers to zlib functions to be
13080 dynamically loaded.
13081 (init_zlib_functions) [WINDOWSNT]: New function.
13082 (fn_inflateInit2_, fn_inflate, fn_inflateEnd, fn_inflateInit2):
13083 New macros.
13084 (Fdecompress_gzipped_region, unwind_decompress): Use the fn_*
13085 macros instead of invoking the zlib functions directly.
13086 (syms_of_decompress): DEFSYM Qzlib_dll.
13087 Staticpro Szlib_available_p.
13088
13089 2013-08-12 Dmitry Antipov <dmantipov@yandex.ru>
13090
13091 Avoid looping over all frame windows to freeze and unfreeze.
13092 * window.h (struct window): Drop frozen_window_start_p.
13093 (freeze_window_starts): Drop prototype.
13094 * frame.h (struct frame): New frozen_window_starts flag.
13095 (FRAME_WINDOWS_FROZEN): New macro.
13096 * window.c (freeze_window_start, freeze_window_starts):
13097 Remove.
13098 (select_window, replace_window): Adjust users.
13099 * xdisp.c (resize_mini_window): Use FRAME_WINDOWS_FROZEN.
13100 (window_frozen_p): New function.
13101 (redisplay_window): Use it.
13102
13103 2013-08-12 Paul Eggert <eggert@cs.ucla.edu>
13104
13105 Fix some fd issues when running subprocesses (Bug#15035).
13106 Fix bugs that can leak files or file descriptors on errors.
13107 Don't unlink open temp files, as that's hard for users to diagnose
13108 when things go awry (e.g., temp disk exhausted).
13109 Don't bother to lock temp files. Check for invalid recursion.
13110 * callproc.c (synch_process_fd): Remove. All uses removed.
13111 (synch_process_tempfile): New var or macro.
13112 (CALLPROC_STDOUT, CALLPROC_STDERR, CALLPROC_PIPEREAD, CALLPROC_FDS):
13113 New constants.
13114 (record_kill_process): New arg, the temp name. All callers changed.
13115 (delete_temp_file): Now just a simple wrapper around unlink.
13116 (call_process_kill): New arg, the call_process_fd array.
13117 Close them all. Clear synch_process_pid. Remove the temp file,
13118 or arrange for it to be removed.
13119 (call_process_cleanup) [MSDOS]: Arg no longer contains file name;
13120 that's been moved to synch_process_tempfile. Caller changed.
13121 Do not remove the tempfile; that's now call_process_kill's
13122 responsibility.
13123 (call_process_cleanup) [!MSDOS]: Do not record unwind-protect for
13124 call_process_kill; the caller now does that.
13125 (call_process_cleanup): Do not close the process fd; that's now
13126 call_process_kill's responsibility.
13127 (Fcall_process): Implement via new function call_process, which
13128 has most of the old body of Fcall_process, but with a different API.
13129 (call_process): New function that does not open or close filefd if
13130 it is nonnegative. Record which fds need to be closed, and let
13131 call_process_kill close (and remove the tempfile, on MSDOS) on error.
13132 Signal an error if invoked recursively (could be done via a hook).
13133 Simplify creation of the tempfile in the MSDOS case.
13134 Don't create the output file until after checking for the executable.
13135 Report any failure to open /dev/null.
13136 Don't open /dev/null for writing twice; once is enough.
13137 Don't create pipe if all output is being discarded or sent to file.
13138 Don't worry about setting up the coding system or reading from the
13139 pipe if all output is being discarded.
13140 Hoist fd_error local into top level, to lessen block nesting.
13141 Don't record deleted pid here; now done by Fcall_process_region.
13142 (Fcall_process) [MSDOS]: Report mktemp failure immediately,
13143 and note its success in synch_process_tempfile.
13144 Do not leak resources when child_setup fails.
13145 (Fcall_process) [!MSDOS && !WINDOWSNT]: Remove duplicate assignment
13146 to child_errno. Remove unnecessary close of fd0; it's close-on-exec.
13147 (create_temp_file): Now returns open fd, with an additional
13148 Lisp_Object * argument to return the name. All callers changed.
13149 Do not close the file; rewind it instead, and leave it open for
13150 the caller. Do not lock the temp file. Unwind-protect the file
13151 and the file-descriptor.
13152 (Fcall_process_region): If the input is /dev/null, unwind-protect it.
13153 If an asynchrounous process, record it here, not in call_process.
13154 (syms_of_callproc) [MSDOS]: Initialize synch_process_tempfile.
13155 * eval.c (set_unwind_protect): New function.
13156 * fileio.c (write_region): New function, generalized from the
13157 old Fwrite_region. Do not lock temp files.
13158 (Fwrite_region): Use it.
13159 * lisp.h (set_unwind_protect, write_region): New decls.
13160 * process.c: Include <verify.h>.
13161 (make_process): Mark fds as initially closed.
13162 (deleted_pid_list): Now a list of pid-filename pairs.
13163 All uses changed.
13164 (close_process_fd): New function.
13165 (SUBPROCESS_STDIN, WRITE_TO_SUBPROCESS, READ_FROM_SUBPROCESS)
13166 (SUBPROCESS_STDOUT, READ_FROM_EXEC_MONITOR, EXEC_MONITOR_OUTPUT):
13167 New constants. Verify that their number matches PROCESS_OPEN_FDS.
13168 (create_process, create_pty, Fmake_serial_process)
13169 (server_accept_connection): Record which fds need to be closed,
13170 and let deactivate_process close them.
13171 (Fmake_network_process): Do not discard the unwind-protect
13172 until it's safe to do so.
13173 (deactivate_process): Close the fds opened by create_process etc.
13174 (Fprocess_send_eof): Adjust to new way of recording open fds.
13175 Report an error if /dev/null can't be opened, instead of aborting.
13176 * process.h (PROCESS_OPEN_FDS): New constant.
13177 (struct Lisp_Process): New member open_fds.
13178 (record_kill_process, record_deleted_pid): Adjust signatures.
13179 (record_deleted_pid): Move decl here ...
13180 * syswait.h (record_deleted_pid): ... from here.
13181
13182 2013-08-11 Paul Eggert <eggert@cs.ucla.edu>
13183
13184 * decompress.c: Fix bugs with large buffers and weird inputs.
13185 Tune a bit. Reindent as per usual Emacs style.
13186 (BUFFER_SIZE): Remove.
13187 (Fdecompress_gzipped_region): Do not mishandle input buffers with
13188 more than UINT_MAX bytes. Decompress into the gap instead of into
13189 an auto buffer, as this should avoid copying. Return nil if
13190 'inflate' returns Z_NEED_DICT, as we have no dictionary. Do not
13191 set immediate_quit; we shouldn't trust zlib code that much.
13192
13193 2013-08-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
13194
13195 * decompress.c (Fdecompress_gzipped_region): Respect all zlib
13196 errors, and really move the gap to where we want it.
13197
13198 * lisp.h: Include decompress.c support.
13199
13200 * emacs.c (main): Include decompress.c support.
13201
13202 * Makefile.in: Include -lz if present.
13203
13204 2013-08-11 Jan Djärv <jan.h.d@swipnet.se>
13205
13206 * nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:frame:
13207 (initWithTitle:): Initialize frame to 0.
13208 (fillWithWidgetValue:): Call fillWithWidgetValue:frame.
13209 (fillWithWidgetValue:frame:): Rename from
13210 fillWithWidgetValue:setDelegate, call initWithTile:frame: if f.
13211
13212 * nsterm.h (EmacsMenu): fillWithWidgetValue:setDelegate renamed to
13213 fillWithWidgetValue:frame:
13214
13215 * nsfns.m (Fns_convert_utf8_nfd_to_nfc): Allocate and release pool to
13216 remove memory leak warnings.
13217
13218 * nsterm.m (menu_pending_title, ns_get_pending_menu_title): Remove.
13219 (ns_check_menu_open): Handle menu == nil. Remove assignment to
13220 menu_pending_title.
13221
13222 * nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:setDelegate.
13223 (x_activate_menubar): Update the whole menu.
13224 (trackingNotification:): Call ns_check_menu_open if tracking ends.
13225 (menuWillOpen:): Increment trackingMenu. For OSX <= 10.6, exit if
13226 current event is not NSSystemDefined (Bug#15001).
13227 Call ns_check_menu_open only if trackingMenu is 2.
13228 (menuDidClose:): New method, decrease trackingMenu.
13229 (fillWithWidgetValue:setDelegate:): New method.
13230 (fillWithWidgetValue:): Call the above.
13231
13232 * nsterm.h (EmacsMenu): Add fillWithWidgetValue:setDelegate:
13233
13234 2013-08-11 Paul Eggert <eggert@cs.ucla.edu>
13235
13236 Omit some unnecessary casts.
13237 Many of these go back to the old pre-C89 days, when they may have
13238 been needed, but we've been assuming C89 or later for a while now.
13239 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
13240 (live_float_p, live_misc_p, live_vector_p):
13241 * buffer.c (compare_overlays, cmp_for_strings, mmap_find)
13242 (mmap_alloc, alloc_buffer_text, enlarge_buffer_text)
13243 (defvar_per_buffer):
13244 * callint.c (Fcall_interactively):
13245 * doc.c (Fsubstitute_command_keys):
13246 * filelock.c (get_boot_time):
13247 * frame.c (xrdb_get_resource):
13248 * gtkutil.c (hierarchy_ch_cb, qttip_cb, style_changed_cb)
13249 (delete_cb, xg_dialog_response_cb, xg_maybe_add_timer)
13250 (xg_get_file_name_from_selector, menuitem_destroy_callback)
13251 (menuitem_highlight_callback, menu_destroy_callback)
13252 (xg_update_menu_item, xg_modify_menubar_widgets, menubar_map_cb)
13253 (xg_tool_bar_callback, xg_get_tool_bar_widgets)
13254 (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
13255 (xg_tool_bar_help_callback, tb_size_cb):
13256 * image.c (xpm_alloc_color, png_read_from_memory)
13257 (png_read_from_file, png_load_body, our_memory_skip_input_data)
13258 (jpeg_memory_src, jpeg_file_src, imagemagick_load_image)
13259 (syms_of_image):
13260 * keymap.c (describe_map):
13261 * nsfns.m (Fns_display_monitor_attributes_list):
13262 * nsmenu.m (process_dialog:):
13263 * nsterm.m (hold_event):
13264 * process.c (wait_reading_process_output):
13265 * regex.c (REGEX_REALLOCATE, re_set_registers, re_exec, regexec):
13266 * scroll.c (do_direct_scrolling, scrolling_1):
13267 * termcap.c (tgetent):
13268 * window.c (check_window_containing, add_window_to_list)
13269 (freeze_window_starts):
13270 * xdisp.c (compare_overlay_entries, vmessage):
13271 * xfns.c (x_window, x_get_monitor_attributes_xinerama)
13272 (x_get_monitor_attributes_xrandr)
13273 (Fx_display_monitor_attributes_list, x_display_info_for_name)
13274 (Fx_open_connection, file_dialog_cb, file_dialog_unmap_cb):
13275 * xfont.c (xfont_match, xfont_open):
13276 * xmenu.c (x_menu_wait_for_event, menu_highlight_callback)
13277 (menubar_selection_callback, menu_position_func)
13278 (popup_selection_callback, create_and_show_popup_menu)
13279 (dialog_selection_callback, create_and_show_dialog):
13280 * xrdb.c (x_get_string_resource)
13281 (main) [TESTRM]:
13282 * xsmfns.c (x_session_check_input):
13283 * xterm.c (x_draw_glyphless_glyph_string_foreground)
13284 (xm_scroll_callback, xg_scroll_callback, xg_end_scroll_callback)
13285 (xaw_jump_callback, xaw_scroll_callback):
13286 Omit unnecessary casts.
13287
13288 2013-08-10 Paul Eggert <eggert@cs.ucla.edu>
13289
13290 Minor string-length refactoring.
13291 * alloc.c (xstrdup): Use memcpy, not strcpy, since the length's known.
13292 * frame.c (make_monitor_attribute_list):
13293 Prefer build_string to strlen + make_string.
13294
13295 2013-08-10 Jan Djärv <jan.h.d@swipnet.se>
13296
13297 * xterm.c (x_error_handler): Also ignore BadWindow for X_SetInputFocus,
13298 don't check minor_code (Bug#14417).
13299
13300 2013-08-09 Eli Zaretskii <eliz@gnu.org>
13301
13302 * xdisp.c (draw_glyphs): Don't compare row pointers, compare row
13303 vertical positions instead. This avoids calling MATRIX_ROW with
13304 row numbers that are possibly beyond valid limits. (Bug#15064)
13305
13306 2013-08-09 Dmitry Antipov <dmantipov@yandex.ru>
13307
13308 Use xstrdup and build_unibyte_string where applicable.
13309 * alloc.c (xstrdup): Tiny cleanup. Add eassert.
13310 * xfns.c (x_window):
13311 * xrdb.c (x_get_customization_string):
13312 * xterm.c (xim_initialize):
13313 * w32fns.c (w32_window): Use xstrdup.
13314 (w32_display_monitor_attributes_list):
13315 * emacs.c (init_cmdargs):
13316 * keyboard.c (PUSH_C_STR):
13317 * nsfont.m (nsfont_open):
13318 * sysdep.c (system_process_attributes):
13319 * w32.c (system_process_attributes):
13320 * xdisp.c (message1, message1_nolog): Use build_unibyte_string.
13321
13322 2013-08-09 Eli Zaretskii <eliz@gnu.org>
13323
13324 * w32.c (PEXCEPTION_POINTERS, PEXCEPTION_RECORD, PCONTEXT): Define
13325 variables of these types so that GDB would know about them, as aid
13326 for debugging fatal exceptions. (Bug#15024) See also
13327 http://sourceware.org/ml/gdb/2013-08/msg00010.html for related
13328 discussions.
13329
13330 2013-08-08 Jan Djärv <jan.h.d@swipnet.se>
13331
13332 * nsterm.m (ns_update_begin): Don't change clip path if it would be
13333 larger than the NSWindow (Bug#14934).
13334
13335 2013-08-08 Dmitry Antipov <dmantipov@yandex.ru>
13336
13337 Redesign redisplay interface to drop global variable updated_window.
13338 Always pass currently updated window as a parameter to update routines.
13339 * dispextern.h (updated_window): Remove declaration.
13340 (struct redisplay_interface): Pass window parameter to
13341 write_glyphs, insert_glyphs, clear_end_of_line, cursor_to
13342 and after_update_window_hook.
13343 (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line, x_cursor_to):
13344 Adjust prototypes.
13345 * dispnew.c (updated_window): Remove.
13346 (redraw_overlapped_rows, update_marginal_area, update_text_area)
13347 (update_window_line): Adjust to match redisplay interface changes.
13348 * nsterm.m (ns_update_window_begin, ns_update_window_end)
13349 (ns_scroll_run, ns_after_update_window_line):
13350 * w32term.c (x_update_window_begin, x_update_window_end)
13351 (x_after_update_window_line, x_scroll_run):
13352 * xterm.c (x_update_window_begin, x_update_window_end)
13353 (x_after_update_window_line, x_scroll_run):
13354 * xdisp.c (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
13355 Likewise. Adjust comments where appropriate.
13356 (x_cursor_to): Simplify because this is always called during window
13357 update (but install debugging check anyway).
13358 (expose_window): Check must_be_updated_p flag to see whether this
13359 function is called during window update.
13360
13361 2013-08-08 Dmitry Antipov <dmantipov@yandex.ru>
13362
13363 Do not reset window modification event counters excessively.
13364 These leftovers and poor man's tricky methods to catch extra
13365 redisplay's attention are no longer needed.
13366 * frame.c (set_menu_bar_lines_1):
13367 * minibuf.c (read_minibuf_unwind):
13368 * window.c (Fset_window_start, set_window_buffer, window_resize_apply)
13369 (grow_mini_window, shrink_mini_window, window_scroll_pixel_based)
13370 (window_scroll_line_based, Fset_window_configuration):
13371 * xdisp.c (redisplay_window): Do not reset last_modified and
13372 last_overlay_modified counters.
13373
13374 2013-08-07 Jan Djärv <jan.h.d@swipnet.se>
13375
13376 * xselect.c (x_send_client_event): Set send_event and serial, memset
13377 data.l as it might be bigger than data.b. Use 24 bit mask to
13378 XSendEvent (Bug#15034).
13379
13380 2013-08-07 Eli Zaretskii <eliz@gnu.org>
13381
13382 * xdisp.c (prepare_menu_bars): Don't call x_consider_frame_title
13383 for TTY frames that are not the top frame on their console.
13384 (Bug#14616)
13385
13386 2013-08-07 Martin Rudalics <rudalics@gmx.at>
13387
13388 * w32term.c (w32fullscreen_hook): Really maximize frame when
13389 asked for (Bug#14841).
13390
13391 2013-08-07 Dmitry Antipov <dmantipov@yandex.ru>
13392
13393 Prefer selected_window to Fselected_window, likewise for frames.
13394 * buffer.c (Fbuffer_swap_text):
13395 * data.c (Fvariable_binding_locus):
13396 * window.c (run_window_configuration_change_hook): Adjust users.
13397 * w16select.c (Fw16_set_clipboard_data, Fw16_get_clipboard_data):
13398 Use decode_live_frame.
13399
13400 2013-08-07 Dmitry Antipov <dmantipov@yandex.ru>
13401
13402 Be more careful if selected window shows the buffer other than current,
13403 use window_outdated only if this is not so. This change should also
13404 address some weird issues discussed in Bug#13012.
13405 * window.h (window_outdated): New prototype.
13406 * window.c (window_outdated): Now here. Convert from static and
13407 always assume window's buffer.
13408 (Fwindow_end, Fwindow_line_height): Use it.
13409 * xdisp.c (reconsider_clip_changes): Remove prototype, drop 2nd arg
13410 and always assume window's buffer.
13411 (redisplay_window): Adjust user.
13412 (redisplay_internal): Call to reconsider_clip_changes once and
13413 check whether mode line should be updated only if selected window
13414 shows current buffer.
13415 (run_window_scroll_functions): Use eassert for debugging check.
13416 (Fmove_point_visually, note_mouse_highlight): Use window_outdated.
13417
13418 2013-08-06 Dmitry Antipov <dmantipov@yandex.ru>
13419
13420 * window.c (window_scroll, window_scroll_pixel_based)
13421 (window_scroll_line_based): Use bool for booleans.
13422
13423 2013-08-06 Paul Eggert <eggert@cs.ucla.edu>
13424
13425 * process.c: Fix minor off-by-one issues in descriptor counts.
13426 This shouldn't fix any real bugs, but it cleans up the code a bit.
13427 (max_process_desc, max_input_desc): -1, not 0, means none.
13428 All uses changed.
13429 (delete_input_desc): New function.
13430 (delete_write_fd, delete_keyboard_wait_descriptor): Use it.
13431 (deactivate_process): Scan backwards when recomuting max_process_desc;
13432 that should be faster.
13433 (init_process_emacs): Initialize max_input_desc.
13434
13435 2013-08-06 Dmitry Antipov <dmantipov@yandex.ru>
13436
13437 Use region cache to speedup bidi_find_paragraph_start.
13438 * buffer.h (struct buffer): New member bidi_paragraph_cache.
13439 Rename cache_long_line_scans to cache_long_scans.
13440 * buffer.c (bset_cache_long_line_scans): Rename to
13441 bset_cache_long_scans.
13442 (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer)
13443 (Fbuffer_swap_text, init_buffer_once): Take bidi_paragraph_cache
13444 into account.
13445 (syms_of_buffer): Rename cache-long-line-scans to
13446 cache-long-scans. Adjust docstring.
13447 * search.c (newline_cache_on_off):
13448 * indent.c (width_run_cache_on_off): Adjust users.
13449 * bidi.c (bidi_paragraph_cache_on_off): New function.
13450 (bidi_find_paragraph_start): Use bidi_paragraph_cache if needed.
13451 * insdel.c (prepare_to_modify_buffer):
13452 Invalidate bidi_paragraph_cache if enabled.
13453
13454 2013-08-06 Dmitry Antipov <dmantipov@yandex.ru>
13455
13456 Invalidate region caches only if buffer text is going to be changed.
13457 * lisp.h (modify_region_1): Remove 3rd arg and rename to...
13458 (modify_text): ...new prototype.
13459 (prepare_to_modify_buffer_1): New prototype.
13460 * textprop.c (modify_region): Rename to...
13461 (modify_text_properties): ...new function.
13462 (add_text_properties_1, set_text_properties, Fremove_text_properties)
13463 (Fremove_list_of_text_properties): Adjust users.
13464 * insdel.c (modify_region_1): Remove 3rd arg and reimplement as...
13465 (modify_text): ...new function.
13466 (prepare_to_modify_buffer): Reimplement mostly as a wrapper for...
13467 (prepare_to_modify_buffer_1): ...new function.
13468 * casefiddle.c (casify_region):
13469 * editfns.c (Fsubst_char_in_region, Ftranslate_region_internal)
13470 (Ftranspose_regions): Use modify_text.
13471
13472 2013-08-05 Stefan Monnier <monnier@iro.umontreal.ca>
13473
13474 * lisp.mk (lisp): Add nadvice.elc.
13475
13476 2013-08-05 Dmitry Antipov <dmantipov@yandex.ru>
13477
13478 New macro to iterate over live buffers similar to frames.
13479 * buffer.h (FOR_EACH_LIVE_BUFFER): New macro.
13480 (Vbuffer_alist, Qpriority, Qbefore_string, Qafter_string):
13481 Declare buffer-related variables here to offload lisp.h.
13482 * buffer.c (Vbuffer_alist): Adjust comment.
13483 (Fget_file_buffer, get_truename_buffer, Fother_buffer)
13484 (other_buffer_safely):
13485 * data.c (store_symval_forwarding):
13486 * dispnew.c (Fframe_or_buffer_changed_p):
13487 * fileio.c (Fdo_auto_save):
13488 * filelock.c (unlock_all_files):
13489 * minibuf.c (read_minibuf): Use FOR_EACH_LIVE_BUFFER.
13490
13491 2013-08-04 Paul Eggert <eggert@cs.ucla.edu>
13492
13493 Fix some minor races in hosts lacking mkostemp (Bug#15015).
13494 * callproc.c (create_temp_file):
13495 * filelock.c (create_lock_file):
13496 Assume mkostemp, since it's now provided by Gnulib.
13497
13498 2013-08-04 Eli Zaretskii <eliz@gnu.org>
13499
13500 * w32.c (mkostemp): New function.
13501 (mktemp): Remove, no longer used. Most of the code reused in
13502 mkostemp. (Bug#15015)
13503 (mktemp): Don't undef.
13504
13505 2013-08-04 Dmitry Antipov <dmantipov@yandex.ru>
13506
13507 * dispnew.c (glyph_matrix_count, glyph_pool_count):
13508 Move under GLYPH_DEBUG and ENABLE_CHECKING.
13509 (new_glyph_matrix, free_glyph_matrix, new_glyph_pool)
13510 (free_glyph_pool, check_glyph_memory): Likewise for
13511 all users. Adjust comments where appropriate.
13512
13513 2013-08-03 Paul Eggert <eggert@cs.ucla.edu>
13514
13515 * composite.h: Minor fixups.
13516 (composition_registered_p): Rename from COMPOSITION_REGISTERD_P
13517 to fix a misspelling, and change it to an inline function while
13518 we're at it (it need not be a macro). All uses changed.
13519 (composition_method, composition_valid_p):
13520 Rewrite to avoid assignments in if-conditions.
13521
13522 2013-08-03 Dmitry Antipov <dmantipov@yandex.ru>
13523
13524 Do not use global Lisp_Object in composition macros.
13525 * composite.h (composition_temp): Remove declaration.
13526 (COMPOSITION_METHOD, COMPOSITION_VALID_P): Replace with...
13527 (composition_method, composition_valid_p): ...inline functions.
13528 (compose_region): Remove the leftover.
13529 * composite.c (composition_temp): Remove.
13530 (run_composition_function, update_compositions)
13531 (composition_compute_stop_pos, composition_adjust_point)
13532 (Ffind_composition_internal):
13533 * coding.c (handle_composition_annotation):
13534 * xdisp.c (handle_composition_prop, check_point_in_composition):
13535 Related users changed.
13536
13537 2013-08-03 Dmitry Antipov <dmantipov@yandex.ru>
13538
13539 Drop FRAME_PTR typedef.
13540 * composite.c, font.c, font.h, fontset.c, fontset.h, frame.c, frame.h:
13541 * ftfont.c, ftxfont.c, gtkutil.c, gtkutil.h, image.c, keyboard.c:
13542 * menu.c, menu.h, msdos.c, nsfns.m, nsfont.m, nsmenu.m, nsterm.h:
13543 * nsterm.m, scroll.c, term.c, w32fns.c, w32font.c, w32font.h:
13544 * w32inevt.c, w32inevt.h, w32menu.c, w32notify.c, w32term.c, w32term.h:
13545 * w32uniscribe.c, w32xfns.c, widget.c, window.c, xdisp.c, xfaces.c:
13546 * xfns.c, xfont.c, xftfont.c, xmenu.c, xselect.c, xterm.c:
13547 All related users changed.
13548
13549 2013-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
13550
13551 * eval.c (default_toplevel_binding): New function.
13552 (Fdefvar): Use it.
13553 (unbind_to, backtrace_eval_unrewind): Do a bit of CSE simplification.
13554 (Fdefault_toplevel_value, Fset_default_toplevel_value): New subrs.
13555 (syms_of_eval): Export them.
13556 * data.c (Fdefault_value): Micro cleanup.
13557 * term.c (init_tty): Use "false".
13558
13559 2013-08-02 Dmitry Antipov <dmantipov@yandex.ru>
13560
13561 Fix X GC leak in GTK and raw (no toolkit) X ports.
13562 * xterm.c (x_free_frame_resources): If white and black relief
13563 GCs are allocated, always free them here.
13564 * xfns.c (x_make_gc): Omit redundant initialization.
13565 * widget.c (create_frame_gcs): Remove the leftover.
13566 (EmacsFrameDestroy): Do nothing because all GCs are now freed
13567 in x_free_frame_resources.
13568
13569 2013-08-02 Jan Djärv <jan.h.d@swipnet.se>
13570
13571 * nsterm.m (windowWillResize:toSize:): Only change title if
13572 ! maximizing_resize && FULLSCREEN_NONE (Bug#15005). strdup title before
13573 modifying it.
13574 (viewDidEndLiveResize): New method.
13575
13576 * nsterm.h (EmacsView): Add maximizing_resize, put it and old_title
13577 inside NS_IMPL_COCOA.
13578
13579 2013-08-02 Dmitry Antipov <dmantipov@yandex.ru>
13580
13581 * insdel.c (adjust_after_replace, replace_range, del_range_2):
13582 Do not check whether undo is enabled because record_insert and
13583 record_delete does that themselves.
13584
13585 2013-08-02 Dmitry Antipov <dmantipov@yandex.ru>
13586
13587 * xterm.h (struct x_output) [HAVE_X_I18N]: Remove xic_base_fontname
13588 member which is not really used any more.
13589 (FRAME_XIC_BASE_FONTNAME): Remove.
13590 * xfns.c (xic_free_fontset): Adjust user.
13591 * xmenu.c (mouse_position_for_popup, x_activate_menubar)
13592 (update_frame_menubar, set_frame_menubar, free_frame_menubar)
13593 (create_and_show_popup_menu, xmenu_show, create_and_show_dialog)
13594 (xdialog_show): Use eassert for debugging check.
13595 * w32term.c (x_unfocus_frame): Remove unused dummy function.
13596
13597 2013-08-01 Paul Eggert <eggert@cs.ucla.edu>
13598
13599 * fileio.c, fns.c (merge): Move extern decl from here ...
13600 * lisp.h (merge): ... to here.
13601
13602 2013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
13603
13604 Fix last font-related change.
13605 * w32font.h (w32font_list_internal, w32font_match_internal):
13606 Fix prototype.
13607 * w32uniscribe.c (uniscribe_list, uniscribe_match)
13608 (uniscribe_list_family): Adjust to match font API change.
13609 MS-Windows breakage reported by Juanma Barranquero <lekktu@gmail.com>
13610 at http://lists.gnu.org/archive/html/emacs-devel/2013-08/msg00006.html.
13611
13612 2013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
13613
13614 * frame.h (FRAME_MOUSE_UPDATE):
13615 * nsterm.m (ns_frame_up_to_date): Omit redundant check
13616 whether hlinfo->mouse_face_mouse_frame is non-NULL.
13617
13618 2013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
13619
13620 Avoid redundant Lisp_Object <-> struct frame conversions in font API.
13621 * font.h (struct font_driver): Change list, match, and list_family
13622 functions to accept struct frame * as first arg.
13623 * font.c (font_score, font_compare, font_sort_entities):
13624 Remove prototypes.
13625 (font_sort_entities, font_list_entities, font_select_entity)
13626 (font_find_for_lface, Flist_fonts, Ffont_family_list): Adjust to
13627 match font API change.
13628 * xfont.c (xfont_list, xfont_match, xfont_list_family):
13629 * ftfont.c (ftfont_list, ftfont_match, ftfont_list_family):
13630 * ftxfont.c (ftxfont_list, ftxfont_match):
13631 * xftfont.c (xftfont_list, xftfont_match):
13632 * nsfont.m (nsfont_list, nsfont_match, nsfont_list_family):
13633 * w32font.c (w32font_list, w32font_match, w32font_list)
13634 (w32font_list_internal, w32_font_match_internal): Likewise.
13635 * xfaces.c (Fx_family_fonts): Adjust user.
13636
13637 2013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
13638
13639 Do not use pure Xism x_wm_set_icon_position in non-X ports.
13640 * frame.c (x_set_frame_parameters): Call to x_wm_set_icon_position
13641 only if HAVE_X_WINDOWS is in use.
13642 * frame.h (x_set_frame_parameters): Move under HAVE_X_WINDOWS.
13643 * nsterm.m (x_wm_set_icon_position): Remove no-op.
13644 * w32term.c (x_wm_set_icon_position): Likewise.
13645 * w32fns.c (x_icon): Adjust user.
13646
13647 2013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
13648
13649 * xterm.c (last_mouse_press_frame): Remove the
13650 leftover which is not really used any more.
13651 (handle_one_xevent, syms_of_xterm): Adjust users.
13652 (x_flush): Call XFlush once per each X display, not frame.
13653 This is better because this code always unconditionally skips
13654 non-X frames in Vframe_list and issues the only XFlush if we
13655 have more than one X frame on the same X display.
13656 (any_help_event_p, x_draw_glyph_string_background, x_display_ok):
13657 Use bool for booleans.
13658 (x_draw_glyph_string_background, cvt_string_to_pixel)
13659 (cvt_pixel_dtor): Drop unnecessary prototypes.
13660 * xterm.h (x_display_ok): Adjust prototype.
13661
13662 2013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
13663
13664 Drop unnecessary functions that deals with frame pixel size.
13665 * frame.h, msdos.h, w32term.h, xterm.h (x_pixel_width)
13666 (x_pixel_height): Drop prototypes.
13667 * msdos.c, nsfns.m, w32fns.c, xfns.c (x_pixel_width)
13668 (x_pixel_height): Drop implementations.
13669 * frame.c (Fframe_pixel_height): Use FRAME_PIXEL_HEIGHT
13670 which should be always valid for window frame.
13671 (Frame_pixel_width): Likewise with FRAME_PIXEL_WIDTH.
13672 * w32menu.c (Fx_popup_dialog):
13673 * xmenu.c (Fx_popup_dialog): Likewise for both.
13674
13675 2013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
13676
13677 * frame.c (Fmake_terminal_frame): Use store_in_alist to setup
13678 frame parameters and call to Fmodify_frame_parameters just once.
13679 (Fset_frame_height, Fset_frame_width): Mention nil frame in docstring.
13680 (Fset_frame_size, Fset_frame_position): Use decode_live_frame
13681 and mention nil frame in docstring.
13682
13683 2013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
13684
13685 * frame.c (make_frame, x_set_frame_parameters): Use bool for boolean.
13686 (x_figure_window_size): Likewise. Adjust to return long.
13687 (syms_of_frame): Do not DEFSYM Qterminal_live_p.
13688 (toplevel): Move Qterminal_live_p to...
13689 * terminal.c (toplevel): ...here, make it static, and...
13690 (syms_of_terminal): ...DEFSYM here.
13691 * frame.h (Qterminal_live_p): Remove declaration.
13692 (make_frame, x_figure_window_size): Adjust prototype.
13693 * nsfns.m (Fx_create_frame): Use long for window flags.
13694
13695 2013-07-30 Paul Eggert <eggert@cs.ucla.edu>
13696
13697 Fix tempfile bug on platforms lacking mkostemp and mkstemp (Bug#14986).
13698 * callproc.c (create_temp_file) [! (HAVE_MKOSTEMP || HAVE_MKSTEMP)]:
13699 Do not assume that emacs_close (INT_MAX) is a no-op.
13700
13701 2013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
13702
13703 * xfaces.c (make_face_cache): For struct face_cache, prefer
13704 xmalloc to xzalloc and so avoid redundant call to memset.
13705 (Finternal_set_lisp_face_attribute): Fix comment typo and style.
13706
13707 2013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
13708
13709 * fringe.c (draw_window_fringes, update_window_fringes)
13710 (compute_fringe_widths):
13711 * w32term.c (x_draw_glyph_string):
13712 * window.c (candidate_window_p, Frecenter):
13713 * xfaces.c (realize_basic_faces, realize_default_face)
13714 (Fbitmap_space_p, Finternal_set_lisp_face_attribute)
13715 (x_update_menu_appearance, face_attr_equal_p, lface_equal_p):
13716 * xfns.c (x_set_cursor_color, xic_free_xfontset):
13717 * xmenu.c (Fx_menu_bar_open_internal):
13718 * xselect.c (x_reply_selection_request, Fx_get_atom_name):
13719 * xsettings.c (xft_settings_event):
13720 * xterm.c (x_draw_glyph_string, x_had_errors_p):
13721 Use bool for booleans. Adjust style and comments where
13722 appropriate.
13723 * dispextern.h (draw_window_fringes, update_window_fringes)
13724 (compute_fringe_widths):
13725 * xterm.h (x_had_errors_p): Adjust prototype.
13726
13727 2013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
13728
13729 * frame.c (Fmodify_frame_parameters): Always check 2nd arg with
13730 CHECK_LIST. Rewrite the loop to avoid useless local variable.
13731
13732 2013-07-29 Dmitry Antipov <dmantipov@yandex.ru>
13733
13734 * fns.c (toplevel): Remove comment before Fsafe_length because
13735 it checks for QUIT.
13736
13737 2013-07-28 Paul Eggert <eggert@cs.ucla.edu>
13738
13739 * frame.c (delete_frame): Avoid unnecessary 'this_f' test (Bug#14970).
13740
13741 2013-07-28 Eli Zaretskii <eliz@gnu.org>
13742
13743 * w32fns.c (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Make sure the
13744 frame which got the message is still alive, before dereferencing
13745 its pointer. (Bug#14970)
13746
13747 * frame.c (delete_frame): Test "this" frame's minibuffer window to
13748 be a live window, before using it as such. (Bug#14970)
13749
13750 2013-07-27 Eli Zaretskii <eliz@gnu.org>
13751
13752 * w32term.c (w32_read_socket) <WM_KILLFOCUS>: Call
13753 w32_detect_focus_change instead of doing part of its job by hand.
13754 This fixes the problem whereby FOCUS_OUT events were not sent to
13755 the event queue.
13756
13757 2013-07-26 Eli Zaretskii <eliz@gnu.org>
13758
13759 * process.c (Fprocess_list): Doc fix.
13760
13761 * w32term.c (w32_read_socket) <WM_EMACS_PAINT>: Warn about frame
13762 being re-exposed only if it didn't ask to become visible.
13763 <WM_SIZE>: Under SIZE_RESTORED, only set the frame visible if it
13764 was previously iconified. (Bug#14841)
13765 (x_iconify_frame): Mark the frame iconified.
13766
13767 2013-07-26 Paul Eggert <eggert@cs.ucla.edu>
13768
13769 Fix minor problems found by static checking.
13770 * eval.c (get_backtrace_frame, backtrace_eval_unrewind): Now static.
13771 (backtrace_eval_unrewind): ';' -> '{}' to pacify GCC.
13772
13773 2013-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
13774
13775 * eval.c (set_specpdl_old_value): New function.
13776 (unbind_to): Minor simplification.
13777 (get_backtrace_frame): New function.
13778 (Fbacktrace_frame): Use it. Add `base' argument.
13779 (backtrace_eval_unrewind, Fbacktrace_eval): New functions.
13780 (syms_of_eval): Export backtrace-eval.
13781 * xterm.c (x_focus_changed): Simplify.
13782
13783 2013-07-25 Paul Eggert <eggert@cs.ucla.edu>
13784
13785 * fileio.c (Finsert_file_contents): Avoid double-close (Bug#14936).
13786
13787 2013-07-24 Eli Zaretskii <eliz@gnu.org>
13788
13789 * xdisp.c (redisplay_window): Instead of moving point out of
13790 scroll margin, reject the force_start method, and try scrolling
13791 instead. (Bug#14780)
13792
13793 2013-07-24 Ken Brown <kbrown@cornell.edu>
13794
13795 * alloc.c (make_save_ptr): Define if HAVE_NTGUI is defined
13796 (Bug#14944).
13797
13798 2013-07-24 Paul Eggert <eggert@cs.ucla.edu>
13799
13800 * eval.c (Fprogn): Do not check that BODY is a proper list.
13801 This undoes the previous change. The check slows down the
13802 interpreter, and is not needed to prevent a crash. See
13803 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00693.html>.
13804
13805 2013-07-23 Glenn Morris <rgm@gnu.org>
13806
13807 * Makefile.in ($(etc)/DOC, temacs$(EXEEXT)): Ensure etc/ exists.
13808
13809 2013-07-23 Paul Eggert <eggert@cs.ucla.edu>
13810
13811 Port to GNU/Linux systems with tinfo but not ncurses.
13812 * dispnew.c (init_display): Depend on USE_NCURSES, not GNU_LINUX,
13813 to decide whether ncurses is being used. Without this change,
13814 GCC complains about tgetent not being declared, on a system
13815 that has tinfo installed but ncurses not installed.
13816
13817 * eval.c (Fprogn): Check that BODY is a proper list.
13818
13819 Tune UNEVALLED functions by using XCAR instead of Fcar, etc.
13820 * data.c (Fsetq_default):
13821 * eval.c (Fif, Fcond, Fprog1, Fsetq, Fquote, Ffunction, Fdefvar)
13822 (Fdefconst, FletX, Flet, Fwhile, Fcatch, Funwind_protect)
13823 (Fcondition_case):
13824 Tune by taking advantage of the fact that ARGS is always a list
13825 when a function is declared to have UNEVALLED args.
13826
13827 * emacsgtkfixed.c: Port to GCC 4.6.
13828 GCC 4.6 complains about -Wunused-local-typedefs, introduced in 4.7.
13829
13830 2013-07-23 Juanma Barranquero <lekktu@gmail.com>
13831
13832 * callproc.c (child_setup)[!WINDOWSNT]: Move exec_errno and pid
13833 here to silence compiler warnings.
13834
13835 2013-07-22 Paul Eggert <eggert@cs.ucla.edu>
13836
13837 * sysdep.c (frame) [__FreeBSD__]: #define to freebsd_frame
13838 when including <sys/user.h>, to prevent Sparc/ARM machine/frame.h
13839 from messing up Emacs's 'struct frame' (Bug#14923).
13840
13841 2013-07-21 Paul Eggert <eggert@cs.ucla.edu>
13842
13843 * alloc.c (make_save_ptr_ptr): Define this function.
13844 It was inadvertently omitted. It's needed only if
13845 HAVE_MENUS && ! (USE_X_TOOLKIT || USE_GTK).
13846
13847 2013-07-21 Jan Djärv <jan.h.d@swipnet.se>
13848
13849 * nsterm.m (sendEvent:): Skip mouse moved if no dialog and no Emacs
13850 frame have focus (Bug#14895).
13851
13852 2013-07-21 Paul Eggert <eggert@cs.ucla.edu>
13853
13854 Avoid vfork-related deadlock more cleanly.
13855 * callproc.c (child_setup): When the child's exec fails, output
13856 the program name, as that's more useful. Use O_NONBLOCK to avoid
13857 deadlock.
13858 * process.c (create_process_1): Remove; no longer needed.
13859 (create_process): Remove timer hack; no longer needed, now that
13860 the child avoids deadlock.
13861
13862 2013-07-20 Glenn Morris <rgm@gnu.org>
13863
13864 * image.c (Fimage_flush): Fix doc typo.
13865
13866 2013-07-20 Paul Eggert <eggert@cs.ucla.edu>
13867
13868 Fix array bounds violation when pty allocation fails.
13869 * process.c (PTY_NAME_SIZE): New constant.
13870 (pty_name): Remove static variable; it's now auto.
13871 (allocate_pty): Define even if !HAVE_PTYS; that's simpler.
13872 Take pty_name as an arg rather than using a static variable.
13873 All callers changed.
13874 (create_process): Recover pty_flag from process, not from volatile local.
13875 (create_pty): Stay inside array even when pty allocation fails.
13876 (Fmake_serial_process): Omit unnecessary initializaiton of pty_flag.
13877
13878 * lread.c (Fload): Avoid initialization only when lint checking.
13879 Mention that it's needed only for older GCCs.
13880
13881 2013-07-20 Kenichi Handa <handa@gnu.org>
13882
13883 * coding.c (CODING_ISO_FLAG_LEVEL_4): New macro.
13884 (decode_coding_iso_2022): Check the single-shift area. (Bug#8522)
13885
13886 2013-07-20 Andreas Schwab <schwab@linux-m68k.org>
13887
13888 * lread.c (Fload): Avoid uninitialized warning.
13889
13890 2013-07-19 Paul Eggert <eggert@cs.ucla.edu>
13891
13892 Fix some minor file descriptor leaks and related glitches.
13893 * filelock.c (create_lock_file) [!O_CLOEXEC]: Use fcntl with FD_CLOEXEC.
13894 (create_lock_file): Use write, not emacs_write.
13895 * image.c (slurp_file, png_load_body):
13896 * process.c (Fnetwork_interface_list, Fnetwork_interface_info)
13897 (server_accept_connection):
13898 Don't leak an fd on memory allocation failure.
13899 * image.c (slurp_file): Add a cheap heuristic for growing files.
13900 * xfaces.c (Fx_load_color_file): Block input around the fopen too,
13901 as that's what the other routines do. Maybe input need not be
13902 blocked at all, but it's better to be consistent.
13903 Avoid undefined behavior when strlen is zero.
13904
13905 * alloc.c (staticpro): Avoid buffer overrun on repeated calls.
13906 (NSTATICS): Now a constant; doesn't need to be a macro.
13907
13908 2013-07-19 Richard Stallman <rms@gnu.org>
13909
13910 * coding.c (decode_coding_utf_8): Add simple loop for fast
13911 processing of ASCII characters.
13912
13913 2013-07-19 Paul Eggert <eggert@cs.ucla.edu>
13914
13915 * conf_post.h (RE_TRANSLATE_P) [emacs]: Remove obsolete optimization.
13916
13917 2013-07-19 Eli Zaretskii <eliz@gnu.org>
13918
13919 * keyboard.c (kbd_buffer_get_event): Use Display_Info instead of
13920 unportable 'struct x_display_info'.
13921 (DISPLAY_LIST_INFO): Delete macro: not needed, since Display_Info
13922 is a portable type.
13923
13924 2013-07-19 Paul Eggert <eggert@cs.ucla.edu>
13925
13926 * sysdep.c [GNU_LINUX]: Fix fd and memory leaks and similar issues.
13927 (procfs_ttyname): Don't use uninitialized storage if emacs_fopen
13928 or fscanf fails.
13929 (system_process_attributes): Prefer plain char to unsigned char
13930 when either will do. Clean up properly if interrupted or if
13931 memory allocations fail. Don't assume sscanf succeeds.
13932 Remove no-longer-needed workaround to stop GCC from whining.
13933 Read command-line once, instead of multiple times. Check read status a
13934 bit more carefully.
13935
13936 Fix obscure porting bug with varargs functions.
13937 The code assumed that int is treated like ptrdiff_t in a vararg
13938 function, which is not a portable assumption. There was a similar
13939 -- though these days less likely -- porting problem with various
13940 assumptions that pointers of different types all smell the same as
13941 far as vararg functions is conserved. To make this problem less
13942 likely in the future, redo the API to use varargs functions.
13943 * alloc.c (make_save_value): Remove this vararg function.
13944 All uses changed to ...
13945 (make_save_int_int_int, make_save_obj_obj_obj_obj)
13946 (make_save_ptr_int, make_save_funcptr_ptr_obj, make_save_memory):
13947 New functions.
13948 (make_save_ptr): Rename from make_save_pointer, for consistency with
13949 the above. Define only on platforms that need it. All uses changed.
13950
13951 2013-07-18 Paul Eggert <eggert@cs.ucla.edu>
13952
13953 * keyboard.c: Try to fix typos in previous change.
13954 (DISPLAY_LIST_INFO): New macro.
13955 (kbd_buffer_get_event): Do not access members that are not present
13956 in X11. Revert inadvertent change of "!=" to "=".
13957
13958 2013-07-18 Juanma Barranquero <lekktu@gmail.com>
13959
13960 * keyboard.c (kbd_buffer_get_event):
13961 * w32term.c (x_focus_changed): Port FOCUS_(IN|OUT)_EVENT changes to W32.
13962 Followup to 2013-07-16T11:41:06Z!jan.h.d@swipnet.se.
13963
13964 2013-07-18 Paul Eggert <eggert@cs.ucla.edu>
13965
13966 * filelock.c: Fix unlikely file descriptor leaks.
13967 (get_boot_time_1): Rework to avoid using emacs_open.
13968 This doesn't actually fix a leak, but is better anyway.
13969 (read_lock_data): Use read, not emacs_read.
13970
13971 * doc.c: Fix minor memory and file descriptor leaks.
13972 * doc.c (get_doc_string): Fix memory leak when doc file absent.
13973 (get_doc_string, Fsnarf_documentation):
13974 Fix file descriptor leak on error.
13975
13976 * term.c: Fix minor fdopen-related file descriptor leaks.
13977 * term.c (Fresume_tty) [!MSDOS]: Close fd if fdopen (fd) fails.
13978 (init_tty) [!DOS_NT]: Likewise. Also close fd if isatty (fd) fails.
13979
13980 * charset.c: Fix file descriptor leaks and errno issues.
13981 Include <errno.h>.
13982 (load_charset_map_from_file): Don't leak file descriptor on error.
13983 Use plain record_xmalloc since the allocation is larger than
13984 MAX_ALLOCA; that's simpler here. Simplify test for exhaustion
13985 of entries.
13986 * eval.c (record_unwind_protect_nothing):
13987 * fileio.c (fclose_unwind):
13988 New functions.
13989 * lread.c (load_unwind): Remove. All uses replaced by fclose_unwind.
13990 The replacement doesn't block input, but that no longer seems
13991 necessary.
13992
13993 2013-07-17 Paul Eggert <eggert@cs.ucla.edu>
13994
13995 * lread.c: Fix file descriptor leaks and errno issues.
13996 (Fload): Close some races that leaked fds or streams when 'load'
13997 was interrupted.
13998 (Fload, openp): Report error number of last nontrivial failure to open.
13999 ENOENT counts as trivial.
14000 * eval.c (do_nothing, clear_unwind_protect, set_unwind_protect_ptr):
14001 New functions.
14002 * fileio.c (close_file_unwind): No need to test whether FD is nonnegative,
14003 now that the function is always called with a nonnegative arg.
14004 * lisp.h (set_unwind_protect_ptr, set_unwind_protect_int): Remove.
14005 All uses replaced with ...
14006 (clear_unwind_protect, set_unwind_protect_ptr): New decls.
14007
14008 A few more minor file errno-reporting bugs.
14009 * callproc.c (Fcall_process):
14010 * doc.c (Fsnarf_documentation):
14011 * fileio.c (Frename_file, Fadd_name_to_file, Fmake_symbolic_link):
14012 * process.c (set_socket_option):
14013 Don't let a constructor trash errno.
14014 * doc.c: Include <errno.h>.
14015
14016 2013-07-16 Juanma Barranquero <lekktu@gmail.com>
14017
14018 * w32fns.c (unwind_create_tip_frame): Fix declaration.
14019
14020 2013-07-16 Paul Eggert <eggert@cs.ucla.edu>
14021
14022 Fix w32 bug with call-process-region (Bug#14885).
14023 * callproc.c (Fcall_process_region): Pass nil, not "/dev/null",
14024 to Fcall_process when the input is empty. This simplifies the
14025 code a bit. It makes no difference on POSIXish platforms but
14026 apparently it fixes a bug on w32.
14027
14028 Fix bug where insert-file-contents closes a file twice (Bug#14839).
14029 * fileio.c (close_file_unwind): Don't close if FD is negative;
14030 this can happen when unwinding a zapped file descriptor.
14031 (Finsert_file_contents): Unwind-protect the fd before the point marker,
14032 in case Emacs runs out of memory between the two unwind-protects.
14033 Don't trash errno when closing FD.
14034 Zap the FD in the specpdl when closing it, instead of deferring
14035 the removal of the unwind-protect; this fixes a bug where a child
14036 function unwinds the stack past us.
14037
14038 New unwind-protect flavors to better type-check C callbacks.
14039 This also lessens the need to write wrappers for callbacks,
14040 and the need for make_save_pointer.
14041 * alloc.c (free_save_value):
14042 * atimer.c (run_all_atimers):
14043 Now extern.
14044 * alloc.c (safe_alloca_unwind):
14045 * atimer.c (unwind_stop_other_atimers):
14046 * keyboard.c (cancel_hourglass_unwind) [HAVE_WINDOW_SYSTEM]:
14047 * menu.c (cleanup_popup_menu) [HAVE_NS]:
14048 * minibuf.c (choose_minibuf_frame_1):
14049 * process.c (make_serial_process_unwind):
14050 * xdisp.c (pop_message_unwind):
14051 * xselect.c (queue_selection_requests_unwind):
14052 Remove no-longer-needed wrapper. All uses replaced by the wrappee.
14053 * alloc.c (record_xmalloc):
14054 Prefer record_unwind_protect_ptr to record_unwind_protect with
14055 make_save_pointer.
14056 * alloc.c (Fgarbage_collect):
14057 Prefer record_unwind_protect_void to passing a dummy.
14058 * buffer.c (restore_buffer):
14059 * window.c (restore_window_configuration):
14060 * xfns.c, w32fns.c (do_unwind_create_frame)
14061 New wrapper. All record-unwind uses of wrappee changed.
14062 * buffer.c (set_buffer_if_live):
14063 * callproc.c (call_process_cleanup, delete_temp_file):
14064 * coding.c (code_conversion_restore):
14065 * dired.c (directory_files_internal_w32_unwind) [WINDOWSNT]:
14066 * editfns.c (save_excursion_restore)
14067 (subst_char_in_region_unwind, subst_char_in_region_unwind_1)
14068 (save_restriction_restore):
14069 * eval.c (restore_stack_limits, un_autoload):
14070 * fns.c (require_unwind):
14071 * keyboard.c (recursive_edit_unwind, tracking_off):
14072 * lread.c (record_load_unwind, load_warn_old_style_backquotes):
14073 * macros.c (pop_kbd_macro, restore_menu_items):
14074 * nsfns.m (unwind_create_frame):
14075 * print.c (print_unwind):
14076 * process.c (start_process_unwind):
14077 * search.c (unwind_set_match_data):
14078 * window.c (select_window_norecord, select_frame_norecord):
14079 * xdisp.c (unwind_with_echo_area_buffer, unwind_format_mode_line)
14080 (fast_set_selected_frame):
14081 * xfns.c, w32fns.c (unwind_create_tip_frame):
14082 Return void, not a dummy Lisp_Object. All uses changed.
14083 * buffer.h (set_buffer_if_live): Move decl here from lisp.h.
14084 * callproc.c (call_process_kill):
14085 * fileio.c (restore_point_unwind, decide_coding_unwind)
14086 (build_annotations_unwind):
14087 * insdel.c (Fcombine_after_change_execute_1):
14088 * keyboard.c (read_char_help_form_unwind):
14089 * menu.c (unuse_menu_items):
14090 * minibuf.c (run_exit_minibuf_hook, read_minibuf_unwind):
14091 * sound.c (sound_cleanup):
14092 * xdisp.c (unwind_redisplay):
14093 * xfns.c (clean_up_dialog):
14094 * xselect.c (x_selection_request_lisp_error, x_catch_errors_unwind):
14095 Accept no args and return void, instead of accepting and returning
14096 a dummy Lisp_Object. All uses changed.
14097 * cygw32.c (fchdir_unwind):
14098 * fileio.c (close_file_unwind):
14099 * keyboard.c (restore_kboard_configuration):
14100 * lread.c (readevalllop_1):
14101 * process.c (wait_reading_process_output_unwind):
14102 Accept int and return void, rather than accepting an Emacs integer
14103 and returning a dummy object. In some cases this fixes an
14104 unlikely bug when the corresponding int is outside Emacs integer
14105 range. All uses changed.
14106 * dired.c (directory_files_internal_unwind):
14107 * fileio.c (do_auto_save_unwind):
14108 * gtkutil.c (pop_down_dialog):
14109 * insdel.c (reset_var_on_error):
14110 * lread.c (load_unwind):
14111 * xfns.c (clean_up_file_dialog):
14112 * xmenu.c, nsmenu.m (pop_down_menu):
14113 * xmenu.c (cleanup_widget_value_tree):
14114 * xselect.c (wait_for_property_change_unwind):
14115 Accept pointer and return void, rather than accepting an Emacs
14116 save value encapsulating the pointer and returning a dummy object.
14117 All uses changed.
14118 * editfns.c (Fformat): Update the saved pointer directly via
14119 set_unwind_protect_ptr rather than indirectly via make_save_pointer.
14120 * eval.c (specpdl_func): Remove. All uses replaced by definiens.
14121 (unwind_body): New function.
14122 (record_unwind_protect): First arg is now a function returning void,
14123 not a dummy Lisp_Object.
14124 (record_unwind_protect_ptr, record_unwind_protect_int)
14125 (record_unwind_protect_void): New functions.
14126 (unbind_to): Support SPECPDL_UNWIND_PTR etc.
14127 * fileio.c (struct auto_save_unwind): New type.
14128 (do_auto_save_unwind): Use it.
14129 (do_auto_save_unwind_1): Remove; subsumed by new do_auto_save_unwind.
14130 * insdel.c (struct rvoe_arg): New type.
14131 (reset_var_on_error): Use it.
14132 * lisp.h (SPECPDL_UNWIND_PTR, SPECPDL_UNWIND_INT, SPECPDL_UNWIND_VOID):
14133 New constants.
14134 (specbinding_func): Remove; there are now several such functions.
14135 (union specbinding): New members unwind_ptr, unwind_int, unwind_void.
14136 (set_unwind_protect_ptr): New function.
14137 * xselect.c: Remove unnecessary forward decls, to simplify maintenance.
14138
14139 Be simpler and more consistent about reporting I/O errors.
14140 * fileio.c (Fcopy_file, Finsert_file_contents, Fwrite_region):
14141 Say "Read error" and "Write error", rather than "I/O error", or
14142 "IO error reading", or "IO error writing", when a read or write
14143 error occurs.
14144 * process.c (Fmake_network_process, wait_reading_process_output)
14145 (send_process, Fprocess_send_eof, wait_reading_process_output):
14146 Capitalize diagnostics consistently. Put "failed foo" at the
14147 start of the diagnostic, so that we don't capitalize the
14148 function name "foo". Consistently say "failed" for such
14149 diagnostics.
14150 * sysdep.c, w32.c (serial_open): Now accepts Lisp string, not C string.
14151 All callers changed. This is so it can use report_file_error.
14152 * sysdep.c (serial_open, serial_configure): Capitalize I/O
14153 diagnostics consistently as above.
14154
14155 * fileio.c (report_file_errno): Fix errno reporting bug.
14156 If the file name is neither null nor a pair, package it up as a
14157 singleton list. All callers changed, both to this function and to
14158 report_file_error. This fixes a bug where the memory allocator
14159 invoked by list1 set errno so that the immediately following
14160 report_file_error reported the wrong errno value.
14161
14162 Fix minor problems found by --enable-gcc-warnings.
14163 * frame.c (Fhandle_focus_in, Fhandle_focus_out): Return a value.
14164 * keyboard.c (kbd_buffer_get_event): Remove unused local.
14165
14166 2013-07-16 Jan Djärv <jan.h.d@swipnet.se>
14167
14168 * xterm.c (x_focus_changed): Always generate FOCUS_IN_EVENT.
14169 Set event->arg to Qt if switch-event shall be generated.
14170 Generate FOCUS_OUT_EVENT for FocusOut if this is the focused frame.
14171
14172 * termhooks.h (enum event_kind): Add FOCUS_OUT_EVENT.
14173
14174 * nsterm.m (windowDidResignKey): If this is the focused frame, generate
14175 FOCUS_OUT_EVENT.
14176
14177 * keyboard.c (Qfocus_in, Qfocus_out): New static objects.
14178 (make_lispy_focus_in, make_lispy_focus_out): Declare and define.
14179 (kbd_buffer_get_event): For FOCUS_IN, make a focus_in event if no
14180 switch frame event is made. Check ! NILP (event->arg) if X11 (moved
14181 from xterm.c). Make focus_out event for FOCUS_OUT_EVENT if NS or X11
14182 and there is a focused frame.
14183 (head_table): Add focus-in and focus-out.
14184 (keys_of_keyboard): Add focus-in and focus-out to Vspecial_event_map,
14185 bind to handle-focus-in/out.
14186
14187 * frame.c (Fhandle_focus_in, Fhandle_focus_out): New functions.
14188 (Fhandle_switch_frame): Call Fhandle_focus_in.
14189 (syms_of_frame): defsubr handle-focus-in/out.
14190
14191 2013-07-16 Paul Eggert <eggert@cs.ucla.edu>
14192
14193 Fix porting bug to older POSIXish platforms (Bug#14862).
14194 * sysdep.c (emacs_pipe): New function, that implements
14195 pipe2 (fd, O_CLOEXEC) even on hosts that lack O_CLOEXEC.
14196 This should port better to CentOS 5 and to Mac OS X 10.6.
14197 All calls to pipe2 changed.
14198
14199 Prefer list1 (X) to Fcons (X, Qnil) when building lists.
14200 This makes the code easier to read and the executable a bit smaller.
14201 Do not replace all calls to Fcons that happen to create lists,
14202 just calls that are intended to create lists. For example, when
14203 creating an alist that maps FOO to nil, use list1 (Fcons (FOO, Qnil))
14204 rather than list1 (list1 (FOO)) or Fcons (Fcons (FOO, Qnil), Qnil).
14205 Similarly for list2 through list5.
14206 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
14207 * bytecode.c (exec_byte_code):
14208 * callint.c (quotify_arg, Fcall_interactively):
14209 * callproc.c (Fcall_process, create_temp_file):
14210 * charset.c (load_charset_map_from_file)
14211 (Fdefine_charset_internal, init_charset):
14212 * coding.c (get_translation_table, detect_coding_system)
14213 (Fcheck_coding_systems_region)
14214 (Fset_terminal_coding_system_internal)
14215 (Fdefine_coding_system_internal, Fdefine_coding_system_alias):
14216 * composite.c (update_compositions, Ffind_composition_internal):
14217 * dired.c (directory_files_internal, file_name_completion)
14218 (Fsystem_users):
14219 * dispnew.c (Fopen_termscript, bitch_at_user, init_display):
14220 * doc.c (Fsnarf_documentation):
14221 * editfns.c (Fmessage_box):
14222 * emacs.c (main):
14223 * eval.c (do_debug_on_call, signal_error, maybe_call_debugger)
14224 (Feval, eval_sub, Ffuncall, apply_lambda):
14225 * fileio.c (make_temp_name, Fcopy_file, Faccess_file)
14226 (Fset_file_selinux_context, Fset_file_acl, Fset_file_modes)
14227 (Fset_file_times, Finsert_file_contents)
14228 (Fchoose_write_coding_system, Fwrite_region):
14229 * fns.c (Flax_plist_put, Fyes_or_no_p, syms_of_fns):
14230 * font.c (font_registry_charsets, font_parse_fcname)
14231 (font_prepare_cache, font_update_drivers, Flist_fonts):
14232 * fontset.c (Fset_fontset_font, Ffontset_info, syms_of_fontset):
14233 * frame.c (make_frame, Fmake_terminal_frame)
14234 (x_set_frame_parameters, x_report_frame_params)
14235 (x_default_parameter, Fx_parse_geometry):
14236 * ftfont.c (syms_of_ftfont):
14237 * image.c (gif_load):
14238 * keyboard.c (command_loop_1):
14239 * keymap.c (Fmake_keymap, Fmake_sparse_keymap, access_keymap_1)
14240 (Fcopy_keymap, append_key, Fcurrent_active_maps)
14241 (Fminor_mode_key_binding, accessible_keymaps_1)
14242 (Faccessible_keymaps, Fwhere_is_internal):
14243 * lread.c (read_emacs_mule_char):
14244 * menu.c (find_and_return_menu_selection):
14245 * minibuf.c (get_minibuffer):
14246 * nsfns.m (Fns_perform_service):
14247 * nsfont.m (ns_script_to_charset):
14248 * nsmenu.m (ns_popup_dialog):
14249 * nsselect.m (ns_get_local_selection, ns_string_from_pasteboard)
14250 (Fx_own_selection_internal):
14251 * nsterm.m (append2):
14252 * print.c (Fredirect_debugging_output)
14253 (print_prune_string_charset):
14254 * process.c (Fdelete_process, Fprocess_contact)
14255 (Fformat_network_address, set_socket_option)
14256 (read_and_dispose_of_process_output, write_queue_push)
14257 (send_process, exec_sentinel):
14258 * sound.c (Fplay_sound_internal):
14259 * textprop.c (validate_plist, add_properties)
14260 (Fput_text_property, Fadd_face_text_property)
14261 (copy_text_properties, text_property_list, syms_of_textprop):
14262 * unexaix.c (report_error):
14263 * unexcoff.c (report_error):
14264 * unexsol.c (unexec):
14265 * xdisp.c (redisplay_tool_bar, store_mode_line_string)
14266 (Fformat_mode_line, syms_of_xdisp):
14267 * xfaces.c (set_font_frame_param)
14268 (Finternal_lisp_face_attribute_values)
14269 (Finternal_merge_in_global_face, syms_of_xfaces):
14270 * xfns.c (x_default_scroll_bar_color_parameter)
14271 (x_default_font_parameter, x_create_tip_frame):
14272 * xfont.c (xfont_supported_scripts):
14273 * xmenu.c (Fx_popup_dialog, xmenu_show, xdialog_show)
14274 (menu_help_callback, xmenu_show):
14275 * xml.c (make_dom):
14276 * xterm.c (set_wm_state):
14277 Prefer list1 (FOO) to Fcons (FOO, Qnil) when creating a list,
14278 and similarly for list2 through list5.
14279
14280 2013-07-15 Paul Eggert <eggert@cs.ucla.edu>
14281
14282 * callproc.c (Fcall_process_region): Fix minor race and tune.
14283 (create_temp_file): New function, with the temp-file-creation part
14284 of the old Fcall_process_region. Use Fcopy_sequence to create the
14285 temp file name, rather than alloca + build_string, for simplicity.
14286 Don't bother to block input around the temp file creation;
14287 shouldn't be needed. Simplify use of mktemp.
14288 Use record_unwind_protect immediately after creating the temp file;
14289 this closes an unlikely race where the temp file was not removed.
14290 Use memcpy rather than an open-coded loop.
14291 (Fcall_process_region): Use the new function. If the input is
14292 empty, redirect from /dev/null rather than from a newly created
14293 empty temp file; this avoids unnecessary file system traffic.
14294
14295 2013-07-14 Paul Eggert <eggert@cs.ucla.edu>
14296
14297 * filelock.c (create_lock_file) [!HAVE_MKOSTEMP && !HAVE_MKSTEMP]:
14298 Simplify by making this case like the other two. This is a bit
14299 slower on obsolete hosts, but the extra complexity isn't worth it.
14300
14301 * callproc.c (child_setup, relocate_fd) [!DOS_NT]:
14302 * process.c (create_process) [!DOS_NT]:
14303 Remove now-unnecessary calls to emacs_close.
14304
14305 2013-07-13 Eli Zaretskii <eliz@gnu.org>
14306
14307 * w32term.c (x_draw_hollow_cursor): Delete the brush object when
14308 returning early. (Bug#14850)
14309
14310 * coding.c (syms_of_coding): Set up inhibit-null-byte-detection
14311 and inhibit-iso-escape-detection attributes of 'undecided'.
14312 (Bug#14822)
14313
14314 2013-07-13 Paul Eggert <eggert@cs.ucla.edu>
14315
14316 * deps.mk (sysdep.o): Remove dependency on ../lib/ignore-value.h.
14317 Reported by Herbert J. Skuhra in
14318 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00455.html>.
14319
14320 Don't lose top specpdl entry when memory is exhausted.
14321 * eval.c (grow_specpdl): Increment specpdl top by 1 and check for
14322 specpdl overflow here, to simplify callers; all callers changed.
14323 Always reserve an unused entry at the stack top; this avoids
14324 losing the top entry's information when memory is exhausted.
14325
14326 2013-07-12 Paul Eggert <eggert@cs.ucla.edu>
14327
14328 Clean up errno reporting and fix some errno-reporting bugs.
14329 * callproc.c (Fcall_process):
14330 * fileio.c (Fcopy_file, Finsert_file_contents, Fwrite_region):
14331 * process.c (create_process, Fmake_network_process):
14332 * unexaix.c (report_error):
14333 * unexcoff.c (report_error):
14334 Be more careful about reporting the errno of failed operations.
14335 The code previously reported the wrong errno sometimes.
14336 Also, prefer report_file_errno to setting errno + report_file_error.
14337 (Fcall_process): Look at openp return value rather than at path,
14338 as that's a bit faster and clearer when there's a numeric predicate.
14339 * fileio.c (report_file_errno): New function, with most of the
14340 old contents of report_file_error.
14341 (report_file_error): Use it.
14342 (Ffile_exists_p, Ffile_accessible_directory_p):
14343 Set errno to 0 when it is junk.
14344 * fileio.c (Faccess_file):
14345 * image.c (x_create_bitmap_from_file):
14346 Use faccessat rather than opening the file, to avoid the hassle of
14347 having a file descriptor open.
14348 * lisp.h (report_file_errno): New decl.
14349 * lread.c (Flocate_file_internal): File descriptor 0 is valid, too.
14350
14351 Minor EBADF fixes.
14352 * process.c (create_process, wait_reading_process_output) [AIX]:
14353 Remove obsolete SIGHUP-related code, as Emacs no longer disables
14354 SIGHUP, so EBADF is no longer acceptable here (it wouldn't work in
14355 a multithreaded environment anyway).
14356 * sysdep.c (emacs_close): It's not dangerous to invoke emacs_close (-1).
14357
14358 2013-07-12 Andreas Schwab <schwab@linux-m68k.org>
14359
14360 * image.c (x_find_image_file): Don't close a remote file handle.
14361
14362 2013-07-12 Paul Eggert <eggert@cs.ucla.edu>
14363
14364 Fix races with threads and file descriptors.
14365 * callproc.c (Fcall_process_region):
14366 * dired.c (open_directory):
14367 * emacs.c (main, Fdaemon_initialized):
14368 * image.c (x_find_image_file):
14369 * inotify.c (Finotify_rm_watch):
14370 * lread.c (Flocate_file_internal):
14371 * process.c (Fnetwork_interface_list, Fnetwork_interface_info):
14372 * term.c (term_mouse_moveto, init_tty):
14373 * termcap.c (tgetent):
14374 * unexaix.c, unexcoff.c (report_error, report_error_1, adjust_lnnoptrs)
14375 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c (unexec):
14376 * unexhp9k800.c, unexmacosx.c (unexec):
14377 * callproc.c (Fcall_process_region):
14378 Use emacs_close, not close.
14379 * sysdep.c (POSIX_CLOSE_RESTART, posix_close) [!POSIX_CLOSE_RESTART]:
14380 New macro and function, which emulates the POSIX_CLOSE_RESTART macro
14381 and posix_close function on current platforms (which all lack them).
14382 (emacs_close): Use it. This should fix the races on GNU/Linux and
14383 on AIX and on future platforms that support POSIX_CLOSE_RESTART,
14384 and it should avoid closing random victim file descriptors on
14385 other platforms.
14386
14387 2013-07-11 Paul Eggert <eggert@cs.ucla.edu>
14388
14389 * inotify.c (uninitialized): Remove. All uses replaced by -1.
14390 (Finotify_add_watch): Simplify, since -1 means uninitialized now.
14391 Touch up doc a bit.
14392
14393 * eval.c (backtrace_function, backtrace_args): Now EXTERNALLY_VISIBLE.
14394 This is for .gdbinit xbacktrace.
14395
14396 * sysdep.c, term.c, termcap.c, terminal.c: Integer-related minor fixes.
14397 * sysdep.c (emacs_get_tty): Return void, since nobody uses the value.
14398 (emacs_set_tty): Now static.
14399 * sysdep.c (emacs_set_tty, tabs_safe_p, emacs_close):
14400 * term.c (tty_capable_p, tty_default_color_capabilities)
14401 (get_tty_terminal, term_mouse_movement)
14402 (handle_one_term_event, init_tty, maybe_fatal):
14403 * termcap.c (tgetst1, struct termcap_buffer, valid_filename_p)
14404 (tgetent, scan_file, name_match, compare_contin):
14405 * terminal.c (get_terminal):
14406 Use bool for boolean.
14407 * sysdep.c (init_system_name): Don't overflow stack on huge hostname.
14408 Prefer char to unsigned char if either will do.
14409 * term.c (OUTPUT, turn_on_face): Omit unnecessary casts to int.
14410 (tty_write_glyphs): Prefer int to unsigned.
14411 (produce_glyphless_glyph): Remove 2nd (unused) int arg.
14412 All callers changed.
14413 * termcap.c (tprint, main) [TEST]: Remove non-working test.
14414
14415 2013-07-10 Paul Eggert <eggert@cs.ucla.edu>
14416
14417 Port to C89.
14418 * bytecode.c (BYTE_CODE_THREADED): Do not define if __STRICT_ANSI__.
14419 (B__dummy__): New dummy symbol, to pacify C89.
14420 * dbusbind.c (XD_DEBUG_MESSAGE): Omit debugging on C89 hosts, since
14421 they can't grok varargs macros.
14422 * dispnew.c (add_window_display_history)
14423 (add_frame_display_history):
14424 * print.c (print_object):
14425 * xdisp.c (debug_method_add):
14426 Use %p printf format only for void pointers.
14427 * emacs.c (usage_message): New constant, replacing ...
14428 (USAGE1, USAGE2, USAGE3): Remove; they were too long for C89.
14429 (main): Adjust to usage reorg.
14430 * fns.c (syms_of_fns):
14431 * profiler.c (syms_of_profiler):
14432 Don't use non-constant struct initializers.
14433 * gnutls.h (gnutls_initstage_t):
14434 * lisp.h (enum Lisp_Fwd_Type):
14435 * lread.c (lisp_file_lexically_bound_p):
14436 * xsettings.c (anonymous enum):
14437 Remove trailing comma.
14438 * xsettings.c (apply_xft_settings): Use %f, not %lf; %lf is a C99ism.
14439 * lisp.h (ENUM_BF): Use unsigned if pedantic.
14440 (DEFUN_FUNCTION_INIT): New macro, that falls back on a cast if pre-C99.
14441 (DEFUN): Use it.
14442 * regex.c (const_re_char): New type, to pacify strict C89.
14443 All uses of 'const re_char' replaced to use it.
14444 * regex.h (_Restrict_): Rename from __restrict, to avoid clash
14445 with glibc when strict C89. This change is imported from gnulib.
14446 All uses changed.
14447 (_Restrict_arr_): Rename from __restrict_arr, similarly.
14448 * sysdep.c (time_from_jiffies) [!HAVE_LONG_LONG_INT]:
14449 Omit GNU_LINUX implementation, since it requires long long.
14450 * xterm.c (x_draw_underwave):
14451 Do not assume the traditional order of struct's members.
14452 (x_term_init): Rewrite to avoid the need for non-constant structure
14453 initializers.
14454
14455 Syntax cleanup, mostly replacing macros with functions.
14456 This removes the need for the syntax_temp hack.
14457 * search.c: Include syntax.h after buffer.h, since syntax.h uses BVAR.
14458 * syntax.c (SYNTAX_INLINE): New macro.
14459 (SYNTAX_FLAGS_COMSTART_FIRST, SYNTAX_FLAGS_COMSTART_SECOND)
14460 (SYNTAX_FLAGS_COMEND_FIRST, SYNTAX_FLAGS_COMEND_SECOND)
14461 (SYNTAX_FLAGS_PREFIX, SYNTAX_FLAGS_COMMENT_STYLEB)
14462 (SYNTAX_FLAGS_COMMENT_STYLEC, SYNTAX_FLAGS_COMMENT_STYLEC2)
14463 (SYNTAX_FLAGS_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_STYLE)
14464 (SYNTAX_COMEND_FIRST): Now functions, not macros.
14465 (ST_COMMENT_STYLE, ST_STRING_STYLE, INTERVALS_AT_ONCE):
14466 Now constants, not macros.
14467 (syntax_temp) [!__GNUC__]: Remove.
14468 (SYNTAX_PREFIX): Remove; all uses replaced by syntax_prefix_flag_p.
14469 (syntax_prefix_flag_p): Move implementation of SYNTAX_PREFIX here.
14470 (SET_RAW_SYNTAX_ENTRY, SET_RAW_SYNTAX_ENTRY_RANGE, SYNTAX_MATCH)
14471 (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT):
14472 Move here from syntax.h; now functions, not macros. Except for the
14473 last function, these are static since only syntax.c uses them.
14474 (syntax_multibyte): Rename from SYNTAX_WITH_MULTIBYTE_CHECK.
14475 All uses changed. Now a function, not a macro; use this fact
14476 to simplify the code.
14477 (scan_lists, scan_sexps_forward): Remove workarounds for ancient
14478 compiler bugs; no longer relevant.
14479 * syntax.h: Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
14480 (SYNTAX_INLINE): New macro.
14481 (struct gl_state_s, gl_state): Move earlier, so that it's in scope
14482 for the new functions. Use bool for boolean member.
14483 (SYNTAX_ENTRY, SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH)
14484 (SYNTAX_TABLE_BYTE_TO_CHAR, UPDATE_SYNTAX_TABLE_FORWARD)
14485 (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE)
14486 (SETUP_BUFFER_SYNTAX_TABLE):
14487 Now extern inline functions, not macros.
14488 (CURRENT_SYNTAX_TABLE, SYNTAX_ENTRY_INT):
14489 Remove; all uses replaced by implementation.
14490 (syntax_temp) [!__GNUC__]: Remove decl.
14491 (SETUP_SYNTAX_TABLE_FOR_OBJECT): New decl.
14492
14493 2013-07-10 Jan Djärv <jan.h.d@swipnet.se>
14494
14495 * emacs.c (main): Fix syntax error.
14496
14497 2013-07-10 Paul Eggert <eggert@cs.ucla.edu>
14498
14499 Timestamp fixes for undo (Bug#14824).
14500 * atimer.c (schedule_atimer):
14501 * fileio.c (Ffile_newer_than_file_p):
14502 Minor cleanup: use EMACS_TIME_LT so that we can remove EMACS_TIME_GT.
14503 * buffer.c (buffer-undo-list): Document (t . 0) and (t . -1).
14504 * fileio.c (Fclear_visited_file_modtime): Move to lisp/files.el.
14505 (syms_of_fileio): Remove Sclear_visited_file_name.
14506 (Fvisited_file_modtime): Return -1, not (-1 ...), when the visited
14507 file doesn't exist; this avoids an ambiguity with negative timestamps.
14508 (Fset_visited_file_modtime): Accept -1 and 0 as time-list arg.
14509 * systime.h (make_emacs_time, invalid_emacs_time):
14510 Don't assume struct timespec layout; POSIX doesn't guarantee it.
14511 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE): Remove.
14512 * undo.c (record_first_change): Push (visited-file-modtime) onto
14513 undo list rather than reimplementing it by hand, incorrectly.
14514
14515 2013-07-09 Ken Brown <kbrown@cornell.edu>
14516
14517 * sheap.c (STATIC_HEAP_SIZE) [__x86_64__]: Increase to 18MB.
14518
14519 2013-07-09 Juanma Barranquero <lekktu@gmail.com>
14520
14521 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/sysdep.$(O)): Update.
14522
14523 2013-07-09 Paul Eggert <eggert@cs.ucla.edu>
14524
14525 Handle errno and exit status a bit more carefully.
14526 * callproc.c (child_setup) [!DOS_NT]: Don't try to stuff an error
14527 number into an exit status. Instead, use EXIT_CANCELED.
14528 (child_setup) [!MSDOS]: Avoid possible deadlock with vfork.
14529 * callproc.c (relocate_fd):
14530 * emacs.c (close_output_streams, main):
14531 * process.c (create_process):
14532 * sysdep.c (sys_subshell) [!DOS_NT || !WINDOWSNT]:
14533 Use emacs_perror for simplicity.
14534 * callproc.c (relocate_fd, main):
14535 * sysdep.c (sys_subshell):
14536 Exit with EXIT_CANCELED etc., not 1, when exec setup fails.
14537 (shut_down_emacs): Use emacs_write, not write.
14538 * emacs.c, sysdep.c: Don't include <ignore-value.h>.
14539 * fileio.c (Fcopy_file, e_write):
14540 * nsterm.m (ns_select):
14541 * process.c (send_process):
14542 * sound.c (vox_write):
14543 Use emacs_write_sig, not emacs_write.
14544 * lisp.h (emacs_write_sig, emacs_perror): New decls.
14545 * process.h (EXIT_CANCELED), EXIT_CANNOT_INVOKE, EXIT_ENOENT):
14546 New constants.
14547 * sysdep.c (emacs_backtrace): Use emacs_write, not ignore_value
14548 of write.
14549 (emacs_full_write): New function.
14550 (emacs_write): Rewrite to use it.
14551 (emacswrite_sig, emacs_perror): New functions.
14552 * xrdb.c (fatal): Don't invoke perror, since errno might be garbage.
14553
14554 2013-07-08 Magnus Henoch <magnus.henoch@gmail.com> (tiny change)
14555
14556 * image.c (imagemagick_load_image): Do not use MagickExportImagePixels
14557 on NS even if it is present. Pixmap on NS is a void*.
14558
14559 2013-07-07 Paul Eggert <eggert@cs.ucla.edu>
14560
14561 Port to Ubuntu 10 (Bug#14803). Reported by T.V. Raman.
14562 * process.c (close_on_exec, accept4, process_socket):
14563 Define these if !HAVE_ACCEPT4, not if !SOCK_CLOEXEC.
14564
14565 2013-07-07 Eli Zaretskii <eliz@gnu.org>
14566
14567 * w32.c (sys_dup): Declare prototype.
14568
14569 * filelock.c:
14570 * emacs.c:
14571 * callproc.c [WINDOWSNT]: Include sys/socket.h.
14572
14573 2013-07-07 Paul Eggert <eggert@cs.ucla.edu>
14574
14575 Make file descriptors close-on-exec when possible (Bug#14803).
14576 This simplifies Emacs a bit, since it no longer needs to worry
14577 about closing file descriptors by hand in some cases.
14578 It also fixes some unlikely races. Not all such races, as
14579 libraries often open files internally without setting
14580 close-on-exec, but it's an improvement.
14581 * alloc.c (valid_pointer_p) [!WINDOWSNT]:
14582 * callproc.c (Fcall_process) [!MSDOS]:
14583 * emacs.c (main) [!DOS_NT]:
14584 * nsterm.m (ns_term_init):
14585 * process.c (create_process):
14586 Use 'pipe2' with O_CLOEXEC instead of 'pipe'.
14587 * emacs.c (Fcall_process_region) [HAVE_MKOSTEMP]:
14588 * filelock.c (create_lock_file) [HAVE_MKOSTEMP]:
14589 Prefer mkostemp with O_CLOEXEC to mkstemp.
14590 * callproc.c (relocate_fd) [!WINDOWSNT]:
14591 * emacs.c (main): Use F_DUPFD_CLOEXEC, not plain F_DUPFD.
14592 No need to use fcntl (..., F_SETFD, FD_CLOEXEC), since we're
14593 now using pipe2.
14594 * filelock.c (create_lock_file) [! HAVE_MKOSTEMP]:
14595 Make the resulting file descriptor close-on-exec.
14596 * lisp.h, lread.c, process.c (close_load_descs, close_process_descs):
14597 * lread.c (load_descriptor_list, load_descriptor_unwind):
14598 Remove; no longer needed. All uses removed.
14599 * process.c (SOCK_CLOEXEC): Define to 0 if not supplied by system.
14600 (close_on_exec, accept4, process_socket) [!SOCK_CLOEXEC]:
14601 New functions.
14602 (socket) [!SOCK_CLOEXEC]: Supply a substitute.
14603 (Fmake_network_process, Fnetwork_interface_list)
14604 (Fnetwork_interface_info, server_accept_connection):
14605 Make newly-created socket close-on-exec.
14606 * sysdep.c (emacs_open, emacs_fopen):
14607 Make new-created descriptor close-on-exec.
14608 * w32.c (fcntl): Support F_DUPFD_CLOEXEC well enough for Emacs.
14609 * w32.c, w32.h (pipe2): Rename from 'pipe', with new flags arg.
14610
14611 2013-07-07 Jan Djärv <jan.h.d@swipnet.se>
14612
14613 * nsterm.m (sendEvent:): Propagate keyboard events to modal windows
14614 for NS_IMPL_GNUSTEP.
14615
14616 2013-07-07 Paul Eggert <eggert@cs.ucla.edu>
14617
14618 Fix openp errno handling.
14619 * callproc.c (Fcall_process): Preserve openp errno around close.
14620 * lread.c (openp): Set errno when returning -1, as some callers
14621 expect this.
14622
14623 2013-07-06 Jan Djärv <jan.h.d@swipnet.se>
14624
14625 * nsterm.m (sendEvent:): Handle NSAPP_DATA2_RUNFILEDIALOG.
14626
14627 * nsterm.h (NSSavePanel): Update comment.
14628 (NSAPP_DATA2_RUNFILEDIALOG): Define.
14629 (ns_run_file_dialog): Declare.
14630
14631 * nsfns.m: Remove panelOK.
14632 (ns_fd_data): New.
14633 (ns_run_file_dialog): New function.
14634 (Fns_read_file_name): Fill in ns_fd_data, post an event and start the
14635 event loop, so file dialog is popped up by ns_run_file_dialog, called
14636 by sendEvent (Bug#14578).
14637 (EmacsSavePanel, EmacsOpenPanel): Remove ok and cancel methods.
14638
14639 2013-07-06 Eli Zaretskii <eliz@gnu.org>
14640
14641 * xdisp.c (default_line_pixel_height): New function.
14642 (pos_visible_p, move_it_vertically_backward, try_scrolling)
14643 (try_cursor_movement, redisplay_window, try_window)
14644 (try_window_id): Use it instead of FRAME_LINE_HEIGHT. (Bug#14771)
14645
14646 * window.c (window_scroll_pixel_based):
14647 use default_line_pixel_height.
14648
14649 * dispextern.h (default_line_pixel_height): Add prototype.
14650
14651 * frame.c (x_set_line_spacing): Accept a float value for
14652 line-spacing parameter, per the documentation.
14653
14654 * data.c (Fmultibyte_string_p): Doc fix.
14655
14656 2013-07-05 Paul Eggert <eggert@cs.ucla.edu>
14657
14658 Use emacs_open more consistently when opening files.
14659 This handles EINTR more consistently now, and makes it easier
14660 to introduce other uniform changes to file descriptor handling.
14661 * sysstdio.h: New file.
14662 * buffer.c (mmap_init):
14663 * cygw32.c (chdir_to_default_directory):
14664 * dispnew.c (Fopen_termscript):
14665 * emacs.c (Fdaemon_initialized):
14666 * fileio.c (Fdo_auto_save):
14667 * image.c (slurp_file, png_load_body, jpeg_load_body):
14668 * keyboard.c (Fopen_dribble_file):
14669 * lread.c (Fload):
14670 * print.c (Fredirect_debugging_output):
14671 * sysdep.c (get_up_time, procfs_ttyname, procfs_get_total_memory):
14672 * termcap.c (tgetent):
14673 * unexaix.c, unexcoff.c (unexec, adjust_lnnoptrs):
14674 * unexcw.c, unexelf.c, unexhp9k800.c, unexmacosx.c (unexec):
14675 * w32term.c (w32_initialize) [CYGWIN]:
14676 * xfaces.c (Fx_load_color_file):
14677 Use emacs_open instead of plain open, and emacs_fopen instead of
14678 plain fopen.
14679 * dispnew.c, fileio.c, image.c, keyboard.c, lread.c, print.c, sysdep.c:
14680 * xfaces.c: Include sysstdio.h rather than stdio.h, for emacs_fopen.
14681 * callproc.c (default_output_mode): New constant.
14682 (Fcall_process): Use it to call emacs_open instead of plain creat.
14683 * dispnew.c (Fopen_termscript): Fix minor race in opening termscript.
14684 * sysdep.c (emacs_open): Add commentary and don't call file name "path".
14685 (emacs_fopen): New function.
14686 * unexaix.c, unexcoff.c, unexelf.c, unexhp9k800.c, unexmacosx.c:
14687 Include <lisp.h>, for emacs_open.
14688 * unexelf.c (fatal): Remove decl; not needed with <lisp.h> included.
14689
14690 Remove duplicate #include directives.
14691 * alloc.c [GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES]:
14692 * xfaces.c:
14693 Don't include stdio.h twice.
14694 * buffer.c [USE_MMAP_FOR_BUFFERS]:
14695 Don't include sys/types.h or stdio.h twice.
14696 * fileio.c [WINDOWSNT | MSDOS]: Don't include fcntl.h twice.
14697 * lread.c: Don't include coding.h twice.
14698 * nsfont.m: Don't include frame.h twice.
14699 * process.c [HAVE_RES_INIT]: Don't include <netinet/in.h> twice.
14700 * ralloc.c: Don't include <unistd.h> twice.
14701 * xdisp.c: Don't include font.h twice.
14702 * xterm.c: Don't include fontset.h twice.
14703 * xterm.h [USE_X_TOOLKIT]: Don't include X11/StringDefs.h twice.
14704
14705 2013-07-04 Paul Eggert <eggert@cs.ucla.edu>
14706
14707 Scale ImageMagick images more carefully.
14708 * image.c (scale_image_size) [HAVE_IMAGEMAGICK]: New function.
14709 (compute_image_size): Use it. Define only if HAVE_IMAGEMAGICK.
14710 Be more careful about avoiding undefined behavior after
14711 integer overflow and division by zero.
14712
14713 2013-07-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14714
14715 * w32fns.c (Qgeometry, Qworkarea, Qmm_size, Qframes): New variables.
14716 (syms_of_w32fns): DEFSYM them.
14717 (MONITORINFOF_PRIMARY, SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN)
14718 (CCHDEVICENAME): Define macros if not defined.
14719 (struct MONITOR_INFO_EX): New struct.
14720 (MonitorEnum_Proc, EnumDisplayMonitors_Proc): New prototypes.
14721 (enum_display_monitors_fn): New variable.
14722 (globals_of_w32fns): Initialize it.
14723 (Fx_display_pixel_width, Fx_display_pixel_height)
14724 (Fx_display_mm_height, Fx_display_mm_width): Mention behavior on
14725 multi-monitor setups in docstrings.
14726 (Fx_display_mm_height, Fx_display_mm_width): Approximate whole
14727 screen size by primary monitor's millimeter per pixel.
14728 (w32_monitor_enum, w32_display_monitor_attributes_list)
14729 (w32_display_monitor_attributes_list_fallback)
14730 (Fw32_display_monitor_attributes_list): New functions.
14731 (syms_of_w32fns): Defsubr Sw32_display_monitor_attributes_list.
14732
14733 * w32term.c (SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN): Define macros
14734 if not defined.
14735 (x_display_pixel_height, x_display_pixel_width): Use GetSystemMetrics.
14736
14737 2013-07-04 Michael Albinus <michael.albinus@gmx.de>
14738
14739 * fileio.c (Qfile_notify_error): New error symbol.
14740
14741 * gfilenotify.c (Fgfile_add_watch, Fgfile_rm_watch):
14742 * inotify.c (inotify_callback, symbol_to_inotifymask)
14743 (Finotify_add_watch, Finotify_rm_watch): Use it.
14744 (inotifyevent_to_event): Exchange order of cookie and file name.
14745 (Finotify_add_watch): Adapt docstring.
14746
14747 * lisp.h (Qfile_notify_error): Declare.
14748
14749 2013-07-04 Paul Eggert <eggert@cs.ucla.edu>
14750
14751 Try again to fix FreeBSD bug re multithreaded memory alloc (Bug#14569).
14752 * emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
14753 Do not clear _malloc_thread_enabled_p, undoing the previous change,
14754 which did not work (see <http://bugs.gnu.org/14569#307>).
14755 (main): Do not invoke malloc_enable_thread if (! CANNOT_DUMP
14756 && (!noninteractive || initialized)). This attempts to thread
14757 the needle between the Scylla of FreeBSD and the Charybdis of Cygwin.
14758
14759 2013-07-04 Juanma Barranquero <lekktu@gmail.com>
14760
14761 * image.c (x_to_xcolors) [HAVE_NTGUI]: Remove unused var `hdc'.
14762 (x_build_heuristic_mask) [HAVE_NTGUI]: Remove unused var `frame_dc'.
14763
14764 2013-07-04 Paul Eggert <eggert@cs.ucla.edu>
14765
14766 Try to fix FreeBSD bug re multithreaded memory allocation (Bug#14569).
14767 * emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
14768 Clear _malloc_thread_enabled_p at startup. Reported by Ashish SHUKLA in
14769 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00088.html>.
14770
14771 2013-07-02 Paul Eggert <eggert@cs.ucla.edu>
14772
14773 * sysdep.c (sys_siglist) [HAVE_DECL___SYS_SIGLIST]:
14774 Define to __sys_siglist.
14775
14776 2013-07-02 Eli Zaretskii <eliz@gnu.org>
14777
14778 * xdisp.c (IT_OVERFLOW_NEWLINE_INTO_FRINGE): Don't disallow
14779 word-wrap, so that overflow-newline-into-fringe would work in
14780 visual-line-mode. (Bug#2749)
14781 (move_it_in_display_line_to): When the last scanned display
14782 element fits exactly on the display line, and
14783 overflow-newline-into-fringe is non-nil, but wrap_it is valid,
14784 don't return MOVE_NEWLINE_OR_CR, but instead back up to the last
14785 wrap point and return MOVE_LINE_CONTINUED. Fixes problems with
14786 finding buffer position that corresponds to pixel coordinates,
14787 e.g. in buffer_posn_from_coords.
14788
14789 2013-07-02 Jan Djärv <jan.h.d@swipnet.se>
14790
14791 * process.c (handle_child_signal): Call catch_child_signal if
14792 NS_IMPL_GNUSTEP.
14793
14794 2013-07-02 Paul Eggert <eggert@cs.ucla.edu>
14795
14796 Don't convert function pointers to void * and back.
14797 It isn't portable C, and it's easy enough to avoid.
14798 * alloc.c: Verify SAVE_FUNCPOINTER bits, too.
14799 (make_save_value): Add support for SAVE_FUNCPOINTER.
14800 * keymap.c (map_keymap_char_table_item, map_keymap_internal):
14801 * print.c (print_object):
14802 Distinguish function from object pointers.
14803 * lisp.h (SAVE_FUNCPOINTER): New constant.
14804 (SAVE_SLOT_BITS): Adjust to it.
14805 (SAVE_TYPE_FUNCPTR_PTR_OBJ): New constant, replacing
14806 SAVE_TYPE_PTR_PTR_OBJ. Change the only use.
14807 (voidfuncptr): New typedef.
14808 (struct Lisp_Save_Value): New member data[0].funcpointer.
14809 (XSAVE_FUNCPOINTER): New function.
14810
14811 Simplify buildobj processing.
14812 * Makefile.in (buildobj.h): Make it a sequence of strings each
14813 followed by comma, rather than a single string. Put it into a
14814 .tmp file in case there's an error while generating it.
14815 (gl-stamp): Use .tmp for temp files.
14816 (mostlyclean): Clean .tmp files.
14817 * doc.c (buildobj): Move to just the routine that needs it.
14818 It's now an array of strings, so processing is simpler.
14819
14820 2013-07-01 Paul Eggert <eggert@cs.ucla.edu>
14821
14822 Fix bug re noninteractive multithreaded memory allocation (Bug#14569).
14823 * emacs.c (malloc_enable_thread): Hoist extern decl to top level.
14824 (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
14825 Invoke malloc_enable_thread even when not interactive.
14826 Reported by Ken Brown in <http://bugs.gnu.org/14569#275>.
14827 * process.c (init_process_emacs) [CYGWIN]: Tickle glib even
14828 in this case, since the underlying bug has now been fixed.
14829
14830 2013-07-01 Juanma Barranquero <lekktu@gmail.com>
14831
14832 * emacs.c (Fkill_emacs): Expand Vauto_save_list_file_name before
14833 unlinking it (bug#14691).
14834
14835 2013-06-30 Michal Nazarewicz <mina86@mina86.com>
14836
14837 * buffer.c (FKill_buffer): Run `kill-buffer-query-functions'
14838 before checking whether buffer is modified. This lets
14839 `kill-buffer-query-functions' cancel killing of the buffer or save
14840 its content before `kill-buffer' asks user the "Buffer %s
14841 modified; kill anyway?" question.
14842
14843 2013-06-30 Jan Djärv <jan.h.d@swipnet.se>
14844
14845 * nsfns.m (handlePanelKeys): Don't process Command+Function keys.
14846 Let the super performKeyEquivalent deal with them (Bug#14747).
14847
14848 2013-06-30 Paul Eggert <eggert@cs.ucla.edu>
14849
14850 * widget.c (resize_cb): Remove unused local.
14851
14852 Do not use GTK 3 if it exists but cannot be compiled.
14853 * xmenu.c (x_menu_wait_for_event) [!USE_GTK]:
14854 * xterm.c (x_error_handler) [!USE_GTK]:
14855 Do not use GTK 3.
14856
14857 * intervals.c (get_local_map): Actually clip POSITION (Bug#14753).
14858
14859 2013-06-30 Eli Zaretskii <eliz@gnu.org>
14860
14861 * intervals.c (get_local_map): Instead of aborting, clip POSITION
14862 to the valid range of values. (Bug#14753)
14863
14864 * xdisp.c (Fmove_point_visually): Invalidate the cursor position
14865 when moving point by using the current glyph matrix. This avoids
14866 the need to force redisplay when this function is called in a
14867 loop.
14868
14869 2013-06-29 Paul Eggert <eggert@cs.ucla.edu>
14870
14871 Fix minor problems found by static checking.
14872 * coding.c (encode_inhibit_flag, inhibit_flag): New functions.
14873 Redo the latter's body to sidestep GCC parenthesization warnings.
14874 (setup_coding_system, detect_coding, detect_coding_system): Use them.
14875 * coding.c (detect_coding, detect_coding_system):
14876 * coding.h (struct undecided_spec):
14877 Use bool for boolean.
14878 * image.c (QCmax_width, QCmax_height): Now static.
14879 * xdisp.c (Fmove_point_visually): Remove unused local.
14880
14881 2013-06-29 Eli Zaretskii <eliz@gnu.org>
14882
14883 * xdisp.c (Fmove_point_visually): New function.
14884
14885 2013-06-28 Kenichi Handa <handa@gnu.org>
14886
14887 * coding.h (define_coding_undecided_arg_index): New enum.
14888 (coding_attr_index): New members
14889 coding_attr_undecided_inhibit_null_byte_detection,
14890 coding_attr_undecided_inhibit_iso_escape_detection,
14891 coding_attr_undecided_prefer_utf_8.
14892 (undecided_spec): New struct.
14893 (struct coding_system): New member `undecided' of the member
14894 `spec'.
14895
14896 * coding.c (setup_coding_system): Handle CODING->spec.undecided.
14897 (detect_coding): Likewise.
14898 (detect_coding_system): Likewise.
14899 (Fdefine_coding_system_internal): New coding system properties
14900 :inhibit-null-byte-detection, :inhibit-iso-escape-detection, and
14901 :prefer-utf-8.
14902 (syms_of_coding): Adjust for coding_arg_undecided_max.
14903
14904 2013-06-28 Paul Eggert <eggert@cs.ucla.edu>
14905
14906 * image.c (x_from_xcolors): Remove unused local.
14907
14908 2013-06-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14909
14910 Defer image data transfer between X client and server until actual
14911 display happens.
14912
14913 * dispextern.h (struct image) [HAVE_X_WINDOWS]: New members `ximg'
14914 and `mask_img'.
14915
14916 * image.c (Destroy_Image): Remove.
14917 (x_clear_image_1): New arg `flags' instead of 3 bools `pixmap_p',
14918 `mask_p', and `colors_p'. All uses changed.
14919 (x_clear_image_1) [HAVE_X_WINDOWS]: Destroy `ximg' and `mask_img'.
14920 (CLEAR_IMAGE_PIXMAP, CLEAR_IMAGE_MASK, CLEAR_IMAGE_COLORS):
14921 New macros for `flags' arg to x_clear_image_1.
14922 (postprocess_image, xpm_load_image, x_build_heuristic_mask)
14923 (png_load_body): Use x_clear_image_1 instead of Free_Pixmap.
14924 (ZPixmap, XGetImage) [HAVE_NS]: Remove.
14925 (image_get_x_image_or_dc, image_unget_x_image_or_dc)
14926 (image_get_x_image, image_unget_x_image): New functions or macros.
14927 (image_background, image_background_transparent, x_to_xcolors)
14928 (x_build_heuristic_mask): Use image_get_x_image_or_dc instead of
14929 XGetImage or CreateCompatibleDC. Use image_unget_x_image_or_dc
14930 instead of Destroy_Image.
14931 (image_create_x_image_and_pixmap, image_put_x_image): New functions.
14932 (xpm_load_image, x_from_xcolors, x_build_heuristic_mask, pbm_load)
14933 (png_load_body, jpeg_load_body, tiff_load, gif_load)
14934 (imagemagick_load_image, svg_load_image): Use them instead of
14935 x_create_x_image_and_pixmap, and x_put_x_image followed by
14936 x_destroy_x_image, respectively.
14937 (xpm_load) [HAVE_XPM && !HAVE_NTGUI]: Use XpmReadFileToImage and
14938 XpmCreateImageFromBuffer instead of XpmReadFileToPixmap and
14939 XpmCreatePixmapFromBuffer. Create pixmaps. Fill background and
14940 background_transparent fields.
14941 (image_sync_to_pixmaps) [HAVE_X_WINDOWS]: New function.
14942 (prepare_image_for_display, x_disable_image) [HAVE_X_WINDOWS]: Use it.
14943
14944 2013-06-27 Paul Eggert <eggert@cs.ucla.edu>
14945
14946 Do not tickle glib SIGCHLD handling if Cygwin (Bug#14569).
14947 This mostly consists of undoing recent changes.
14948 * callproc.c (Fcall_process):
14949 * process.c (create_process):
14950 Do not worry about catching SIGCHLD here, undoing previous change.
14951 * nsterm.m (ns_term_init): Re-catch SIGCHLD, undoing previous change.
14952 * process.c, process.h (catch_child_signal):
14953 No longer extern if !NS_IMPL_GNUSTEP, undoing 06-22 change.
14954 * process.c (catch_child_handler): Don't worry about being called
14955 lazily and do not assume caller has blocked SIGCHLD, undoing
14956 previous change. Move first-time stuff back to
14957 init_process_emacs, undoing 06-22 change. If CYGWIN, do not
14958 tickle glib, as that causes Cygwin bootstrap to fail. Do not
14959 set lib_child_handler if it's already initialized, which may
14960 help avoid problems on GNUstep.
14961
14962 2013-06-23 Paul Eggert <eggert@cs.ucla.edu>
14963
14964 A more-conservative workaround for Cygwin SIGCHLD issues (Bug#14569).
14965 * callproc.c (Fcall_process):
14966 * process.c (create_process):
14967 Make sure SIGCHLD is caught before we fork,
14968 since Emacs startup no arranges to catch SIGCHLD.
14969 * process.c (lib_child_handler): Initialize to null, not to
14970 dummy_handler.
14971 (catch_child_signal): Allow self to be called lazily.
14972 Do nothing if it's already been called.
14973 Assume caller has blocked SIGCHLD (all callers do now).
14974 * emacs.c (main): Do not catch SIGCHLD here; defer it until
14975 just before it's really needed.
14976 * nsterm.m (ns_term_init): No need to re-catch SIGCHLD here,
14977 since it hasn't been caught yet.
14978
14979 2013-06-23 Lars Magne Ingebrigtsen <larsi@gnus.org>
14980
14981 * image.c (compute_image_size): New function to implement
14982 :max-width and :max-height.
14983 (imagemagick_load_image): Use it.
14984
14985 2013-06-23 Paul Eggert <eggert@cs.ucla.edu>
14986
14987 Try to avoid malloc SEGVs on Cygwin (Bug#14569).
14988 * callproc.c, process.h (block_child_signal, unblock_child_signal):
14989 Now extern.
14990 * emacs.c (main): Catch SIGCHLD just before initializing gfilenotify.
14991 * process.c (catch_child_signal): Block SIGCHLD while futzing with
14992 the SIGCHLD handler, since the code is not atomic and (due to glib)
14993 signals may be arriving now.
14994 * sysdep.c (init_signals): Do not catch child signals here;
14995 'main' now does that later, at a safer time.
14996
14997 2013-06-22 Paul Eggert <eggert@cs.ucla.edu>
14998
14999 Clean up SIGCHLD handling a bit (Bug#14569).
15000 * process.c, process.h (catch_child_signal):
15001 Now always extern, even if !NS_IMPL_GNUSTEP.
15002 * process.c (catch_child_signal): Move glib tickler here from
15003 init_process_emacs, so that it's done earlier in Emacs
15004 initialization. Also move the noninteractive && !initialized
15005 check here from init_process_emacs. This is all a bit cleaner for
15006 GNUish platforms, and I hope it works around the Cygwin bug.
15007 * sysdep.c (init_signals): Invoke catch_child_signal here, so
15008 that glib signal handling is tickled before glib creates threads.
15009
15010 * process.c (wait_reading_process_output): Avoid int overflow
15011 when reading more than 2 GiB total from a process.
15012
15013 2013-06-21 Paul Eggert <eggert@cs.ucla.edu>
15014
15015 * process.c (create_process): Handle a couple more cases,
15016 i.e., work even if new_argv and wait_child_setup[i] are cached.
15017 Use Fcall_process's style for volatile vars.
15018
15019 2013-06-21 Andreas Schwab <schwab@linux-m68k.org>
15020
15021 * process.c (create_process): Mark PROCESS volatile.
15022
15023 2013-06-21 Paul Eggert <eggert@cs.ucla.edu>
15024
15025 Use C99-style flexible array members if available.
15026 This avoids some subtle aliasing issues, which typically
15027 aren't a problem with GCC but may be a problem elsewhere.
15028 * alloc.c (sdata): New typedef, replacing the old struct sdata.
15029 It is a struct if GC_CHECK_STRING_BYTES, a union otherwise.
15030 In either case, it uses a flexible array member rather than
15031 the old struct hack. All uses changed.
15032 (SDATA_NBYTES, sweep_strings) [!GC_CHECK_STRING_BYTES]:
15033 Adjust to sdata reorganization.
15034 * alloc.c (VBLOCK_BYTES_MIN, allocate_vectorlike, Fgarbage_collect):
15035 Use offsetof (struct, flex_array_member), not sizeof (struct), as
15036 that ports better to pre-C99 non-GCC.
15037 * chartab.c (Fmake_char_table, make_sub_char_table, copy_char_table):
15038 Use CHAR_TABLE_STANDARD_SLOTS rather than its definition,
15039 as the latter has changed.
15040 * conf_post.h (FLEXIBLE_ARRAY_MEMBER): Move here from w32.c,
15041 and port better to pre-C99 GCC.
15042 * image.c (struct xpm_cached_color):
15043 * lisp.h (struct Lisp_Vector, struct Lisp_Bool_Vector)
15044 (struct Lisp_Char_Table, struct Lisp_Sub_Char_Table):
15045 Use FLEXIBLE_ARRAY_MEMBER.
15046 * lisp.h (string_bytes) [GC_CHECK_STRING_BYTES]:
15047 Move decl to top level so it gets checked against implementation.
15048 (CHAR_TABLE_STANDARD_SLOTS): Adjust to struct Lisp_Char_Table change.
15049 * w32.c (FLEXIBLE_ARRAY_MEMBER): Move to conf_post.h.
15050
15051 2013-06-20 Paul Eggert <eggert@cs.ucla.edu>
15052
15053 * syntax.c: Integer cleanups.
15054 (SYNTAX_FLAGS_COMMENT_STYLEC): Return a boolean, not 0-or-2.
15055 All uses that need 0-or-2 changed to:
15056 (SYNTAX_FLAGS_COMMENT_STYLEC2): New macro, with the same semantics
15057 as the old SYNTAX_FLAGS_COMMENT_STYLEC.
15058 (struct lisp_parse_state, syntax_prefix_flag_p, update_syntax_table)
15059 (char_quoted, prev_char_comend_first, back_comment)
15060 (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
15061 (in_classes, forw_comment, scan_lists, scan_sexps_forward):
15062 Use bool for boolean.
15063 (update_syntax_table, skip_chars, skip_syntaxes):
15064 Prefer int to unsigned when either will do.
15065 (back_comment): Return boolean success flag, like forw_comment,
15066 instead of positive-or-minus-1 (which might have overflowed int anyway).
15067 Don't stuff ptrdiff_t into int.
15068 (syntax_spec_code, syntax_code_spec): Now const.
15069 (Fmatching_paren, scan_lists, scan_sexps_forward):
15070 Use enum syntaxcode for syntax code.
15071 (Fmatching_paren): Check that arg is a character, not just an integer.
15072 (Fstring_to_syntax): Don't assume 0377 fits in enum syntaxcode.
15073 (Finternal_describe_syntax_value): Omit no-longer-needed
15074 comparison to 0.
15075 (skip_chars): Use char, not unsigned char, when the distinction
15076 doesn't matter.
15077 (forw_comment, scan_lists): Prefer A |= B to A = A || B when B's cheap.
15078 * bytecode.c (exec_byte_code):
15079 * syntax.c (syntax_spec_code, Fchar_syntax)
15080 (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
15081 (init_syntax_once):
15082 * syntax.h (SYNTAX_WITH_FLAGS):
15083 Omit unnecessary casts.
15084
15085 2013-06-20 Eli Zaretskii <eliz@gnu.org>
15086
15087 * w32fns.c (w32_wnd_proc): Don't compute the header line and mode
15088 line dimensions here, to avoid race conditions with the main
15089 thread. (Bug#14062, bug#14630, bug#14669)
15090
15091 * w32term.c (w32_draw_window_cursor): Compute the header line and
15092 mode line dimensions here.
15093 <w32_system_caret_window, w32_system_caret_hdr_height>:
15094 <w32_system_caret_mode_height>: New variables.
15095
15096 * w32term.h: Declare them.
15097
15098 2013-06-20 Paul Eggert <eggert@cs.ucla.edu>
15099
15100 * alloc.c (die): Move "assertion failed" string here ...
15101 * lisp.h (eassert): ... from here. Also, suppress evaluation of
15102 COND when SUPPRESS_CHECKING. This shrinks the executable text
15103 size by 0.8% to 2.2% when configured with --enable-checking,
15104 depending on optimization flags (GCC 4.8.1 x86-64).
15105
15106 * floatfns.c (Flog10): Move to Lisp (marked obsolete there).
15107
15108 2013-06-20 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
15109
15110 * floatfns.c (Flog) [HAVE_LOG2]: Use log2 if available and if the
15111 base is 2; this is more accurate.
15112
15113 2013-06-19 Juanma Barranquero <lekktu@gmail.com>
15114
15115 * sound.c (string_default): Move to !WINDOWSNT section.
15116 (Fplay_sound_internal) [WINDOWSNT]: Remove i_result to avoid warning.
15117
15118 2013-06-19 Paul Eggert <eggert@cs.ucla.edu>
15119
15120 * sound.c: Integer cleanups.
15121 Remove unnecessary forward decls.
15122 (struct sound_device): The 'file' member is now a Lisp_Object, not
15123 a char *, so that we needn't invoke alloca on a huge size.
15124 (Fplay_sound_internal): Adjust to this.
15125 (string_default): New function.
15126 (vox_open, vox_init, alsa_open, alsa_configure, alsa_init):
15127 Use it to adjust to the struct sound_device change.
15128 (parse_sound, wav_init, au_init, alsa_init): Use bool for booleans.
15129 (be2hs) [0]: Remove.
15130
15131 * syntax.c (skip_chars): Don't use uninitialized storage
15132 when searching a multibyte buffer for characters that are not in a
15133 unibyte string that contains non-ASCII characters.
15134
15135 2013-06-18 Jan Djärv <jan.h.d@swipnet.se>
15136
15137 * process.c: Include xgselect.h if HAVE_GLIB. Include glib.h
15138 if HAVE_GLIB && ! WINDOWSNT (Bug#14654).
15139
15140 2013-06-18 Paul Eggert <eggert@cs.ucla.edu>
15141
15142 * conf_post.h: Add comments for INLINE, EXTERN_INLINE, etc.
15143
15144 2013-06-18 Kenichi Handa <handa@gnu.org>
15145
15146 * font.c (Ffont_spec): Signal an error for an invalid font name
15147 (Bug#14648).
15148
15149 2013-06-18 Paul Eggert <eggert@cs.ucla.edu>
15150
15151 Porting fixes for merged specpdl and backtrace stacks (Bug#14643).
15152 In particular this ports to 32-bit sparc Sun cc.
15153 * eval.c (init_eval_once, grow_specpdl): Allocate a specbinding
15154 array with a dummy element at specpdl[-1], so that its address can
15155 be taken portably.
15156 (unbind_to): Do not copy the binding; not needed, now that we
15157 copy old_value in the one place where the copy is needed.
15158 * fileio.c (Fwrite_region): Use ptrdiff_t, not int, for specpdl count.
15159 * lisp.h (BITS_PER_PTRDIFF_T): Remove; no longer needed.
15160 (union specbinding): Rename from struct specbinding. Redo layout
15161 to avoid the need for 'ptrdiff_t nargs : BITS_PER_PTRDIFF_T - 1;',
15162 which is not portable. With Sun C 5.12 32-bit sparc, the
15163 declaration causes nargs to be an unsigned bitfield, a behavior
15164 that the C standard allows; but Emacs wants nargs to be signed.
15165 The overall type is now a union of structures rather than a
15166 structure of union of structures, and the 'kind' member is now a
15167 bitfield, so that the overall type doesn't grow. All uses changed.
15168 * process.c (Fmake_serial_process): Remove unnecessary initialization.
15169
15170 2013-06-17 Paul Eggert <eggert@cs.ucla.edu>
15171
15172 * frame.c (x_report_frame_params): Cast parent_desc to uintptr_t.
15173 Needed if HAVE_NTGUI. Reported by Juanma Barranquero.
15174
15175 * nsfont.m (ns_registry_to_script): Parenthesize while expression.
15176
15177 2013-06-17 Eli Zaretskii <eliz@gnu.org>
15178
15179 * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
15180 unless we know that the window w's frame is a frame object.
15181 Another attempt at solving bug#14062 and bug#14630.
15182
15183 2013-06-17 Lars Magne Ingebrigtsen <larsi@gnus.org>
15184
15185 * textprop.c (property_set_type): New enum.
15186 (add_properties): Allow appending/prepending text properties.
15187 (add_text_properties_1): Factored out of Fadd_text_properties.
15188 (Fadd_text_properties): Move all the code into
15189 add_text_properties_1.
15190 (Fadd_face_text_property): New function that calls
15191 add_text_properties_1.
15192
15193 2013-06-17 Paul Eggert <eggert@cs.ucla.edu>
15194
15195 Move functions from lisp.h to individual modules when possible.
15196 From a suggestion by Andreas Schwab in <http://bugs.gnu.org/11935#68>.
15197 * alloc.c (XFLOAT_INIT, set_symbol_name):
15198 * buffer.c (CHECK_OVERLAY):
15199 * chartab.c (CHECK_CHAR_TABLE, set_char_table_ascii)
15200 (set_char_table_parent):
15201 * coding.c (CHECK_NATNUM_CAR, CHECK_NATNUM_CDR):
15202 * data.c (BOOLFWDP, INTFWDP, KBOARD_OBJFWDP, OBJFWDP, XBOOLFWD)
15203 (XKBOARD_OBJFWD, XINTFWD, XOBJFWD, CHECK_SUBR, set_blv_found)
15204 (blv_value, set_blv_value, set_blv_where, set_blv_defcell)
15205 (set_blv_valcell):
15206 * emacs.c (setlocale) [!HAVE_SETLOCALE]:
15207 * eval.c (specpdl_symbol, specpdl_old_value, specpdl_where)
15208 (specpdl_arg, specpdl_func, backtrace_function, backtrace_nargs)
15209 (backtrace_args, backtrace_debug_on_exit):
15210 * floatfns.c (CHECK_FLOAT):
15211 * fns.c (CHECK_HASH_TABLE, CHECK_LIST_END)
15212 (set_hash_key_and_value, set_hash_next, set_hash_next_slot)
15213 (set_hash_hash, set_hash_hash_slot, set_hash_index)
15214 (set_hash_index_slot):
15215 * keymap.c (CHECK_VECTOR_OR_CHAR_TABLE):
15216 * marker.c (CHECK_MARKER):
15217 * textprop.c (CHECK_STRING_OR_BUFFER):
15218 * window.c (CHECK_WINDOW_CONFIGURATION):
15219 Move here from lisp.h, and make these functions static rather than
15220 extern inline.
15221 * buffer.c (Qoverlayp):
15222 * data.c (Qsubrp):
15223 * fns.c (Qhash_table_p):
15224 * window.c (Qwindow_configuration_p):
15225 Now static.
15226 * lisp.h: Remove the abovementioned defns and decls.
15227
15228 Use functions, not macros, for XINT etc (Bug#11935).
15229 In lisp.h, prefer functions to function-like macros, and
15230 constants to object-like macros, when either will do. This:
15231 . simplifies use, as there's no more need to worry about
15232 arguments' side effects being evaluated multiple times.
15233 . makes the code easier to debug on some platforms.
15234 However, when using gcc -O0, keep using function-like macros
15235 for a few critical operations, for performance reasons.
15236 This sort of thing isn't needed with gcc -Og, but -Og
15237 is a GCC 4.8 feature and isn't widely-enough available yet.
15238 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]:
15239 Remove enum lsb_bits; no longer needed.
15240 (allocate_misc, free_misc): Don't use XMISCTYPE as an lvalue.
15241 * buffer.c (Qoverlap):
15242 * data.c (Qsubrp):
15243 * fns.c (Qhash_table_p):
15244 Now extern, so lisp.h can use these symbols.
15245 * dispextern.h: Include character.h, for MAX_CHAR etc.
15246 (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE)
15247 (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
15248 (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P)
15249 (GLYPH_CODE_P): Move here from lisp.h.
15250 (GLYPH_CHAR, GLYPH_FACE, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
15251 (GLYPH_CHAR_VALID_P, GLYPH_CODE_P): Now functions, not macros.
15252 (GLYPH_MODE_LINE_FACE): Now enums, not macros.
15253 * eval.c (Fautoload): Cast XUNTAG output to intptr_t, since
15254 XUNTAG now returns void *.
15255 * lisp.h (lisp_h_XLI, lisp_h_XIL, lisp_h_CHECK_LIST_CONS)
15256 (lisp_h_CHECK_NUMBER CHECK_SYMBOL, lisp_h_CHECK_TYPE)
15257 (lisp_h_CONSP, lisp_h_EQ, lisp_h_FLOATP, lisp_h_INTEGERP)
15258 (lisp_h_MARKERP, lisp_h_MISCP, lisp_h_NILP)
15259 (lisp_h_SET_SYMBOL_VAL, lisp_h_SYMBOL_CONSTANT_P)
15260 (lisp_h_SYMBOL_VAL, lisp_h_SYMBOLP, lisp_h_VECTORLIKEP)
15261 (lisp_h_XCAR, lisp_h_XCDR, lisp_h_XCONS, lisp_h_XHASH)
15262 (lisp_h_XPNTR, lisp_h_XSYMBOL):
15263 New macros, renamed from their sans-lisp_h_ counterparts.
15264 (XLI, XIL, CHECK_LIST_CONS, CHECK_NUMBER CHECK_SYMBOL)
15265 (CHECK_TYPE, CONSP, EQ, FLOATP, INTEGERP, MARKERP)
15266 (MISCP, NILP, SET_SYMBOL_VAL, SYMBOL_CONSTANT_P, SYMBOL_VAL, SYMBOLP)
15267 (VECTORLIKEP, XCAR, XCDR, XCONS, XHASH, XPNTR, XSYMBOL):
15268 If compiling via GCC without optimization, define these as macros
15269 in addition to inline functions.
15270 To disable this, compile with -DINLINING=0.
15271 (LISP_MACRO_DEFUN, LISP_MACRO_DEFUN_VOID): New macros.
15272 (check_cons_list) [!GC_CHECK_CONS_LIST]: Likewise.
15273 (make_number, XFASTINT, XINT, XTYPE, XUNTAG): Likewise, but
15274 hand-optimize only in the USE_LSB_TAG case, as GNUish hosts do that.
15275 (INTMASK, VALMASK): Now macros, since static values cannot be
15276 accessed from extern inline functions.
15277 (VALMASK): Also a constant, for benefit of old GDB.
15278 (LISP_INT_TAG_P): Remove; no longer needed as the only caller
15279 is INTEGERP, which can fold it in.
15280 (XLI, XIL, XHASH, XTYPE, XINT, XFASTINT, XUINT)
15281 (make_number, XPNTR, XUNTAG, EQ, XCONS, XVECTOR, XSTRING, XSYMBOL)
15282 (XFLOAT, XPROCESS, XWINDOW, XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE)
15283 (XSUB_CHAR_TABLE, XBOOL_VECTOR, make_lisp_ptr, CHECK_TYPE)
15284 (CHECK_STRING_OR_BUFFER, XCAR, XCDR, XSETCAR, XSETCDR, CAR, CDR)
15285 (CAR_SAFE, CDR_SAFE, STRING_MULTIBYTE, SDATA, SSDATA, SREF, SSET)
15286 (SCHARS, STRING_BYTES, SBYTES, STRING_SET_CHARS, STRING_COPYIN, AREF)
15287 (ASIZE, ASET, CHAR_TABLE_REF_ASCII, CHAR_TABLE_REF)
15288 (CHAR_TABLE_SET, CHAR_TABLE_EXTRA_SLOTS, SYMBOL_VAL, SYMBOL_ALIAS)
15289 (SYMBOL_BLV, SYMBOL_FWD, SET_SYMBOL_VAL, SET_SYMBOL_ALIAS)
15290 (SET_SYMBOL_BLV, SET_SYMBOL_FWD, SYMBOL_NAME, SYMBOL_INTERNED_P)
15291 (SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P, SYMBOL_CONSTANT_P)
15292 (XHASH_TABLE, HASH_TABLE_P, CHECK_HASH_TABLE, HASH_KEY, HASH_VALUE)
15293 (HASH_NEXT, HASH_HASH, HASH_INDEX, HASH_TABLE_SIZE)
15294 (XMISC, XMISCANY, XMARKER, XOVERLAY, XSAVE_VALUE, XFWDTYPE)
15295 (XINTFWD, XBOOLFWD, XOBJFWD, XBUFFER_OBJFWD, XKBOARD_OBJFWD)
15296 (XFLOAT_DATA, XFLOAT_INIT, NILP, NUMBERP, NATNUMP)
15297 (RANGED_INTEGERP, CONSP, FLOATP, MISCP, STRINGP, SYMBOLP)
15298 (INTEGERP, VECTORLIKEP, VECTORP, OVERLAYP)
15299 (MARKERP, SAVE_VALUEP, AUTOLOADP, INTFWDP, BOOLFWDP, OBJFWDP)
15300 (BUFFER_OBJFWDP, KBOARD_OBJFWDP, PSEUDOVECTOR_TYPEP)
15301 (PSEUDOVECTORP, WINDOW_CONFIGURATIONP, PROCESSP, WINDOWP)
15302 (TERMINALP, SUBRP, COMPILEDP, BUFFERP, CHAR_TABLE_P)
15303 (SUB_CHAR_TABLE_P, BOOL_VECTOR_P, FRAMEP, IMAGEP, ARRAYP)
15304 (CHECK_LIST, CHECK_LIST_CONS, CHECK_LIST_END, CHECK_STRING)
15305 (CHECK_STRING_CAR, CHECK_CONS, CHECK_SYMBOL, CHECK_CHAR_TABLE)
15306 (CHECK_VECTOR, CHECK_VECTOR_OR_STRING, CHECK_ARRAY)
15307 (CHECK_VECTOR_OR_CHAR_TABLE, CHECK_BUFFER, CHECK_WINDOW)
15308 (CHECK_WINDOW_CONFIGURATION, CHECK_PROCESS, CHECK_SUBR)
15309 (CHECK_NUMBER, CHECK_NATNUM, CHECK_MARKER, XFLOATINT)
15310 (CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT, CHECK_OVERLAY)
15311 (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR, CHECK_NATNUM_CAR)
15312 (CHECK_NATNUM_CDR, FUNCTIONP, SPECPDL_INDEX, LOADHIST_ATTACH)
15313 Now functions.
15314 (check_cons_list) [!GC_CHECK_CONS_LIST]: New empty function.
15315 (LISP_MAKE_RVALUE, TYPEMASK): Remove; no longer needed.
15316 (VALMASK): Define in one place rather than in two, merging the
15317 USE_LSB_TAG parts; this is simpler.
15318 (aref_addr, gc_aset, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM)
15319 (max, min, struct Lisp_String, UNSIGNED_CMP, ASCII_CHAR_P):
15320 Move up, to avoid use before definition.
15321 Also include "globals.h" earlier, for the same reason.
15322 (make_natnum): New function.
15323 (XUNTAG): Now returns void *, not intptr_t, as this means fewer casts.
15324 (union Lisp_Fwd, BOOLFWDP, BOOL_VECTOR_P, BUFFER_OBJFWDP, BUFFERP)
15325 (CHAR_TABLE_P, CHAR_TABLE_REF_ASCII, CONSP, FLOATP, INTEGERP, INTFWDP)
15326 (KBOARD_OBJFWDP, MARKERP, MISCP, NILP, OBJFWDP, OVERLAYP, PROCESSP)
15327 (PSEUDOVECTORP, SAVE_VALUEP, STRINGP, SUB_CHAR_TABLE_P, SUBRP, SYMBOLP)
15328 (VECTORLIKEP, WINDOWP, Qoverlayp, char_table_ref, char_table_set)
15329 (char_table_translate, Qarrayp, Qbufferp, Qbuffer_or_string_p)
15330 (Qchar_table_p, Qconsp, Qfloatp, Qintegerp, Qlambda, Qlistp, Qmarkerp)
15331 (Qnil, Qnumberp, Qsubrp, Qstringp, Qsymbolp, Qvectorp)
15332 (Qvector_or_char_table_p, Qwholenump, Ffboundp, wrong_type_argument)
15333 (initialized, Qhash_table_p, extract_float, Qprocessp, Qwindowp)
15334 (Qwindow_configuration_p, Qimage): New forward declarations.
15335 (XSETFASTINT): Simplify by rewriting in terms of make_natnum.
15336 (STRING_COPYIN): Remove; unused.
15337 (XCAR_AS_LVALUE, XCDR_AS_LVALUE): Remove these macros, replacing with ...
15338 (xcar_addr, xcdr_addr): New functions. All uses changed.
15339 (IEEE_FLOATING_POINT): Now a constant, not a macro.
15340 (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE)
15341 (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
15342 (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P)
15343 (GLYPH_CODE_P): Move to dispextern.h, to avoid define-before-use.
15344 (TYPE_RANGED_INTEGERP): Simplify.
15345 (Qsubrp, Qhash_table_p, Qoverlayp): New extern decls.
15346 (setlocale, fixup_locale, synchronize_system_messages_locale)
15347 (synchronize_system_time_locale) [!HAVE_SETLOCALE]:
15348 Now empty functions, not macros.
15349 (functionp): Return bool, not int.
15350 * window.c (Qwindow_configuration_p): Now extern,
15351 so window.h can use it.
15352 * window.h (Qwindowp): Move decl back to lisp.h.
15353
15354 2013-06-15 Eli Zaretskii <eliz@gnu.org>
15355
15356 * xdisp.c (Fline_pixel_height): New function, required for solving
15357 bug #14567.
15358
15359 2013-06-15 Paul Eggert <eggert@cs.ucla.edu>
15360
15361 * fns.c (Fcopy_sequence): Simplify XTYPE calculation.
15362
15363 2013-06-13 Stefan Monnier <monnier@iro.umontreal.ca>
15364
15365 * lread.c (syms_of_lread):
15366 * fns.c (Fprovide): Adjust to new format of after-load-alist.
15367
15368 2013-06-13 Kelly Dean <kellydeanch@yahoo.com> (tiny change)
15369
15370 * fileio.c (Fdo_auto_save): Trap errors in auto-save-hook. (Bug#14479)
15371
15372 2013-06-12 Xue Fuqiao <xfq.free@gmail.com>
15373
15374 * fileio.c (expand_file_name): Doc fix.
15375
15376 2013-06-11 Paul Eggert <eggert@cs.ucla.edu>
15377
15378 Tickle glib by waiting for Emacs itself, not for process 0 (Bug#14569).
15379 * process.c (init_process_emacs) [HAVE_GLIB && !WINDOWSNT]:
15380 Wait for self, not for 0. This can't hurt on GNU or similar
15381 system, and may help with Cygwin.
15382
15383 * keyboard.c: Don't use PROP (...) as an lvalue.
15384 (parse_tool_bar_item) [!USE_GTK && !HAVE_NS]:
15385 Use set_prop (A, B), not PROP (A) = B.
15386
15387 2013-06-10 Eli Zaretskii <eliz@gnu.org>
15388
15389 * xdisp.c (get_it_property): Use it->window instead of generating
15390 a Lisp object from it->w.
15391
15392 2013-06-09 Eli Zaretskii <eliz@gnu.org>
15393
15394 * xdisp.c (get_it_property): If it->object is a buffer, pass to
15395 get-char-property the window that is being rendered, instead of
15396 the buffer, to support window-specific overlays. (Bug#14575)
15397 (compute_display_string_pos): When W is NULL, use the current
15398 buffer as the object to pass to get-char-property.
15399 (Fcurrent_bidi_paragraph_direction): Assign NULL to the window
15400 pointer member of the bidi iterator, since no window is pertinent
15401 to this function.
15402
15403 2013-06-08 Eli Zaretskii <eliz@gnu.org>
15404
15405 * bidi.c (bidi_fetch_char): Accept additional argument, the window
15406 being displayed, and pass it to compute_display_string_pos.
15407 (bidi_level_of_next_char, bidi_resolve_explicit_1)
15408 (bidi_paragraph_init): All callers changed.
15409
15410 * xdisp.c (init_from_display_pos, init_iterator)
15411 (handle_single_display_spec, next_overlay_string)
15412 (get_overlay_strings_1, reseat_1, reseat_to_string)
15413 (push_prefix_prop, Fcurrent_bidi_paragraph_direction):
15414 Set bidi_it.w member from it->w.
15415 (compute_display_string_pos): Accept additional argument, the
15416 window being displayed, and pass it to Fget_char_property.
15417 (Bug#14575)
15418
15419 * dispextern.h (struct bidi_it): New member w, the window being
15420 displayed.
15421 (compute_display_string_pos): Adjust prototype.
15422
15423 2013-06-08 Jan Djärv <jan.h.d@swipnet.se>
15424
15425 * xgselect.c: Remove unneeded include xterm.h.
15426
15427 * process.c (wait_reading_process_output): Check for NS before GLIB.
15428 GLIB may be linked in due to rsvg, but ns_select must be called.
15429
15430 * xgselect.c (xg_select): Remove call to window_system_available
15431 and g_main_context_pending at the top, so Gdk events (i.e. file
15432 notify) are processed when Emacs is started with -nw.
15433
15434 2013-06-07 Eli Zaretskii <eliz@gnu.org>
15435
15436 * Makefile.in (ctagsfiles1, ctagsfiles2): Don't include *.m files.
15437 (ctagsfiles3): New variable, includes only *.m files.
15438 (TAGS): Use an explicit language name in the regular expressions,
15439 to avoid transformation of '/SOMETHING' by MSYS to
15440 'c:\MSYS\SOMETHING'.
15441
15442 2013-06-07 Richard Copley <rcopley@gmail.com> (tiny change)
15443
15444 * epaths.in: Fix commentary to PATH_SITELOADSEARCH.
15445
15446 2013-06-06 Eli Zaretskii <eliz@gnu.org>
15447
15448 * xdisp.c (note_mouse_highlight): When mouse-highlight is off,
15449 still need to set the mouse pointer shape and activate help-echo.
15450 (Bug#14558)
15451
15452 2013-06-06 Paul Eggert <eggert@cs.ucla.edu>
15453
15454 A few porting etc. fixes for the new file monitor code.
15455 See the thread containing
15456 <http://lists.gnu.org/archive/html/emacs-devel/2013-06/msg00109.html>.
15457 * gfilenotify.c (dir_monitor_callback, Fgfile_add_watch)
15458 (Fgfile_rm_watch): Don't assume EMACS_INT is the same width as a pointer.
15459 (dir_monitor_callback, Fgfile_rm_watch):
15460 Use assq_no_quit instead of Fassoc, for speed.
15461 (dir_monitor_callback, Fgfile_rm_watch):
15462 eassert that the monitor is a fixnum.
15463 (dir_monitor_callback): No need for CDR_SAFE.
15464 Simplify building of lisp with alternative tails.
15465 (Fgfile_add_watch, Fgfile_rm_watch):
15466 Do not assume glib functions set errno reliably on failure.
15467 (Fgfile_add_watch): Check that the monitor survives the XIL trick,
15468 and signal an error otherwise.
15469 (Fgfile_rm_watch): Prefer CONSP to !NILP.
15470 Use Fdelq instead of Fdelete, for speed.
15471
15472 2013-06-05 Eli Zaretskii <eliz@gnu.org>
15473
15474 * xdisp.c (handle_tool_bar_click): When mouse-highlight is off,
15475 don't insist on being invoked on a highlighted tool-bar button.
15476 Avoids losing tool-bar functionality when mouse-highlight is nil.
15477 (note_tool_bar_highlight, note_mode_line_or_margin_highlight):
15478 Don't highlight when mouse-highlight is nil.
15479 (note_mouse_highlight): When mouse-highlight is nil, don't return
15480 right away; instead, run tool-bar and mode-line highlight
15481 subroutine, clear any existing highlight, and revert the mouse
15482 pointer to its default shape. (Bug#14558)
15483
15484 2013-06-05 Stefan Monnier <monnier@iro.umontreal.ca>
15485
15486 * lisp.mk (lisp): Add prog-mode.el.
15487
15488 2013-06-05 Paul Eggert <eggert@cs.ucla.edu>
15489
15490 Chain glib's SIGCHLD handler from Emacs's (Bug#14474).
15491 * process.c (dummy_handler): New function.
15492 (lib_child_handler): New static var.
15493 (handle_child_signal): Invoke it.
15494 (catch_child_signal): If a library has set up a signal handler,
15495 save it into lib_child_handler.
15496 (init_process_emacs): If using glib and not on Windows, tickle glib's
15497 child-handling code so that it initializes its private SIGCHLD handler.
15498 * syssignal.h (SA_SIGINFO): Default to 0.
15499 * xterm.c (x_term_init): Remove D-bus hack that I installed on May
15500 31; it should no longer be needed now.
15501
15502 2013-06-05 Michael Albinus <michael.albinus@gmx.de>
15503
15504 * emacs.c (main) [HAVE_GFILENOTIFY]: Call globals_of_gfilenotify.
15505
15506 * gfilenotify.c (globals_of_gfilenotify): New function.
15507 (syms_of_gfilenotify): Move global initialization there.
15508
15509 * lisp.h (globals_of_gfilenotify) [HAVE_GFILENOTIFY]: Add prototype.
15510
15511 2013-06-05 Stefan Monnier <monnier@iro.umontreal.ca>
15512
15513 * keymap.c (Fcurrent_active_maps, Fdescribe_buffer_bindings):
15514 * keyboard.c (menu_bar_items, tool_bar_items):
15515 * doc.c (Fsubstitute_command_keys): Voverriding_terminal_local_map does
15516 not override local keymaps any more.
15517
15518 2013-06-04 Eli Zaretskii <eliz@gnu.org>
15519
15520 * window.c (Fpos_visible_in_window_p): Doc fix. (Bug#14540)
15521
15522 2013-06-03 Eli Zaretskii <eliz@gnu.org>
15523
15524 * w32console.c (initialize_w32_display): Return the dimensions of
15525 the console window via 2 additional arguments, not via the current
15526 frame. This avoids crashes due to overrunning the bounds of
15527 frame's decode_mode_spec_buffer, which is not resized following
15528 the change of the frame dimensions from the initial 10x10.
15529
15530 * w32term.h (w32_initialize_display_info): Adjust prototype.
15531
15532 * term.c (init_tty): Take dimensions of the frame from the values
15533 returned by initialize_w32_display.
15534
15535 * Makefile.in (GFILENOTIFY_CFLAGS, GFILENOTIFY_LIBS): New variables.
15536 (ALL_CFLAGS): Add $(GFILENOTIFY_CFLAGS).
15537 (LIBES): Add $(GFILENOTIFY_LIBS).
15538
15539 * w32inevt.c (handle_file_notifications): Add dummy implementation
15540 for !HAVE_W32NOTIFY.
15541
15542 * w32term.c: Wrap code with HAVE_W32NOTIFY.
15543
15544 2013-06-03 Jan Djärv <jan.h.d@swipnet.se>
15545
15546 * xgselect.c: Replace #if defined ... with #ifdef HAVE_GLIB.
15547
15548 * process.c (wait_reading_process_output): Call xg_select if HAVE_GLIB.
15549
15550 * Makefile.in (XGSELOBJ): New, xgselect.o if GLib is used, or empty.
15551
15552 2013-06-03 Paul Eggert <eggert@cs.ucla.edu>
15553
15554 Fix minor problems found by static checking.
15555 * data.c (pure_write_error):
15556 Use xsignal2, not Fsignal, as Fsignal might return.
15557 * eval.c (set_backtrace_debug_on_exit): Now static.
15558 (backtrace_p, backtrace_top, backtrace_next, record_in_backtrace):
15559 No longer inline. EXTERN_INLINE is needed only for functions
15560 defined in .h files. Reindent function header as per GNU style.
15561 (backtrace_p, backtrace_top, backtrace_next):
15562 Mark EXTERNALLY_VISIBLE so they don't get optimized away by the
15563 compiler or linker. Add extern decls to pacify gcc -Wall.
15564 * frame.c, frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
15565 Now static.
15566 * frame.c (free_monitors): Define only on platforms that need it.
15567 * nsterm.m (ns_term_init):
15568 * process.c (catch_child_signal):
15569 Don't worry about whether SIGCHLD is defined, as SIGCHLD is
15570 defined on all porting targets these days.
15571 * process.c, process.h (catch_child_signal):
15572 Make it extern only if NS_IMPL_GNUSTEP is defined.
15573
15574 2013-06-03 Eli Zaretskii <eliz@gnu.org>
15575
15576 * w32.c (gettimeofday): Make the signature identical to prototype
15577 in nt/inc/sys/time.h.
15578
15579 2013-06-03 Stefan Monnier <monnier@iro.umontreal.ca>
15580
15581 * eval.c (backtrace_p, backtrace_top, backtrace_next): Export them to
15582 .gdbinit.
15583
15584 * keyboard.c (safe_run_hooks_error): Improve error message.
15585
15586 * data.c (pure_write_error): Add `object' argument.
15587 * puresize.h (CHECK_IMPURE): Use it.
15588
15589 2013-06-03 Michael Albinus <michael.albinus@gmx.de>
15590
15591 * Makefile.in (NOTIFY_OBJ): New variable.
15592 (base_obj): Replace inotify.o by $(NOTIFY_OBJ).
15593
15594 * emacs.c (main): Use HAVE_W32NOTIFY to wrap respective code.
15595 Call syms_of_gfilenotify.
15596
15597 * gfilenotify.c: New file.
15598
15599 * keyboard.c (Qfile_notify): New variable. Replaces Qfile_inotify
15600 and Qfile_w32notify.
15601 (top): Wrap respective code by HAVE_GFILENOTIFY, HAVE_INOTIFY,
15602 HAVE_W32NOTIFY and USE_FILE_NOTIFY.
15603
15604 * lisp.h: Declare syms_of_gfilenotify.
15605
15606 * termhooks.h (e): Wrap enum by USE_FILE_NOTIFY.
15607
15608 2013-06-03 Stefan Monnier <monnier@iro.umontreal.ca>
15609
15610 Merge the specpdl and backtrace stacks. Make the structure of the
15611 specpdl entries more obvious via a tagged union of structs.
15612 * lisp.h (BITS_PER_PTRDIFF_T): New constant.
15613 (enum specbind_tag): New enum.
15614 (struct specbinding): Make it a tagged union of structs.
15615 Add a case for backtrace records.
15616 (specpdl_symbol, specpdl_old_value, specpdl_where, specpdl_arg)
15617 (specpdl_func, backtrace_function, backtrace_nargs, backtrace_args)
15618 (backtrace_debug_on_exit): New accessors.
15619 (struct backtrace): Remove.
15620 (struct catchtag): Remove backlist field.
15621 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
15622 Move to eval.c.
15623 (Flocal_variable_p): Speed up the common case where the binding is
15624 already loaded.
15625 * eval.c (backtrace_list): Remove.
15626 (set_specpdl_symbol, set_specpdl_old_value): Remove.
15627 (set_backtrace_args, set_backtrace_nargs)
15628 (set_backtrace_debug_on_exit, backtrace_p, backtrace_top)
15629 (backtrace_next): New functions.
15630 (Fdefvaralias, Fdefvar): Adjust to new specpdl format.
15631 (unwind_to_catch, internal_lisp_condition_case)
15632 (internal_condition_case, internal_condition_case_1)
15633 (internal_condition_case_2, internal_condition_case_n): Don't bother
15634 with backtrace_list any more.
15635 (Fsignal): Adjust to new backtrace format.
15636 (grow_specpdl): Move up.
15637 (record_in_backtrace): New function.
15638 (eval_sub, Ffuncall): Use it.
15639 (apply_lambda): Adjust to new backtrace format.
15640 (let_shadows_buffer_binding_p, let_shadows_global_binding_p): Move from
15641 data.c.
15642 (specbind): Adjust to new specpdl format. Simplify.
15643 (record_unwind_protect, unbind_to): Adjust to new specpdl format.
15644 (Fbacktrace_debug, Fbacktrace, Fbacktrace_frame): Adjust to new
15645 backtrace format.
15646 (mark_backtrace): Remove.
15647 (mark_specpdl, get_backtrace, backtrace_top_function): New functions.
15648 * xdisp.c (redisplay_internal): Use record_in_backtrace.
15649 * alloc.c (Fgarbage_collect): Use record_in_backtrace.
15650 Use mark_specpdl.
15651 * profiler.c (record_backtrace): Use get_backtrace.
15652 (handle_profiler_signal): Use backtrace_top_function.
15653 * .gdbinit (xbacktrace, hookpost-backtrace): Use new backtrace
15654 accessor functions.
15655
15656 2013-06-02 Jan Djärv <jan.h.d@swipnet.se>
15657
15658 * process.h (catch_child_signal): Declare.
15659
15660 * process.c (catch_child_signal): New function.
15661 (init_process_emacs): Call it.
15662
15663 * nsterm.m: Include process.h if NS_IMPL_GNUSTEP.
15664 (ns_menu_bar_is_hidden, menu_will_open_state): Define only if
15665 NS_IMPL_COCOA.
15666 (x_set_cursor_type): Remove declaration.
15667 (ns_update_begin): Only use r and bp if NS_IMPL_COCOA.
15668 (ns_update_end, ns_focus, ns_unfocus): Remove GNUstep specific code.
15669 (x_set_window_size): Remove 3 pixels from toolbar if NS_IMPL_GNUSTEP.
15670 (ns_get_color): Use F suffix on float.
15671 (ns_color_to_lisp, ns_query_color): Use EmacsCGFloat.
15672 (ns_get_rgb_color): Remove.
15673 (x_set_frame_alpha): Move view inside NS_IMPL_COCOA.
15674 (note_mouse_movement): x and y are CGFloat.
15675 (ns_draw_fringe_bitmap): Remove unused rowY.
15676 Change #if to COCOA && >= 10_6.
15677 (ns_draw_window_cursor): Remove unused overspill.
15678 (ns_draw_underwave): width and x are EamcsCGFloat.
15679 (ns_draw_box): thickness is CGFloat.
15680 (ns_dumpglyphs_image): Change #if to COCOA && >= 10_6.
15681 (ns_send_appdefined): When NS_IMPL_GNUSTEP, redirect to main thread
15682 if not in main thread.
15683 (ns_get_pending_menu_title, ns_check_menu_open)
15684 (ns_check_pending_open_menu): Put inside #if COCOA && >= 10_5.
15685 (ns_term_init): Call catch_child_signal if NS_IMPL_GNUSTEP && SIGCHLD.
15686 (sendFromMainThread:): New method.
15687 (changeFont:): size is CGFloat.
15688 (keyDown:): Check for Delete when NS_IMPL_GNUSTEP.
15689 Disable warning about permanent text.
15690 (characterIndexForPoint:): Adjust return type depending on GNUstep
15691 version.
15692 (mouseDown:): delta is CGFloat.
15693 (updateFrameSize): Remove unised variable f.
15694 (initFrameFromEmacs): Move toggleButton inside NS_IMPL_COCOA.
15695 Cast float to EmacsCGFloat.
15696 (windowWillUseStandardFrame:defaultFrame:): Set maximized_height
15697 also to -1 when restoring.
15698 (windowDidExitFullScreen:): Put call to updateCollectionBehaviour
15699 inside NS_IMPL_COCOA.
15700 (toggleFullScreen:): Put call to toggleFullScreen inside
15701 NS_IMPL_COCOA. Cast float to EmacsCGFloat.
15702 (setPosition:portion:whole:): por is CGFloat.
15703 (getMouseMotionPart:window:x:y:): Add F suffix to float.
15704 (mouseDown:): Use CGFloat.
15705 (mouseDragged:): Remove unised variable edge.
15706 (EmacsDocument): Implement for NS_IMPL_GNUSTEP.
15707
15708 * nsterm.h (EmacsCGFloat): Typedef for OSX and GNUstep when the size
15709 of CGFloat differs.
15710 (EmacsApp): New variable nextappdefined. Declare sendFromMainThread
15711 when NS_IMPL_GNUSTEP.
15712 (EmacsDocument): Declare when NS_IMPL_GNUSTEP.
15713 (EmacsView): Remove unlockFocusNeedsFlush, add windowDidMove.
15714 (EmacsToolbar): Add clearAll. Add tag argument to
15715 addDisplayItemWithImage.
15716 (EmacsSavePanel, EmacsOpenPanel): Remove getFilename and getDirectory.
15717
15718 * nsselect.m (ns_get_local_selection): Remove unused variable type.
15719
15720 * nsmenu.m (ns_update_menubar): Make static.
15721 (x_activate_menubar): Surround with ifdef NS_IMPL_COCOA
15722 (fillWithWidgetValue:): Add cast to SEL for setAction.
15723 (addSubmenuWithTitle:forFrame:): Add cast to SEL for action.
15724 (update_frame_tool_bar): Update code for GNUstep.
15725 (clearAll): New method.
15726 (addDisplayItemWithImage:idx:tag:helpText:enabled:): Handle new tag
15727 argument. Call insertItemWithItemIdentifier when NS_IMPL_GNUSTEP.
15728 Move identifierToItem setObject and activeIdentifiers addObject before
15729 call to insertItemWithItemIdentifier.
15730 (validateVisibleItems): Fix indentation.
15731 (toolbarAllowedItemIdentifiers:): Return activeIdentifiers.
15732 (initWithContentRect:styleMask:backing:defer:): Add ClosableWindow and
15733 UtilityWindow to aStyle, remove call to setStyleMask.
15734
15735 * nsimage.m (setXBMColor:, getPixelAtX:Y:): Use EmacsCGFloat.
15736
15737 * nsfont.m (ns_attribute_fvalue, ns_spec_to_descriptor)
15738 (ns_charset_covers, ns_get_covering_families, nsfont_open):
15739 Use F suffix on floats.
15740 (ns_char_width): Returns CGFloat.
15741 (ns_ascii_average_width): w is CGFloat instead of float.
15742 (nsfont_draw): cbuf and c are unsigned. Cast to char* in call to
15743 DPSxshow.
15744 (ns_glyph_metrics): CGFloat instead of float.
15745
15746 * nsfns.m (x_set_foreground_color, x_set_background_color):
15747 Use EmacsCGFloat.
15748 (ns_implicitly_set_icon_type, Fx_create_frame): Make static,
15749 remove unused variables.
15750 (Fns_read_file_name): Keep track if panel is for save.
15751 Use ns_filename_from_panel/ns_directory_from_panel.
15752 (Fns_list_services): delegate only used for COCOA.
15753 (Fns_convert_utf8_nfd_to_nfc): Remove warning for GNUstep.
15754 Just return the input if GNUstep.
15755 (x_screen_planes): Remove.
15756 (Fxw_color_values): Use EmacsCGFloat
15757 (Fns_display_monitor_attributes_list): Only get screen number for
15758 Cocoa.
15759 (getDirectory, getFilename): Remove from EmacsOpenPanel and
15760 EmacsSavePanel.
15761 (EmacsOpenPanel:ok:): Use ns_filename_from_panel and
15762 ns_directory_from_panel.
15763
15764 2013-06-01 Paul Eggert <eggert@cs.ucla.edu>
15765
15766 * process.c (handle_child_signal): Also use WCONTINUED.
15767 This is so that list-processes doesn't mistakenly list the process
15768 as stopped, when the process has actually been continued and is
15769 now running.
15770
15771 2013-05-31 Paul Eggert <eggert@cs.ucla.edu>
15772
15773 Don't let D-bus autolaunch mess up SIGCHLD handling (Bug#14474).
15774 * xterm.c (x_term_init): Inhibit D-Bus autolaunch if D-Bus is
15775 not already configured.
15776
15777 * fileio.c (Finsert_file_contents): Remove unused local (Bug#8447).
15778
15779 2013-05-29 Eli Zaretskii <eliz@gnu.org>
15780
15781 * Makefile.in (mostlyclean): Remove *.res files.
15782
15783 2013-05-29 Stefan Monnier <monnier@iro.umontreal.ca>
15784
15785 * fileio.c (Finsert_file_contents): Preserve undo info when reverting
15786 a buffer (bug#8447).
15787
15788 2013-05-27 Eli Zaretskii <eliz@gnu.org>
15789
15790 * xdisp.c (pos_visible_p): When CHARPOS is displayed frrom a
15791 display vector, and we backtrack, handle the case that the
15792 previous character position is also displayed from a display
15793 vector or covered by a display string or image. (Bug#14476)
15794
15795 2013-05-25 Jan Djärv <jan.h.d@swipnet.se>
15796
15797 * xfns.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove.
15798 (struct MonitorInfo, free_monitors): Remove.
15799 (x_make_monitor_attribute_list): Call make_monitor_attribute_list.
15800 (Fx_display_monitor_attributes_list): Call make_monitor_attribute_list.
15801 (syms_of_xfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size,
15802 Qframes, Qsource.
15803
15804 * nsfns.m (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove.
15805 (struct MonitorInfo, free_monitors): Remove.
15806 (ns_screen_name): Make static.
15807 (ns_make_monitor_attribute_list): Call make_monitor_attribute_list.
15808 (syms_of_nsfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size,
15809 Qframes, Qsource.
15810
15811 * frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
15812 (struct MonitorInfo): New struct.
15813 (free_monitors, make_monitor_attribute_list): Declare.
15814
15815 * frame.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
15816 New Lisp_Object:s.
15817 (free_monitors, make_monitor_attribute_list): New functions.
15818 (syms_of_frame): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes,
15819 Qsource.
15820
15821 2013-05-25 Xue Fuqiao <xfq.free@gmail.com>
15822
15823 * callproc.c (call_process): Refine the doc string. (Bug#14045)
15824
15825 2013-05-23 Stefan Monnier <monnier@iro.umontreal.ca>
15826
15827 * keyboard.c: Apply keyboard decoding only to events that come directly
15828 from the tty, not from unread-command-events (bug#14368).
15829 (read_event_from_main_queue): New function, extracted from read_char.
15830 (read_decoded_char): Remove.
15831 (read_decoded_event_from_main_queue): New function to replace it.
15832 (read_char): Use it.
15833 (read_key_sequence): Use read_char rather than read_decoded_char.
15834
15835 * keyboard.c (read_decoded_char): Don't decode under w32 (bug#14403).
15836
15837 2013-05-22 Barry O'Reilly <gundaetiapo@gmail.com>
15838
15839 * casetab.c (init_casetab_once): Fix last change (bug#14424).
15840
15841 2013-05-22 Kenichi Handa <handa@gnu.org>
15842
15843 The following changes are to fix the setting of
15844 buffer-file-coding-system on, for instance, C-x RET c unix RET
15845 _FILE_OF_DOS_EOL_TYPE_ RET.
15846
15847 * coding.h (struct coding_system): New member detected_utf8_chars.
15848
15849 * coding.c (detect_coding_utf_8): Count characters and check EOL
15850 format. Include CATEGORY_MASK_UTF_8_AUTO in detect_info->found if
15851 BOM is there.
15852 (setup_coding_system): Do not initialize coding->head_ascii.
15853 (check_ascii): Do not set coding->eol_seen but update it. Do not
15854 call adjust_coding_eol_type here.
15855 (detect_coding): Fix detection of BOM for utf-8 and utf-16.
15856 If the eol-type of CODING is already specified, adjust the eol type
15857 of the found coding-system.
15858 (decode_coding_gap): Cancel previous change. Utilize the
15859 character numbers counted by detect_coding_utf_8. Fix detection
15860 of BOM for utf-8.
15861
15862 2013-05-21 Barry O'Reilly <gundaetiapo@gmail.com>
15863
15864 * search.c (looking_at_1): Only set last_thing_searched if the match
15865 changed the match-data (bug#14281).
15866
15867 2013-05-21 Dmitry Antipov <dmantipov@yandex.ru>
15868
15869 * xdisp.c (reseat_at_previous_visible_line_start):
15870 Already declared in dispextern.h, so remove it here.
15871 (move_it_vertically_backward): Likewise.
15872
15873 2013-05-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15874
15875 * xfns.c (check_x_display_info): Don't use XINT for terminal object.
15876 (Fx_display_pixel_width, Fx_display_pixel_height)
15877 (Fx_display_mm_width, Fx_display_mm_height):
15878 Mention `display-monitor-attributes-list' in docstrings.
15879
15880 * nsfns.m (ns_get_screen): Remove function. All uses removed.
15881 (check_ns_display_info): Sync with check_x_display_info in xfns.c.
15882 (Fx_server_max_request_size, Fx_server_vendor, Fx_server_version)
15883 (Fx_display_screens, Fx_display_mm_width, Fx_display_mm_height)
15884 (Fx_display_backing_store, Fx_display_visual_class)
15885 (Fx_display_save_under, Fx_close_connection, Fxw_display_color_p)
15886 (Fx_display_grayscale_p, Fx_display_pixel_width)
15887 (Fx_display_pixel_height, Fx_display_planes)
15888 (Fx_display_color_cells): Sync args and docstrings with xfns.c.
15889 (Fx_display_screens): Don't confuse X11 screens with NS screens.
15890 (Fx_display_mm_width, Fx_display_mm_height)
15891 (Fx_display_pixel_width, Fx_display_pixel_width): Return width or
15892 height for all physical monitors as in X11.
15893
15894 * nsterm.m (x_display_pixel_width, x_display_pixel_height):
15895 Return pixel width or height for all physical monitors as in X11.
15896
15897 2013-05-18 Paul Eggert <eggert@cs.ucla.edu>
15898
15899 Port --enable-gcc-warnings to clang.
15900 * bytecode.c (exec_byte_code):
15901 * regex.c:
15902 Redo diagnostic pragmas to pacify clang, too.
15903 * dbusbind.c (xd_retrieve_arg): Do not use uninitialized variable.
15904 * editfns.c (Fencode_time):
15905 * fileio.c (file_accessible_directory_p):
15906 * font.c (font_unparse_xlfd):
15907 Use '&"string"[index]' instead of '"string" + (index)'.
15908 * undo.c (user_error): Remove; unused.
15909
15910 2013-05-16 Eli Zaretskii <eliz@gnu.org>
15911
15912 * insdel.c (insert_1_both): Document the arguments, instead of
15913 referring to insert_1, which no longer exists.
15914
15915 * xdisp.c (message_dolog): If the *Messages* buffer is shown in
15916 some window, increment windows_or_buffers_changed, so that
15917 *Messages* display in that window is updated. (Bug#14408)
15918
15919 * w32.c: Include epaths.h.
15920 (init_environment): Use cmdproxy.exe without leading directories.
15921 Support emacs.exe in src; point SHELL to cmdproxy in ../nt in that
15922 case.
15923 (gettimeofday): Adjust signature and return value to Posix
15924 expectations.
15925
15926 * unexw32.c (open_output_file): Delete the existing emacs.exe
15927 before creating it, to break the hard link to the versioned
15928 executable.
15929
15930 * Makefile.in (EMACS_MANIFEST, CM_OBJ, TEMACS_POST_LINK)
15931 (ADDSECTION, EMACS_HEAPSIZE, MINGW_TEMACS_POST_LINK)
15932 (FIRSTFILE_OBJ): New variables.
15933 (W32_RES): Rename to EMACSRES. All users changed.
15934 (base_obj): Use $(CM_OBJ).
15935 (ALLOBJS): Use $(FIRSTFILE_OBJ).
15936 (emacs$(EXEEXT)): Depend on $(ADDSECTION).
15937 (temacs$(EXEEXT)): Use $(TEMACS_POST_LINK), and move
15938 $(W32_RES_LINK) before $(LIBES).
15939 (emacs.res): Depend on $(EMACS_MANIFEST). Put emacs.rc in nt.
15940
15941 2013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
15942
15943 * makefile.w32-in (DOC): Use just "DOC".
15944
15945 * Makefile.in (bootstrap-clean): DOC-* doesn't exist any more.
15946
15947 * process.c: Export default filters and sentinels to Elisp.
15948 (Qinternal_default_process_sentinel, Qinternal_default_process_filter):
15949 New constants.
15950 (pset_filter, pset_sentinel, make_process, Fset_process_filter)
15951 (Fset_process_sentinel, Fformat_network_address):
15952 Default to them instead of nil.
15953 (server_accept_connection): Sentinels can't be nil any more.
15954 (read_and_dispose_of_process_output): New function, extracted from
15955 read_process_output.
15956 (read_process_output): Use it; filters can't be nil.
15957 (Finternal_default_process_filter): New function, extracted from
15958 read_process_output.
15959 (exec_sentinel_unwind): Remove function.
15960 (exec_sentinel): Don't zilch sentinel while running.
15961 (status_notify): Sentinels can't be nil.
15962 (Finternal_default_process_sentinel): New function extracted from
15963 status_notify.
15964 (setup_process_coding_systems): Default filter is not nil any more.
15965 (syms_of_process): Export new Elisp functions and initialize
15966 new constants.
15967 * lisp.h (make_lisp_proc): New function.
15968
15969 2013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
15970
15971 * regex.c (regex_compile) [\=, \>, \<]: Don't forget to set laststart.
15972
15973 2013-05-14 Eli Zaretskii <eliz@gnu.org>
15974
15975 * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
15976 unless we know that the window w is a leaf window.
15977 Another attempt at solving bug#14062.
15978
15979 2013-05-14 Jan Djärv <jan.h.d@swipnet.se>
15980
15981 * nsfont.m (ns_spec_to_descriptor): Retain and autorelease
15982 fdesc (Bug#14375).
15983
15984 2013-05-12 Paul Eggert <eggert@cs.ucla.edu>
15985
15986 * image.c (gif_load): Check that subimages fit (Bug#14345).
15987
15988 2013-05-09 Stefan Monnier <monnier@iro.umontreal.ca>
15989
15990 * lread.c (skip_dyn_eof): New function.
15991 (read1): Use it to skip the end of a file in response to #@00.
15992
15993 * doc.c (get_doc_string): Slightly relax the sanity checking.
15994
15995 2013-05-09 Jan Djärv <jan.h.d@swipnet.se>
15996
15997 * nsfns.m: Include IOGraphicsLib.h if Cocoa.
15998 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
15999 (MonitorInfo): New struct.
16000 (free_monitors, ns_screen_name, ns_make_monitor_attribute_list)
16001 (Fns_display_monitor_attributes_list): New functions.
16002 (display-usable-bounds): Remove.
16003 (syms_of_nsfns): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes and
16004 Qsource.
16005
16006 2013-05-09 Paul Eggert <eggert@cs.ucla.edu>
16007
16008 * xterm.h (GTK_PREREQ): Remove, replacing with GTK_CHECK_VERSION.
16009 (GTK_CHECK_VERSION): New macro, if not already defined.
16010 All uses of GTK_PREREQ, GTK_MAJOR_VERSION, etc.
16011 replaced by GTK_CHECK_VERSION.
16012
16013 2013-05-08 Paul Eggert <eggert@cs.ucla.edu>
16014
16015 * xterm.h (GTK_PREREQ): New macro.
16016 All simple uses of GTK_MAJOR_VERSION and GTK_MINOR_VERSION changed
16017 to use this macro instead, for consistency and clarity.
16018
16019 2013-05-08 Eli Zaretskii <eliz@gnu.org>
16020
16021 * xdisp.c (row_for_charpos_p): New function, with code of
16022 cursor_row_p, but accepts an additional argument CHARPOS instead
16023 of using a hardcoded PT.
16024 (cursor_row_p): Call row_for_charpos_p with 2nd argument PT.
16025 (row_containing_pos): Call row_for_charpos_p instead of partially
16026 doing the same. Fixes cursor positioning under longlines-mode
16027 when longlines-show-effect includes more than one newline, when
16028 moving the cursor vertically up.
16029
16030 2013-05-08 Juanma Barranquero <lekktu@gmail.com>
16031
16032 * makefile.w32-in (ACL_H): New macro.
16033 ($(BLD)/fileio.$(O)): Update dependencies.
16034
16035 2013-05-07 Paul Eggert <eggert@cs.ucla.edu>
16036
16037 Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295)
16038 * Makefile.in (LIB_ACL): New macro.
16039 (LIBACL_LIBS): Remove.
16040 (LIBES): Use LIB_ACL, not LIBACL_LIBS.
16041 * fileio.c: Include <acl.h>.
16042 Use HAVE_ACL_SET_FILE rather than HAVE_POSIX_ACL.
16043 (ACL_NOT_WELL_SUPPORTED): Remove. All uses replaced by
16044 !acl_errno_valid.
16045 (Fcopy_file) [!WINDOWSNT]: Use qcopy_acl instead of rolling
16046 it ourselves.
16047
16048 * unexelf.c: Don't assume ElfW (Half) fits in int.
16049 (entry_address, find_section, unexec): Use ptrdiff_t, not int,
16050 when dealing with ElfW (Half) values, since they can exceed 2**31
16051 on 64-bit OpenBSD hosts. Reported by Han Boetes (privately).
16052 (entry_address): Omit unused NUM arg. All uses changed.
16053
16054 2013-05-07 Juri Linkov <juri@jurta.org>
16055
16056 * callint.c (Fcall_interactively): Set `visargs[i]' for code 'n'
16057 to the string converted from number with `Fnumber_to_string'.
16058 (Bug#14254)
16059
16060 2013-05-07 Paul Eggert <eggert@cs.ucla.edu>
16061
16062 * xfns.c (x_get_net_workarea): Define only if !GTK || GTK<3.4.
16063 This fixes a problem introduced by my previous change.
16064
16065 2013-05-07 Glenn Morris <rgm@gnu.org>
16066
16067 * lread.c (readchar): Don't read from a dead buffer. (Bug#14280)
16068
16069 2013-05-07 Jan Djärv <jan.h.d@swipnet.se>
16070
16071 * xfns.c: Move misplaced ifndef USE_GTK from previous checkin.
16072
16073 2013-05-07 Paul Eggert <eggert@cs.ucla.edu>
16074
16075 Static checking by GCC 4.8.0.
16076 * xfns.c (x_get_net_workarea, struct MonitorInfo, free_monitors)
16077 (x_get_monitor_for_frame, x_make_monitor_attribute_list)
16078 (x_get_monitor_attributes_fallback)
16079 (x_get_monitor_attributes_xinerama)
16080 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes):
16081 Define only if USE_GTK.
16082 (free_monitors): Define only if HAVE_XINERAMA || HAVE_XRANDR.
16083 (x_get_monitor_attributes_fallback): Omit unused locals.
16084 (x_get_monitor_attributes_xinerama, Fx_display_monitor_attributes_list):
16085 Use double, not float, to avoid mixed-mode floating point arithmetic.
16086
16087 2013-05-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
16088 Jan Djärv <jan.h.d@swipnet.se>
16089
16090 * Makefile.in (XRANDR_LIBS, XRANDR_CFLAGS, XINERAMA_LIBS)
16091 (XINERAMA_CFLAGS): New macros.
16092 (ALL_CFLAGS, LIBES): Use them.
16093
16094 * xfns.c: Include <X11/extensions/Xrandr.h> if HAVE_XRANDR, and
16095 include <X11/extensions/Xinerama.h> if HAVE_XINERAMA.
16096 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): New variables.
16097 (syms_of_xfns): DEFSYM them.
16098 (struct MonitorInfo): New struct.
16099 (x_get_net_workarea, free_monitors, x_get_monitor_for_frame)
16100 (x_make_monitor_attribute_list, x_get_monitor_attributes_fallback)
16101 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes)
16102 (x_get_monitor_attributes_xinerama): New functions.
16103 (Fx_display_monitor_attributes_list): New primitive.
16104 (syms_of_xfns): Defsubr it.
16105
16106 * xterm.h (x_display_info): Add Xatom_net_workarea and
16107 Xatom_net_current_desktop.
16108
16109 * xterm.c (x_term_init): Initialize dpyinfo->Xatom_net_workarea
16110 and dpyinfo->Xatom_net_current_desktop.
16111
16112 2013-05-06 Eli Zaretskii <eliz@gnu.org>
16113
16114 * xdisp.c (pos_visible_p): Use the special code for finding the
16115 beginning of a display property or overlay for any "replacing"
16116 display property, not just for display strings. This solves
16117 incorrect reporting of position by posn-at-point. (Bug#14241)
16118
16119 2013-05-06 Paul Eggert <eggert@cs.ucla.edu>
16120
16121 * unexelf.c: Fix some 32-bit integer problems, notably when debugging.
16122 Include <limits.h>, <stdbool.h>, <intprops.h>, <verify.h>.
16123 Verify that ElfW (Half) fits in int.
16124 (fatal): Use same signature as lisp.h.
16125 (UNEXELF_DEBUG): New macro, replacing DEBUG, so that people can
16126 configure and build with -DUNEXELF_DEBUG without worrying about
16127 other modules that use DEBUG.
16128 (DEBUG_LOG) [UNEXELF_DEBUG]: New macro. All debug code that prints
16129 possibly-wide integers now uses it instead of plain fprintf.
16130 (entry_address): New function, which avoids problems with 32-bit
16131 overflow on 64-bit hosts.
16132 (OLD_SECTION_H, NEW_SECTION_H, NEW_PROGRAM_H): Use it.
16133 (round_up): Don't assume the remainder fits in int.
16134 (find_section): Use bool for boolean. Simplify debug code.
16135 (unexec): Don't assume file sizes fit in int or size_t.
16136 Omit unnecessary trailing newline in 'fatal' format.
16137 Use strerror rather than outputting decimal error number.
16138 Remove unused code when emacs is not defined;
16139 this file relies on Emacs now.
16140 Don't assume e_phnum and e_shnum are positive.
16141
16142 * regex.c: Fix problems when DEBUG is defined.
16143 (extract_number, extract_number_and_incr): Define regardless of
16144 whether DEBUG is defined; that's simpler and makes the code less
16145 likely to go stale in the normal case when DEBUG is not defined.
16146 Return int rather than taking an int * arg. All callers changed.
16147 (DEBUG_PRINT1, DEBUG_PRINT2, DEBUG_PRINT3, DEBUG_PRINT4):
16148 Remove, replacing with ...
16149 (DEBUG_PRINT): New macro. All callers changed.
16150 (DEBUG_COMPILES_ARGUMENTS): New macro.
16151 (print_fastmap, print_partial_compiled_pattern) [DEBUG]:
16152 (print_compiled_pattern, print_double_string) [DEBUG]:
16153 Use prototype rather than old-style definition.
16154 (print_partial_compiled_pattern, print_compiled_pattern) [DEBUG]:
16155 (ENSURE_FAIL_STACK, PUSH_FAILURE_REG) [DEBUG]:
16156 (POP_FAILURE_REG_OR_COUNT, PUSH_FAILURE_POINT) [DEBUG]:
16157 (POP_FAILURE_POINT, re_match_2_internal) [DEBUG]:
16158 Don't assume ptrdiff_t, size_t, and long are the same width as int.
16159 (POINTER_TO_OFFSET): Return ptrdiff_t, not regoff_t.
16160 This matters only when DEBUG is defined.
16161
16162 2013-05-05 Eli Zaretskii <eliz@gnu.org>
16163
16164 * xdisp.c (set_iterator_to_next): Set the
16165 ignore_overlay_strings_at_pos_p flag only if we are _really_
16166 iterating over an overlay string, as indicated by the
16167 current.overlay_string_index member. (Bug#14306)
16168
16169 2013-05-05 Jan Djärv <jan.h.d@swipnet.se>
16170
16171 * nsmenu.m (ns_update_menubar): Move initialization of submenuTitle
16172 to where it is used, to avoid autorelease issues (Bug#14050).
16173
16174 2013-05-05 Paul Eggert <eggert@cs.ucla.edu>
16175
16176 `write-region-inhibit-fsync' defaults to noninteractive (Bug#14273).
16177 * fileio.c (syms_of_fileio): Implement this.
16178 * filelock.c (create_lock_file): If symbolic links don't work, so
16179 we use a regular file as a lock file, do not fsync the lock file;
16180 it's not needed.
16181
16182 2013-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
16183
16184 * minibuf.c (Fread_minibuffer, Feval_minibuffer): Move to Elisp.
16185 (syms_of_minibuf): Adjust accodingly.
16186 * lread.c (Fread):
16187 * callint.c (Fcall_interactively): Adjust calls accordingly.
16188
16189 2013-05-04 Eli Zaretskii <eliz@gnu.org>
16190
16191 * dispextern.h (WINDOW_WANTS_HEADER_LINE_P): Verify that
16192 w->contents is a buffer before computing everything else.
16193 Use parentheses to disambiguate last part of the condition.
16194
16195 * w32fns.c (w32_wnd_proc): Remove temporary code used to trap
16196 assertion violations. (Bug#14062)
16197
16198 2013-05-01 David Reitter <david.reitter@gmail.com>
16199
16200 * nsfns.m (ns_tooltip): Initialize.
16201
16202 2013-04-28 Eli Zaretskii <eliz@gnu.org>
16203
16204 * coding.c (decode_coding_gap): Don't remove the character before
16205 a newline unless it's a CR character. (Bug#14287)
16206
16207 2013-04-28 Dan Nicolaescu <dann@gnu.org>
16208
16209 * dispextern.h (struct face): Move enum face_underline_type
16210 earlier so that bitfields can be in the same word.
16211
16212 2013-04-28 Jan Djärv <jan.h.d@swipnet.se>
16213
16214 * nsfns.m (handlePanelKeys): New function.
16215 (EmacsOpenPanel:performKeyEquivalent:)
16216 (EmacsSavePanel:performKeyEquivalent:): Call handlePanelKeys to handle
16217 arrows/function/control and copy/paste keys (Bug#14296).
16218
16219 2013-04-27 Juri Linkov <juri@jurta.org>
16220
16221 * callint.c (Fcall_interactively): Call `Qread_number' for
16222 interactive code letter `n' instead of using duplicate code.
16223 (Bug#14254)
16224
16225 2013-04-27 Paul Eggert <eggert@cs.ucla.edu>
16226
16227 * systime.h (make_timeval): Declare as 'const'.
16228
16229 2013-04-27 Kenichi Handa <handa@gnu.org>
16230
16231 * font.c (font_open_entity): Always open a font of manageable
16232 size.
16233
16234 2013-04-26 Paul Eggert <eggert@cs.ucla.edu>
16235
16236 Port better to AIX (Bug#14258).
16237 * lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too,
16238 to pacify AIX xlc.
16239
16240 2013-04-24 Kenichi Handa <handa@gnu.org>
16241
16242 * coding.c (decode_coding_iso_2022): When an invalid escape
16243 sequence is encountered, reset the invocation and designation
16244 status to the safest one.
16245
16246 2013-04-22 Paul Eggert <eggert@cs.ucla.edu>
16247
16248 * Makefile.in (bootstrap-clean): Remove stamp-h1 too.
16249 Without this fix, "make distclean" leaves stamp-h1 behind.
16250
16251 2013-04-20 Erik Charlebois <erikcharlebois@gmail.com>
16252
16253 * w32fns.c (w32_fullscreen_rect): New function to compute the
16254 window rectangle for the given fullscreen mode.
16255 (w32_wnd_proc): When in a fullscreen mode, WM_WINDOWPOSCHANGING no
16256 longer tunes the window size. This keeps the window's edges flush
16257 with the screen and allows the taskbar to hide itself in fullboth.
16258
16259 * w32term.c (w32fullscreen_hook): 'fullboth' now shows without
16260 window decorations and uses the entire screen.
16261
16262 * w32term.h (w32_fullscreen_rect) Add prototype.
16263 (struct w32_output): Replace normal_width, normal_height,
16264 normal_top, and normal_left members with a single normal_placement
16265 struct.
16266 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP):
16267 Remove macros.
16268 (FRAME_NORMAL_PLACEMENT): New macro.
16269
16270 2013-04-16 Juanma Barranquero <lekktu@gmail.com>
16271
16272 * minibuf.c (Ftest_completion): Silence compiler warning.
16273
16274 2013-04-15 Eli Zaretskii <eliz@gnu.org>
16275
16276 * w32fns.c (w32_wnd_proc): Add more assertions to investigate
16277 bug#14062.
16278
16279 * frame.h (WINDOW_FRAME): Protect macro and its argument with
16280 parentheses.
16281
16282 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
16283 (CURRENT_HEADER_LINE_HEIGHT, WINDOW_WANTS_MODELINE_P)
16284 (WINDOW_WANTS_HEADER_LINE_P): Protect macro arguments with
16285 parentheses where appropriate.
16286
16287 2013-04-14 Paul Eggert <eggert@cs.ucla.edu>
16288
16289 * keyboard.c (timer_start_idle): Remove no-longer-used local.
16290
16291 2013-04-14 Eli Zaretskii <eliz@gnu.org>
16292
16293 * buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>:
16294 <left-fringe-width, right-fringe-width, fringes-outside-margins>:
16295 Mention in the doc string that setting these variables takes
16296 effect only after a call to set-window-buffer. (Bug#14200)
16297
16298 2013-04-13 Eli Zaretskii <eliz@gnu.org>
16299
16300 * indent.c (Fvertical_motion): Don't consider display strings on
16301 overlay strings as display strings on the buffer position we
16302 started from. This prevents vertical cursor motion from jumping
16303 more than one line when there's an overlay string with a display
16304 property at end of line.
16305 Reported by Karl Chen <Karl.Chen@quarl.org> in
16306 http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00362.html.
16307
16308 2013-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
16309
16310 * window.c (select_window): `record_buffer' even if window is
16311 already selected (bug#14191).
16312
16313 2013-04-11 Eli Zaretskii <eliz@gnu.org>
16314
16315 * window.c (Fwindow_end): Test more flags, including the buffer's
16316 last_overlay_modified flag, to determine whether the window's
16317 display is really up-to-date. Prevents the function from
16318 returning a stale value. (Bug#14170)
16319 (Fwindow_line_height): Fix the test for up-to-date-ness of the
16320 current matrix.
16321
16322 2013-04-10 Eli Zaretskii <eliz@gnu.org>
16323
16324 * frame.c (do_switch_frame): Mark the TTY frame we switch to as
16325 garbaged only if it is not already the top frame on its TTY.
16326 This prevents flickering due to constant redrawing of TTY frames when
16327 there are GUI frames open in the same session. (Bug#13864)
16328
16329 2013-04-10 Stefan Monnier <monnier@iro.umontreal.ca>
16330
16331 * keyboard.c (timer_start_idle): Call internal-timer-start-idle instead
16332 of marking the idle timers directly.
16333
16334 2013-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
16335
16336 * minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash
16337 tables (bug#14054).
16338
16339 2013-04-08 Stefan Monnier <monnier@iro.umontreal.ca>
16340
16341 * window.c (select_window): Don't record_buffer while the invariant is
16342 temporarily broken (bug#14161).
16343
16344 * fns.c (Fdelq): Don't assume !NILP => CONSP.
16345
16346 2013-04-07 Eli Zaretskii <eliz@gnu.org>
16347
16348 * fileio.c (ACL_NOT_WELL_SUPPORTED): Define macro for WINDOWSNT.
16349
16350 2013-04-07 Romain Francoise <romain@orebokech.com>
16351
16352 Ignore additional platform-specific ACL errors (Bug#13702).
16353 * fileio.c (ACL_NOT_WELL_SUPPORTED): New macro copied from gnulib.
16354 (Fcopy_file, Fset_file_acl) [HAVE_POSIX_ACL]: Use it.
16355
16356 2013-03-31 Jan Djärv <jan.h.d@swipnet.se>
16357
16358 * nsterm.m (ns_mouse_position): Use NS_FRAME_P instead of checking
16359 f->output_data.ns.
16360
16361 2013-04-07 Paul Eggert <eggert@cs.ucla.edu>
16362
16363 Fix --enable-profiling bug introduced by 2013-02-25 change (Bug#13783).
16364 This bug was introduced by my 2013-02-25 change that simplified
16365 data_start configuration. Without this change, on GNU/Linux
16366 an Emacs configured with --enable-profiling fails immediately
16367 due to a profiler signal.
16368 * Makefile.in: Compile with $(PROFILING_CFLAGS), but do not link
16369 with these flags. On platforms where special flags are needed
16370 when linking temacs, the flags are now in LD_SWITCH_SYSTEM_TEMACS.
16371 (ALL_CFLAGS): Remove $(PROFILING_CFLAGS).
16372 (.c.o, .m.o): Compile with $(PROFILING_CFLAGS).
16373
16374 2013-04-07 Dmitry Antipov <dmantipov@yandex.ru>
16375
16376 Get rid of some platform-specific functions examining window
16377 system and its capabilities. This is a partial rework of the
16378 2013-04-05 change.
16379 * lisp.h (have_menus_p): Remove prototype. This function is
16380 replaced with platform-independent window_system_available.
16381 (check_window_system): Move to...
16382 * frame.h (decode_window_system_frame, window_system_available):
16383 ...here, add new prototypes.
16384 * frame.c (window_system_available, decode_window_system_frame):
16385 New functions.
16386 (check_window_system): Platform-independent now.
16387 * xterm.h (x_in_use): Remove declaration.
16388 (check_x_frame):
16389 * w32term.h (check_x_frame):
16390 * nsterm.h (check_x_frame): Remove prototypes. This function
16391 is replaced with platform-independent decode_window_system_frame.
16392 * msdos.c (have_menus_p): Remove.
16393 * nsfns.m (check_window_system, have_menus_p, check_ns_frame):
16394 Remove platform-specific functions. Use check_window_system,
16395 decode_window_system_frame and check_ns_display_info where
16396 appropriate. Minor style and comment tweaks.
16397 * w32fns.c (w32_in_use, check_window_system, have_menus_p)
16398 (check_x_frame): Likewise.
16399 * xfns.c (x_in_use, check_window_system, have_menus_p, check_x_frame):
16400 Likewise.
16401 * fileio.c, fns.c, font.c, fontset.c, image.c, menu.c, nsmenu.m:
16402 * nsselect.m, nsterm.m, w32font.c, w32menu.c, xfaces.c, xgselect.c:
16403 * xmenu.c, xselect.c: All related users changed.
16404
16405 2013-04-03 Kenichi Handa <handa@gnu.org>
16406
16407 The following changes is to optimize the code for reading UTF-8
16408 files.
16409
16410 * coding.c (check_ascii): Rename from detect_ascii. Return value
16411 changed. Check EOL format. Do not call adjust_coding_eol_type
16412 here.
16413 (check_utf_8): New function.
16414 (adjust_coding_eol_type): Do nothing if already adjusted.
16415 (detect_coding): Compare the return value of check_ascii with
16416 coding->src_bytes. Call adjust_coding_eol_type if necessary.
16417 (decode_coding_gap): Optimize for valid UTF-8.
16418
16419 2013-03-21 Kenichi Handa <handa@gnu.org>
16420
16421 * coding.c (syms_of_coding): Cancel previous change.
16422
16423 * insdel.c (insert_from_gap): Fix previous change.
16424
16425 2013-04-05 Dmitry Antipov <dmantipov@yandex.ru>
16426
16427 Consistently use platform-specific function to detect window system.
16428 * lisp.h (check_window_system): New prototype. This function is
16429 going to replace check_x, check_w32 and check_ns.
16430 (have_menus_p): Mention msdos.c in comment.
16431 * fontset.c (check_window_system_func): Remove. Adjust all users.
16432 * fontset.h (check_window_system_func): Remove prototype.
16433 * nsterm.h (check_ns):
16434 * xterm.h (check_x):
16435 * w32term.h (check_w32): Likewise.
16436 * menu.c (Fx_popup_menu): Use check_window_system.
16437 * msdos.c (check_window_system): Define for MS-DOS.
16438 * nsfns.m (check_window_system): Define for NS. Adjust all users.
16439 * w32fns.c (check_window_system): Likewise for MS-Windows.
16440 * xfns.c (check_window_system): Likewise for X.
16441 * font.c, frame.c, nsmenu.m, nsselect.m, nsterm.m, w32menu.c:
16442 * xfaces.c, xmenu.c: Use check_window_system where appropriate.
16443
16444 2013-04-02 Paul Eggert <eggert@cs.ucla.edu>
16445
16446 Prefer < to > in range checks such as 0 <= i && i < N.
16447 This makes it easier to visualize quantities on a number line.
16448 This patch doesn't apply to all such range checks,
16449 only to the range checks affected by the 2013-03-24 change.
16450 This patch reverts most of the 2013-03-24 change.
16451 * alloc.c (xpalloc, Fgarbage_collect):
16452 * ccl.c (ccl_driver, resolve_symbol_ccl_program):
16453 * character.c (string_escape_byte8):
16454 * charset.c (read_hex):
16455 * data.c (cons_to_unsigned):
16456 * dispnew.c (update_frame_1):
16457 * doc.c (Fsubstitute_command_keys):
16458 * doprnt.c (doprnt):
16459 * editfns.c (hi_time, decode_time_components):
16460 * fileio.c (file_offset):
16461 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
16462 * font.c (font_intern_prop):
16463 * frame.c (x_set_alpha):
16464 * gtkutil.c (get_utf8_string):
16465 * indent.c (check_display_width):
16466 * keymap.c (Fkey_description):
16467 * lisp.h (FIXNUM_OVERFLOW_P, vcopy):
16468 * lread.c (read1):
16469 * minibuf.c (read_minibuf_noninteractive):
16470 * process.c (wait_reading_process_output):
16471 * search.c (Freplace_match):
16472 * window.c (get_phys_cursor_glyph):
16473 * xdisp.c (redisplay_internal):
16474 * xsmfns.c (smc_save_yourself_CB):
16475 Prefer < to > for range checks.
16476 * dispnew.c (sit_for): Don't mishandle NaNs.
16477 This fixes a bug introduced in the 2013-03-24 change.
16478 * editfns.c (decode_time_components): Don't hoist comparison.
16479 This fixes another bug introduced in the 2013-03-24 change.
16480
16481 2013-03-31 Dmitry Antipov <dmantipov@yandex.ru>
16482
16483 * frame.h (struct frame): Drop scroll_bottom_vpos
16484 member becaue all real users are dead long ago.
16485 (FRAME_SCROLL_BOTTOM_VPOS): Remove.
16486 * xdisp.c (redisplay_internal): Adjust user.
16487
16488 2013-03-30 Darren Hoo <darren.hoo@gmail.com> (tiny change)
16489
16490 * nsmenu.m (showAtX:Y:for:): setLevel to
16491 NSPopUpMenuWindowLevel (Bug#13998).
16492
16493 2013-03-30 Jan Djärv <jan.h.d@swipnet.se>
16494
16495 * nsterm.h (ns_get_pending_menu_title, ns_check_menu_open)
16496 (ns_check_pending_open_menu): Declare.
16497
16498 * nsmenu.m (ns_update_menubar): Correct NSTRACE.
16499 (x_activate_menubar): Update the menu with title that matches
16500 ns_get_pending_menu_title, and call
16501 ns_check_pending_openmenu (Bug#12698).
16502 (menuWillOpen:): New method.
16503 (menuNeedsUpdate:): Add check for ! COCOA || OSX < 10.5 (Bug#12698).
16504
16505 * nsterm.m (menu_will_open_state, menu_mouse_point)
16506 (menu_pending_title): New varaibles.
16507 (ns_get_pending_menu_title, ns_check_menu_open)
16508 (ns_check_pending_open_menu): New functions.
16509
16510 2013-03-29 Dmitry Antipov <dmantipov@yandex.ru>
16511
16512 * indent.c (current_column_bol_cache): Remove leftover which is not
16513 used in Fmove_to_column any more.
16514 (current_column, scan_for_column): Adjust users.
16515 * keyboard.c (last_point_position_buffer, last_point_position_window):
16516 Remove leftovers which are not used for recording undo any more.
16517 (command_loop_1, syms_of_keyboard): Adjust users.
16518 * xdisp.c (last_max_ascent): Remove leftover which is not used in
16519 redisplay_window any more.
16520 (move_it_to): Adjust user.
16521
16522 2013-03-29 Juanma Barranquero <lekktu@gmail.com>
16523
16524 * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/filelock.$(O)):
16525 Update dependencies.
16526
16527 2013-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
16528
16529 * lisp.h (save_type, XSAVE_POINTER, set_save_pointer, XSAVE_INTEGER)
16530 (set_save_integer, XSAVE_OBJECT, XSAVE_VALUE): Move to avoid
16531 forward references.
16532
16533 2013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
16534
16535 * window.h (struct window): Replace hchild, vchild and buffer slots
16536 with a single slot 'contents'. This is possible because each valid
16537 window may have either the child window (in vertical or horizontal
16538 combination) or buffer to display (for the leaf window). Using that,
16539 a lot of operations to traverse and/or change window hierarchies may
16540 be simplified. New member horizontal is used to distinguish between
16541 horizontal and vertical combinations of internal windows.
16542 (WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P)
16543 (WINDOW_VERTICAL_COMBINATION_P): New macros.
16544 (WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes.
16545 * window.c (wset_hchild, wset_vchild): Remove. Adjust all users.
16546 Use contents slot, not buffer, where appropriate.
16547 (wset_combination): New function.
16548 (wset_buffer): Add eassert.
16549 (Fframe_first_window): Simplify the loop reaching first window.
16550 (Fwindow_buffer): Use WINDOW_LEAF_P.
16551 (Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P.
16552 (Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P.
16553 (unshow_buffer): Convert initial debugging check to eassert.
16554 (replace_window, recombine_windows, Fdelete_other_windows_internal)
16555 (make_parent_window, window_resize_check, window_resize_apply)
16556 (resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal)
16557 (Fset_window_configuration, delete_all_child_windows, save_window_save):
16558 Adjust to match struct window changes.
16559 (window_loop): Check for broken markers in CHECK_ALL_WINDOWS.
16560 (mark_window_cursors_off, count_windows, get_leaf_windows)
16561 (foreach_window_1): Simplify the loop.
16562 * alloc.c (mark_object): Do not check for the leaf window because
16563 internal windows has no glyph matrices anyway.
16564 * dispnew.c (clear_window_matrices, showing_window_margins_p)
16565 (allocate_matrices_for_window_redisplay, fake_current_matrices)
16566 (allocate_matrices_for_frame_redisplay, free_window_matrices)
16567 (build_frame_matrix_from_window_tree, mirror_make_current)
16568 (frame_row_to_window, mirror_line_dance, check_window_matrix_pointers)
16569 (update_window_tree, set_window_update_flags): Simplify the loop.
16570 (sync_window_with_frame_matrix_rows): Enforce live window.
16571 Use contents slot, not buffer, where appropriate.
16572 * frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P
16573 and WINDOW_HORIZONTAL_COMBINATION_P.
16574 (make_frame_visible_1): Simplify the loop.
16575 Use contents slot, not buffer, where appropriate.
16576 * xdisp.c (hscroll_window_tree, mark_window_display_accurate)
16577 (redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree)
16578 (expose_window_tree): Likewise.
16579 Use contents slot, not buffer, where appropriate.
16580 * textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW
16581 to avoid deleted windows. Use contents slot instead of buffer.
16582 * buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c:
16583 * indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c:
16584 * nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c:
16585 * xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate.
16586
16587 2013-03-28 Eli Zaretskii <eliz@gnu.org>
16588
16589 * w32fns.c (w32_wnd_proc) [ENABLE_CHECKING]: Add code to help
16590 identify the reasons for assertion violations in bug#14062 and
16591 similar ones.
16592 (Fx_show_tip): Fix compilation error under
16593 "--enable-check-lisp-object-type". (Bug#14073)
16594
16595 * image.c (g_error_free) [WINDOWSNT]: Add DEF_IMGLIB_FN.
16596 Reported by <rzl24ozi@gmail.com>.
16597
16598 2013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
16599
16600 * xdisp.c (with_echo_area_buffer_unwind_data): Save window
16601 start marker...
16602 (unwind_with_echo_area_buffer): ...to restore it here.
16603 This is needed to ensure that...
16604 (redisplay_window): ...both window markers are valid here,
16605 which is verified by eassert.
16606 * editfns.c (save_excursion_save): Do not assume that
16607 selected_window always displays the buffer.
16608 * buffer.c (Fbuffer_swap_text): Adjust window start markers.
16609 Fix comment.
16610
16611 2013-03-27 Stefan Monnier <monnier@iro.umontreal.ca>
16612
16613 * casetab.c (init_casetab_once): Don't abuse the ascii eqv table for
16614 the upcase table.
16615
16616 2013-03-27 rzl24ozi <rzl24ozi@gmail.com> (tiny changes)
16617
16618 * image.c [WINDOWSNT]: Fix calls to DEF_IMGLIB_FN for SVG function.
16619
16620 2013-03-27 Eli Zaretskii <eliz@gnu.org>
16621
16622 * w32proc.c (IsValidLocale) [__GNUC__]: Don't declare prototype,
16623 since MinGW's w32api headers do. This avoids compiler warnings.
16624
16625 * w32.c (FSCTL_GET_REPARSE_POINT) [_MSC_VER || _W64]: Don't define
16626 if already defined.
16627
16628 2013-03-26 Eli Zaretskii <eliz@gnu.org>
16629
16630 * w32.c (_REPARSE_DATA_BUFFER): Condition by _MSVC and _W64.
16631
16632 2013-03-26 Jan Djärv <jan.h.d@swipnet.se>
16633
16634 * gtkutil.c (style_changed_cb): Check if frame is live and an
16635 X frame (Bug#14038).
16636
16637 2013-03-26 Eli Zaretskii <eliz@gnu.org>
16638
16639 * w32.c (_PROCESS_MEMORY_COUNTERS_EX) [_WIN32_WINNT < 0x0500]:
16640 Define only for _WIN32_WINNT less than 0x0500.
16641 (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT) [!_W64]: Don't define for
16642 MinGW64.
16643 Move inclusion of time.h before sys/time.h, so that MinGW64 could
16644 see its own definitions of 'struct timeval' and 'struct timezone'.
16645
16646 Fix incompatibilities between MinGW.org and MinGW64 headers.
16647 * w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined.
16648
16649 * w32.c (REPARSE_DATA_BUFFER): Guard with
16650 MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined.
16651
16652 2013-03-25 Jan Djärv <jan.h.d@swipnet.se>
16653
16654 * xterm.c: Include X11/XKBlib.h
16655 (XTring_bell): Use XkbBell if HAVE_XKB (Bug#14041).
16656
16657 2013-03-24 Andreas Schwab <schwab@linux-m68k.org>
16658
16659 * alloc.c (xpalloc, Fgarbage_collect): Reorder conditions that are
16660 written backwards.
16661 * blockinput.h (input_blocked_p): Likewise.
16662 * bytecode.c (exec_byte_code): Likewise.
16663 * callproc.c (call_process_kill, call_process_cleanup)
16664 (Fcall_process): Likewise.
16665 * ccl.c (ccl_driver, resolve_symbol_ccl_program)
16666 (Fccl_execute_on_string): Likewise.
16667 * character.c (string_escape_byte8): Likewise.
16668 * charset.c (read_hex): Likewise.
16669 * cm.c (calccost): Likewise.
16670 * data.c (cons_to_unsigned): Likewise.
16671 * dired.c (directory_files_internal, file_name_completion):
16672 Likewise.
16673 * dispnew.c (scrolling_window, update_frame_1, Fsleep_for)
16674 (sit_for): Likewise.
16675 * doc.c (Fsubstitute_command_keys): Likewise.
16676 * doprnt.c (doprnt): Likewise.
16677 * editfns.c (hi_time, decode_time_components, Fformat): Likewise.
16678 * emacsgtkfixed.c: Likewise.
16679 * fileio.c (file_offset, Fwrite_region): Likewise.
16680 * floatfns.c (Fexpt, fmod_float): Likewise.
16681 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
16682 Likewise.
16683 * font.c (font_intern_prop): Likewise.
16684 * frame.c (x_set_alpha): Likewise.
16685 * gtkutil.c (get_utf8_string): Likewise.
16686 * indent.c (check_display_width): Likewise.
16687 * intervals.c (create_root_interval, rotate_right, rotate_left)
16688 (split_interval_right, split_interval_left)
16689 (adjust_intervals_for_insertion, delete_node)
16690 (interval_deletion_adjustment, adjust_intervals_for_deletion)
16691 (merge_interval_right, merge_interval_left, copy_intervals)
16692 (set_intervals_multibyte_1): Likewise.
16693 * keyboard.c (gobble_input, append_tool_bar_item): Likewise.
16694 * keymap.c (Fkey_description): Likewise.
16695 * lisp.h (FIXNUM_OVERFLOW_P, vcopy): Likewise.
16696 * lread.c (openp, read_integer, read1, string_to_number):
16697 Likewise.
16698 * menu.c (ensure_menu_items): Likewise.
16699 * minibuf.c (read_minibuf_noninteractive): Likewise.
16700 * print.c (printchar, strout): Likewise.
16701 * process.c (create_process, Faccept_process_output)
16702 (wait_reading_process_output, read_process_output, send_process)
16703 (wait_reading_process_output): Likewise.
16704 * profiler.c (make_log, handle_profiler_signal): Likewise.
16705 * regex.c (re_exec): Likewise.
16706 * regex.h: Likewise.
16707 * search.c (looking_at_1, Freplace_match): Likewise.
16708 * sysdep.c (get_child_status, procfs_ttyname)
16709 (procfs_get_total_memory): Likewise.
16710 * systime.h (EMACS_TIME_VALID_P): Likewise.
16711 * term.c (dissociate_if_controlling_tty): Likewise.
16712 * window.c (get_phys_cursor_glyph): Likewise.
16713 * xdisp.c (init_iterator, redisplay_internal, redisplay_window)
16714 (try_window_reusing_current_matrix, try_window_id, pint2hrstr):
16715 Likewise.
16716 * xfns.c (Fx_window_property): Likewise.
16717 * xmenu.c (set_frame_menubar): Likewise.
16718 * xselect.c (x_get_window_property, x_handle_dnd_message):
16719 Likewise.
16720 * xsmfns.c (smc_save_yourself_CB): Likewise.
16721 * xterm.c (x_scroll_bar_set_handle): Likewise.
16722
16723 2013-03-24 Dmitry Antipov <dmantipov@yandex.ru>
16724
16725 * xfaces.c (Finternal_face_x_get_resource): Allow 3rd (frame) argument
16726 to be optional or nil. Adjust comment and convert it to docstring.
16727 * xselect.c (Fx_send_client_event): Rename to Fx_send_client_message.
16728 * frame.c (display_x_get_resource, Fx_get_resource): Break long line.
16729
16730 2013-03-24 Paul Eggert <eggert@cs.ucla.edu>
16731
16732 Static checking by GCC 4.8-20130319.
16733 * image.c (gif_load): Assume pass < 3 to pacify GCC.
16734 * process.c (Fset_process_datagram_address)
16735 (Fmake_network_process): Check get_lisp_to_sockaddr_size return value.
16736 * xdisp.c (get_char_face_and_encoding)
16737 (get_glyph_face_and_encoding): Ensure that *CHAR2B is initialized.
16738 (get_glyph_face_and_encoding): Prepare face before possibly using it.
16739 (get_per_char_metric): Don't use CHAR2B if it might not be initialized.
16740
16741 2013-03-24 Ken Brown <kbrown@cornell.edu>
16742
16743 * w32fns.c (emacs_abort) [CYGWIN]: Define `_open' as a macro to
16744 fix compilation on 64-bit Cygwin, where underscores are not
16745 automatically prepended.
16746
16747 * w32term.c (w32_initialize): Silence compiler warning.
16748
16749 2013-03-23 Eli Zaretskii <eliz@gnu.org>
16750
16751 * w32term.c (w32fullscreen_hook): Use FRAME_NORMAL_WIDTH,
16752 FRAME_NORMAL_HEIGHT, and FRAME_PREV_FSMODE, instead of static
16753 variables, to save and restore frame dimensions.
16754 Use FRAME_NORMAL_LEFT and FRAME_NORMAL_TOP to restore frame position
16755 after returning from a 'fullscreen' configuration.
16756 use SendMessage instead of PostMessage to send the SC_RESTORE message,
16757 to avoid races between the main thread and the input thread.
16758
16759 * w32term.h (struct w32_output): New members normal_width,
16760 normal_height, normal_top, normal_left, and prev_fsmode.
16761 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP)
16762 (FRAME_NORMAL_LEFT, FRAME_PREV_FSMODE): New macros to access these
16763 members of a frame.
16764
16765 * w32term.c (w32fullscreen_hook): Record last value of the frame's
16766 'fullscreen' parameter. Always record previous width and height
16767 of the frame, except when switching out of maximized modes, so
16768 that they could be restored correctly, instead of resetting to the
16769 default frame dimensions. Send SC_RESTORE command to the frame,
16770 unless we are going to send SC_MAXIMIZE, to restore the frame
16771 resize hints in the mouse pointer shown by the window manager.
16772 (Bug#14032)
16773
16774 * frame.c (get_frame_param): Now extern for WINDOWSNT as well.
16775
16776 * lisp.h (get_frame_param): Adjust conditions for prototype
16777 declaration.
16778
16779 2013-03-22 Ken Brown <kbrown@cornell.edu>
16780
16781 * unexcw.c: Drop unneeded inclusion of w32common.h.
16782 (report_sheap_usage): Declare.
16783 (read_exe_header): Add magic numbers for x86_64.
16784 (fixup_executable): Fix printf format specifier for unsigned long
16785 argument.
16786
16787 2013-03-22 Dmitry Antipov <dmantipov@yandex.ru>
16788
16789 * frame.h (struct frame): Put menu_bar_window under #ifdef
16790 because this member is not needed when X toolkit is in use.
16791 (fset_menu_bar_window):
16792 * dispnew.c (clear_current_matrices, clear_desired_matrices)
16793 (free_glyphs, update_frame):
16794 * xdisp.c (expose_frame): Likewise.
16795 (display_menu_bar): Likewise. Remove redundant eassert.
16796 * window.h (WINDOW_MENU_BAR_P): Always define to 0 if X
16797 toolkit is in use.
16798
16799 2013-03-21 Paul Eggert <eggert@cs.ucla.edu>
16800
16801 Use functions and constants to manipulate Lisp_Save_Value objects.
16802 This replaces code that used macros and strings and token-pasting.
16803 The change makes the C source a bit easier to follow,
16804 and shrinks the Emacs executable a bit.
16805 * alloc.c: Verify some properties of Lisp_Save_Value's representation.
16806 (make_save_value): Change 1st arg from string to enum. All callers
16807 changed.
16808 (INTX): Remove.
16809 (mark_object): Use if, not #if, for GC_MARK_STACK.
16810 * lisp.h (SAVE_VALUEP, XSAVE_VALUE, XSAVE_POINTER, XSAVE_INTEGER)
16811 (XSAVE_OBJECT): Now functions, not macros.
16812 (STRING_BYTES_BOUND): Now just a macro, not a constant too;
16813 the constant was never used.
16814 (SAVE_SLOT_BITS, SAVE_VALUE_SLOTS, SAVE_TYPE_BITS, SAVE_TYPE_INT_INT)
16815 (SAVE_TYPE_INT_INT_INT, SAVE_TYPE_OBJ_OBJ, SAVE_TYPE_OBJ_OBJ_OBJ)
16816 (SAVE_TYPE_OBJ_OBJ_OBJ_OBJ, SAVE_TYPE_PTR_INT, SAVE_TYPE_PTR_OBJ)
16817 (SAVE_TYPE_PTR_PTR, SAVE_TYPE_PTR_PTR_OBJ, SAVE_TYPE_MEMORY):
16818 New constants.
16819 (struct Lisp_Save_Value): Replace members area, type0, type1, type2,
16820 type3 with a single member save_type. All uses changed.
16821 (save_type, set_save_pointer, set_save_integer): New functions.
16822 * print.c (PRINTX): Remove.
16823
16824 * alloc.c: Remove redundant static declarations.
16825
16826 2013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
16827
16828 * window.h (struct window): Convert left_col, top_line, total_lines
16829 and total_cols from Lisp_Objects to integers. Adjust comments.
16830 (wset_left_col, wset_top_line, wset_total_cols, wset_total_lines):
16831 Remove.
16832 (WINDOW_TOTAL_COLS, WINDOW_TOTAL_LINES, WINDOW_LEFT_EDGE_COL)
16833 (WINDOW_TOP_EDGE_LINE): Drop Lisp_Object to integer conversion.
16834 * dispnew.c, frame.c, w32fns.c, window.c, xdisp.c, xfns.c:
16835 Adjust users where appropriate.
16836
16837 2013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
16838
16839 * frame.h (struct frame): Drop resx and resy because the same data is
16840 available from window system-specific output context. Adjust users.
16841 (default_pixels_per_inch_x, default_pixels_per_inch_y):
16842 New functions to provide defaults when no window system available.
16843 (FRAME_RES_X, FRAME_RES_Y): New macros.
16844 (NUMVAL): Move from xdisp.c.
16845 * font.c (font_pixel_size, font_find_for_lface, font_open_for_lface)
16846 (Ffont_face_attributes, Fopen_font):
16847 * image.c (gs_load):
16848 * w32font.c (fill_in_logfont):
16849 * xdisp.c (calc_pixel_width_or_height):
16850 * xfaces.c (Fx_family_fonts, set_lface_from_font): Use them.
16851 * xsettings.c (apply_xft_settings): Drop frame loop and adjust comment.
16852
16853 2013-03-20 Kenichi Handa <handa@gnu.org>
16854
16855 * coding.c (syms_of_coding): Initialize disable_ascii_optimization
16856 to 1 (temporary workaround until a bug related to ASCII
16857 optimization is fixed).
16858
16859 2013-03-19 Dmitry Antipov <dmantipov@yandex.ru>
16860
16861 * window.c (Fwindow_combination_limit, Fset_window_combination_limit):
16862 Signal error if window is not internal. Adjust docstring.
16863 (delete_all_child_windows): Use combination_limit to save the buffer.
16864 (Fset_window_configuration): Adjust accordingly.
16865 * print.c (syms_of_print): Initialize debugging output not here...
16866 (init_print_once): ...but in a new function here.
16867 * lisp.h (init_print_once): Add prototype.
16868 * emacs.c (main): Add call to init_print_once. Adjust comments.
16869
16870 2013-03-18 Dmitry Antipov <dmantipov@yandex.ru>
16871
16872 * window.c (window_resize_check, window_resize_apply)
16873 (window_from_coordinates, recombine_windows, set_window_buffer)
16874 (make_parent_window, Fwindow_resize_apply, resize_frame_windows)
16875 (Fsplit_window_internal, Fdelete_window_internal)
16876 (freeze_window_starts): Use bool for booleans.
16877 * window.h (window_frame_coordinates, resize_frame_windows)
16878 (freeze_window_starts, set_window_buffer): Adjust prototypes.
16879
16880 2013-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
16881
16882 * dispnew.c (bitch_at_user): Use `user-error'.
16883
16884 2013-03-17 Ken Brown <kbrown@cornell.edu>
16885
16886 * dispextern.h (RGB_PIXEL_COLOR): Move here from image.c. Use it
16887 as return type of image_background. (Bug#13981)
16888 * image.c (RGB_PIXEL_COLOR): Move to dispextern.h.
16889
16890 2013-03-16 Jan Djärv <jan.h.d@swipnet.se>
16891
16892 * nsterm.m (updateFrameSize:): Change resize increments if needed.
16893 (ns_select): Don't return with result uninitialized.
16894
16895 * nsterm.h (EmacsSavePanel, EmacsOpenPanel): Add getFilename
16896 and getDirectory.
16897
16898 * nsfns.m (ns_filename_from_panel, ns_directory_from_panel):
16899 New functions.
16900 (Fns_read_file_name): ret is BOOL. If ! dir_only_p, don't choose
16901 directories. If filename is nil, get directory name (Bug#13932).
16902 Use getFilename and getDirectory.
16903 (getFilename, getDirectory): New methods for EmacsSavePanel and
16904 EmacsOpenPanel.
16905 (ok:): In EmacsOpenPanel, if we can't choose directories, just return.
16906
16907 2013-03-15 Paul Eggert <eggert@cs.ucla.edu>
16908
16909 * coding.c (decode_coding_gap): Fix typo caught by static checking.
16910
16911 2013-03-15 Kenichi Handa <handa@gnu.org>
16912
16913 * insdel.c (insert_from_gap): New arg text_at_gap_tail.
16914 (adjust_after_replace): Make it back to static. Delete the third
16915 arg text_at_gap_tail. Cancel the code for handling it.
16916
16917 * coding.h (struct coding_system): New member eol_seen.
16918
16919 * coding.c (detect_ascii): New function.
16920 (detect_coding): Set coding->head_ascii and coding->eol_seen only
16921 when the source bytes are actually scanned. On detecting for
16922 coding_category_utf_8_auto, call detect_ascii instead of scanning
16923 source bytes directly.
16924 (produce_chars): Call insert_from_gap with the new arg 0.
16925 (encode_coding): Likewise.
16926 (decode_coding_gap): Control ASCII optimization by the variable
16927 disable_ascii_optimization instead of #ifndef .. #endif.
16928 Deccode EOL format according to coding->eol_seen.
16929 (syms_of_coding): Declare disable-ascii-optimization as a Lisp
16930 variable.
16931
16932 * lisp.h (adjust_after_replace): Cancel externing it.
16933 (insert_from_gap): Adjust prototype.
16934
16935 2013-03-15 Eli Zaretskii <eliz@gnu.org>
16936
16937 * w32term.c (w32fullscreen_hook): Swap FULLSCREEN_BOTH and
16938 FULLSCREEN_MAXIMIZED. (Bug#13935)
16939
16940 2013-03-15 Dmitry Antipov <dmantipov@yandex.ru>
16941
16942 * region-cache.c (find_cache_boundary, move_cache_gap)
16943 (insert_cache_boundary, delete_cache_boundaries, set_cache_region):
16944 Simplify debugging check and convert to eassert. Adjust comment.
16945 (pp_cache): Put under ENABLE_CHECKING.
16946
16947 2013-03-14 Eli Zaretskii <eliz@gnu.org>
16948
16949 * w32term.c (w32_read_socket) <WM_WINDOWPOSCHANGED>: Remove old
16950 and incorrect code. Treat WM_WINDOWPOSCHANGED like WM_ACTIVATE
16951 and WM_ACTIVATEAPP.
16952 (w32fullscreen_hook): If the frame is visible, reset
16953 f->want_fullscreen flag after changing the frame size. If the
16954 frame is not visible, set f->want_fullscreen to FULLSCREEN_WAIT.
16955 (Bug#13953)
16956
16957 2013-03-13 Daniel Colascione <dancol@dancol.org>
16958
16959 * emacs.c (main): Call syms_of_cygw32 on CYGWIN non-NTGUI builds
16960 too so that these builds can use Cygwin's file conversion
16961 functions. (We've been building and linking cygw32.o all along
16962 and just not using it.)
16963
16964 2013-03-13 Paul Eggert <eggert@cs.ucla.edu>
16965
16966 File synchronization fixes (Bug#13944).
16967 * Makefile.in (LIB_FDATASYNC): New macro.
16968 (LIBES): Use it.
16969 * conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
16970 * fileio.c (Fwrite_region, write_region_inhibit_fsync):
16971 Don't worry about HAVE_FSYNC, since a substitute fsync is
16972 available if the system lacks one.
16973 (Fwrite_regin): Retry fsync if interrupted.
16974
16975 2013-03-13 Eli Zaretskii <eliz@gnu.org>
16976
16977 * w32term.c (w32_read_socket): If the Emacs frame is being
16978 activated, call w32fullscreen_hook, to make sure the new frame
16979 dimensions are in effect. (Bug#13937)
16980
16981 2013-03-13 Dmitry Antipov <dmantipov@yandex.ru>
16982
16983 * xdisp.c (init_iterator): Simplify because both character and byte
16984 positions are either specified or -1. Add eassert. Adjust comment.
16985 * window.c (Fscroll_other_window): Use SET_PT_BOTH because both
16986 character and byte positions can be obtained from marker.
16987
16988 2013-03-13 Paul Eggert <eggert@cs.ucla.edu>
16989
16990 Static checking by Sun C 5.12.
16991 * alloc.c (buffer_memory_full) [REL_ALLOC]:
16992 * bytecode.c (exec_byte_code):
16993 * dispnew.c (init_display):
16994 * eval.c (error):
16995 * fileio.c (Fsubstitute_in_file_name):
16996 * keyboard.c (Fevent_convert_list):
16997 * keymap.c (Fsingle_key_description):
16998 * term.c (maybe_fatal, fatal):
16999 * xfns.c (Fx_display_backing_store, Fx_display_visual_class):
17000 * xsmfns.c (Fhandle_save_session):
17001 Omit unreachable code.
17002 * keymap.c (map_keymap_char_table_item): Cast void * to
17003 a function pointer type; the C Standard requires this.
17004
17005 * sysdep.c: Remove a use of BSD_SYSTEM, which I'm trying to phase out.
17006 Include <sys/param.h> unconditionally, as that works elsewhere and
17007 is simpler here. Include <sys/sysctl.h> if DARWIN_OS ||
17008 __FreeBSD__, not if BSD_SYSTEM, since it's needed only for Darwin
17009 and FreeBSD now.
17010
17011 See ChangeLog.12 for earlier changes.
17012
17013 ;; Local Variables:
17014 ;; coding: utf-8
17015 ;; End:
17016
17017 Copyright (C) 2011-2015 Free Software Foundation, Inc.
17018
17019 This file is part of GNU Emacs.
17020
17021 GNU Emacs is free software: you can redistribute it and/or modify
17022 it under the terms of the GNU General Public License as published by
17023 the Free Software Foundation, either version 3 of the License, or
17024 (at your option) any later version.
17025
17026 GNU Emacs is distributed in the hope that it will be useful,
17027 but WITHOUT ANY WARRANTY; without even the implied warranty of
17028 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17029 GNU General Public License for more details.
17030
17031 You should have received a copy of the GNU General Public License
17032 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.