1. 04 Dec, 2019 15 commits
    • Juri Linkov's avatar
      * lisp/tab-line.el: Cache the tab-line-format template. · bd95d66a
      Juri Linkov authored
      (tab-line-format): Cache the result of tab-line-format-template in window.
      (tab-line-format-template): New function that returns the value to cache.
      bd95d66a
    • Juri Linkov's avatar
      * lisp/windmove.el (windmove-display-new-tab): New command. · f336ae77
      Juri Linkov authored
      (windmove-display-default-keybindings): Bind it to '?t'.
      (windmove-display-in-direction): Call tab-bar-new-tab when 'dir' is 'new-tab'.
      f336ae77
    • Juri Linkov's avatar
    • Juri Linkov's avatar
      * lisp/tab-bar.el (switch-to-buffer-other-tab): Use display-buffer-in-tab. · 67815c6b
      Juri Linkov authored
      (tab-bar--tab): Use float-time instead of integer.
      This improves correct detection of recent tabs switched within 1 sec.
      (tab-bar--current-tab, tab-bar--current-tab-index)
      (tab-bar--tab-index, tab-bar--tab-index-by-name)
      (tab-bar--tab-index-recent): Add optional arg FRAME.
      (tab-bar-move-tab-to-frame): Add with-selected-frame for tab-bar-close-tab.
      (tab-bar--reusable-frames): New function.
      (tab-bar-get-buffer-tab): Add index to the found tab.
      (display-buffer-in-tab): Use `tab-name' entry instead of `name'.
      Add `reusable-frames' entry.  (bug#38354)
      67815c6b
    • João Távora's avatar
      New jit-lock-antiblink-grace feature · 5b45c269
      João Távora authored
      * lisp/jit-lock.el (jit-lock-antiblink-grace): New defcustom.
      (jit-lock--antiblink-line-beginning-position)
      (jit-lock--antiblink-string-or-comment): New variables
      (jit-lock--antiblink-post-command): New helper.
      (jit-lock-mode): Tweak post-command-hook and
      jit-lock-context-timer.
      
      * etc/NEWS: Mention jit-lock-antiblink-grace
      5b45c269
    • Philipp Stephani's avatar
      Use new function encode_string_utf_8 for the module API, too · 0e774d4f
      Philipp Stephani authored
      * src/emacs-module.c (module_encode): Remove.
      (module_copy_string_contents): Use encode_string_utf_8.
      (syms_of_module): Define symbol 'unicode-string-p'.
      0e774d4f
    • Philipp Stephani's avatar
    • Philipp Stephani's avatar
      Change module interface to no longer use GMP objects directly. · 096be9c4
      Philipp Stephani authored
      As described in the new comment added to emacs-module.c, using GMP
      directly in the module interface has significant downsides: it couples
      the module interface directly to the implementation and requires
      module authors to link their module against the same GMP library as
      Emacs itself, which is often difficult and an unnecessary burden.  By
      picking a representation for the magnitude that often matches the one
      used by GMP, we can avoid overhead when converting from and to GMP in
      most cases.
      
      Loading the test module in test/data/emacs-module and evaluating
      
      (dotimes (_ 10000)
        (mod-test-double (* 2 most-negative-fixnum)))
      
      under Callgrind shows that on my (GNU/Linux) machine Emacs only spends
      10% of the CPU time of mod-test-double in mpz_import and mpz_export
      combined, even though that function does little else.  (By contrast,
      30% is spent in allocate_pseudovector.)
      
      * src/emacs-module.h.in: Don't check EMACS_MODULE_GMP.  Don't include
      gmp.h.  Remove emacs_mpz structure.  Instead, define type alias
      emacs_limb_t and macro EMACS_LIMB_MAX.
      
      * src/module-env-27.h: Change interface of extract_big_integer and
      make_big_integer to take a sign-magnitude representation instead of
      mpz_t.
      
      * src/emacs-module.c: Don't check EMACS_MODULE_GMP or
      EMACS_MODULE_HAVE_MPZ_T.  Add a comment about the chosen
      implementation.
      (module_extract_big_integer, module_make_big_integer): Reimplement
      without using mpz_t in the interface.
      
      * doc/lispref/internals.texi (Module Values): Adapt function
      documentation and example.  Stop mentioning GMP and EMACS_MODULE_GMP.
      
      * test/data/emacs-module/mod-test.c: Don't define EMACS_MODULE_GMP or
      EMACS_MODULE_HAVE_MPZ_T.
      (memory_full, extract_big_integer, make_big_integer): New helper
      functions, identical to example in the Info documentation.
      (Fmod_test_nanoseconds, Fmod_test_double): Adapt to new interface.
      096be9c4
    • Bastien's avatar
      etc/ORG-NEWS: Fix contents · 0ca32d12
      Bastien authored
      0ca32d12
    • Juanma Barranquero's avatar
      9ef87362
    • Mattias Engdegård's avatar
      Don't use the return value of 'push' · f5672b24
      Mattias Engdegård authored
      Although 'push' returns the modified list, it isn't actually
      documented to do so, so don't rely on it.
      
      * lisp/emacs-lisp/rx.el (rx--translate-any): Add progn.
      f5672b24
    • Bastien's avatar
      ; etc/refcards/orgcard.tex: Fix header · 23053770
      Bastien authored
      23053770
    • Juanma Barranquero's avatar
      Silence warnings in Org 9.3 · 8fb773cc
      Juanma Barranquero authored
      * lisp/org/ob-eshell.el (eshell-send-input): Declare.
      (eshell-last-output-start, eshell-last-output-end)
      (eshell-last-input-end): Defvar.
      
      * lisp/org/org-keys.el (cl-lib): Require.
      (org-CUA-compatible): Move up defvaralias.
      8fb773cc
    • Glenn Morris's avatar
      0db82bc0
    • Glenn Morris's avatar
  2. 03 Dec, 2019 8 commits
  3. 02 Dec, 2019 3 commits
  4. 01 Dec, 2019 6 commits
  5. 30 Nov, 2019 8 commits
    • Mattias Engdegård's avatar
      Improved mouse rectangle selection robustness (bug#38013) · 293eb325
      Mattias Engdegård authored
      Make the rectangular selection work better with
      display-line-numbers-mode and side-by-side windows.
      Also make the mouse track the text cursor in a consistent way.
      
      * lisp/mouse.el (mouse--rectangle-track-cursor): Added constant.
      (mouse-drag-region-rectangle): Take the line-number width into
      account, and use window-relative columns.  Track either the cursor or
      rectangle corner with more care.
      293eb325
    • Juri Linkov's avatar
      * lisp/tab-line.el (tab-line-auto-hscroll): Don't let-bind buffer-local values · dfbbbf31
      Juri Linkov authored
      Use setq to set buffer-local values of truncate-lines and buffer-undo-list.
      This will prevent leaking of let-bound values to buffer-local values
      of the minibuffer.
      dfbbbf31
    • Juri Linkov's avatar
      * lisp/gnus/gnus-win.el (gnus-configure-frame): Check for window-live-p. · df89d6d6
      Juri Linkov authored
      * doc/misc/gnus.texi (Tabbed Interface): New node.  (bug#37998)
      df89d6d6
    • Juri Linkov's avatar
      * lisp/subr.el: Add discard-input to more functions. · 54c792ec
      Juri Linkov authored
      * lisp/subr.el (read-char-from-minibuffer-insert-other)
      (y-or-n-p-insert-other): Use discard-input in case of user mistake.
      (do-after-load-evaluation): Add discard-input before calling 'message',
      so in case of the active minibuffer, calling minibuffer-message will allow
      sit-for to wait the complete timeout, because discard-input will discard
      all initial events that prevent sit-for from waiting during startup.
      https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg00581.html
      54c792ec
    • Alan Mackenzie's avatar
      CC Mode. Fix fontification bug with unterminated quotes on adjacent lines · 757e66af
      Alan Mackenzie authored
      In particular, with these unterminated quotes on each of two adjacent lines,
      the following text was spuriously fontified with string face.
      
      * lisp/progmodes/cc-defs.el
      (c-search-backward-char-property-with-value-on-char): New macro.
      
      * lisp/progmodes/cc-mode.el (c-clear-string-fences): Check whether there is an
      unmatched quote at a lower buffer position which should match the current
      quote, rather than wrongly assuming the latter is unmatched and marking it
      with a punctuation syntax.
      (c-font-lock-fontify-region): Ensure all pertinent parts of the buffer have
      string fence properties applied before performing any syntactic operations on
      it; in particular, this applies to a quote at an earlier buffer position which
      "matches" one inside the region about to be fontified.
      757e66af
    • Juri Linkov's avatar
      * lisp/image.el: Support image scaling with mouse in other buffer. · 3c278b49
      Juri Linkov authored
      * lisp/image.el (image-increase-size, image-decrease-size):
      Add optional arg position.
      (image-mouse-increase-size, image-mouse-decrease-size):
      Use '(point-marker)' for arg position.
      (image--get-image): Use get-char-property from position if non-nil,
      and its buffer.
      (image--get-imagemagick-and-warn, image--change-size):
      Add optional arg position.
      3c278b49
    • Juri Linkov's avatar
      Use run-with-idle-timer instead of debounce for responsive image scaling. · d64ea182
      Juri Linkov authored
      * lisp/emacs-lisp/timer.el (debounce, debounce-reduce): Revert macro addition.
      https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg01133.html
      
      * lisp/image.el (image-increase-size, image-decrease-size):
      Use run-with-idle-timer.
      (image--change-size): Rename back from image--change-size-function.
      
      * lisp/image-mode.el (image-mode--setup-mode): Remove hooks
      window-size-change-functions and window-selection-change-functions (bug#32672)
      (image-fit-to-window): Rename from image--window-change-function.
      (image--window-state-change): Rename from image--window-change.
      Use run-with-idle-timer.
      d64ea182
    • Juanma Barranquero's avatar
      Fix compilation warning in vc-hg.el · 9ac78ef5
      Juanma Barranquero authored
      * lisp/vc/vc-hg.el (vc-read-revision): Declare.
      9ac78ef5