- 04 Dec, 2019 8 commits
-
-
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.
-
Bastien authored
-
Juanma Barranquero authored
-
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 authored
-
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 authored
-
Glenn Morris authored
-
- 03 Dec, 2019 8 commits
-
-
Juri Linkov authored
(tab-bar-tabs, tab-bar--tab): Add optional arg FRAME. (tab-bar-get-buffer-tab): Funcall tab-bar-tabs-function with arg FRAME instead of using with-selected-frame.
-
Stefan Monnier authored
Reported by David Edmondson <dme@dme.org>.
-
Bastien authored
-
Stefan Monnier authored
* lisp/gnus/message.el (message-sendmail-envelope-from): Change default. (message--sendmail-envelope-from): New function. (message-sendmail-envelope-from): Use it. * lisp/mail/emacsbug.el (report-emacs-bug): Use it.
-
Stefan Monnier authored
This fixes bug#38458 where a final `point` in the pattern prevented the expected normal behavior of point moving after the completion of the final implicit `any`. (completion-pcm--find-all-completions) (completion-substring--all-completions): Use it. (completion-basic--pattern): Don't both removing "" any more. (completion-basic-try-completion): Use it as well as `completion-basic--pattern`.
-
Mattias Engdegård authored
For example, (any digit digit) should produce "[[:digit:]]", not "[[:digit:][:digit:]]". * lisp/emacs-lisp/rx.el (rx--translate-any): Deduplicate character classes. * test/lisp/emacs-lisp/rx-tests.el (rx-any): Add test case.
-
Tobias Bading authored
This should fix Bug#31223, Bug#28106, Bug#23672 as well as Ubuntu bug https://bugs.launchpad.net/ubuntu/+source/emacs25/+bug/1695228 Also fixes the formerly unscaled Y value returned by frame-monitor-workarea (and display-monitor-attributes-list). For details on why some GTK menus were empty please see thread https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg01061.html * src/gtkutil.c (menubar_map_cb, xg_update_frame_menubar): Scale up req.height so that the menu bar's height is in device pixels as expected. (xg_event_is_for_menubar): Scale down rec.x and rec.y so that gtk_widget_intersect() works as intended. * src/xfns.c (Fx_display_monitor_attributes_list): Scale work.x and work.y up to be in device pixels. Copyright-paperwork-exempt: yes
-
YAMAMOTO Mitsuharu authored
* src/ftcrfont.c (syms_of_ftcrfont_for_pdumper) [HAVE_HARFBUZZ]: * src/ftfont.c (syms_of_ftfont_for_pdumper) [HAVE_HARFBUZZ]: * src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper) [HAVE_HARFBUZZ]: * src/xftfont.c (syms_of_xftfont_for_pdumper) [HAVE_HARFBUZZ]: Fix typos.
-
- 02 Dec, 2019 3 commits
-
-
Juri Linkov authored
* lisp/window.el (window-state-buffers): New function. * lisp/tab-bar.el (tab-bar-get-buffer-tab): New function. * lisp/emacs-lisp/seq.el (seq-some): Add autoload cookie. * lisp/desktop.el (desktop-buffers-not-to-save-function): New variable. (desktop-save-buffer-p): Use it.
-
Juanma Barranquero authored
* lisp/frameset.el (frameset-persistent-filter-alist): Add :never filter for `font-backend'.
-
Juanma Barranquero authored
* lisp/ibuf-ext.el (ibuffer-generate-filter-groups): Use `cl-destructuring-bind' instead of `cl-multiple-value-bind', as we don't want to assume how multiple-values are implemented, and we know a list is being returned anyway. Suggested by Stefan Monnier.
-
- 01 Dec, 2019 6 commits
-
-
Dmitry Gutov authored
-
Mattias Engdegård authored
* lisp/mouse.el (mouse-drag-region-rectangle): Enable transient-mark-mode during selection (bug#38431).
-
Glenn Morris authored
-
Michael Albinus authored
* test/lisp/net/tramp-tests.el (tramp-test10-write-region) (tramp-test10-write-region-file-precious-flag) (tramp-test34-connection-local-variables) (tramp-test36-vc-registered): Let-bind `inhibit-message'.
-
Juanma Barranquero authored
* lisp/ibuf-ext.el (ibuffer-mark-by-content-regexp): Use `cl-dolist' instead of `cl-some' to avoid a run-time dependency on cl-lib that triggers an unreported bug similar to bug#38430.
-
Juanma Barranquero authored
* lisp/ibuf-ext.el (ibuffer-generate-filter-groups): Don't call `cl-values-list'. Our implementation of that function just checks that its argument is a list, and then returns it. In this specific case, the argument is guaranteed to be a list.
-
- 30 Nov, 2019 13 commits
-
-
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 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 authored
* doc/misc/gnus.texi (Tabbed Interface): New node. (bug#37998)
-
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
-
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 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 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.
-
Juanma Barranquero authored
* lisp/vc/vc-hg.el (vc-read-revision): Declare.
-
Eli Zaretskii authored
* doc/emacs/maintaining.texi (Switching Branches) (Pulling / Pushing, Merging): Fix markup of shell commands.
-
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 candidates. * etc/NEWS: Mention changes of vc-hg.el * doc/emacs/maintaining.texi (Switching Branches): Mention 'hg update' command. (Merging): Mention 'hg merge' command. This fixes bug#22860
-
Michal Sojka authored
* lisp/textmodes/table.el (table-command-remap-alist): Add entry for 'delete-forward-char'. (Bug#38353)
-
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) (smerge-base): * 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) (ediff-odd-diff-Ancestor): * 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 authored
-
- 29 Nov, 2019 2 commits
-
-
Alan Third authored
* src/image.c (lookup_image): Move call to image_set_transform after postprocess_image. (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. (Create_Pixmap_From_Bitmap_Data): (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 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.
-