K. Handa [Sat, 2 Jan 2016 07:36:21 +0000 (16:36 +0900)]
support rendering of wider range of combinging characters by ftfont backend
* lisp/language/hebrew.el (hebrew-shape-gstring): If the font backend
supports rendering of combining characters, call
font-shape-gstring.
* src/font.c (Ffont_get): Handle `combining-capability' property.
(syms_of_font): New symbol ":combining-capability'.
* src/font.h (struct font_driver): New member combining_capability.
* src/ftfont.c: Include "category.h".
(ftfont_driver): Initialize combining_capability to
ftfont_combining_capability.
(ftfont_shape_by_flt): If OTF is null, try to find a suitable
FLT in advance.
(ftfont_combining_capability): New function.
Anders Lindgren [Tue, 26 Jan 2016 12:51:59 +0000 (13:51 +0100)]
Fixed NextStep fullscreen issue (bug#22468)
When in fullscreen mode, `[screen visibleFrame]' sometimes
includes, sometimes excludes the menu bar. This could cause
a frame to be placed too low when in fullscreen mode.
* src/nsterm.m (ns_menu_bar_should_be_hidden): Trace.
(constrain_frame_rect): New parameter, isFullscreen, when true don't
query the height of the menu bar.
(ns_constrain_all_frames): Pass `false' (isFullscreen) to
`constrain_frame_rect'.
([EmacsView initFrameFromEmacs:]): Trace.
([EmacsView isFullscreen]): Trace.
([EmacsWindow constrainFrameRect:toScreen:]): Pass fullscreen
state to `constrain_frame_rect'.
Artur Malabarba [Mon, 25 Jan 2016 22:42:50 +0000 (22:42 +0000)]
* lisp/files.el: Use a fixed file name for the second dir-locals file
(dir-locals-file): Revert to its original fixed value.
(dir-locals-file-2): New const.
(dir-locals--all-files): Don't use `file-name-all-completions'.
Instead, just check for the 2 dir-locals files and return a list
of the ones that exit (if any).
* etc/NEWS: Document the change.
* doc/emacs/custom.texi (Directory Variables): Document the change.
* doc/lispref/variables.texi (Directory Local Variables): Update
accordingly.
Returning a cache remains unchanged, but the case of returning a
file (or pattern) is now changed to return the contaning
directory.
(dir-locals-read-from-file): Rename to `dir-locals-read-from-dir'
and make obsolete.
(dir-locals-read-from-dir): Simplify accordingly.
(hack-dir-local-variables): Simplify accordingly and rename a
variable.
Paul Eggert [Mon, 25 Jan 2016 01:27:52 +0000 (17:27 -0800)]
Port "$@" to OpenIndiana ksh93
In http://lists.gnu.org/archive/html/bug-autoconf/2015-12/msg00000.html
Pavel Raiskup reports that ${1+"$@"} runs afoul of a bug in /bin/sh
(derived from ksh 93t+ 2010-03-05). ${1+"$@"} works around an ancient
bug in long-dead shells, so remove the workaround.
* admin/check-doc-strings, configure.ac, lib-src/rcs2log:
Use plain "$@" rather than ${1+"$@"}.
Paul Eggert [Mon, 25 Jan 2016 00:09:15 +0000 (16:09 -0800)]
Improve wording for SMB support
* doc/misc/tramp.texi (External methods): Improve and modernize
wording for discussion of smbclient. There is no longer any
need to mention the laundry list of old MS Windows implementations
of SMB and CIFS, nor to mention CIFS. Also, give a URL for Samba.
Paul Eggert [Sun, 24 Jan 2016 22:50:47 +0000 (14:50 -0800)]
Merge from gnulib
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.
Replace solecisms like "This allow to do something" with a correct
alternative, such as "This allow you to do something", "This allows
something to be done" or "This allows the doing of something".
Paul Eggert [Sun, 24 Jan 2016 19:40:26 +0000 (11:40 -0800)]
Port Tramp manual to latest Texinfo
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.
Dmitry Gutov [Sun, 24 Jan 2016 00:35:39 +0000 (03:35 +0300)]
Update cl-defgeneric and cl-defmethod docstrings
* 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)
Alan Mackenzie [Sat, 23 Jan 2016 19:38:49 +0000 (19:38 +0000)]
Distinguish the two meanings of Java's keyword "default". Fixes bug #22358.
* 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.
Paul Eggert [Sat, 23 Jan 2016 09:02:00 +0000 (01:02 -0800)]
Pacify --enable-gcc-warnings --with-cairo
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.
Eli Zaretskii [Sat, 23 Jan 2016 06:53:35 +0000 (08:53 +0200)]
Update documentation for Dired search and replace
* 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.
Paul Eggert [Fri, 22 Jan 2016 23:27:55 +0000 (15:27 -0800)]
Port recent xdisp.c fix to picky C compilers
* 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.
Alan Mackenzie [Fri, 22 Jan 2016 22:31:23 +0000 (22:31 +0000)]
Prevent spurious recognition of K&R argument declarations. Fixes bug #2203
* 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.
Paul Eggert [Fri, 22 Jan 2016 19:15:05 +0000 (11:15 -0800)]
xwidgets style cleanup
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.
Michael Albinus [Fri, 22 Jan 2016 18:56:09 +0000 (19:56 +0100)]
Backport kqueue integration from master
* 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.
* 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.
Paul Eggert [Wed, 20 Jan 2016 22:55:09 +0000 (14:55 -0800)]
Don’t export C symbols not used elsewhere
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.
Paul Eggert [Wed, 20 Jan 2016 19:06:01 +0000 (11:06 -0800)]
Port to platforms with gtk3 but not webkitgtk3
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.
Katsumi Yamaoka [Tue, 19 Jan 2016 22:10:09 +0000 (22:10 +0000)]
* lisp/gnus/nnir.el (nnir-request-update-mark):
Default to the original mark.
cf. <http://thread.gmane.org/gmane.emacs.gnus.general/86583>
and <http://thread.gmane.org/gmane.emacs.gnus.general/86640>
Eli Zaretskii [Tue, 19 Jan 2016 17:31:05 +0000 (19:31 +0200)]
Minor copyedits of doc/emacs/maintaining.texi
* doc/emacs/maintaining.texi (List Identifiers): More accurate
description of "C-M-i" wrt tags tables.
(Tags Tables): Move the definition of "tag" to a footnote.
Phillip Lord [Sun, 17 Jan 2016 22:03:10 +0000 (22:03 +0000)]
Cope with multiple overlapping faces.
* lisp/htmlfontify.el (hfy-face-to-style-i): Treat inheritance right to
left.
(hfy-face-resolve-face): Handle font specification as well as font
name. Documentation update. (Bug#21990)
Paul Eggert [Tue, 19 Jan 2016 07:09:15 +0000 (23:09 -0800)]
Fix spurious escapes in describe-input-method
Problem reported by Vincent Belaïche (Bug#22309).
* lisp/international/mule-cmds.el (describe-language-environment):
* lisp/international/quail.el (quail-help):
Apply substitute-command-keys to doc strings before displaying them.
Dmitry Gutov [Tue, 19 Jan 2016 05:03:41 +0000 (08:03 +0300)]
Rename methods in Ruby etags example file
* test/etags/ruby-src/test.rb: Rename the example methods to
correspond to the common terminology used in Ruby.
* test/etags/CTAGS.good:
* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/ETAGS.good_6: Adjust accordingly.
Dmitry Gutov [Tue, 19 Jan 2016 04:58:46 +0000 (07:58 +0300)]
Propertize backtick in 'def `(abc)' as symbol constituent
* lisp/progmodes/ruby-mode.el (ruby-syntax-propertize):
Propertize backtick in 'def `(abc)' as symbol constituent.
(ruby-syntax-propertize-function):
Rename to ruby-syntax-propertize.
Eli Zaretskii [Mon, 18 Jan 2016 19:53:34 +0000 (21:53 +0200)]
Fix scrolling under scroll-preserve-screen-position on TTY
* src/window.c (window_scroll_line_based): When setting point to
preserve screen coordinates, don't let cursor enter either of the
two scroll margins. (Bug#22395)