]> git.eshelyaron.com Git - emacs.git/log
emacs.git
5 years agoMark define-widget-keywords as obsolete
Stefan Kangas [Wed, 29 May 2019 17:38:27 +0000 (19:38 +0200)]
Mark define-widget-keywords as obsolete

* lisp/widget.el (define-widget-keywords): Mark as obsolete.
(Bug#36065)

5 years agoUse lexical-binding in underline.el and add tests
Stefan Kangas [Wed, 29 May 2019 13:59:21 +0000 (15:59 +0200)]
Use lexical-binding in underline.el and add tests

* lisp/textmodes/underline.el: Use lexical-binding.
* test/lisp/textmodes/underline-tests.el: New file.
(Bug#36063)

5 years agoCheckdoc fixes in lisp/bookmark.el
Stefan Kangas [Sun, 26 May 2019 10:48:26 +0000 (12:48 +0200)]
Checkdoc fixes in lisp/bookmark.el

* lisp/bookmark.el (bookmark-bmenu-inline-header-height)
(bookmark-bmenu-marks-width, bookmark-map, bookmark-quit-flag)
(bookmark-name-from-full-record, bookmark-set-internal)
(bookmark-insert-annotation, bookmark--jump-via)
(bookmark-bmenu-set-header, bookmark-show-annotation)
(bookmark-bmenu-other-window-with-mouse, bookmark-bmenu-relocate):
Checkdoc docstring fixes.  (Bug#35916)

5 years agoFix int overflow bug in ‘equal’
Paul Eggert [Sun, 9 Jun 2019 06:38:18 +0000 (23:38 -0700)]
Fix int overflow bug in ‘equal’

* src/fns.c (internal_equal):
Fix bug when vector lengths exceed INT_MAX.

5 years agoTune base64 decoding
Paul Eggert [Sun, 9 Jun 2019 06:31:28 +0000 (23:31 -0700)]
Tune base64 decoding

This improves performance of base64-decode-region by about 7.5% on
my platform, and gets rid of some macros.
* src/fns.c (IS_ASCII, IS_BASE64, IS_BASE64_IGNORABLE)
(READ_QUADRUPLET_BYTE): Remove.
(base64_value_to_char, base64_char_to_value):
Now an array of two arrays.  All uses changed.
(base64url_value_to_char, base64url_char_to_value):
Remove.  All uses changed to the other array.
(base64_char_to_value): Entries are now of type signed char, not
short, since we can assume C99.  Use C99 initializers; this is
clearer and caters to the (theoretical) possibility of systems
that do not use ASCII or do not have 8-bit bytes.  Allow any index
in the range 0..UCHAR_MAX instead of limiting it to 0..127, so
that uses need not check for in-range indexes.  Also record
padding chars.  All uses changed.
(base64_decode_1): Always store number of chars in *NCHARS_RETURN,
for simplicity.  All callers changed.  Speed up the byte-fetching.

5 years agoFix out-of-source make-dist problems
Paul Eggert [Sat, 8 Jun 2019 21:08:05 +0000 (14:08 -0700)]
Fix out-of-source make-dist problems

Problem with jisx2131-filter reported by Phillip Lord in:
https://lists.gnu.org/r/emacs-devel/2019-06/msg00147.html
* admin/charsets/Makefile.in (SED_SCRIPT):
Put it in $(srcdir), which is not necessarily the working directory.
($(SED_SCRIPT)): Rename from jisx2131-filter.  All uses changed.
(clean): Do not remove SED_SCRIPT.
(extraclean): Remove it here instead.
* make-dist (possibly_non_vc_files): Remove src/emacs-module.h.
Although it is portable and could be distributed in the tarball,
it's too much hassle to do that, so let each builder make it.

5 years ago; Fix recent maintainer header removals
Glenn Morris [Sat, 8 Jun 2019 17:21:16 +0000 (10:21 -0700)]
; Fix recent maintainer header removals

The convention is that no "Maintainer" means "Author" is the maintainer.

5 years ago; * lisp/eshell/esh-util.el (eshell-get-path): Doc fix.
Eli Zaretskii [Sat, 8 Jun 2019 08:32:38 +0000 (11:32 +0300)]
; * lisp/eshell/esh-util.el (eshell-get-path): Doc fix.

5 years agoFix path for current directory in eshell on MS-Windows
Bernhard Rotter [Thu, 30 May 2019 08:13:00 +0000 (10:13 +0200)]
Fix path for current directory in eshell on MS-Windows

On MS-Windows, PATH implicitly includes the current directory.
Do it right for Eshell by adding "./" instead of ".", to
avoid finding .FOO instead of ./FOO.
* lisp/eshell/esh-util.el (eshell-get-path): New function.
* lisp/eshell/em-cmpl.el (eshell-complete-commands-list):
* lisp/eshell/esh-ext.el (eshell-search-path): Use eshell-get-path.

5 years agoMinor fixes for the last commits
Eli Zaretskii [Sat, 8 Jun 2019 08:14:31 +0000 (11:14 +0300)]
Minor fixes for the last commits

* src/fns.c (Fbase64url_encode_region)
(Fbase64url_encode_string, Fbase64_decode_region)
(Fbase64_decode_string): Fix doc strings.
(base64_decode_1): Minor stylistic code changes.

* doc/lispref/text.texi (Base 64): Fix typos and improve
wording of the last committed text.

5 years ago; * etc/NEWS: NEWS entry for the last commit.
Eli Zaretskii [Sat, 8 Jun 2019 07:57:27 +0000 (10:57 +0300)]
; * etc/NEWS: NEWS entry for the last commit.

5 years agoAdd support for base64url variant of base-64 encoding/decoding
Pierre Téchoueyres [Tue, 21 May 2019 21:00:13 +0000 (23:00 +0200)]
Add support for base64url variant of base-64 encoding/decoding

Implement the RFC4648 variant of base64 encoding used by URLs.
* doc/lispref/text.texi (base64url-encode-region,
base64url-encode-string): Document new functions.
(base64-decode-region, base64-decode-string): Document new optional
parameter 'base64url' used to use url variant when decoding data.

* src/fns.c (base64url-encode-region, base64url-encode-region): New
functions to manage url variant.
(base64-decode-region, base64-decode-string): Add optional
parameter to indicate use of url-variant.
(base64_encode_region_1, base64_encode_string_1): Internal functions
with extracted code from 'base64_encode_region' and
'base64_encode_string' and optional parameters to manage padding and
url variant.
(base64-encode-region, base64-encode-string) : Use
base64_encode_region_1 and base64_encode_string_1.
(base64-encode-1): Add parameters to manage padding and url variant.
(base64-decode-1): Add parameter to manage url variant.

* test/src/fns-tests.el (fns-tests--with-region): New helper macro to
test region variant of base64 encode / decode functions.
(fns-tests--string-repeat): Helper function used in base64 tests.
(fns-tests-base64-encode-region, fns-tests-base64-encode-string):
Tests for standard base64 function.
(fns-test-base64url-encode-region,
fns-test-base64url-encode-string): Tests for url variant.
(fns-tests-base64-decode-string): Tests for decoding part.

5 years agoSupport X core font driver on cairo (Bug#28236)
YAMAMOTO Mitsuharu [Sat, 8 Jun 2019 05:05:49 +0000 (14:05 +0900)]
Support X core font driver on cairo (Bug#28236)

* 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.
(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_composite_glyph_string_foreground)
(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.

5 years agoImplement native image rotation and cropping on cairo
YAMAMOTO Mitsuharu [Sat, 8 Jun 2019 04:05:15 +0000 (13:05 +0900)]
Implement native image rotation and cropping on cairo

* 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.

5 years agoMake icalendar-import-buffer not show diary file buffer
Thomas Fitzsimmons [Sat, 8 Jun 2019 00:43:38 +0000 (20:43 -0400)]
Make icalendar-import-buffer not show diary file buffer

* 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)

5 years agoFix commentary about fixnums and hashes.
Paul Eggert [Fri, 7 Jun 2019 23:39:22 +0000 (16:39 -0700)]
Fix commentary about fixnums and hashes.

5 years agoFix minor ssize_t / ptrdiff_t confusion
Paul Eggert [Fri, 7 Jun 2019 23:39:22 +0000 (16:39 -0700)]
Fix minor ssize_t / ptrdiff_t confusion

* src/fileio.c (Fcopy_file): This limit is because of ssize_t,
so use TYPE_MAXIMUM (ssize_t) not PTRDIFF_MAX.

5 years agoUse machine pointer width for face hashes
Paul Eggert [Fri, 7 Jun 2019 23:39:22 +0000 (16:39 -0700)]
Use machine pointer width for face hashes

* 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.

5 years ago* lisp/gnus: Further reduce assumptions about gnus-data format
Stefan Monnier [Fri, 7 Jun 2019 19:28:12 +0000 (15:28 -0400)]
* lisp/gnus: Further reduce assumptions about gnus-data format

* lisp/gnus/gnus-registry.el (gnus-registry-fetch-message-id-fast)
(gnus-registry-fetch-simplified-message-subject-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.

5 years agoMerge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
Eli Zaretskii [Fri, 7 Jun 2019 19:06:01 +0000 (22:06 +0300)]
Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs

5 years agoSupport text shaping with HarfBuzz
Eli Zaretskii [Fri, 7 Jun 2019 19:02:25 +0000 (22:02 +0300)]
Support text shaping with HarfBuzz

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
NULL.
(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
xfthbfont_driver.

* 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
Gnulib.
(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
object.
(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
prototype.

* 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
FT_Load_Glyph.
(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_info->hb_font.
(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'
method.
(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
DIRECTION.

* 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.
(EMACS_CFLAGS): Use HARFBUZZ_CFLAGS.
(SOME_MACHINE_OBJECTS): Add hbfont.o
(LIBES): Add HARFBUZZ_LIBS.

* 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-graphic)
(compose-gstring-for-dotted-circle)
(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.

5 years agoMake mouse-wheel-scroll-amount consistent among platforms
Tak Kunihiro [Fri, 7 Jun 2019 18:26:42 +0000 (19:26 +0100)]
Make mouse-wheel-scroll-amount consistent among platforms

* lisp/term/ns-win.el (mouse-wheel-scroll-amount): Do not put any
values on mouse-wheel-scroll-amount on ns.

5 years agoMerge remote-tracking branch 'origin/harfbuzz'
Eli Zaretskii [Fri, 7 Jun 2019 14:52:16 +0000 (17:52 +0300)]
Merge remote-tracking branch 'origin/harfbuzz'

5 years agoMerge from origin/emacs-26
Glenn Morris [Fri, 7 Jun 2019 14:50:49 +0000 (07:50 -0700)]
Merge from origin/emacs-26

9254885 (origin/emacs-26) Resurrect display-line-number-mode in clien...
aecbbd5 * src/fns.c (Fmapconcat): Doc fix.  (Bug#35710)
8e5fc38 Fix typo
ee21b40 * lisp/term/w32-win.el ([noname]): Bind to 'ignore'.  (Bug#36...
f68b33f Fix styling of Unicode codepoints in manuals
ff7ec6f Fix a few uses of quotes in user manual
b67042b More minor copyedits in the Emacs manual
9734b5c Fix minor issues in the Emacs manual
c153250 Try to improve text on atomic windows in Elisp manual
fb314ba Don't recommend insert-before-markers in process filters

5 years ago; Merge from origin/emacs-26
Glenn Morris [Fri, 7 Jun 2019 14:50:49 +0000 (07:50 -0700)]
; Merge from origin/emacs-26

The following commit was skipped:

04f13a5 Disable byte-compile-cond-use-jump-table (Bug#35770)

5 years agoMerge from origin/emacs-26
Glenn Morris [Fri, 7 Jun 2019 14:50:48 +0000 (07:50 -0700)]
Merge from origin/emacs-26

2860285 Allow macros autoloaded as functions during bytecomp (Bug#36022)

5 years agoResurrect display-line-number-mode in client frames
Eli Zaretskii [Fri, 7 Jun 2019 14:32:17 +0000 (17:32 +0300)]
Resurrect display-line-number-mode in client frames

* 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.
(Bug#35726)

5 years ago* src/fns.c (Fmapconcat): Doc fix. (Bug#35710)
Eli Zaretskii [Fri, 7 Jun 2019 12:59:50 +0000 (15:59 +0300)]
* src/fns.c (Fmapconcat): Doc fix.  (Bug#35710)

5 years agoFix typo
Phillip Lord [Fri, 7 Jun 2019 10:37:56 +0000 (11:37 +0100)]
Fix typo

* nt/README.W32:

5 years agoFix failures of term-tests on MS-Widows
Eli Zaretskii [Fri, 7 Jun 2019 09:01:11 +0000 (12:01 +0300)]
Fix failures of term-tests on MS-Widows

* 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.

5 years agoConsider line spacing and font height when deriving proc window size
John Shahid [Sat, 27 Apr 2019 16:21:38 +0000 (12:21 -0400)]
Consider line spacing and font height when deriving proc window size

* 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.

5 years agoFix image_set_crop yet again
YAMAMOTO Mitsuharu [Fri, 7 Jun 2019 08:43:39 +0000 (17:43 +0900)]
Fix image_set_crop yet again

* 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.

5 years agoAvoid compiler warning in copy-file-range.c on MS-Windows
Eli Zaretskii [Fri, 7 Jun 2019 08:15:51 +0000 (11:15 +0300)]
Avoid compiler warning in copy-file-range.c on MS-Windows

* nt/mingw-cfg.site (gl_cv_func_copy_file_range): Set to "yes",
to avoid compiling lib/copy-file-range.c on MS-Windows.

5 years agoFix recently-introduced image_set_crop typo
Paul Eggert [Fri, 7 Jun 2019 07:33:47 +0000 (00:33 -0700)]
Fix recently-introduced image_set_crop typo

* 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.

5 years agoUse copy_file_range to copy files
Paul Eggert [Fri, 7 Jun 2019 04:18:11 +0000 (21:18 -0700)]
Use copy_file_range to copy files

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.

5 years agoUpdate from Gnulib
Paul Eggert [Thu, 6 Jun 2019 15:56:03 +0000 (08:56 -0700)]
Update from Gnulib

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.

5 years agoAdd "pin" to password-word-equivalents (Bug#35523)
Noam Postavsky [Sat, 4 May 2019 17:20:42 +0000 (13:20 -0400)]
Add "pin" to password-word-equivalents (Bug#35523)

* lisp/international/mule-conf.el (password-word-equivalents): Add "pin".
* test/lisp/comint-tests.el (comint-testsuite-password-strings): Add
test case.

5 years agoFix overflow issues in image rotation
Paul Eggert [Thu, 6 Jun 2019 15:09:58 +0000 (08:09 -0700)]
Fix overflow issues in image rotation

Also, do some refactoring to simplify code.
* src/dispextern.h (INIT_MATRIX, COPY_MATRIX, MULT_MATRICES): Remove.
* src/image.c (matrix3x3): New type, replacing all uses of 3x3 double.
(matrix3x3_copy, matrix3x3_mult): New functions, replacing
COPY_MATRIX, MULT_MATRICES.  Replace INIT_MATRIX by C initializers.
(image_set_rotation): Use Fmod to avoid undefined behavior on
double-to-int conversion and to reduce bignum rotations correctly.
(image_set_crop): Finish up previous correction, by not re-setting
width and height if compute_image_size has set them.
Prefer shifting right by 1 to dividing by 2 if either will do.

5 years agoFix redisplay glitches with RTL composed text
Eli Zaretskii [Thu, 6 Jun 2019 14:12:57 +0000 (17:12 +0300)]
Fix redisplay glitches with RTL composed text

* src/xdisp.c (init_to_row_end): Fail if the first visible
position on the line following ROW is bidi-reordered and could
be composed.  (Bug#35811)

5 years agolisp/gnus/message.el (message--send-mail-maybe-partially): Extract
Oleh Krehel [Thu, 6 Jun 2019 14:08:48 +0000 (16:08 +0200)]
lisp/gnus/message.el (message--send-mail-maybe-partially): Extract

5 years agolisp/gnus/message.el (message--check-continuation-headers): Extract
Oleh Krehel [Thu, 6 Jun 2019 14:01:10 +0000 (16:01 +0200)]
lisp/gnus/message.el (message--check-continuation-headers): Extract

5 years agolisp/gnus/message.el (message--fold-long-headers): Add docstring
Oleh Krehel [Thu, 6 Jun 2019 13:50:46 +0000 (15:50 +0200)]
lisp/gnus/message.el (message--fold-long-headers): Add docstring

5 years ago* lisp/term/w32-win.el ([noname]): Bind to 'ignore'. (Bug#36083)
Eli Zaretskii [Thu, 6 Jun 2019 13:28:04 +0000 (16:28 +0300)]
* lisp/term/w32-win.el ([noname]): Bind to 'ignore'.  (Bug#36083)

5 years agoRestore height and with from that were accidentally removed
Mark A. Hershberger [Thu, 6 Jun 2019 13:07:36 +0000 (09:07 -0400)]
Restore height and with from that were accidentally removed

See 610fb73ab6d7a22b722f523d6ebc4aa8fa1db7c9
USE_CARIO needs these.

5 years agoCheck rcirc-server for auto authentication (Bug#10162)
Steve Scott [Mon, 3 Jun 2019 00:55:34 +0000 (21:55 -0300)]
Check rcirc-server for auto authentication (Bug#10162)

Since the hostname returned by irc.freenode.net can be something other
than irc.freenode.net, e.g. niven.freenode.net, the entries for
rcirc-authinfo and rcirc-server-alist will not match.
* lisp/net/rcirc.el (rcirc-handler-001): Check rcirc-server (the
hostname connected to) instead of rcirc-server-name (the hostname
returned), this corresponds with what rcirc-authenticate does.
Moreover, if rcirc-auto-authenticate-flag is set, check the
corresponding rcirc-authinfo, regardless of whether the
rcirc-authenticate-before-join must happen.

Copyright-paperwork-exempt: yes

5 years agoKeep nxml prolog updated via syntax-propertize
Noam Postavsky [Wed, 5 Jun 2019 23:24:58 +0000 (19:24 -0400)]
Keep nxml prolog updated via syntax-propertize

Instead of using after-change-functions.  Also, stop consulting
nxml-prolog-regions during syntax-propertize.  It turns out the
problems fixed by using prolog information are actually due to using
the wrong syntax table during propertizing.  This was fixed in
2019-06-04 "* lisp/emacs-lisp/syntax.el: Use syntax-ppss-table for
syntax-propertize." so consulting the prolog data is no longer needed.
* lisp/nxml/nxml-rap.el (nxml-maybe-rescan-prolog): Remove.
* lisp/nxml/nxml-mode.el (nxml-mode): Stop using it.
(nxml-syntax-propertize): Don't use nxml-prolog-regions, just call
nxml-scan-prolog if needed before delegating to
sgml-syntax-propertize.
* test/lisp/nxml/nxml-mode-tests.el (nxml-mode-edit-prolog): New test.

5 years agoAdd native image rotation and cropping
Alan Third [Wed, 5 Jun 2019 20:51:33 +0000 (21:51 +0100)]
Add native image rotation and cropping

* 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.
(HAVE_NATIVE_SCALING, HAVE_NATIVE_TRANSFORMS): Rename and change all
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
callers.
* 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
definitions.
* 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.

5 years agoNo longer add debug symbols to release build
Phillip Lord [Thu, 25 Apr 2019 14:26:26 +0000 (15:26 +0100)]
No longer add debug symbols to release build

* admin/nt/dist-build/build-zips.sh: Remove -g3 from release build and
  install with install-strip

5 years ago* lisp/wid-edit.el (widget-choose): Use display-buffer-in-direction
Juri Linkov [Wed, 5 Jun 2019 20:57:07 +0000 (23:57 +0300)]
* lisp/wid-edit.el (widget-choose): Use display-buffer-in-direction

to display buffer in bottom direction with fit-window-to-buffer.

* lisp/proced.el (proced-with-processes-buffer): Idem.  (Bug#35592)

5 years agoFix styling of Unicode codepoints in manuals
Eli Zaretskii [Wed, 5 Jun 2019 16:52:00 +0000 (19:52 +0300)]
Fix styling of Unicode codepoints in manuals

* 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)

5 years ago* doc/misc/tramp.texi (Obtaining Tramp): Explain version scheme.
Michael Albinus [Wed, 5 Jun 2019 14:23:03 +0000 (16:23 +0200)]
* doc/misc/tramp.texi (Obtaining Tramp): Explain version scheme.

(Traces and Profiles): Add `tramp-verbose' to @vindex.

5 years ago; Add test for Bug#36092
Noam Postavsky [Wed, 5 Jun 2019 01:08:26 +0000 (21:08 -0400)]
; Add test for Bug#36092

* test/lisp/nxml/nxml-mode-tests.el (nxml-mode->-after-quote): New
test.

5 years agoDo not use syntax-ppss-table in syntax-propertize when nil (Bug#36095)
Dario Gjorgjevski [Wed, 5 Jun 2019 09:07:49 +0000 (11:07 +0200)]
Do not use syntax-ppss-table in syntax-propertize when nil (Bug#36095)

* lisp/emacs-lisp/syntax.el (syntax-propertize): Use (syntax-table)
instead of syntax-ppss-table when the latter is nil.

5 years ago* lisp/emacs-lisp/syntax.el: Use syntax-ppss-table for syntax-propertize.
Stefan Monnier [Wed, 5 Jun 2019 01:48:06 +0000 (21:48 -0400)]
* lisp/emacs-lisp/syntax.el: Use syntax-ppss-table for syntax-propertize.

`syntax-ppss` uses `syntax-ppss-table` while parsing the buffer as well
as when it calls `syntax-propertize`, but `syntax-propertize` can also
be called directly rather than via `syntax-ppss` so it needs to explicitly
use `syntax-ppss-table` as well in order to avoid using sometimes one
table and sometimes another.

(syntax-ppss-table): Move before new use.
(syntax-propertize): Use it.

5 years agoRemove retired maintainers from comments
Paul Eggert [Tue, 4 Jun 2019 19:42:17 +0000 (12:42 -0700)]
Remove retired maintainers from comments

* lisp/international/quail.el, lisp/language/ind-util.el:
* lisp/language/indian.el, lisp/mail/smtpmail.el, lisp/mwheel.el:
* lisp/obsolete/longlines.el, lisp/progmodes/idlw-complete-structtag.el:
* lisp/progmodes/idlw-help.el, lisp/progmodes/idlw-shell.el:
* lisp/progmodes/idlw-toolbar.el, lisp/progmodes/idlwave.el:
* lisp/progmodes/simula.el, lisp/ps-print.el, lisp/ps-samp.el:
Remove Maintainer: lines for maintainers who have retired.

5 years ago* lisp/emacs-lisp/thunk.el (thunk-delay): Fix memory leak
Stefan Monnier [Tue, 4 Jun 2019 16:55:53 +0000 (12:55 -0400)]
* lisp/emacs-lisp/thunk.el (thunk-delay): Fix memory leak

Get rid of references to the free variables of `body` once the thunk has
been forced (bug#30626).

5 years ago* sgml-mode.el (sgml-syntax-propertize-rules): More verbose comments
Stefan Monnier [Tue, 4 Jun 2019 16:26:52 +0000 (12:26 -0400)]
* sgml-mode.el (sgml-syntax-propertize-rules): More verbose comments

5 years agoSpecify the matching chars for JSX open/close parenthesis
Jackson Ray Hamilton [Tue, 4 Jun 2019 15:37:36 +0000 (08:37 -0700)]
Specify the matching chars for JSX open/close parenthesis

* lisp/progmodes/js.el (js-jsx--syntax-propertize-tag): Indicate the
matching parenthesis character (since JSX’s < and > aren’t typical
parenthesis) for the sake of packages like rainbow-delimiters which
need that information.

5 years agoRevert "Add extra text property to fix issue with js2-mode integration"
Jackson Ray Hamilton [Tue, 4 Jun 2019 15:23:11 +0000 (08:23 -0700)]
Revert "Add extra text property to fix issue with js2-mode integration"

This reverts commit 382a508ed21e4f12ace9f8871818e25235e8f05e.

We ended up deciding against using this in js2-mode.  Instead,
js2-mode may eventually use js-mode’s syntax-propertize-function to
set syntax-table text properties.

5 years agoUpdate lispref spellfile
Paul Eggert [Tue, 4 Jun 2019 15:31:07 +0000 (08:31 -0700)]
Update lispref spellfile

* doc/lispref/spellfile: Omit words no longer in the manual.
How is this spellfile used?  Does anybody use it any more?

5 years agoAdjust comments/debug to match C bignum code
Paul Eggert [Tue, 4 Jun 2019 15:29:37 +0000 (08:29 -0700)]
Adjust comments/debug to match C bignum code

* doc/lispintro/emacs-lisp-intro.texi (Digression into C):
Adjust to match current C code.
* lisp/emacs-lisp/ert.el (ert--force-message-log-buffer-truncation):
Simplify.
* src/.gdbinit (Lisp_Object_Printer.to_string): Return
a string that says "make_fixnum", not "make_number".

5 years agoAlways allow at least double-precision bignums
Paul Eggert [Tue, 4 Jun 2019 15:13:20 +0000 (08:13 -0700)]
Always allow at least double-precision bignums

Without this fix, Emacs can get into a tight loop reporting
a range error when calculating timestamps.
* doc/lispref/numbers.texi (Integer Basics):
* src/alloc.c (syms_of_alloc): Document this.
* src/bignum.c (make_bignum_bits): Always allow bignums
of at least twice the width of (u)intmax_t.

5 years agoFix a few uses of quotes in user manual
Eli Zaretskii [Tue, 4 Jun 2019 15:11:37 +0000 (18:11 +0300)]
Fix a few uses of quotes in user manual

* doc/emacs/text.texi (Quotation Marks):
* doc/emacs/display.texi (Text Display):
* doc/emacs/basic.texi (Inserting Text): Fix some more
quotes.  (Bug#35885)

5 years ago* lisp/gnus/message.el (message-send-mail): Tweak last commit
Stefan Monnier [Tue, 4 Jun 2019 13:18:01 +0000 (09:18 -0400)]
* lisp/gnus/message.el (message-send-mail): Tweak last commit

5 years agoKeep nxml-prolog-end up to date (Bug#18871)
Noam Postavsky [Sat, 18 May 2019 18:54:36 +0000 (14:54 -0400)]
Keep nxml-prolog-end up to date (Bug#18871)

The change on 2016-01-16 "lisp/nxml: Use syntax-tables for comments"
removed the update of nxml-prolog-end, although it already failed to
work correctly after 2013-10-07 "* lisp/nxml/nxml-mode.el: Use
lexical-binding and syntax-propertize."
* lisp/nxml/nxml-rap.el: New function.
* lisp/nxml/nxml-mode.el (nxml-mode): Add it to
after-change-functions.

5 years agoDon't sgml-syntax-propertize-inside XML prolog (Bug#32823)
Noam Postavsky [Sat, 18 May 2019 18:37:51 +0000 (14:37 -0400)]
Don't sgml-syntax-propertize-inside XML prolog (Bug#32823)

* lisp/nxml/nxml-mode.el (nxml-syntax-propertize): New function.
(nxml-mode): Use it as the syntax-propertize-function.
* test/lisp/nxml/nxml-mode-tests.el (nxml-mode-doctype-and-quote-syntax)
(nxml-mode-prolog-comment): New tests.

5 years agoDon't fontify text outside of SGML/XML tags (Bug#33887)
Noam Postavsky [Sun, 26 May 2019 21:41:22 +0000 (17:41 -0400)]
Don't fontify text outside of SGML/XML tags (Bug#33887)

* lisp/textmodes/sgml-mode.el (sgml-font-lock-syntactic-face): New
function.
(sgml-mode):
* lisp/nxml/nxml-mode.el (nxml-mode): Use it as
font-lock-syntactic-face-function value.

5 years agoFix some SGML syntax edge cases (Bug#33887)
Noam Postavsky [Sun, 26 May 2019 15:07:14 +0000 (11:07 -0400)]
Fix some SGML syntax edge cases (Bug#33887)

* lisp/textmodes/sgml-mode.el (sgml-syntax-propertize-rules): Handle
single and double quotes symmetrically.  Don't skip quoted comment
enders.
* test/lisp/textmodes/sgml-mode-tests.el (sgml-tests--quotes-syntax):
Add more test cases.
(sgml-mode-quote-in-long-text): New test.

5 years agoStronger check for Tramp method
Michael Albinus [Tue, 4 Jun 2019 10:51:45 +0000 (12:51 +0200)]
Stronger check for Tramp method

* lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
* lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-maybe-open-connection):
Use `tramp-get-connection-name'.

* lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link):
* lisp/net/tramp-smb.el (tramp-smb-handle-make-symbolic-link):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-make-symbolic-link):
Don't check remote TARGET.

* lisp/net/tramp.el (tramp-dissect-file-name): Check for proper method.
(tramp-file-name-for-operation): Take only 2nd argument into
account for file name handler.
(tramp-file-name-handler): Suppress checks for `file-remote-p'.

* test/lisp/net/tramp-archive-tests.el
(tramp-archive-test02-file-name-dissect): Suppress check for wrong
method.

* test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case):
Dump *all* Tramp buffers.
(tramp-test02-file-name-dissect)
(tramp-test02-file-name-dissect-simplified)
(tramp-test02-file-name-dissect-separate): Check also wrong method.
(tramp-test03-file-name-defaults): Check, that the respective
Tramp package is loaded.
(tramp-test04-substitute-in-file-name)
(tramp-test05-expand-file-name)
(tramp-test06-directory-file-name, tramp-test44-auto-load):
Suppress check for wrong method.
(tramp-test30-make-process): Remove instrumentation code.
(tramp-test31-interrupt-process, tramp-test36-vc-registered):
Guarantee that connection is established prior starting process.

5 years ago* src/xterm.c (x_scroll_run) [USE_CAIRO]: Dirty only destination rectangle.
YAMAMOTO Mitsuharu [Tue, 4 Jun 2019 07:19:54 +0000 (16:19 +0900)]
* src/xterm.c (x_scroll_run) [USE_CAIRO]: Dirty only destination rectangle.

5 years ago* src/image.c (cr_create_cr_surface_from_image): Add const to variable `key'.
YAMAMOTO Mitsuharu [Tue, 4 Jun 2019 07:15:35 +0000 (16:15 +0900)]
* src/image.c (cr_create_cr_surface_from_image): Add const to variable `key'.

5 years agoLet untarring (and hence package installation) go faster (Bug#35909)
Noam Postavsky [Sat, 25 May 2019 23:44:41 +0000 (19:44 -0400)]
Let untarring (and hence package installation) go faster (Bug#35909)

* lisp/subr.el (progress-reporter-update)
(progress-reporter-force-update, progress-reporter-do-update): Accept
new optional argument, SUFFIX.
* doc/lispref/display.texi (Progress): Document it.
* etc/NEWS: Announce it.
* lisp/tar-mode.el (tar-untar-buffer): Use a progress reporter instead
of calling message.  Suppress message from write-region.  Let-bind
write-region-inhibit-fsync to t.

5 years agoUpdate dependencies
Phillip Lord [Mon, 3 Jun 2019 21:50:05 +0000 (22:50 +0100)]
Update dependencies

* admin/nt/dist-build/build-dep-zips.py: Add harfbuzz as dependency

5 years agoUser-friendly display of error messages at the end of minibuffer
Juri Linkov [Mon, 3 Jun 2019 20:27:19 +0000 (23:27 +0300)]
User-friendly display of error messages at the end of minibuffer

* lisp/simple.el (minibuffer-setup-hook): Add minibuffer-error-initialize.
(minibuffer-error-initialize, minibuffer-error-function): New functions.
(Bug#34939)

5 years ago* lisp/char-fold.el (char-fold-make-table): New function
Juri Linkov [Mon, 3 Jun 2019 20:18:31 +0000 (23:18 +0300)]
* lisp/char-fold.el (char-fold-make-table): New function

with body extracted from INITVALUE of defconst (bug#35689).
Bind search-spaces-regexp to nil (bug#35802).

* test/lisp/char-fold-tests.el: Relocate helpers to file beginning.
(char-fold--test-bug-35802): New test.

5 years ago* lisp/gnus/gnus-async.el: Use lexical-binding
Stefan Monnier [Mon, 3 Jun 2019 17:44:23 +0000 (13:44 -0400)]
* lisp/gnus/gnus-async.el: Use lexical-binding

Remove redundant :group args.
(gnus-async-post-fetch-function): Make it always be a function.
(gnus-make-async-article-function, gnus-async-prefetch-headers):
Use a closure rather than `(lambda ...)

5 years agoMore minor copyedits in the Emacs manual
Eli Zaretskii [Mon, 3 Jun 2019 16:30:47 +0000 (19:30 +0300)]
More minor copyedits in the Emacs manual

* doc/emacs/basic.texi (Arguments):
* doc/emacs/display.texi (Recentering, Text Display):
* doc/emacs/regs.texi (Text Registers, Rectangle Registers):
* doc/emacs/mark.texi (Disabled Transient Mark): Fix
inaccuracies and typos.  (Bug#35885)

5 years agoFix minor issues in the Emacs manual
Eli Zaretskii [Mon, 3 Jun 2019 16:11:42 +0000 (19:11 +0300)]
Fix minor issues in the Emacs manual

* doc/emacs/search.texi (Regexp Replace, Regexps):
* doc/emacs/kmacro.texi (Keyboard Macro Query)
(Save Keyboard Macro): Fix inaccuracies and typos.
(Bug#35885)

5 years agolisp/gnus/message.el (message-send-mail): Don't wrongly assert on Unicode msg
Oleh Krehel [Mon, 3 Jun 2019 13:48:09 +0000 (15:48 +0200)]
lisp/gnus/message.el (message-send-mail): Don't wrongly assert on Unicode msg

Using this setting:

    (setq message-send-mail-function 'message-send-mail-with-sendmail)
    (setq sendmail-program "msmtp")

the message seding is handled by an external program, so no Unicode
encoding is performed in Emacs. Thus Emacs must not assert that the
Unicode encoding was performed.

5 years agoTry to improve text on atomic windows in Elisp manual
Martin Rudalics [Mon, 3 Jun 2019 08:36:00 +0000 (10:36 +0200)]
Try to improve text on atomic windows in Elisp manual

* doc/lispref/windows.texi (Deleting Windows): Mention how
'delete-window' and 'delete-other-windows' handle atomic
windows.  Minor rewrite.
(Quitting Windows): Mention how 'quit-restore-window' handles
atomic windows and that it tries to avoid raising an error.
(Atomic Windows): Tell how to dissolve atomic windows.

5 years ago* help-fns.el (help-fns--first-release): Do not fail if no release is found.
Juanma Barranquero [Mon, 3 Jun 2019 00:13:57 +0000 (02:13 +0200)]
* help-fns.el (help-fns--first-release): Do not fail if no release is found.

5 years ago* gnus-(sum|async).el: Eliminate assumptions about gnus-data format
Stefan Monnier [Sun, 2 Jun 2019 23:21:45 +0000 (19:21 -0400)]
* gnus-(sum|async).el: Eliminate assumptions about gnus-data format

* lisp/gnus/gnus-async.el (gnus-async-with-semaphore): Use `declare`.
(gnus-async-prefetch-next): Don't assume gnus-data-number == car.

* lisp/gnus/gnus-sum.el (gnus-data-find-in): New function.
(gnus-data-find, gnus-data-find-list): Use it.
(gnus-summary-article-subject): Make it a function.
(gnus--dummy-data-list): New const.
(gnus-update-summary-mark-positions): Use it.

5 years ago* gnus.el: Fix cycle in eager macroexpansion
Stefan Monnier [Sun, 2 Jun 2019 17:04:13 +0000 (13:04 -0400)]
* gnus.el: Fix cycle in eager macroexpansion

* lisp/gnus/gnus-sum.el (gnus-data): Use cl-defstruct.
(gnus-data-set-pos, gnus-data-set-header, gnus-data-set-mark)
(gnus-data-set-number): Delete macros; use `setf` instead.
(gnus-data-unread-p, gnus-data-read-p, gnus-data-pseudo-p, gnus-data-find)
(gnus-summary-skip-intangible, gnus-summary-article-number):
Redefine as inlinable functions rather than macros.

* lisp/gnus/gnus.el: Adjust autoloads for the macros turned functions.

5 years ago* lisp/help-fns.el: Make hyperlink for the "first release" info
Stefan Monnier [Sun, 2 Jun 2019 15:52:41 +0000 (11:52 -0400)]
* lisp/help-fns.el: Make hyperlink for the "first release" info

* lisp/help-fns.el (help-fns--first-release): Return a "button".
(help-fns--mention-first-release): Preserve the string's text-properties.

* lisp/help-mode.el (help-news): New button type.

5 years ago; * src/hbfont.c (hbfont_shape): Fix a typo in a comment.
Eli Zaretskii [Sun, 2 Jun 2019 14:40:18 +0000 (17:40 +0300)]
; * src/hbfont.c (hbfont_shape): Fix a typo in a comment.

5 years agoChange default offset of CC Mode syntactic symbol inlambda to 0
Alan Mackenzie [Sun, 2 Jun 2019 14:05:33 +0000 (14:05 +0000)]
Change default offset of CC Mode syntactic symbol inlambda to 0

It's previous default was c-lineup-inexpr-block.  This change is mainly to
prevent excessive indentation of the innards of C++ lambda functions.

* lisp/progmodes/cc-vars.el (c-offsets-alist): Amend the offset for inlambda
to 0.

* doc/misc/cc-mode.texi (FAQ): Amend the answer to the question about this
matter.

5 years agoImplement the get_variation_glyphs method for FreeType >= 2.3.6
YAMAMOTO Mitsuharu [Sun, 2 Jun 2019 04:33:43 +0000 (13:33 +0900)]
Implement the get_variation_glyphs method for FreeType >= 2.3.6

* configure.ac: Check availability of FT_Face_GetCharVariantIndex.

* src/ftfont.c (ftfont_variation_glyphs) [HAVE_FT_FACE_GETCHARVARIANTINDEX]:
Add function implementation.

* src/ftcrfont.c (ftcrfont_variation_glyphs)
[HAVE_FT_FACE_GETCHARVARIANTINDEX]: Use function implementation for
HAVE_OTF_GET_VARIATION_GLYPHS.

* src/ftfont.c (ftfont_driver) [HAVE_FT_FACE_GETCHARVARIANTINDEX]:
* src/xftfont.c (xftfont_driver) [HAVE_FT_FACE_GETCHARVARIANTINDEX]:
* src/ftxfont.c (ftxfont_driver) [HAVE_FT_FACE_GETCHARVARIANTINDEX]:
* src/ftcrfont.c (ftcrfont_driver) [HAVE_FT_FACE_GETCHARVARIANTINDEX]:
Populate the get_variation_glyphs method.

5 years agoRevert previous commit
YAMAMOTO Mitsuharu [Sun, 2 Jun 2019 04:30:21 +0000 (13:30 +0900)]
Revert previous commit

This reverts commit 1ab69630dcb8c7a1b1b4171211a7c8ebf11b0d1c.
It has a wrong commit message.

5 years agoMake fthbfont and derivatives use common HarfBuzz code in hbfont.c
YAMAMOTO Mitsuharu [Sun, 2 Jun 2019 04:18:39 +0000 (13:18 +0900)]
Make fthbfont and derivatives use common HarfBuzz code in hbfont.c

* src/font.h (fthbfont_shape, fthbfont_combining_capability)
[HAVE_HARFBUZZ]: Remove prototypes.

* src/ftfont.c: Don't include math.h.
(uni_combining, uni_general, uni_mirroring, get_hb_unicode_funcs)
(fthbfont_shape_by_hb, fthbfont_combining_capability, fthbfont_shape)
[HAVE_HARFBUZZ]: Remove functions.

* src/ftfont.c (syms_of_ftfont_for_pdumper) [HAVE_HARFBUZZ]:
* src/xftfont.c (syms_of_xftfont_for_pdumper) [HAVE_HARFBUZZ]:
* src/ftcrfont.c (syms_of_ftcrfont_for_pdumper) [HAVE_HARFBUZZ]: Use
hbfont_shape and hbfont_combining_capability for fthbfont_shape and
fthbfont_combining_capability, respectively.

5 years agoMake fthbfont and derivatives use common HarfBuzz code in hbfont.c
YAMAMOTO Mitsuharu [Sun, 2 Jun 2019 04:02:09 +0000 (13:02 +0900)]
Make fthbfont and derivatives use common HarfBuzz code in hbfont.c

* src/font.h (fthbfont_shape, fthbfont_combining_capability)
[HAVE_HARFBUZZ]: Remove prototypes.

* src/ftfont.c: Don't include math.h.
(uni_combining, uni_general, uni_mirroring, get_hb_unicode_funcs)
(fthbfont_shape_by_hb, fthbfont_combining_capability, fthbfont_shape)
[HAVE_HARFBUZZ]: Remove functions.

* src/ftfont.c (syms_of_ftfont_for_pdumper) [HAVE_HARFBUZZ]:
* src/xftfont.c (syms_of_xftfont_for_pdumper) [HAVE_HARFBUZZ]:
* src/ftcrfont.c (syms_of_ftcrfont_for_pdumper) [HAVE_HARFBUZZ]: Use
hbfont_shape and hbfont_combining_capability instead of fthbfont_shape
and fthbfont_combining_capability, respectively.

5 years agoSkip some flymake tests on hydra.nixos.org
Glenn Morris [Sun, 2 Jun 2019 02:37:35 +0000 (19:37 -0700)]
Skip some flymake tests on hydra.nixos.org

* test/lisp/progmodes/flymake-tests.el (perl-backend)
(included-c-header-files, recurrent-backend):
Skip on hydra.nixos due to frequent intermittent failures.  (Bug#32764)

5 years agoUse lexical-binding in morse.el and studly.el and add tests
Stefan Kangas [Sun, 2 Jun 2019 01:51:06 +0000 (18:51 -0700)]
Use lexical-binding in morse.el and studly.el and add tests

* lisp/play/morse.el: Use lexical-binding.
* lisp/play/studly.el: Use lexical-binding.
* test/lisp/play/morse-tests.el: New file.
* test/lisp/play/studly-tests.el: New file.

5 years agoUse lexical-binding in paragraphs.el and add tests
Stefan Kangas [Sun, 2 Jun 2019 01:47:14 +0000 (18:47 -0700)]
Use lexical-binding in paragraphs.el and add tests

* lisp/textmodes/paragraphs.el: Use lexical-binding.
(repunctuate-sentences): Make it work non-interactively.
* test/lisp/textmodes/paragraphs-tests.el: New file.

5 years agoFix .gitignore spec for personal customizations
Paul Eggert [Sun, 2 Jun 2019 01:33:55 +0000 (18:33 -0700)]
Fix .gitignore spec for personal customizations

Problem reported by Mauro Aranda (Bug#35945).
* .gitignore: Replace .dir-locals?.el with .dir-locals-2.el.

5 years agoTune cl-assoc
Paul Eggert [Sun, 2 Jun 2019 01:12:31 +0000 (18:12 -0700)]
Tune cl-assoc

* lisp/emacs-lisp/cl-seq.el (cl-assoc): Use assq for fixnums.

5 years agoFix `cl-member' and `cl-assoc' for bignums
Mattias Engdegård [Sun, 2 Jun 2019 00:57:51 +0000 (17:57 -0700)]
Fix `cl-member' and `cl-assoc' for bignums

* lisp/emacs-lisp/cl-seq.el (cl-member, cl-assoc): Work with bignums.
* test/lisp/emacs-lisp/cl-seq-tests.el (cl-seq-bignum-eql): New.

5 years ago; Add NEWS entry for previous change
Noam Postavsky [Mon, 27 May 2019 00:30:09 +0000 (20:30 -0400)]
; Add NEWS entry for previous change

5 years agoMake rcirc PART and QUIT reasons customizable (Bug#12857)
Daniel Ralston [Thu, 13 Dec 2012 15:05:08 +0000 (07:05 -0800)]
Make rcirc PART and QUIT reasons customizable (Bug#12857)

* rcirc.el: (rcirc-default-part-reason, rcirc-default-quit-reason):
New customizable vars.
(rcirc-cmd-quit, rcirc-cmd-part): Consult them.

Copyright-paperwork-exempt: yes

5 years agoHandle argument to rcirc /part properly (Bug#11157)
Noam Postavsky [Mon, 27 May 2019 00:17:38 +0000 (20:17 -0400)]
Handle argument to rcirc /part properly (Bug#11157)

* lisp/net/rcirc.el (part): Split out channel name and part reason.
* doc/misc/rcirc.texi (rcirc commands): Clarify that channel name may
be provided to /part.

5 years ago* lisp/net/rcirc.el: Remove redundant :group usage
Noam Postavsky [Thu, 16 May 2019 11:19:45 +0000 (07:19 -0400)]
* lisp/net/rcirc.el: Remove redundant :group usage

... and empty Todo comment section.