This incorporates:
2016-01-24 openat_proc_name: fix last '/' overwritten on OS/2 kLIBC
2016-01-24 closedir, dirfd, opendir: port to OpenSolaris 5.10
2016-01-15 detect utimes() correctly on OS/2 kLIBC
2016-01-15 openat_proc_name: port to OS/2 kLIBC
2016-01-14 stdint: check _INTPTR_T_DECLARED for intptr_t etc.
2016-01-14 opendir, closedir, dirfd, fdopendir: port to OS/2 kLIBC
2016-01-14 dup, dup2, fcntl: support a directory fd on OS/2 kLIBC
2016-01-14 binary-io: don't put fd in binary mode if a console on EMX
2016-01-14 sig2str: list all signals on FreeBSD >= 7
2016-01-13 acl-permissions: port to USE_ACL==0 platforms
2016-01-12 mktime: rename macro to avoid glibc clash
2016-01-12 Port "$@" to OpenIndiana ksh93
2016-01-12 Port Universal Time settings to strict POSIX
* build-aux/gitlog-to-changelog, build-aux/update-copyright:
* doc/misc/texinfo.tex, lib/acl-internal.c, lib/acl-internal.h:
* lib/binary-io.h, lib/dirent.in.h, lib/dirfd.c, lib/dup2.c:
* lib/fcntl.c, lib/fdopendir.c, lib/mktime.c, lib/openat-proc.c:
* lib/sig2str.h, lib/stdint.in.h, m4/dirfd.m4, m4/dup2.m4:
* m4/fcntl.m4, m4/utimes.m4:
Copy from gnulib.
* m4/gnulib-comp.m4: Regenerate.
Otherwise, 'make pdf' did not work (Bug#22416).
* doc/misc/tramp.texi (xxx, yyy): Remove macros.
(trampfn): Specialize to the case where METHOD is nonempty.
The 2nd argument is now user@host, not 2nd user and 3rd host args.
All uses changed.
(trampf): New macro.
* lisp/emacs-lisp/cl-generic.el: Remove outdated TODO item.
(cl-defgeneric): Rename BODY to DEFAULT-BODY.
(cl-defmethod): Mention that multiple dispatch arguments are
allowed. Document supported types. (Bug#22336)
* lisp/progmodes/cc-engine.el (c-guess-basic-syntax CASE 14): Check the
context of case labels (including "default") more rigorously.
(c-guess-basic-syntax CASE 15): Consequential amendment.
* lisp/progmodes/cc-langs.el (c-modifier-kwds): Add "default" to Java's value.
* doc/lispref/control.texi (Pattern matching case statement):
Reorganize, expand, and improve wording.
* etc/NEWS: Mention that 'pcase' changes are documented.
Co-authored-by: John Wiegley <johnw@gnu.org>
Co-authored-by: Michael Heerdegen <michael_heerdegen@web.de>
Problem reported by Alexander Kuleshov in:
http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg01289.html
* src/gtkutil.c (xg_get_page_setup):
Use switch rather than if-then-else.
* src/image.c (COLOR_TABLE_SUPPORT):
Define directly rather than via #define and optional later #undef.
(lookup_rgb_color) [USE_CAIRO && ENABLE_CHECKING]:
Crash when the pixel is undefined, as there is a genuine bug
here (Bug#22442).
* src/image.c (tiff_load, gif_load, svg_load_image)
(x_kill_gs_process) [USE_CAIRO]:
* src/xterm.c (x_draw_fringe_bitmap) [USE_CAIRO]:
Omit unused locals, or move them to where they’re needed.
(x_clear_area1): Now ATTRIBUTE_UNUSED.
* doc/emacs/dired.texi (Operating on Files): Update descriptions
of 'A' and 'Q' now bound to 'dired-do-find-regexp' and
'dired-do-find-regexp-and-replace'.
* etc/NEWS: Mention xref-related changes in Dired.
* src/xdisp.c (dump_glyph): Redo the call to fprintf to avoid
putting #if inside the arguments to a standard function, which
the C standard says has undefined behavior.
* cc-engine.el (c-forward-declarator): New function.
(c-in-knr-argdecl): Before recognizing a K&R argument declaration, check it is
contained in the preceding arg list.
* cc-fonts.el (c-font-lock-declarators): Use the new function
`c-forward-declarator' in place of inline code.
Adjust the newly-added Xwidgets code so that it uses a more-typical
Emacs style. This should not affect behavior, except that in
a few places it adds runtime checks that Lisp arguments are of
the proper type, and in one place it uses more-precise arithmetic.
* src/buffer.c, src/dispnew.c, src/emacs.c, src/emacsgtkfixed.c:
* src/emacs.c, src/print.c, src/window.c, src/xdisp.c, src/xterm.c:
Include xwidget.h unconditionally.
* src/buffer.c (Fkill_buffer):
* src/dispnew.c (update_window):
* src/emacs.c (main):
* src/print.c (print_object):
* src/window.c (Fdelete_window_internal):
* src/xdisp.c (handle_single_display_spec, push_it, pop_it)
(get_next_element, set_iterator_to_next, next_element_from_xwidget)
(dump_glyph, calc_pixel_width_or_height, BUILD_GLYPH_STRINGS_XW)
(BUILD_GLYPH_STRINGS, x_produce_glyphs, get_window_cursor_type):
* src/xterm.c (x_draw_glyph_string, x_draw_bar_cursor):
Call xwidget functions and macros without worrying about
HAVE_XWIDGETS when the code is a no-op on non-xwidget
platforms.
* src/dispextern.h (XWIDGET_GLYPH, struct glyph_string.xwidget)
(IT_XWIDGET, GET_FROM_XWIDGET, struct it.u.xwidget)
(struct it.xwidget):
* src/lisp.h (PVEC_XWIDGET, PVEC_XWIDGET_VIEW):
Always define.
* src/emacsgtkfixed.h: Omit unnecessary comment.
* src/keyboard.c: Fix spacing.
* src/xdisp.c (BUILD_XWIDGET_GLYPH_STRING, produce_xwidget_glyph):
Define to be a no-op if not HAVE_XWIDGETS.
* src/xwidget.c: Include xwidget.h first (after config.h)
to make sure that it can stand by itself.
(Fmake_xwidget, Fxwidget_webkit_execute_script):
Fix typo in doc string.
(Fmake_xwidget): Check type of args.
(Fmake_xwidget, offscreen_damage_event)
(webkit_document_load_finished_cb, webkit_download_cb)
(webkit_new_window_policy_decision_requested_cb)
(webkit_navigation_policy_decision_requested_cb)
(xwidget_osr_draw_cb, xwidget_osr_event_forward)
(xwidget_osr_event_set_embedder, xwidget_init_view):
Omit unnecessary casts.
* src/xwidget.c (Fmake_xwidget, xwidget_hidden)
(xwidget_show_view, xwidget_hide_view)
(x_draw_xwidget_glyph_string, xwidget_start_redisplay, xwidget_touch)
(xwidget_touched):
* src/xwidget.h (struct xwidget.kill_without_query)
(struct xwidget_view.redisplayed, struct xwidget_view.hidden):
Use bool for boolean.
* src/xwidget.c (store_xwidget_event_string, Fxwidget_size_request):
Simplify by using list functions.
(WEBKIT_FN_INIT): Omit unnecessary test for nil.
(Fxwidget_resize): Check type of integer args
before doing any work. Check that they are nonnegative.
(Fxwidget_set_adjustment): Check type of integer arg.
Avoid redundant call to gtk_scrolled_window_get_vadjustment.
Simplify. Use double, not float.
(Fxwidget_info, Fxwidget_view_info): Simplify by using CALLN.
(valid_xwidget_spec_p): Simplify.
(xwidget_spec_value): Omit unused arg FOUND. All callers changed.
* src/xwidget.h: Include lisp.h first, so that includers do
not need to worry about doing that before including this file.
Make this .h file safe to include even on non-HAVE_XWIDGETS
configurations, to simplify the includers.
(x_draw_xwidget_glyph_string, syms_of_xwidget, valid_xwidget_spec_p)
(xwidget_end_redisplay, lookup_xwidget)
(xwidget_view_delete_all_in_window, kill_buffer_xwidgets):
Now a no-op if !HAVE_XWIDGETS, to simplify callers.
(struct glyph_matrix, struct glyph_string, struct xwidget)
(struct xwidget_view, struct window):
New forward or incomplete decls, so that includers need not
assume the corresponding .h files are already included, or that
HAVE_XWIDGETS is defined.
(struct xwidget_type, xwidget_from_id): Remove; unused.
* configure.ac (--with-file-notification): Add kqueue.
(top): Remove special test for "${HAVE_NS}" and
${with_file_notification}, this is handled inside gfilenotify
tests. Add kqueue tests. Use NOTIFY_CFLAGS and NOTIFY_LIBS
instead of library specific variables. Add error message for
gfile on Nextstep.
* doc/lispref/os.texi (File Notifications): Add kqueue as backend.
Fix some glitches in the example.
* etc/NEWS: Mention kqueue.
* lisp/filenotify.el (file-notify--library)
(file-notify-descriptors, file-notify-callback)
(file-notify-add-watch, file-notify-rm-watch)
(file-notify-valid-p): Add kqueue support.
(file-notify--rm-descriptor): Remove WHAT arg.
* src/Makefile.in: Use NOTIFY_CFLAGS and NOTIFY_LIBS.
* src/emacs.c (main): Call globals_of_kqueue and syms_of_kqueue.
* src/inotify.c (inotifyevent_to_event): Extract file name from
watch_object if the event doesn't provide it.
(Finotify_add_watch): Add file name to watch_object.
* src/keyboard.c (make_lispy_event): Check also for HAVE_KQUEUE.
* src/kqueue.c: New file.
* src/lisp.h: Declare extern globals_of_kqueue and syms_of_kqueue.
* test/automated/file-notify-tests.el
(file-notify--test-expected-events): Remove.
(file-notify--test-cleanup): Do not set that variable.
(file-notify--test-timeout) Use different timeouts for
different libraries.
(file-notify--test-library): New defun.
(file-notify--test-event-test): Make stronger checks.
(file-notify--test-with-events): EVENTS can also be a list of
lists. Flush outstanding events before running the body.
Make timeout heuristically depend on the number of events.
(file-notify-test01-add-watch, file-notify-test02-events)
(file-notify-test04-file-validity, file-notify-test05-dir-validity):
Rewrite in order to call file monitors but directory monitors.
(file-notify-test02-events, file-notify-test04-file-validity): Do
not skip cygwin tests. Add additional test for file creation.
Adapt expected result for different backends.
(file-notify-test03-autorevert): Some of the tests don't work for
w32notify.
(file-notify-test06-many-events): New test.
These were recently added, mostly as part of xwidget code.
* src/emacsgtkfixed.c (emacs_fixed_get_type): Now static.
(EMACS_FIXED, EMACS_FIXED_GET_CLASS):
Now static functions here, not macros in emacsgtkfixed.h.
* src/emacsgtkfixed.h (EMACS_TYPE_FIXED):
Remove. All uses replaced by definiens.
(EMACS_FIXED, EMACS_FIXED_GET_CLASS):
Remove; these are now static functions in emacsgtkfixed.c.
(EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS):
Remove; unused.
(emacs_fixed_get_type): Remove decl; no longer extern.
* src/xwidget.c (offscreen_damage_event)
(webkit_mime_type_policy_typedecision_requested_cb)
(webkit_new_window_policy_decision_requested_cb)
(webkit_navigation_policy_decision_requested_cb)
(xwidget_spec_value, xwidget_view_lookup)
(xwidget_start_redisplay, xwidget_touch):
Now static.
* src/xwidget.h (xwidget_start_redisplay, xwidget_touch):
Remove decls.
I ran into this problem on my Fedora 23 installation;
Emacs configured but did not build when --with-xwidgets was specified.
* configure.ac (HAVE_WEBKIT, HAVE_GIR): Omit unnecessary initializations.
(DOES_XWIDGETS_USE_GIR): New var.
If --with-xwidgets is specified, report an error if not
doable, to be consistent with the other --with options.
Require webkitgtk3 to use Xwidgets, as the Xwidgets code does
not work at all without webkitgtk3. Simplify use of
EMACS_CHECK_MODULES. Output message about gobject
introspection only if xwidgets are used.
* etc/NEWS: Users need webkitgtk3, not merely webkit.
* src/xwidget.c (syms_of_xwidget): Don’t worry about HAVE_WEBKIT_OSR,
since this file is no longer compiled if webkitgtk3 is not available.