(wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
xg_select.
* xgselect.c: Add defined (HAVE_GSETTINGS).
(xgselect_initialize): Ditto.
* xsettings.c (store_monospaced_changed): Take new font as arg and
check for change against current_mono_font.
(EMACS_TYPE_SETTINGS): Remove this and related defines.
(emacs_settings_constructor, emacs_settings_get_property)
(emacs_settings_set_property, emacs_settings_class_init)
(emacs_settings_init, gsettings_obj): Remove.
(something_changedCB): New function for HAVE_GSETTINGS.
(something_changedCB): HAVE_GCONF: Call store_monospaced_changed
with value as argument.
(init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
g_settings_new. Do not create gsettings_obj.
Remove calls to g_settings_bind. Connect something_changedCB to
"changed".
Fixes: debbugs:8967
Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
signed bit field, as this assumption is not portable and it makes
Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
"char debug_on_exit : 1" as this is not portable either; instead,
use the portable "unsigned int debug_on_exit : 1". Remove unused
member evalargs. Remove obsolete comments about cc bombing out.
* configure.in (gsettings): New option and check for GSettings.
* src/Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Renamed from
GCONF_CFLAGS/LIBS.
* src/xsettings.c: Include glib.h if HAVE_GSETTINGS.
Let HAVE_GSETTINGS override HAVE_GCONF.
(store_monospaced_changed): New function.
(EMACS_SETTINGS): A new type derived from GObject to handle
GSettings notifications.
(emacs_settings_constructor, emacs_settings_get_property)
(emacs_settings_set_property, emacs_settings_class_init):
New functions.
(gsettings_client, gsettings_obj): New variables.
(GSETTINGS_SCHEMA): New define.
(something_changedCB): Call store_monospaced_changed.
(init_gsettings): New function.
(xsettings_initialize): Call init_gsettings.
(syms_of_xsettings): Initialize gsettings_client, gsettings_obj
to NULL.
* window.c (resize_root_window, grow_mini_window)
(shrink_mini_window): Rename Qresize_root_window to
Qwindow_resize_root_window and Qresize_root_window_vertically to
Qwindow_resize_root_window_vertically.
* window.el (normalize-live-buffer): Rename to
window-normalize-buffer.
(normalize-live-frame): Rename to window-normalize-frame.
(normalize-any-window): Rename to window-normalize-any-window.
(normalize-live-window): Rename to window-normalize-live-window.
(make-window-atom): Rename to window-make-atom.
(window-resize-reset): Rename to window--resize-reset.
(window-resize-reset-1): Rename to window--resize-reset-1.
(resize-mini-window): Rename to window--resize-mini-window.
(resize-subwindows-skip-p): Rename to
window--resize-subwindows-skip-p.
(resize-subwindows-normal): Rename to
window--resize-subwindows-normal.
(resize-subwindows): Rename to window--resize-subwindows.
(resize-other-windows): Rename to window--resize-siblings.
(resize-this-window): Rename to window--resize-this-window.
(resize-root-window): Rename to window--resize-root-window.
(resize-root-window-vertically): Rename to
window--resize-root-window-vertically.
(normalize-buffer-to-display): Rename to
window-normalize-buffer-to-display.
(normalize-buffer-to-switch-to): Rename to
window-normalize-buffer-to-switch-to.
Correspondingly update all callers of the functions listed
above.
(display-buffer-alist, display-buffer-normalize-arguments)
(display-buffer-normalize-options, display-buffer)
(display-buffer-alist-set): Use "function" instead of
"fun-with-args".
* window.c (Fwindow_vchild): Rename to Fwindow_top_child.
(Fwindow_hchild): Rename to Fwindow_left_child.
(Fwindow_next): Rename to Fwindow_next_sibling.
(Fwindow_prev): Rename to Fwindow_prev_sibling.
* window.el (window-right, window-left, window-child)
(window-child-count, window-last-child)
(window-iso-combination-p, walk-window-tree-1)
(window-atom-check-1, window-tree-1, delete-window)
(window-state-get-1, display-buffer-even-window-sizes): Adapt to
new naming conventions - window-vchild, window-hchild,
window-next and window-prev are now called window-top-child,
window-left-child, window-next-sibling and window-prev-sibling
respectively.
* buffer.c (Qclone_number): Declare static and DEFSYM it.
(sort_overlays, overlay_strings): When an overlay's clone number
matches the window's clone number process the overlay even if
the overlay's window property doesn't match the current window.
* emacsgtkfixed.c: State that this is only used with Gtk+3.
(_EmacsFixedPrivate): Remove minwidth/height.
Add struct frame *f.
(emacs_fixed_init): Initialize priv->f.
(get_parent_class, emacs_fixed_set_min_size): Remove.
(emacs_fixed_new): Set priv->f to argument.
(emacs_fixed_get_preferred_width)
(emacs_fixed_get_preferred_height): Use min_width/height from
frames size_hint to set minimum and natural.
(XSetWMSizeHints, XSetWMNormalHints): Override these functions
and use min_width/height from frames size_hint to set
min_width/height (Bug#8919).
* emacsgtkfixed.h: State that this is only used with Gtk+3.
(emacs_fixed_set_min_size): Remove.
(emacs_fixed_new): Take frame as argument.
* gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
(x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size. Fix
indentation.
* process.c (wait_reading_process_output): Bypass select if
waiting for a cell while ignoring keyboard input, and input is
pending. Suggested by Jan Djärv.
* Makefile.in (GNULIB_MODULES): Add dup2.
* configure.in: Do not check for dup2; gnulib does that now.
* lib/dup2.c, m4/dup2.m4: New files, from gnulib.
* src/sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
* keyboard.h (struct keyboard.kbd_macro_bufsize):
* macros.c (Fstart_kbd_macro, store_kbd_macro_char):
Use ptrdiff_t, not int, for sizes.
Don't increment bufsize until after realloc succeeds.
Check for size-calculation overflow.
(Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
(Fload, openp, read_buffer_size, read1)
(substitute_object_recurse, read_vector, read_list, map_obarray):
Use ptrdiff_t, not int, for sizes.
(read1): Use EMACS_INT, not int, for sizes.
(read_integer): Radix is now EMACS_INT, not int,
to improve quality of diagnostics for out-of-range radices.
Calculate buffer size correctly for out-of-range radices.
(read1): Check for integer overflow in radices, and in
read-circle numbers.
The following patches are for when GLYPH_DEBUG && !XASSERT.
* dispextern.h (trace_redisplay_p, dump_glyph_string):
* dispnew.c (flush_stdout):
* xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
Mark as externally visible.
* dispnew.c (check_window_matrix_pointers): Now static.
* dispnew.c (window_to_frame_vpos):
* xfns.c (unwind_create_frame):
* xterm.c (x_check_font): Remove unused local.
* scroll.c (CHECK_BOUNDS):
* xfaces.c (cache_fache): Rename local to avoid shadowing.
* xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
* xdisp.c (check_window_end): Now a no-op if !XASSERTS.
(debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
(debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
Now static.
(debug_method_add): Use va_list and vsprintf rather than relying
on undefined behavior with wrong number of arguments.
(dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
Don't assume ptrdiff_t and EMACS_INT are the same width as int.
In this code, it's OK to assume C99 behavior for ptrdiff_t formats
since we're not interested in debugging glyphs with old libraries.
* xfaces.c (cache_face): Move debugging code earlier; this pacifies
GCC 4.6.0's static checking.
* composite.c (find_automatic_composition): Omit needless 'return 0;'
that Sun C diagnosed.
* fns.c (secure_hash): Fix pointer signedness issue.
* intervals.c (static_offset_intervals): New function.
(offset_intervals): Use it.
* xrdb.c (magic_file_p, search_magic_path):
Omit last arg SUFFIX; it was always 0. All callers changed.
(magic_file_p): Use ptrdiff_t, not int. Check for size overflow.