1. 20 May, 2019 20 commits
    • 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.
    • Paul Eggert's avatar
      Fixes for "Maintainer:" and related lines · bef1be87
      Paul Eggert authored
      Mostly, this just removes "Maintainer: emacs-devel@gnu.org" lines,
      which are not that useful.  It also cleans up and regularizes a
      few similar lines.
    • Alexander Gramiak's avatar
      Use HAVE_WINDOW_SYSTEM over HAVE_X11 || HAVE_NTGUI || HAVE_NS · 20241e2c
      Alexander Gramiak authored
      * src/keyboard.c (kbd_buffer_get_event, make_lispy_event): Use
    • Alexander Gramiak's avatar
      Introduce Emacs_Pix_Container and Emacs_Pix_Context typedefs · b2b1ccb8
      Alexander Gramiak authored
      Emacs_Pix_Container is a pointer to a struct representing pixmap data
      on the backend.  Emacs_Pix_Context is the context for the
      bitmap/pixmap on the backend.  Only w32 currently makes this
      distinction; they are otherwise the same type.
      * src/dispextern.h: Remove XImagePtr in favor of
      using XImage* directly. Rename XImagePtr_or_DC to Emacs_Pix_Context.
      [HAVE_X_WINDOWS] Alias Emacs_Pix_Container and
      Emacs_Pix_Context to XImage*.
      [HAVE_NS] Alias Emacs_Pix_Container and Emacs_Pix_Context to trivial
      Emacs_Pixmap definition.
      [HAVE_NTGUI]: Alias Emacs_Pix_Container to XImage* and
      Emacs_Pix_Context to HDC.
      * src/dispextern.h:
      * src/image.c: Use Emacs_Pix_Container over XImagePtr and
      Emacs_Pix_Context over XImagePtr_or_DC.
    • Alexander Gramiak's avatar
      Replace XChar2b with unsigned in all font backends · a4fe9c70
      Alexander Gramiak authored
      The xfont backend using XChar2b in its API doesn't mean that we should
      use it everywhere else.
      * src/dispextern.h (glyph_string):
      * src/ftcrfont.c (ftcrfont_draw):
      * src/ftxfont.c (ftxfont_draw):
      * src/w32term.c (w32_draw_glyphless_glyph_string_foreground):
      * src/xdisp.c (init_glyph_string, get_char_face_and_encoding)
      (get_glyph_face_and_encoding, get_char_glyph_code)
      (fill_gstring_glyph_string, fill_stretch_glyph_string)
      (normal_char_ascent_descent, gui_get_glyph_overhangs)
      (compute_overhangs_and_x, gui_produce_glyphs):
      * src/xfont.c (xfont_get_pcm, xfont_chars_supported, xfont_open)
      (xfont_encode_char, xfont_text_extents, xfont_draw)
      * src/xftfont.c (xftfont_draw):
      * src/xterm.c (x_compute_glyph_string_overhangs)
      (x_draw_glyphless_glyph_string_foreground): Use unsigned over XChar2b.
      * src/nsgui.h:
      * src/w32gui.h:
      * src/xterm.h: Remove XChar2b, STORE_XCHAR2B, XCHAR2B_BYTE1, and
      XCHAR2B_BYTE2 typedefs and macros.
      * src/font.h (font_driver):
      * src/ftcrfont.c (ftcrfont_text_extents):
      * src/ftfont.c (ftfont_text_extents):
      * src/macfont.m (macfont_text_extents):
      * src/nsfont.m (nsfont_text_extents):
      * src/w32font.h (w32_font_text_extents):
      * src/font.c (xfont_text_extents):
      * src/xftfont.c (xftfont_text_extents): Make code parameter const.
    • Alexander Gramiak's avatar
      Introduce Emacs_GC struct and typedef · b3d3c0da
      Alexander Gramiak authored
      * src/dispextern.h [HAVE_X_WINDOWS]: Alias Emacs_GC to XGCValues.
      [!HAVE_X_WINDOWS]: Define Emacs_GC, GCForeground, and GCBackground.
      * src/nsgui.h:
      * src/w32gui.h:Remove obsolete XGCValues, GC, GCForeground,
      GCBackground, and GCFont definitions.
      * src/w32fns.c (w32_make_gc): Do not set unused font field.
      * src/w32term.c: Use Emacs_GC over XGCValues. Do not set unused font
      * src/xfaces.c: Use Emacs_GC over XGCValues and GC.
    • Alexander Gramiak's avatar
      Introduce Emacs_Rectangle struct and typedef · 462b1fd7
      Alexander Gramiak authored
      * src/dispextern.h [HAVE_X_WINDOWS]: Alias Emacs_Rectangle to
      [!HAVE_X_WINDOWS]: Define Emacs_Rectangle struct.
      Use Emacs_Rectangle over XRectangle.
      * src/frame.h (MonitorInfo):
      * src/msdos.h:
      * src/w32term.c:
      * src/xdisp.c: Use Emacs_Rectangle over XRectangle.
      * src/nsgui.h:
      * src/w32gui.h: Remove old XRectangle structs.
      * src/xdisp.c:
      * src/nsgui.h:
      * src/w32gui.h: Rename CONVERT_FROM_XRECT and CONVERT_TO_XRECT to
    • Alexander Gramiak's avatar
      Introduce Emacs_Pixmap typedef · 44d57792
      Alexander Gramiak authored
      * src/dispextern.h [HAVE_X_WINDOWS]: Alias Emacs_Pixmap to Pixmap.
      (image, x_kill_gs_process): Use Emacs_Pixmap over Pixmap.
      * src/image.c:
      * src/nsgui.h:
      * src/nsterm.m:
      * src/termhooks.h:
      * src/w32gui.h:
      * src/w32term.c:
      * src/w32term.h:
      * src/xterm.c (x_free_pixmap): Use Emacs_Pixmap over Pixmap.
      * src/w32gui.h: Remove unused typedef Bitmap.
    • Alexander Gramiak's avatar
      Introduce Emacs_Cursor typedef · 06db2a05
      Alexander Gramiak authored
      * src/dispextern.h [HAVE_X_WINDOWS]: Define Emacs_Cursor alias. Move
      the No_Cursor definition from xterm.h.
      (redisplay_interface): Use Emacs_Cursor over Cursor.
      * src/nsgui.h:
      * src/nsterm.h:
      * src/nsterm.m:
      * src/w32gui.h:
      * src/w32term.c:
      * src/xdisp.c:
      * src/xterm.c (x_define_frame_cursor): Use Emacs_Cursor over Cursor.
    • Alexander Gramiak's avatar
      Introduce Emacs_Color struct and typedef · c0e146e4
      Alexander Gramiak authored
      This avoids clashing with the XColor struct from X.
      * src/dispextern [HAVE_X_WINDOWS]: Define Emacs_Color alias.
      [!HAVE_X_WINDOWS]: Rename XColor compatibility struct to
      Emacs_Color. Remove unused fields.
      * src/gtkutil.c:
      * src/gtkutil.h:
      * src/image.c:
      * src/nsterm.h:
      * src/nsterm.m:
      * src/termhooks.h:
      * src/w32fns.c:
      * src/w32term.c:
      * src/w32term.h:
      * src/xfaces.c:
      * src/xfns.c:
      * src/xterm.h: Use Emacs_Color over XColor outside of X-specific
  2. 19 May, 2019 18 commits
  3. 18 May, 2019 2 commits
    • YAMAMOTO Mitsuharu's avatar
      Avoid triple buffering with Xdbe in cairo · b87e5eea
      YAMAMOTO Mitsuharu authored
      * src/xterm.h (struct x_output): Remove member cr_surface.
      Add members cr_surface_desired_width and cr_surface_desired_height.
      (x_cr_destroy_frame_context) [USE_CAIRO]: Add extern.
      * src/xterm.c (x_free_cr_resources): Remove function.
      (FRAME_CR_SURFACE) [USE_CAIRO]: Remove macro.
      New macros.
      (x_cr_destroy_frame_context) [USE_CAIRO]: Rename from x_cr_destroy_surface.
      All Uses changed.  Don't use FRAME_CR_SURFACE.  Make non-static.
      (x_cr_update_surface_desired_size) [USE_CAIRO]: New function.
      (x_begin_cr_clip) [USE_CAIRO]: Create Xlib surface if Xdbe is in use.
      (x_end_cr_clip) [USE_CAIRO]: Call x_mark_frame_dirty if Xdbe is in use.
      (x_cr_draw_frame, x_cr_export_frames) [USE_CAIRO]: Save and restore cairo
      context instead of freeing and clearing it.
      (x_update_begin) [USE_CAIRO]: Don't create cairo surface here.
      (show_back_buffer) [USE_CAIRO]: Call cairo_surface_flush before swapping.
      (x_update_end) [USE_CAIRO]: Don't copy image surface if Xdbe is in use.
      Get image surface by cairo_get_target instead of FRAME_CR_SURFACE.
      (x_scroll_run) [USE_CAIRO]: Use XCopyArea if Xdbe is in use.
      (handle_one_xevent) [USE_CAIRO] <ConfigureNotify>: Call
      x_cr_update_surface_desired_size instead of x_cr_destroy_surface.
      (x_free_frame_resources) [USE_CAIRO]: Call x_cr_destroy_frame_context instead
      of x_free_cr_resources.
      * src/xfns.c (set_up_x_back_buffer, tear_down_x_back_buffer) [USE_CAIRO]:
      Call x_cr_destroy_frame_context.
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/package.el: Fix decoding of downloaded files · 5f9671e5
      Stefan Monnier authored
      This is a different fix for bug#34909, which should also fix bug#35739.
      Our downloading code used to automatically decode the result according
      to the usual heuristics for files.  This caused problems when we later
      needed to save the data in a file that needed to be byte-for-byte
      equal to the original in order to pass the signature verification,
      especially because we didn't keep track of which coding-system was
      used to decode the data.
      (package--unless-error): New macro extracted from
      package--with-response-buffer-1, so that we can specify edebug and
      indent specs.
      (package--with-response-buffer-1): Use it.  More importantly, change
      code so it runs `body` in a unibyte buffer with undecoded data.
      (package--download-one-archive): Don't encode with utf-8 since the data
      is not decoded yet.
      (describe-package-1): Explicitly decode the readem.txt files here.
      * lisp/url/url-handlers.el (url-insert-file-contents): Use it.
      (url-insert): Don't decode if buffer is unibyte.
      * lisp/url/url-http.el (url-http--insert-file-helper): New function,
      extracted from url-insert-file-contents.