1. 04 Dec, 2019 8 commits
    • 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
      * src/emacs-module.c: Don't check EMACS_MODULE_GMP or
      EMACS_MODULE_HAVE_MPZ_T.  Add a comment about the chosen
      (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
      (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.
    • Bastien's avatar
      etc/ORG-NEWS: Fix contents · 0ca32d12
      Bastien authored
    • Juanma Barranquero's avatar
    • 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.
    • Bastien's avatar
      ; etc/refcards/orgcard.tex: Fix header · 23053770
      Bastien authored
    • 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.
    • Glenn Morris's avatar
    • 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 13 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.
    • 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.
    • 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)
    • 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.
    • 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.
    • 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.
    • 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.
      * 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.
    • Juanma Barranquero's avatar
      Fix compilation warning in vc-hg.el · 9ac78ef5
      Juanma Barranquero authored
      * lisp/vc/vc-hg.el (vc-read-revision): Declare.
    • Eli Zaretskii's avatar
      Minor fixes in last change · e6e0654d
      Eli Zaretskii authored
      * doc/emacs/maintaining.texi (Switching Branches)
      (Pulling / Pushing, Merging): Fix markup of shell commands.
    • Andrii Kolomoiets's avatar
      vc-hg: prompt for branch to merge · 561840b5
      Andrii Kolomoiets authored
      * lisp/vc/vc-hg.el (vc-hg-merge-branch): Prompt for revision to merge.
      (vc-hg-revision-table): Use branches, tags and bookmarks as competion
      * etc/NEWS: Mention changes of vc-hg.el
      * doc/emacs/maintaining.texi (Switching Branches): Mention 'hg update'
      (Merging): Mention 'hg merge' command.
      This fixes bug#22860
    • Michal Sojka's avatar
      Fix preserving cell boundaries in table.el after <delete> · 63e7dd43
      Michal Sojka authored
      * lisp/textmodes/table.el (table-command-remap-alist): Add
      entry for 'delete-forward-char'.  (Bug#38353)
    • Eli Zaretskii's avatar
      Add ':extend' attribute to faces and themes · 64687872
      Eli Zaretskii authored
      * etc/themes/wombat-theme.el:
      * etc/themes/wheatgrass-theme.el:
      * etc/themes/tsdh-light-theme.el:
      * etc/themes/tsdh-dark-theme.el:
      * etc/themes/tango-theme.el:
      * etc/themes/tango-dark-theme.el:
      * etc/themes/misterioso-theme.el:
      * etc/themes/manoj-dark-theme.el:
      * etc/themes/light-blue-theme.el:
      * etc/themes/leuven-theme.el:
      * etc/themes/dichromacy-theme.el:
      * etc/themes/deeper-blue-theme.el:
      * etc/themes/adwaita-theme.el: Add ':extend' attribute to all
      faces that are by default defined with it.
      * lisp/vc/smerge-mode.el (smerge-upper, smerge-lower)
      * lisp/vc/log-view.el (log-view-file, log-view-message):
      * lisp/vc/ediff-init.el (ediff-current-diff-A)
      (ediff-current-diff-B, ediff-current-diff-C)
      (ediff-current-diff-Ancestor, ediff-even-diff-A)
      (ediff-even-diff-B, ediff-even-diff-C)
      (ediff-even-diff-Ancestor, ediff-odd-diff-A)
      (ediff-odd-diff-B, ediff-odd-diff-C)
      * lisp/vc/diff-mode.el (diff-header, diff-file-header)
      (diff-removed, diff-added): Make sure all definitions of faces
      have the same value of the ':extend' property, otherwise
      customizing background color or underline etc. attributes of
      these faces on some displays will produce effects different
      from other displays.
    • Juanma Barranquero's avatar
  6. 29 Nov, 2019 2 commits
    • Alan Third's avatar
      Fix image scaling with masks (bug#38109) · 3e9c82d9
      Alan Third authored
      * src/image.c (lookup_image): Move call to image_set_transform after
      (image_create_x_image_and_pixmap_1): Use new function.
      (image_set_transform): Apply the transform to the mask too.
      (x_create_xrender_picture): New function.
      (xpm_load): Use new function.
      * src/xterm.c (x_composite_image): Use PictOpOver when there is a mask
      so the transparency is honoured.
      (x_draw_image_foreground_1): Use x_composite_image.
    • Stefan Monnier's avatar
      * lisp/gnus/gnus.el (gnus-info): Define with `cl-defstruct` · b1a69505
      Stefan Monnier authored
      This makes the accessors into (inlined) functions (instead of macros),
      which simplifies some uses, and it makes the gnus-info-set-<foo>
      macros redundant since we can use `setf` instead.  Remove them and
      update all users.
      (gnus-info-group, gnus-info-rank, gnus-info-read, gnus-info-marks)
      (gnus-info-method, gnus-info-params): Auto-defined by defstruct.
      (gnus-info-level, gnus-info-score): Define as a function.  Add gv-setter.
      (gnus-info-set-group, gnus-info-set-rank, gnus-info-set-read): Remove,
      use `setf` instead.
      (gnus-info-set-marks, gnus-info-set-method, gnus-info-set-params):
      Define as a function.
      (gnus-info-set-entry): Delete function.
      (gnus-info--grow-entry): New function, extracted from it.
      (gnus-info--set-level, gnus-info--set-score): New functions, extracted
      from the `gnus-info-set-level` and `gnus-info-set-score` which they replace.
      (gnus-get-info): Define as a function.
      * lisp/gnus/gnus-group.el (gnus-group-edit-group-done):
      Use the `extend` arg of `gnus-info-set-method`.
      (gnus-group-sort-selected-flat): eta-reduce.