1. 08 Jun, 2019 3 commits
    • YAMAMOTO Mitsuharu's avatar
      Support X core font driver on cairo (Bug#28236) · faf10bd8
      YAMAMOTO Mitsuharu authored
      * configure.ac (HAVE_X_WINDOWS): Add xfont.o to FONT_OBJ if HAVE_CAIRO.
      * doc/lispref/frames.texi (Font and Color Parameters): Mention X core font
      driver with Cairo drawing.
      * src/font.c (syms_of_font) [HAVE_X_WINDOWS && USE_CAIRO]: Call syms_of_xfont.
      * src/xfns.c (x_create_tip_frame) [USE_CAIRO]: Register xfont_driver.
      * src/xterm.c (x_cr_gc_clip) [USE_CAIRO]: New function extracted from
      (x_begin_cr_clip) [USE_CAIRO]: Use it.
      (xlib_surface_key, saved_drawable_key) [USE_CAIRO]: New variables.
      (x_cr_destroy_xlib_surface, x_try_cr_xlib_drawable)
      (x_end_cr_xlib_drawable) [USE_CAIRO]: New functions.
      (x_draw_glyph_string_foreground) [USE_CAIRO]: Get Xlib surface when drawing
      text with X core fonts into bitmap surfaces.  Add fallback code for drawing
      into outline surfaces.
    • YAMAMOTO Mitsuharu's avatar
      Implement native image rotation and cropping on cairo · 88c49ac3
      YAMAMOTO Mitsuharu authored
      * src/dispextern.h (struct image) [USE_CAIRO]:
      * src/image.c (free_image, image_clear_image_1)
      (image_set_crop, image_set_size, image_set_rotation)
      (image_create_x_image_and_pixmap) [USE_CAIRO]: #ifdef out HAVE_XRENDER part.
      * src/image.c (cr_create_surface_from_pix_containers) [USE_CAIRO]: Rename
      from cr_create_surface_from_pix_containers.  Change arguments to pair of
      Emacs_Pix_Container:s.  Move block_input and unblock_input to caller.
      (cr_put_image_to_cr_data) [USE_CAIRO]: New function.
      (prepare_image_for_display) [USE_CAIRO]: Use it.
      (image_set_transform) [USE_CAIRO]: Create dummy solid color pattern equipped
      with transformation matrix and set it to img->cr_data.
      * src/xterm.c (fringe_bmp) [USE_CAIRO]: Change type to cairo_pattern_t **.
      (x_cr_define_fringe_bitmap, x_cr_destroy_fringe_bitmap) [USE_CAIRO]: Create
      or destroy cairo pattern.
      (x_cr_draw_image) [USE_CAIRO]: Remove arguments image_width and image_height.
      Change type of image to cairo pattern.  All callers changed.
      * src/gtkutil.c (xg_get_image_for_pixmap) [USE_CAIRO]: Get cairo surface
      from img->cr_data, which is of cairo pattern now.
    • Thomas Fitzsimmons's avatar
      Make icalendar-import-buffer not show diary file buffer · 890a0826
      Thomas Fitzsimmons authored
      * lisp/calendar/diary-lib.el (diary-make-entry): Add
      omit-trailing-space parameter.  Add do-not-show parameter to
      allow not showing diary file buffer.
      * lisp/calendar/icalendar.el (icalendar--add-diary-entry): Remove
      workaround to omit trailing space in diary entry.  Have
      diary-make-entry not display the diary file buffer.  (Bug#35645)
  2. 07 Jun, 2019 21 commits
    • Paul Eggert's avatar
      Fix commentary about fixnums and hashes. · 58cde923
      Paul Eggert authored
    • Paul Eggert's avatar
      Fix minor ssize_t / ptrdiff_t confusion · 8553af84
      Paul Eggert authored
      * src/fileio.c (Fcopy_file): This limit is because of ssize_t,
      so use TYPE_MAXIMUM (ssize_t) not PTRDIFF_MAX.
    • Paul Eggert's avatar
      Use machine pointer width for face hashes · de46a6a4
      Paul Eggert authored
      * src/dispextern.h (struct face):
      * src/xfaces.c (hash_string_case_insensitive, lface_hash)
      (cache_face, lookup_face): Use uintptr_t for face hashes
      instead of discarding the upper pointer bits on 64-bit machines.
    • Stefan Monnier's avatar
      * lisp/gnus: Further reduce assumptions about gnus-data format · da1974fa
      Stefan Monnier authored
      * lisp/gnus/gnus-registry.el (gnus-registry-fetch-message-id-fast)
      (gnus-registry-fetch-sender-fast, gnus-registry-fetch-recipients-fast)
      (gnus-registry--set/remove-mark): Don't hardcode assoc for gnus-data-find-in.
      * lisp/gnus/gnus-sum.el (gnus-data-update-list): Don't hardcode `nth 2`
      for gnus-data-pos.
      (gnus-summary-insert-old-articles, gnus-summary-insert-new-articles)
      (gnus-summary-first-article-p): Don't hardcode `car` for `gnus-data-number`.
      (gnus-summary-move-article, gnus-summary-expire-articles)
      (gnus-summary-delete-article): Don't hardcode assoc for gnus-data-find-in.
      * lisp/gnus/spam.el (spam-fetch-article-header): Don't hardcode `nth 3`
      for gnus-data-header.
    • Eli Zaretskii's avatar
    • Eli Zaretskii's avatar
      Support text shaping with HarfBuzz · dec52501
      Eli Zaretskii authored
      The code to support HarfBuzz was written by these individuals:
        Khaled Hosny <dr.khaled.hosny@gmail.com>
        YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
        Eli Zaretskii <eliz@gnu.org>
      * src/xftfont.c (xftfont_list): Call ftfont_list2.
      (xftfont_match): Call ftfont_match2.
      (xftfont_open) [HAVE_HARFBUZZ]: Set the font driver to
      xfthbfont_driver as required.  Reset xftfont_info->hb_font to
      (xftfont_close) [HAVE_HARFBUZZ]: Dispose of the hb_font object.
      (xftfont_shape): Accept an additional argument DIRECTION and
      pass it to ftfont_shape.
      (xfthbfont_list, xfthbfont_match, xfthbfont_begin_hb_font)
      (xfthbfont_end_hb_font) [HAVE_HARFBUZZ]: New functions.
      (syms_of_xftfont): New DEFSYM 'xfthb'.
      (syms_of_xftfont_for_pdumper) [HAVE_HARFBUZZ]: Initialize
      * src/xfns.c (Fx_create_frame, x_create_tip_frame)
      [HAVE_HARFBUZZ]: Register the HarfBuzz font driver.
      * src/w32uniscribe.c (bswap_32) [HAVE_HARFBUZZ]: Define to use
      the builtin for GCC 4.3.9 and newer; else use byteswap.h from
      (struct uniscribe_font_info): New member 'scale'.  The member
      'cache' is now used both by Uniscribe and HarfBuzz backends.
      (uniscribe_open): Set the font backend as required by the font
      entity's font_type field.
      (uniscribe_close) [HAVE_HARFBUZZ]: Dispose of the hb_font
      (uniscribe_shape): Accept an additional argument DIRECTION.
      (w32hb_list, w32hb_match, free_cb, w32hb_get_font_table)
      (w32hb_get_font, w32hb_encode_char, w32hb_begin_font)
      (w32hb_get_variation_glyphs, load_harfbuzz_funcs)
      [HAVE_HARFBUZZ]: New functions.
      (syms_of_w32uniscribe_for_pdumper): Initialize
      harfbuzz_font_driver if loading the requisite functions from
      the HarfBuzz DLL succeeded.
      * src/w32font.c (syms_of_w32font): New DEFSYM 'harfbuzz'.
      * src/w32fns.c (Fx_create_frame, w32_create_tip_frame):
      Determine whether we should register the HarfBuzz backend, or
      Uniscribe backend, or both for the new frame.
      * src/w32common.h (hbfont_init_w32_funcs) [HAVE_HARFBUZZ]: Add
      * src/macfont.m (lgstring_direction): New enumeration.
      (mac_font_shape_1, mac_screen_font_shape, macfont_shape):
      Accept an additional argument DIRECTION; all callers changed.
      * src/lisp.h (get_unicode_property): Add prototype.
      * src/hbfont.c: New file.
      * src/ftxfont.c (ftxfont_list): Call ftfont_list2.
      (ftxfont_match): Call ftfont_match2.
      * src/ftfont.h [HAVE_HARFBUZZ]: Include hb.h and hb-ft.h.
      (struct font_info): New member hb_font.
      * src/ftfont.c (ftfont_list2, ftfont_list_family): New functions.
      (ftfont_open) [HAVE_HARFBUZZ]: Reset ftfont_info->hb_font to
      NULL.  Set the font backend to fthbfont_driver when required.
      (ftfont_close) [HAVE_HARFBUZZ]: Dispose of ftfont_info->hb_font.
      (ftfont_glyph_metrics): New function.
      (ftfont_text_extents): Call ftfont_glyph_metrics instead of
      (ftfont_shape): Accept an additional argument DIRECTION.
      (ftfont_variation_glyphs) [!HAVE_OTF_GET_VARIATION_GLYPHS]:
      Support for variation glyphs without FLT.
      (fthbfont_begin_hb_font) [HAVE_HARFBUZZ]: New function.
      (syms_of_ftfont): New DEFSYM freetypehb.
      (syms_of_ftfont_for_pdumper): Initialize fthbfont_driver.
      * src/ftcrfont.c (ftcrfont_list): Call ftfont_list2.
      (ftcrfont_match): Call ftfont_match2.
      (ftcrfont_open) [HAVE_HARFBUZZ]: Set the font backend to
      ftcrhbfont_driver as required.  Reset ftcrfont_info->hb_font
      to NULL.
      (ftcrfont_close) [HAVE_HARFBUZZ]: Discard of
      (ftcrfont_shape): Pass DIRECTION to ftfont_shape.
      (ftcrhbfont_list, ftcrhbfont_match)
      (ftcrhbfont_begin_hb_font, ftcrhbfont_end_hb_font)
      [HAVE_HARFBUZZ]: New functions.
      (syms_of_ftcrfont): New DEFSYM ftcrhb.
      (syms_of_ftcrfont_for_pdumper): Initialize ftcrhbfont_driver.
      * src/font.h [HAVE_HARFBUZZ]: Include hb.h.
      (struct font_driver): Update comments and function signatures
      to reflect the new argument DIRECTION accepted by the 'shape'
      method.  New methods 'begin_hb_font' and 'end_hb_font'.
      (hbfont_shape, hbfont_combining_capability)
      (fthbfont_begin_hb_font) [HAVE_HARFBUZZ]: Add prototypes.
      * src/font.c (Ffont_shape_gstring): Accept an additional
      argument DIRECTION, and pass it to the font driver's 'shape'
      (Ffont_variation_glyphs): Doc fix.
      (syms_of_font): New DEFSYMS L2R and R2L.
      * src/composite.h (composition_reseat_it): Adjust prototype.
      * src/composite.c (autocmp_chars): Accept additional argument
      DIRECTION, and pass it to auto-composition-function.  All
      callers changed.
      (composition_reseat_it): Accept additional argument
      BIDI_LEVEL, and use it to determine the DIRECTION argument to
      be passed to autocmp_chars.  All callers changed.
      (syms_of_composite) <auto-composition-function>: Improve the
      doc string; document the meaning of the new argument
      * src/chartab.c (get_unicode_property): New function,
      refactored from the body of get-unicode-property-internal.
      (Fget_unicode_property_internal): Call get_unicode_property
      after validating the input arguments.
      * src/Makefile.in (HARFBUZZ_CFLAGS, HARFBUZZ_LIBS): New macros.
      (SOME_MACHINE_OBJECTS): Add hbfont.o
      * lisp/language/tv-util.el (tai-viet-composition-function):
      * lisp/language/thai-util.el (thai-composition-function):
      * lisp/language/misc-lang.el (arabic-shape-gstring):
      * lisp/language/lao-util.el (lao-composition-function):
      * lisp/language/japanese.el (compose-gstring-for-variation-glyph):
      * lisp/language/hebrew.el (hebrew-shape-gstring):
      * lisp/language/ethio-util.el (ethio-composition-function):
      * lisp/composite.el (compose-chars-after)
      (compose-gstring-for-terminal, auto-compose-chars): All
      composition functions that call shapers now accept an
      additional argument DIRECTION, either L2R or R2L.
      * etc/NEWS: Document the HarfBuzz support.
      * etc/HELLO: Add diacritics to Hebrew greetings.
      * doc/lispref/frames.texi (Font and Color Parameters):
      * doc/emacs/msdos.texi (Windows Fonts): Describe the
      'harfbuzz' font backend on MS-Windows and how it is preferred
      to 'uniscribe'.
      * configure.ac (--wthout-harfbuzz): New option.
      (HAVE_HARFBUZZ): New tests.
      (FONT_OBJ) [HAVE_HARFBUZZ]: Add hbfont.o
      (emacs_config_features): Add HARFBUZZ.
      * admin/nt/dist-build/build-dep-zips.py: Add HarfBuzz dependency.
    • Tak Kunihiro's avatar
      Make mouse-wheel-scroll-amount consistent among platforms · 9f4c945b
      Tak Kunihiro authored
      * lisp/term/ns-win.el (mouse-wheel-scroll-amount): Do not put any
      values on mouse-wheel-scroll-amount on ns.
    • Eli Zaretskii's avatar
    • Glenn Morris's avatar
      Merge from origin/emacs-26 · 348657cc
      Glenn Morris authored
      9254885a (origin/emacs-26) Resurrect display-line-number-mode in clien...
      aecbbd57 * src/fns.c (Fmapconcat): Doc fix.  (Bug#35710)
      8e5fc38a Fix typo
      ee21b402 * lisp/term/w32-win.el ([noname]): Bind to 'ignore'.  (Bug#36...
      f68b33f5 Fix styling of Unicode codepoints in manuals
      ff7ec6ff Fix a few uses of quotes in user manual
      b67042be More minor copyedits in the Emacs manual
      9734b5c5 Fix minor issues in the Emacs manual
      c153250a Try to improve text on atomic windows in Elisp manual
      fb314ba3 Don't recommend insert-before-markers in process filters
    • Glenn Morris's avatar
      ; Merge from origin/emacs-26 · 6bee17e4
      Glenn Morris authored
      The following commit was skipped:
      04f13a5d Disable byte-compile-cond-use-jump-table (Bug#35770)
    • Glenn Morris's avatar
      Merge from origin/emacs-26 · 5e1e1e71
      Glenn Morris authored
      28602856 Allow macros autoloaded as functions during bytecomp (Bug#36022)
    • Eli Zaretskii's avatar
      Resurrect display-line-number-mode in client frames · 9254885a
      Eli Zaretskii authored
      * lisp/linum.el (linum-on): Mention bug#35726 in a comment.
      * lisp/display-line-numbers.el
      (display-line-numbers--turn-on): Don't check for daemon.
    • Eli Zaretskii's avatar
    • Phillip Lord's avatar
      Fix typo · 8e5fc38a
      Phillip Lord authored
      * nt/README.W32:
    • Eli Zaretskii's avatar
      Fix failures of term-tests on MS-Widows · e5bc9a32
      Eli Zaretskii authored
      * test/lisp/term-tests.el (term-simple-lines)
      (term-carriage-return, term-line-wrap, term-cursor-movement)
      (term-scrolling-region, term-set-directory)
      (term-line-wrapping-then-motion, term-to-margin): Skip tests
      on MS-Windows and MS-DOS.
    • John Shahid's avatar
      Consider line spacing and font height when deriving proc window size · ad9eadbe
      John Shahid authored
      * lisp/window.el (window-adjust-process-window-size): Use
        window-screen-lines instead of window-body-height.
      * lisp/term.el (term-mode): Use window-screen-lines to set the initial
        window height.
    • YAMAMOTO Mitsuharu's avatar
      Fix image_set_crop yet again · 3a1f92d0
      YAMAMOTO Mitsuharu authored
      * src/image.c (image_set_crop) [HAVE_NATIVE_TRANSFORMS]: Don't call
      compute_image_size, as it is already called from image_set_size.
      (image_set_size, image_set_crop) [HAVE_NATIVE_TRANSFORMS]: Use harmless
      matrix transformation code also for USE_CAIRO and HAVE_NTGUI cases,
      though image_set_transform is not yet implemented on them.
    • Eli Zaretskii's avatar
      Avoid compiler warning in copy-file-range.c on MS-Windows · 480da9f2
      Eli Zaretskii authored
      * nt/mingw-cfg.site (gl_cv_func_copy_file_range): Set to "yes",
      to avoid compiling lib/copy-file-range.c on MS-Windows.
    • Paul Eggert's avatar
      Fix recently-introduced image_set_crop typo · cfb592fd
      Paul Eggert authored
      * src/image.c (image_set_crop) [!HAVE_NATIVE_TRANSFORMS]:
      Don’t call compute_image_size, as it does not exist and its
      result is not needed.
    • Paul Eggert's avatar
      Use copy_file_range to copy files · 486a81f3
      Paul Eggert authored
      The copy_file_range syscall (introduced in Linux kernel
      version 4.5) can copy files more efficiently via server-side
      copy etc.
      * admin/merge-gnulib (GNULIB_MODULES): Add copy-file-range.
      * lib/copy-file-range.c, m4/copy-file-range.m4:
      New files, copied from Gnulib.
      * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
      * src/fileio.c (Fcopy_file): Try copy_file_range first,
      falling back on read+write only if copy_file_range failed or
      if the input is empty and so could be a /proc file.
    • Paul Eggert's avatar
      Update from Gnulib · 111408a0
      Paul Eggert authored
      This incorporates:
      2019-06-04 copy-file-range: new module
      2019-05-28 binaty-io: O_BINARY on consoles no longer fails
      * doc/misc/texinfo.tex, lib/binary-io.c, lib/binary-io.h:
      * lib/unistd.in.h, m4/unistd_h.m4: Copy from Gnulib.
      * lib/gnulib.mk.in: Regenerate.
  3. 06 Jun, 2019 10 commits
  4. 05 Jun, 2019 6 commits
    • Alan Third's avatar
      Add native image rotation and cropping · 610fb73a
      Alan Third authored
      * lisp/image.el (image--get-imagemagick-and-warn): Only fallback to
      ImageMagick if native transforms aren't available.
      * src/dispextern.h (INIT_MATRIX, COPY_MATRIX, MULT_MATRICES): New
      macros for matrix manipulation.
      relevant locations.
      * src/image.c (x_set_image_rotation):
      (x_set_transform): New functions.
      (x_set_image_size): Use transform matrix for resizing under X and NS.
      (x_set_image_crop): New function.
      (lookup_image): Use the new transform functions.
      (Fimage_scaling_p, Fimage_transforms_p): Rename and update all
      * src/nsimage.m (ns_load_image): Remove rotation code.
      (ns_image_set_transform): New function.
      ([EmacsImage dealloc]): Release the saved transform.
      ([EmacsImage rotate:]): Remove unneeded method.
      ([EmacsImage setTransform:]): New method.
      * src/nsterm.h (EmacsImage): Add transform property and update method
      * src/nsterm.m (ns_dumpglyphs_image): Use the transform to draw the
      image correctly.
      * src/xterm.c (x_composite_image): Use PictOpSrc as we don't care
      about alpha values here.
      * doc/lispref/display.texi (Image Descriptors): Add :rotation.
      (ImageMagick Images): Remove :rotation.
    • Phillip Lord's avatar
      No longer add debug symbols to release build · 9201cf62
      Phillip Lord authored
      * admin/nt/dist-build/build-zips.sh: Remove -g3 from release build and
        install with install-strip
    • Juri Linkov's avatar
      * lisp/wid-edit.el (widget-choose): Use display-buffer-in-direction · ec264e71
      Juri Linkov authored
      to display buffer in bottom direction with fit-window-to-buffer.
      * lisp/proced.el (proced-with-processes-buffer): Idem.  (Bug#35592)
    • Eli Zaretskii's avatar
      Fix styling of Unicode codepoints in manuals · f68b33f5
      Eli Zaretskii authored
      * doc/lispref/nonascii.texi (Character Properties):
      * doc/lispref/display.texi (Glyphless Chars)
      (Bidirectional Display):
      * doc/emacs/search.texi (Lax Search):
      * doc/emacs/text.texi (Quotation Marks):
      * doc/emacs/basic.texi (Inserting Text): Canonicalize the
      style of "U+NNNN CHARACTER NAME".  (Bug#35885)
    • Michael Albinus's avatar
      * doc/misc/tramp.texi (Obtaining Tramp): Explain version scheme. · 3a95ce18
      Michael Albinus authored
      (Traces and Profiles): Add `tramp-verbose' to @vindex.
    • Noam Postavsky's avatar
      ; Add test for Bug#36092 · 7ad5e391
      Noam Postavsky authored
      * test/lisp/nxml/nxml-mode-tests.el (nxml-mode->-after-quote): New