]> git.eshelyaron.com Git - emacs.git/log
emacs.git
3 years ago* src/comp.c (fixup_eln_load_path): Simplify code.
Eli Zaretskii [Sun, 18 Apr 2021 13:44:44 +0000 (16:44 +0300)]
* src/comp.c (fixup_eln_load_path): Simplify code.

3 years ago; * src/emacs.c (load_pdump_find_executable): Yet another fix.
Eli Zaretskii [Sun, 18 Apr 2021 11:56:00 +0000 (14:56 +0300)]
; * src/emacs.c (load_pdump_find_executable): Yet another fix.

3 years agoFix last change
Eli Zaretskii [Sun, 18 Apr 2021 09:00:25 +0000 (12:00 +0300)]
Fix last change

* src/emacs.c (load_pdump_find_executable): Fix the value of
CANDIDATE_SIZE when the final candidate is a symlink.

3 years ago; * src/pdumper.c (dump_do_dump_relocation): Add a FIXME comment.
Eli Zaretskii [Sat, 17 Apr 2021 16:10:16 +0000 (19:10 +0300)]
; * src/pdumper.c (dump_do_dump_relocation): Add a FIXME comment.

3 years ago* src/emacs.c (load_pdump): Fix unconditional references to strip_suffix.
Eli Zaretskii [Sat, 17 Apr 2021 15:10:52 +0000 (18:10 +0300)]
* src/emacs.c (load_pdump): Fix unconditional references to strip_suffix.

3 years ago* emacs.c (load_pdump): Fix compilation on picky-complier platforms.
Eli Zaretskii [Sat, 17 Apr 2021 14:29:17 +0000 (17:29 +0300)]
* emacs.c (load_pdump): Fix compilation on picky-complier platforms.

3 years agoFix loading *.eln files when Emacs is installed via symlinks
Eli Zaretskii [Sat, 17 Apr 2021 13:49:16 +0000 (16:49 +0300)]
Fix loading *.eln files when Emacs is installed via symlinks

* src/emacs.c (real_filename, set_invocation_vars)
(init_vars_for_load): Functions deleted; callers adjusted.
(init_cmdargs): Put back all the code which was extracted into
set_invocation_vars.
(load_pdump_find_executable): Make sure the return value has any
symlinks in it expanded.
(load_pdump): Accept only 2 arguments, not 3.  Determine both the
file name of the Emacs executable and of the dump file in
synchronized manner, so that if we decided to look for the dump
file in its hardcoded installation directory, the directory of the
Emacs executable will also be where we expect it to be installed.
Pass only 2 arguments to pdumper_load.  (Bug#47800)  (Bug#44128)
* src/pdumper.c (dump_do_dump_relocation): Use emacs_execdir
instead of Vinvocation_directory to produce absolute file names of
*.eln files that are recorded in the pdumper file.  Pass the full
.eln file name to fixup_eln_load_path.
(pdumper_set_emacs_execdir) [HAVE_NATIVE_COMP]: New function.
(pdumper_load) [HAVE_NATIVE_COMP]: Call pdumper_set_emacs_execdir.
* src/comp.c (fixup_eln_load_path): Use Fsubstring_no_properties
instead of Fsubstring.  No need to cons a file name, as the caller
already did that.  Use explicit const string to avoid "magic"
values.

* lisp/startup.el (normal-top-level): Use expand-file-name instead
of concat.  Decode comp-eln-load-path and expand-file-name its
members.

3 years ago* lisp/emacs-lisp/comp.el (comp-effective-async-max-jobs): Handle BSD.
Ashish SHUKLA [Fri, 16 Apr 2021 09:13:09 +0000 (11:13 +0200)]
* lisp/emacs-lisp/comp.el (comp-effective-async-max-jobs): Handle BSD.

3 years ago* configure.ac: Revert prev commit and fix native-comp NetBSD build.
Andrea Corallo [Wed, 14 Apr 2021 21:58:23 +0000 (23:58 +0200)]
* configure.ac: Revert prev commit and fix native-comp NetBSD build.

3 years ago* configure.ac: Fix native-comp FreeBSD build.
Andrea Corallo [Wed, 14 Apr 2021 18:00:04 +0000 (20:00 +0200)]
* configure.ac: Fix native-comp FreeBSD build.

3 years agoFix MS-Windows build following last change
Eli Zaretskii [Wed, 14 Apr 2021 14:28:19 +0000 (17:28 +0300)]
Fix MS-Windows build following last change

* src/emacs.c (real_filename) [WINDOWSNT]: Fix off-by-one error
when allocating storage for a file name.

3 years ago* Fix native-comp startup for symliked binary (bug#44128)
Andrea Corallo [Wed, 14 Apr 2021 13:04:19 +0000 (15:04 +0200)]
* Fix native-comp startup for symliked binary (bug#44128)

* src/emacs.c (real_filename): New function.
(set_invocation_vars, load_pdump): Make use of.

3 years agoMerge remote-tracking branch 'savannah/master' into native-comp
Andrea Corallo [Tue, 13 Apr 2021 10:06:23 +0000 (12:06 +0200)]
Merge remote-tracking branch 'savannah/master' into native-comp

3 years ago* Fix two comp-cstr tests
Andrea Corallo [Tue, 13 Apr 2021 08:38:14 +0000 (10:38 +0200)]
* Fix two comp-cstr tests

* test/lisp/emacs-lisp/comp-cstr-tests.el
(comp-cstr-typespec-tests-alist): Fix test 53 70.

3 years ago* lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): (not null) => t.
Andrea Corallo [Tue, 13 Apr 2021 08:38:00 +0000 (10:38 +0200)]
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): (not null) => t.

3 years ago* lisp/emacs-lisp/comp-cstr.el (comp-normalize-valset): Remove duplicates.
Andrea Corallo [Mon, 12 Apr 2021 14:42:01 +0000 (16:42 +0200)]
* lisp/emacs-lisp/comp-cstr.el (comp-normalize-valset): Remove duplicates.

3 years ago* lisp/comint.el: Add `font-lock-face` to `rear-nonsticky`
Stefan Monnier [Tue, 13 Apr 2021 02:49:48 +0000 (22:49 -0400)]
* lisp/comint.el: Add `font-lock-face` to `rear-nonsticky`

(comint--prompt-rear-nonsticky): New const.
(comint-send-input, comint-output-filter): Use it.

3 years agoDon't version-control generated file `grammat-wy.el`
Stefan Monnier [Tue, 13 Apr 2021 01:55:50 +0000 (21:55 -0400)]
Don't version-control generated file `grammat-wy.el`

This file is needed for CEDET's bootstrap, tho, so we now keep a copy of it
under version control in `gram-wy-boot.el`, very much like we do with
the `ldefs-boot.el` copy of `loaddefs.el`.

* lisp/cedet/semantic/grm-wy-boot.el: Rename from
`lisp/cedet/semantic/grammar-wy.el`.

* lisp/cedet/semantic/grammar.el: Load `grm-wy-boot.el` if
`grammar-wy.el` hasn't been generated yet.

* admin/update_autogen: Also refresh `grm-wy-boot.el`.

* admin/grammars/Makefile.in (WISENT): Add `grammar-wy.el` to the
generated files.

* .gitignore: Add `grammar-wy.el`.

3 years ago* lisp/minibuffer.el (completion-table-with-quoting): Fix bug#47678
Stefan Monnier [Mon, 12 Apr 2021 23:23:45 +0000 (19:23 -0400)]
* lisp/minibuffer.el (completion-table-with-quoting): Fix bug#47678

3 years ago* lisp/progmodes/verilog-mode.el (vl-memory): Add missing defvar.
Wilson Snyder [Mon, 12 Apr 2021 17:36:05 +0000 (13:36 -0400)]
* lisp/progmodes/verilog-mode.el (vl-memory): Add missing defvar.

3 years ago* lisp/emacs-lisp/smie.el: Fix URL. Remove redundant `:group` args
Stefan Monnier [Mon, 12 Apr 2021 17:01:06 +0000 (13:01 -0400)]
* lisp/emacs-lisp/smie.el: Fix URL.  Remove redundant `:group` args

(smie-indent-forward-token): Improve error message.
(smie--funcall): New function.
(smie-indent-calculate): Use it.

3 years ago* lisp/emacs-lisp/memory-report.el (memory-report--object-size-1): Simplify
Stefan Monnier [Mon, 12 Apr 2021 16:55:52 +0000 (12:55 -0400)]
* lisp/emacs-lisp/memory-report.el (memory-report--object-size-1): Simplify

3 years ago* lisp/emacs-lisp/float-sup.el (pi): Actually mark it as obsolete
Stefan Monnier [Mon, 12 Apr 2021 16:53:53 +0000 (12:53 -0400)]
* lisp/emacs-lisp/float-sup.el (pi): Actually mark it as obsolete

3 years ago* lisp/emacs-lisp/edebug.el (edebug--frame): Move docstring where it belongs
Stefan Monnier [Mon, 12 Apr 2021 16:51:28 +0000 (12:51 -0400)]
* lisp/emacs-lisp/edebug.el (edebug--frame): Move docstring where it belongs

3 years ago* lisp/vt-control.el: Avoid `called-interactively-p`
Stefan Monnier [Mon, 12 Apr 2021 16:49:36 +0000 (12:49 -0400)]
* lisp/vt-control.el: Avoid `called-interactively-p`

(vt-keypad-on, vt-keypad-off): Use the `tell` arg instead.
(vt-numlock): Add `tell` arg.

3 years ago* lisp/files.el (file-modes-number-to-symbolic): Add `filetype` arg.
Stefan Monnier [Mon, 12 Apr 2021 16:46:47 +0000 (12:46 -0400)]
* lisp/files.el (file-modes-number-to-symbolic): Add `filetype` arg.

* lisp/tar-mode.el (tar-header-block-summarize): Use it.
(tar-grind-file-mode): Declare obsolete.

3 years ago* lisp/frame.el (delete-other-frames): Add universal prefix `iconify` arg
Stefan Monnier [Mon, 12 Apr 2021 16:32:07 +0000 (12:32 -0400)]
* lisp/frame.el (delete-other-frames): Add universal prefix `iconify` arg

(frame--current-backround-mode): New function,
extracted from `frame-set-background-mode`.  Use `color-dark-p`.
(frame-set-background-mode): Use it.

3 years ago* lisp/repeat.el (repeat-mode-echo): New defcustom.
Juri Linkov [Mon, 12 Apr 2021 16:14:45 +0000 (19:14 +0300)]
* lisp/repeat.el (repeat-mode-echo): New defcustom.

(repeat-post-hook): Use it.
(repeat-mode-message): New function (bug#47566).
(repeat-post-hook): Use real-this-command instead of this-command
to handle e.g. rectangle-exchange-point-and-mark remapped to
exchange-point-and-mark (bug#47688).

3 years ago* lisp/dynamic-setting.el: Add missing footer
Stefan Monnier [Mon, 12 Apr 2021 15:54:10 +0000 (11:54 -0400)]
* lisp/dynamic-setting.el: Add missing footer

3 years ago* lisp/comint.el (comint-strip-ctrl-m): Avoid `called-interactively-p`
Stefan Monnier [Mon, 12 Apr 2021 15:53:25 +0000 (11:53 -0400)]
* lisp/comint.el (comint-strip-ctrl-m): Avoid `called-interactively-p`

3 years ago* lisp/strokes.el (strokes-mode): Fix typo in previous.
Glenn Morris [Mon, 12 Apr 2021 15:08:29 +0000 (08:08 -0700)]
* lisp/strokes.el (strokes-mode): Fix typo in previous.

3 years ago(define-minor-mode): Warn about use of pre-Emacs-21 style args
Stefan Monnier [Mon, 12 Apr 2021 15:08:19 +0000 (11:08 -0400)]
(define-minor-mode): Warn about use of pre-Emacs-21 style args

* lisp/emacs-lisp/easy-mmode.el (define-minor-mode):
Use `advertised-calling-convention` to avoid promoting the old
style arguments.  Emit a wanring when old-style arguments are used.
Massage the docstring accordingly.
* doc/lispref/modes.texi (Defining Minor Modes): Document the keyword
arguments rather than the old-style positional arguments.

3 years ago* lisp/progmodes/vhdl-mode.el: Add note about XEmacs compatibility
Stefan Monnier [Mon, 12 Apr 2021 14:46:07 +0000 (10:46 -0400)]
* lisp/progmodes/vhdl-mode.el: Add note about XEmacs compatibility

3 years agoAdjust verilog-mode to changes in the completion framework
Lars Ingebrigtsen [Mon, 12 Apr 2021 09:45:33 +0000 (11:45 +0200)]
Adjust verilog-mode to changes in the completion framework

* lisp/progmodes/verilog-mode.el (verilog-func-completion): Don't
bug out on `C-M-i' (which expects no point movement) (bug#47652).
(verilog-declaration-end): There may be no semicolons; don't bug out.

3 years agoFix python-shell-switch-to-shell redisplay bug
Shitikanth Kashyap [Mon, 12 Apr 2021 08:43:42 +0000 (10:43 +0200)]
Fix python-shell-switch-to-shell redisplay bug

* lisp/progmodes/python.el (python-shell-switch-to-shell):
Redisplay the switched-to window faster (bug#47679).

Copyright-paperwork-exempt: yes

3 years agoAdd command in eww to toggle images
Ralph Schleicher [Mon, 12 Apr 2021 08:31:46 +0000 (10:31 +0200)]
Add command in eww to toggle images

* lisp/net/eww.el (eww-toggle-images): New function.
(eww-mode-map): Add key binding and menu entry.
* lisp/net/shr.el (shr-inhibit-images): Make it customizable.
* doc/misc/eww.texi (Basics): Document eww-toggle-images.
Fix index entries for shr-use-fonts and shr-use-colors.
(Advanced): Document shr-inhibit-images
(bug#47705).

3 years agoFix args-out-of-range error in epa-file-insert-file-contents
Junya Takahashi [Mon, 12 Apr 2021 08:14:11 +0000 (10:14 +0200)]
Fix args-out-of-range error in epa-file-insert-file-contents

* lisp/epa-file.el (epa-file-insert-file-contents): Don't bug out
on a region that's longer than the file (bug#47718).

Copyright-paperwork-exempt: yes

3 years ago* lib-src/seccomp-filter.c: Add missing headers.
Philipp Stephani [Mon, 12 Apr 2021 07:20:51 +0000 (09:20 +0200)]
* lib-src/seccomp-filter.c: Add missing headers.

3 years agoGenerate Seccomp filters only if we have the necessary constants.
Philipp Stephani [Mon, 12 Apr 2021 07:15:59 +0000 (09:15 +0200)]
Generate Seccomp filters only if we have the necessary constants.

If we're missing SECCOMP_SET_MODE_FILTER, the seccomp-filter build
fails.  Reuse the existing HAVE_SECCOMP configuration variable, which
checks for these macros.

* configure.ac (HAVE_SECCOMP): Substitute in Makefile.in.
* lib-src/Makefile.in (HAVE_SECCOMP): New variable.
(SECCOMP_FILTER): Define only if HAVE_SECCOMP.

3 years ago* lisp/**/*.el: Avoid positional args to `define-minor-mode`
Stefan Monnier [Mon, 12 Apr 2021 03:47:14 +0000 (23:47 -0400)]
* lisp/**/*.el: Avoid positional args to `define-minor-mode`

Back in Emacs-21.1, `define-minor-mode` grew keywords arguments to
replace its old positional arguments.  Let's make sure we don't use
the old-style any more.

* lisp/org/ox-beamer.el (org-beamer-mode-map): Move initialization
into declaration.
(org-beamer-mode):
* lisp/textmodes/tildify.el (tildify-mode):
* lisp/textmodes/sgml-mode.el (html-autoview-mode):
* lisp/textmodes/rst.el (rst-minor-mode):
* lisp/textmodes/remember.el (remember-notes-mode):
* lisp/textmodes/ispell.el (ispell-minor-mode):
* lisp/tar-mode.el (tar-subfile-mode):
* lisp/strokes.el (strokes-mode):
* lisp/so-long.el (so-long-minor-mode):
* lisp/shell.el (shell-dirtrack-mode):
* lisp/scroll-all.el (scroll-all-mode):
* lisp/ruler-mode.el (ruler-mode):
* lisp/rect.el (rectangle-mark-mode):
* lisp/progmodes/sh-script.el (sh-electric-here-document-mode):
* lisp/outline.el (outline-minor-mode):
* lisp/org/org.el (org-cdlatex-mode):
* lisp/org/org-table.el (org-table-header-line-mode)
(org-table-follow-field-mode, orgtbl-mode):
* lisp/org/org-src.el (org-src-mode):
* lisp/org/org-list.el (org-list-checkbox-radio-mode):
* lisp/org/org-indent.el (org-indent-mode):
* lisp/org/org-capture.el (org-capture-mode):
* lisp/obsolete/pc-select.el (pc-selection-mode):
* lisp/obsolete/iswitchb.el (iswitchb-mode):
* lisp/net/rcirc.el (rcirc-omit-mode, rcirc-multiline-minor-mode)
(rcirc-track-minor-mode):
* lisp/net/goto-addr.el (goto-address-mode, goto-address-prog-mode):
* lisp/image-mode.el (image-minor-mode):
* lisp/ibuf-ext.el (ibuffer-auto-mode):
* lisp/gnus/gnus-cite.el (gnus-message-citation-mode):
* lisp/font-core.el (font-lock-mode):
* lisp/erc/erc.el (define-erc-module):
* lisp/erc/erc-track.el (erc-track-minor-mode):
* lisp/erc/erc-fill.el (erc-fill-mode):
* lisp/epa-mail.el (epa-mail-mode):
* lisp/emacs-lisp/checkdoc.el (checkdoc-minor-mode):
* lisp/dirtrack.el (dirtrack-mode, dirtrack-debug-mode):
* lisp/dired-aux.el (dired-isearch-filenames-mode):
* lisp/cedet/semantic/idle.el (semantic-idle-scheduler-mode):
* lisp/cedet/semantic/decorate/mode.el (semantic-decoration-mode):
* lisp/autoarg.el (autoarg-mode, autoarg-kp-mode):
* lisp/vc/pcvs.el (cvs-minor-mode):
Avoid old-style positional args to `define-minor-mode`.

3 years ago* lisp/gnus/message.el: Give non-nil defaults for function vars
Stefan Monnier [Mon, 12 Apr 2021 02:55:18 +0000 (22:55 -0400)]
* lisp/gnus/message.el: Give non-nil defaults for function vars

Also prefer #' to quote functions.

(message-send-rename-function, message-reply-to-function)
(message-wide-reply-to-function, message-followup-to-function):
Use a non-nil default value so it can be used with `add-function`.
(message-do-send-housekeeping): Tweak accordingly.
(message-get-reply-headers): Simplify by η-reduction.

3 years ago* lisp/eshell/esh-util.el: Require `seq`
Stefan Monnier [Mon, 12 Apr 2021 02:46:48 +0000 (22:46 -0400)]
* lisp/eshell/esh-util.el: Require `seq`

Also remove redundant `:group` args and tweak comment

3 years ago* lisp/eshell/esh-proc.el (eshell-kill-process-function): Use `remove-hook`
Stefan Monnier [Mon, 12 Apr 2021 02:42:36 +0000 (22:42 -0400)]
* lisp/eshell/esh-proc.el (eshell-kill-process-function): Use `remove-hook`

Also remove redundant `:group` args

3 years ago* lisp/mail/rmailmm.el (rmail-mime): Simplify interactive spec
Stefan Monnier [Mon, 12 Apr 2021 02:38:34 +0000 (22:38 -0400)]
* lisp/mail/rmailmm.el (rmail-mime): Simplify interactive spec

3 years ago* lisp/progmodes/sql.el (sql-mode-ansi-font-lock-keywords): Fix declaration
Stefan Monnier [Mon, 12 Apr 2021 02:34:58 +0000 (22:34 -0400)]
* lisp/progmodes/sql.el (sql-mode-ansi-font-lock-keywords): Fix declaration

3 years ago* lisp/vc/log-edit.el (log-edit-diff-function): Give non-nil default
Stefan Monnier [Mon, 12 Apr 2021 02:27:25 +0000 (22:27 -0400)]
* lisp/vc/log-edit.el (log-edit-diff-function): Give non-nil default

(log-edit-show-diff): Simplify accordingly.

3 years ago* lisp/progmodes/bug-reference.el: Avoid old-style `define-minor-mode`
Stefan Monnier [Sun, 11 Apr 2021 22:02:34 +0000 (18:02 -0400)]
* lisp/progmodes/bug-reference.el: Avoid old-style `define-minor-mode`

(bug-reference-mode, bug-reference-prog-mode): Remove redundant args.

3 years ago* src/emacs.c (load_seccomp): Consistently check for nonzero result
Philipp Stephani [Mon, 14 Dec 2020 20:25:11 +0000 (21:25 +0100)]
* src/emacs.c (load_seccomp): Consistently check for nonzero result

3 years agoAdd a variant of the Seccomp filter file that allows 'execve'.
Philipp Stephani [Sun, 11 Apr 2021 17:47:36 +0000 (19:47 +0200)]
Add a variant of the Seccomp filter file that allows 'execve'.

This is useful when starting Emacs with a Seccomp filter enabled,
e.g. using 'bwrap'.

* lib-src/seccomp-filter.c (main): Generate new Seccomp files.

* lib-src/Makefile.in (all)
(seccomp-filter.bpf seccomp-filter.pfc seccomp-filter-exec.bpf
seccomp-filter-exec.pfc): Generate new Seccomp files.

* .gitignore: Ignore new Seccomp files.

* test/src/emacs-tests.el (emacs-tests/bwrap/allows-stdout): New unit
test.

3 years ago* lib-src/seccomp-filter.c (main): Also allow O_NOFOLLOW.
Philipp Stephani [Sun, 11 Apr 2021 19:14:09 +0000 (21:14 +0200)]
* lib-src/seccomp-filter.c (main): Also allow O_NOFOLLOW.

3 years agoDon't attempt to generate Seccomp filter file in Linux < 4.14.
Philipp Stephani [Sun, 11 Apr 2021 17:35:39 +0000 (19:35 +0200)]
Don't attempt to generate Seccomp filter file in Linux < 4.14.

Only Linux 4.14 and later contain the required support for
SECCOMP_RET_KILL_PROCESS.

* lib-src/Makefile.in (SECCOMP_FILTER): Define only if we run at least
Linux 4.14.

3 years agoSeccomp filter: allow reading the current time (Bug#47708).
Philipp Stephani [Sun, 11 Apr 2021 17:42:44 +0000 (19:42 +0200)]
Seccomp filter: allow reading the current time (Bug#47708).

* lib-src/seccomp-filter.c (main): Allow reading the current time.

3 years agoFix check for timer_getoverrun
Andreas Schwab [Sun, 11 Apr 2021 15:23:22 +0000 (17:23 +0200)]
Fix check for timer_getoverrun

* configure.ac (timer_getoverrun): Move check after gnulib checks
and use $LIB_TIMER_TIME during check.

3 years agoUse pkg-config to check for libseccomp.
Philipp Stephani [Sun, 11 Apr 2021 14:50:29 +0000 (16:50 +0200)]
Use pkg-config to check for libseccomp.

We need at list version 2.4.0 of libseccomp for seccomp-filter.c to
build cleanly.

* configure.ac: Use pkg-config to check for libseccomp.
* lib-src/Makefile.in (HAVE_LIBSECCOMP, LIBSECCOMP_LIBS)
(LIBSECCOMP_CFLAGS): New variables.
(SECCOMP_FILTER, seccomp-filter$(EXEEXT)): Use them.

3 years agoRemove SCMP_FLTATR_CTL_LOG attribute from Seccomp filter.
Philipp Stephani [Sun, 11 Apr 2021 14:41:44 +0000 (16:41 +0200)]
Remove SCMP_FLTATR_CTL_LOG attribute from Seccomp filter.

Whether or not we log failing syscalls isn't security-critical, and we
shouldn't care.

* lib-src/seccomp-filter.c (main): Remove log attribute.

3 years agoOnly attempt to generate seccomp filter files on x86-64 systems.
Philipp Stephani [Sun, 11 Apr 2021 14:22:54 +0000 (16:22 +0200)]
Only attempt to generate seccomp filter files on x86-64 systems.

The seccomp filters are always architecture-specific, and
seccomp-filter.c right now only supports x86-64.

* lib-src/Makefile.in (SECCOMP_FILTER): New variable.
(DONT_INSTALL, all, seccomp-filter$(EXEEXT)): Use it.

3 years ago; * etc/NEWS: Minor copyedits.
Eli Zaretskii [Sun, 11 Apr 2021 14:04:07 +0000 (17:04 +0300)]
; * etc/NEWS: Minor copyedits.

3 years ago* lib-src/seccomp-filter.c: Print trailing newline.
Philipp Stephani [Sun, 11 Apr 2021 14:02:05 +0000 (16:02 +0200)]
* lib-src/seccomp-filter.c: Print trailing newline.

3 years ago* doc/lispref/elisp.texi (Top): Add missing entry.
Stefan Kangas [Sun, 11 Apr 2021 12:14:42 +0000 (14:14 +0200)]
* doc/lispref/elisp.texi (Top): Add missing entry.

3 years agoFix calculator-string-to-number yet again (bug#47694)
Eli Barzilay [Sat, 10 Apr 2021 19:10:35 +0000 (15:10 -0400)]
Fix calculator-string-to-number yet again (bug#47694)

* lisp/calculator.el (calculator-string-to-number):
The last bugfix changed the code to just blindly replace ".e".  This
has some minor problems like making "-." parse as 0.0 instead of -0.0,
and ".1.e1" is parsed as 1 instead of 0.1.  Instead, replace the first
"." that is followed by a non-digit with ".0".  Since this has had
several problems over the years, add some tests too.  (Also, restore
the original if-indentation style.)

3 years agoFix typo in cconv
Mattias Engdegård [Sun, 11 Apr 2021 10:38:37 +0000 (12:38 +0200)]
Fix typo in cconv

* lisp/emacs-lisp/cconv.el (cconv-convert): Typo.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
Add test case.

3 years agoAdd another check for the required header <linux/filter.h>.
Philipp Stephani [Sun, 11 Apr 2021 10:26:13 +0000 (12:26 +0200)]
Add another check for the required header <linux/filter.h>.

* configure.ac: Also check for <linux/filter.h>.
* src/emacs.c (SECCOMP_USABLE): Also check for <linux/filter.h>.

3 years agoAlso check for needed seccomp macros.
Philipp Stephani [Sun, 11 Apr 2021 10:00:35 +0000 (12:00 +0200)]
Also check for needed seccomp macros.

It looks like these are not available on some versions of GNU/Linux,
breaking the build.

* configure.ac: Also check for needed seccomp macros.
* src/emacs.c (SECCOMP_USABLE): New macro.
(usage_message, main, standard_args): Use it.

3 years agoFix handling of mouse clicks on tab-bar buttons
Eli Zaretskii [Sun, 11 Apr 2021 09:12:45 +0000 (12:12 +0300)]
Fix handling of mouse clicks on tab-bar buttons

* src/xdisp.c (note_mouse_highlight): Don't attempt to highlight
tab-bar buttons.
(note_tab_bar_highlight): Function deleted: it had no effect on
display of tab-bar buttons.
(tab_bar_item_info): Mention all arguments in the commentary.
(get_tab_bar_item): Don't pay attention to mouse-highlight
information; instead, compare the button's index with the one
recorded in f->last_tab_bar_item.
(handle_tab_bar_click): Don't attempt to show tab-bar buttons in
pressed or released state: that isn't supported.  Determine
whether to generate a tab-bar button click based on DOWN_P
argument, not on mouse-highlight, which has no effect on tab-bar
display.  (Bug#47581)

3 years ago; * lisp/net/shr.el (shr-insert-document): Fix last change.
Eli Zaretskii [Sun, 11 Apr 2021 06:35:09 +0000 (09:35 +0300)]
; * lisp/net/shr.el (shr-insert-document): Fix last change.

3 years ago* lisp/net/shr.el (shr-insert-document): Explain why bidi-display-reordering
Stefan Monnier [Sun, 11 Apr 2021 00:06:21 +0000 (20:06 -0400)]
* lisp/net/shr.el (shr-insert-document): Explain why bidi-display-reordering

3 years agoAdd new icomplete-vertical-mode
Gregory Heytings [Sat, 10 Apr 2021 10:47:45 +0000 (11:47 +0100)]
Add new icomplete-vertical-mode

Co-authored-by: João Távora <joaotavora@gmail.com>
* lisp/icomplete.el (icomplete-completions): Consider icomplete-vertical-mode.
(icomplete-vertical-mode-minibuffer-map): New map.
(icomplete--vertical-minibuffer-setup): New helper.
(icomplete-vertical-mode): New minor mode.

* doc/emacs/buffers.texi (Icomplete): Mention icomplete-vertical-mode.

* etc/NEWS: Mention icomplete-vertical-mode

3 years ago* lisp/misearch.el (multi-isearch-read-buffers): Fix last change
Stefan Monnier [Sat, 10 Apr 2021 22:07:37 +0000 (18:07 -0400)]
* lisp/misearch.el (multi-isearch-read-buffers): Fix last change

These are not buffers but buffer names.

3 years ago* src/emacs.c (read_full): Add a few assertions.
Philipp Stephani [Mon, 14 Dec 2020 20:25:11 +0000 (21:25 +0100)]
* src/emacs.c (read_full): Add a few assertions.

3 years ago* lisp/cus-dep.el: Use lexical-binding
Stefan Monnier [Sat, 10 Apr 2021 21:11:58 +0000 (17:11 -0400)]
* lisp/cus-dep.el: Use lexical-binding

3 years ago* lisp/misearch.el: Use lexical-binding
Stefan Monnier [Sat, 10 Apr 2021 21:07:58 +0000 (17:07 -0400)]
* lisp/misearch.el: Use lexical-binding

(multi-isearch-read-buffers, multi-isearch-read-files):
Replace `add-to-list` with `cl-pushnew` for use on a local variable.

3 years ago* src/emacs.c (load_seccomp): Add a useful assertion.
Philipp Stephani [Sat, 10 Apr 2021 19:21:08 +0000 (21:21 +0200)]
* src/emacs.c (load_seccomp): Add a useful assertion.

3 years ago* src/emacs.c (load_seccomp): Fix condition.
Philipp Stephani [Sat, 10 Apr 2021 19:19:50 +0000 (21:19 +0200)]
* src/emacs.c (load_seccomp): Fix condition.

3 years ago* lisp/ps-bdf.el: Use lexical-binding
Stefan Monnier [Sat, 10 Apr 2021 21:03:11 +0000 (17:03 -0400)]
* lisp/ps-bdf.el: Use lexical-binding

3 years ago* lisp/informat.el: Use lexical-binding
Stefan Monnier [Sat, 10 Apr 2021 21:01:01 +0000 (17:01 -0400)]
* lisp/informat.el: Use lexical-binding

3 years ago* lisp/loadup.el: Use lexical-binding
Stefan Monnier [Sat, 10 Apr 2021 20:58:11 +0000 (16:58 -0400)]
* lisp/loadup.el: Use lexical-binding

3 years ago* lisp/jka-compr.el: Use lexical-binding
Stefan Monnier [Sat, 10 Apr 2021 20:25:28 +0000 (16:25 -0400)]
* lisp/jka-compr.el: Use lexical-binding

Prefer #' to quote function names.

3 years ago* etc/NEWS: Extend paragraph about &define form and backtracking
Philipp Stephani [Sat, 10 Apr 2021 19:54:12 +0000 (21:54 +0200)]
* etc/NEWS: Extend paragraph about &define form and backtracking

3 years ago; Fix copyright years
Glenn Morris [Sat, 10 Apr 2021 19:24:09 +0000 (12:24 -0700)]
; Fix copyright years

3 years agoConvert CC Mode to lexical binding in Emacs
Alan Mackenzie [Sat, 10 Apr 2021 19:18:28 +0000 (19:18 +0000)]
Convert CC Mode to lexical binding in Emacs

lisp/progmodes/cc-align.el, lisp/progmodes/cc-awk.el,
lisp/progmodes/cc-bytecomp.el, lisp/progmodes/cc-cmds.el,
lisp/progmodes/cc-defs.el, lisp/progmodes/cc-engine.el,
lisp/progmodes/cc-fonts.el, lisp/progmodes/cc-guess.el,
lisp/progmodes/cc-langs.el, lisp/progmodes/cc-menus.el,
lisp/progmodes/cc-mode.el, lisp/progmodes/cc-styles.el,
lisp/progmodes/cc-subword.el, lisp/progmodes/cc-vars.el: Mark these files with
a `lexical-binding' setting in line 1.

lisp/progmodes/cc-align.el, lisp/progmodes/cc-engine.el,
lisp/progmodes/cc-vars.el (c-syntactic-context, c-syntactic-element): Declare
these as special variables.

lisp/progmodes/cc-bytecomp.el (cc-bytecomp-debug-msg): prefix the parameter
ARGS with a _, and remove an `ignore' call.

lisp/progmodes/cc-cmds.el (c-where-wrt-brace-construct): Remove `kluge-start',
an unused variable.
(c-while-widening-to-decl-block): Add an extra parameter, which suppresses
the generation of a setting of variable `where'.
(c-defun-name-and-limits): Remove variable `where' from the function and use
the new argument to the previous macro.

lisp/progmodes/cc-engine.el (c-cache-to-parse-ps-state): Remove two unneeded
variables, `last' and `intermediate'.

lisp/progmodes/cc-fonts.el (c-font-lock-c++-using): Remove unused variable.

lisp/progmodes/cc-langs.el (c-vsemi-status-unknown-p-fn): Replace the doc
string with the more precise one from stand-alone CC Mode.

lisp/progmodes/cc-styles.el (c-set-offset): Give the `ignored' parameter a
leading _.

3 years agoAdd a helper binary to create a basic Secure Computing filter.
Philipp Stephani [Thu, 17 Dec 2020 10:20:55 +0000 (11:20 +0100)]
Add a helper binary to create a basic Secure Computing filter.

The binary uses the 'seccomp' helper library.  The library isn't
needed to load the generated Secure Computing filter.

* configure.ac: Check for 'seccomp' header and library.

* lib-src/seccomp-filter.c: New helper binary to generate a generic
Secure Computing filter for GNU/Linux.

* lib-src/Makefile.in (DONT_INSTALL): Add 'seccomp-filter' helper
binary if possible.
(all): Add Secure Computing filter file if possible.
(seccomp-filter$(EXEEXT)): Compile helper binary.
(seccomp-filter.bpf seccomp-filter.pfc): Generate filter files.

* test/src/emacs-tests.el (emacs-tests/seccomp/allows-stdout)
(emacs-tests/seccomp/forbids-subprocess): New unit tests.

* test/Makefile.in (src/emacs-tests.log): Add dependency on the helper
binary.

3 years ago* src/emacs.c (load_seccomp): Fix condition.
Philipp Stephani [Sat, 10 Apr 2021 18:35:06 +0000 (20:35 +0200)]
* src/emacs.c (load_seccomp): Fix condition.

3 years agoRead file in a loop if necessary.
Philipp Stephani [Mon, 14 Dec 2020 20:25:11 +0000 (21:25 +0100)]
Read file in a loop if necessary.

This allows for short reads from 'emacs_read'.

* src/emacs.c (read_full): New helper function.
(load_seccomp): Use it.

3 years ago; * etc/NEWS: Fix the wording of a recently added entry.
Eli Zaretskii [Sat, 10 Apr 2021 18:17:09 +0000 (21:17 +0300)]
; * etc/NEWS: Fix the wording of a recently added entry.

3 years agoAdd support for --seccomp command-line option.
Philipp Stephani [Mon, 14 Dec 2020 20:25:11 +0000 (21:25 +0100)]
Add support for --seccomp command-line option.

When passing this option on GNU/Linux, Emacs installs a Secure
Computing kernel system call filter.  See Bug#45198.

* configure.ac: Check for seccomp header.

* src/emacs.c (usage_message): Document --seccomp option.
(emacs_seccomp): New wrapper for 'seccomp' syscall.
(load_seccomp, maybe_load_seccomp): New helper functions.
(main): Potentially load seccomp filters during startup.
(standard_args): Add --seccomp option.

* lisp/startup.el (command-line): Detect and ignore --seccomp option.

* test/src/emacs-tests.el (emacs-tests/seccomp/absent-file)
(emacs-tests/seccomp/empty-file)
(emacs-tests/seccomp/file-too-large)
(emacs-tests/seccomp/invalid-file-size): New unit tests.
(emacs-tests--with-temp-file): New helper macro.

* etc/NEWS: Document new --seccomp option.

3 years agoEdebug: Disable backtracking when hitting a &define keyword.
Philipp Stephani [Thu, 18 Mar 2021 11:40:08 +0000 (12:40 +0100)]
Edebug: Disable backtracking when hitting a &define keyword.

Edebug doesn't deal well with backtracking out of definitions, see
Bug#41988.  Rather than trying to support this rare situation (e.g. by
implementing a multipass parser), prevent it by adding an implicit
gate.

* lisp/emacs-lisp/edebug.el (edebug--match-&-spec-op): Disable
backtracking when hitting a &define keyword.

* test/lisp/emacs-lisp/edebug-tests.el
(edebug-tests-duplicate-&define): New unit test.
(edebug-tests--duplicate-&define): New helper macro.

* doc/lispref/edebug.texi (Backtracking): Mention &define in the list
of constructs that disable backtracking.

* etc/NEWS: Document new behavior.

3 years ago* lisp/gnus/nnagent.el: Fix spurious empty line at BOB
Stefan Monnier [Sat, 10 Apr 2021 16:19:16 +0000 (12:19 -0400)]
* lisp/gnus/nnagent.el: Fix spurious empty line at BOB

3 years ago* lisp/edmacro.el: Use lexical-binding
Stefan Monnier [Sat, 10 Apr 2021 16:18:22 +0000 (12:18 -0400)]
* lisp/edmacro.el: Use lexical-binding

(edmacro-finish-edit, edmacro-parse-keys): Use `match-string`.

3 years ago* lisp/files-x.el: Use lexical-binding
Stefan Monnier [Sat, 10 Apr 2021 16:08:36 +0000 (12:08 -0400)]
* lisp/files-x.el: Use lexical-binding

3 years ago* lisp/ps-mule.el: Use lexical-binding
Stefan Monnier [Sat, 10 Apr 2021 13:52:09 +0000 (09:52 -0400)]
* lisp/ps-mule.el: Use lexical-binding

(ps-mule-encode-header-string, ps-mule-begin-job): Use `pcase`.

3 years agoAutoload list-colors-display.
Gregory Heytings [Sat, 10 Apr 2021 12:35:06 +0000 (12:35 +0000)]
Autoload list-colors-display.

* lisp/facemenu.el (list-colors-display): Autoload, it is mentioned
in (info "(emacs)Colors for Faces"), and to be generally available.

3 years agoTramp: fix location of files on W32
Michael Albinus [Sat, 10 Apr 2021 12:46:58 +0000 (14:46 +0200)]
Tramp: fix location of files on W32

* lisp/net/tramp.el:
* lisp/net/tramp-sh.el: Use (eq system-type 'windows-nt) where appropriate.
(tramp-completion-function-alist-ssh): Fix location of files on W32.

3 years agoFurther fix of hostname completion on MS Windows
Jim Porter [Sat, 10 Apr 2021 11:16:13 +0000 (13:16 +0200)]
Further fix of hostname completion on MS Windows

* lisp/net/tramp.el (tramp-completion-file-name-regexp-simplified)
(tramp-completion-file-name-regexp-separate): Fix W32 hostname/method
completion for simplified and separate syntaxes (same as the previous change
to default syntax).

Copyright-paperwork-exempt: yes

3 years agoFail earlier if stale Flymake report functions called
João Távora [Sat, 10 Apr 2021 10:19:26 +0000 (11:19 +0100)]
Fail earlier if stale Flymake report functions called

If a Flymake backend calls a "stale" report function,
flymake--handle-report might be called for a backend function that is
no longer in the flymake--backend-state hash table.  This patch makes
that erroneous situation slightly more explicit.

* lisp/progmodes/flymake.el (flymake--handle-report): Improve
error reporting.

3 years agoDon't stop when before space or closing paren
Dmitry Gutov [Fri, 9 Apr 2021 22:51:39 +0000 (01:51 +0300)]
Don't stop when before space or closing paren

* lisp/progmodes/elisp-mode.el (elisp-completion-at-point):
Don't stop when before space or closing paren (bug#47665).

3 years agoCC Mode: fix c-where-wrt-brace-construct to cope with class declarations
Alan Mackenzie [Fri, 9 Apr 2021 20:52:49 +0000 (20:52 +0000)]
CC Mode: fix c-where-wrt-brace-construct to cope with class declarations

Make the function correctly recognize a brace block preceded by an
introductory line without a parameter list.

* lisp/progmodes/cc-cmds.el (c-where-wrt-brace-contruct): Reintroduce the use
of c-beginning-of-decl-1, which was removed some weeks ago, in place of a
c-syntactic-skip-backward.  Reformulate the code generally.

3 years agoFix condition-case optimiser bug
Mattias Engdegård [Fri, 9 Apr 2021 16:59:09 +0000 (18:59 +0200)]
Fix condition-case optimiser bug

* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Don't
perform incorrect optimisations when a condition-case variable shadows
another lexical variable.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
New test case.

3 years agoBetter compiler warning tests
Mattias Engdegård [Fri, 9 Apr 2021 16:49:16 +0000 (18:49 +0200)]
Better compiler warning tests

These changes allow all bytecomp-tests to be run interactively.

* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp--with-warning-test)
(bytecomp--define-warning-file-test): Interpret any space in the
pattern as arbitrary whitespace to tolerate line breaks.
Don't abuse the expected-failure mechanism when checking
for the expected absense of a warning.
(bytecomp/*.el): Rewrite patterns to work with line breaks
in the middle.

3 years agoClean up bytecomp-tests.el
Mattias Engdegård [Fri, 9 Apr 2021 16:42:12 +0000 (18:42 +0200)]
Clean up bytecomp-tests.el

Now all test cases are run with both lexical and dynamic binding
where applicable, comparing interpreted against compiled results.
Previously, almost all tests were only run with dynamic binding
which was definitely not intended.

* test/lisp/emacs-lisp/bytecomp-tests.el
(byte-opt-testsuite-arith-data): Rename to bytecomp-tests--test-cases.
(bytecomp-check-1, bytecomp-explain-1, bytecomp-tests)
(bytecomp-lexbind-tests, bytecomp-lexbind-check-1)
(bytecomp-lexbind-explain-1): Remove.
(bytecomp-tests--eval-interpreted, bytecomp-tests--eval-compiled)
(bytecomp-tests-lexbind, bytecomp-tests-dynbind)
(bytecomp-tests--test-cases-lexbind-only): New.

3 years agoMake refer-every into obsolete alias for seq-every-p
Stefan Kangas [Fri, 9 Apr 2021 16:42:14 +0000 (18:42 +0200)]
Make refer-every into obsolete alias for seq-every-p

* lisp/textmodes/refer.el (refer-every): Make into obsolete
function alias for seq-every-p.  Update single caller.