1. 01 Jun, 2019 3 commits
    • Eli Zaretskii's avatar
      Update the documentation due to changes in loading font backends · bb999339
      Eli Zaretskii authored
      * doc/emacs/msdos.texi (Windows Fonts): Reflect the fact that
      Uniscribe is not enabled by default.
    • Eli Zaretskii's avatar
      Prefer HarfBuzz to Uniscribe on MS-Windows · a8a114af
      Eli Zaretskii authored
      * src/w32fns.c (Fx_create_frame, w32_create_tip_frame):
      Register the Uniscribe font backend only if HarfBuzz is not
      available, or if explicitly requested via frame parameters
      or resources.
    • Eli Zaretskii's avatar
      Move common HarfBuzz code to a common file hbfont.c · 4363777d
      Eli Zaretskii authored
      * src/hbfont.c: New file, with code moved from w32uniscribe.c
      and renamed/modified as appropriate.
      * src/w32uniscribe.c: Move to hbfont.c DEF_DLL_FN and macro
      definitions for HarfBuzz functions used in hbfont.c
      (load_harfbuzz_funcs): Move loading of HarfBuzz functions used
      by hbfont.c to hbfont.c:hbfont_init_w32_funcs, and call that
      function from here.
      (syms_of_w32uniscribe_for_pdumper): Fill the 'shape' and
      'combining_capability' members with hbfont.c function names.
      * src/w32common.h (hbfont_init_w32_funcs) [HAVE_HARFBUZZ]: Add
      * src/font.h (hbfont_shape, hbfont_combining_capability)
      [HAVE_HARFBUZZ]: Add prototypes.
      * src/Makefile.in (SOME_MACHINE_OBJECTS): Add hbfont.o.
      * configure.ac (FONT_OBJ): Add hbfont.o if HAVE_HARFBUZZ.
  2. 31 May, 2019 5 commits
    • Eli Zaretskii's avatar
    • Eli Zaretskii's avatar
      Enhance Hebrew display in HELLO · b55cc097
      Eli Zaretskii authored
      * etc/HELLO: Show off display of Hebrew with diacriticals
      (a.k.a. "nikkud").
    • Eli Zaretskii's avatar
      Fix handling of -xrm on MS-Windows broken by recent commits · ec8e914c
      Eli Zaretskii authored
      * src/w32reg.c (w32_get_string_resource): The argument V_RDB
      is a 'char **', not a 'char *'.  This fixes -xrm handling on
      MS-Windows, broken by conversion of x_get_string_resource to
      terminal-specific hook.
      (cherry picked from commit 833097cb)
    • Eli Zaretskii's avatar
      Unbreak display of characters on MS-Windows · 2ffec6b4
      Eli Zaretskii authored
      * src/w32font.c (w32font_draw): Convert the glyph_string's
      char2b array to 16-bit WCHAR data that ExtTextOutW needs.
      (cherry picked from commit 38564f8a)
    • Eli Zaretskii's avatar
      Add HarfBuzz font backend for MS-Windows · fba3687d
      Eli Zaretskii authored
      * src/w32uniscribe.c [HAVE_HARFBUZZ]: Include math.h and
      (bswap_32): Define for GCC 4.3.0 and later; else include
      <byteswap.h> from Gnulib.
      (struct uniscribe_font_info): Extend for HarfBuzz; 'cache' is
      now a 'void *' (all users changed).
      [HAVE_HARFBUZZ]: Define typedefs for HarfBuzz functions to be
      loaded dynamically from the HarfBuzz DLL.  Define macros to
      call those functions via function pointers.
      (uniscribe_open) [HAVE_HARFBUZZ]: Use the HarfBuzz font driver
      if the type of the font entity is 'harfbuzz'.
      (uniscribe_close) [HAVE_HARFBUZZ]: For fonts using the
      HarfBuzz backend, call hb_font_destroy to free memory used for
      the cached hb_font data.
      (uniscribe_shape): Fix assignment of character codepoints to
      glyphs from a single cluster.
      (w32hb_list, w32hb_match, free_cb, w32hb_get_font_table)
      (w32hb_get_font, w32hb_encode_char, w32hb_begin_font)
      (w32uni_combining, w32uni_general, w32uni_mirroring)
      (get_hb_unicode_funcs, w32hb_shape)
      (w32hb_combining_capability, load_harfbuzz_funcs)
      [HAVE_HARFBUZZ]: New functions.
      (syms_of_w32uniscribe_for_pdumper) [HAVE_HARFBUZZ]: Load the
      HarfBuzz DLL and register the HarfBuzz backend with its
      * src/w32font.c (syms_of_w32font) <Qharfbuzz>: New DEFSYM.
      * src/w32fns.c (Fx_create_frame, w32_create_tip_frame)
      [HAVE_HARFBUZZ]: Register the harfbuzz font backend.
      * src/lisp.h (get_unicode_property): Declare prototype.
      * src/font.h (harfbuzz_font_driver) [HAVE_NTGUI]: Declare.
      * src/chartab.c (get_unicode_property): New function, body
      taken from get-unicode-property-internal.
      (Fget_unicode_property_internal): Call get_unicode_property
      after validating input.
      * doc/lispref/frames.texi (Font and Color Parameters):
      * doc/emacs/msdos.texi (Windows Fonts): Document support for
      HarfBuzz text shaping on MS-Windows.
      * configure.ac (HAVE_HARFBUZZ): Move out of the X-specific
      part, and consider HarfBuzz also for HAVE_W32 systems.
      Require HarfBuzz v1.2.3 for w32.
  3. 23 May, 2019 3 commits
    • YAMAMOTO Mitsuharu's avatar
      Merge branch 'master' into harfbuzz · b40dde70
      YAMAMOTO Mitsuharu authored
    • YAMAMOTO Mitsuharu's avatar
      Make Cairo build obey hint-style font setting (Bug#35781) · 03feb937
      YAMAMOTO Mitsuharu authored
      * src/ftfont.h (ftfont_open2): Remove extern.
      (ftfont_fix_match, ftfont_add_rendering_parameters)
      (ftfont_entity_pattern): Add externs.
      (struct font_info): Remove member bitmap_strike_index.
      (struct font_info) [USE_CAIRO]: Remove member ft_size_draw.  All uses removed.
      Add member bitmap_position_unit.
      * src/xftfont.c (xftfont_fix_match, xftfont_add_rendering_parameters): Move
      functions from here ...
      * src/ftfont.c (ftfont_fix_match, ftfont_add_rendering_parameters): ... to
      here.  All uses changed.
      * src/xftfont.c (xftfont_open): Extract FcPattern creation from font entity
      from here ...
      * src/ftfont.c (ftfont_entity_pattern):	... to here.
      * src/xftfont.c (syms_of_xftfont): Move DEFSYMs for Fontconfig's rendering
      parameters from here ...
      * src/ftfont.c (syms_of_ftfont): ... to here.
      * src/ftfont.c (ftfont_open, ftfont_open2): Undo introduction of
      bitmap_strike_index.  Merge functions into ftfont_open.
      * src/ftcrfont.c (ftcrfont_open): Align code with xftfont_open rather than
      (ftcrfont_close): Likewise.
      (ftcrfont_has_char, ftcrfont_encode_char):
      (ftcrfont_otf_capability) [HAVE_LIBOTF]:
      (ftcrfont_variation_glyphs) [HAVE_OTF_GET_VARIATION_GLYPHS]: New functions.
      (ftcrfont_driver): Register them.
      (ftcrfont_get_bitmap, ftcrfont_anchor_point):
      (ftcrfont_shape) [HAVE_M17N_FLT && HAVE_LIBOTF]: Use bitmap_position_unit
      instead of bitmap_strike_index to screen bitmap fonts.
      (ftcrfont_get_bitmap, ftcrfont_anchor_point):
      (ftcrfont_otf_capability) [HAVE_LIBOTF]:
      (ftcrfont_shape) [HAVE_M17N_FLT && HAVE_LIBOTF]:
      (ftcrfont_variation_glyphs) [HAVE_OTF_GET_VARIATION_GLYPHS]: Temporarily
      assign ftcrfont_info->ft_size and call corresponding ftfont functions.
      (ftcrfont_draw): Don't flush cairo surface when exporting.
    • Basil L. Contovounesios's avatar
      Fix url-copy-file argument handling · 72047556
      Basil L. Contovounesios authored
      For discussion, see the following thread:
      * lisp/url/url-handlers.el: Update autoloaded docstrings.
      Quote function symbols as such.
      (url-handler-regexp): Make grouping construct shy.
      (url-file-handler, url-insert-buffer-contents)
      (url-handlers-create-wrapper, url-handlers-set-buffer-mode):
      (url-file-handler-identity): Clarify calling convention.
      (file-name-absolute-p, url-file-local-copy): Mark ignored arguments
      as such.
      (url-handler-directory-file-name): Prefer string comparison over
      regexp match where either will do.
      (url-copy-file): Handle integer as third argument as per copy-file.
  4. 22 May, 2019 6 commits
    • Stefan Monnier's avatar
      * lisp/textmodes/sgml-mode.el: Fix lone `>` in sgml text · 70839740
      Stefan Monnier authored
      (sgml--syntax-propertize-ppss):New variable and function.
      (sgml-syntax-propertize-rules): Use it.
      Don't ignore quotes not followed by a matching quote or a '>' or '<'.
      (sgml-syntax-propertize): Set up sgml--syntax-propertize-ppss.
      * test/lisp/textmodes/sgml-mode-tests.el (sgml-tests--quotes-syntax):
      Add test for lone '>'.
    • Paul Eggert's avatar
      Remove fixnum restriction on some display vars · dfed333b
      Paul Eggert authored
      This is a minor patch to remove some fixnum restrictions.
      Many more such patches are needed, but one thing at a time.
      * doc/emacs/custom.texi (Examining): Update fill-column example.
      * src/buffer.c (fill-column, left-margin, tab-width)
      (buffer-saved-size, left-margin-width, right-margin-width)
      (left-fringe-width, right-fringe-width, scroll-bar-width)
      (scroll-bar-height, buffer-display-count):
      Allow any integer; do not restrict to fixnums.
      * src/character.h (SANE_TAB_WIDTH): Do not assume tab_width
      is a nonnegative fixnum.
      (sanitize_tab_width): Take a Lisp_Object integer, not an
      EMACS_INT.  Only use changed.
      * src/data.c (store_symval_forwarding): Remove unnecessary
      SYMBOLP since the predicate (e.g., Qintegerp) is always a
      symbol (leave the test in as an eassert).  Avoid assignments
      inside if-conditions.
      * src/fileio.c (Fdo_auto_save): Do not assume
      buffer-saved-size is a fixnum.  Avoid undefined behavior
      on EMACS_INT overflow by multiplying a fixnum by at most 4,
      not by at most 13.
      * src/window.c (set_window_buffer): When buffer-display-count
      is too large for a fixnum, make it a bignum.
      * src/xdisp.c (FILL_COLUMN_INDICATOR_NEEDED): Remove macro, ...
      (fill_column_indicator_column): ... replacing with this new function.
      All uses changed.  The function is a bit pickier, to prevent
      problems with non-character fixnums and columns out of range
      for int, and to remove the assumption that integers are in
      fixnum range.
      (append_space_for_newline, extend_face_to_end_of_line):
      Avoid undefined behavior with signed integer overflow.
    • Glenn Morris's avatar
      Merge from origin/emacs-26 · 5c21832a
      Glenn Morris authored
      b0da9151 (origin/emacs-26, emacs-26) Fix a typo in ELisp manual
      400907b3 Add option to disable help completion autoloading (Bug#28607)
      122ba168 Don't segfault on force-window-update of deleted window
      015b12eb Fix typo in ELisp manual
      eadf044e Remove repeated function call in picture.el
      1228a90c ; Fix mm-destroy-parts docstring typo
      6cfd68d4 Fix Hideshow key binding typo in Emacs manual
    • Glenn Morris's avatar
      ; Merge from origin/emacs-26 · d99f0c6f
      Glenn Morris authored
      The following commit was skipped:
      7ce4b35a Backport: Fix name of gnus-summary-sort-by-mark(s)
    • Glenn Morris's avatar
      Merge from origin/emacs-26 · 0d1ff4cb
      Glenn Morris authored
      5d24af87 Remove from docs references to obsolete MULE variables
      2bdc419f Do potentially destructive operations in prepare-commit-msg
      # Conflicts:
      #	src/search.c
    • Tom Levy's avatar
      Fix a typo in ELisp manual · b0da9151
      Tom Levy authored
      * doc/lispref/sequences.texi (Sequence Functions): Fix a typo.
      Copyright-paperwork-exempt: yes
  5. 21 May, 2019 7 commits
    • Alexander Gramiak's avatar
    • Alan Third's avatar
      Fix some deprecation notices on macOS 10.14 · 9624f609
      Alan Third authored
      * src/nsimage.m ([EmacsImage setXBMColor:]): Replace colorSpaceName
      * src/nsmenu.m ([EmacsDialogPanel initWithContentRect:styleMask:]):
      Remove reference to oneShot.
      * src/nsterm.h (ns_enable_screen_updates): Remove function prototype.
      (NSPasteboardTypeURL): Define new names and replace all callers.
      * src/nsterm.m ([EmacsColor colorUsingDefaultColorSpace]): Replace
      calls to colorUsingColorSpaceName on macOS > 10.7.
      ([EmacsView performDragOperation:]): Add FIXME about deprecation.
      (ns_enable_screen_updates): Remove functions and all callers.
      (disable_screen_updates_count): Remove variable.
      * src/macfont.m (macfont_draw): Use CGContext instead of graphicsPort
      on macOS >= 10.10
    • Paul Eggert's avatar
      Pacify libpng on interlaced images (Bug#35843) · cb367c8e
      Paul Eggert authored
      * src/image.c (png_set_interlace_handling) [WINDOWSNT]:
      New function to link.
      (init_png_functions): Link it.
      (png_load_body): Call it before calling png_read_update_info.
    • Paul Eggert's avatar
      Remove time-date debugging scaffolding · 8ff7807a
      Paul Eggert authored
      Problem reported by Lars Ingebrigtsen in:
      * lisp/calendar/time-date.el (date-to-time):
      Use plain condition-case, not condition-case-unless-debug.
    • Federico Tedin's avatar
      Use lexical-binding in tempo.el and add tests · eb2e9a2c
      Federico Tedin authored
      For discussion, see the following thread:
      * lisp/tempo.el: Use lexical-binding.
      (tempo-define-template): Expand documentation to mention
      (tempo-local-tags, tempo-collection, tempo-dirty-collection)
      (tempo-marks, tempo-match-finder): Define with defvar-local.
      (tempo-named-insertions, tempo-region-start, tempo-region-stop): Make
      them automatically buffer-local.
      * test/lisp/tempo-tests.el: Add tests for tempo.el.
    • Alan Mackenzie's avatar
      C Mode: Fix indentation of DEFUN's function's argument list. · 58565129
      Alan Mackenzie authored
      Formally, when DEFUNs still used knr argument lists, these were indented by
      the syntactic context knr-argdecl-intro (5 columns).  Since this is no longer
      the case, we now just use c-basic-offset (2 columns in "gnu" style).
      * lisp/progmodes/cc-align.el (c-indent-gnu-DEFUN-intro-cont): Modernize the
      indentation.  Amend the doc string accordingly.
    • Noam Postavsky's avatar
      Add option to disable help completion autoloading (Bug#28607) · 400907b3
      Noam Postavsky authored
      * lisp/help-fns.el (help-enable-completion-auto-load): New option.
      (help--symbol-completion-table): Consult it.
      * doc/emacs/building.texi (Lisp Libraries): Document it.
      * etc/NEWS: Announce it.
      * doc/lispref/loading.texi (Autoload by Prefix): New section.
      (Autoload): Reference it.
  6. 20 May, 2019 16 commits
    • YAMAMOTO Mitsuharu's avatar
    • Stephen Leake's avatar
      Revert recent project-find-file change · fb3b78f7
      Stephen Leake authored
      * lisp/progmodes/project.el (project-find-file): Delete recently added
      'filename' arg; just use project-find-file-in.
    • Noam Postavsky's avatar
      Don't segfault on force-window-update of deleted window · 122ba168
      Noam Postavsky authored
      * src/window.c (Fforce_window_update): Do nothing for deleted
      windows (Bug#35784).
    • Mauro Aranda's avatar
      Fix typo in ELisp manual · 015b12eb
      Mauro Aranda authored
      * doc/lispref/variables.texi (Directory Local Variables): Fix typo in
      dir-locals-set-class-variables description.  (Bug#35799)
    • Mauro Aranda's avatar
      Remove repeated function call in picture.el · eadf044e
      Mauro Aranda authored
      * lisp/textmodes/picture.el (picture-mode-map):  Remove repeated
      define-key call.  (Bug#35772)
    • Mattias Engdegård's avatar
      Allow zero-argument rx `or' and `seq' forms · afdc20d7
      Mattias Engdegård authored
      Make the rx `or' and `seq' forms accept zero arguments to produce a
      never-matching regexp and an empty string, respectively.
      * lisp/emacs-lisp/rx.el: Require cl-extra.
      (rx-constituents, rx-or): Permit zero args.
      (rx): Amend doc string for `or' and `seq'.
      * test/lisp/emacs-lisp/rx-tests.el (rx-or, rx-seq): Test the change.
      * etc/NEWS (Changes in Specialized Modes and Packages): Mention the change.
    • Mattias Engdegård's avatar
      Revert "Allow zero-argument rx `or' and `seq' forms" · c2cda3ff
      Mattias Engdegård authored
      This reverts commit b552fc05.
      It caused a bootstrapping failure which I have yet to resolve - sorry.
    • Basil L. Contovounesios's avatar
      Improve C and Elisp Git diff hunk headers · d3a0dded
      Basil L. Contovounesios authored
      For discussion, see the following threads:
      * autogen.sh: Extend the built-in Git xfuncname pattern 'cpp' to
      match preprocessor and DEFUN macros, and the 'elisp' pattern to
      match cl-lib and other top-level defuns.
    • Stefan Kangas's avatar
      Use lexical-binding in delim-col.el and add tests · 4498e5a1
      Stefan Kangas authored
      Thanks to Basil L. Contovounesios for additional cleanups.
      For discussion, see the following thread:
      * lisp/delim-col.el: Use lexical-binding.
      * test/lisp/delim-col-tests.el: New file.
      (delim-col-tests-delimit-rectangle): New unit tests.
    • Alan Mackenzie's avatar
      CC Mode: Remove unused code from c-maybe-re-mark-raw-string · 9813905f
      Alan Mackenzie authored
      Acknowledge that when the function is called, it is always at the start of a
      string, never in the middle or at the end of one.
      * lisp/progmodes/cc-engine.el (c-maybe-re-mark-raw-string): Reformulate the
      cond form into a `when' form, with all but the first arm of the cond
    • Basil L. Contovounesios's avatar
      ; Fix last change to nnheader-cancel-timer · ec2e5a54
      Basil L. Contovounesios authored
      * lisp/gnus/nnheader.el (nnheader-cancel-timer)
      (nnheader-cancel-function-timers): Remove defalias calls made
      redundant by subsequent define-obsolete-function-alias calls.
    • Lars Ingebrigtsen's avatar
      w32--os-description: Fix previous change · 4a04046b
      Lars Ingebrigtsen authored
      * lisp/w32-fns.el (w32--os-description): Fix inadvertant "o" added
      to the end of the function name in the previous patch (bug#35807).
    • Lars Ingebrigtsen's avatar
      Mark nnheader-cancel-timer as obsolete and adjust callers · bfcff8f8
      Lars Ingebrigtsen authored
      * lisp/gnus/nnheader.el (nnheader-cancel-timer)
      (nnheader-cancel-function-timers): Mark as obsolete.
      * lisp/gnus/nntp.el (nntp-with-open-group-function)
      (nntp-async-stop): Adjust caller.
      * lisp/gnus/gnus-art.el (gnus-stop-date-timer): Ditto.
      * lisp/gnus/gnus-async.el (gnus-async-prefetch-next): Ditto.
      * lisp/gnus/gnus-demon.el (gnus-demon-run-callback)
      (gnus-demon-cancel): Ditto.
      * lisp/gnus/mail-source.el (mail-source-report-new-mail): Ditto.
      * lisp/gnus/nnmaildir.el (nnmaildir-request-accept-article): Ditto.
    • Mattias Engdegård's avatar
      Allow zero-argument rx `or' and `seq' forms · b552fc05
      Mattias Engdegård authored
      Make the rx `or' and `seq' forms accept zero arguments to produce a
      never-matching regexp and an empty string, respectively.
      * lisp/emacs-lisp/rx.el (rx-constituents, rx-or): Permit zero args.
      (rx): Amend doc string for `or' and `seq'.
      * test/lisp/emacs-lisp/rx-tests.el (rx-or, rx-seq): Test the change.
      * etc/NEWS (Changes in Specialized Modes and Packages): Mention the change.
    • Mattias Engdegård's avatar
      Avoid polling in global-auto-revert-mode (bug#35418) · e9f9827e
      Mattias Engdegård authored
      Make `auto-revert-avoid-polling' have effect in global-auto-revert-mode.
      Buffers actually handled by that mode are marked with a non-nil value
      of `auto-revert--global-mode'.  When global-auto-revert-mode is
      entered, eligible buffers are marked in that way, and hooks are set up
      to mark new buffers and take care of buffers whose file names change.
      This way the existing poll-avoidance logic can be used, since the
      entire set of buffers in auto-revert is known.
      A new hook, `after-set-visited-file-name-hook', was added to handle
      the case when the file name of a tracked buffer changes.
      * lisp/autorevert.el (auto-revert-avoid-polling): Amend doc string.
      (auto-revert--global-mode): New buffer-local variable.
      (global-auto-revert-mode): Mark existing buffers and set up hooks when
      mode is entered; do the opposite when exited.
      (auto-revert--set-visited-file-name-advice): New functions.
      (auto-revert--polled-buffers, auto-revert--need-polling-p)
      (auto-revert-active-p): Modify logic to cover global-auto-revert-mode.
      * lisp/files.el (after-set-visited-file-name-hook): New hook.
      (set-visited-file-name-hook): Call new hook.
      * test/lisp/autorevert-tests.el (top):  Use lexical-binding.
      (auto-revert-test--write-file, auto-revert-test--buffer-string)
      (auto-revert-test--wait-for, auto-revert-test--wait-for-buffer-text)
      (auto-revert-test05-global-notify): New test.
      * doc/lispref/hooks.texi (Standard Hooks):
      Mention new hook (in a comment, since it's unclear whether it should
      actually be documented here)
      * etc/NEWS (Changes in Specialized Modes and Packages): Update entry.
    • Michael Albinus's avatar
      Fix problems in autorevert-tests · 2bf0b3bf
      Michael Albinus authored
      * test/lisp/autorevert-tests.el (auto-revert--deftest-remote):
      Fix typo.
      (auto-revert-test02-auto-revert-deleted-file): On emba, there are
      no stopped events.