]> git.eshelyaron.com Git - emacs.git/log
emacs.git
2 years agoSome additions to notes
Gerd Möllmann [Sat, 29 Oct 2022 13:05:42 +0000 (15:05 +0200)]
Some additions to notes

2 years agoFix byte-compiler warnings in tests
Gerd Möllmann [Sat, 29 Oct 2022 12:26:28 +0000 (14:26 +0200)]
Fix byte-compiler warnings in tests

* test/src/pkg-tests.el (pkg-tests-*package*): Fix empty let.
(pkg-tests-use-package): Make local var status ignored.

2 years agoMerge remote-tracking branch 'origin/master' into feature/pkg
Gerd Möllmann [Sat, 29 Oct 2022 12:10:17 +0000 (14:10 +0200)]
Merge remote-tracking branch 'origin/master' into feature/pkg

2 years agoFix another GCC warning
Po Lu [Sat, 29 Oct 2022 10:21:51 +0000 (18:21 +0800)]
Fix another GCC warning

* src/nsterm.m (ns_draw_glyphless_glyph_string_foreground): Fix
another compiler warning.

2 years agoFix crash destroying NS frame tool bar
Po Lu [Sat, 29 Oct 2022 10:21:09 +0000 (18:21 +0800)]
Fix crash destroying NS frame tool bar

* src/nsterm.m (ns_draw_glyphless_glyph_string_foreground): Work
around silly GCC bug causing splurious warnings.
([EmacsWindow dealloc]): Detach tool bar before dealloc'ing
window.  (bug#58857)

2 years agoc-get-fontification-context: Refine the last non-default arm of the cond
Alan Mackenzie [Sat, 29 Oct 2022 10:04:37 +0000 (10:04 +0000)]
c-get-fontification-context: Refine the last non-default arm of the cond

This fixes bug #58772.

* lisp/progmodes/cc-fonts.el (c-get-fontification-context): Make the function
return (decl . nil) when MATCH-POS is in the second paren list of something
like DEFUN (..) (..).  Tidy up untidy code with save-excursion's for greater
accuracy.  Set a c-type text property value c-decl-arg-start to speed up
future calls.  Reindent the entire function.

2 years agoImprove notes
Gerd Möllmann [Sat, 29 Oct 2022 09:40:41 +0000 (11:40 +0200)]
Improve notes

2 years agoPrefer defvar-keymap in help.el
Stefan Kangas [Sat, 29 Oct 2022 05:44:07 +0000 (07:44 +0200)]
Prefer defvar-keymap in help.el

* lisp/help.el (help-key): New function.
(help-map): Prefer defvar-keymap.

2 years agoPrefer defvar-keymap in page-ext.el
Stefan Kangas [Sat, 29 Oct 2022 01:57:55 +0000 (03:57 +0200)]
Prefer defvar-keymap in page-ext.el

* lisp/textmodes/page-ext.el (pages--ctl-x-ctl-p-map)
(pages-directory-mode-map): Prefer defvar-keymap.

2 years ago; Minor cleanups in make-mode.el
Stefan Kangas [Sat, 29 Oct 2022 01:42:46 +0000 (03:42 +0200)]
; Minor cleanups in make-mode.el

* lisp/progmodes/make-mode.el
(makefile-query-one-target-method-function)
(makefile-insert-macro, makefile-insert-target)
(makefile-insert-target-ref, makefile-backslash-region)
(makefile-browser-next-line, makefile-browser-previous-line)
(makefile-remember-target): Minor cleanups.

2 years agoFix last change
Po Lu [Sat, 29 Oct 2022 00:55:40 +0000 (08:55 +0800)]
Fix last change

* src/itree.c (struct itree_iterator):
(itree_iterator_next): Fix some fields and const confusion.

2 years agoFix function declarations in itree headers
Po Lu [Sat, 29 Oct 2022 00:48:58 +0000 (08:48 +0800)]
Fix function declarations in itree headers

* src/itree.h: Make all declarations `extern'.

2 years agoFix coding style of latest feature branch merge
Po Lu [Sat, 29 Oct 2022 00:47:16 +0000 (08:47 +0800)]
Fix coding style of latest feature branch merge

* src/itree.c (interval_stack_ensure_space)
(interval_stack_push_flagged, struct itree_iterator)
(struct check_subtree_result, check_subtree, check_tree)
(itree_newlimit, interval_tree_inherit_offset)
(interval_tree_propagate_limit, itree_node_init, itree_node_begin)
(itree_node_end, itree_create, interval_tree_rotate_left)
(interval_tree_rotate_right, interval_tree_insert_fix)
(interval_tree_insert, itree_insert, itree_node_set_region)
(interval_tree_contains, interval_tree_subtree_min)
(interval_tree_remove_fix, interval_tree_replace_child)
(interval_tree_transplant, itree_remove, itree_iterator_start)
(itree_insert_gap, itree_delete_gap, interval_node_intersects)
(itree_iterator_next, itree_iterator_narrow): Tabify.  Fix
comment and code coding style.

2 years agoInclude Cairo FreeType header when available
Po Lu [Sat, 29 Oct 2022 00:38:09 +0000 (08:38 +0800)]
Include Cairo FreeType header when available

* src/xsettings.c: Include cairo-ft.h if CAIRO_HAS_FT_FONT.
(bug#58830)

2 years agoMerge remote-tracking branch 'origin/feature/noverlay'
Stefan Monnier [Fri, 28 Oct 2022 21:44:44 +0000 (17:44 -0400)]
Merge remote-tracking branch 'origin/feature/noverlay'

2 years agoFix warning in xsettings.c
Stefan Kangas [Fri, 28 Oct 2022 21:08:36 +0000 (23:08 +0200)]
Fix warning in xsettings.c

* src/xsettings.c [USE_CAIRO]: Include cairo-ft.h.
Thanks to Vincent Bernat <bernat@luffy.cx>.

2 years ago; Fix sit-for calling convention in zone.el
Stefan Kangas [Fri, 28 Oct 2022 20:34:24 +0000 (22:34 +0200)]
; Fix sit-for calling convention in zone.el

* lisp/play/zone.el (zone-pgm-2nd-putz-with-case)
(zone-pgm-putz-with-case): Don't use obsolete calling convention for
'sit-for'.

2 years agoRemove redundant requires from make-mode.el
Stefan Kangas [Fri, 28 Oct 2022 20:30:31 +0000 (22:30 +0200)]
Remove redundant requires from make-mode.el

* lisp/progmodes/make-mode.el (imenu, dabbrev, add-log): Remove
redundant requires.

2 years agoUse new sit-for calling convention in zone.el
Stefan Kangas [Fri, 28 Oct 2022 20:20:56 +0000 (22:20 +0200)]
Use new sit-for calling convention in zone.el

* lisp/play/zone.el (zone-exploding-remove): Don't use obsolete
calling convention for 'sit-for'.

2 years agoMinor doc fixes in make-mode.el
Stefan Kangas [Fri, 28 Oct 2022 00:36:04 +0000 (02:36 +0200)]
Minor doc fixes in make-mode.el

* lisp/progmodes/make-mode.el:
(makefile-insert-macro, makefile-pickup-everything)
(makefile-backslash-region): Minor doc fixes.
(makefile-browse): Use substitute-command-keys.

2 years agoPrefer defvar-keymap in make-mode.el
Stefan Kangas [Fri, 28 Oct 2022 00:33:33 +0000 (02:33 +0200)]
Prefer defvar-keymap in make-mode.el

* lisp/progmodes/make-mode.el (makefile-mode-map)
(makefile-browser-map): Prefer defvar-keymap.

2 years agoPrefer make-temp-name in make-mode.el
Stefan Kangas [Fri, 28 Oct 2022 00:17:58 +0000 (02:17 +0200)]
Prefer make-temp-name in make-mode.el

* lisp/progmodes/make-mode.el
(makefile-generate-temporary-filename): Make obsolete in favor of
'make-temp-name'.  Simplify.
(makefile-save-temporary): Don't use above obsolete function.

2 years agoEnsure temp file is deleted in makefile overview
Stefan Kangas [Fri, 28 Oct 2022 00:26:44 +0000 (02:26 +0200)]
Ensure temp file is deleted in makefile overview

* lisp/progmodes/make-mode.el (makefile-create-up-to-date-overview):
Ensure temp file is always deleted.

2 years agoMerge from origin/emacs-28
Stefan Kangas [Fri, 28 Oct 2022 19:51:44 +0000 (21:51 +0200)]
Merge from origin/emacs-28

510020d30d ; Improve doc strings in whitespace.el

# Conflicts:
# lisp/whitespace.el

2 years ago; * doc/lispref/frames.texi (Drag and Drop): Fix typos and wording.
Eli Zaretskii [Fri, 28 Oct 2022 19:06:31 +0000 (22:06 +0300)]
; * doc/lispref/frames.texi (Drag and Drop): Fix typos and wording.

2 years agoCC Mode: Fontify cast types without adding them to c-found-types
Alan Mackenzie [Fri, 28 Oct 2022 17:50:33 +0000 (17:50 +0000)]
CC Mode: Fontify cast types without adding them to c-found-types

* lisp/progmodes/cc-engine.el (c-forward-type): Test for the special new
value `just-one' of c-promote-possible-types, and if found, fontify the type,
but don't add it to c-found-types.
(c-forward-decl-or-cast-1): Add the new &optional parameter inside-macro.
Whilst checking for a cast construct, analyze the text following the closing
paren more rigorously.
Check for, and allow, the closing paren of a macro arglist before the putative
cast construct.

* lisp/progmodes/cc-fonts.el (c-font-lock-declarations): In the lambda
function, pass the parameter inside-macro to c-forward-decl-or-cast-1.

* lisp/progmodes/cc-langs.el (c-primary-expr-regexp-details): New
c-lang-defvar which calculates `c-primary-expr-regexp' and three match
numbers for various sub-expressions in the regexp.
(c-primary-expr-regexp): Now extracted from `c-primary-expr-regexp-details'.
(c-per-++---match, c-per-&*+--match, c-per-\(-match): New
c-lang-defconsts/vars extracted from `c-primary-expr-regexp-details'.

2 years agocconv.el: Fix regression in cconv-tests-interactive-closure-bug51695
Stefan Monnier [Fri, 28 Oct 2022 15:33:24 +0000 (11:33 -0400)]
cconv.el: Fix regression in cconv-tests-interactive-closure-bug51695

The new code to make interpreted closures safe-for-space introduced
a regression in `cconv-tests-interactive-closure-bug51695`, only seen
when using TEST_LOAD_EL.
A few other issues were found and fixed along the way.

* lisp/emacs-lisp/cconv.el (cconv-fv): Change calling convention and
focus on finding the free variables.
(cconv-make-interpreted-closure): New function.

* lisp/loadup.el: Use `compiled-function-p` rather than
`byte-code-function-p` so we also use safe-for-space interpreted
closures when we build with native compilation.
(internal-make-interpreted-closure-function):
Use `cconv-make-interpreted-closure`.

* src/eval.c (syms_of_eval): Rename `internal-filter-closure-env-function`
to `internal-make-interpreted-closure-function`.
(Ffunction): Let that new var build the actual closure.

* test/lisp/emacs-lisp/cconv-tests.el
(cconv-tests-interactive-closure-bug51695): Test specifically the
interpreted case.

2 years ago* lisp/transient.el: Update to package version v0.3.7-173-g81b29ca
Jonas Bernoulli [Fri, 28 Oct 2022 14:16:27 +0000 (16:16 +0200)]
* lisp/transient.el: Update to package version v0.3.7-173-g81b29ca

2 years agoImprove Drag and Drop preamble in the Lisp reference manual
Po Lu [Fri, 28 Oct 2022 14:22:59 +0000 (22:22 +0800)]
Improve Drag and Drop preamble in the Lisp reference manual

* doc/lispref/frames.texi (Drag and Drop): Reword contents and
clear up some ambiguities and redundancies.

2 years agoImprove check for binding etc *package*
Gerd Möllmann [Fri, 28 Oct 2022 13:38:36 +0000 (15:38 +0200)]
Improve check for binding etc *package*

* src/pkg.c (Fwatch_earmuffs_package): Check the makunbound case specially.
(syms_of_pkg): Remove duplicate code.
* test/src/pkg-tests.el (pkg-tests-*package*): Add tests.

2 years ago* lisp/emacs-lisp/re-builder.el: Cosmetic changes
Stefan Monnier [Fri, 28 Oct 2022 13:36:40 +0000 (09:36 -0400)]
* lisp/emacs-lisp/re-builder.el: Cosmetic changes

(reb-valid-string): Declare it risky so the mode-line will obey its
text-properties.
(reb-lisp-syntax-p): No need to make it `defsubst`.
(reb-target-value): New function to replace the
`reb-target-binding` macro.  Adjust all callers.
(reb-auto-update): Give a more informative error message than just
"invalid" and give it a warning face.
(reb-update-regexp): Always update `reb-regexp-src` (it's harmless),
rather than only when it's necessary (reduces the need for advice in pcre.el).

2 years agoInclude more information in error data for sqlite errors
Jonas Bernoulli [Fri, 21 Oct 2022 20:55:53 +0000 (22:55 +0200)]
Include more information in error data for sqlite errors

Introduce a new 'sqlite-error' and use it for all errors signaled in
'src/sqlite.c', except those that already used 'sqlite-locked-error'.
Include the values of 'sqlite3_errcode', 'sqlite3_extended_errcode',
'sqlite3_errstr' and 'sqlite3_errmsg' in the error data.

* src/sqlite.c (load_dll_functions): Load 'sqlite3_extended_errcode'.
(sqlite-load-extension): Use 'xsignal1' as required by argument type.
(syms_of_sqlite): Introduce a new error type 'sqlite-error'.
(check_sqlite, sqlite-open, bind_values, sqlite-execute)
(sqlite-select, sqlite-load-extension, sqlite-next): Use it.
(sqlite_prepare_errdata): New function.
(sqlite_prepare_errmsg): Remove function.
(sqlite-execute, sqlite-select): Use new function.
(sqlite-locked-error): Derive from 'sqlite-error'.

2 years agoCC Mode: Fix wrong fontification of enum foo bar; in Objective C Mode
Alan Mackenzie [Fri, 28 Oct 2022 12:13:08 +0000 (12:13 +0000)]
CC Mode: Fix wrong fontification of enum foo bar; in Objective C Mode

This fixes bug #58795 and bug #58796.

* lisp/progmodes/cc-langs.el (c-type-prefix-kwds): Add the missing entry for
objc.

2 years agoSimplify scroll valuator reset handling
Po Lu [Fri, 28 Oct 2022 12:06:06 +0000 (20:06 +0800)]
Simplify scroll valuator reset handling

* src/xterm.c (xi_populate_device_from_info)
(xi_reset_scroll_valuators_for_device_id, xi_handle_device_changed)
(handle_one_xevent):
* src/xterm.h (struct xi_scroll_valuator_t): Get rid of
`pending_enter_reset', which was extremely convoluted and kept
hitting server bugs.  Now, valuators are reset upon all crossing
events.

2 years agoClean up some xwidgets code
Po Lu [Fri, 28 Oct 2022 11:55:18 +0000 (19:55 +0800)]
Clean up some xwidgets code

* src/xterm.c (handle_one_xevent): [HAVE_XWIDGETS]: Fix coding
style and remove extra ifdefs.  Also avoid redundant frame
lookups in some cases.

2 years agoFix Haiku subprocess support
Po Lu [Fri, 28 Oct 2022 11:41:08 +0000 (11:41 +0000)]
Fix Haiku subprocess support

* src/callproc.c: Disable posix_spawn on Haiku until some things
are fixed.

2 years agoFix build without Cairo FreeType and fontconfig support
Po Lu [Fri, 28 Oct 2022 11:35:39 +0000 (19:35 +0800)]
Fix build without Cairo FreeType and fontconfig support

* src/xsettings.c (apply_xft_settings): Don't enable Xft code
unless Cairo FreeType support is present.  (bug#58830)

2 years agoFix failing test for package Hierarchy
Wamm K. D [Thu, 27 Oct 2022 19:07:03 +0000 (14:07 -0500)]
Fix failing test for package Hierarchy

This fixes a typo in one of the tests of Hierarchy which was causing
the test to fail.
* test/lisp/emacs-lisp/hierarchy-tests.el (hierarchy-delayed-add-trees):
Fix typo.

2 years agoFix detection of DPI changes in builds without Xft
Vincent Bernat [Tue, 25 Oct 2022 21:02:16 +0000 (23:02 +0200)]
Fix detection of DPI changes in builds without Xft

* src/xsettings.c (apply_xft_settings) [!HAVE_XFT]: Support
XSETTINGS changes in non-XFT builds.  (Bug#43128)

Copyright-paperwork-exempt: yes

2 years ago; * lisp/progmodes/gud.el (gud-gdb): Doc fix. (Bug#58826)
Eli Zaretskii [Fri, 28 Oct 2022 06:23:12 +0000 (09:23 +0300)]
; * lisp/progmodes/gud.el (gud-gdb): Doc fix.  (Bug#58826)

2 years agoAdd a test
Gerd Möllmann [Fri, 28 Oct 2022 06:19:20 +0000 (08:19 +0200)]
Add a test

* test/src/pkg-tests.el (pkg-tests-*package*): Test that *package*
cannot be bound to a non-package.

2 years agoUpdate to modus-themes version 3.0.0
Protesilaos Stavrou [Fri, 28 Oct 2022 04:51:55 +0000 (07:51 +0300)]
Update to modus-themes version 3.0.0

* doc/misc/modus-themes.org
(Option for red-green color deficiency or deuteranopia)
(Option for more bold constructs, Option for more italic constructs)
(Option for font mixing, Option for box buttons)
(Option for mode line presentation)
(Option for accented background in tab interfaces)
(Option for completion framework aesthetics, Option for mail citations)
(Option for line numbers, Option for mouseover effects)
(Option for diff buffer looks, Option for org-mode block styles)
(Option for Org agenda constructs)
(Option for the headings' overall style)
(Option for variable-pitch font in UI elements, Note on SHR fonts):
Revise markup of "non-nil" so that it is rendered properly in texinfo.

(Option for fringe visibility, Option for line highlighting): Reword
description of user option.

(Full support for packages or face groups): Update list of supported
packages or face groups.

(Note on ERC escaped color sequences)
(What is the best setup for legibility?)
(Port the Modus themes to other platforms?): Prefer American English.

(Note on pdf-tools link hints): Use double spacing between sentences

(Acknowledgements): Update list of names that have contributed to the
project, which was user feedback in this case.

* etc/themes/modus-themes.el (modus-themes, modus-themes-faces):
Reword doc string.
(modus-themes--version): Update to current version.
(modus-themes-version): Refine function definition.
(modus-themes-completion-standard-first-match)
(modus-themes-completion-standard-selected)
(modus-themes-completion-extra-selected)
(modus-themes-completion-key-binding, modus-themes-intense-markup)
(modus-themes--heading-weights, modus-themes--completion): Delete
obsolete forms, which were deprecated many months/version ago.
(modus-themes-fringes, modus-themes-completions)
(modus-themes-hl-line): Update default value and reword doc string
accordingly.
(modus-themes-faces): Update list of supported faces and their
attributes.

* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-vivendi-theme.el: Update version header.

Complete release notes: <https://protesilaos.com/codelog/2022-10-28-modus-themes-3-0-0/>.

2 years ago; Fix typos in symbol names
Stefan Kangas [Thu, 27 Oct 2022 21:04:37 +0000 (23:04 +0200)]
; Fix typos in symbol names

2 years agoAllow Hierarchy to delay computation of children
Wamm K. D [Thu, 4 Aug 2022 00:05:08 +0000 (19:05 -0500)]
Allow Hierarchy to delay computation of children

This adds an option to allow callers to specify that computing
the children of the hierarchy should be delayed to when the
user calls for them, by utilizing the tree-widget :expander
property.
* lisp/emacs-lisp/hierarchy.el (hierarchy-add-tree)
(hierarchy-add-trees): Add parameter 'delay-children-p'.
* lisp/emacs-lisp/hierarchy.el
(hierarchy--create-delayed-tree-widget): Add function.
* lisp/emacs-lisp/hierarchy.el (hierarchy-convert-to-tree-widget):
Utilize ':expander' if delaying children.  (Bug#55900)

* test/lisp/emacs-lisp/hierarchy-tests.el: Add tests for
delayed-children functionality.

2 years ago; * lisp/subr.el (keyboard-translate): Doc fix. (Bug#58805)
Eli Zaretskii [Thu, 27 Oct 2022 16:57:33 +0000 (19:57 +0300)]
; * lisp/subr.el (keyboard-translate): Doc fix.  (Bug#58805)

2 years agoDisable completion/ElDoc/FFAP when Python program is running
kobarity [Sat, 22 Oct 2022 12:36:15 +0000 (21:36 +0900)]
Disable completion/ElDoc/FFAP when Python program is running

* lisp/progmodes/python.el (python-completion-at-point)
(python-ffap-module-path, python-eldoc--get-doc-at-point): Add check
using `python-util-comint-end-of-output-p'.
(python-util-comint-end-of-output-p): New function.
* test/lisp/progmodes/python-tests.el (python-tests-shell-wait-for-prompt):
Use `python-util-comint-end-of-output-p'.
(python-completion-at-point-while-running-1)
(python-ffap-module-path-1)
(python-ffap-module-path-while-running-1)
(python-eldoc--get-doc-at-point-1)
(python-eldoc--get-doc-at-point-while-running-1): New tests.
(Bug#58713)

2 years ago; (rmail-summary-apply-filters-consecutively): Add :version.
Eli Zaretskii [Thu, 27 Oct 2022 15:45:28 +0000 (18:45 +0300)]
; (rmail-summary-apply-filters-consecutively): Add :version.

2 years agoAllow applying Rmail summary filters consecutively
Andrea Monaco [Thu, 27 Oct 2022 14:25:16 +0000 (17:25 +0300)]
Allow applying Rmail summary filters consecutively

* lisp/mail/rmailsum.el (rmail-summary-currently-displayed-msgs):
New variable.
(rmail-summary-apply-filters-consecutively): New user option.
(rmail-summary-fill-displayed-messages, rmail-summary-negate): New
functions.
(rmail-summary-by-labels, rmail-summary-by-recipients)
(rmail-summary-by-regexp, rmail-summary-by-topic)
(rmail-summary-by-senders): Obey
'rmail-summary-apply-filters-consecutively'.
KEEP-FILTERING, to narrow the existing filtered summary.

* etc/NEWS: Announce the change.

2 years agoRevert "Allow applying filters to summary consecutively"
Eli Zaretskii [Thu, 27 Oct 2022 14:15:51 +0000 (17:15 +0300)]
Revert "Allow applying filters to summary consecutively"

This reverts commit c8b9ba5fa1bf3a20b9b08a553ad088ca33f3d1ba.

2 years agoAllow applying filters to summary consecutively
Andrea Monaco [Thu, 27 Oct 2022 13:56:12 +0000 (16:56 +0300)]
Allow applying filters to summary consecutively

* lisp/mail/rmailsum.el (rmail-summary-currently-displayed-msgs):
New variable.
(rmail-summary-fill-displayed-messages, rmail-summary-negate): New
functions.
(rmail-summary-by-labels, rmail-summary-by-recipients)
(rmail-summary-by-regexp, rmail-summary-by-topic)
(rmail-summary-by-senders): Accept an additional argument
KEEP-FILTERING, to narrow the existing filtered summary.

* etc/NEWS: Announce the change.

2 years agoPrevent dangerous bindings of *package*
Gerd Möllmann [Thu, 27 Oct 2022 13:53:28 +0000 (15:53 +0200)]
Prevent dangerous bindings of *package*

* src/pkg.c (Fwatch_earmuffs_package): New function.
(init_pkg_once): DEFSYM.
(syms_of_pkg): Add variable watcher to *package*.

2 years agoFirst traces of defpackage
Gerd Möllmann [Thu, 27 Oct 2022 12:55:29 +0000 (14:55 +0200)]
First traces of defpackage

* lisp/emacs-lisp/pkg.el (pkg--ensure-symbol): New function.
(do-external-symbols): Prevent byte-compiler warnings.
(pkg-defpackage): New.
(defpackage): New.

2 years ago; * src/keyboard.c (command_loop_1): Remove unused variable.
Eli Zaretskii [Thu, 27 Oct 2022 12:29:46 +0000 (15:29 +0300)]
; * src/keyboard.c (command_loop_1): Remove unused variable.

2 years agoAvoid recentering when point enters invisible text at BOL
Eli Zaretskii [Thu, 27 Oct 2022 12:24:53 +0000 (15:24 +0300)]
Avoid recentering when point enters invisible text at BOL

* src/xdisp.c (try_cursor_movement): Don't say we must scroll when
point is inside invisible text at beginning of a glyph row.
(Bug#58793)

2 years agoMinor improvements in pkg.el
Gerd Möllmann [Thu, 27 Oct 2022 12:20:53 +0000 (14:20 +0200)]
Minor improvements in pkg.el

* lisp/emacs-lisp/pkg.el (register-package): Add autoload cookie.
(unregiter-package): New function.
(use-package): Add doc string.
(unuse-package): Add doc string.
(in-package*): Change doc string.

2 years agoMinto cleanup in pkg.el
Gerd Möllmann [Thu, 27 Oct 2022 12:12:20 +0000 (14:12 +0200)]
Minto cleanup in pkg.el

* lisp/emacs-lisp/pkg.el (pkg--check-name-conflicts): Removed.
(pkg--add-to-registry): Removed.
(register-package): Add code of the removed functions.
(rename-package): Use register-package.

2 years agoFix reporting of iconic state on old window managers
Po Lu [Thu, 27 Oct 2022 11:14:56 +0000 (19:14 +0800)]
Fix reporting of iconic state on old window managers

* src/xterm.c (x_handle_wm_state): Handle IconicState if the
window manager does not support _NET_WM_STATE_HIDDEN.

2 years ago; Fix quoting of non-nil in texinfo sources
Stefan Kangas [Thu, 27 Oct 2022 11:09:49 +0000 (13:09 +0200)]
; Fix quoting of non-nil in texinfo sources

2 years agoFix auto-insert-alist ada-mode entry to match current ELPA ada-mode
Stephen Leake [Thu, 27 Oct 2022 10:29:20 +0000 (03:29 -0700)]
Fix auto-insert-alist ada-mode entry to match current ELPA ada-mode

2 years agoAllow experimenting with in-package
Gerd Möllmann [Thu, 27 Oct 2022 08:50:51 +0000 (10:50 +0200)]
Allow experimenting with in-package

* lisp/emacs-lisp/pkg.el (in-package*): New interactive function.

2 years ago; Improve doc strings in whitespace.el
Eli Zaretskii [Thu, 27 Oct 2022 07:28:34 +0000 (10:28 +0300)]
; Improve doc strings in whitespace.el

* lisp/whitespace.el (whitespace-hspace-regexp)
(whitespace-space-regexp, whitespace-tab-regexp)
(whitespace-trailing-regexp, whitespace-space-before-tab-regexp)
(whitespace-indentation-regexp, whitespace-empty-at-bob-regexp)
(whitespace-empty-at-eob-regexp)
(whitespace-space-after-tab-regexp)
(whitespace-big-indent-regexp, whitespace-line-column)
(whitespace-display-mappings, whitespace-global-modes)
(whitespace-action, whitespace-style, whitespace-space)
(whitespace-hspace, whitespace-tab, whitespace-trailing)
(whitespace-space-before-tab, whitespace-indentation)
(whitespace-big-indent, whitespace-empty)
(whitespace-space-after-tab): Doc fixes.

2 years ago; Simplify wording in Eglot manual
Eli Zaretskii [Thu, 27 Oct 2022 06:21:04 +0000 (09:21 +0300)]
; Simplify wording in Eglot manual

* doc/misc/eglot.texi (Customizing Eglot): Simplify wording.
Reported by Pedro Andres Aranda Gutierrez <paaguti@gmail.com>.

2 years ago; Fix several symbol name typos
Stefan Kangas [Wed, 26 Oct 2022 20:41:09 +0000 (22:41 +0200)]
; Fix several symbol name typos

2 years ago; Use auto-generated docstring in gnus-custom-mode
Stefan Kangas [Wed, 26 Oct 2022 20:39:56 +0000 (22:39 +0200)]
; Use auto-generated docstring in gnus-custom-mode

* lisp/gnus/gnus-cus.el (gnus-custom-mode): Change docstring to prefer
text auto-generated by 'define-derived-mode' instead.

2 years ago; * lisp/textmodes/table.el: Delete reference to ancient version.
Stefan Kangas [Wed, 26 Oct 2022 20:33:40 +0000 (22:33 +0200)]
; * lisp/textmodes/table.el: Delete reference to ancient version.

2 years agoFix typo in textsec-restriction-level
Stefan Kangas [Wed, 26 Oct 2022 20:25:40 +0000 (22:25 +0200)]
Fix typo in textsec-restriction-level

* lisp/international/textsec.el (textsec-restriction-level):
* test/lisp/international/textsec-tests.el (test-restriction-level):
Fix typo in symbol name `moderately-restrictive'.

2 years agoDeclare variable Info-minibuf-history
Stefan Kangas [Wed, 26 Oct 2022 19:09:14 +0000 (21:09 +0200)]
Declare variable Info-minibuf-history

* lisp/info.el (Info-minibuf-history): Declare variable.
(Bug#58786)

2 years agoCompare addresses case-insensitively in message-update-smtp-method-header
Filipp Gunbin [Wed, 26 Oct 2022 18:11:28 +0000 (21:11 +0300)]
Compare addresses case-insensitively in message-update-smtp-method-header

* lisp/gnus/message.el (message-update-smtp-method-header): Compare
addresses case-insensitively.

2 years agoc-find-decl-spots: Replace an arbitrary search limit by a parameter
Alan Mackenzie [Wed, 26 Oct 2022 16:02:49 +0000 (16:02 +0000)]
c-find-decl-spots: Replace an arbitrary search limit by a parameter

The old arbitrary limit led to errors thrown whilst fontifying large areas of
syntactic whitespace containing "#undef", as in src/comp.c.

* lisp/progmodes/cc-engine.el (c-find-decl-spots): Replace the limit argument
to two calls of c-forward-syntactic-ws by the parameter `cfd-limit'.

2 years agoMake completion-category-overrides choices dynamic
Mauro Aranda [Wed, 26 Oct 2022 10:29:51 +0000 (07:29 -0300)]
Make completion-category-overrides choices dynamic

See https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg01969.html

* lisp/minibuffer.el (completion--update-styles-options): New internal
function.

(completion--styles-type): Use it.

2 years agoFix rare problems with current-column when text is invisible
Eli Zaretskii [Wed, 26 Oct 2022 14:21:45 +0000 (17:21 +0300)]
Fix rare problems with current-column when text is invisible

* src/indent.c (scan_for_column, compute_motion): Don't miss
compositions when the position to check for composition happens to
be inside invisible text.  (Bug#58791)

2 years agoPrevent gui_consider_frame_title from restoring dead top frames
Po Lu [Wed, 26 Oct 2022 13:46:41 +0000 (21:46 +0800)]
Prevent gui_consider_frame_title from restoring dead top frames

* src/xdisp.c (unwind_format_mode_line): Check that
old_top_frame is live before selecting it.  It could have been
deleted, which leads to signals when the post-command-hook
installed by xterm-set-window-title runs upon the last frame of
a terminal being deleted.
(gui_consider_frame_title): Rearrange code to be more
understandable.

2 years agoMake symbols in Emacs package external by default
Gerd Möllmann [Wed, 26 Oct 2022 13:41:52 +0000 (15:41 +0200)]
Make symbols in Emacs package external by default

* src/pkg.c (pkg_intern_symbol1): If package equals Vemacs_package,
make symbol externally visible.

2 years agoPacify recent unused/ignored lexvar warnings
Basil L. Contovounesios [Wed, 26 Oct 2022 13:35:59 +0000 (16:35 +0300)]
Pacify recent unused/ignored lexvar warnings

Lexvars with special names like 'ignored' or 'unused' are no longer
treated specially.

* lisp/ansi-color.el (ansi-color-process-output):
* lisp/cus-edit.el (customize-apropos-options):
* lisp/cus-theme.el (customize-create-theme):
* lisp/dired-aux.el (dired-hide-all):
* lisp/emacs-lisp/crm.el (crm--choose-completion-string):
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-revert):
* lisp/ido.el (ido-choose-completion-string):
* lisp/international/mule-diag.el (describe-font-internal):
* lisp/mail/sendmail.el (sendmail-user-agent-compose):
* lisp/progmodes/fortran.el (fortran-uncomment-region):
* lisp/progmodes/prolog.el (prolog-inferior-guess-flavor):
* lisp/progmodes/ruby-mode.el (ruby-indent-line, ruby-indent-exp):
* lisp/url/url.el (url-mm-callback):
* lisp/xwidget.el (xwidget-webkit-history-reload): Prepend an
underscore to unused function parameter names.
* lisp/emacs-lisp/cconv.el (cconv--dummy-var): Remove unused
constant.
* lisp/files.el (hack-local-variables-filter): Remove unused lexvar.

2 years agoAdd user package
Gerd Möllmann [Wed, 26 Oct 2022 13:30:29 +0000 (15:30 +0200)]
Add user package

* src/pkg.c (init_pkg_once): New Vemacs_user_package.
(syms_of_pkg): DEFVAR_LISP it.

2 years agoReading qualified symbols
Gerd Möllmann [Wed, 26 Oct 2022 12:36:37 +0000 (14:36 +0200)]
Reading qualified symbols

* src/pkg.c (pkg_qualified_symbol): Intern x::y in x.
* test/src/pkg-tests.el (pkg-tests-read): New.

2 years agoClean up some event handling code
Po Lu [Wed, 26 Oct 2022 12:37:53 +0000 (20:37 +0800)]
Clean up some event handling code

* src/xterm.c (handle_one_xevent): Use dpyinfo where
FRAME_DISPLAY_INFO could be substituted for it.

2 years agoAdd :register to make-package
Gerd Möllmann [Wed, 26 Oct 2022 12:08:57 +0000 (14:08 +0200)]
Add :register to make-package

* lisp/emacs-lisp/pkg.el (make-package): Add keyword argument
:register.  If true, add new package to package registry.
* test/src/pkg-tests.el (pkg-tests-make-package): Extend.

2 years agoAdd register-package
Gerd Möllmann [Wed, 26 Oct 2022 12:05:01 +0000 (14:05 +0200)]
Add register-package

* lisp/emacs-lisp/pkg.el (register-package): New function.

2 years ago; Tramp copyedit
Michael Albinus [Wed, 26 Oct 2022 11:59:37 +0000 (13:59 +0200)]
; Tramp copyedit

2 years agoModernize `auto-revert-notify-exclude-dir-regexp'
Michael Albinus [Wed, 26 Oct 2022 11:58:42 +0000 (13:58 +0200)]
Modernize `auto-revert-notify-exclude-dir-regexp'

* lisp/autorevert.el (auto-revert-notify-exclude-dir-regexp): Use `rx'
and `mounted-file-systems'.

2 years agoMake *pacakge* buffer-local
Gerd Möllmann [Wed, 26 Oct 2022 11:54:14 +0000 (13:54 +0200)]
Make *pacakge* buffer-local

* src/pkg.c (syms_of_pkg): Use Fmake_variable_buffer_local
for Qearmuffs_package.

2 years agoDynamic validation of styles in completion-category-overrides
Mattias Engdegård [Wed, 26 Oct 2022 08:51:51 +0000 (10:51 +0200)]
Dynamic validation of styles in completion-category-overrides

The type of the defcustom completion-category-overrides must be able
to accommodate dynamic changes to completion-styles-alist, because
some packages (eglot) make their own additions.

This change fixes a failure in test-custom-opts.  See discussion at:
https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg01969.html

* lisp/minibuffer.el (completion--styles-type):
Add an "Other" case that accepts any symbol which is then validated
dynamically against completion-styles-alist.

2 years agoAllow nil as a valid value for 'ecomplete-filter-regexp'
Philip Kaludercic [Wed, 26 Oct 2022 07:33:48 +0000 (09:33 +0200)]
Allow nil as a valid value for 'ecomplete-filter-regexp'

* lisp/ecomplete.el (ecomplete-filter-regexp): Replace user option type.

Reported by Mattias Engdegård.

2 years agoFix Haiku build for recent changes to system headers
Po Lu [Wed, 26 Oct 2022 06:59:49 +0000 (14:59 +0800)]
Fix Haiku build for recent changes to system headers

* src/callproc.c (emacs_posix_spawn_init_actions): Do not use
posix_spawn_file_actions_addchdir on Haiku; it links but does
not work.

2 years agoSet `comp-no-spawn' earlier using -no-comp-spawn
Andrea Corallo [Tue, 18 Oct 2022 13:14:32 +0000 (15:14 +0200)]
Set `comp-no-spawn' earlier using -no-comp-spawn

* src/emacs.c (standard_args): Add '-no-comp-spawn' cmd line option.
* lisp/startup.el (command-line): Parse '-no-comp-spawn' cmd line
option.
* lisp/emacs-lisp/comp.el (comp-run-async-workers, comp-final):
Use '-no-comp-spawn'.

2 years agovc-hg-checkin-patch: Add implementation for Hg
Dmitry Gutov [Tue, 25 Oct 2022 21:09:01 +0000 (00:09 +0300)]
vc-hg-checkin-patch: Add implementation for Hg

* lisp/vc/vc-hg.el (vc-hg-checkin-patch): Add Hg-specific
implementation (bug#52349), like suggested in
https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg01533.html.
(vc-hg--extract-headers): Extract from vc-hg-checkin.

2 years agoIgnore non-base64 junk when decoding MIME
Andreas Schwab [Tue, 25 Oct 2022 16:22:21 +0000 (18:22 +0200)]
Ignore non-base64 junk when decoding MIME

* src/fns.c (Fbase64_decode_region): Add optional argument
IGNORE-INVALID and pass down to base64_decode_1.
(Fbase64_decode_string): Likewise.
(base64_decode_1): Add argument IGNORE_INVALID.
* doc/lispref/text.texi (Base 64): Document them.
* lisp/gnus/mm-bodies.el (mm-decode-content-transfer-encoding):
Ignore any junk when decoding base64.

2 years ago* lisp/tab-line.el (tab-line-auto-hscroll): Set word-wrap to nil (bug#58740).
João Guerra [Tue, 25 Oct 2022 18:48:37 +0000 (21:48 +0300)]
* lisp/tab-line.el (tab-line-auto-hscroll): Set word-wrap to nil (bug#58740).

Copyright-paperwork-exempt: yes

2 years ago(Ffunction): Make interpreted closures safe for space
Stefan Monnier [Mon, 17 Oct 2022 21:11:40 +0000 (17:11 -0400)]
(Ffunction): Make interpreted closures safe for space

Interpreted closures currently just grab a reference to the complete
lexical environment, so (lambda (x) (+ x y)) can end up looking like

    (closure ((foo ...) (y 7) (bar ...) ...)
             (x) (+ x y))

where the foo/bar/... bindings are not only useless but can prevent
the GC from collecting that memory (i.e. it's a representation that is
not "safe for space") and it can also make that closure "unwritable"
(or more specifically, it can cause the closure's print
representation to be u`read`able).

Compiled closures don't suffer from this problem because `cconv.el`
actually looks at the code and only stores in the compiled closure
those variables which are actually used.

So, we fix this discrepancy by letting the existing code in `cconv.el` tell
`Ffunction` which variables are actually used by the body of the
function such that it can filter out the irrelevant elements and
return a closure of the form:

    (closure ((y 7)) (x) (+ x y))

* lisp/loadup.el: Preload `cconv` and set
`internal-filter-closure-env-function` once we have a usable `cconv-fv`.

* lisp/emacs-lisp/bytecomp.el (byte-compile-preprocess): Adjust to new
calling convention of `cconv-closure-convert`.
(byte-compile-not-lexical-var-p): Delete function, moved to `cconv.el`.
(byte-compile-bind): Use `cconv--not-lexical-var-p`.

* lisp/emacs-lisp/cconv.el (cconv--dynbound-variables): New var.
(cconv-closure-convert): New arg `dynbound-vars`
(cconv--warn-unused-msg): Remove special case for `ignored`,
so we don't get confused when a function uses an argument called
`ignored`, e.g. holding a list of things that it should ignore.
(cconv--not-lexical-var-p): New function, moved from `bytecomp.el`.
Don't special case keywords and `nil` and `t` since they are already
`special-variable-p`.
(cconv--analyze-function): Use `cconv--not-lexical-var-p`.
(cconv--dynbindings): New dynbound var.
(cconv-analyze-form): Use `cconv--not-lexical-var-p`.
Remember in `cconv--dynbindings` the vars for which we used
dynamic scoping.
(cconv-analyze-form): Use `cconv--dynbound-variables` rather than
`byte-compile-bound-variables`.
(cconv-fv): New function.

* src/eval.c (Fsetq, eval_sub): Remove optimization designed when
`lexical-binding == nil` was the common case.
(Ffunction): Use `internal-filter-closure-env-function` when available.
(eval_sub, Ffuncall): Improve error info for `excessive_lisp_nesting`.
(internal-filter-closure-env-function): New defvar.

2 years agoMove required options out of ldap-ldapsearch-args
Filipp Gunbin [Tue, 25 Oct 2022 14:59:33 +0000 (17:59 +0300)]
Move required options out of ldap-ldapsearch-args

* lisp/net/ldap.el (ldap-ldapsearch-args, ldap-search-internal): Move
"-LLL" and "-tt" options as they're required for the code to work
properly.

2 years agoeglot: Prefer ensure-list on Emacs 28 or later
Stefan Kangas [Tue, 25 Oct 2022 14:42:58 +0000 (16:42 +0200)]
eglot: Prefer ensure-list on Emacs 28 or later

* lisp/progmodes/eglot.el (eglot--ensure-list): Make into alias
for 'ensure-list' on Emacs 28 or later.

2 years agoHandle context changes in Tramp kubernetes method
Michael Albinus [Tue, 25 Oct 2022 14:34:42 +0000 (16:34 +0200)]
Handle context changes in Tramp kubernetes method

* doc/misc/tramp.texi (Inline methods): Remove note about cache reset.
(File name completion): Add tramp-completion-use-cache.

* etc/NEWS: Add 'tramp-completion-use-cache'.

* lisp/net/tramp-cache.el (tramp-completion-use-cache): New defcustom.
(tramp-parse-connection-properties): Use it.

* lisp/net/tramp-container.el (tramp-docker--completion-function)
(tramp-kubernetes--completion-function): Ensure the processes run
locally.
(tramp-kubernetes--current-context-data): New defun.
(tramp-methods) <kubernetes>: Add `tramp-config-check'.

* lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
Handle `tramp-login-args'.

* lisp/net/tramp.el (tramp-methods): Adapt docstring.

2 years agoFix eglot defcustom types
Robert Pluim [Tue, 25 Oct 2022 13:18:51 +0000 (15:18 +0200)]
Fix eglot defcustom types

* lisp/progmodes/eglot.el (eglot-autoreconnect): Allow for 'nil'.
(eglot-connect-timeout): Allow for 'nil' and add descriptions.
(eglot-sync-connect): Split boolean into 'nil' and 't' and add descriptions.
(eglot-confirm-server-initiated-edits): Change 'symbol' type to 'const'.

2 years agoTest face name variables are bound before using them in cc-fonts.el
Alan Mackenzie [Tue, 25 Oct 2022 13:28:57 +0000 (13:28 +0000)]
Test face name variables are bound before using them in cc-fonts.el

This fixes bug #58641.

Also, set c-reference-face-name to font-lock-constant face in preference to
c-label-face-name.

* lisp/progmodes/cc-fonts.el (c-preprocessor-face-name, c-label-face-name)
(c-constant-face-name, c-reference-face-name): Test variables with the same
name as font-lock faces are bound before accessing their values.
(c-reference-face-name): Use font-lock-constant face in preference to
c-label-face-name.

2 years ago* lisp/progmodes/eglot.el: Remove not very funny joke.
Robert Pluim [Tue, 25 Oct 2022 13:15:34 +0000 (15:15 +0200)]
* lisp/progmodes/eglot.el: Remove not very funny joke.

2 years agoPrevent accidentally unregistering packages
Gerd Möllmann [Tue, 25 Oct 2022 12:04:36 +0000 (14:04 +0200)]
Prevent accidentally unregistering packages

* lisp/emacs-lisp/pkg.el (pkg--remove-from-registry): Check
for package being eq to a registered package.

2 years agoMerge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
Eli Zaretskii [Tue, 25 Oct 2022 11:59:39 +0000 (14:59 +0300)]
Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs

2 years agolisp.h: Remove unnecessary preprocessor conditions
Lin Sun [Sat, 22 Oct 2022 00:00:06 +0000 (00:00 +0000)]
lisp.h: Remove unnecessary preprocessor conditions

This removes the HAVE_PDUMPER || HAVE_UNEXEC condition
of gflags.will_dump_, which gets in the way when Emacs
is built without any dumping method.  (Bug#58708)

2 years agoFix drag-and-drop bugs on Lucid build
Po Lu [Tue, 25 Oct 2022 11:50:57 +0000 (19:50 +0800)]
Fix drag-and-drop bugs on Lucid build

Also, optimize Fx_translate_coordinates to avoid excessive calls
to _XReply.

* lisp/x-dnd.el (x-dnd-get-drop-rectangle): Return empty drop
rectangle if posn-area.
* src/xfns.c (Fx_translate_coordinates): Accept arg
`require_child'.  If not set, allow optimizations based on
cached position data.
* src/xselect.c (x_handle_dnd_message): Use
x_translate_coordinates.
* src/xterm.c (x_translate_coordinates): Export function.
(x_handle_translate_coordinates): New function.
(handle_one_xevent): Fix coding style.
* src/xterm.h: Update prototypes.